Como garantir que suas conversas não sejam espionadas? 

Muitos acreditam que um aplicativo seria privado se as mensagens fossem criptografadas. Na verdade, privacidade em mensagens é muito mais complexo que isso. No Chaos Communication Congress, Roland Schilling e Frieder Steinmetz deram

Muitos acreditam que um aplicativo seria privado se as mensagens fossem criptografadas. Na verdade, privacidade em mensagens é muito mais complexo que isso. No Chaos Communication Congress, Roland Schilling e Frieder Steinmetz deram uma palestra na qual explicaram em palavras simples que atributos um Messenger tem de ter para ser considerado seguro.

Os seis pilares da conversa privada

Para entender a ideia da troca de mensagens privadas, Schilling e Steinmetz propuseram que imaginemos uma conversa particular em uma festa. O que faríamos para que ninguém ouvisse ? Provavelmente, procuraríamos uma sala isolada, em que apenas as pessoas com quem queremos falar pudessem nos ouvir.

Essa é a primeira característica a respeito de conversas privadas: tem de ser confidencial. Nenhuma outra pessoa, além de você e seu interlocutor, deve ser capaz de ouvir.

O segundo ponto é autenticidade – você tem de saber se a pessoa com quem você está conversando é de fato ela. Na vida real, você reconhece o rosto. Mas com as mensagens online, é mais complicado.

Se a conversa for muito importante, você quer certeza de que seu interlocutor escute cada uma de suas palavras. Mais do que isso, quer que a pessoa escute exatamente o que você diz. Isso quer dizer que para uma comunicação online se manter privativa, você precisa saber que um terceiro não corrompeu suas mensagens. Esse é o conceito de integridade.

Vamos imaginar agora que uma terceira pessoa entre na sala e escute parte da conversa. Na vida real, esse terceiro saberia apenas da parte que ouviu, não o que você estava dizendo antes ou depois. Contudo, a internet nunca esquece de nada, e as comunicações online não são tão simples quanto as offlines. Isso nos leva a dois conceitos importantes: sigilo prévio e futuro.
Sigilo prévio não permite que o terceiro saiba o que você discutiu antes de entrar na sala, e o futuro omite o que foi dito depois de sua saída.

Digamos que o assunto discutido fosse delicado. Nesse caso, se alguém o acusasse de algo, você negaria. Se a conversa foi privada, as únicas pessoas que conheceriam o conteúdo da conversa seriam os participantes -seria a palavra de um contra a do outro. Nesse caso, ninguém pode provar coisa alguma, nos levando ao conceito de negação plausível.

Implementando privacidade em messengers

Portanto, essas são as seis características que tem de ser implementadas em um aplicativo de mensagens para que seja considerado privado. Contemplá-las é tarefa simples caso estejamos tratando de conversas ao vivo, mas no que diz respeito a serviços de mensagens há sempre uma terceira pessoa – o serviço em si. Como os seis pilares podem ser implementados com a presença desse terceiro elemento?

A Confidencialidade é mantida por meio de criptografia. Existem diferentes formas de criptografia: simétrica e assimétrica, e ainda de chave pública. Aplicativos de mensagens privados (Schilling e Steinmetz avaliaram o Threema como exemplo) usam as duas, criam chaves compartilhadas com a pública de uma e a privada de outra pessoa. O contrário também funciona.

Portanto, a senha é idêntica para as duas pessoas e única para cada um (nenhum outro par recebe a mesma chave). O aplicativo gera a senha independentemente e mantêm confidencialidade ao não transferi-la. As duas pessoas são as únicas que as conhecem, logo depois de iniciarem um diálogo.
Esse método também é usado para assegurar integridade – alguém de fora que tentasse alterar o texto já criptografado o tornaria ilegível. Nesse caso, seu parceiro de conversa ou receberia o que você enviou ou uma mensagem de erro (porque o messenger não consegue desbloquear o texto cifrado).

Para favorecer a confidencialidade ainda mais, você pode esconder o fato de que sequer teve uma conversa. Outra camada de criptografia pode cuidar disso. A mensagem enviada é criptografada, utilizando a chave compartilhada entre você e seu interlocutor – é como guardar a mensagem em um envelope, com o endereço anotado. A partir daí você a criptografa mais uma vez – como colocar em outro envelope – aí sim, é enviada para o servidor do endereço. Nesse caso, você utiliza a senha gerada com base na sua e na do servidor.

Então, esse envelope com um envelope dentro é entregue ao servidor. Se um atacante em potencial tenta espiar o envelope, eles saberão que você o enviou, mas não poderão saber o destino. O servidor do messenger retira o segundo envelope, observa o destino (não a mensagem em si), coloca em um “novo envelope”, o pacote com outra embalagem e o envia ao destinatário. Neste ponto, um espião pode ver apenas o envelope do servidor para o remetente. Mas não o que foi gerado originalmente.

Com vários envelopes voando para tudo quanto é canto, é difícil observar quem recebeu suas mensagens. Difícil, mas não impossível: se alguém pudesse pesar todos os envelopes, encontraria dois com o mesmo peso e associaria o seu com o de seu interlocutor. Para assegurar que isso não aconteça, o sistema adiciona pesos aleatórios dentro de cada envelope, dessa forma, o envelope que você mandou e o que seu interlocutor recebeu nunca pesam a mesma coisa.
É difícil de manter a autenticidade. Alguns aplicativos de mensagens usam endereços de e-mail ou números de telefone como identidade – dessa forma o usuário é autenticado. Mas números de telefone e endereços de e-mail são dados confidenciais que provavelmente você não queira compartilhá-los com o app. Alguns – como o Threema – encorajam os usuários a utilizar identidades diferentes e trocar códigos QR para confirmar sua identidade.

Negação plausível é viabilizada por meio de envio de cada mensagem para os dois participantes. A chave é a mesma para as duas pessoas, de modo que qualquer um dos dois poderia ter enviado a mensagem. Portanto, mesmo que alguém consiga interceptar e desbloquear a mensagem, não há como ter certeza de quem a enviou.

Isso cuida da confidencialidade, autenticidade, integridade e negação plausível. E quanto o sigilo prévio e futuro? Se as chaves pública e privada de alguém são as mesmas, a partir do momento que a chave compartilhada é comprometida, o atacante pode desbloquear tanto mensagens anteriores quanto futuras.

Para limitar isso, as senhas têm de ser reemitidas periodicamente pelo servidor. Se uma senha é emitida novamente, digamos uma vez ao mês, o bisbilhoteiro seria capaz de ler as conversas apenas nesse mês e não conseguiria monitorar as comunicações a partir do momento que uma nova senha é enviada (na prática, a remissão ocorre com muito mais frequência).

Dicas