Off-the-Record Messaging

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
libotr
Desenvolvedor OTR Development Team
Versão estável 4.1.1 (9 de abril de 2016; há 3 anos)
Linguagem C
Sistema operacional Cross-platform
Gênero(s) Criptografia, Biblioteca de Programa
Licença LGPL v2.1+[1]
Estado do desenvolvimento Corrente

Off-the-Record Messaging (OTR) é um protocolo de criptografia que fornece a encriptação de conversas de mensagens instantâneas. OTR usa uma combinação de algorítimo AES de chave simétrica com chave de 128 bits de comprimento, o grupo Diffie–Hellman de troca de chaves com tamanho de 1536 bits, e a função de hash SHA-1. Além de autenticação e criptografia, o OTR proporciona sigilo e criptografia maleável.

A motivação principal por trás do protocolo foi fornecer, autenticação negável para os participantes de conversação mantendo conversas confidenciais, como uma conversa privada na vida real, ou desativar o registro em fonte (jornalismo). Isto está em contraste com ferramentas de criptografia que produzem uma saída que pode ser usado mais tarde como um certificado de registro de evento de comunicação e as identidades dos participantes. Seu slogan inicial era "Comunicação Off-the-Record, ou, Por que Não Usar o PGP".[2]

O protocolo OTR foi projetado por criptógrafos Ian Goldberg e Nikita Borisov e lançado em 26 de outubro de 2004.[3] Eles fornecem um biblioteca de cliente para facilitar o suporte para desenvolvedores de cliente de mensagens instantâneas que desejam implementar o protocolo. Existe um plugin para Pidgin e Kopete plugin que permite que usar o OTR em qualquer protocolo de IM nesses clientes, oferecendo uma auto-detecção de função que inicia a sessão OTR com os amigos que tem ativado, sem interferir com as conversas não criptografada regulares.

História[editar | editar código-fonte]

OTR foi apresentado em 2004 por Nikita Borisov, Ian Avrum Goldberg, e Eric A. Brewer como uma melhoria sobre o OpenPGP e o sistema S/MIME no "Workshop sobre Privacidade na Sociedade Electrónica" (WPES).[2] A primeira versão 0.8.0 da implementação de referência foi publicado em novembro 21, 2004. Em 2005, uma análise foi apresentada por Mario Di Raimondo, Rosario Gennaro, e Hugo Krawczyk que chamou a atenção para diversas vulnerabilidades e propostas de correções apropriadas, nomeadamente, incluindo uma falha na troca de chaves.[4] Como resultado, a versão 2 do OTR protocolo foi publicado em 2005, que implementa uma variação da proposta de modificação que além disso esconde as chaves públicas. Além disso, a possibilidade de fragmento de mensagens OTR foi introduzida a fim de lidar com sistemas de chat que têm limitações de tamanho de mensagem, e um método mais simples de verificação contra os ataques man-in-the-middle foi implementado.[5]

Em 2007, Olivier Goffart publicou o mod_otr[6] para ejabberd, tornando-se possível realizar man-in-the-middle ataques em usuários OTR que não verificam a chave de impressões digitais. Os desenvolvedores do OTR anularam este ataque introduzindo o protocolo do socialista milionário implementado em libotr. Em vez de realizar a verificação por comparação de soma de chaves de, o conhecimento de um segredo arbitrário compartilhado pode ser utilizado para o qual entropia uma entropia relativamente baixa pode ser tolerada usando o protocolo do socialista milionário.[7]

A versão 3 do protocolo, foi publicado em 2012. Como uma medida contra o reestabelecimento repetido de uma sessão no caso de vários clientes de bate-papo concorrentes serem acessados no mesmo endereço do usuário, ao mesmo tempo, a identificação mais precisa de etiquetas para envio e recebimento de instâncias de cliente foram introduzidos na versão 3. Além disso, uma chave adicional é negociada, o que pode ser usado para outro canal de dados.[8]

