La mensajería extraoficial ( OTR ) es un protocolo criptográfico que proporciona cifrado para conversaciones de mensajería instantánea . OTR utiliza una combinación del algoritmo de clave simétrica AES con una longitud de clave de 128 bits, el intercambio de claves Diffie-Hellman con un tamaño de grupo de 1536 bits y la función hash SHA-1 . Además de autenticación y cifrado , OTR proporciona confidencialidad hacia adelante y cifrado maleable .
La motivación principal detrás del protocolo era proporcionar una autenticación denegable para los participantes de la conversación, manteniendo al mismo tiempo la confidencialidad de las conversaciones, como una conversación privada en la vida real o fuera de registro en el caso de las fuentes periodísticas . Esto contrasta con las herramientas de criptografía que producen un resultado que puede usarse posteriormente como un registro verificable del evento de comunicación y las identidades de los participantes. El documento introductorio inicial se tituló "Comunicación fuera de registro o por qué no usar PGP ". [1]
El protocolo OTR fue diseñado por los criptógrafos Ian Goldberg y Nikita Borisov y lanzado el 26 de octubre de 2004. [2] Proporcionan una biblioteca de cliente para facilitar el soporte a los desarrolladores de clientes de mensajería instantánea que quieran implementar el protocolo. Existe un complemento de Pidgin y Kopete que permite utilizar OTR sobre cualquier protocolo de mensajería instantánea compatible con Pidgin o Kopete, ofreciendo una función de detección automática que inicia la sesión OTR con los amigos que la tienen habilitada, sin interferir con conversaciones regulares sin cifrar. La versión 4 del protocolo [3] ha estado en desarrollo desde 2017 [4] por un equipo dirigido por Sofía Celi, y revisada por Nik Unger e Ian Goldberg. Esta versión tiene como objetivo proporcionar negación en línea y fuera de línea, actualizar las primitivas criptográficas y admitir la entrega fuera de orden y la comunicación asincrónica.
El protocolo OTR fue presentado en 2004 por Nikita Borisov, Ian Avrum Goldberg y Eric A. Brewer como una mejora sobre el sistema OpenPGP y S/MIME en el "Workshop on Privacy in the Electronic Society" (WPES). [1] La primera versión 0.8.0 de la implementación de referencia fue publicada el 21 de noviembre de 2004. En 2005 Mario Di Raimondo, Rosario Gennaro y Hugo Krawczyk presentaron un análisis que llamaba la atención sobre varias vulnerabilidades y proponía soluciones apropiadas, incluyendo en particular una falla en el intercambio de claves. [5] Como resultado, la versión 2 del protocolo OTR fue publicada en 2005, la cual implementa una variación de la modificación propuesta que además oculta las claves públicas. Además, se introdujo la posibilidad de fragmentar los mensajes OTR para lidiar con sistemas de chat que tienen un tamaño de mensaje limitado, y se implementó un método más simple de verificación contra ataques de intermediario. [6]
En 2007, Olivier Goffart publicó mod_otr
[7] para ejabberd , lo que hace posible realizar ataques de intermediarios contra usuarios de OTR que no comprueban las huellas digitales de las claves. Los desarrolladores de OTR contrarrestaron este ataque introduciendo una implementación de protocolo millonario socialista en libotr. En lugar de comparar sumas de comprobación de claves, se puede utilizar el conocimiento de un secreto compartido arbitrario para el que se puede tolerar una entropía relativamente baja . [8]
La versión 3 del protocolo se publicó en 2012. Como medida contra el restablecimiento repetido de una sesión en caso de que varios clientes de chat competidores inicien sesión en la misma dirección de usuario al mismo tiempo, en la versión 3 se introdujeron etiquetas de identificación más precisas para las instancias de cliente de envío y recepción. Además, se negocia una clave adicional que se puede utilizar para otro canal de datos. [9]
Se han propuesto varias soluciones para facilitar las conversaciones con múltiples participantes. Un método propuesto en 2007 por Jiang Bian, Remzi Seker y Umit Topaloglu utiliza el sistema de un participante como un "servidor virtual". [10] El método denominado "Multi-party Off-the-Record Messaging" (mpOTR), que se publicó en 2009, funciona sin un host de gestión central y fue introducido en Cryptocat por Ian Goldberg et al. [11]
En 2013 se introdujo el protocolo Signal , que se basa en la mensajería OTR y en el protocolo de mensajería instantánea Silent Circle (SCIMP). Este protocolo supuso la compatibilidad con la comunicación asincrónica ("mensajes sin conexión") como su principal novedad, así como una mayor resistencia con el orden distorsionado de los mensajes y una compatibilidad más sencilla con las conversaciones con varios participantes. [12] OMEMO , introducido en un cliente XMPP de Android llamado Conversations en 2015, integra el algoritmo Double Ratchet utilizado en Signal en el protocolo de mensajería instantánea XMPP ("Jabber") y también permite el cifrado de las transferencias de archivos. En otoño de 2015 se presentó a la XMPP Standards Foundation para su estandarización. [13] [14]
Actualmente se ha diseñado la versión 4 del protocolo, la cual fue presentada por Sofía Celi y Ola Bini en PETS2018. [15]
Además de proporcionar cifrado y autenticación (características que también ofrecen las suites de criptografía de clave pública típicas, como PGP , GnuPG y X.509 ( S/MIME )), OTR también ofrece algunas características menos comunes:
A partir de la versión OTR 3.1, el protocolo admite la autenticación mutua de usuarios mediante un secreto compartido a través del protocolo del millonario socialista . Esta característica permite a los usuarios verificar la identidad de la parte remota y evitar un ataque de intermediario sin el inconveniente de comparar manualmente las huellas digitales de las claves públicas a través de un canal externo.
Debido a las limitaciones del protocolo, OTR no admite chat grupal multiusuario a partir de 2009 [16] pero puede implementarse en el futuro. A partir de la versión 3 [9] de la especificación del protocolo, se deriva una clave simétrica adicional durante los intercambios de claves autenticadas que se pueden usar para comunicación segura (por ejemplo, transferencias de archivos encriptados ) a través de un canal diferente. No se planea admitir audio o video encriptado. ( SRTP con ZRTP existe para ese propósito). Cryptocat , eQualitie y otros contribuyentes, incluido Ian Goldberg, han organizado un proyecto para producir un protocolo para mensajería extraoficial multipartidaria (mpOTR) . [11] [17][actualizar]
Desde el protocolo OTR v3 (libotr 4.0.0), el complemento admite múltiples conversaciones OTR con el mismo amigo que esté conectado en múltiples ubicaciones. [18]
Estos clientes admiten mensajería no registrada de manera predeterminada (lista incompleta).
Los siguientes clientes requieren un complemento para utilizar la mensajería no registrada.
Aunque Google Talk de Gmail utiliza el término "fuera de registro", la función no tiene conexión con el protocolo de mensajería fuera de registro descrito en este artículo, sus chats no están cifrados de la manera descrita anteriormente y Google podría registrarlos internamente incluso si los usuarios finales no pueden acceder a ellos. [32] [33]
{{cite conference}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite book}}
: Mantenimiento CS1: fecha y año ( enlace ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )