Conversations é um cliente Open Source e seguro Jabber / XMPP para Android

Facebook Messenger, WhatsApp e WeChat são os três principais aplicativos de mensagens instantâneas atualmente dominando o mercado. Seu domínio contínuo é facilmente explicado pela inclusão de uma interface simples de usar, juntamente com uma base de usuários de milhões de pessoas. No entanto, cada um desses aplicativos de mensagens instantâneas compartilha uma falha: eles pertencem a gigantes de mídia social. Se alguém se inscrever em uma conta do WhatsApp, também precisará concordar com o contrato de licença de usuário do Facebook. É geralmente entendido que você troca sua privacidade para usar esses serviços convenientes. Embora os desenvolvedores do WhatsApp tenham implementado a criptografia de ponta a ponta como um recurso padrão, o aplicativo em si não é totalmente de código aberto, por isso é confiante que você acredite que o Whatsapp não pode coletar dados sobre você.

Para uma experiência suave de mensagens, todos os principais aplicativos de mensagens instantâneas contam com a implementação nativa de transferência de mensagens do Android chamada Google Cloud Messaging (GCM). A mensagem entra em contato com os interesses comerciais antes mesmo de chegar ao servidor. A maioria dos usuários não está disposta ou é capaz de verificar se o serviço que está usando cumpre suas promessas, e mesmo os especialistas só podem adivinhar se o WhatsApp ainda cumpre determinados padrões de segurança após a atualização do aplicativo. Toda atualização requer uma auditoria de segurança independente, que requer a cooperação do provedor - neste caso, o Facebook.

Independência é a chave aqui, o que nos leva ao Conversations Messenger . É um aplicativo de mensagens instantâneas de código aberto totalmente que evita o uso do GCM usando o protocolo XMPP - fornecendo controle ao usuário. As conversas permitem executar várias contas simultaneamente e você pode até usar uma conta diferente para cada contato. Enquanto outros mensageiros não mencionam visivelmente em qual servidor a informação fornecida é carregada, o Conversations permite que o usuário decida qual servidor Jabber merece sua confiança. Ou, você pode até usar seu próprio servidor. O Conversations também oferece um servidor otimizado para seus requisitos, e os primeiros 6 meses de uso do servidor são gratuitos.

A escolha separa as conversas da multidão. O aplicativo suporta alternar entre algoritmos de criptografia em tempo real e você pode escolher entre três algoritmos de criptografia: PGP, OTR e OMEMO . Enquanto PGP e OTR são algoritmos bem confiáveis, o OMEMO aprimora ainda mais. O OTR nunca foi adequado para a maioria dos usuários, simplesmente porque os dois parceiros de comunicação precisavam estar online ao mesmo tempo para a entrega da mensagem. OMEMO resolve essa grande desvantagem do OTR; A entrega de mensagens não exige que os dois usuários estejam online simultaneamente.

O OMEMO oferece o sigilo direto . O que isto significa? Ele oferece uma camada extra de proteção, mantendo seus dados seguros. Aqui está um cenário: a criptografia de ponta a ponta depende da chave privada armazenada apenas no dispositivo; portanto, se o telefone for roubado, a chave privada cairá nas mãos do ladrão. Sem o Forward Secrecy, o ladrão poderia descriptografar todas as mensagens armazenadas no telefone. O protocolo Forward Secrecy gera uma chave aleatória para cada sessão; portanto, mesmo que a chave privada esteja em mãos erradas, as mensagens armazenadas ainda estarão seguras.

Geralmente, os usuários confiam na identidade do parceiro de conversação, e é por isso que o OMEMO usa identidades de dispositivo. Cada tecla OMEMO vem com uma impressão digital exclusiva, permitindo verificar o parceiro de conversa, por exemplo, por meio de uma ligação telefônica. Depois que os parceiros de bate-papo são verificados, o algoritmo Double Ratchet garante que apenas o destinatário da mensagem possa descriptografá-la. A catraca dupla gera e criptografa todas as mensagens com uma chave temporária. Quando a entrega é bem-sucedida, a chave não vale nada e não pode ser usada para descriptografar nada. Destina-se apenas a manter os dados seguros enquanto viaja pela Internet.

