uso de PRNG en OpenSSL - modo fips

4

Estoy trabajando en un dispositivo de red basado en centos, requerido para pasar el fips 140-2 nivel 2. Planeo usar openssl en modo fips y CTR_DRBG usará como PRNG. ¿Será esto suficiente para cumplir con los requisitos del NIST SP 800-90?

¿Debo proporcionar una fuente externa de entropía o el valor predeterminado de Linux / dev / random es suficiente? Ran

    
pregunta user3087632 04.04.2017 - 23:41
fuente

2 respuestas

3

CTR_DRBG es un PRNG aprobado para conformidad con FIPS, definido en NIST SP800-90A. El /dev/random de Linux es, en principio, una fuente de entropía adecuada según NIST SP800-90B, pero si es adecuado en su caso de uso particular depende de dónde el propio kernel de Linux pueda obtener la entropía. Tener un RNG de hardware (como RDRAND en las CPU Intel modernas) generará menos preguntas durante la certificación.

Más allá de eso, una certificación FIPS 140 nivel 2 incluye algunos requisitos de seguridad reales (a diferencia del nivel 1), por lo que no es suficiente (pero es necesario) utilizar algoritmos aprobados. Obtener la certificación de su producto requiere cumplir con todos los demás requisitos de la certificación (registro, limpieza de datos, autenticación del operador, autocomprobaciones sin sentido, etc.) y satisfacer al evaluador de que ha cumplido con todos los requisitos.

    
respondido por el Gilles 05.04.2017 - 02:59
fuente
0

CTR_DRBG (AES) con OpenSSL FIPS Object Module v2.x que funciona en modo FIPS debería ser suficiente para FIPS 140-2 nivel 1. ¿Sabía que este módulo ya cuenta con la certificación FIPS de OpenSSL Software Foundation? Es posible que pueda reclamar la aplicabilidad del certificado CMVP existente si su dispositivo es muy similar a las configuraciones probadas que figuran en la Política de seguridad . Antes de comprometerse a someterse a su propia certificación, verifique que el NIST validado lista de módulos criptográficos .

Si tiene que tener su propia certificación FIPS, como parte de esa certificación, tendrá que analizar las fuentes de entropía para demostrar que tiene suficiente entropía. Tendrá que producir el Informe de análisis de entropía (EAR) que describa cómo funcionan sus fuentes de entropía ( /dev/random en este caso). También deberá recopilar eventos reales de entropía y calcular min-entropy para cada fuente para justificar sus reclamos.

El kernel de Linux ( /drivers/char/random.c ) implementa múltiples fuentes de entropía de software. Son add_disk_randomness() , add_input_randomness() , add_interrupt_randomness() . Dependiendo de la configuración de su hardware (por ejemplo, un sistema sin cabeza con solo almacenamiento flash) podría tener una entropía de tiempo de arranque insuficiente. En tales casos, tendrá que integrar fuentes de entropía adicionales para certificar. Una posibilidad son las fuentes de CPU, algo como el RdSeed de Intel. Otra posibilidad es solo para el software CPU Jitter .

    
respondido por el Kirill Sinitski 05.04.2017 - 17:54
fuente

Lea otras preguntas en las etiquetas