stringtranslate.com

Algoritmo de doble trinquete

Paso de trinquete completo en el algoritmo de doble trinquete. La función de derivación de claves (KDF) proporciona el mecanismo de trinquete. El primer "trinquete" se aplica a la llave de raíz simétrica, el segundo a la llave asimétrica Diffie Hellman (DH). [1]

En criptografía , el algoritmo de doble trinquete (anteriormente denominado Axolotl Ratchet [2] [3] ) es un algoritmo de gestión de claves desarrollado por Trevor Perrin y Moxie Marlinspike en 2013. Puede usarse como parte de un protocolo criptográfico para Proporcionar 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 una función de derivación de claves (KDF), como una función hash , y por lo tanto se denomina doble trinquete.

El algoritmo proporciona secreto de reenvío para los mensajes y renegociación implícita de claves de reenvío; propiedades que dan nombre al protocolo. [4]

Historia

El algoritmo de doble trinquete 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 doble trinquete se basa en el trinquete DH que fue introducido por Off-the- Record Messaging (OTR) y lo combina con un trinquete de clave simétrica modelado a partir del 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. [5] En marzo de 2016, los desarrolladores cambiaron el nombre de Axolotl Ratchet a Algoritmo de doble trinquete para diferenciar mejor entre el trinquete y el protocolo completo, [3] porque algunos habían usado el nombre Axolotl al referirse al protocolo de señal. [6] [3]

Descripción general

Un gif de un trinquete en movimiento que muestra que el mecanismo solo puede moverse en una dirección.
Un trinquete mecánico

El algoritmo Double Ratchet presenta propiedades que han estado disponibles comúnmente en los sistemas de cifrado de extremo a extremo desde hace mucho tiempo: cifrado de contenidos en todo el camino de transporte, así como autenticación del interlocutor 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 de secreto directo y restablecimiento automático del secreto en caso de que se comprometa una clave de sesión, secreto directo con compromiso de la clave principal secreta persistente y 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 conservar las claves de sesión para mensajes desordenados sin poner en peligro las siguientes claves.

Se dice [ ¿por quién? ] para detectar reordenamiento, eliminación y reproducción de mensajes enviados, y mejorar las propiedades de secreto directo contra escuchas pasivas en comparación con la mensajería OTR.

Combinado con una 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 asíncrona ). El uso del triple intercambio de claves 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 doble trinquete, claves previas y un protocolo de enlace 3-DH. [7] El protocolo proporciona confidencialidad, integridad, autenticación, coherencia de los participantes, validación del 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. [8] No proporciona preservación del anonimato y requiere servidores para la transmisión de mensajes y el almacenamiento de material de clave pública. [8]

Marcha

Un cliente intenta renovar el material de la clave de sesión de forma interactiva con el par remoto utilizando un trinquete Diffie-Hellman (DH). Si esto es imposible, los clientes renuevan la clave de sesión de forma independiente utilizando un trinquete hash. Con cada mensaje, un cliente avanza uno de dos trinquetes hash: uno para enviar y otro para recibir. Estos dos trinquetes hash se siembran 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 DH público y hacer avanzar el trinquete DH cada vez que llega un nuevo valor DH del par remoto. Tan pronto como se establece un nuevo secreto común, se inicializa un nuevo hash ratchet.

Como primitivas criptográficas, el algoritmo de doble trinquete 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 modo de encadenamiento de bloques de cifrado (CBC) con relleno según PKCS  #5 y parcialmente en modo contador (CTR) sin relleno,
para el trinquete hash
HMAC. [9]

Aplicaciones

La siguiente es una lista de aplicaciones que utilizan el algoritmo de doble trinquete o una implementación personalizada del mismo:

Notas

  1. ^ abcd A través del protocolo OMEMO
  2. ^ Sólo en "conversaciones secretas"
  3. ^ abcdefgh a través del protocolo de señal
  4. ^ ab A través del protocolo Matrix
  5. ^ Sólo en "modo incógnito"
  6. ^ Sólo en chats RCS uno a uno
  7. ^ A través del protocolo Zina
  8. ^ Sólo en "conversaciones privadas"
  9. ^ Viber "utiliza los mismos conceptos del protocolo de" doble trinquete "utilizado en la aplicación Open Whisper Systems Signal"
  10. ^ A través del protocolo Proteus

Referencias

  1. ^ Trevor Perrin (editor), Moxie Marlinspike, "El algoritmo de doble trinquete. Revisión 1, 20 de noviembre de 2016
  2. ^ Perrin, Trevor (30 de marzo de 2016). "Comparar revisiones". GitHub . Consultado el 9 de abril de 2016 .
  3. ^ abc Marlinspike, Moxie (30 de marzo de 2016). "Señal por fuera, Señal por dentro". Sistemas de susurro abiertos . Consultado el 31 de marzo de 2016 .
  4. ^ Cohn-Gordon, K.; Cremers, C.; Garratt, L. (2016). "Sobre la seguridad posterior al compromiso". 29º Simposio de Fundamentos de Seguridad Informática (CSF) del IEEE 2016 . págs. 164-178. doi :10.1109/CSF.2016.19. ISBN 978-1-5090-2607-4. S2CID  5703986.
  5. ^ Ksenia Ermoshina, Francesca Musiani. "Estandarización mediante código en ejecución": el protocolo Signal y la estandarización de facto en la mensajería cifrada de un extremo a otro. Historias de Internet, 2019, págs.1-21. �10.1080/24701475.2019.1654697�. �halshs-02319701�
  6. ^ Cohn-Gordon y col. 2016, pág. 1
  7. ^ Unger y col. 2015, pág. 241
  8. ^ ab Unger et al. 2015, pág. 239
  9. ^ Frosch y col. 2014
  10. ^ "Seguridad". Criptogato. Archivado desde el original el 7 de abril de 2016 . Consultado el 14 de julio de 2016 .
  11. ^ Greenberg, Andy (4 de octubre de 2016). "Todos finalmente pueden cifrar Facebook Messenger, así que háganlo". Cableado . Condé Nast . Consultado el 5 de octubre de 2016 .
  12. ^ Focas, Tara (17 de septiembre de 2015). "G DATA agrega cifrado para un chat móvil seguro". Revista Infoseguridad . Exposiciones de caña Ltd. Consultado el 16 de enero de 2016 .
  13. ^ "Chat seguro". GitHub . Datos G. Consultado el 14 de julio de 2016 .
  14. ^ 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 .
  15. ^ Amadeo, Ron (16 de junio de 2021). "Google habilita el cifrado de extremo a extremo para la aplicación SMS/RCS predeterminada de Android". Ars Técnica . Consultado el 3 de marzo de 2022 .
  16. ^ "Atribuciones de refugio". GitHub . Proyecto Guardián . Consultado el 22 de diciembre de 2017 .
  17. ^ 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 .
  18. ^ Langley, Adam (9 de noviembre de 2013). "Cable en nuevo sistema de trinquete". GitHub (contribución de GitHub) . Consultado el 16 de enero de 2016 .
  19. ^ Carnicero, 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 .
  20. ^ "Círculo silencioso/libzina". Github . Círculo Silencioso . Consultado el 19 de diciembre de 2017 .
  21. ^ Lund, Joshua (11 de enero de 2018). "Signal se asocia con Microsoft para llevar el cifrado de extremo a extremo a Skype". Sistemas de susurro abiertos . Consultado el 11 de enero de 2018 .
  22. ^ "Descripción general del cifrado de Viber" (PDF) . Vibrador. 25 de julio de 2018 . Consultado el 26 de octubre de 2018 .
  23. ^ 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 .
  24. ^ "Documento técnico sobre seguridad de cables" (PDF) . Wire Swiss GmbH. 17 de agosto de 2018 . Consultado el 28 de agosto de 2020 .

Literatura

Enlaces externos