Por Z1010010

Na parte anterior desta série de artigos, publicada mês passado, foram vistos alguns usos práticos da comunicação distribuída. Agora, serão apresentados alguns programas e aplicativos que tornaram possíveis aqueles usos. Dado o caráter mais permanente e duradouro (evergreen) desta série de artigos, é necessário destacar que ela está sendo publicada em 2021, e apresenta programas e aplicativos tal como existiam neste ano; com o passar do tempo novas funcionalidades podem ser introduzidas e outras podem ser removidas, portanto é preciso ter as orientações abaixo apenas como uma “base”.

O objetivo deste artigo é ensinar como instalar e usar alguns programas e aplicativos de comunicação distribuída selecionados, para que usuários possam experimentar na prática a comunicação distribuída e avaliar se é ou não funcional para uso em determinadas situações. Não será apresentado nem avaliado qualquer detalhe técnico sobre esses programas e aplicativos; usuários interessados poderão consultar a documentação adequada nos respectivos sites. Para que esses testes sejam eficazes, é necessário engajar no mínimo duas pessoas, senão é impossível haver comunicação; quanto mais pessoas participarem, mais interessantes serão os experimentos.

A apresentação destes programas e aplicativos não implica em qualquer endosso a eles por questões técnicas, ou preferência como resultado de comparações mais profundas com outros programas/aplicativos; o único critério foi terem sido usados nos casos apresentados no mês passado. Qualquer outra solução de software capaz de desempenhar as mesmas tarefas é bem-vinda, e pode ser deixada nos comentários.

Jami

Jami é um aplicativo de teleconferências baseado em tecnologia par-a-par (peer-to-peer), mantido pela empresa canadense de tecnologia Savoir-faire Linux Inc., que substitui com muita tranquilidade (e muito mais privacidade e segurança) programas/aplicativos como Skype, Zoom e Google Meet. Compatível com Windows, Linux, MacOS, iOS, Android (do 5.0 em diante) e AndroidTV, usa-se Jami para fazer chamadas de áudio e vídeo, compartilhamento de tela, conferências e troca de mensagens de texto. Embora Jami ainda use umas poucas estruturas que dependem de algum servidor — especialmente blockchain e OpenDHT — vê-se aqui uma enorme diferença: elas não servem para retransmitir mensagens, e sim para dar os pontapés iniciais às estruturas descentralizadas que, aos poucos, vão substituindo-as. (A Savoir-faire Linux chega a afirmar, talvez com algum exagero, que “mesmo se cessássemos completamente nossas atividades o serviço não seria interrompido”.)

A interface de usuário é muito parecida com a de outros aplicativos de teleconferência. Ao instalar Jami, é necessário criar uma conta. As informações associadas a essa conta ficam guardadas no próprio computador ou celular onde foram criadas, e não são encaminhadas a nenhum servidor central. Opcionalmente, é possível colocar uma foto no perfil, registrar um nome de usuário (numa estrutura descentralizada de descoberta que, mais uma vez, não depende de que uma estrutura central de servidores guarde essas identidades) ou criptografar a conta com uma senha (que, novamente, fica na própria máquina de quem está criando o perfil e não é enviada a qualquer servidor central). Mas atenção: como indicado no site do aplicativo, se você não guardar essas informações em algum lugar (como um cofre de senhas), não será possível recuperá-las depois. Como todas as informações e dados de seu perfil são guardadas no próprio aparelho, não há nenhum botão “Esqueci minha senha” para te ajudar.

Feito o perfil, é preciso adicionar outros usuários. Ao clicar em “Adicionar conversa”, abre-se uma janela onde se pode adicionar alguém próximo por meio da leitura de códigos QR, ou pesquisar outros usuários por seus nomes (que podem ser pseudônimos) ou números de telefone (informação opcional fornecida ao criar a conta). Adicionados os contatos, Jami pode ser usado como qualquer outro software de mensagens, ligações ou chamadas em vídeo.

