Después de un año y medio de desarrollo, se lanzó la biblioteca OpenSSL 3.1.0 con la implementación de los protocolos SSL/TLS y varios algoritmos de cifrado. OpenSSL 3.1 será compatible hasta marzo de 2025. El soporte para ramas anteriores de OpenSSL 3.0 y 1.1.1 continuará hasta septiembre de 2026 y septiembre de 2023, respectivamente. El código del proyecto se distribuye bajo la licencia Apache 2.0.
Principales innovaciones de OpenSSL 3.1.0:
- El módulo FIPS admite algoritmos criptográficos que cumplen con el estándar de seguridad FIPS 140-3. Se ha iniciado el proceso de certificación del módulo para la obtención de un certificado de cumplimiento de los requisitos FIPS 140-3. Hasta que se complete la certificación, después de actualizar OpenSSL a la rama 3.1, los usuarios pueden continuar usando un módulo FIPS certificado según FIPS 140-2. Entre los cambios en la nueva versión del módulo, se destaca la inclusión de los algoritmos Triple DES ECB, Triple DES CBC y EdDSA, cuyo cumplimiento con los requisitos FIPS aún no ha sido probado. La nueva versión también incluye optimizaciones para mejorar el rendimiento y una transición para ejecutar pruebas internas cada vez que se carga el módulo, y no solo después de la instalación.
- El código OSSL_LIB_CTX ha sido reelaborado. La nueva opción elimina bloqueos innecesarios y permite un mayor rendimiento.
- Rendimiento mejorado de los marcos de codificador y decodificador.
- Se ha realizado una optimización del rendimiento relacionada con el uso de estructuras internas (tablas hash) y el almacenamiento en caché.
- Se ha aumentado la velocidad de generación de claves RSA en modo FIPS.
- Para varias arquitecturas de procesador, se han introducido optimizaciones de ensamblaje específicas en la implementación de los algoritmos AES-GCM, ChaCha20, SM3, SM4 y SM4-GCM. Por ejemplo, el código AES-GCM se acelera mediante las instrucciones AVX512 vAES y vPCLMULQDQ.
- KBKDF (función de derivación de claves basada en claves) ahora admite el algoritmo KMAC (código de autenticación de mensajes KECCAK).
- Varias funciones "OBJ_*" están adaptadas para su uso en código multiproceso.
- Se agregó la capacidad de utilizar la instrucción RNDR y los registros RNDRRS, disponibles en procesadores basados en la arquitectura AArch64, para generar números pseudoaleatorios.
- Las funciones OPENSSL_LH_stats, OPENSSL_LH_node_stats, OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio, OPENSSL_LH_node_stats_bio y OPENSSL_LH_node_usage_stats_bio han quedado obsoletas. La macro DEFINE_LHASH_OF ha quedado obsoleta.
Fuente: opennet.ru