E

m poucas palavras: é muito fácil manipular mensagens, e muito difícil fazer uma auditoria capaz de identificar tal alteração. Se quiser entender o porquê, continue lendo.

Identificar manipulações de mensagens em aplicativos de comunicação instantânea, incluindo Telegram, WhatsApp e Signal, é difícil porque os mecanismos de criptografia usados protegem a confidencialidade das mensagens enquanto elas trafegam pela Internet, mas não protegem a integridade das mensagens nos dispositivos dos usuários. Qual a consequência disso? Por exemplo, em uma conversa direta entre dois usuários A e B, qualquer um deles pode acessar os dados na memória do seu dispositivo e modificar a (e.g., reescrever, adicionar ou remover mensagens). Como não existem mecanismos para detectar onde ocorreram modificações, na melhor das hipóteses se pode identificar diferenças entre o conteúdo nos dispositivos de A e de B, mas não se foi A ou B (ou mesmo ambos!) que fizeram alterações. Isso é uma decisão de projeto desses aplicativos, não uma “falha”. Na realidade, o objetivo disso é exatamente garantir que, no caso de vazamentos de dados, o conteúdo não possa ser usado contra a vítima da invasão. Essa propriedade é comumente conhecida na área de segurança da informação como “negação plausível” (do inglês, plausible deniability), “retratabilidade” (do inglês, repudiation) ou “cifração negável” (do inglês, deniable encryption)

No Telegram, existem três pontos relevantes que influenciam a retratabilidade de mensagens: (1) a presença de um servidor para backup em nuvem; (2) a capacidade que usuários têm de apagar mensagens enviadas ou recebidas, localmente e no servidor; e (3) a possibilidade de o aplicativo exportar conversas inteiras em um formato facilmente manipulável. Discutimos esses pontos a seguir:

Servidor de backup em nuvem: quando o Telegram não é usado no modo “Chat Secreto”, a proteção dada às conversas é do tipo “cliente-servidor”. Isso significa que, quando uma mensagem é enviada pelo usuário A para o usuário B, essa mensagem é (1) criptografada por A, (2) enviada via Internet para o servidor do Telegram, (3) decriptografada por esse servidor, (4) criptografada novamente pelo servidor, (5) enviada para B, e finalmente (6) decriptografada por B. Perceba que, nesse processo, o servidor do Telegram consegue ler todas as mensagem, e acaba armazenando uma cópia delas para fins de backup. Assim, ao acessar o Telegram a partir de qualquer dispositivo, pode-se obter todas as mensagens que ainda estiverem no servidor. Além disso, as mensagens no servidor não podem ser editadas pelos usuários após 48h do seu envio! Portanto, em teoria daria para anular a “retratabilidade” do Telegram simplesmente lendo as mensagens, íntegras, obtidas diretamente do servidor. Um detalhe importante, porém, é que as mensagens no servidor podem ser facilmente apagadas, o que nos leva ao nosso 2º ponto. Apagamento de mensagens: desde Março/2019, o Telegram permite que usuários apaguem, a qualquer momento, mensagens que tenham sido enviadas ou recebidas. Mais do que isso: ao apagar uma mensagem, o usuário pode removê-la não apenas de seu dispositivo, mas de todos os outros dispositivos onde ela esteja armazenada, incluindo o servidor. Enquanto alguns aplicativos marcam que essa remoção ocorreu (e.g., o WhatsApp substitui a mensagem original por “Essa mensagem foi apagada”), no Telegram isso não acontece: a mensagem simplesmente some, como se nunca tivesse existido. Por si só, isso permite tirar completamente uma conversa de contexto (se duvida, veja a piada adulta “Carta romântica ou não?”, de Ary Toledo). E isso não é tudo: ao eliminar mensagens usando essa função “remover para todos”, o método fácil de auditoria já mencionado, de acessar o backup confiável no servidor, acaba ficando inviável. Assim, se um invasor editar mensagens, salvá-las fora do Telegram, e depois deletar as mensagens originais do servidor, adeus possibilidade de verificar a legitimidade dos dados… Agora, falta só um jeito fácil de editar as mensagens da conta invadida, o que nos leva ao nosso 3º ponto. Exportação de mensagens via Telegram Desktop: embora seja possível extrair mensagens do Telegram para celular, a forma mais fácil de fazê-lo é via Telegram Desktop, que tem uma função específica para esse fim. Especificamente, a função “Exportar dados do Telegram” do Telegram Deskop gera um arquivo no formato HTML com todas as mensagens do usuário. Acontece que arquivos HTML são facilmente editáveis com qualquer editor de texto (e.g., Notepad) e, sem uma fonte confiável para comparação (2º ponto), não restaria qualquer mecanismo para detectar as modificações feitas.

Para provar o quão fácil é manipular mensagens obtidas via invasão do Telegram, e que é difícil para qualquer pessoa (técnica ou não) diferenciar mensagens originais das versões alteradas, fizemos um pequeno experimento prático. Com a ajuda de voluntários, incluindo alunos de pós-graduação da Escola Politécnica da USP, criamos alguns diálogos legítimos no Telegram. Em seguida, as contas dos voluntários foram “invadidas”: com a autorização deles, foi inserida no Telegram Desktop a mensagem de SMS que dá acesso a suas contas e a suas conversas. As mensagens foram então exportadas no formato HTML, e parte delas foi manipulada. Isso gerou 8 conversas, divididas em 3 grupos: ao menos 2 delas não sofreram alteração; ao menos 2 delas tiveram seu sentido alterado somente pela deleção de algumas mensagens, tirando-as de contexto; e ao menos 2 delas foram alteradas mais profundamente, com troca de nomes, do horário de envio das mensagens, do conteúdo em si, e/ou com a adição ou remoção de mensagens. O desafio que se coloca a você, leitor, é identificar a qual grupo pertence cada uma das conversas. Caso acredite que faça alguma diferença (sinceramente, não faz, embora algumas reportagens deem a entender o contrário): em todos os casos, suponha que outras 6.495.510 de mensagens obtidas via invasão, distintas das aqui apresentadas, tenham sido verificadas por seus colegas e que, palavra por palavra, as conversas examinadas sejam verdadeiras. Ao final, lhe é fornecida a mensagem original, em formato HTML e em formato PDF, e uma explicação do que foi alterado.

Curiosamente, acredita-se que esse pequeno experimento replica com boa fidelidade o vazamento no caso do Intercept, se não for idêntico (exceto pela “invasão autorizada”, obviamente). A razão dessa conjectura é simples: o Telegram, seja para celular ou para Desktop, mostra apenas a hora e o minuto das mensagens; já os dados exportados em HTML dão os instantes de tempo em segundos, a mesma informação “extra” presente em reportagens feitas com o material obtido pelo Intercept.

Daí, você pode tirar suas próprias conclusões sobre o quão tecnicamente difícil é identificar manipulações em conversas obtidas via invasão do Telegram…

Clique aqui e faça a auditoria de mensagens vazadas do Telegram… se puder!