Até onde foi possível experimentar, as chamadas com vídeo e áudio com Jami são muito boas, dificilmente são interrompidas ou cortadas. A ferramenta de mensagens de texto também permite enviar mensagens em áudio, mensagens em vídeo, e anexos de todo tipo, além de permitir partilhar a tela e — algo surpreendente — a localização do aparelho, como se faz via Google Maps, mas somente se os serviços de GPS do aparelho estiverem ligados.

Embora Jami seja apresentado como um aplicativo de teleconferências, talvez esteja aqui sua única “fraqueza”: a qualidade das teleconferências é muito boa, mesmo com grande número de convidados, mas para fazê-las é preciso alguma habilidade. Como não há uma estrutura centralizada de servidores, não há um “ponto” para o qual participantes possam “convergir” para realizar a chamada em grupo. Enquanto a equipe da Savoir-faire Linux Inc. não encontra melhor solução, tiveram de recorrer a uma solução engenhosa, mas pouco intuitiva: uma conta “anfitriã” precisa ir até as configurações e localizar a opção “Modo de Encontro”, ou “Converta sua conta num ponto de encontro” (os nomes mudam de plataforma a plataforma); com isso, é essa conta “anfitriã” que servirá como “ponto” para o qual convergirão os demais participantes. Usuários acostumados a simplesmente adicionar pessoas à chamada, como se faz em outros aplicativos de comunicação baseada em modelo centralizado, talvez demorem um pouco a pegar o jeito. Mesmo assim, a qualidade das chamadas compensa o esforço. Da mesma forma, Jami não permite mensagens em grupo, e por isso não se pode recomendá-lo sem a indicação, em paralelo, de uma ferramenta que permita alguma interação em grupo.

Briar

Briar (do inglês: “roseira brava”, ou “arbusto espinhoso”) é um aplicativo de código aberto para celulares ou tablets com sistema Android (não há versão desktop ou web, nem versão para iPhone), desenvolvido pelo Projeto Briar com base em captação de recursos junto a Small Media, Open Internet Tools Project, Open Technology Fund, Prototype Fund, Internews, NLnet Foundation, Next Generation Internet e ISC Project.

Gozando de excelente avaliação em sua primeira auditoria, feita pela empresa alemã de cibersegurança Cure53, Briar é apresentado como um “aplicativo desenhado para ativistas, jornalistas e todos que precisem de uma forma segura, fácil e robusta de comunicação. Diferentemente de mensageiros tradicionais, Briar não depende de um servidor central — mensagens são sincronizadas diretamente entre os aparelhos dos usuários. Se a internet cair, Briar pode sincronizar entre aparelhos usando Bluetooth ou wifi, mantendo o fluxo de informações numa crise. Se a internet estiver funcionando, Briar pode sincronizar entre aparelhos usando a rede TOR, protegendo os usuários e seus relacionamentos contra vigilância”. Um dos objetivos por trás do aplicativo é “possibilitar a pessoas em qualquer país criar espaços seguros onde possam debater qualquer assunto, planejar eventos e organizar movimentos sociais”.

Em comparação com WhatsApp e Signal, usuários não precisam depender de uma estrutura centralizada. Como Briar usa um modelo distribuído de comunicação que não depende de servidor(es) central(ais), Briar consegue ignorar filtragem de conteúdo, ordens judiciais de suspensão temporária ou permanente de seus serviços, ataques DDoS e vigilância baseada em dados ou metadados. Todos os dados de um perfil ficam guardados no aparelho do próprio usuário, e as mensagens só saem dele rumo aos aparelhos dos contatos adicionados ou que participam dos grupos fechados, fóruns ou blogs fornecidos pelo Briar.

Acima, mapa de ataques DDoS no mundo. Enquanto no resto do mundo há um padrão concentrado em ataques saindo de um país rumo a outro, no Brasil há enorme concentração de ataques “endógenos”.