As conversas estão disponíveis na Google Play Store e na Amazon App Store. Embora as versões da loja de aplicativos não sejam gratuitas, o aplicativo é de código aberto para que você possa compilá-lo ou adquiri-lo no F-Droid.

Interessado em aprender mais sobre o aplicativo pela boca do cavalo? Daniel Gultsch, desenvolvedor principal do Conversations, levou algum tempo para responder minhas perguntas.


Entrevista com o desenvolvedor de conversas

P: Você poderia se apresentar brevemente?

R: Meu nome é Daniel Gultsch e estou trabalhando como desenvolvedor e consultor freelancer de software.

P: O que o motivou a desenvolver conversas?

R: Estou usando o Jabber / XMPP por muitos anos. Mesmo em 2009, eu era capaz de usar o Jabber no meu Nokia e71. Por volta do ano de 2012, mudei para um telefone Android e, de repente, não consegui usar o Jabber. Havia um cliente Jabber para Android disponível (Xabber), mas era o oposto de visualmente atraente.

No início de 2014, eu me perguntava o quanto seria difícil desenvolver um cliente de bate-papo com uma aparência melhor (que o Xabber). Nesse ponto, eu tinha experiência no campo de desenvolvimento de software, mas não no Android. Depois de alguns dias, um Maquete da interface do usuário ganhou vida, então me perguntei como seria difícil ensinar o envio e o recebimento de mensagens de tagarelar para essa interface. Três meses de trabalho em período integral depois, foi lançada a primeira versão do Conversations.

P: Você pode dar três razões pelas quais o Conversations protege sua privacidade melhor do que o Whatsapp ou o Threema?

R: Não preciso fornecer meu número de telefone particular a estranhos, se quiser conversar com eles. Eu poderia ter uma conta privada e uma comercial. Posso desativar a conta comercial após o meu turno, para impedir que meu chefe me irrite durante o meu tempo livre. O WhatsApp permite que todos analisem os padrões de uso do meu aplicativo a qualquer momento. (Meu chefe pode me perseguir para investigar se estou usando o WhatsApp durante o horário de trabalho ou se estou usando o WhatsApp à noite, em vez de dormir e ficar bem descansado no escritório.) Isso é diferente nas Conversas; As conversas também não carregam todo o meu catálogo de endereços no Facebook.

P: Quanto custa uma assinatura de um ano de uma conta Conversations.im?

A: 8 euros (cerca de US $ 9). Após um período de teste de seis meses. As assinaturas não se renovam. Não é necessário encerrar a assinatura.

P: Quais vantagens uma conta Conversations.im oferece em comparação com outros servidores XMPP?

R: Novos recursos, que requerem suporte do servidor, são entregues primeiro ao conversations.im. De um modo geral, estamos tentando executar conversations.im com requisitos um pouco mais altos. Um servidor, que é conduzido por um projeto de hobby, pode falhar por um dia, enquanto a pessoa está de férias. Tentamos evitar essas coisas para conversations.im. Pelo menos durante o horário de serviço, sempre há alguém por perto capaz de cuidar do servidor, se necessário. Além disso, você apoia o desenvolvimento do servidor, que também é de código aberto. As alterações feitas especificamente para o nosso aplicativo Conversations acabam no código do servidor e estão disponíveis para outras pessoas.

P: Posso comprar conversas via Bitcoin?

A: Não é o aplicativo. O aplicativo é vendido no Google PlayStore, eles não aceitam Bitcoins. É possível baixar o aplicativo gratuitamente pela F-Droid da App Store de código aberto. Nesse caso, aceito com prazer doações via Bitcoin.

Q: O que é OMEMO

R: Uma criptografia de ponta a ponta (opcional) para Jabber.

OTR falhou facilmente. Se uma determinada mensagem for perdida devido a uma cobertura incorreta do sinal do telefone, as mensagens de acompanhamento também não poderão ser entregues. Além disso, o OTR é capaz apenas de trocar mensagens entre exatamente dois dispositivos no máximo. Por exemplo: Quando estou conectado com dois dispositivos simultaneamente (telefone celular e desktop), meu colega precisa decidir se ele deseja enviar as mensagens para o telefone ou para a área de trabalho. Se minha contraparte não conseguir clarividência, qual dispositivo estou usando atualmente, isso é um problema. Além disso, é claro que as mensagens não são sincronizadas nesse caso, e sinto falta de uma parte do histórico de conversas em cada dispositivo. OMEMO se livra dos dois problemas. O OMEMO é mais confiável e capaz de lidar com mais dispositivos.

