OpenSSL

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 24 de junio de 2015; las comprobaciones requieren 34 ediciones .
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

Historial de versiones de OpenSSL [8] [9]
Versión fecha de lanzamiento Comentario
0.9.1c 23 de diciembre de 1998
0.9.2c 22 de marzo de 1999
  • Sucesor 0.9.1c
0.9.3 25 de mayo de 1999
  • Sucesor 0.9.2b
0.9.4 9 de agosto de 1999
  • Sucesor 0.9.3a
0.9.5 28 de febrero de 2000
  • Sucesor 0.9.4
0.9.6 25 de septiembre de 2000
  • Sucesor 0.9.5a
0.9.7 31 de diciembre de 2002
  • Sucesor 0.9.6h
0.9.8 5 de julio de 2005
  • Sucesor de 0.9.8za (5 de junio de 2014)
1.0.0 29 de marzo de 2010
  • Sucesor 0.9.8x
1.0.1 14 de marzo de 2012
  • Sucesor 1.0.0e
  • Soporta TLS v1.2
  • Soporte SRP
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
  • Más de 5000 cambios
  • Compatibilidad con TLS v1.3 [12]
1.1.1a 20 de noviembre de 2018
  • Corrección de errores [13]
1.1.1b 26 de febrero de 2019
  • Error de corrección
1.1.1c 28 de mayo de 2019
  • Error de corrección

Algoritmos

Pez globo , camelia , DES , RC2 , RC4 , RC5 , IDEA , AES , GOST 28147-89 [14] Funciones hash MD5 , MD2 , SHA , MDC-2 , GOST R 34.11-94 [14] Asimétrico RSA , DSA , intercambio de claves Diffie-Hellman , GOST R 34.10-2001 ( 34.10-94 ) [14]

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

# openssl genrsa -des3 -out ejemplo.com.key 2048

Si pierde su contraseña o archivo clave, deberá volver a generar el certificado.

# 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).

# 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)

# 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

  1. Versión 3.0.7 - 2022.
  2. OpenSSL versión 3.0.7 publicada - 2022.
  3. OpenSSL versión 1.1.1s publicada - 2022.
  4. El proyecto de código abierto de openssl en Open Hub: página de idiomas - 2006.
  5. 1 2 3 4 5 Directorio de software libre
  6. Cambiar licencia a Apache License v2.0 openssl/openssl@1513331 GitHub
  7. OpenSSL para QNX4 (enlace descendente) . Sistemas Embebidos SVD. Archivado desde el original el 10 de febrero de 2012. 
  8. 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. 
  9. R. r _ Consultado el 14 de noviembre de 2019. Archivado desde el original el 29 de septiembre de 2019.
  10. 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. 
  11. 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.
  12. 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.
  13. 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.
  14. 1 2 3 Motor GOST para OpenSSL 1.0
  15. 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".
  16. 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.
  17. 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