Para usar Briar, é necessário primeiro baixá-lo e instalá-lo em seu celular ou tablet (clique aqui para fazê-lo). Ao abrir o aplicativo, surge uma tela onde você cria um nome de usuário e uma senha. Mas atenção: se você não guardar essas informações em algum lugar (como um cofre de senhas), não será possível recuperá-las depois. Como todas as informações e dados de seu perfil são guardadas no próprio aparelho, sendo até o presente momento impossível transmiti-la a outros dispositivos ou fazer uma cópia de segurança (embora ambas características estejam nos planos dos desenvolvedores), não há nenhum botão “Esqueci minha senha” para te ajudar. (É possível no futuro que Briar permita o uso da mesma identidade em vários dispositivos, pois a criação de um aplicativo desktop é um dos objetivos dos desenvolvedores e já existe uma versão alfa para Debian, ou multiplataforma via Java.)

Em seguida, ao abrir o aplicativo, você pode ver seu menu. Lá se vê que Briar pode funcionar das seguintes maneiras:

  • Contatos: diferentemente de outros aplicativos, Briar não usa os contatos de sua agenda; ele cria uma lista própria de contatos, interna ao aplicativo, todos criptografados. É possível montar sua agenda de contatos de três modos: pessoalmente, por intermédio de um contato comum, ou por meio de links de apresentação.
    • No primeiro caso, clica-se no “sinal de mais” no canto inferior direito, depois em “Adicionar contato que está próximo”; com isso, abre-se um diálogo que te ensina a “se apresentar” a um novo contato usando um código QR (que, por razões de segurança, não pode ser compartilhado por outros aplicativos, nem printado para compartilhamento).
    • No segundo caso, quando Maria “apresenta” Simone a Verena, desencadeia-se um processo em que, primeiramente, Simone precisa autorizar essa “apresentação”; deste modo, um usuário passa a saber que seu contato está sendo encaminhado a alguém. Depois, quando Simone autoriza ser “apresentada” por Maria a Verena, esta última diz se aceita ou não essa “apresentação”. Com este último passo, é finalizada a “apresentação” (muito parecida com uma troca de chaves criptográficas), e os contatos foram trocados.
    • No terceiro caso, Ermínia fez seu perfil, tocou no “sinal de mais”, depois em “Adicionar contato à distância”, copiou o link ali apresentado e enviou a Helena por meio de outro aplicativo. Helena, que também tem Briar instalado, copiou o link lá onde o recebeu, abriu o Briar, tocou em “Adicionar contato à distância”, colou o link no lugar indicado, deu um apelido a Ermínia e terminou tocando em “Adicionar contato”. Depois Helena fez o mesmo processo no sentido inverso, mandando um link para Ermínia. Com essa troca de links, que funciona de modo exatamente igual à troca de chaves públicas GPG, os aparelhos “se apresentam”, e podem então “conversar”.
  • Mensagens diretas: é a funcionalidade mais básica do aplicativo.
  • Grupos Privados: contatos que já “se apresentaram” podem interagir em grupos fechados, semelhantes a grupos de Signal, Telegram ou WhatsApp.
  • Fóruns: são como salas públicas de bate-papo onde todos comunicam-se com todos, mesmo aqueles que ainda não “se apresentaram”.
  • Blogs: são verdadeiros blogs, publicações “de mão única” cujas postagens podem ser compartilhadas por usuários dentro do próprio aplicativo, sem compartilhamento externo. Briar permite que as publicações dos blogs sejam repassadas dentro de sua rede, como se fosse um “textão” compartilhado no Facebook, um retuíte (Twitter) ou um retute (Mastodon). Mesmo publicações mais antigas serão encaminhadas a contatos recém-adicionados. Além disso, os blogs permitem que Briar funcione como um agregador de fluxos RSS, e portanto “notificar” usuários a cada nova publicação num blog ou website exterior à rede Briar.

Acima, da esquerda para a direita: mensagem direta, blog e grupo privado no Briar.

