Tecnologias de Vigilância e Antivigilância
Análise de aplicativos de chat descentralizado
13/12/2014
Por Lucas Teixeira
Vamos aqui analisar três projetos que estão criando novas ferramentas e serviços de chat / mensagens instantâneas completamente descentralizados: Bleep, Ricochet e Tox.
Antes de entrar em detalhes de cada novidade, é necessário entender o que é “descentralização” e por que ela é vital para garantir que nenhuma organização hegemônica – regimes opressivos, megacorporações – possa censurar ou controlar a Internet.
Des(centralização)
Quando você dá ENTER
na tela de chat do Facebook, a mensagem que quer mandar passa por diversas máquinas – roteadores, backbones, servidores – até chegar em um poderoso computador em alguma parte do Vale do Silício, de onde é encaminhado através de uma outra rota até a pessoa destinatária.
O Facebook Chat usa um protocolo centralizado de bate-papo: para falar com alguém que está lá, você tem que ter também uma conta no Facebook; todas as suas comunicações passam pelas máquinas da corporação, onde ficam registradas possivelmente para sempre:
Já os serviços baseados em XMPP/Jabber são parcialmente descentralizados (ou federados), já que qualquer organização pode ter um servidor (ou “federação”) que consegue interagir com os outros servidores e entregar/receber mensagens para seus próprios usuários:
Já o modo de funcionamento do Bleep, do Tox e do Ricochet é completamente descentralizado, ou P2P / peer-to-peer: as mensagens circulam através dos computadores dos próprios usuários, que se entendem e conseguem entregar as mensagens na pessoa certa:
Metadados
Quando mandamos uma carta através do correio, não basta só escrever a mensagem, não é? Temos que explicar direitinho no envelope pra onde queremos que ela vá, e geralmente colocamos também o nome e o endereço de quem mandou.
Podemos dizer que o conteúdo da mensagem (os parágrafos com notícias importantes, palavras de carinho, desabafos…) são os dados, e as informações sobre esse conteúdo (quem escreveu, quem vai ler, os endereços postais dessas pessoas…) são os metadados.
Segundo a Wikipedia (EN), o prefixo inglês meta é usado para “indicar um conceito que é uma abstração de outro conceito”. A metalinguagem acontece quando usamos a linguagem para falar da linguagem (como em “essa frase foi escrita em português”) ; a metaprogramação, quando um programa de computador manipula outro programa.
No caso do nosso chat, os metadados são quem falou e quem ouviu na conversa, quais são os endereços IP e os ID’s dessas pessoas, quando a conversa aconteceu, a versão do programa de chat e do sistema operacional, etc.
Em um cenário parcial ou totalmente centralizado, mesmo que usemos criptografia para garantir o sigilo das nossas comunicações pessoais, alguns metadados precisam necessariamente ser conhecidos pelos nós centrais: o remetente e o destinatário.
O que um sistema de chat completamente descentralizado promete nesse contexto é acabar com a necessidade de um intermediário que tenha que saber – e provavelmente registrar – quem falou com quem.
Embora à primeira vista esses detalhes possam parecer irrelevantes, saber com quem uma pessoa se comunica revela informações tão sensíveis e importantes quanto saber o que foi comunicado – muitas vezes pior, pois é muito mais fácil computacionalmente fazer a análise e filtragem de metadados, que são pequenos e estruturados, do que do conteúdo das conversas em si, que têm toda a complexidade da voz, do vídeo, da linguagem.
Em uma análise legal dos 13 princípios “Necessary and Proportionate”, dizem a Artigo 19 e a EFF:
[…] o crescente valor dos metadados e as técnicas para agregá-los e analisá-los, significa que mesmo “simples metadados” podem revelar muito mais sobre atividades ou pensamentos de um indivíduo do que há 30 ou 40 anos atrás. Isso se deve, em parte, ao crescente volume e âmbito dos dados coletados
Com esses aspectos técnicos em mente, podemos pensar melhor sobre o que cada ferramenta oferece.
Desde 2013 a BitTorrent vem publicando uma série de artigos sobre um aplicativo de chat criptografado e descentralizado.
Inicialmente chamado de “BitTorrent Chat”, ele foi rebatizado de Bleep no anúncio de uma versão pre-alpha, que estava disponível apenas para pessoas convidadas.
“O principal ponto fraco que enxergamos nas plataformas de comunicação disponíveis é que todas elas dependem de algum servidor central para rotear e armazenar todas as suas comunicações. Mesmo que o seu provedor [de comunicação] consiga implementar uma segurança de nível industrial, ele não consegue te dar garantia alguma de que suas comunicações são privadas. Basta a pessoa certa (ou errada) ganhar acesso aos servidores centrais do seu provedor e sua privacidade vai pelos ares.– http://engineering.bittorrent.com/2013/12/19/update-on-bittorrent-chat/Update on BitTorrent Chat, tradução nossa
O Bleep é um software proprietário, de código-fonte inacessível, o que é um grande impedimento do ponto de vista da segurança.
Se a comunidade de segurança e o público em geral não têm acesso ao código-fonte – as instruções que o computador segue ao executar o programa, de forma inteligível por um
ser humano – não há como garantir que o software faz o que promete, e nada mais que isso.
Quando alguém se propõe a construir um software para sanar a “suscetibilidade das plataformas de comunicação que usamos à espionagem”, como diz o blog de engenharia da BitTorrent, a liberdade de entender como o programa funciona internamente se torna ainda mais crítica.
Através de programas como o BULLRUN a inteligência americana almeja sabotar toda a infraestrutura de segurança da rede, estabelecendo acordos com empresas para possuir “chaves mestras” ou “portas dos fundos” que subvertam algoritmos de criptografia e esquemas de segurança que de outra forma não poderiam ser quebrados.
Além disso, publicar o código-fonte permite que ele seja revisado por qualquer pessoa, e que os bugs – inevitáveis em qualquer projeto de grande porte – sejam encontrados por pesquisadores de segurança e consertados pela empresa responsável pelo produto ou por qualquer outro interessado.
O caminho que enxergamos para que o Bleep seja uma contribuição confiável contra a espionagem é que seu protocolo (a maneira como um computador se comunica com os outros nessa rede descentralizada) seja publicado e que outras pessoas possam criar alternativas ao Bleep, de código aberto, que possam ser usadas no lugar da versão original.
Ricochet
Desde 2013 a BitTorrent vem publicando uma série de artigos sobre um aplicativo de chat criptografado e descentralizado.
Inicialmente chamado de “BitTorrent Chat”, ele foi rebatizado de Bleep no anúncio de uma versão pre-alpha, que estava disponível apenas para pessoas convidadas.
“O principal ponto fraco que enxergamos nas plataformas de comunicação disponíveis é que todas elas dependem de algum servidor central para rotear e armazenar todas as suas comunicações. Mesmo que o seu provedor [de comunicação] consiga implementar uma segurança de nível industrial, ele não consegue te dar garantia alguma de que suas comunicações são privadas. Basta a pessoa certa (ou errada) ganhar acesso aos servidores centrais do seu provedor e sua privacidade vai pelos ares.
http://engineering.bittorrent.com/2013/12/19/update-on-bittorrent-chat/Update on BitTorrent Chat, tradução nossa
Ainda assim, John Brooks era completamente desconhecido da comunidade de segurança, e apresentava ao mundo uma ferramenta que não havia sido revisada por nenhum expert. Isso mudou quando a Invisible.im topou com seu trabalho.
A Invisible.im é coligação de especialistas em segurança (como Grugq e HD Moore, criador do Metasploit) fundada justamente com o objetivo de criar um aplicativo de chat seguro e anônimo. “Cada vez que uma comunicação eletrônica acontece, um registro de que ela ocorreu é gerado e armazenado em algum lugar”, diz o site em sua seçãode perguntas frequentes. “Ativistas pró-democracia em regimes opressores podem ser presos e até mesmo torturados pelo “crime” de se comunicarem uns com os outros”. A história desse grupo é contada em detalhes, em inglês, nessa matéria.
Após encontrar o Ricochet e entrar em contato com John Brooks, a Invisible.im deixou de lado suas tentativas iniciais de juntar outros projetos em software livre e dedicou seu foco completamente a essa ferramenta. O principal objetivo do grupo é captar e gerir financiamento e parcerias para que uma empresa de segurança audite o código-fonte do software, e para que John Brooks (e possivelmente outras pessoas) acrescente funcionalidades, conserte bugs e melhore a usabilidade.
A interface do Ricochet é bem simples: uma janela exibe uma lista dos contatos adicionados, e você pode abrir uma janela de conversa com quem estiver online. Para adicionar um contato, uma pessoa deve saber seu ID,ricochet:thx5ygwobfhs42mt
. Após adicionado, é claro, o contato passa a ser identificado pelo nome que você escolheu.
Há uma página com downloads para Windows, Mac OS X e GNU/Linux – mas também há grandes mudanças no funcionamento do Ricochet planejadas para novembro, e o novo software será incompatível com o que pode ser baixado agora. Além disso, a auditoria formal ainda não aconteceu, então ele não é recomendado para o uso sério. Ele já traz junto consigo o Tor, sendo então desnecessário instalá-lo separadamente. As descrições técnicas do designestão documentadas.
Uma vez que a auditoria tenha sido feita e a nova versão lançada, enxergamos no Ricochet a alternativa mais promissora dessa leva de programas de chat descentralizados. Você pode ajudar testando o software e ajudando a diagnosticar bugs e traduzindo a interface para o português. O próprio John Brooks, é claro, usa o Ricochet – seu ID é ricochet:rs7ce36jsj24ogfw
– e é bastante acessível, se você fala inglês.
TOX
Enquanto o Bleep e o Ricochet têm como foco criar um substituto seguro para o chat, o Tox tem como meta desde o início substituir o Skype e o Hangout, permitindo chamadas de áudio e vídeo. O desenvolvedor irungentoo, que mantém o código-fonte principal do Tox em sua página do GitHub, diz que o objetivo é “tornar difícil para que uma ameaça global vigie todas as pessoas ao mesmo tempo sem sacrificar a performance”.
Ele tem suas origens no 4chan, o famoso fórum anônimo de onde surgiu a figura do Anonymous. Foi em conversas dentro dessa seção de tecnologia que o software e sua identidade visual foram concebidos.
Ao usar o Tox, você se conecta a uma rede descentralizada – não há um servidor que intermedie as conversas. Uma pessoa consegue encontrar seus contatos nessa rede através de uma tabela hash distribuída (DHT, “distributed hash table”). Quando os contatos se encontram, eles revelam seus endereços IP uma conexão direta entre as máquinas pode então ser feita para iniciar uma conversa. Isso quer dizer que usar o Tox em um computador revela seu endereço IP para toda a sua lista de contatos,
Um possível ponto fraco do Tox é que todas as pessoas da sua lista de contatos podem ver seu endereço IP – os metadados não são escondidos. Eles só aparecem para quem você tiver adicionado ou aceitado como amiga(o), no entanto: nenhum outro ponto da rede e ninguém que vigie o tráfego de dados da Internet consegue saber quem está se falando, nem o que está sendo falado.
O projeto ainda não teve uma auditoria formal e nem conta com nomes conhecidos do meio, então não recomendamos esse software em uma situação de risco, quando se é um alvo direto de um adversário organizado. Se a ferramenta se tornar popular, esperamos que mais e mais olhares recaiam sobre o código.
O Tox é, no entanto, uma boa opção para quem quer deixar o Skype e tomar uma atitude contra a vigilância em massa. Aumentar a quantidade de dados criptografados transmitidos na rede é uma das defesas mais eficazes contra a vigilância em massa. Cada camada de criptografia, mesmo que possa ser quebrada individualmente com um certo esforço, torna as operações de coleta massiva de dados conduzida por agências de inteligência como a americana NSA e a britânica GCHQ muito mais custosas.
Créditos e fontes
-
As imagens sobre descentralização foram feitas com a ajuda do grafo-grafico.
Acesse outros conteúdos publicados na “#Edição10 do boletim Antivigilância” acessando a tag “boletim10” abaixo.
Tags: aplicativo, boletim10, chat, criptografia, metadados, privacidade, rede, segurança, serviço, skype, tecnologia, vigilância, wikipedia
Mais conteúdo sobre
- Tecnologias de Vigilância e Antivigilância
Outras notícias
-
04 jul
-
04 jul
-
04 jul
Mais conteúdo sobre
- Arte e Ativismo
Mais conteúdo sobre
- Privacidade e Políticas Públicas