Briar — O próximo passo da evolução dos mensageiros criptografados

Este texto foi escrito originalmente em inglês por Torsten Grote, disponível aqui.

Quem ainda se lembra do ICQ, AIM e o MSN? Meu primeiro mensageiro foi o ICQ e eu gostava do fato dele ser instantâneo. Naqueles tempos, eu não pensava muito sobre segurança e eu era muito jovem. Nós podemos nos considerar sortudos se aquelas ferramentas utilizavam pelo menos criptografia em transporte. Isso significa que nossas mensagens são criptografadas no caminho do nosso computador para o servidor, então ninguém pode ver o conteúdo das mensagens enquanto elas estão em trânsito. Seja quem for que tiver acesso ao servidor consegue ver o conteúdo, uma vez que todas as mensagens são descriptografadas assim que chegam ao servidor e depois criptografadas novamente antes de sair para o destinatário.

Aqueles dias se foram. Agora todos nós temos smartphones e está cheio de novos aplicativos por aí, os quais substituíram os mensageiros instantâneos do passado. Muitos desses aplicativos não usavam nem mesmo criptografia em transporte no início e foram criticados por isso. Segurança se tornou um ponto a ser vendido e ainda mais depois das revelações feitas por [Edward] Snowden. Vamos então ir um pouco mais à frente no tempo.

Criptografia em transporte

Inovações recentes em segurança

Muitas empresas finalmente perceberam que se eles têm nossas mensagens em plain text*, eles atraem outras que também querem nossas mensagens. Os adversários mais poderosos sempre quiseram ter controle sobre nossas conversas, seja as hackeando nos servidores ou as utilizando de acordo com a lei. Então os provedores de serviços passaram a utilizar a criptografia fim-a-fim, similar ao que o PGP faz pelo e-mail. Em contraste com a criptografia em transporte, a criptografia fim-a-fim assegura que a mensagem só pode ser lida pelo remetente e pelo (pretendido) destinatário. Durante todo o trajeto, ela não é descriptografa em nenhum momento e mesmo que seja guardada em um servidor, até mesmo o proprietário do servidor não conseguirá ler as mensagens.

Criptografia fim-a-fim

Isso é pelo menos a ideia. É preciso que isso seja implementado corretamente e você precisa ter certeza de que ninguém mais tenha acesso às suas chaves privadas, que mantem a comunicação. Assim que isso ocorre e um adversário tem suas chaves privadas, ele consegue descriptografar toda a sua comunicação anterior. É por isso que existe o conceito de forward-secrecy**. Ele previne exatamente este problema de ocorrer ao criptografar suas comunicações com chaves de sessão recém-criadas o tanto quanto for possível. Estas chaves efêmeras não podem ser quebradas, mesmo que o adversário consiga sua chave privada de longa duração.

Dando uma olhada em alguns dos mensageiros populares

Vamos ver alguns dos mensageiros que as pessoas usam hoje em dia. Há o Telegram, por exemplo. Ele utiliza apenas criptografia em transporte por padrão. Depois, ele guarda todas as suas mensagens nos seus servidores, então quando você o reinstala em algum outro fone, você consegue todas suas mensagens de volta. Que conveniente! Mas isso também significa que quem quer que seja que tenha acesso aos servidores do Telegram (ou consiga se registrar com seu número de telefone) tem acesso a todas as suas conversas também.

O Telegram tem um modo de chat secreto em que você precisa ativá-la separadamente para conseguir a criptografia fim-a-fim e o forward secrecy. Pessoas que sabem mais do que eu sobre criptografia estudaram a criptografia do Telegram e até mesmo eles não conseguiram entender direito o que o Telegram está fazendo ali. Ademais, não há qualquer fraqueza acerca dos chats “seguros”, eu pessoalmente não confiaria de que eles sejam seguros.

