porcellis.com

ref: master

content/blog/signal-e-mais-seguro.md


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
---
title: "Signal é mais seguro?"
date: 2020-06-19
tags: ["reflexao", "privacidade"]
---

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
capitalism[^vigilancia]. 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.
[^vigilancia]: https://journals.sagepub.com/doi/10.1177/1095796018819461

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 [^1] 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](https://github.com/signalapp/Signal-Android/issues/127#issuecomment-13335689).

[^1]: https://github.com/signalapp/Signal-Android/issues/127

> [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?
[^2] Entretanto, o Signal não parece ter medido tantos esforços para
incorporar busca de GIFs [^3] ou pacotes de figurinhas. Também vale
lembrar que a empresa da qual o Signal busca os seus GIFs, recentemente
foi comprada pelo Facebook [^4] 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 [^5],
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.

[^2]: Não é
[^3]: https://signal.org/blog/signal-and-giphy-update
[^4]: https://www.fastcompany.com/90505929/the-real-reason-facebook-bought-giphy-for-400-million
[^5]: https://signal.org/blog/signal-foundation

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

> Uma das coisas [boas da Play Store] é que existe uma checagem de
> validação da assinatura [^6] 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 [^7]

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 [^8].
Considerando ainda a opção mencionada de rodar o seu próprio
repositório, esse acaba quase nem se tornando um problema.

[^6]: 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.
[^7]: 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.
[^8]: [Documentação do Processo de Assinatura Digital do F-Droid](https://f-droid.org/en/docs/Signing_Process)

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 [^9] 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?

[^9]: Checksum é uma forma simples de "bater" as informações, se um
  arquivo tem o mesmo número de bytes que outro.

## 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 [^10]. 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][^11]
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.

[^10]: Apesar dos aplicativos do Signal possuirem um código aberto, os
  servidores não são.
[^11]: https://www.bbc.com/portuguese/noticias/2013/09/130908_eua_snowden_petrobras_dilma_mm

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 Federados[^12], 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 [^13] 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_.

[^12]: Para um projeto "Federar" ele tem que ter um protocolo aberto
  e publicado como um padrão, como
  o [HTTP](https://tools.ietf.org/html/rfc2616) (que permite que a Web
  exista).

[^13]: Veja o [LibreSignal](https://github.com/LibreSignal/LibreSignal)

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](https://matrix.org), 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?