A primeira característica que se percebe ao usar Briar, a mais marcante, é que todas as comunicações são feitas via texto ou emojis. Não há fotos, vídeos, áudios, stickers ou outras características comuns a outros aplicativos. Também não é possível anexar arquivos. Por razões técnicas bem complicadas de explicar, essa aparente fraqueza é uma das mais fortes medidas de segurança do aplicativo, pois dificulta ainda mais identificar, ainda que por dedução, qual a natureza do tráfego de dados em caso de interceptação.

Por trás dessa simplicidade espartana de funcionamento e de interface de usuário, Briar mostrou-se em diversas situações um aplicativo de comunicações extremamente robusto, capaz de manter as comunicações fluindo mesmo nas situações mais adversas. A ferramenta de blogs, especialmente, está sendo usada em Myanmar, Hong Kong e Irã para disseminar informações e contornar censura e perseguição, em conjunto com outras ferramentas como Telegram e Bridgefy. Torsten Grote, um dos membros da equipe por trás do Briar, diz que o aplicativo é “agnóstico quanto à forma como você transmite os dados”; nessa e em outra oportunidade, mencionou inclusive a possibilidade de uso do IPoAC, tal como descrito na RFC 1149. Apesar disso, usuários envolvidos nas situações narradas mês passado ressentiram-se de certa demora no encaminhamento e entrega das mensagens, que demoram de alguns segundos a alguns minutos para serem efetivamente trocadas entre aparelhos conectados. Dada a natureza extrema das situações em que Briar foi usado como alternativa, entretanto, isso não chega a ser motivo para recomendar sua rejeição, mas sim que seja mais intensivamente usado e testado, para que outras falhas possam ser indicadas aos desenvolvedores e o aplicativo melhore.

(Por sinal, falando em Bridgefy, este produto de uma startup mexicana homônima recolhe muito mais dados e informações pessoais do que quer dar a entender pelo fato de usar tecnologia par-a-par. Além disso, após auditoria realizada com base em engenharia reversa do aplicativo, que não é de código aberto, pesquisadores da Universidade de Londres indicaram que atacantes com recursos modestos e capacidades técnicas moderadas podem desanonimizar usuários, construir grafos sociais representando a interação entre usuários, decriptar e ler mensagens diretas, fazer-se passar por outros usuários, derrubar completamente a rede do aplicativo e fazer ataques de interceptação [man-in-the-middle] tanto para ler as mensagens quanto para alterar seu conteúdo. Depois dessa auditoria a startup Bridgefy passou a mandar mensagens confusas pelo Twitter [ver aqui, aqui e aqui] afirmando que o aplicativo não fornecia criptografia ponta-a-ponta — contrariando todo o marketing anterior da empresa, que portanto havia mentido quanto ao assunto — e não deveria ser usado para comunicações sensíveis. Por último, a Bridgefy simplesmente retirou toda a criptografia do aplicativo, que passou algum tempo sem qualquer segurança para as comunicações de seus usuários até que em 30 de outubro de 2020 seus desenvolvedores anunciaram a substituição de seu protocolo de comunicação anterior pelo protocolo Signal — mas a atitude totalmente amadora da Bridgefy ao lidar com falhas gravíssimas de segurança no aplicativo e no protocolo levam a recomendar pessoas com perfil de risco mais alto a passar longe desse aplicativo.)

Scuttlebutt

Scuttlebutt (do inglês: “fofoca”) é uma rede social distribuída, criada com base no protocolo de mesmo nome. Começou quando Dominic Tarr, desenvolvedor de software, leu um artigo que desenhava as bases conceituais de um protocolo para comunicação par-a-par assíncrona — ideal para o estilo de vida off-the-grid de quem mora num barco em alto-mar, como ele. Com essa estrutura conceitual, deslanchou o que veio a ser o protocolo SSB (Secure Scuttlebutt) de comunicação distribuída.

Sendo mais um protocolo que uma rede social propriamente dita, Scuttlebutt permite criar enorme gama de programas e aplicações além daqueles que, como Manyverse (para Android), Planetary (para iPhone), Patchbay ou Oasis (para Windows, macOS ou Linux), permitem usar o protocolo como uma espécie de rede social.

