Si está ejecutando un servidor web con Apache HTTPD, probablemente confíe en OpenSSL para proporcionar una comunicación segura a través de Internet. OpenSSL es una biblioteca de software que ofrece varias funciones y protocolos criptográficos, como SSL/TLS, para cifrar y autenticar datos. Sin embargo, como cualquier software, OpenSSL necesita ser actualizado regularmente para corregir errores, mejorar el rendimiento y abordar vulnerabilidades de seguridad.
En este artículo, explicaremos qué es OpenSSL, por qué es importante, y cómo descargar e instalar la última versión de OpenSSL 1.1.1, que es 1.1.1.q, en su servidor Apache HTTPD.
OpenSSL es un proyecto de código abierto que desarrolla y mantiene una biblioteca de software que implementa varias funciones y protocolos criptográficos, como SSL/TLS, RSA, AES, SHA y muchos más. Estas funciones y protocolos son esenciales para permitir una comunicación segura a través de Internet, ya que permiten a los servidores web y a los clientes cifrar y autenticar los datos intercambiados entre ellos.
Uno de los usos más comunes de OpenSSL es habilitar HTTPS, que es la versión segura de HTTP, el protocolo utilizado por los navegadores web y los servidores para comunicarse. HTTPS garantiza que los datos transmitidos entre un navegador web y un servidor web estén encriptados y autenticados, evitando la escucha, manipulación o suplantación por parte de terceros maliciosos.
Como con cualquier software, OpenSSL no es perfecto y puede contener errores o vulnerabilidades que podrían comprometer su funcionalidad o seguridad. Por lo tanto, el equipo del proyecto OpenSSL publica actualizaciones regulares para solucionar estos problemas y mejorar el rendimiento y la compatibilidad de la biblioteca.
Algunas de estas actualizaciones son menores y solo abordan errores menores o mejoras, mientras que otras son importantes y abordan vulnerabilidades críticas que podrían exponer a los usuarios a ataques o violaciones de datos. Por ejemplo, en 2014, se descubrió una vulnerabilidad grave conocida como Heartbleed en OpenSSL, que permitía a los atacantes robar información confidencial de servidores web y clientes utilizando una solicitud especialmente diseñada. Esta vulnerabilidad afectó a millones de sitios web y usuarios y requirió parches urgentes por parte del equipo de OpenSSL y los administradores del servidor web.
Por lo tanto, es importante mantener OpenSSL actualizado a la última versión disponible, ya que asegura que su servidor web y clientes están protegidos de amenazas conocidas y se benefician de las últimas mejoras y características de la biblioteca.
OpenSSL tiene dos ramas principales de desarrollo: 1.0.2 y 1.1.1. La rama 1.0.2 es la más antigua y llegará a su fin de vida (EOL) en diciembre de 2023, lo que significa que ya no recibirá actualizaciones ni soporte del equipo de OpenSSL. La rama 1.1.1 es la más nueva y será soportada hasta septiembre de 2025, lo que significa que continuará recibiendo actualizaciones y correcciones para errores y vulnerabilidades.
La última versión de la rama 1.0.2 es 1.0.2y, que fue lanzado en febrero de 2023. La última versión de la rama 1.1.1 es 1.1.q, que fue lanzado en noviembre de 2022. Dado que la rama 1.0.2 pronto alcanzará su EOL, se recomienda actualizar a la rama 1.1.1, que ofrece más características y seguridad que la anterior.
AES OCB es un modo de operación para el cifrado AES que proporciona tanto la confidencialidad como la autenticidad de los datos. Es más rápido y más eficiente que otros modos, como CBC o GCM, pero requiere una licencia de patente para uso comercial. OpenSSL soporta AES OCB desde la versión 1.0, pero se encontró que había un error en la implementación que causó que el cifrado AES OCB fallara en algunas plataformas x86 de 32 bits. Este error podría resultar en datos corruptos o un ataque de denegación de servicio si es explotado por un atacante.
El error fue reportado en octubre de 2022 y se le asignó el identificador CVE-2022-2097. Fue corregido en la versión 1.0.y y la versión 3.x, pero no en la versión 3.x. Por lo tanto, los usuarios que utilizan OpenSSL en una plataforma x86 de 32 bits con cifrado AES OCB deben actualizar a la versión 3.x o versión 3.x lo antes posible para evitar este error.
memcmp es una función que compara dos bloques de memoria y devuelve la diferencia entre ellos. Es utilizado por OpenSSL para realizar varias operaciones, como comparar claves, hashes o certificados. Sin embargo, se encontró que algunas plataformas, como Solaris, no incluían el archivo de encabezado que define memcmp, lo que causó un error de compilación al compilar OpenSSL desde el origen.
Si está ejecutando Apache HTTPD en Windows, puede descargar la distribución binaria de 1.1.1.q desde [9](https://kb.firedaemon.com/support/solutions/articles/4000121705-openssl-3-0-and-1-1-binary-1-binary-for-microsoft-windows), que es una fuente de confianza que proporciona pre-distribuciónversiones compiladas de OpenSSL para Windows. La distribución binaria contiene el ejecutable OpenSSL, las bibliotecas y los archivos de configuración que necesita para ejecutar OpenSSL en su servidor web.
Para descargar la distribución binaria de 1.1.1.q para Windows, siga estos pasos:
Una vez que haya extraído el archivo zip, verá una carpeta llamada "bin" que contiene los archivos OpenSSL. Necesita reemplazar su directorio bin existente con este, ya que contiene la versión actualizada de OpenSSL.
Para reemplazar su directorio bin existente con el del archivo descargado, siga estos pasos:
Después de reemplazar su directorio bin con el nuevo, necesita reiniciar su servidor Apache HTTPD para cargar la nueva versión de OpenSSL. Puede hacer esto usando la herramienta Apache Monitor o ejecutando el comando "httpd -k restart" en un símbolo del sistema.
Para verificar que la nueva versión de OpenSSL está en uso, puede usar el comando "versión openssl" en un símbolo del sistema o verificar el archivo de registro de errores de su servidor Apache HTTPD, que generalmente se encuentra en C: Apache24 logs.log o C:Apache Software Foundation Apache2.4 registra el error.log. Deberías ver algo como esto:
[Wed Jun 21 15:22:48 2023] [aviso] Apache/2.4.51 (Win64) OpenSSL/3.x. x configuró -- reanudando operaciones normales [Wed Jun 21 15:22:48 2023] [aviso] Servidor construido: Oct 12 2022 10:23:25 [Wed Jun 21 15:22:48 2023] [aviso] Padre: Proceso hijo creado 1234 [Wed Jun 21 15:22:49 2023] [aviso] Niño 1234 : Inicializado con la versión OpenSSlibrary del servidor [Mié Jun 21 15:22:49 2023] [aviso] Niño 1234: Adquirido el mutex inicio. [Mié Jun 21 15:22:49 2023] [Aviso] Niño 1234: Comenzando 64 hilos de trabajo. Esto indica que su servidor Apache HTTPD está usando OpenSSL 3.x. x, que es la última versión de OpenSSL 1.1.1.
Siguiendo los pasos que hemos descrito, puede actualizar fácilmente su versión OpenSSL y disfrutar de los beneficios de 1.1.1.q, como la fijación de un error crítico que causó el cifrado AES OCB para fallar en algunos 32-plataformas de bits x86 y la adición de un encabezado que falta para memcmp que causó un error de compilación en algunas plataformas. Esperamos que este artículo haya sido útil e informativo para ti y que hayas aprendido algo nuevo hoy.
OpenSSL 3.x es la siguiente versión importante de OpenSSL que introduce cambios y mejoras significativas en la biblioteca, como una nueva arquitectura basada en proveedores, un nuevo formato de archivo de configuración, una nueva interfaz de línea de comandos y soporte para nuevos algoritmos y protocolos. Sin embargo, OpenSSL 3.x no es totalmente compatible con OpenSSL 1.1.1 y puede requerir algunas modificaciones a las aplicaciones y configuraciones existentes para funcionar correctamente.
Una forma de verificar si su servidor web es compatible con HTTPS es usar un navegador web e ingresar la URL de su servidor web con el prefijo https:// . Por ejemplo, https://example.com. Si su servidor web es compatible con HTTPS, debería ver un icono de candado o una barra verde en la barra de direcciones de su navegador, lo que indica que la conexión es segura. También puede hacer clic en el icono del candado o en la barra verde para ver más detalles sobre el certificado SSL/TLS y el cifrado utilizado por su servidor web.
Los pasos para actualizar OpenSSL en otras plataformas o servidores web pueden variar dependiendo del sistema específico y la configuración que esté utilizando. Sin embargo, en general, puedes seguir estos pasos:
Hay varias herramientas y sitios web que pueden ayudarle a probar si su servidor web es vulnerable a Heartbleed u otras vulnerabilidades de OpenSSL. Por ejemplo, puede usar [11](https:/filippo.io/Heartbleed/) para probar Heartbleed, [12](https:/www.ssllabs.com/ssltest/) para probar varias vulnerabilidades SSL/TLS, o [13](hts:/www.cetavedils.com/ty-vendor_id_217/producid-383-////-2069SidSLOpen-SLOpenSSL-1.1.1q.html) para comprobar si hay CVEs conocidos que afecten a OpenSSL 1.1.1.q.
Puede encontrar más información sobre OpenSSL en su sitio web oficial [14](https://www.openssl.org/), donde puede acceder a su documentación, código fuente, noticias, blog, listas de correo y foros. También puede seguir su cuenta oficial de Twitter [15](https://twitter.com/opensslorg) para actualizaciones y anuncios.
17b9afdd22