stringtranslate.com

Norma NIST SP 800-90A

NIST SP 800-90A ("SP" significa " publicación especial ") es una publicación del Instituto Nacional de Estándares y Tecnología con el título Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas . La publicación contiene la especificación para tres generadores de números pseudoaleatorios supuestamente criptográficamente seguros para su uso en criptografía : Hash DRBG (basado en funciones hash ), HMAC DRBG (basado en HMAC ) y CTR DRBG (basado en cifrados de bloque en modo contador ). Las versiones anteriores incluían un cuarto generador, Dual_EC_DRBG (basado en criptografía de curva elíptica ). Más tarde se informó que Dual_EC_DRBG probablemente contenía una puerta trasera cleptográfica insertada por la Agencia de Seguridad Nacional de los Estados Unidos (NSA).

Historia

NIST SP 800-90A fue publicada por el Instituto Nacional de Estándares y Tecnología en junio de 2006 como NIST SP 800-90 con el título Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas . [1] La publicación contiene la especificación para tres generadores de números pseudoaleatorios supuestamente criptográficamente seguros para su uso en criptografía : Hash DRBG (basado en funciones hash ), HMAC DRBG (basado en HMAC ) y CTR DRBG (basado en cifrados de bloque en modo contador ).

Desde el 24 de junio de 2015, la versión actual de la publicación es la Revisión 1. Las versiones anteriores incluían un cuarto generador, Dual_EC_DRBG (basado en criptografía de curva elíptica ). Posteriormente se informó que Dual_EC_DRBG probablemente contenía una puerta trasera cleptográfica insertada por la Agencia de Seguridad Nacional de los Estados Unidos (NSA), mientras que los otros tres generadores de números aleatorios son aceptados como indiscutibles y seguros por múltiples criptógrafos. [2] [3]

Como trabajo del Gobierno Federal de los EE. UU. , NIST SP 800-90A es de dominio público y está disponible gratuitamente.

Análisis de seguridad

El NIST afirma que cada uno de los cuatro DBRG (revisados ​​a tres) son "resistentes al retroceso" y "resistentes a la predicción". El primero es la noción común de "secreto hacia adelante" de los PRNG: en caso de un compromiso de estado, el atacante no puede recuperar estados y resultados históricos. El segundo significa que si el estado se ve comprometido y posteriormente se vuelve a sembrar con suficiente entropía, se restablece la seguridad. [4]

EC_DRBG dual

Un intento de prueba de seguridad para Dual_EC_DRBG establece que se requieren tres problemas para que Dual_EC_DRBG sea seguro: el problema de Diffie-Hellman decisional , el problema del logaritmo x y el problema del punto truncado. [5] El problema de Diffie-Hellman decisional es ampliamente aceptado como difícil. [5] El problema del logaritmo x no es ampliamente aceptado como difícil. Se muestra cierta evidencia de que este problema es difícil, pero esa evidencia no es concluyente. [5] Por lo tanto, la prueba de seguridad es cuestionable y se probaría inválida si se demuestra que el problema del logaritmo x se puede resolver de manera eficiente. El problema del punto truncado requiere que se trunquen suficientes bits del punto seleccionado por Dual_EC_DRBG para que sea indistinguible de un número verdaderamente aleatorio. [5] Sin embargo, se ha demostrado que el truncamiento de 16 bits, el valor predeterminado especificado por el estándar Dual_EC_DRBG, es insuficiente para hacer que la salida sea indistinguible de un generador de números aleatorios verdadero [6] y, por lo tanto, invalida la prueba de seguridad de Dual_EC_DRBG cuando se utiliza el valor de truncamiento predeterminado.

Puerta trasera en Dual_EC_DRBG

Como parte del programa Bullrun , la NSA ha insertado puertas traseras en los sistemas de criptografía. En 2013 se sugirió que uno de esos objetivos era Dual_EC_DRBG. [7] La ​​NSA logró esto trabajando durante el proceso de estandarización para finalmente convertirse en el único editor del estándar. [8] Para lograr que Dual_EC_DRBG fuera aceptado en NIST SP 800-90A, la NSA citó el uso de Dual_EC_DRBG por parte de la destacada empresa de seguridad RSA Security en sus productos. Sin embargo, la NSA había pagado a RSA Security 10 millones de dólares para utilizar Dual_EC_DRBG como predeterminado, en un acuerdo que Reuters describe como "gestionado por líderes empresariales en lugar de tecnólogos puros". Como Reuters describió el contrato de 10 millones de dólares para que RSA Security utilizara Dual_EC_DRBG como secreto, las personas involucradas en el proceso de aceptación de Dual_EC_DRBG en NIST SP 800-90A presumiblemente no fueron informadas de este obvio conflicto de intereses. [9] Esto podría ayudar a explicar cómo un generador de números aleatorios que luego se demostró que era inferior a las alternativas (además de la puerta trasera) llegó al estándar NIST SP 800-90A.