Tudo o que um usuário publica usando Scuttlebutt vai primeiro para uma espécie de “diário” guardado em sua máquina, de onde só sai em duas situações: que já existam conexões entre este usuário e outros dentro do Scuttlebutt; e que esses usuários estejam conectados por Bluetooth, pelo mesmo modem/wifi, ou por meio da internet. As publicações neste diário aceitam linguagem markdown para negrito, itálico, tamanho de fonte, links etc.

Scuttlebutt copia para seu banco de dados as publicações das pessoas que você segue, e das pessoas que elas seguem; publicações de pessoas mais distantes que esses dois “nós” da rede não serão baixadas, a não ser que você as busque. O funcionamento mais simples do Scuttlebutt é por meio desses “nós”, que atuam como uma espécie de “carteiros” para levar as mensagens, fotos, vídeos etc. de um usuário a outro. Outra alternativa é buscar pubs numa lista pública. Um pub é um “usuário público”, instalado em alguma máquina permanentemente conectada à internet. Sua única função, tal como o bartender de um pub, é facilitar contato entre usuários que não se conhecem, transmitindo-lhe as “fofocas” (ou seja: vídeos, texto, áudio etc.) que receberam.

Scuttlebutt tem sido usado com bastante proveito quando conjugado com redes mesh. Ativistas de movimentos de povos originários na Austrália e na América do Sul (Brasil inclusive) têm usado Scuttlebutt para conectar comunidades extremamente isoladas, integrando-as.

Se quiser começar a testar Scuttlebutt, recomenda-se formar um pequeno grupo de pessoas próximas para testar o funcionamento da rede. Sem isso, corre-se o risco de invalidar a experiência, pois Scuttlebutt não vai “sugerir” que você “siga” ninguém, e sem ter com quem se comunicar, não faz sentido usar um instrumento de comunicação. Outra alternativa é buscar pessoas com quem conversar em algum pub; neste caso, prepare-se para usar muito o inglês, pois é o idioma usado pela maioria dos participantes (a comunidade lusófona está crescendo, mas ainda é pequena).

Para testar Scuttlebutt, use um entre esses aplicativos:

  • Patchwork: depois de baixar a versão mais recente deste cliente Scuttlebutt para computadores, rode o programa, que funcionará de imediato — mas atenção, pois sua equipe de desenvolvedores original desistiu de prosseguir com seu desenvolvimento em 5 de abril de 2021 e ele poderá ficar muito inseguro à medida em que o tempo passa.
  • Manyverse: depois de baixar a versão mais recente deste cliente Scuttlebutt para celulares Android, instale-o, crie seu perfil e comece a se comunicar — mas atenção, pois o Manyverse não funciona em segundo plano (deve ficar aberto sempre que você quiser atualizar seu fluxo de mensagens), e um grande volume de mensagens pode “comer” bastante espaço em seu celular.
  • Oasis Desktop: depois de baixar a versão mais recente deste cliente Scuttlebutt para computadores, rode o programa, que abrirá uma pequena janela e depois te dará acesso à rede Scuttlebutt pelo seu navegador favorito.

Depois de instalar o cliente, você poderá querer entrar num pub, embora isso não seja obrigatório para fazer a Scuttlebutt funcionar; consulte esta lista para localizar um pub mais adequado a seus interesses e gostos.

Outras redes, protocolos, programas e aplicativos de comunicação distribuída

