OpenSSL
| OpenSSL | |
|---|---|
| | |
| | |
| Tipo de | biblioteca de funciones , software de cifrado y utilidad |
| Escrito en | C [4] , lenguaje ensamblador y Perl |
| Sistema operativo | GNU/Linux [5] , GNU/Hurd [5] , BSD [5] , macOS [5] y Microsoft Windows [5] |
| Primera edición | 1998 |
| ultima versión |
|
| Formatos de archivo legibles | formato salado OpenSSL [d] |
| Formatos de archivo generados | formato salado OpenSSL [d] |
| Licencia | Licencia Apache 2.0 [6] |
| Sitio web | openssl.org _ |
| Archivos multimedia en Wikimedia Commons | |
OpenSSL es una completa biblioteca criptográfica de código abierto , ampliamente conocida por la extensión SSL / TLS utilizada en el protocolo web HTTPS .
Admite casi todos los algoritmos de hashing , cifrado y firma electrónica de bajo nivel , y también implementa los estándares criptográficos más populares, que incluyen: le permite crear claves RSA , DH , DSA , certificados X.509 , firmarlos, generar CSR y CRT, cifrar datos y probar conexiones SSL/TLS.
Disponible como paquetes para la mayoría de los sistemas operativos tipo UNIX (incluidos Solaris / OpenSolaris , Linux , macOS , QNX4 [7] , QNX6 y cuatro sistemas operativos BSD de código abierto ), así como para OpenVMS y Microsoft Windows .
OpenSSL se basa en SSLeay , escrito por Eric A. Young y Tim Hudson, quienes terminaron de trabajar extraoficialmente en diciembre de 1998 cuando comenzaron a trabajar en el proyecto RSA Security.
Principales lanzamientos
| Versión | fecha de lanzamiento | Comentario |
|---|---|---|
| 0.9.1c | 23 de diciembre de 1998 | |
| 0.9.2c | 22 de marzo de 1999 |
|
| 0.9.3 | 25 de mayo de 1999 |
|
| 0.9.4 | 9 de agosto de 1999 |
|
| 0.9.5 | 28 de febrero de 2000 |
|
| 0.9.6 | 25 de septiembre de 2000 |
|
| 0.9.7 | 31 de diciembre de 2002 |
|
| 0.9.8 | 5 de julio de 2005 |
|
| 1.0.0 | 29 de marzo de 2010 |
|
| 1.0.1 | 14 de marzo de 2012 |
|
| 1.0.1k | 8 de enero de 2015 | CVE-2014-3572, CVE-2015-0204, CVE-2015-0205 |
| 1.0.2 | 22 de enero de 2015 | |
| 1.1.0 | 25 de agosto de 2016 | |
| 1.1.0g | 2 de noviembre de 2017 | |
| 1.1.1 | 11 de septiembre de 2018 |
|
| 1.1.1a | 20 de noviembre de 2018 |
|
| 1.1.1b | 26 de febrero de 2019 |
|
| 1.1.1c | 28 de mayo de 2019 |
|
Algoritmos
La compatibilidad con los algoritmos GOST apareció en la versión 1.0.0, lanzada el 29 de marzo de 2010, y fue implementada por los empleados de Cryptocom [15] .
Comandos útiles de openssl
- Creación de una clave para un certificado SSL. Si no se especifica -des3, será sin contraseña:
# openssl genrsa -des3 -out ejemplo.com.key 2048
Si pierde su contraseña o archivo clave, deberá volver a generar el certificado.
- Generación de una solicitud de CSR:
# openssl req -new -key ejemplo.com.key -out ejemplo.com.csr
El nombre del dominio para el que se crea la solicitud se escribe en Nombre común - ejemplo.com. No es necesario ingresar una contraseña de desafío y un nombre de empresa opcional (simplemente presione Intro).
- Quite la contraseña de la clave (es necesario cuando se pone el certificado en la configuración de Apache , de lo contrario pedirá una contraseña al inicio):
# openssl rsa -in example.com.key -out example.com-nopass.key -passin stdin
e ingrese la contraseña desde la consola (o -passin pass: supersecretpassword que se considera menos segura)
- Lea el contenido del archivo CSR en un formato de texto más legible:
# openssl req -noout -text -in ejemplo.com.csr
Vulnerabilidades identificadas
Vulnerabilidad en la implementación de la distribución Debian
En la versión 0.9.8c-1 de Debian , se aplicó un parche a OpenSSL que rompió deliberadamente el generador de números aleatorios. Esta versión de OpenSSL se incluyó en el lanzamiento de Debian el 17 de septiembre de 2006. Todas las claves generadas a través de esta versión del generador y todos los datos cifrados con dichas claves pueden considerarse comprometidos. El problema se solucionó en la versión 0.9.8c-4etch3 de la distribución Debian 4.0; en la versión 0.9.8g-9 de la distribución Debian 5.0.
Error Heartbleed
El 7 de abril de 2014, se anunció una vulnerabilidad crítica en OpenSSL 1.0.2-beta y todas las versiones de OpenSSL 1.0.1 excepto 1.0.1g. La vulnerabilidad está relacionada con la extensión TLS Heartbeat y permite leer hasta 64 KB de RAM de la aplicación con cada solicitud de latido.[18] En la lista CVE, aparece con el número CVE-2014-0160.
La vulnerabilidad existe desde el 31 de diciembre de 2011; el código vulnerable se distribuyó con el lanzamiento de OpenSSL 1.0.1 el 14 de marzo de 2012. Al leer la memoria RAM de un servidor web, un atacante puede obtener acceso a información confidencial tanto del servidor como de los usuarios, lo que le permite interceptar claves privadas, cookies y contraseñas. En el momento del anuncio, se creía que alrededor del 17 % del medio millón de servidores web seguros eran vulnerables.
Horquillas
LibreSSL
Tras el descubrimiento de la vulnerabilidad Heartbleed, los desarrolladores del proyecto OpenBSD anunciaron la creación de una bifurcación de OpenSSL basada en la rama 1.0.1g llamada LibreSSL [16] . El énfasis de los desarrolladores está en corregir errores, eliminar funcionalidades innecesarias, aumentar la seguridad y mejorar la legibilidad del código.
Aburrido SSL
En julio de 2014, Google anunció su propia bifurcación de OpenSSL llamada BoringSSL [17] . Google tiene la intención de colaborar y compartir parches con los desarrolladores de OpenSSL y LibreSSL .
Notas
- ↑ Versión 3.0.7 - 2022.
- ↑ OpenSSL versión 3.0.7 publicada - 2022.
- ↑ OpenSSL versión 1.1.1s publicada - 2022.
- ↑ El proyecto de código abierto de openssl en Open Hub: página de idiomas - 2006.
- ↑ 1 2 3 4 5 Directorio de software libre
- ↑ Cambiar licencia a Apache License v2.0 openssl/openssl@1513331 GitHub
- ↑ OpenSSL para QNX4 (enlace descendente) . Sistemas Embebidos SVD. Archivado desde el original el 10 de febrero de 2012.
- ↑ OpenSSL - Project Newsflash (enlace descendente) . Fundación de software OpenSSL. Fecha de acceso: 25 de noviembre de 2012. Archivado desde el original el 26 de febrero de 2013.
- ↑ R. r _ Consultado el 14 de noviembre de 2019. Archivado desde el original el 29 de septiembre de 2019.
- ↑ Registro de cambios de OpenSSL 1.x (enlace descendente) . Fundación de software OpenSSL. Fecha de acceso: 25 de noviembre de 2012. Archivado desde el original el 26 de febrero de 2013.
- ↑ Registro de cambios de OpenSSL 1.0.2 . Red abierta. Fecha de acceso: 26 de enero de 2012. Archivado desde el original el 19 de marzo de 2015.
- ↑ Fundación OpenSSL, Inc. Lanzamiento de OpenSSL 1.1.1: blog de OpenSSL . www.openssl.org. Consultado el 12 de septiembre de 2018. Archivado desde el original el 15 de septiembre de 2018.
- ↑ Cambios entre 1.1.1 y 1.1.1a . Consultado el 8 de enero de 2019. Archivado desde el original el 13 de septiembre de 2016.
- ↑ 1 2 3 Motor GOST para OpenSSL 1.0
- ↑ Compatibilidad con GOST en la versión de desarrollo de OpenSSL 1.0.0 Archivado el 11 de febrero de 2011. en el sitio web de la empresa "Cryptocom".
- ↑ El proyecto OpenBSD introdujo LibreSSL, una bifurcación de OpenSSL . Red abierta. Consultado el 26 de noviembre de 2015. Archivado desde el original el 20 de noviembre de 2015.
- ↑ Google presentó BoringSSL, una bifurcación de OpenSSL . Red abierta. Consultado el 26 de noviembre de 2015. Archivado desde el original el 8 de diciembre de 2015.
Enlaces
- OpenSSL.org Archivado el 14 de abril de 2014 en Wayback Machine .
- Versión Win32 de OpenSSL Archivado el 23 de septiembre de 2016 en Wayback Machine , slproweb.com
- Versión Win64 de OpenSSL Archivado el 23 de septiembre de 2016 en Wayback Machine , slproweb.com
- IA64, Alpha, versión VAX de OpenSSL para OpenVMS Archivado el 12 de marzo de 2014 en Wayback Machine , polarhome.com
- artículo "Uso de OpenSSL" Archivado el 19 de enero de 2009 en Wayback Machine , opennet.ru
- Traducción al ruso de algunos comandos de OpenSSL , omsk.lug.ru
- OpenSSL en Xgu.ru Archivado el 13 de octubre de 2010 en Wayback Machine : traducción al ruso de OpenSSL Command Line HOWTO