[Tutorial] Instant Messaging Criptografado

Introdução

Por que resolvi escrever esse tutorial?
Porque percebo a necessidade de comunicação instantânea segura via internet dentro do grupo afetivo/político que faço parte. Não encontrei nenhum tutorial simples e completo que atendesse às nossas necessidades e que fosse acessível a todas(quase todos eram em inglês, para começar). Aqui estão todos os passos de uma maneira que julgo simples e mastigada para que qualquer uma possa sair conversando de uma maneira segura e utilizando ferramentas livres.

Sobre as ferramentas propostas nesse tutorial
(vou escrever depois porque estou morrendo de sono!)
-Criptografia:
-XMPP (jabber):
-riseup:
-Pidgin:
-Off-The-Record (OTR):

Existem outras maneiras de se comunicar por mensagem instantânea de maneira segura além dessa?
Sim, existem várias. Quer dizer, ‘várias’ é um conceito abstrato e relativo, mas podemos dizer que existe pelo menos uma centena de maneiras que utilizam a mesma base que essa explicada aqui, mudando uma coisinha ou outra, isso sem contar todas as outras que são completamente diferentes dessa. A maneira que escolhi aqui foi a que julguei mais fácil para as pessoas a quem primariamente destino esse tutorial. Não vou ficar colocando milhares de opções a cada passo do tutorial porque isso tomaria tempo além de tornar as coisas mais confusas. Se alguém tiver alguma dúvida nesse sentido, vamos conversando.

Ingredientes necessários

Para esse tutorial você precisará de:
-um e-mail do riseup
-um computador (com qualquer sistema operacional) com o pidgin instalado (você pode baixar em: pidgin.im/download/)

Configurando sua conta no pidgin

1- Assim que você abrir o pidgin pela primeira vez, aparecerá uma mensagem de boas-vindas. Clique no botão ‘Adicionar’ ou ‘Add’ que aparece aí para adicionar uma nova conta. (Caso você já tenha o pidgin instalado e essa opção não apareça de primeira, clique em ‘Conta’ e então ‘Adicionar conta’.

2- A janela que deve aparecer é essa abaixo. Nela, escolha o protocolo XMPP. Depois, preencha o ‘nome de usuário’ com o seu nome de usuário riseup (por exemplo, se seu e-mail for ‘eumesma@riseup.net’, então digite ‘eumesma’) e o domínio com ‘riseup.net’). No campo ‘Senha’ digite a mesma senha do seu e-mail riseup.

OBS: Você também pode escolher um apelidinho em ‘Apelido local’ e colocar um avatar. Não precisa necessariamente ser agora, você vai poder editar isso mais pra frente.

3- Sua conta já está criada, você pode até já adicionar azamiga clicando em ‘Amigo’ e ‘Adicionar Amigo’. Mas, atenção, não feche esse tutorial ainda porque ainda falta instalar o plugin que irá criptografar suas mensagens.

Baixando e instalando o Off-The-Record (OTR)

1- Encontre a melhor maneira de baixar e descompactar o plugin do OTR para o pidgin. Se você usa linux, certamente a melhor opção será ir direto ao repositório, digitar ‘otr pidgin’ que o resto o computador fará sozinho. Se você usa window$ ou $MAC$, meus pêsames, você vai ter que descobrir por conta, mas a resposta mais eficaz provavelmente estará aqui: otr.cypherpunks.ca

2- Abra o pidgin e, na janela principal, clique em ‘Ferramentas’ e ‘Plugins’

3- Encontre o “Off-The-Record” e selecione e marque a caixinha (se você não encontrou, é porque o passo 1 foi falho)

4- Com o plugin selecionado, clique no botão que aparece embaixo ‘Configurar Plug-in’