Além de Jami, Briar e Scuttlebutt, existem outros programas e aplicativos de comunicação distribuída que podem ser interessantes para o tipo de atividade desenvolvida pelos leitores deste site, mas de cujo uso e funcionalidades se tem pouca notícia:

  • Openbazaar: loja que funciona com base em criptomoedas.
  • Radicle: ferramenta de desenvolvimento colaborativo de software estruturada com arquitetura ponto-a-ponto.
  • Beaker: navegador de internet baseado nos protocolos ponto-a-ponto DAT e Hypercore, que permite hospedar sites dentro do próprio navegador.
  • Magic Wormhole: transferência direta e segura de arquivos entre dois computadores usando a internet.
  • SecuShare: projeto experimental que usa tecnologias P2P para agrupar e-mail, bate-papo, troca de arquivos e uma rede privada num único software.
  • Freenet, Zeronet, e Invisible Internet Project (I2P): redes par-a-par descentralizadas e anonimizadas que funcionam como uma espécie de “rede sobreposta à internet” para hospedar sites e conteúdo.
  • Retroshare: aplicativo de comunicação baseado no conceito de redes “amigo-a-amigo”, em que máquinas conectam-se diretamente, mas a outras máquinas conhecidas com as quais tenha trocado chaves criptográficas; seu uso é complexo e a interface é pouco amigável, mas cria uma “rede interna” que permite dentro dela troca de arquivos, bate-papo criptografado, salas de bate-papo criptografadas, e-mails, chamadas de áudio e vídeo, acesso via TOR e I2P etc.
  • InterPlanetary File System (IPFS): protocolo hipermídia ponto-a-ponto que funciona como uma espécie de “sistema operacional distribuído”, onde todos os arquivos compartilhados estão à disposição de todos. Tem foco em arquivistas, provedores de serviço, pesquisadores que usam grandes volumes de dados (como Tally Lab e a Environmental Data & Governance Initiative), blockchains, criadores e distribuidores de conteúdo (como Netflix) e usuários de internet situados em países com más infraestruturas de rede.

Se começar a experimentar qualquer dos aplicativos apresentados neste artigo, conte-nos sua experiência nos comentários. Mês que vem, daremos um salto: se até agora se falou em aplicativos, será a vez de falar em como construir uma rede de comunicações própria por meio das redes mesh.

2 COMENTÁRIOS

  1. Z1010010, boa apresentação de apps, mas senti falta do Session e do Element (Matrix) na listagem acima, e do Jitsi também :-)

  2. nerdsemlinux, vamos por partes:

    1) Matrix/Element e Jitsi

    Tenha em mente que os aplicativos indicados nesse artigo são, exclusivamente, de comunicação distribuída. Se quiser mais detalhes sobre o assunto, leia a parte anterior dessa série clicando aqui.

    Jitsi e Element/Matrix são software baseados numa arquitetura descentralizada, federativa, que não tem a ver com o conteúdo dessa parte da série. Se você ler a parte anterior, as diferenças ficarão evidentes.

    Jitsi é um excelente software para chamadas em vídeo. Sempre o recomendo, e também o Big Blue Button Quanto a Element/Matrix, num comentário a das partes desta série alguém chamado “Matrizes, determinantes e sistemas” fez uma análise detalhada do protocolo Matrix e do aplicativo Element do ponto de vista da segurança. Mesmo não concordando com o comentário inteiro, vale a pena lê-lo, clicando aqui.

    2) Session

    Session, assim como Status, são mensageiros muito bons, porque:

    a) usam arquitetura descentralizada (assunto desse artigo);
    b) têm código aberto (veja o do Session clicando aqui, e o do Status clicando aqui);
    c) já passaram por auditorias de segurança (veja a do Session clicando aqui, e a do Status clicando aqui)…

    Tanto um quanto o outro são, tecnicamente, muito bons. O que não quer dizer que estejam isentos de problemas: a equipe por trás da rede Waku, tecnologia por trás do Status, já admitiu que a rede “é frágil e não escala”, ou seja, não consegue crescer em grande velocidade (clique aqui e leia o comunicado completo).

    A coisa boa por trás da diversidade do software é justamente permitir a cada um exercer, respeitados certos requisitos técnicos mínimos, sua liberdade e seu gosto. No caso dos dois, a relação umbilical dos dois aplicativos com criptomoedas (incluindo, no caso do Sessions, a criptomoeda própria Oxen) me leva sempre a preferir recomendar software cujo financiamento dependa menos dessa fonte.

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here