
Biblioteca de criptografía de propósito general que implementa protocolos SSL/TLS, cifrados simétricos/asimétricos, resúmenes de mensajes y manejo de certificados X.509 para comunicaciones seguras y cifrado de datos.
OpenSSL 1.0.1g 7 de abril de 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Todos los derechos reservados.
El Proyecto OpenSSL es un esfuerzo colaborativo para desarrollar un conjunto de herramientas robusto, de grado comercial, completo y de código abierto que implementa los protocolos Secure Sockets Layer (SSL v2/v3) y Transport Layer Security (TLS v1), así como una biblioteca criptográfica de propósito general de gran potencia. El proyecto es gestionado por una comunidad mundial de voluntarios que utilizan Internet para comunicarse, planificar y desarrollar el conjunto de herramientas OpenSSL y su documentación relacionada.
OpenSSL se basa en la excelente biblioteca SSLeay desarrollada por Eric A. Young y Tim J. Hudson. El conjunto de herramientas OpenSSL se distribuye bajo una situación de doble licencia (la licencia OpenSSL más la licencia SSLeay), lo que básicamente significa que eres libre de obtenerlo y usarlo para fines comerciales y no comerciales siempre que cumplas las condiciones de ambas licencias.
El conjunto de herramientas OpenSSL incluye:
libssl.a: Implementación de SSLv2, SSLv3, TLSv1 y el código necesario para soportar SSLv2, SSLv3 y TLSv1 en un mismo servidor y cliente.
libcrypto.a: Funcionalidades generales de cifrado y X.509 v1/v3 necesarias para SSL/TLS pero que no forman parte lógica de él. Incluye rutinas para lo siguiente:
Cifrados
libdes - el paquete de cifrado DES libdes de EAY que circuló por la red
durante unos años y luego fue relicenciado por él como parte de
SSLeay. Incluye 15 'modos/variaciones' de DES (versiones de 1,
2 y 3 claves de ecb, cbc, cfb y ofb; pcbc y una forma más
general de cfb y ofb) incluyendo desx en modo cbc, un crypt(3)
rápido y rutinas para leer contraseñas desde el teclado.
Cifrado RC4,
Cifrado RC2 - 4 modos diferentes: ecb, cbc, cfb y ofb.
Cifrado Blowfish - 4 modos diferentes: ecb, cbc, cfb y ofb.
Cifrado IDEA - 4 modos diferentes: ecb, cbc, cfb y ofb.
Resúmenes
Algoritmos de resumen de mensajes MD5 y MD2, implementaciones rápidas,
Algoritmos de resumen de mensajes SHA (SHA-0) y SHA-1,
Resumen de mensajes MDC2. Un hash basado en DES popular en tarjetas
inteligentes.
Clave Pública
Cifrado/descifrado/generación RSA.
No hay límite en el número de bits.
Cifrado/descifrado/generación DSA.
No hay límite en el número de bits.
Intercambio de claves/generación de claves Diffie-Hellman.
No hay límite en el número de bits.
Certificados X.509v3
Codificación/descodificación de X509 hacia/desde ASN1 binario y una
codificación binaria ASCII basada en PEM que admite cifrado con una
clave privada. Programa para generar solicitudes de certificado RSA
y DSA y para generar certificados RSA y DSA.
Sistemas
Las rutinas normales de sobre digital y codificación base64. Acceso de
alto nivel a cifrados y resúmenes por nombre. Se pueden cargar nuevos
cifrados en tiempo de ejecución. El sistema de E/S BIO, que es una
abstracción de E/S no bloqueante simple. Los métodos actualmente
soportados son: descriptores de archivo, sockets, aceptación de
sockets, conexión de sockets, buffer de memoria, buffering, cliente/
servidor SSL, puntero de archivo, cifrado, resumen, pruebas no
bloqueantes y nulo.
Estructuras de datos
Un sistema de hashing que crece dinámicamente.
Una pila simple.
Un cargador de configuración que utiliza un formato similar a los
archivos .ini de MS.
openssl: Una herramienta de línea de comandos que se puede utilizar para: Creación de parámetros de clave RSA, DH y DSA Creación de certificados X.509, CSR y CRL Cálculo de resúmenes de mensajes Cifrado y descifrado con cifrados Pruebas de cliente y servidor SSL/TLS Manejo de correo firmado o cifrado S/MIME
Diversas empresas poseen diversas patentes sobre diversos algoritmos en diversas ubicaciones alrededor del mundo. TÚ eres responsable de asegurar que tu uso de cualquier algoritmo sea legal, verificando si existen patentes en tu país. El archivo contiene algunas de las patentes que conocemos o de las que se rumorea que existen. Esta no es una lista definitiva.
RSA Security posee patentes de software sobre el algoritmo RC5. Si pretendes utilizar este cifrado, debes contactar con RSA Security para obtener las condiciones de licencia. Su página web es http://www.rsasecurity.com/.
RC4 es una marca registrada de RSA Security, por lo que el uso de esta etiqueta debería realizarse solo con el permiso de RSA Security.
El algoritmo IDEA está patentado por Ascom en Austria, Francia, Alemania, Italia, Japón, Países Bajos, España, Suecia, Suiza, Reino Unido y EE. UU. Se debe contactar con ellos si se va a utilizar ese algoritmo; su página web es http://www.ascom.ch/.
NTT y Mitsubishi tienen patentes y patentes pendientes sobre el algoritmo Camellia, pero permiten su uso sin costo y sin requerir un acuerdo de licencia explícito: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Para instalar este paquete en un sistema derivado de Unix, lea el archivo INSTALL. Para una plataforma Win32, lea el archivo INSTALL.W32. Para sistemas OpenVMS, lea INSTALL.VMS.
Lea la documentación en el directorio doc/. Es bastante rudimentaria, pero enumera las funciones; probablemente tendrá que consultar el código para descubrir cómo usarlas. Mire los programas de ejemplo.
Para algunas plataformas, existen algunos problemas conocidos que pueden afectar al usuario o al autor de la aplicación. Intentamos recopilarlos en doc/PROBLEMS, con ideas actuales sobre cómo deberían resolverse en una futura versión de OpenSSL.
Consulte el sitio web de OpenSSL www.openssl.org para obtener detalles sobre cómo obtener soporte técnico comercial.
Si tiene algún problema con OpenSSL, siga primero los siguientes pasos:
- Descargue la instantánea actual desde ftp://ftp.openssl.org/snapshot/
para ver si el problema ya se ha solucionado
- Elimine las versiones ASM de las bibliotecas
- Elimine las banderas de optimización del compilador
Si desea informar de un error, incluya la siguiente información en el informe de error:
- En sistemas Unix:
Informe de autocomprobación generado por 'make report'
- En otros sistemas:
Versión de OpenSSL: salida de 'openssl version -a'
Nombre del SO, versión, plataforma de hardware
Detalles del compilador (nombre, versión)
- Detalles de la aplicación (nombre, versión)
- Descripción del problema (pasos que reproducen el problema, si se
conocen)
- Traza de la pila (si la aplicación vuelca el núcleo)
Informe el error al proyecto OpenSSL a través del Sistema de Seguimiento de Solicitudes (http://www.openssl.org/support/rt.html) por correo a:
[email protected]
Tenga en cuenta que el sistema de seguimiento de solicitudes NO debe utilizarse para asistencia general o consultas de soporte. El hecho de que algo no funcione como espera no significa necesariamente que sea un error en OpenSSL.
Tenga en cuenta que el correo a [email protected] se registra en la base de datos del sistema de seguimiento de solicitudes de acceso público y se reenvía a una lista de correo pública. El correo confidencial puede enviarse a [email protected] (clave PGP disponible en los servidores de claves).