tesseras
Sua área de transferência em todas as suas máquinas. O servidor não consegue ler o que sincroniza.
E2Ecriptografia fim-a-fim
Uma tessera era uma ficha romana partida ao meio. Cada metade não valia nada sozinha; encaixar as duas de novo provava quem você era. É o que parear um dispositivo faz aqui.
Isto não é uma animação. Digite no primeiro painel: o texto é cifrado nesta aba, de verdade, e o painel do meio mostra os bytes que sairiam daqui.
A demonstração ao vivo precisa de
crypto.subtle, que o navegador só expõe em conexão segura.
Abra esta página em https:// para vê-la funcionar.
O painel do meio é tudo que o servidor chega a segurar: bytes cifrados, o tamanho e o tipo. A chave desta demonstração nasceu nesta aba, não sai dela, e nada aqui vai para a rede — abra o inspetor de rede e confira.
Como funciona
O conteúdo é cifrado no dispositivo que copiou, antes de qualquer coisa tocar a rede, e só é aberto nos dispositivos que você pareou. O servidor encaminha envelopes e cobra pelo tamanho deles. Ele não guarda chave que abra um, e nós também não.
A área de transferência é onde senhas, códigos de uso único e tokens de API passam alguns segundos a caminho de outro lugar. Um serviço de sincronização capaz de ler esse fluxo é um vazamento com data marcada, então este foi construído ao contrário.
Remover um dispositivo gira a chave do cofre, em vez de marcar uma coluna no banco. Sem isso, o aparelho removido continuaria decifrando tudo que você copiasse depois de removê-lo — que é justamente o que você quis impedir ao removê-lo.
A recuperação é uma frase de doze palavras, e só ela. Perder todos os dispositivos pareados e a frase junto significa perder o histórico, para você e para nós. É o preço de não termos a chave, e ele é cobrado na primeira tela do aplicativo, com essas palavras.
O que o servidor sabe
A lista honesta, sem arredondar para "nada":
- o tamanho de cada item, em bytes;
- se ele é texto, imagem ou arquivo;
- qual dispositivo enviou, e quais buscaram;
- quando chegou;
- quantos dispositivos a conta tem, e quando foram pareados ou removidos.
Tamanho e tipo estão em claro porque os limites do plano são aplicados contra eles, por um servidor que não pode olhar dentro. O resto da lista é inerente a rotear qualquer coisa entre dois aparelhos. O conteúdo não está nessa lista, e é o único ponto que importa.
Plataformas
| plataforma | captura | como |
|---|---|---|
| Windows | automático | escuta de eventos da área de transferência |
| macOS | automático | leitura periódica do changeCount |
| Linux X11 | automático | notificação de seleção do XFIXES |
| Linux Wayland | automático onde há wlr-data-control |
sway, Hyprland, river, KWin. O GNOME não implementa esse protocolo, e ali o caminho cai para o XWayland |
| FreeBSD, OpenBSD, NetBSD | automático | o mesmo caminho do X11 |
| Android | sob ação | desde o Android 10 o sistema não deixa um aplicativo em segundo plano ler a área de transferência: envie pelo menu de compartilhamento, receba pela notificação |
| iOS | sob ação | desde o iOS 14 não existe leitura da área de transferência em segundo plano: envie pela folha de compartilhamento, cole pelo teclado do aplicativo |
No computador isto funciona sozinho. No celular não funciona, e não é uma limitação que dê para consertar do nosso lado — é o sistema operacional protegendo você de aplicativos que fazem exatamente o que este faria. Está aqui, e não em um e-mail de suporte depois que você pagou.
Planos
| plano | preço | texto | arquivo | disp. | histórico |
|---|---|---|---|---|---|
| grátis | R$ 0 | 4 KB | — | 2 | 5 min |
| pessoal | R$ 19,00 | 256 KB | 10 MB | 5 | 30 dias |
| pro | R$ 49,00 | 1 MB | 100 MB | 10 | 90 dias, itens fixados |
Os limites são em bytes, não em caracteres, porque o servidor não
consegue contar caracteres de algo que não consegue ler. Em português com
acento a diferença não é um arredondamento: ç, ã e
é ocupam dois bytes cada em UTF-8, e um emoji ocupa quatro. O
cliente conta bytes UTF-8 e mostra esse número, que é o mesmo que o servidor
vê.
Perguntas
Não. E vale dizer o que isso custa a você, porque não é de graça: não existe "esqueci minha senha", não dá para buscar no histórico pelo lado do servidor, e o suporte não consegue recuperar um item para você — nem um. Se conseguíssemos qualquer uma dessas três coisas, a resposta a esta pergunta seria outra.
Se você ainda tiver um dispositivo pareado, ele reconstrói o resto: pareie o aparelho novo e pronto. Se não tiver nenhum, a frase de doze palavras abre o cofre.
Se você perder os dois — todos os dispositivos e a frase — o histórico acabou. Não há caminho alternativo, nem para nós, e não é política de atendimento: é a única forma de a resposta anterior ser verdadeira. Guarde a frase no papel.
Porque o Android 10 e o iOS 14 fecharam a leitura da área de transferência em segundo plano, depois de descobrirem quantos aplicativos liam a sua o tempo todo. Um serviço que ainda faça isso hoje ou é o teclado padrão do aparelho ou está contornando algo que existe para o seu bem.
No celular, então, é uma ação sua: compartilhar para enviar, colar pelo teclado do aplicativo para receber. Dois toques em vez de zero.
Não. Gerenciadores de senha marcam o que colocam na área de transferência como sensível, cada sistema com a sua flag, e o cliente respeita todas elas: o item é ignorado e nunca chega a ser cifrado nem enviado. Custa pouco honrar essas marcas e evita sincronizar exatamente aquilo que ninguém pediu para sincronizar.