Então tem o Signal. É o que todo mundo (incluindo Edward Snoden) está recomendando e ele é muito bom. O protocolo de criptografia Signal (formalmente chamado Axolotl) é maravilhoso. Ele finalmente resolve muitos problemas que faziam o uso de boa criptografia tão dificil por tanto tempo. Por exemplo, se você precisa de uma chave privada para assegurar sua comunicação e você quer conversar a partir de um aparelho diferente com a mesma conta, como você leva sua chave privada para o outro aparelho? Como você se comunica sincronizadamente com algém que pode estar offline e, portanto, não pode trocar chaves? Todos estes problemas são resolvidos pelo protocolo Signal elegantemente.

Com o Signal, a criptografia é sólida e fica fora do nosso caminho. É fácil de usar e segura por padrão. É por isso que todo mundo está o recomendando e, dependendo do seu modelo de ameaça, eu também o recomendaria.

Então existe o Whatsapp, que é o messenger que a maioria das pessoas usa. Ele tinha grandes problemas de segurança no passado, mas ficou muito melhor. Eles contrataram Moxie Marlinspike, do Signal, o qual os ajudou a implementar o protocolo Signal. Ele foi ativado para o Whatsapp no Android um tempo atrás e recentemente também em iPhones. Isso é muito bom, uma vez que traz criptografia forte e fim-a-fim para bilhões de pessoas.

Infelizmente, o Whatsapp não é um software de código aberto, então não podemos inspecionar seu código-fonte, ter certeza de que ele é bom e também não conseguimos construir nossa própria versão do Whatsapp para fazer com que o código-fonte corresponda ao binário. Seria fácil para o Whatsapp mandar uma atualização que vazasse informações e conversas de pessoas em que a justiça estivesse interessada. Se fosse um software livre reprodutível como é o Signal, isso não seria possível. Portanto, a segurança do Whatsapp ainda é melhor do que a do Telegram, mas eu ainda não confiaria nele.

Como os chats do Telegram, o Signal e o Whatsapp, também te dão a possibilidade de ter certeza de que a pessoa com que você está falando é realmente a pessoa com que você está falando. Deixe-me chamar isso de Autenticação. Isso geralmente é feito ao escanear o código QR ou comparando o fingertip digital. A maioria dos messengers usam uma forma de “trust-on-first-use” (TOFU), o que significa que o seu contato é considerado autenticado desde o início. Você só consegue descobrir que você está falando com um “homem-do-meio” (man-in-the-middle) quando a chave do seu contato muda. Isso permite que um atacante tome controle da sua conta do Whatsapp com um SMS interceptado e ver o que as pessoas estão de escrevendo.

Então para resumir, quando discutindo a segurança dos mensageiros, nós estamos buscando tipicamente estes critérios:

  • Criptografia fim-a-fim
  • Autenticação
  • Forward-Secrecy
  • Software Livre

Se você está interessado em saber se o seu mensageiro favorito preenche estes critérios ou não, cheque o EFF’s Secure Messaging Scoreboard.

Centralização vs. Federação

Arquitetura centralizada

A arquitetura básica de todos os nossos mensageiros é monolítica e centralizada. Existe um servidor (ou um cluster deles) que todo mundo deve se conectar. Estes serviços são jardins murados em que a empresa que está rodando tem total controle sobre o que está acontecendo. Eles podem não apenas vender seus metadados, mas também excluí-lo de usar o serviço, cortando-o de todos os seu amigos. Eles podem requerir que você use seus softwares não-livres, mostrá-lo suas propagandas, etc. Mas mesmo que eles não o incomodem e apenas deixem-no usar seus serviços, outros podem facilmente bloquear um serviço centralizado completamente. Como o Brasil fez quando o Whatsapp não pôde revelar as informações que os juízes brasileiros queriam, pois os suspeitos já estavam usando o Whatsapp com criptografia fim-a-fim.

Esse é o motivo pelo qual as arquiteturas federadas foram um dia populares. O exemplo mais famoso para isso é o e-mail. Não existe apenas o Gmail, mas muitos outros servidores no mundo. Você pode escolher o servidor de e-mail que quiser. Todo mundo é livre para abrir um e ele vai simplesmente funcionar com os outros Você pode mandar e-mails para todo mundo, não importa em qual servidor eles estão e ninguém pode excluí-lo do uso do seu e-mail ou ditar qual software você deve usar.

Arquitetura federada

O equivalente para isso no mundo dos mensageiros é o XMPP ou Jabber. Ele funciona perfeitamente e já foi utilizado anteriormente pelo Facebook, Google e Microsoft. Mas eles decidiram mais uma vez que os jardins murados eram melhores para o seu modelo de negócio, então deixaram o XMPP de lado como uma batata quente. O Signal utilizou um modelo federado inicialmente, mas também decidiram que não conseguiriam aplicar mudanças tão rápido a ponto de continuarem competitivos se tivessem que se federar a outros.

Qual é a da segurança do XMPP? Bem, é como o e-mail. No início, era apenas (opcionalmente) criptografado em trânsito e até hoje muitos servidores ainda trocam mensagens descriptografadas ou pelo menos potencialmente descriptografáveis. A segurança teve que ser adicionada depois, sobre o que já estava lá. Para o e-mail havia o PGP, para o Jabber havia o OTR. Quando foi lançado, era maravilhoso. Grandes propriedades de segurança e até mesmo capacidade de rejeição***. Muitas pessoas ainda o recomendam, mas a verdade é que é um saco de usar, especialmente se você tem mais de um aparelho. Ele também requer que os dois usuários estejam online quando eles quiserem conversar criptografadamente e não é muito bem integrado nas experiências de chats no geral.

OTR não é nem perto o que o protocolo Signal oferece, mas ainda bem que este foi trazido para o mundo do XMPP sob o nome de OMEMO pelo time do Conversations. Conversations é um aplicativo para Android para XMPP. Na verdade, é o melhor aplicativo de XMPP que eu conheço. Tente usá-lo! Infelizmente, OMEMO não é ativado por padrão, pelo motivo de que muita gente ainda usa XMPP sem ele. Mas isso vai mudar brevemente — espera-se. Portanto o Conversations vai ser uma boa peça na competição dos centralizados.

O que está faltando?

Então nós percorremos um longo caminho e agora temos melhores e mais ferramentas seguras do que tínhamos um ano atrás. Isso é ótimo, mas nós ainda podemos fazer melhor. Mesmo que o servidor não possa mais ler suas mensagens devido a criptografia fim-a-fim, ele ainda sabe quem são seus amigos e a frequência que você fala com eles. Isso é usualmente chamado metadados e pode ser mais perigoso do que o conteúdo das mensagens em si. Eles podem ser usados para mapear um grupo social inteiro e identificar as pessoas-chave deste grupo. Nós sabemos que existem organizações neste mundo que matam pessoas baseadas em metadados. Então se seus adversários incluem estas organizações e você ainda precisa se comunicar, você tem um problema.

Enquanto a federação é boa em princípios, ela não é perfeita. Mesmo que seja muito mais difícil de censurar e bloquear, os metadados ainda estão lá e são vistos por mais de um servidor. Merda, você ainda precisa que alguém rode um servidor para você. Por quê? Não somos todos iguais na internet? Não poderíamos apenas nos conectar diretamente uns com os outros sem a necessidade de servidores?

Arquitetura ponto-a-ponto (p2p)

Isso é exatamente o que uma arquitetura descentralizada e o ponto-a-ponto (p2p) faz. Provavelmente você conhece isso do Bittorrent. Ele funciona perfeitamente lá, por quê não com os mensageiros também? Afinal, uma mensagem é muito menor do que um filme em alta qualidade. Nós realmente precisamos de servidores que registram nossas atividades? Talvez não, vamos ver!

Mas antes, vamos estender a lista de critérios para avaliar os mensageiros. Nós dispomos de mensageiros que já preenchiam os critérios anteriores, então vamos aumentar a lista:

  • Criptografia fim-a-fim
  • Autenticação
  • Forward-Secrecy
  • Software Livre
  • Resistência contra censura
  • Sem metadados

