OpenSSL 3.0 llega con nuevo módulo FIPS, cambio de licencia y mas

Hace ya varios dias Matt Caswell, miembro del equipo de desarrollo del proyecto OpenSSL, anunció el lanzamiento de OpenSSL 3.0 la cual llega después de 3 años de desarrollo, 17 versiones alfa, 2 versiones beta, más de 7500 confirmaciones y contribuciones de más de 350 autores diferentes.

Y es que OpenSSL tuvo la suerte de haber tenido varios ingenieros a tiempo completo que trabajaron en OpenSSL 3.0, financiados de varias formas. Algunas empresas han firmado contratos de soporte con el equipo de desarrollo de OpenSSL, que patrocinó funciones específicas como el módulo FIPS el cual tenía planes para restaurar su validación con OpenSSL 3.0, sin embargo, encontraron retrasos significativos y, como las pruebas FIPS 140-2 finalizaron en septiembre de 2021, OpenSSL finalmente decidió centrar sus esfuerzos en los estándares FIPS 140-3 también.

Una característica clave de OpenSSL 3.0 es el nuevo módulo FIPS. El equipo de desarrollo de OpenSSL está probando el módulo y reuniendo los documentos necesarios para la validación de FIPS 140-2. Usar el nuevo módulo FIPS en proyectos de desarrollo de aplicaciones puede ser tan fácil como realizar algunos cambios en el archivo de configuración, aunque muchas aplicaciones necesitarán realizar otros cambios. La página de manual del módulo FIPS proporciona información sobre cómo utilizar el módulo FIPS en sus aplicaciones.

También debe tenerse en cuenta que desde OpenSSL 3.0, OpenSSL ha cambiado a la licencia de Apache 2.0. Las antiguas licencias «duales» de OpenSSL y SSLeay todavía se aplican a las versiones anteriores (1.1.1 y anteriores). OpenSSL 3.0 es una versión principal y no es totalmente compatible con la versión anterior. La mayoría de las aplicaciones que funcionaron con OpenSSL 1.1.1 seguirán funcionando sin cambios y simplemente deberán volver a compilarse (posiblemente con muchas advertencias de compilación sobre el uso de API obsoletas).

Con OpenSSL 3.0, es posible especificar, ya sea mediante programación o mediante un archivo de configuración, qué proveedores desea utilizar el usuario para una aplicación determinada. OpenSSL 3.0 viene de serie con 5 proveedores diferentes. Con el tiempo, los terceros pueden distribuir proveedores adicionales que se pueden integrar con OpenSSL. Todas las implementaciones de Los algoritmos disponibles a través de los proveedores son accesibles a través de API de «alto nivel» (por ejemplo, funciones con el prefijo EVP). No es posible acceder a él utilizando API de «bajo nivel».

Uno de los proveedores estándar disponibles es el proveedor FIPS el cual proporciona algoritmos criptográficos validados por FIPS. El proveedor de FIPS está deshabilitado de forma predeterminada y debe habilitarse explícitamente durante la configuración mediante la opción enable-fips. Si está habilitado, el proveedor FIPS se crea e instala además de otros proveedores estándar.

Usar el nuevo módulo FIPS en aplicaciones puede ser tan fácil como realizar algunos cambios en el archivo de configuración, aunque muchas aplicaciones necesitarán realizar otros cambios. Las aplicaciones escritas para usar el módulo FIPS de OpenSSL 3.0 no deben usar ninguna API o características heredadas que omitan el módulo FIPS. Esto incluye en particular:

  • API criptográficas de bajo nivel (se recomienda utilizar API de alto nivel, como EVP);
    motores
  • todas las funciones que crean o modifican métodos personalizados (por ejemplo, EVP_MD_meth_new() , EVP_CIPHER_meth_new() , EVP_PKEY_meth_new () , RSA_meth_new () , EC_KEY_METHOD_new()).

Por otra parte la biblioteca criptográfica OpenSSL (libcrypto) implementa una amplia gama de algoritmos criptográficos utilizados en varios estándares de Internet. La funcionalidad incluye cifrado simétrico, criptografía de clave pública, acuerdo de clave, gestión de certificados, funciones de hash criptográficas, generadores de números pseudoaleatorios criptográficos, códigos de autenticación de mensajes (MAC), funciones de derivación de claves (KDF) y diversas utilidades. Los servicios proporcionados por esta biblioteca se utilizan para implementar muchos otros productos y protocolos de terceros. Aquí hay una descripción general de los conceptos clave de libcrypto a continuación.

Las primitivas criptográficas como el hash SHA256 o el cifrado AES se denominan «algoritmos» en OpenSSL. Cada algoritmo puede tener varias implementaciones disponibles. Por ejemplo, el algoritmo RSA está disponible como una implementación «predeterminada» adecuada para uso general, y una implementación «fips» que ha sido validada según los estándares FIPS para situaciones en las que es importante. También es posible que un tercero agregue implementaciones adicionales, por ejemplo, en un módulo de seguridad de hardware (HSM).

Finalmente si estás interesado en conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.