Um dos aplicativos de mensagens instantâneas seguros mais populares, Threema, se viu no centro de um escândalo esta semana. Investigadores da ETH Zurich, uma universidade pública de pesquisa na Suíça, encontraram sete (7!) vulnerabilidades nos protocolos da Threema. Enquanto isso, os desenvolvedores do aplicativo minimizaram os bugs, ao postar em seu blog que eles “resolveram todos os problemas em algumas semanas” e “nenhum deles teve qualquer impacto considerável no mundo real”. Então, as perguntas que ficam no ar são: o que realmente está acontecendo? Você deve mudar para o Signal imediatamente?
É difícil chegar ao fundo do escândalo Threema, porque o comportamento de ambos os lados, embora civilizado, não é o ideal. A equipe da ETH Zurich claramente exagerou na abrangência e nos impactos de seu trabalho, que descreve não apenas vulnerabilidades, mas também cenários hipotéticos de exploração, enquanto os desenvolvedores da Threema estão claramente subestimando a gravidade das vulnerabilidades – alegando que são quase impossíveis de serem exploradas.
Para aqueles interessados apenas em tópicos práticos, sugerimos ir direto para eles (no final deste post).
Vulnerabilidades do Threema
Todas as vulnerabilidades foram divulgadas de forma responsável em outubro e prontamente corrigidas. De acordo com ambos os lados, não houve exploração conhecida das bugs, então parece não haver motivos para temer a divulgação de informações sobre o caso. Dito isto, ainda há motivos para preocupação.
Vamos nos concentrar no que pode ser obtido a partir de uma leitura cuidadosa do relatório da ETH Zurich, da declaração da Threema e de outros estudos disponíveis publicamente sobre o aplicativo Threema e seus protocolos.
O aplicativo usa algoritmos criptográficos fortes com implementação NaCl robusta e padronizada. No entanto, isso está englobado no próprio protocolo de troca de informações do Threema — cuja implementação é imperfeita. Isso levanta a possibilidade de vários ataques teóricos (como enviar uma mensagem em um bate-papo em grupo que parece diferente para diferentes destinatários), bem como alguns outros bastante práticos. Por exemplo, qualquer pessoa com acesso físico ao smartphone de destino poderá ler os bancos de dados e backups do Threema com relativa facilidade – se nenhuma frase secreta tiver sido definida para proteger o aplicativo. Também é possível clonar um Threema ID, permitindo que um invasor envie mensagens em nome da vítima (mas não simultaneamente). Obviamente, todos os cenários que envolvem acesso físico a um smartphone são, na maioria das vezes, o pior caso para qualquer aplicativo e são incrivelmente difíceis de se defender.
Alguns dos ataques hipotéticos propostos por meio das novas vulnerabilidades funcionariam apenas se um invasor tivesse controle total sobre a rede de troca de dados. Mas isso por si só não é suficiente; outras condições complexas de exploração também são necessárias. Por exemplo, em um dos cenários seria necessário que a vítima fosse forçada a enviar uma mensagem com conteúdo muito estranho pelo Threema. É improvável que isso funcione na prática.
Das falhas no próprio protocolo de comunicação, a mais perturbadora é a falta de sigilo prévio e sigilo futuro. Ou seja, tendo descriptografado uma mensagem, as posteriores também podem ser descriptografadas. Essa fraqueza é conhecida há algum tempo, razão pela qual, aparentemente, em dezembro, a Threema anunciou uma versão fundamentalmente nova e mais segura de seu protocolo. Este novo protocolo – Ibex – ainda não passou por análises de segurança independentes. Só podemos acreditar na palavra dos desenvolvedores quando eles dizem que abrange todas as facetas da criptografia prática moderna. A Threema seria sensata em seguir o conselho da ETH Zurich de auditar externamente os protocolos nos estágios iniciais de desenvolvimento – não depois de liberá-los.
Para explorar algumas das vulnerabilidades, o servidor Threema deve ser comprometido e alguém do lado do operador deve tentar deliberadamente roubar os dados trocados ou interromper a comunicação. Isso é importante para organizações que usam o Threema Work: se uma empresa não pode expor seus dados nem mesmo a um risco hipotético, deve considerar a mudança para o Threema OnPrem, onde terá seu próprio servidor interno Threema. Nesse caso, os administradores precisam explorar maneiras de fortalecer a segurança do servidor (conhecida como hardening).
Os desenvolvedores de aplicativos também precisam tirar lições dessa situação. “Não invente seus próprios algoritmos criptográficos!”, gritam sem parar os especialistas em criptografia (o Telegram, por exemplo, não ouviu). Mas os desenvolvedores do Threema empregaram algoritmos criptográficos testados e mais reconhecidos por meio da implementação padrão e correta! Vários bugs surgiram devido ao uso de criptografia padrão no protocolo de comunicação cliente-servidor original, que é implantado em vez do TLS padrão. Parece que os especialistas deveriam ter gritado “Não invente seus próprios algoritmos e protocolos criptográficos!”
Lições práticas
Se você escolheu o Threema acreditando que é o “mensageiro mais criptografado”, não se importando em usar seu número de telefone para mensagens instantâneas e nem querendo se atolar em detalhes técnicos, é melhor mudar para o Signal. Conforme comprovado por hacks verdadeiros e ordens judiciais, os princípios de criptografia e armazenamento de dados do Signal são mais robustos e resistentes. Se você precisar usar o Threema como seu principal aplicativo de mensagens instantâneas de trabalho, ou se quiser que seu Threema ID não esteja vinculado ao seu número de telefone, você pode continuar a usá-lo, mas fique ciente dos riscos. Eles tendem a ser hipotéticos – mas não devem ser completamente descartados. Certifique-se de analisar com atenção e verificar offline os IDs Threema de novos contatos e usar senhas para login seguro.
Organizações de médio e grande porte que usam o Threema em seus processos de negócios devem considerar seriamente a migração para o Threema OnPrem para ter controle total sobre os servidores de mensagens.