Signal é mais seguro?

Enquanto a máquina de moer preto e pobre continua, levando consigo o menino João Pedro, George Floyd, e tantos outros, explode diversas manifestações e atos dentro e fora do Brasil e novamente volta a tona algumas discussões a respeito de como se manter seguro, seja de forma física, quanto a nível de comunicação segura. Dentro das diversas plataformas de comunicação, existe uma que é considerada por muitos o ápice da comunicação segura, o Signal, que inclusive é recomendado por grandes nomes como Edward Snowden (o que vazou esquemas de espionagem realizado durante a gestão Bush/Obama em outros países, incluindo o Brasil).

E apesar de compreender a utilização dele, eu tenho algumas desconfianças com algumas abordagens da empresa que o gere (Open Whisper Systems) e seu criador, Moxie. O que me leva a continuar a me perguntar se ele é de fato seguro e quais seus verdadeiros interesses.

Veja bem, hoje em dia, o Signal é destacado como o mensageiro mais seguro e quase utilizado como a solução de facto quando o assunto é privacidade. Ainda mais quando é endossado por ativistas de peso sobre segurança da informação e jornalismo investigativo, indicando que “eles confiam no Signal por conta da forma que é feito”, destacando itens como “código aberto”, “(a empresa) fundada por doações”.

Podemos então assumir que o Signal é utilizado por pessoas que vão desde entusiastas e pessoas preocupadas com a sua segurança, quanto pessoas que utilizam-o para distribuir e organizar informações críticas e sensíveis. Informações que se vazadas, poderiam levar inclusive a escandâlos (como vimos acontecer com a Vaza Jato) ou com perseguições e até morte de ativistas e whisteblowers (delator). É necessário muito além de que essas pessoas confiem que o sistema é seguro, é necessário que o sistema se fundamente em cima de argumentos e decisões sólidas.

Entenda que, de um ponto de vista técnico, em geral quando se desenvolve um sistema, é necessário fazer concessões ou trocas. Por exemplo, quando falamos da distribuição do aplicativo, este se dá através de canais que são “convenientes” mas inseguros? Ou ela se dá através de canais alternativos, mas que protegem e entregam uma maior confiabilidade das informações? É responsabilidade de quem está por trás do sistema de apresentar essas trocas, de fazer um balanço crítico, sério e profundo, apresentando as vantagens e desvantagens de cada opção e sem cair em reducionismos imprecisos ou argumentos simplistas como de que “é mais fácil o acesso para o usuário comum”, especialmente quando estamos tratando de assuntos como segurança e privacidade.

Dito isso, o Signal sempre apresentou uma certa resistência sobre alguns assuntos que fazem me olhar sempre com uma certa desconfiança sobre essas questões e sua abordagem. Quero apresentar algumas delas aqui.

Distribuição do Aplicativo Android

Hoje, o Signal distribui a versão do seu aplicativo Android através da loja oficial do Google, a Google Play. Vamos, primeiro analisar algumas informações sobre isso. A Google hoje, é por consenso, o complexo empresarial que mais conseguiu implementar com sucesso o que alguns especialistas chamam de capitalismo de vigilância surveillance capitalism1. O que significa que hoje a Google tem a maior rede de máquinas com o propósito de analisar e captar informações privadas dos seus usuários em diversas plataformas que ela incorpora.

Apesar do Google ser o principal mantenedor, o Android, por si só é um projeto de software livre, o que permite derivações e outras versões do Android sem toda a carga e ligação com o Google. Projetos como Paranoid Android, CyanogemMod, LineageOS são distribuições do projeto Android, geralmente focando em segurança, privacidade e em remover a “carga” que vem do Google.

Quando refere-se a essa “carga” que vem do Google, essencialmente se fala sobre o Google Play Services, um alvo de bastante discussão afinal de contas, o serviço do Google Play Services permite que aplicativos possam automáticamente instalar atualizações e liberar permissões de forma silenciosa para os aplicativos que ela bem entender. Não bastando isso, um alvo de duras críticas é a própria Play Store, a loja oficial de aplicativos da Google. Uma das principais críticas, de anos é a falta de avaliação de qualidade de aplicativos disponibilizados dentro da loja. Para ilustrar, basta você pesquisar por “lanterna” e analisar a lista dos primeiros 5 aplicativos que aparecem. Todos pedem permissões absurdas como Contatos, Acesso a Internet, GPS. O que diabos é necessário de acesso a Contatos em um aplicativo que simula uma lanterna? Colocando em termos “corretos”, hoje a Play Store consegue ser um dos maiores lugares de phishing (quando um site, email, ou aplicativo simula algo que ele não é).

