Essa é uma postagem bem específica, mas pode quebrar o galho de alguém.
Sempre usei o Pidgin como gerenciador de contas de mensageria instantânea. Nele é possível configurar diversas contas de chat e já faz um bom tempo uso apenas o protocolo federado XMPP. Optei pelo Pidgin no Debian porque tinha a possibilidade de instalar o plugin do Off-The-Record (OTR), que faz encriptação de ponta-a-ponta no chat. Com isso, temos as seguintes condições de segurança satisfeitas:
- Software livre de código aberto: pidgin
- Protocolo federado: XMPP
- Servidor autônomo: pode ser o do riseup.net
- criptografia de ponta-a-ponta: OTR
- controle das chaves públicas e, principalmente, da privada: numa subpasta da sua “/home/”
Aí outro dia, d4rkcrist4l postou aqui no blog falando que usar um plugin para rodar o OTR poderia ser uma furada. Então, fui atrás de outro programa. Infelizmente, não encontrei nenhum que satisfizesse todos os critérios acima, mais o meu gosto, e ainda tivesse o OTR embutido de fábrica. Porém, descobri outra falha do Pidgin. Dizem por aí que por ele ser escrito em C há mais chances de ele sofrer ataques relacionados à memória (cadê o LINK?), pois essa linguagem precisa de acesso total para manipulação da memória do computador.
Foi então que apareceu o Gajim. Um amigo já havia comentado dele e finalmente resolvi instalar. O Gajim é escrito em python, o que, até onde o meu conhecimento de leigo alcança, melhora drasticamente a vulnerabilidade de memória que o C pode ter. Além disso, esse programa também roda o OMEMO, protocolo que criptografa de ponta-a-ponta conversas em grupo, coisa que o OTR (e o pidgin) não faz.
Com o Gajim instalado, descobri que ele lida com as chaves OTR de um jeito diferente do Pidgin. Como eu não queria ter que gerar novas chaves, descobri um script que resolve o problema. Daqui pra frente é a tradução das instruções do repositório github do pidgin2gajim.
pidgin2gajim
Este programa converte as chaves OTR do formado Pidgin para o forma Gajim.
Seus arquivos OTR do Pidgin estão aqui:
~/.purple/otr.private_key # chaves(s) secreta(s)
~/.purple/otr.fingerprints # impressões digitais (fingerprints)
Seus arquivos OTR do Gajim estão aqui:
~/.local/share/gajim/ACCOUNT.key3 # chave secreta
~/.local/share/gajim/ACCOUNT.fpr # fingerprints
Quando você rodar o pidgin2gajim.py, ele irá carregar automaticamente os seus arquivos OTR do Pidgin do diretório ~/.purple/. Em seguida, criará um novo diretório relativo ao seu local atual chamado “output” e salvará nele os arquivos no formato-Gajim .key3 e .fpr para cada conta que você tiver no Pidgin.
Depois, você precisará mover manualmente os arquivos .key3 e .fpr do diretório “output” para o ~/.local/share/gajim/. Será preciso alterar um pouco o nome dos arquivos (por exemplo, retirar o prefixo “nome_de_usuária@”).
Copiei um bom tanto de código do projeto “otrfileconverter” do Guardian Project para as partes de carregar e manusear o arquivo de chave privada OTR do Pidgin: https://github.com/guardianproject/otrfileconverter
Como Usar
Primeiro, instale o Gajim:
sudo apt-get install gajim
Rode-o e configure suas contas XMPP (jabber). Clique em Editar -> Plugins e mude para a aba Disponível (Available). Baixe e instale o plugin do OTR. (Caso você queira usar novas chaves ou gerá-las pela primeira vez, faça o seguinte: na janela de plugins, selecione o Off-The-Record (OTR) e clique em Configurar para abrir as configurações do plugin. Para cada conta XMPP, gere uma nova chave OTR; feito isso, feche completamente o Gajim.)
Em seguida, baixe e rode o script pidgin2gajim:
$ git clone https://github.com/micahflee/pidgin2gajim.git
(copia o conteúdo do projeto que tá no github. Tem que tem o "git" instalado.)
$ cd pidgin2gajim
(agora instale a biblioteca python-virtualenv)
$ sudo apt-get install python-virtualenv
$ virtualenv env
$ . env/bin/activate
$ pip install pyparsing
$ pip install python-potr
$ ./pidgin2gajim.py
$ ls -l output
$ deactivate
Agora sobrescreva suas chaves OTR do Gajim com as criadas a partir das do Pidgin que estão no diretório output.
Seria algo assim:
# descrição do comando: copiar chave_em_output para novo_nome_chave_outro_lugar
$ cp output/micah@jabber.ccc.de.key3 ~/.local/share/gajim/jabber.ccc.de.key3
$ cp output/micah@jabber.ccc.de.fpr ~/.local/share/gajim/jabber.ccc.de.fpr
O nome “fulana” dos arquivos fulana.key3 e fulana.fpr tem que ser o mesmo nome que está configurado na conta no Gajim.
Abra o Gajim novamente. Se tudo tiver corrido bem, suas chaves OTR já devem estar no Gajim. Pronto.