Dan Shumow y Niels Ferguson ya habían documentado en 2007 la posibilidad de que existiera una puerta trasera en Dual_EC_DRBG [10] , pero empresas como RSA Security siguieron utilizándola hasta que se reveló en 2013 [2] . Dadas las fallas conocidas en Dual_EC_DRBG, posteriormente hubo acusaciones de que RSA Security insertó deliberadamente una puerta trasera de la NSA en sus productos. RSA ha negado haber insertado deliberadamente una puerta trasera en sus productos [11] .

Tras la revelación de la puerta trasera de la NSA, el NIST ha reabierto el proceso de investigación pública para el estándar NIST SP 800-90A. [7] [12] En junio de 2015 se publicó una versión revisada del NIST SP 800-90A que elimina Dual_EC_DRBG. [13]

Hash_DRBG y HMAC_DRBG

Hash_DRBG y HMAC_DRBG tienen pruebas de seguridad para una única llamada para generar números pseudoaleatorios. [14] El documento que prueba la seguridad de Hash_DRBG y HMAC_DRBG cita la prueba de seguridad intentada para Dual_EC_DRBG utilizada en el párrafo anterior como prueba de seguridad para decir que no se debe usar CTR_DRBG porque es el único DRBG en NIST SP 800-90A que carece de una prueba de seguridad. [14]

HMAC_DRBG también tiene una prueba de seguridad verificada por máquina. [15] La tesis que contiene la prueba de seguridad verificada por máquina también demuestra que un compromiso de una instancia de HMAC_DRBG correctamente implementada no compromete la seguridad de los números generados antes del compromiso. [15]

Woodage y Shumow (2019) analizan los esquemas NIST con más detalle; específicamente, proporcionan pruebas de seguridad que tienen en cuenta la generación inicial de semillas y la resiembra, que no se han analizado en absoluto antes. Bajo el modelo de oráculo aleatorio y asumiendo una fuente de entropía independiente del oráculo: [4]

CTR_DRBG

Se ha demostrado que CTR_DRBG tiene una imperfección teórica cuando se usa con ciertos parámetros porque los criptógrafos no consideraron el tamaño del bloque del cifrado al diseñar este generador de números pseudoaleatorios. [16] CTR_DRBG parece seguro e indistinguible de una fuente aleatoria verdadera cuando se usa AES como el cifrado de bloque subyacente y se toman 112 bits de este generador de números pseudoaleatorios . [16] Cuando se usa AES como el cifrado de bloque subyacente y se toman 128 bits de cada instancia, se entrega el nivel de seguridad requerido con la salvedad de que la salida de un cifrado de 128 bits en modo contador se puede distinguir de un generador de números aleatorios verdadero. [16] Cuando se usa AES como el cifrado de bloque subyacente y se toman más de 128 bits de este generador de números pseudoaleatorios, entonces el nivel de seguridad resultante está limitado por el tamaño del bloque en lugar del tamaño de la clave y, por lo tanto, el nivel de seguridad real es mucho menor que el nivel de seguridad implícito por el tamaño de la clave. [16] También se ha demostrado que CTR_DRBG no ofrece el nivel de seguridad esperado cuando se utiliza Triple DES porque su tamaño de bloque de 64 bits es mucho menor que el tamaño de clave de 112 bits utilizado para Triple DES. [16]

Actualmente no existe ningún método conocido para explotar este problema cuando se utiliza AES.

Borrado de clave

El esquema CTR_DRBG del NIST borra la clave después de que se genera la aleatoriedad solicitada, al producir aleatoriedad adicional para reemplazar la clave. Esto es un desperdicio desde una perspectiva de rendimiento, pero no causa problemas inmediatos con el secreto hacia adelante. Sin embargo, al darse cuenta de las implicaciones de rendimiento, el NIST recomienda una "interfaz AES-CTR-DRBG extendida" para sus presentaciones del Proyecto de Criptografía Post-Cuántica . Esta interfaz permite generar múltiples conjuntos de aleatoriedad sin que intervenga el borrado, borrando solo cuando el usuario señala explícitamente el final de las solicitudes. Como resultado, la clave podría permanecer en la memoria durante un tiempo prolongado si se hace un mal uso de la "interfaz extendida". Una alternativa propuesta por Bernstein es producir aleatoriedad para reemplazar la clave antes de que se genere la aleatoriedad solicitada, como se hace en los RNG de "borrado rápido de clave". [17]