5- A janela que aparecerá será como a que está abaixo. Em ‘Key for account’ selecione a sua conta. E então clique em ‘Generate’ (o do print não dá pra clicar porque eu já gerei o meu código.

6- Parabéns! Você acabou de gerar uma chave que será utilizada para criptografar suas conversas. Esse número que apareceu é seu fingerprint. Ele é o seu número de identidade. Você pode (e deve!) imprimí-lo ou copiá-lo para entregá-los pessoalmente às suas amigas (pessoalmente porque assim elas terão certeza que esse fingerprint realmente te pertence, que não é ninguém se passando por você).

Iniciando uma conversa privada; autenticando as amigas

Para essa parte do tutorial você precisará ter pessoas adicionadas em sua lista de contatos. Se ainda não fez isso nos passos anteriores, o momento é agora! (se vc faz parte do meu público alvo primário, ou seja, se você me conhece, me manda uma mp no we que trocamos contatos ;)
Além disso, essas pessoas tem que ter uma chave OTR e tem que estar logadas (afinal, é preciso ter alguém para poder conversar, não?). Caso esse não seja o seu caso, não se desespere. Você pode parar o tutorial por aqui e retornar assim que alguém da sua lista com tais especificações ficar online.

1- Inicie uma conversa com essa pessoa (clica 2x no nome dela na tela principal)

2- Clique em ‘NOT PRIVATE’, que está no canto direito inferior da janela, e selecione ‘start private conversation’

3- Nesse momento o software vai verificar se a pessoa com quem você está conversando também tem chave OTR e se essa pessoa já foi autenticada. Se você está fazendo esse tutorial pela primeira vez, é provável que seu contato ainda não tenha sido autenticado, então aparecerá uma mensagem na tela da conversa dizendo ‘fulana@riseup.net has not been athenticated yet’. Para iniciar a autenticação, você deve clicar em ‘OTR’ (canto superior direito da janela) e em ‘Authenticate buddy’.

4- A autenticação é importante porque é ela que irá garantir que a pessoa com quem você está conversando é ela mesma. Existem 3 maneiras de autenticar uma pessoa:

(1)Reconhecimento de fingerprint
(2)Chave compartilhada
(3)Pergunta e Resposta

Você pode escolher a maneira de autenticação na janela que abriu no passo anterior. Abaixo como proceder em cada uma das situações:

(1) Idealmente, as pessoas devem imprimir seus fingerprints, deixá-los no bolso e entregá-los às amigas pessoalmente. Aí então, com os fingerprints em mãos, elas podem conferir se realmente o fingerprint que aparece no programa é o mesmo que foi entregue e, aí sim, confirmar a autenticação. Essa é a melhor maneira (entenda: mais segura) de autenticar uma pessoa. A janela que aparece no caso é como a abaixo (nos boxes pretos estão as contas das pessoas e seus fingerprints):

Porém, como nem sempre as pessoas estão fisicamente perto para isso (algumas estão a milhares de quilômetros de distância), existe outras duas maneiras de fazer isso.

(2)A segunda maneira é através de uma chave previamente compartilhada. Digamos que você e sua amiga se encontraram, mas esqueceram de levar seus fingerprints para trocar. Vocês então, pessoalmente, combinam uma palavra como chave (por palavra entenda: caracteres enfileirados, não precisa ser uma palavra do dicionário). Nesse momento, essa palavra deve ser digitada pelas duas partes, na seguinte tela:

(3)Mas digamos que você conheça a pessoa, mas ela mora longe longe longe e vocês não vão se ver em um bom tempo para poder trocar seus fingerprints ou combinar uma chave. Então o que se pode fazer é realizar a autenticação através de uma pergunta e resposta. Nesse caso, você faz uma pergunta que somente você e sua amiga saibam responder, como na imagem abaixo:

Você digitará a pergunta e a resposta. Somente a pergunta chegará para sua amiga, e, se ela responder corretamente (ou seja, igual a sua resposta), ela será autenticada.

5- Terminado esse passo da autenticação (de sua parte e da parte da sua amiga, pois ela também deve te autenticar), aparecerá no cantinho inferior direito da janela de conversa escrito ‘Private’, e então… tandããã!! sua conversa estará sendo criptografada :))))

Agora, quando quiser conversar novamente com essa pessoa, só precisará realizar os passos 1 e 2 dessa última parte.

 

tomei a liberdade de adicionar uma informação que faltou, sobre a escolha do protocolo.

 
 

configurei minha conta do riseup lá no pidgin e não deu certo, não conecta nem pede minha senha.
Sabe o que pode ser?

 
 

eu tava seguindo um outro tutorial ao mesmo tempo (!), o do riseup: www.riseup.net/en/pidgin
tirei a parte que diziam para usar o servidor do TOR e também o proxy.
Deu certo.
Como a criptografia é de ponta-a-ponta, não tem muita necessidade do TOR.
Na real, é toda uma confusão: é bom encriptar para não saberem o que está escrito, usar VPN/proxy/TOR para não poderem rastrear.
eita complicação!

 
 

botei a wiki pública

 
 

por aqui, costumamos utilizar o “gatinho” quando a conversa requer uma criptografia. a interface é horrorosa, mas quebra o galho.

se alguém tiver feedbacks:

crypto.cat

 
   

Lembro que o criptocat tinha alguns problemas.
Deem uma olhada na wikipedia