En criptografía , el algoritmo de trinquete doble (anteriormente denominado Axolotl Ratchet [1] [2] ) es un algoritmo de gestión de claves que fue desarrollado por Trevor Perrin y Moxie Marlinspike en 2013. Se puede utilizar como parte de un protocolo criptográfico para proporcionan cifrado de extremo a extremo para mensajería instantánea . Después de un intercambio de claves inicial , gestiona la renovación y el mantenimiento continuos de las claves de sesión de corta duración. Combina un llamado "trinquete" criptográfico basado en el intercambio de claves Diffie-Hellman (DH) y un trinquete basado en unfunción de derivación de clave (KDF), como una función hash , y por lo tanto se denomina trinquete doble.
El algoritmo se considera autorreparable porque, en determinadas condiciones, evita que un atacante acceda al texto sin cifrar de los mensajes futuros después de haber comprometido una de las claves del usuario. [3] Las nuevas claves de sesión se intercambian después de algunas rondas de comunicación. Esto efectivamente obliga al atacante a interceptar todas las comunicaciones entre las partes honestas, ya que pierden el acceso tan pronto como ocurre un intercambio de claves que no es interceptado. Posteriormente, esta propiedad se denominó Future Secrecy o Post-Compromise Security . [4]
Etimología
" Axolotl " se refería a las propiedades autocurativas de la salamandra. El término "trinquete" en criptografía se utiliza de forma análoga a un trinquete mecánico . En el sentido mecánico, un trinquete solo permite el avance en una dirección; un trinquete criptográfico solo permite generar claves a partir de la clave anterior. Sin embargo, a diferencia de un trinquete mecánico, cada estado es único.
Origen
El algoritmo de trinquete doble fue desarrollado por Trevor Perrin y Moxie Marlinspike ( Open Whisper Systems ) en 2013 y se introdujo como parte del protocolo de señal en febrero de 2014. El diseño del algoritmo de trinquete doble se basa en el trinquete DH introducido por Off-the- Record Messaging (OTR) y lo combina con un trinquete de llave simétrica modelado según el Protocolo de mensajería instantánea Silent Circle (SCIMP). El trinquete recibió inicialmente el nombre del ajolote salamandra acuática en peligro crítico de extinción , que tiene extraordinarias capacidades de autocuración. En marzo de 2016, los desarrolladores cambiaron el nombre de Axolotl Ratchet como el algoritmo de doble trinquete para diferenciar mejor entre el trinquete y el protocolo completo, [2] porque algunos habían usado el nombre Axolotl al referirse al Protocolo de señal. [5] [2]
Propiedades
El algoritmo de doble trinquete presenta propiedades que han estado comúnmente disponibles en los sistemas de cifrado de extremo a extremo durante mucho tiempo: cifrado de contenidos en todo el medio de transporte, así como autenticación del par remoto y protección contra la manipulación de mensajes. Como híbrido de trinquetes DH y KDF , combina varias características deseadas de ambos principios. De la mensajería OTR , toma las propiedades del secreto hacia adelante y restablecimiento automático del secreto en caso de compromiso de una clave de sesión, el secreto hacia adelante con un compromiso de la clave principal persistente secreta y la negación plausible de la autoría de los mensajes. Además, permite la renovación de la clave de sesión sin interacción con el par remoto mediante el uso de trinquetes KDF secundarios. Se realiza un paso adicional de derivación de claves para permitir la retención de claves de sesión para mensajes desordenados sin poner en peligro las siguientes claves.
¿Se dice [ por quién? ] para detectar el reordenamiento, la eliminación y la reproducción de los mensajes enviados, y mejorar las propiedades de confidencialidad hacia adelante en comparación con la mensajería OTR.
Combinado con la infraestructura de clave pública para la retención de claves únicas pregeneradas (preclaves), permite la inicialización de sesiones de mensajería sin la presencia del par remoto ( comunicación asincrónica ). El uso del intercambio de claves triple Diffie-Hellman (3-DH) como método de intercambio de claves inicial mejora las propiedades de negación. Un ejemplo de esto es el Protocolo de señal, que combina el algoritmo de trinquete doble, claves previas y un protocolo de enlace 3-DH. [6] El protocolo proporciona confidencialidad, integridad, autenticación, consistencia del participante, validación de destino, secreto hacia adelante, secreto hacia atrás (también conocido como secreto futuro), preservación de la causalidad, desvinculación de mensajes, repudio de mensajes, repudio de participación y asincronicidad. [7] No proporciona preservación del anonimato y requiere servidores para la transmisión de mensajes y el almacenamiento de material de clave pública. [7]
Marcha
Un cliente renueva el material de la clave de sesión en interacción con el par remoto utilizando el trinquete Diffie-Hellman siempre que sea posible, de lo contrario, de forma independiente utilizando un trinquete de control. Por lo tanto, con cada mensaje, un cliente que usa el trinquete doble avanza uno de los dos trinquetes hash (uno para enviar y otro para recibir) que se sembran con un secreto común de un trinquete DH. Al mismo tiempo, intenta aprovechar todas las oportunidades para proporcionar al par remoto un nuevo valor de DH público y hacer avanzar el trinquete de DH cada vez que llega un nuevo valor de DH del par remoto. Tan pronto como se establece un nuevo secreto común, se inicializa un nuevo hash trinquete.
Como primitivas criptográficas, el algoritmo de trinquete doble utiliza
- para el trinquete DH
- Curva elíptica Diffie-Hellman (ECDH) con Curve25519 ,
- para códigos de autenticación de mensajes (MAC, autenticación)
- Código de autenticación de mensajes hash con clave (HMAC) basado en SHA-256 ,
- para cifrado simétrico
- el estándar de cifrado avanzado (AES), parcialmente en encadenamiento de bloques de cifrado modo (CBC) con el relleno de acuerdo con PKCS # 5 y parcialmente en el modo de contador (CTR) sin relleno,
- para el hash trinquete
- HMAC. [8]
Aplicaciones
La siguiente es una lista de aplicaciones que utilizan el algoritmo de trinquete doble o una implementación personalizada del mismo:
- ChatSecure [a]
- Conversaciones [a]
- Cryptocat [a] [9]
- Facebook Messenger [b] [c] [10]
- Chat seguro de G Data [c] [11] [12]
- Gajim [a] [d]
- Fractal GNOME [e]
- Google Allo [f] [c] [13]
- Refugio [c] [14] [15]
- Estanque [16]
- Elemento [e] [17]
- Señal [c]
- Teléfono silencioso [g] [18]
- Skype [h] [c] [19]
- Viber [i] [20]
- WhatsApp [c] [21]
- Alambre [j] [22]
Notas
- ^ a b c d A través del protocolo OMEMO
- ^ Solo en "conversaciones secretas"
- ^ a b c d e f g A través del protocolo de señal
- ^ Sedebe instalar un complemento de terceros por separado
- ^ a b A través del protocolo Matrix
- ^ Solo en "modo incógnito"
- ^ A través del protocolo Zina
- ^ Solo en "conversaciones privadas"
- ^ Viber "utiliza los mismos conceptos del protocolo de" doble trinquete "utilizado en la aplicación de señal de Open Whisper Systems"
- ^ A través del protocolo de Proteus
Referencias
- ^ Perrin, Trevor (30 de marzo de 2016). "Comparar revisiones" . GitHub . Consultado el 9 de abril de 2016 .
- ^ a b c Marlinspike, Moxie (30 de marzo de 2016). "Señal en el exterior, Señal en el interior" . Open Whisper Systems . Consultado el 31 de marzo de 2016 .
- ^ Marlinspike, Moxie (26 de noviembre de 2013). "Trinquete criptográfico avanzado" . whispersystems.org . Open Whisper Systems . Consultado el 20 de enero de 2021 .
El trinquete estilo OTR tiene la agradable propiedad de ser "autocurativo".
- ^ Cohn-Gordon, K .; Cremers, C .; Garratt, L. (2016). "Sobre la seguridad posterior al compromiso" . 2016 IEEE 29th Computer Security Foundations Symposium (CSF) : 164–178. doi : 10.1109 / CSF.2016.19 . ISBN 978-1-5090-2607-4. S2CID 5703986 .
- ^ Cohn-Gordon y col. 2016 , pág. 1
- ^ Unger y col. 2015 , pág. 241
- ^ a b Unger y col. 2015 , pág. 239
- ^ Frosch y col. 2014
- ^ "Seguridad" . Cryptocat. Archivado desde el original el 7 de abril de 2016 . Consultado el 14 de julio de 2016 .
- ^ Greenberg, Andy (4 de octubre de 2016). "Finalmente todos pueden cifrar Facebook Messenger, así que hágalo" . Cableado . Condé Nast . Consultado el 5 de octubre de 2016 .
- ^ Seals, Tara (17 de septiembre de 2015). "G DATA agrega cifrado para chat móvil seguro" . Revista Infosecurity . Reed Exhibitions Ltd . Consultado el 16 de enero de 2016 .
- ^ "SecureChat" . GitHub . G Datos . Consultado el 14 de julio de 2016 .
- ^ Greenberg, Andy (18 de mayo de 2016). "Con Allo y Duo, Google finalmente cifra las conversaciones de un extremo a otro" . Cableado . Condé Nast . Consultado el 14 de julio de 2016 .
- ^ "Atribuciones de refugio" . GitHub . Proyecto Guardián . Consultado el 22 de diciembre de 2017 .
- ^ Lee, Micah (22 de diciembre de 2017). "La nueva aplicación de Snowden utiliza su teléfono inteligente para proteger físicamente su computadora portátil" . La intercepción . Medios de Primera Vista . Consultado el 22 de diciembre de 2017 .
- ^ Langley, Adam (9 de noviembre de 2013). "Alambre en nuevo sistema de trinquete" . GitHub (contribución de GitHub) . Consultado el 16 de enero de 2016 .
- ^ Butcher, Mike (19 de septiembre de 2016). "Riot quiere ser como Slack, pero con la flexibilidad de una plataforma de código abierto subyacente" . TechCrunch . AOL Inc . Consultado el 20 de septiembre de 2016 .
- ^ "Círculo silencioso / libzina" . Github . Círculo silencioso . Consultado el 19 de diciembre de 2017 .
- ^ Lund, Joshua (11 de enero de 2018). "Signal se asocia con Microsoft para llevar el cifrado de extremo a extremo a Skype" . Open Whisper Systems . Consultado el 11 de enero de 2018 .
- ^ "Descripción general del cifrado de Viber" (PDF) . Viber. 25 de julio de 2018 . Consultado el 26 de octubre de 2018 .
- ^ Metz, Cade (5 de abril de 2016). "Olvídese de Apple contra el FBI: WhatsApp acaba de activar el cifrado para mil millones de personas" . Cableado . Condé Nast . Consultado el 5 de abril de 2016 .
- ^ "Documento técnico sobre seguridad por cable" (PDF) . Wire Swiss GmbH. 17 de agosto de 2018 . Consultado el 28 de agosto de 2020 .
Literatura
- Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas (25 de octubre de 2016). "Un análisis de seguridad formal del protocolo de mensajería de señales" (PDF) . Archivo ePrint de criptología . Asociación Internacional para la Investigación Criptológica (IACR).CS1 maint: ref duplica el valor predeterminado ( enlace )
- Frosch, Tilman; Mainka, cristiano; Bader, Christoph; Bergsma, Florian; Schwenk, Jörg; Holz, Thorsten (2014). "¿Qué tan seguro es TextSecure?" (PDF) . Archivo ePrint de criptología . Asociación Internacional para la Investigación Criptológica (IACR) . Consultado el 16 de enero de 2016 .CS1 maint: ref duplica el valor predeterminado ( enlace )
- Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Mateo (2015). SoK: mensajería segura (PDF) . Actas del Simposio IEEE 2015 sobre seguridad y privacidad. Comité Técnico de Seguridad y Privacidad de IEEE Computer Society. págs. 232–249. doi : 10.1109 / SP.2015.22 .CS1 maint: ref duplica el valor predeterminado ( enlace )
enlaces externos
- Especificación de Open Whisper Systems
- " Trinquete criptográfico avanzado ", descripción abstracta de Moxie Marlinspike
- Olm : implementación en C ++ bajo la licencia Apache