Muitas soluções tem sido propostas para suportar conversações com múltiplos partipantes. Um método proposto em 2007 por Jiang Bian, Remzi Seker, e Umit Topaloglu usa o sistema de um participante como um "servidor virtual".[9] O método chamado "Multi-festa Off-the-Record Messaging" (mpOTR) que foi publicado em 2009 funciona sem um gerente anfitrião central e foi introduzido no Cryptocat por Ian Goldberg et al.[10] Em 2013, o Protocolo Signal foi introduzido, que é baseado no OTR Messaging e no Silent Circle Instant Messaging Protocol (SCIMP). Ele trouxe suporte para comunicação assincrona ("mensagens offline") como sua maior característica nova, tão boa quanto a melhor resiliência com mensagens de ordem distorcida e suporte mais simples para conversação com múltiplos participantes.[11] OMEMO, introduziu em um cliente XMPP para Android chamado Conversations em 2015, integra o Algorítimo Double Ratchet usado no Signal no protocolo XMPP ("Jabber") de mensageiro instantâneo e também abilita criptogreafia de transferência de arquivos. No outono(do hemisfério norte) de 2015, foi submetido à XMPP Standards Foundation para padronização.[12][13]

Implementação[editar | editar código-fonte]

Além de prover criptografia e autenticação — características também fornecidas por suítes de chave-pública típicas, tas como PGP, GnuPG, e X.509 (S/MIME) — OTR também oferece algumas características menos comuns:

  • Forward secrecy: Messagens são criptografadas somente com chaves AES temporárias por mensagem, negociadas usando o protocolo de troca de chaves Diffie-Hellman. O compromisso de qualquer chave de longa vida de criptografia não compromente qualquer conversa prévia, mesmo se um atacante tiver posse do texto cifrado.
  • Autenticação negável: Mensagens em uma conversa não tem assinaturas digitais, e depois que uma conversa está completa, qualquer um é apto a forjar uma mensagem para parecer ter vindo de um dos participantes da conversa, assegurando que é impossível provar que uma mensagem específica veio de uma pessoa específica. Dentro da conversa o destinatário pode ter certeza que uma mensagem está vindo da pessoa que eles identificaram.

Autenticação[editar | editar código-fonte]

Como no OTR 3.1, o protocolo suporta mutua autenticação de usuários usando um segredo compartilhado pelo protocolo socialista milionário. Esta característica torna possível para usuários verificar a identidade da parte remota e evita um ataque man-in-the-middle sem o incoveniente de comparação manualmente a public key fingerprints através de um canal externo.

Limitações[editar | editar código-fonte]

Devido a limitações do protocolo, OTR não suporta bate-papos em grupos multi-usuário a partir de 2009, mas isso pode ser implementado no futuro.[14] A partir da versão 3[8] da especificação do protocolo, uma chave simétrica extra é derivada durante as trocas de chaves autenticadas que podem ser usadas para comunicação segura (e.g., file transferências de arquivos criptografados) sobre um canal diferente. Suporte para áudio ou vídeo criptografadp não está nos planos (SRTP com ZRTP existe para esse propósito). Um projeto de produzir um protocolo para mensagens multi-partes off-the-record (mpOTR) tenm sido organizadas pelo Cryptocat, eQualitie, e outros contribuintes incluisive Ian Goldberg.[10][15]

Desde o protocolo OTR v3 (libotr 4.0.0) o plugin suporta múltiplas conversas OTR com o mesmo amigo conversations que está logado em múltiplas localidades.[16]

Suporte a clientes[editar | editar código-fonte]

Nativo[editar | editar código-fonte]

Estes clientes suportam mensagens Off-the-Record out of the box.

Via plug-in[editar | editar código-fonte]

Autenticação Off-The-Record no Pidgin usando o protocolo Socialist millionaires

Os seguintes clientes requerem um plugin para usar mensagens Off-the-Record.

Não no Google Talk[editar | editar código-fonte]

Embora o Google Talk do Gmail's use o termo "off the record", as características não tem conecção ao protocolo de mensagens Off-the-Record descritos neste artigo, seus bate-papos não são criptografados do modo descrito acima - e poderia ser logado internamente pela Google mesmo se não estiver acessível pelos usuários finais.[34][35]

Referências

  1. «Off-the-Record Messaging» 
  2. a b Nikita Borisov, Ian Goldberg, Eric Brewer (28 de outubro de 2004). «Off-the-Record Communication, or, Why Not To Use PGP» (PDF). Workshop on Privacy in the Electronic Society. Consultado em 6 de março de 2014 
  3. Ian Goldberg (26 de outubro de 2014). [OTR-users] Happy 10th anniversary!. Consultado em 27 de abril de 2015 
  4. Mario Di Raimondo; Rosario Gennaro; Hugo Krawczyk (2005). «Secure off-the-record messaging» (PDF). Association for Computing Machinery. Proceedings of the 2005 ACM workshop on Privacy in the electronic society: 81–89 
  5. «Off-the-Record Messaging Protocol version 2» 
  6. «mod_otr» 
  7. Chris Alexander; Ian Avrum Goldberg (fevereiro de 2007). «Improved User Authentication in Off-The-Record Messaging» (PDF). New York: Association for Computing Machinery. Proceedings of the 2007 ACM workshop on Privacy in electronic society: 41–47. doi:10.1145/1314333.1314340 
  8. a b «Off-the-Record Messaging Protocol version 3» 
  9. Jiang Bian; Remzi Seker; Umit Topaloglu (2007). Off-the-Record Instant Messaging for Group Conversation (PDF). IEEE International Conference on Information Reuse and Integration. IEEE. doi:10.1109/IRI.2007.4296601 
  10. a b Ian Avrum Goldberg; Berkant Ustaoğlu; Matthew D. Van Gundy; Hao Chen (2009). «Multi-party off-the-record messaging» (PDF). Association for Computing Machinery. Proceedings of the 16th ACM Computer and Communications Security Conference: 358–368. doi:10.1145/1653662.1653705 
  11. Nik Unger; Sergej Dechand; Joseph Bonneau; Sascha Fahl; Henning Perl; Ian Avrum Goldberg; Matthew Smith (2015). «SoK: Secure Messaging» (PDF). IEEE Computer Society's Technical Committee on Security and Privacy. Proceedings of the 2015 IEEE Symposium on Security and Privacy: 232–249 
  12. Straub, Andreas (25 de outubro de 2015). «OMEMO Encryption». XMPP Standards Foundation website. Consultado em 16 de janeiro de 2016. Arquivado do original em 29 de janeiro de 2016 
  13. Gultsch, Daniel (2 de setembro de 2015). «OMEMO Encrypted Jingle File Transfer». XMPP Standards Foundation website. Consultado em 16 de janeiro de 2016 
  14. Ian Goldberg (27 de maio de 2009). «multi-party OTR communications? (and other OTR details)». OTR-users mailing list 
  15. Nadim Kobeissi (1 de fevereiro de 2014). «mpOTR Project Plan». Cryptocat wiki on GitHub 
  16. Ian Goldberg (4 de setembro de 2012). «pidgin-otr and libotr 4.0.0 released!». OTR-announce mailing list 
  17. «OTR plugin in Gajim repo». Consultado em 26 de setembro de 2017. Arquivado do original em 6 de setembro de 2017 
  18. «OTR plugin at Gajim Wiki» 
  19. «BitlBee Wiki». Wiki.bitlbee.org. 25 de janeiro de 2014. Consultado em 15 de maio de 2014 
  20. «Kadu 1.0 Release Notes» 
  21. «kopete-otr in KDE for 4.1». Arquivado do original em 28 de março de 2008 
  22. «kopete-otr review request» 
  23. 0xd34df00d. «OTR Plugin». Github.com. Consultado em 6 de setembro de 2017 
  24. «Short description». Leechcraft.org. Consultado em 15 de maio de 2014 
  25. «source code». MCabber.com. 25 de outubro de 2013. Consultado em 15 de maio de 2014. Arquivado do original em 17 de maio de 2014 
  26. a b «OTR Plugin». Github.com. Consultado em 6 de setembro de 2017 
  27. «Psi+ snapshots». Github.com. Consultado em 6 de setembro de 2017 
  28. «irssi-otr / xchat-otr plugin» 
  29. «Miranda OTR Plugin» 
  30. «OTR plugin for Pidgin» 
  31. «Tkabber OTR Plugin». Consultado em 26 de setembro de 2017. Arquivado do original em 11 de março de 2014 
  32. «OTR plugin for WeeChat» 
  33. «TingPing/hexchat-otr». GitHub (em inglês). Consultado em 14 de março de 2017 
  34. «Chatting off the record - Talk Help» 
  35. «Google Talk - Privacy Policy» 

Leituras adicionais[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]