Los límites de seguridad reportados por Campagna (2006) no tienen en cuenta ningún procedimiento de reemplazo de clave. [17]

Woodage y Shumow (2019) proporcionan un borrador de análisis de la situación mencionada por Bernstein, es decir, la fuga de estado asumiendo grandes cantidades de aleatoriedad ( next) generadas entre la re-clave ( final). [4]

Historial de versiones de NIST SP 800-90A

Véase también

Referencias

  1. ^ Barker, Elaine; Kelsey, John (junio de 2006). "Publicación especial 800-90 del NIST: Recomendación para la generación de números aleatorios mediante generadores de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . Consultado el 27 de noviembre de 2016 .
  2. ^ ab Green, Matthew (20 de septiembre de 2013). "RSA advierte a los desarrolladores que no utilicen productos RSA" . Consultado el 23 de agosto de 2014 .
  3. ^ Schneier, Bruce (15 de noviembre de 2007). «La extraña historia de Dual_EC_DRBG» . Consultado el 25 de noviembre de 2016 .
  4. ^ abc Woodage, Joanne; Shumow, Dan (2019). "Análisis de NIST SP 800-90A" (PDF) . Avances en criptología – EUROCRYPT 2019 . Vol. 11477. págs. 151–180. doi :10.1007/978-3-030-17656-3_6.
  5. ^ abcd Brown, Daniel RL; Gjøsteen, Kristian (15 de febrero de 2007). "Un análisis de seguridad del generador de números aleatorios de curva elíptica NIST SP 800-90" (PDF) . Consultado el 19 de noviembre de 2016 .
  6. ^ Schoenmakers, Berry; Sidorenko, Andrey (29 de mayo de 2006). "Criptoanálisis del generador pseudoaleatorio de curva elíptica dual" (PDF) . Consultado el 20 de noviembre de 2016 .
  7. ^ ab Perlroth, Nicole (10 de septiembre de 2013). "Gobierno anuncia medidas para restablecer la confianza en los estándares de cifrado". New York Times . Consultado el 23 de agosto de 2014 .
  8. ^ Ball, James; Borger, Julian; Greenwald, Glenn (5 de septiembre de 2013). "Revelado: cómo las agencias de espionaje de Estados Unidos y el Reino Unido derrotan la privacidad y la seguridad en Internet". The Guardian . Consultado el 23 de agosto de 2014 .
  9. ^ Menn, Joseph (20 de diciembre de 2013). "Exclusiva: contrato secreto vincula a la NSA con un pionero de la industria de seguridad". Reuters . Consultado el 23 de agosto de 2014 .
  10. ^ Bruce Schneier (15 de noviembre de 2007). "¿La NSA puso una puerta trasera secreta en el nuevo estándar de cifrado?". Wired News . Archivado desde el original el 23 de noviembre de 2015. Consultado el 23 de agosto de 2014 .URL alternativa
  11. ^ Goodin, Dan (20 de septiembre de 2013). "RSA informa a sus clientes que no habilitamos puertas traseras en nuestros productos criptográficos". Ars Technica . Consultado el 23 de agosto de 2014 .
  12. ^ "NIST invita a enviar comentarios sobre el borrador SP 800-90A, revisión 1". Instituto Nacional de Normas y Tecnología . 2014-04-21. Archivado desde el original el 2014-07-23 . Consultado el 2014-08-23 .
  13. ^ Barker, Elaine; Kelsey, John (junio de 2015). "NIST publicó la publicación especial (SP) 800-90A Revisión 1: Recomendación para la generación de números aleatorios utilizando generadores de bits aleatorios deterministas" (PDF) . Instituto Nacional de Estándares y Tecnología . doi : 10.6028/NIST.SP.800-90Ar1 . Consultado el 19 de noviembre de 2016 .
  14. ^ ab Kan, Wilson (4 de septiembre de 2007). "Análisis de los supuestos subyacentes en los DRBG del NIST" (PDF) . Consultado el 19 de noviembre de 2016 .
  15. ^ ab Ye, Katherine Qinru (abril de 2016). "El notorio PRG: verificación formal del generador de números pseudoaleatorios HMAC-DRBG" (PDF) . Consultado el 19 de noviembre de 2016 .
  16. ^ abcde Campagna, Matthew J. (1 de noviembre de 2006). "Límites de seguridad para el generador de bits aleatorios determinísticos basado en el libro de códigos del NIST" (PDF) . Consultado el 19 de noviembre de 2016 .
  17. ^ ab Bernstein, Daniel J. "2017.07.23: Generadores de números aleatorios con borrado rápido de claves: un esfuerzo por limpiar varios desastres simultáneamente. #rng #forwardsecrecy #urandom #cascade #hmac #rekeying #proofs".