
OpenSSL 1.0.1g 7 Apr 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 kit de herramientas robusto, de calidad 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 de criptografía de propósito general de plena potencia. El proyecto está gestionado por una comunidad mundial de voluntarios que utilizan Internet para comunicarse, planificar y desarrollar el kit 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 kit de herramientas OpenSSL se distribuye bajo una doble licencia (la licencia OpenSSL más la licencia SSLeay), lo que básicamente significa que eres libre de obtenerlo y utilizarlo para fines comerciales y no comerciales siempre que cumplas las condiciones de ambas licencias.
El kit 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: Elementos generales de cifrado y X.509 v1/v3 necesarios para SSL/TLS, pero que no forman parte lógica del mismo. 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 que posteriormente 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 (digests)
Algoritmos de resumen de mensajes MD5 y MD2, con implementaciones
rápidas, algoritmos de resumen de mensajes SHA (SHA-0) y SHA-1,
resumen de mensajes MDC2. Un hash basado en DES muy 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 X509 hacia/desde ASN1 binario y una
codificación ASCII-binaria 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 envoltura digital (digital envelope) y la
codificación base64. Acceso de nivel superior 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 sencilla de E/S no
bloqueante. 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 de crecimiento dinámico.
Una pila (stack) 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 Gestión de correo firmado o cifrado con S/MIME
Diversas empresas poseen diversas patentes sobre diversos algoritmos en diversos lugares del mundo. TÚ eres responsable de garantizar que tu uso de cualquier algoritmo sea legal, comprobando si existen patentes en tu país. Este archivo contiene algunas de las patentes que conocemos o de las que se rumorea que existen. No es una lista definitiva.
RSA Security posee patentes de software sobre el algoritmo RC5. Si tienes intención de utilizar este cifrado, debes ponerte en contacto con RSA Security para conocer las condiciones de licencia. Su página web es http://www.rsasecurity.com/.
RC4 es una marca comercial de RSA Security, por lo que el uso de esta etiqueta quizá debería realizarse únicamente 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 cargo y sin necesidad de un acuerdo de licencia explícito: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Para instalar este paquete en un derivado de Unix, lee el archivo INSTALL. Para una plataforma Win32, lee el archivo INSTALL.W32. Para sistemas OpenVMS, lee INSTALL.VMS.
Lee la documentación del directorio doc/. Es bastante rudimentaria, pero enumera las funciones; probablemente tendrás que revisar el código para deducir cómo utilizarlas. Mira los programas de ejemplo.
Para algunas plataformas, existen ciertos problemas conocidos que pueden afectar al usuario o al autor de aplicaciones. Intentamos recopilarlos en doc/PROBLEMS, con las ideas actuales sobre cómo deberían resolverse en una versión futura de OpenSSL.
Consulta el sitio web de OpenSSL, www.openssl.org, para obtener detalles sobre cómo conseguir soporte técnico comercial.
Si tienes algún problema con OpenSSL, sigue primero los siguientes pasos:
- Descarga la instantánea (snapshot) actual de
ftp://ftp.openssl.org/snapshot/ para ver si el problema ya se ha
solucionado
- Elimina las versiones ASM de las bibliotecas
- Elimina las banderas de optimización del compilador
Si deseas informar de un error, incluye la siguiente información en cualquier informe de error:
- En sistemas Unix:
Informe de autocomprobación generado con '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 pila (stack traceback) (si la aplicación genera un volcado de núcleo)
Informa del error al proyecto OpenSSL a través del Request Tracker (http://www.openssl.org/support/rt.html) por correo a:
Ten en cuenta que el request tracker NO debe utilizarse para asistencia general o consultas de soporte. El hecho de que algo no funcione como esperas no significa necesariamente que sea un error de OpenSSL.
Ten en cuenta que el correo enviado a [email protected] queda registrado en la base de datos de acceso público del request tracker y se reenvía a una lista de correo pública. El correo confidencial puede enviarse a [email protected] (la clave PGP está disponible en los servidores de claves).
El desarrollo se coordina en la lista de correo openssl-dev (consulta http://www.openssl.org para obtener información sobre cómo suscribirse). Si deseas enviar un parche, remítelo a [email protected] con la cadena "[PATCH]" en el asunto. Asegúrate de incluir una explicación textual de lo que hace tu parche.
Si no estás seguro de si una funcionalidad será útil para la comunidad general de OpenSSL, discútela primero en la lista de correo openssl-dev. Puede que alguien ya esté trabajando en lo mismo o que exista una buena razón por la que esa funcionalidad no esté implementada.
Los parches deben estar lo más actualizados posible, idealmente en relación con el Git actual o con la última instantánea (snapshot). Deben seguir el estilo de codificación de OpenSSL y compilar sin advertencias. Algunos de los objetivos de desarrollo del equipo principal (debug-steve64, debug-geoff, etc.) pueden utilizarse con fines de prueba. OpenSSL compila en muchas plataformas diferentes: intenta asegurarte de que solo utilizas funciones portables.
Nota: Por razones legales, las contribuciones procedentes de EE. UU. solo pueden aceptarse si se envía una notificación TSU y una copia del parche a [email protected] (antes BXA), con copia al Coordinador de Solicitudes de Cifrado ENC; tómate un tiempo para consultar http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] y http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR, Sección 740.13(e)) para conocer los detalles. Si "tu código fuente de cifrado es demasiado grande para servir como archivo adjunto de correo electrónico", estarán encantados de recibirlo por fax; esperemos que tengas una tarifa de larga distancia económica.
Nuestro formato preferido para los cambios es la salida de "diff -u". Podrías generarla así: