stringtranslate.com

Cifrado autenticado

El cifrado autenticado (AE) es un esquema de cifrado que garantiza simultáneamente la confidencialidad de los datos (también conocida como privacidad: el mensaje cifrado es imposible de entender sin el conocimiento de una clave secreta [1] ) y la autenticidad (en otras palabras, es infalsificable: [2] el mensaje cifrado incluye una etiqueta de autenticación que el remitente puede calcular solo mientras posee la clave secreta [1] ). Ejemplos de modos de cifrado que proporcionan AE son GCM , CCM . [1]

Muchos (pero no todos) esquemas AE permiten que el mensaje contenga "datos asociados" (AD) que no se consideran confidenciales, pero su integridad está protegida (es decir, son legibles, pero se detectará su manipulación). Un ejemplo típico es el encabezado de un paquete de red que contiene su dirección de destino. Para enrutar correctamente el paquete, todos los nodos intermedios en la ruta del mensaje necesitan conocer el destino, pero por razones de seguridad no pueden poseer la clave secreta. [3] Los esquemas que permiten que los datos asociados proporcionen cifrado autenticado con los datos asociados, o AEAD . [3]

Interfaz de programación

Una interfaz de programación típica para una implementación AE proporciona las siguientes funciones:

La parte del encabezado está destinada a proporcionar protección de autenticidad e integridad para metadatos de almacenamiento o de red para los cuales la confidencialidad no es necesaria, pero se desea autenticidad.

Historia

La necesidad de un cifrado autenticado surgió de la observación de que combinar de forma segura modos de operación de cifrado de bloque de autenticación y confidencialidad separados podría ser propenso a errores y difícil. [4] [5] Esto fue confirmado por una serie de ataques prácticos introducidos en protocolos y aplicaciones de producción mediante una implementación incorrecta o falta de autenticación. [6]

Alrededor del año 2000, se desarrollaron una serie de esfuerzos en torno a la noción de estandarizar modos que aseguraran una implementación correcta. En particular, un gran interés en modos posiblemente seguros fue provocado por la publicación de los modos CBC conscientes de la integridad y IAPM [7], conscientes de la integridad, paralelizables , [7] de Charanjit Jutla (ver OCB y cronología [8] ). Seis modos de cifrado autenticados diferentes (a saber, modo de libro de códigos compensado 2.0 , OCB  2.0; Key Wrap ; contador con CBC-MAC , CCM; cifrar, luego autenticar y luego traducir , EAX; cifrar y luego MAC , EtM; y modo Galois/contador , GCM) han sido estandarizados en ISO/IEC 19772:2009. [9] Se desarrollaron métodos de cifrado más autenticados en respuesta a la solicitud del NIST . [10] Las funciones de esponja se pueden utilizar en modo dúplex para proporcionar cifrado autenticado. [11]

Bellare y Namprempre (2000) analizaron tres composiciones de cifrado y primitivas MAC, y demostraron que cifrar un mensaje y posteriormente aplicar una MAC al texto cifrado (el enfoque Encriptar y luego MAC) implica seguridad contra un ataque de texto cifrado elegido de forma adaptativa , siempre que ambos Las funciones cumplen con las propiedades mínimas requeridas. Katz y Yung investigaron la noción bajo el nombre de "cifrado infalsificable" y demostraron que implica seguridad contra ataques de texto cifrado seleccionados. [12]

En 2013, se anunció el concurso CAESAR para fomentar el diseño de modos de cifrado autenticados. [13]

En 2015, se agrega ChaCha20-Poly1305 como una construcción AE alternativa a GCM en los protocolos IETF .

Variantes

Cifrado autenticado con datos asociados.

El cifrado autenticado con datos asociados (AEAD) es una variante de AE ​​que permite que el mensaje incluya "datos asociados" (AD, información adicional no confidencial, también conocida como "datos autenticados adicionales", AAD). Un destinatario puede comprobar la integridad tanto de los datos asociados como de la información confidencial de un mensaje. AD es útil, por ejemplo, en paquetes de red donde el encabezado debe ser visible para el enrutamiento , pero la carga útil debe ser confidencial y ambas necesitan integridad y autenticidad . La noción de AEAD fue formalizada por Rogaway (2002). [3]

AEAD de compromiso clave

AE se diseñó originalmente principalmente para proporcionar integridad del texto cifrado: la validación exitosa de una etiqueta de autenticación por parte de Alice usando su clave simétrica KA indica que el mensaje no fue manipulado por un adversario Mallory que no posee la KA . Los esquemas AE generalmente no proporcionan el compromiso de clave , una garantía de que el descifrado fallará con cualquier otra clave. [14] A partir de 2021, la mayoría de los esquemas AE existentes (incluido el muy popular GCM) permiten decodificar algunos mensajes sin errores utilizando algo más que solo el KA (correcto ) ; Si bien su texto plano decodificado usando una segunda clave (incorrecta) K M será incorrecto, la etiqueta de autenticación aún coincidirá. [ cita necesaria ] Dado que elaborar un mensaje con tal propiedad requiere que Mallory ya posea tanto KA como KM , el tema podría parecer de interés puramente académico. [15] Sin embargo, en circunstancias especiales, se pueden montar ataques prácticos contra implementaciones vulnerables. Por ejemplo, si un protocolo de autenticación de identidad se basa en el descifrado exitoso de un mensaje que utiliza una clave basada en contraseña, la capacidad de Mallory para elaborar un único mensaje que se descifraría con éxito utilizando 1000 claves diferentes asociadas con claves débiles y, por lo tanto, conocidas por ella, contraseñas potenciales, puede acelerar su búsqueda de contraseñas en un factor de casi 1000. Para que este ataque de diccionario tenga éxito, Mallory también necesita la capacidad de distinguir el descifrado exitoso por parte de Alice de uno fallido, debido, por ejemplo, a un diseño de protocolo deficiente. o implementación que convierte el lado de Alice en un oráculo . Naturalmente, este ataque no se puede montar en absoluto cuando las claves se generan aleatoriamente. [16]

El compromiso clave fue estudiado originalmente en la década de 2010 por Abdalla et al. [17] y Farshim et al. [18] bajo el nombre "cifrado robusto". [15] [19]

Para mitigar el ataque descrito anteriormente sin eliminar el "oráculo", se puede utilizar un AEAD de compromiso de clave que no permita que existan este tipo de mensajes manipulados. AEGIS es un ejemplo de AEAD de compromiso de clave rápido (si el conjunto de instrucciones AES está presente). [20] Es posible añadir un compromiso clave a un esquema AEAD existente. [21] [22]

Enfoques para el cifrado autenticado

Cifrar y luego MAC (EtM)

Enfoque de gestión de emisiones

Primero se cifra el texto sin formato y luego se genera una MAC basada en el texto cifrado resultante. El texto cifrado y su MAC se envían juntos. ETM es el método estándar según ISO/IEC 19772:2009. [9] Es el único método que puede alcanzar la más alta definición de seguridad en AE, pero esto sólo se puede lograr cuando el MAC utilizado es "fuertemente infalsificable". [23]

IPSec adoptó EtM en 2005. [24] En noviembre de 2014, TLS y DTLS recibieron extensiones para EtM con RFC  7366. También existen varios conjuntos de cifrado EtM para SSHv2 (por ejemplo,[email protected]).

Enfoque E&M

Se produce una MAC basada en el texto sin formato y el texto sin formato se cifra sin la MAC. La MAC del texto plano y el texto cifrado se envían juntos. Utilizado, por ejemplo, en SSH . [25] Aunque no se ha demostrado que el enfoque E&M sea fuertemente infalsificable en sí mismo, [23] es posible aplicar algunas modificaciones menores a SSH para hacerlo fuertemente infalsificable a pesar del enfoque. [26]

MAC y luego cifrar (MtE)

Enfoque MtE

Se produce una MAC basada en el texto sin formato, luego el texto sin formato y la MAC se cifran juntos para producir un texto cifrado basado en ambos. Se envía el texto cifrado (que contiene una MAC cifrada). Hasta TLS 1.2, todos los conjuntos de cifrado SSL/TLS disponibles eran MtE. [27]

No se ha demostrado que MtE sea totalmente infalsificable en sí mismo. [23] Krawczyk demostró que la implementación SSL/TLS es totalmente infalsificable y demostró que SSL/TLS era, de hecho, seguro debido a la codificación utilizada junto con el mecanismo MtE. [28] Sin embargo, la prueba de Krawczyk contiene suposiciones erróneas sobre la aleatoriedad del vector de inicialización (IV). El ataque BEAST de 2011 explotó el IV encadenado no aleatorio y rompió todos los algoritmos CBC en TLS 1.0 y versiones anteriores. [29]

Además, un análisis más profundo de SSL/TLS modeló la protección como MAC-luego-pad-luego-cifrado, es decir, el texto sin formato se rellena primero hasta el tamaño de bloque de la función de cifrado. Los errores de relleno a menudo resultan en errores detectables por parte del destinatario, lo que a su vez conduce a ataques de oráculos de relleno , como Lucky Thirteen .

Ver también

