Pitch: O Tabs, aplicativo Android para o TabNews, agora tem E2EE, mensagem direta criptografada de ponta a ponta. Chama.
Na última publicação comentei que talvez estivesse inventando funcionalidade como desculpa pra não fazer o envio de mensagens. Agora fiz.
A versão 1.5.0 tem mensagens diretas entre usuários do app. Dá pra abrir o perfil de qualquer autor de um post e iniciar uma conversa diretamente pelo Tabs.
As mensagens são criptografadas de ponta a ponta usando RSA-2048 e AES-256-GCM. Em resumo, o RSA-2048 é usado pra encriptar o AES-256 que encriptou o texto. Na prática: nem eu tenho acesso ao conteúdo, só remetente e destinatário conseguem ler. E se desinstalar o app e instalar novamente "perde" o histórico. Na verdade as mensagens vão estar lá mas as chaves pra descriptografar não vão ser mais as mesmas.
Para acessar suas conversas é no novo botão que tem do lado do botão de login.
| Home | Conversas | no Tabs |
|---|---|---|
Algumas coisas que percebi e que posso adicionar em versões futuras:
- O íconezinho que fica lá em cima quando chega uma notificação está o padrão do Android. Depois coloco o 'T' do Tabs lá.
- Obviamente, só é possível falar com entre usuários do aplicativo, porém não tem como saber quem é usuário do aplicativo. Falha nossa. Vou criar alguma maneira de ser possível ver quem está logado no app ou não pra poder iniciar uma conversa.
- Outra coisa, hoje é possível todo mundo falar com todo mundo. Não sei se isso é bom ou ruim.
- Não tem uma 'pré-visualização' da mensagem. Isso envolve ter um banco local ou manter um 'snippet' da última mensagem. Existem algumas maneiras de resolver. Gosto da ideia do cache local talvez com Room ou sqlite.
- Deve ter mais coisa.
Deixar claro que aplicativos como Signal, Telegram e WatsApp implementam a E2EE de maneira diferente. Essa é uma implementação inicial que já garante certo sigilo e que tem espaço pra melhorar. Segue um quadro que segundo o Claude é verdade.
| Tabs | WhatsApp / Signal | Telegram (Secret Chat) | |
|---|---|---|---|
| Criptografia de mensagem | AES-256-GCM | AES-256-CBC (Signal Protocol) | AES-256-IGE (MTProto) |
| Troca de chaves | RSA-2048 OAEP | Diffie-Hellman com Curve25519 | Diffie-Hellman com Curve2048 |
| Armazenamento de chave privada | Android Keystore (hardware) | Memória do app | Memória do app |
Fala aí o que ficou faltando.