P: O que é sigilo direto?

R: Vamos supor que eu excluísse meu histórico de conversas com frequência (pode excluir automaticamente mensagens anteriores a um período configurado.

Vamos supor que alguém estava armazenando toda a minha comunicação criptografada (para que ele não possa fazer nada com ela, ele tem o texto criptografado, não o texto sem formatação. Agora, esse indivíduo rouba meu telefone. As mensagens em si não estão localizadas no telefone mais (eles são excluídos com frequência), mas meu material-chave (minha chave privada) ainda está lá.

Se uma criptografia não tiver o Forward Secrecy, alguém poderá combinar o material principal encontrado no meu telefone, além das mensagens criptografadas que ele gravou antes de poder reconstruir o texto sem formatação. Se a criptografia tiver sigilo direto, isso não será possível.

P: O que o termo Overhead de mensagem descreve?

R: A quantidade de largura de banda necessária, respectivamente, adicionada pela criptografia. Suponhamos que uma mensagem não criptografada tenha um tamanho de 2 KB e a mesma mensagem criptografada tenha um tamanho de 5 KB. Nesse caso, 3 KB é a "sobrecarga" criada pela criptografia.

P: Você planeja implementar um recurso de chamada?

R: Não. Novos recursos surgem se eu precisar deles ou se fizerem sentido do ponto de vista econômico. (Quantas pessoas mais usariam o aplicativo se esse recurso existisse e quanto custa desenvolver esse recurso?) Infelizmente, o recurso de chamada é muito, muito, muito caro e, pessoalmente, não me importo muito com esse recurso.

P: Como posso apoiar o desenvolvimento do aplicativo após a compra do aplicativo?

R: Há detalhes sobre como doar em nosso site. Promoção e propaganda também ajudam, e o aplicativo é de código aberto. Aqueles que são capazes de desenvolver software, podem, é claro, ajudar na codificação.

P: Você desenvolveu o algoritmo OMEMO por conta própria?

R: Não. Era um projeto do Google Summer of Code. (Google Summer of Code significa que o Google paga aos alunos 3 meses por trabalhar em projetos de código aberto.) OMEMO foi desenvolvido para conversas por um aluno.

P: Quais são seus planos adicionais para o desenvolvimento de conversas?

R: Não é provável que novos recursos realmente grandes venham. As conversas fazem tudo o que é suposto fazer. Sob o capô, haverá um ou outro ajuste (uso de dados / velocidade de conectividade e assim por diante). Mas isso não é visível para o usuário comum. Uma coisa pequena, que provavelmente será realizada a seguir, é a possibilidade de confirmar a transferência antes que a foto seja enviada. Até a data, as fotos são sempre enviadas imediatamente.

P: É permitido compilar conversas por conta própria a partir do seu Github e usá-las para uso privado?

A: claro. Não apenas privado, também para negócios e tudo o mais que você desejar. Também é permitido modificar o código para atender a requisitos individuais.

P: É possível encapsular conversas por meio de uma VPN?

A: sim

P: No final, gostaríamos de ouvir a dica de um profissional. Quais medidas, além de usar o Conversations, você recomenda proteger a privacidade como usuário do Android?

R: Ative o Adblocking no seu navegador. Por exemplo, Firefox (também disponível para Android) e o uBlock de expansão.

Desative os serviços de localização (nas versões recentes do Android, existe um arquivo rápido) quando não estiverem em uso. Caso contrário, o Google sabe onde você esteve o tempo todo.

Essas duas coisas são muito simples de aplicar e são úteis na prática.


Nota do editor: este artigo foi originalmente escrito em alemão por Raúl Radonz. Foi traduzido por Raúl Radonz e editado por Mishaal Rahman. Raúl Radonz e -Developers gostariam de agradecer ao Sr. Gultsch por reservar um tempo para conduzir esta entrevista.