Um dos piores cenários na comunicação segura é a ilusão de se estar seguro. Por acreditar que o que conversamos será mantido em privado entre os participantes de uma conversa, nós transmitimos informações sensíveis sem imaginar as consequências. O chamado efeito "pós-Snowden" têm mostrado que muitas pessoas ao redor do mundo tem feito escolhas contra a vigilância dos governos e das empresas. Mas nem sempre têm sido boas escolhas. Há uma grande quantidade de serviços, aplicativos e outras soluções que não fazem o que prometem e falham miseravelmente. Nesse corre-corre pela privacidade, há diversas empresas querendo sua fatia nos negócios anti-vigilância. Esse é o caso do aplicativo de smartphone Telegram, fundado pelos irmãos Durov, criadores do clone do Facebook russo, o VK.
O Telegram tem recebido a atenção especial após a compra do WhatsApp pelo Facebook. Não só atenção, mas ocorre neste momento uma migração em massa para esse serviço que promete ser "seguro"; eis aí uma palavra que devemos tratar como suspeita em qualquer conversa sobre segurança. Afinal, sabemos que não existe nada (nada) 100% seguro.
Podemos adotar como regra inicial: se um software não disponibilizar o seu código fonte para qualquer um, ele não é seguro. Esconder o código é impedir uma auditoria por terceiros, logo, não sabemos o que está de fato sendo executado e nem quais vulnerabilidades existem. O Telegram não dá acesso ao código executado no servidor, aquele que está disponível é apenas do cliente que será instalado no celular. Ou seja, não sabemos como o Telegram armazena os nossos dados. No dia 20 de fevereiro Telegram informou que planeja abrir o código fonte gradualmente até o final do ano (2014). Ver aqui: "Where is the server-side code?"
No entanto, o maior problema do Telegram é utilizar uma solução de criptografia "caseira", ou seja, desenvolveram um protocolo próprio, ignorando aqueles que já são conhecidos e foram frutos de intensa análise e discussão há pelo menos duas décadas. Aqui há uma descrição do mtproto fornecida pelo Telegram.
Quando questionado por outros desenvolvedores sobre o seu protocolo, o Telegram respondeu primeiro com uma "carteirada" dizendo que foi desenvolvido por uma equipe de "Ph.Ds" em matemática:"The team behind Telegram, led by Nikolai Durov, consists of six ACM champions, half of them Ph.Ds in math. It took them about two years to roll out the current version of MTProto. Names and degrees may indeed not mean as much in some fields as they do in others, but this protocol is the result of thougtful and prolonged work of professionals." O que por si é algo engraçado, pois matemático não é sinônimo de criptógrafo.
Há uma série de boas práticas na comunidade de criptografia, uma delas é "não crie seu próprio protocolo de criptografia". Vale lembrar que na criptografia se você fizer ou implementar errado, pessoas podem se ferrar. Um dissidente pode ser morto, um jornalista pode ser preso, por exemplo. Portanto, não crie a roda do zero, siga o que já foi feito e faça direito, simples assim.
Para além do ad hominem, as críticas continuaram apertando cada detalhe e escolha técnica feita pelo Telegram. Por exemplo, a utilização do SHA1 e outros algoritmos obsoletos e mesmo quebrados como o caso do IGE.
"Some problems are immediately apparent:
-They use the broken SHA1 hash function.
-They include a hash of the plaintext message in the ciphertext. Essentially, they are trying to do “Mac and Encrypt” which is not secure. They should be doing “Encrypt then Mac” with HMAC-SHA512.
-They rely on an obscure cipher mode called “Infinite Garble Extension.”
-Some really weird stuff about factoring 64-bit integers as part of the protocol
-They do not authenticate public keys.
Fonte: Cryptofails: telegram
A resposta do Telegram:"We used these algorithms in such a combination that, to our best knowledge, prevents any known attack from possibly succeeding". Os problemas continuaram sendo apontados por diversos desenvolvedores e no meio de uma situação complicada, o Telegram lançou uma competição para ver quem conseguiria quebrar seu protocolo:"Crypto-contest - $200,000 to the hacker who can break Telegram".
A competição é feita da seguinte forma. Até o dia 1 de março de 2014, todos os dias, Paul (+79112317383) enviará uma mensagem contendo um endereço de email secreto para Nick (+79218944725). Para provar que você decifrou a mensagem com o email secreto, você precisa mandar um email para o email secreto enviado por Paul. No site tem o tráfego cifrado para o download (~134MB) e o desafio é decifrar a mensagem embaralhada.
O Moxie Marlinspike, fundador do Open Whisper Systems fez ironicamente o mesmo convite para os desenvolvedores do Telegram: um cripto-desafio. Ou seja, ele fez um protocolo falho, com gerador de número aleatório comprometido com backdoor da NSA, com uma implementação tosca e com algoritmos obsoletos. Nas condições do mundo real, esse protocolo não duraria um segundo, mas torna-se "inquebrável" dadas as condições da competição. Desta forma, o desafio do Telegram não é nada mais que uma falácia para convencer os usuários que o programa é seguro.
Há uma grande tendência de aparecerem novos produtos com "bad crypto", isto é, padrões toscos, soluções proprietárias e soluções mágicas de segurança. A razão disso é meramente comercial. Há um novo mercado que se abriu com as revelações pós-Snowden e muitos espertalhões estão interessados em pegar a sua fatia.
TextSecure
A boa notícia é que ontem (24), o Open Whisper Systems lançou a versão 2.0 do TextSecure, o qual tem como possibilidade o envio de mensagens em grupo e online (e não somente por SMS). Também permite a federação de servidores do TextSecure. The New TextSecure: Privacy Beyond SMS. É possível baixar pelo Google play.