Referencias

  1. ^ abc negro 2005, pag. 1.
  2. ^ Katz y Lindell 2020, pag. 116.
  3. ^ abc negro 2005, pag. 2.
  4. ^ M. Bellare; P. Rogaway; D. Wagner. "Un modo de cifrado autenticado convencional" (PDF) . NIST . Consultado el 12 de marzo de 2013 . a la gente le había ido bastante mal cuando intentaron unir un esquema de cifrado tradicional (solo de privacidad) y un código de autenticación de mensajes (MAC)
  5. ^ T. Kohno; J. Viega y D. Whiting. "El modo de cifrado autenticado (datos asociados) de la CWC" (PDF) . NIST . Consultado el 12 de marzo de 2013 . Es muy fácil combinar accidentalmente esquemas de cifrado seguros con MAC seguras y aun así obtener esquemas de cifrado autenticados inseguros.
  6. ^ "Fallos de la criptografía de clave secreta" (PDF) . Daniel J. Bernstein. Archivado desde el original (PDF) el 18 de abril de 2013 . Consultado el 12 de marzo de 2013 .
  7. ^ Jutl, Charanjit S. (1 de agosto de 2000). "Modos de cifrado con integridad de mensajes casi gratuita". Archivo ePrint de criptología: Informe 2000/039 . Actas IACR EUROCRYPT 2001. IACR . Consultado el 16 de marzo de 2013 .
  8. ^ T. Krovetz; P. Rogaway (1 de marzo de 2011). "El rendimiento del software de los modos de cifrado autenticado" (PDF) . Cifrado de software rápido 2011 (FSE 2011) . IACR .
  9. ^ ab "Tecnología de la información - Técnicas de seguridad - Cifrado autenticado". 19772:2009 . ISO/IEC . Consultado el 12 de marzo de 2013 .
  10. ^ "Desarrollo de modos de cifrado". NIST . Consultado el 17 de abril de 2013 .
  11. ^ El equipo Keccak. "Duplexación de la esponja" (PDF) .
  12. ^ Katz, J.; Yung, M. (2001). "Cifrado inolvidable y modos de funcionamiento seguros de texto cifrado elegidos". En B. Schneier (ed.). Cifrado de software rápido (FSE): actas de 2000 . Apuntes de conferencias sobre informática. vol. 1978, págs. 284–299. doi :10.1007/3-540-44706-7_20. ISBN 978-3-540-41728-6.
  13. ^ "CAESAR: Competencia por el cifrado autenticado: seguridad, aplicabilidad y solidez" . Consultado el 12 de marzo de 2013 .
  14. ^ Albertini y col. 2020, págs. 1-2.
  15. ^ ab Albertini y col. 2020, pág. 2.
  16. ^ Len, Julia; Grubbs, Pablo; Ristenpart, Thomas (2021). Partición de ataques de Oracle. USNET '21. págs. 195-212.
  17. ^ Abdalla, Bellare y Neven 2010, págs. 480–497.
  18. ^ Farshim y col. 2013, págs. 352–368.
  19. ^ Bellare y Hoang 2022, pag. 5.
  20. ^ Denis, franco. "La familia AEGIS de algoritmos de cifrado autenticados". cfrg.github.io .
  21. ^ Gueron, Shay (2020). "AEAD clave de compromiso" (PDF) .
  22. ^ poncho. "AEAD clave de compromiso". Intercambio de pila de criptografía . Consultado el 21 de febrero de 2024 .(Consulte también la sección de comentarios que analiza una recomendación revisada de libsodium para agregar un compromiso clave).
  23. ^ abc "Cifrado autenticado: relaciones entre nociones y análisis del paradigma de composición genérica". M. Bellare y C. Namprempre. Archivado desde el original el 23 de enero de 2018 . Consultado el 13 de abril de 2013 .
  24. ^ "Algoritmos separados de confidencialidad e integridad". RFC 4303: carga útil de seguridad de encapsulación de IP (ESP) . Grupo de trabajo de ingeniería de Internet (IETF) . Consultado el 12 de septiembre de 2018 .
  25. ^ "Integridad de los datos". RFC 4253 . Grupo de trabajo de ingeniería de Internet (IETF) . Consultado el 12 de septiembre de 2018 .
  26. ^ Bellare, Mihir; Kohno, Tadayoshi; Namprempre, Chanathip. "Romper y reparar de manera demostrable el esquema de cifrado autenticado SSH: un estudio de caso del paradigma codificar, luego cifrar y MAC" (PDF) . Transacciones ACM sobre Seguridad de la Información y Sistemas . Consultado el 30 de agosto de 2021 .
  27. ^ Rescorla, Eric; Dierks, Tim (agosto de 2008). "Protección de carga útil de registros". RFC 5246 . Grupo de trabajo de ingeniería de Internet (IETF) . Consultado el 12 de septiembre de 2018 .
  28. ^ "El orden de cifrado y autenticación para proteger las comunicaciones (o: ¿Qué tan seguro es SSL?)" (PDF) . H. Krawczyk . Consultado el 13 de abril de 2013 .
  29. ^ Duong, tailandés; Rizzo, Juliano (13 de mayo de 2011). "Aquí vienen los ⊕ Ninjas" (PDF) .– Documento técnico sobre el ataque BESTIA
General

Fuentes