A maioria dos mensageiros atuais falham nos dois últimos critérios.

Conheça o Briar

Agora é a hora de finalmente conhecer o Briar, que funciona completamente ponto-a-ponto sem a necessidade de servidores e é voltado totalmente aproteger os seus metadados. Ele é completamente software livre e utiliza criptografia fim-a-fim com forward secrecy.

O Briar não requer que você faça o upload completo da sua lista de amigos para o servidor de alguém. Na verdade, ele nem permite isso para que não divulgue seus metadados. Ao invés disso, ele retorna ao bom e velho modo das conexões pessoais. Você adiciona seus primeiros contatos ao encontrá-los pessoalmente para estabelecer o máximo de confiança ao escanear os códigos QR de cada um. Sua comunicação é autenticada desde o início e você pode ter a certeza de quem você está conversando. Aqueles que não conseguem se encontrar pessoalmente podem ser introduzidos por um amigo em comum. Dessa forma a rede-de-confiança é construída naturalmente sem a necessidade de assinar nenhuma chave manualmente. Outras opções para adicionar contatos serão criadas assim que possível.

O Briar nunca faz contato direto com seus contatos. Isso vazaria seus metadados. Ao contrário, ele roda um Serviço Oculto Tor no seu celular e se conecta com o serviço oculto Tor através da rede Tor, a qual anonimiza suas conexões. Um observador de fora não consegue dizer quem está falando com quem. Eles só enxergam que você está fazendo conexões através da rede Tor, e só isso. Você pode chamar o Briar de Mensageiro da Darknet se você gosta do termo. Mas Briar funciona até mesmo sem Internet ao usar Bluetooth ou WiFi. Quando seus contatos estão perto, Briar os reconhece e estabelece uma conexão segura sobre a qual transmite todas as mensagens. Então mesmo que o governo brasileiro desligue a internet para evitar protestos durante as Olimpíadas, as pessoas ainda poderão se comunicar através do Briar. Ele provê o máximo de defesa contra censura e bloqueio.

Você pode trocar mensagens via SD card também.

Permita-me reiterar: com Briar, seus dados não são armazenados em algum lugar na “nuvem”, no computador de outras pessoas, mas é criptografado apenas no seu aparelho. Você escolhe com quem você compartilha quais dados e ninguém sabe com quem você está compartilhando aquilo. Ordens de desligamento não tem qualquer efeito, pois qualquer membro de um forum, por exemplo, mantem uma cópia de seu conteúdo, então não há um único ponto em que um forum possa ser deletado. Além disso, não há ataques de negação de serviço, pois o Briar não funciona a partir de um servidor central para ataque, e todo mundo tem acesso a isso até mesmo se estiverem offline.

O objetivo do Briar é “permitir as pessoas em qualquer país de criar espaços seguros onde possam debater qualquer tópico, planejar eventos e organizar movimentos sociais”. Para fazer isso, ele precisa ser muito mais do que um simples mensageiro, e ele é! Sua arquitetura é bastante genérica e permite diversos tipos de aplicativos de serem construídos sobre ele. Mensageiro é apenas o primeiro caso de aplicação, mas claramente um caso importante.

Quando vou poder testá-lo? O Briar ainda não está disponível. Dê uma olhada no roadmap e no wiki para a documentação e formas de nos ajudar para conseguirmos ter uma versão beta mais rápido. Claro, você sempre pode compilar a partir do código fonte você mesmo se você está muito curioso. De qualquer forma, espalhe a notícia e esteja ligado para saber mais!


(*) plaintext: arquivo escrito, sem criptografia, passível de ser lido por qualquer agente;

(**) forward-secrecy: optou-se por manter o termo em inglês a fim de melhor compreensão daqueles que buscam maiores informações, falta melhores termos em português para explicá-lo;

(***) capacidade de rejeição: traduzido a partir de “deniability

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.