Para las relaciones entre OpenSSL y FIPS 140-2, lea esta documentación .
El OpenSSL FIPS Object Module es un subconjunto específico de OpenSSL, compatible con API con OpenSSL y se proporciona como código fuente. Ese módulo ha pasado por el largo y doloroso proceso administrativo de obtener una validación de FIPS 140-2 . Ha alcanzado el "nivel general: 1" (consulte la validación certificado ).
El propósito de la validación FIPS 140-2 es mostrar, básicamente, que se aplicó algún nivel de "seriedad" durante el desarrollo. La validación no puede probar que no hay ningún error o vulnerabilidad, pero puede mostrar que los desarrolladores aplicaron metodologías adecuadas que, con suerte, deberían evitar errores y hacer que el software se ajuste a un conjunto específico de propiedades de destino.
Ahora, hay algunas advertencias:
-
En la práctica, los desarrolladores de OpenSSL aplicaron las mismas metodologías de desarrollo tanto para el módulo FIPS como para OpenSSL "simple". Ambas versiones comparten mucho código; El módulo FIPS es en realidad un subconjunto de la versión de biblioteca normal. Para las mismas funcionalidades, el OpenSSL simple no debe ser menos seguro que el módulo FIPS. (Para las funcionalidades que ofrece OpenSSL, pero no el módulo FIPS, todo vale).
-
El módulo FIPS se valida solo en la medida en que lo use absolutamente sin cambios . Si modifica el menor carácter en el código fuente, ya no estará cubierto por la validación FIPS.
El segundo punto, en particular, implica que si se encuentra un error en "OpenSSL normal", y se publica una corrección de errores, esa corrección de errores se no inmediatamente se importa al módulo FIPS, porque anularía su FIPSness. Por lo tanto, se puede argumentar que el OpenSSL simple es, de hecho, más seguro que el módulo FIPS, ya que se corrige mucho más rápidamente cuando se descubren los agujeros.
Resumen: si no tiene como objetivo algún tipo de conformidad con FIPS 140-2, use el OpenSSL normal.