Por um longo período, o Signal só funcionava se você tivesse o Google Play Services instalado (algo que só foi corrigido em 2017 por conta de protestos de diversos ativistas e usuários) e hoje finalmente é possível baixar o APK (o .exe do Android) diretamente do site do signal.org, mas agora a gente vai explorar um pouco mais sobre esse tópico.

Canais Alternativos de Distribuição

Dado o contexto da Google Play Store, alguns usuários criaram uma plataforma alternativa de distribuição de alguns projetos de software livre, chamada F-Droid da qual além de ser construida coletivamente consegue lidar com diversos pontos falhos da loja oficial do Google. Alguns usuários propuseram 2 que o Signal devia ser distribuido pelo F-Droid em 2013, fosse esta uma migração completa (retirando a versão da Play Store) ou parcialmente (disponibilizando como uma forma de downloda alternativa) da qual o criador e mantenedor do projeto, efetivamente fechou a discussão e tampouco mudou sua opinião sobre esse assunto. Eu queria demonstrar alguns pontos que ele levanta como argumento contra essa migração, lembrando que está é uma tradução livre e você pode ler o original aqui.

[No F-Droid] Não existe um canal de atualização. Atualizações automáticas são um dos pontos mais efetivos e seguros e não ter eles seria uma catrástofe para o projeto.

Pois bem, antes de adentrar mais a fundo nas questões específicas do argumento usado pelo Moxie, preciso deixar claro que o catálogo de aplicações do F-Droid trabalha com a lógica de repositórios. Ou seja, além do repositório principal, da qual é mantido pela rede de contribuidores do próprio F-Droid, é possível adicionar de forma externa um repositório mantido por terceiros, seguindo o mesmo padrão já bem estabelecido dentro do universo Linux.

Veja bem, o argumento do Moxie nesse momento, é centrado na falta de atualizações automáticas (algo que o Play Services faz por padrão) e de uma certa “burocracia” para lançar uma atualização, pois seria um trabalho manual e demorado, algo que não aconteceria se o Signal tivesse seu próprio repositório, afinal isso talvez fosse um trabalho colossal? 3 Entretanto, o Signal não parece ter medido tantos esforços para incorporar busca de GIFs 4 ou pacotes de figurinhas. Também vale lembrar que a empresa da qual o Signal busca os seus GIFs, recentemente foi comprada pelo Facebook 5 por $400 milhões. Sim, aquele monopólio envolvido no escandalo da Cambridge Analytics, eleições dos EUA em 2016, disseminação em massa de Fake News e fartos casos de invasão de privacidade e mineração de dados. É bom lembrar que a empresa por tras da Signal, recebeu recentemente uma doação generosa de $50 milhões 6, o que talvez pudesse ajudar afinal toda a operação do F-Droid se baseia com doações de voluntários, entusiastas e dinheiro pessoal dos criadores.

Mas tudo bem, vamos dar continuar lendo alguns dos argumentos do Moxie sobre esse assunto:

Uma das coisas [boas da Play Store] é que existe uma checagem de validação da assinatura 7 das APKs, se a gente voltar a distribuir essas APKs através da internet, é como reverter ao modelo inseguro de distribuição lá de 2000 [alô Baixaki] e todas as preocupações com malwares que advém disso 8

Vamos voltar ao exemplo da “lanterna” na Play Store. As aplicações que simulam uma lanterna, não são nada mais que aplicações que recolhem indevidamente as informações do celular e revendem os dados pessoais para terceiros. Ou seja, essa validação que é feita na Play Store, não serve de muita ajuda, não é mesmo? Mas esse, nem é o ponto mais gritante do argumento falho do Moxie, mas sim o fato de que assim como as distribuições Linux fazem a anos, o catálogo de aplicações do F-Droid passa também por uma cuidadosa curadoria feita a mão por voluntários e as devidas assinaturas das aplicações são igualmente verificadas 9. Considerando ainda a opção mencionada de rodar o seu próprio repositório, esse acaba quase nem se tornando um problema.

Se você quiser, você sempre pode espiar a lista de discussão de aberta já a 7 anos, da qual diversas pessoas expõem as falhas nos argumentos do Moxie, até que enfim ele tranca a discussão afirmando que é um problema que não vai ser reaberto.

Download direto do APK

Em 2017, o Signal adicionou uma opção para poder obter um APK oficial, diretamente do signal.org. Segundo ele, foi feito para diminuir os danos e evitar pessoas baixando versões encontradas aleatóriamente na internet. A página é curiosa, porque é cheia de anúncios e avisos sobre como ela é uma alternativa estritamente para “usuários avançados”, que é um “método menos seguro”, quase que como uma forma de obrigar as pessoas a procurarem a versão disponibilizada pela Google Play.

Dado esse download, o usuário teria que manualmente descobrir se aquele APK é de fato o mesmo que foi disponibilizado pelo site, verificando o checksum 10 e toda vez que saísse uma atualização teria de manualmente refazer todos esses passos. Dois pontos que novamente o F-Droid já resolveu, afinal além de verificar o checksum, todos os aplicativos são digitalmente assinados. Se o objetivo de disponibilizar o download direto é “reduzir os danos” porque tanta resistência a não adicionar no F-Droid?

Porque essa resistência?

No mundo do software, existem os softwares de código aberto, que em teoria permitem que um usuário possa além de ler o código fonte, modificar e distribuir uma derivação do projeto original. Os aplicativos Android e iOS da Signal são aplicativos de código aberto. De forma geral, quando um aplicativo de código aberto está tomando decisões erradas ou andando por linhas tortas, um grupo de desenvolvedores pode clonar o projeto (fazer um fork) e então seguir o seu caminho. Isso acontece quase que diariamente e é uma das grandes armas do desenvolvimento de software livre. Entretanto, a Signal já deixou bem claro que isso não é algo que eles querem que aconteça e que seja feito, afinal a comunicação do Signal passa por servidores centralizados.

Confiança e Federação

Veja bem, um sistema seguro de fato, não precisa que você confie no provedor desse sistema. Dado isso, você precisa confiar que o Moxie está rodando o servidor da forma que eles dizem que estão rodando 11. Você precisa confiar que eles não estão copiando uma lista de conversas que você manteve, por quanto tempo e como. Além do fato, de ter que confiar que se o Signal receber uma notificação da NSA esses dados não vão ser repassados para a agência. Acima de tudo precisa lembrar que os servidores do Signal, estão localizados justamente… nos EUA. A terra da liberdade pode tudo, inclusive [espionar outros países]12 e seus próprios cidadões. A Signal pode nos dizer que esses dados não são guardados, mas eles não podem nos garantir que não seria possível fazer isso.

Dado esse cenário de desconfiança e dúvida, o comportamento da Signal poderia ter uma saída, que é a Federação, ou seja, passar por um protocolo aberto e padronizado.

Serviços Federados13, como por exemplo email, permitem que eu possa enviar um email do meu próprio domínio (@eletrotupi.com) para, por exemplo, a você no seu provedor de email (@meudominio.com.br). Aplicando esse conceito, tornaria possível, que eu possa instalar o Signal na minha própria máquina e me comunicar com outros servidores do Signal, distribuindo a comunicação e mitigando os riscos de segurança. Perpassando a mensagem em diversos outros operadores, inclusive em diversos outros países com suas próprias leis de dados (ou não). Isso torna mais difícil (mas não impossível), por exemplo os Estados Unidos possa simplesmente bater na porta do Signal e apreender os servidores.

Federar, também ajudaria a lidar com o vácuo que existe entre outros diversos protocolos e serviços de comunicação de código aberto, afinal todos falariam na mesma língua ou dado que fosse possível, converter entre eles.

