A sua app
Guarda as suas chaves, criptografa tudo o que envia e decifra o que recebe. O seu histórico de mensagens vive aqui e em mais lado nenhum.
Sabe: Tudo o que envia e recebe: é seu.
Como funciona
Uma visita à arquitetura e ao protocolo em palavras simples. Cada capítulo começa pela ideia; abra “Por dentro” para ver os pormenores técnicos.
Capítulo 1
O Crocodile divide o trabalho de forma a que só as pessoas com quem fala vejam as suas palavras, e as partes geridas por desconhecidos nunca as vejam.
Guarda as suas chaves, criptografa tudo o que envia e decifra o que recebe. O seu histórico de mensagens vive aqui e em mais lado nenhum.
Sabe: Tudo o que envia e recebe: é seu.
Em cada sala de voz ou espaço, a app de um membro é escolhida para passar o tráfego criptografado aos outros. É um membro como qualquer outro.
Sabe: Os endereços IP dos membros e quem fala, nunca o que é dito.
Centrais mantidas por voluntários: guardam perfis e espaços, dizem quem está online e escolhem anfitriões. Ligam-se numa única rede.
Sabe: Perfis, adesões e quem está online, nunca o que é dito.
Uma lista telefónica de servidores de coordenação, para que as apps novas saibam por onde começar. Não sabe nada sobre pessoas.
Sabe: Só a lista de servidores.
Capítulo 2
Quando instala o Crocodile, a sua app cria no seu computador um segredo aleatório com 32 bytes. Dele saem duas chaves: uma para assinar o que publica e outra para receber mensagens criptografadas. O seu ID é uma impressão digital da chave de assinatura.
Como o ID é calculado a partir da chave, um servidor não consegue trocar a chave e fazer-se passar por si. Não há senha para roubar nem redefinição com que enganar um serviço de apoio. O segredo é-lhe mostrado uma vez como chave de recuperação e fica nos seus dispositivos, criptografado com o porta-chaves do sistema.
K7QF-M2XA-…-9PD4Ed25519X25519 + ML-KEM-768hash(🔑) → 4gq7…xk2mCapítulo 3
A sua app descarrega do diretório a lista de servidores de coordenação, mede quanto tempo cada um demora a responder e liga-se ao mais rápido. O segundo fica de reserva, por isso, se o seu servidor desaparecer, a app muda de imediato.
Antes de mais nada, o servidor prova quem é, e a app e o servidor combinam chaves para essa ligação. A partir daí, até os metadados que trocam vão criptografados, além do HTTPS, por isso também funciona com segurança num servidor caseiro.
Capítulo 4
O seu perfil, os espaços que cria, os respetivos convites e quem é membro são pequenos registos assinados por quem os escreveu. Os servidores guardam-nos e partilham-nos, e cada servidor e cada app verifica as assinaturas. Um servidor pode recusar-se a passar um registo, mas não o pode alterar nem inventar.
Os servidores de coordenação encontram-se uns aos outros e formam uma rede. Cada registo é guardado por alguns servidores escolhidos por um hash, que copiam as alterações entre si, por isso a rede continua a funcionar quando um servidor cai.
profile:4gq7…xk2mCapítulo 5
Quando as pessoas entram numa sala de voz ou abrem um espaço, o servidor de coordenação analisa a ligação de todos (quão aberta é a rede, a velocidade de envio, o computador, se está a usar bateria) e escolhe como anfitrião o membro em melhor posição. O seguinte é o substituto.
Todos se ligam à app do anfitrião, que passa o áudio criptografado. Para não sobrecarregar a ligação, envia a cada ouvinte só as poucas pessoas que falam mais alto. Nunca tem o áudio às claras: limita-se a mover pacotes selados.
Se o anfitrião sair ou deixar de estar acessível, o substituto assume e todos se voltam a ligar a ele, normalmente antes de alguém dar por isso.
Todos se ligam ao anfitrião.Sem anfitrião: o substituto assume.
Capítulo 6
Tudo é criptografado no seu dispositivo antes de sair, e só as pessoas da conversa têm as chaves. Eis o que acontece a uma mensagem pelo caminho.
A sua app assina a mensagem para que os outros possam provar que veio de si, acrescenta-lhe preenchimento para que o tamanho não revele nada, criptografa-a com uma chave que só os membros da conversa têm e envia-a por uma ligação que também é criptografada. Quem estiver pelo meio só vê bytes baralhados de tamanho padrão.
As chaves são trocadas com um híbrido de X25519, um método clássico comprovado, e ML-KEM-768, o novo padrão pós-quântico. Um atacante teria de quebrar os dois. Isto importa porque alguém pode gravar hoje tráfego criptografado e esperar que um computador quântico o decifre.
ApagadasEsta mensagemAs seguintes
A chave de cada membro roda como uma catraca: depois de cada mensagem é substituída pela seguinte numa cadeia que só anda para a frente, e a antiga é apagada. Quem roubar uma chave hoje não consegue ler as mensagens de ontem. A cada 30 minutos, e sempre que alguém sai, todos começam uma cadeia nova com chaves aleatórias novas, por isso uma chave roubada também deixa de servir em pouco tempo.
A sua voz é criptografada em pequenas tramas, cerca de cinquenta por segundo, logo a seguir ao microfone e antes de chegar à rede. Uma trama que não possa ser criptografada é descartada, nunca enviada às claras. A voz usa uma taxa de bits constante, por isso o tamanho dos pacotes não revela o que diz.
Capítulo 7
Algumas redes, como as firewalls rigorosas de empresas ou universidades, bloqueiam as ligações diretas entre computadores. O Crocodile avisa quando isso acontece, e pode deixar que um servidor de coordenação reencaminhe o seu tráfego.
O relay passa pacotes que já estão criptografados de ponta a ponta: vê o tamanho e o ritmo, mas não o conteúdo. A autorização dura uma hora de cada vez e só é renovada enquanto ainda for precisa.
Capítulo 8
Nenhum servidor guarda o seu histórico, por isso as apps do Crocodile passam as mensagens umas às outras. Eis o que acontece quando escreve a alguém que está offline.
A mensagem entra na caixa de saída da sua app e mostra um pequeno relógio.
Assim que os dois estão online, a sua app entrega-a, selada para o dispositivo dele.
A app dele confirma a receção e o relógio desaparece. Os membros que perderam mensagens num espaço recuperam-nas junto do anfitrião e do substituto.
Opcionalmente, um servidor guarda as mensagens diretas até 7 dias, seladas para cada dispositivo para que não as possa ler, e apaga-as depois de entregues.
Capítulo 9
O seu computador novo mostra um código curto. Escreva-o num computador onde já tem sessão iniciada e confirme que os dois mostram o mesmo código de segurança de seis dígitos. Se coincidirem, a sua conta é enviada criptografada e o novo dispositivo fica pronto.
O código de segurança abrange as chaves dos dois dispositivos, por isso, se alguém tentasse trocar uma pelo caminho, os códigos seriam diferentes e saberia.
Os códigos coincidem: pode ligar
Os termos que vai encontrar em textos sobre segurança, numa ou duas frases cada.