Como o tosstome funciona
Última verificação
O tosstome é um pequeno serviço no Cloudflare Workers mais uma página da web. O servidor apresenta os dispositivos uns aos outros e, só quando precisa, repassa os dados. Ele nunca armazena arquivos.
1. Encontrar um ao outro
Quando você abre a página, o navegador se conecta ao servidor por um WebSocket. Os dispositivos cujas conexões vêm do mesmo endereço IP público, o que em geral significa a mesma rede doméstica ou de escritório, são colocados no mesmo grupo e aparecem na lista Nesta rede uns dos outros. O endereço passa por um hash antes de ser usado. Para dispositivos em redes diferentes, um código de 6 dígitos os coloca em um grupo temporário só deles.
2. Conectar diretamente
Quando você toca em um dispositivo, os dois lados trocam detalhes da conexão WebRTC pelo servidor e tentam abrir um canal de dados direto, usando o serviço STUN da Cloudflare para descobrir como se alcançar através dos roteadores domésticos. Um canal WebRTC direto é criptografado de ponta a ponta pelos navegadores (DTLS).
3. Recorrer a um relay
Algumas redes bloqueiam conexões diretas: firewalls corporativos, Wi-Fi de visitantes, operadoras móveis com CGNAT. Se o canal direto não for estabelecido em alguns segundos, os dois lados se conectam a um relay na Cloudflare. O relay repassa cada bloco conforme ele chega e não guarda nada. O tráfego de e para o relay é criptografado com TLS, mas o relay ainda não é criptografado de ponta a ponta; isso está no roteiro de desenvolvimento.
4. Mover os dados
O mesmo protocolo de transferência roda no navegador e na ferramenta de linha de comando: pequenas mensagens de controle em JSON mais blocos binários, com confirmações de quem recebe, para que quem envia nunca sobrecarregue uma conexão lenta. Ele se comporta da mesma forma em um canal direto e pelo relay.
5. Caixas de entrada
A ferramenta de linha de comando mantém uma caixa de entrada sempre ativa. Ela cria duas chaves secretas: uma chave de agente, que fica no computador, e uma chave de envio, que vai no link da caixa de entrada depois do #. Os navegadores não enviam essa parte de um link ao servidor, e a chave é passada dentro do WebSocket. O servidor guarda apenas hashes SHA-256 das duas chaves. Quando um celular abre o link e envia, o servidor repassa os detalhes da conexão WebRTC entre o celular e o computador, como faz entre dois navegadores, então na mesma rede os arquivos vão direto para a pasta da caixa de entrada sem sair dela. Se nenhum canal direto for estabelecido, os dois lados usam uma sessão de relay. A ferramenta de linha de comando se conecta diretamente da mesma forma quando envia para um navegador por um código de 6 dígitos, ou quando um navegador envia para ela a partir da lista Nesta rede.
O que ainda não foi feito
- Criptografia de ponta a ponta no caminho do relay
- Pareamento de dispositivos persistente e assinado no navegador
- Limites de taxa além do bloqueio por papel para chaves de caixa de entrada erradas
Leia a página de privacidade para saber o que o serviço enxerga.
Perguntas
O tosstome tem criptografia de ponta a ponta?
As transferências WebRTC diretas têm, pelo DTLS do navegador. As feitas pelo relay são criptografadas entre cada dispositivo e a Cloudflare com TLS, mas ainda não de ponta a ponta.
O que é WebRTC?
Um padrão dos navegadores para conexões ponto a ponto em tempo real, usado por apps de chamada de vídeo. O tosstome usa os canais de dados dele para enviar arquivos diretamente entre navegadores.
Meus arquivos são enviados ou armazenados em algum lugar?
Não. Os arquivos vão direto de um dispositivo para o outro por WebRTC, quando as redes permitem. Quando não permitem, o arquivo passa por um relay na Cloudflare, que repassa os bytes conforme eles chegam e não guarda nada. Se o destinatário estiver offline, nada é enviado.
Por que precisa de internet se é ponto a ponto?
Os navegadores precisam de um servidor para se encontrar e trocar os detalhes da conexão. Depois de conectados diretamente, os dados do arquivo vão entre os dispositivos.
Relacionados
- Privacidade
- Compartilhar arquivos entre dispositivos em redes diferentes
- Enviar arquivos grandes sem fazer upload
- Alternativas ao Snapdrop que ainda enviam ponto a ponto
Experimente agora
Abra o toss2.me em dois dispositivos. Sem app, sem conta e sem guardar nada.
Enviar um arquivo agora