Moxie e a Open Whisper, hoje não permitem que você possa distribuir outros binários do aplicativo do Signal, e inclusive proíbe você de usar os servidores deles para armazenar as conversas. Justamente pelos servidores dele não fazerem parte de um protocolo federado, derivações do Signal não conseguem conversar com usuários do Signal.

Veja como é o esquema, nenhuma derivação do Signal funciona, apesar do código-fonte ser aberto. As diversas reclamações ou críticas do projeto são ignoradas, apesar de usuários poderem corrigir falhas e sugerir melhoras (o que a Signal aproveita com alegria) e os dados são centralizados em um servidor que só eles tem acesso, do qual é localizado dentro do império que pode tudo. Nenhum projeto de derivação do Signal conseguiu ganhar tração 14 e nunca vai, afinal você não pode conversar com usuários do Signal. Inclusive, sequer existem aplicativos de terceiros que possam interagir com o Signal. Signal pode oferecer os argumentos que eles quiserem, mas todos só servem de desculpas para que eles permitam ter um sistema que age da forma que eles querem, para servir os interesses deles.

Com certeza esses são problemas complexos e difíceis de serem resolvidos. Mas a gente tem diversos exemplos de projetos abertos que resolveram problemas similares de forma coletiva, com menos de 1/3 do apoio financeiro que o Signal possui.

Alternativas

O fato é que, se você precisa se comunicar de forma privada/protegida, é muito difícil. É amplamente difundido o WhatsApp no Brasil, e o Signal/Telegram são umas poucas alternativas conhecidas e populares aqui na nossa terrinha tropical. Existe ainda, por exemplo o Matrix, que é um dos poucos que tem um modelo federado e é passível de hospedar de forma pessoal, permitindo que eu possa ter um servidor na minha máquina em casa, ou que uma organização política possa disponibilizar para sua militancia. Email ainda é uma das melhores opções, pela sua plasticidade, federação, inúmeras implementações dos agentes de protocolo e poder de criptografia (eu imploro, parem de usar o Google ou o Hotmail).

Gosto muito desse conceito de que “não existe espaço vazio” na política, e acho que ele se aplica bem no caso da Signal. Essa resistência oferecida pela Signal quando colocada frente-a-frente com seus argumentos revelam que essas decisões na verdade não são por ingenuidade da empresa, tampouco são escolhas feitas porque é o certo a se fazer para garantir a segurança dos usuários mas sim porque elas servem aos interesses da empresa de uma forma que não fica muito claro. Alias, o que será que a Signal fez com aqueles 50 milhões de dolares?


  1. https://journals.sagepub.com/doi/10.1177/1095796018819461 ↩︎

  2. https://github.com/signalapp/Signal-Android/issues/127 ↩︎

  3. Não é ↩︎

  4. https://signal.org/blog/signal-and-giphy-update ↩︎

  5. https://www.fastcompany.com/90505929/the-real-reason-facebook-bought-giphy-for-400-million ↩︎

  6. https://signal.org/blog/signal-foundation ↩︎

  7. Todo software pode ser assinado digitalmente, de forma a verificar que aquele aplicativo foi feito e distribuido por quem afirma que fez e distribuiu ele. ↩︎

  8. Malwares é uma forma de ataque onde você afirma que é um instalador de um software, que traz junto diversos outros softwares ruins junto. Tipo, o Bolsonaro e seus ministros ou as barras de pesquisa do Baidu. ↩︎

  9. Documentação do Processo de Assinatura Digital do F-Droid ↩︎

  10. Checksum é uma forma simples de “bater” as informações, se um arquivo tem o mesmo número de bytes que outro. ↩︎

  11. Apesar dos aplicativos do Signal possuirem um código aberto, os servidores não são. ↩︎

  12. https://www.bbc.com/portuguese/noticias/2013/09/130908_eua_snowden_petrobras_dilma_mm ↩︎

  13. Para um projeto “Federar” ele tem que ter um protocolo aberto e publicado como um padrão, como o HTTP (que permite que a Web exista). ↩︎

  14. Veja o LibreSignal ↩︎

Ficou com alguma dúvida ou viu alguma coisa que não curtiu em relação a esse post? Vamos discutir sobre, manda um email lá na minha caixa de entrada pública ~porcellis/public-inbox@lists.sr.ht