Investiga acerca de la aplicaión OpenSSL. ¿Qué utilidades posibilita?
OpenSSL es un proyecto de software libre basado en SSLeay, desarrollado por Eric Young y Tim Hudson.
Consiste en un robusto paquete de herramientas de administración y bibliotecas relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes como OpenSSH y navegadores web (para acceso seguro a sitios HTTPS).
Estas herramientas ayudan al sistema a implementar el Secure Sockets Layer (SSL), así como otros protocolos relacionados con la seguridad, como el Transport Layer Security (TLS). OpenSSL también permite crear certificados digitales que pueden aplicarse a un servidor, por ejemplo Apache.
Para la instalación de OpenSSL no hay necesidad de complicarse mucho,
pues viene como paquete en la mayoría de las actuales distribuciones de
linux para instalar, ya que no es el propósito de este documento ser un
HOWTO de instalación, se nombrarán algunos pasos a seguir para poder
crear todo lo necesario para ocupar OpenSSL. El directorio por defecto para
la instalación es /var/ssl/ y el archivo de configuración se encuentra en
/usr/lib/ssl/openssl.cnf, las utilidades y otras librerías se encuentran en
/usr/lib/ssl.
Para crear un certificado raíz, se debe crear un certificado que sea
firmado por nosotros mismos para poder actuar como autoridad
certificadora de los certificados que sean creados en nuestro servidor, para esto se usa:
- openssl req -new -x509 -keyout private/cakey.pem \ -out cacert.pem -days 3650.
La idea es tener este certificado accesible para que el resto de las
personas puedan descargarlo e instalarlo en sus navegadores, por ende se
pone en el servidor web, y además el servidor debe tener una entrada mime
para archivos .crt, sin embargo siempre es probable que suplantar al servidor
web y por ende suplantar al CA, por eso se recomienda tener más de una
forma de obtener el certificado.
¿Qué tipo de algoritmos emplea? ¿Para qué sistemas operativos se encuentra disponible?
El formato por defecto para la aplicación OpenSSL es PEM. Para aplicaciones Java el formato DER suele encajar mejor con las necesidades de la aplicación en cuanto a la importación de claves privadas y certificados.
De modo genérico, los formatos PEM se suelen emplear en el mundo Unix/Linux, PKCS12 en el mundo Microsoft y el formato DER en el mundo Java.
Un archivo de certificado PEM si encriptar tiene este aspecto
-----BEGIN CERTIFICATE-----
MB4CGQDUoLoCULb9LsYm5+/WN992xxbiLQlEuIsCAQM=
-----END CERTIFICATE-----
PEM
Puede contener todas las claves privadas (RSA y DSA), las claves públicas (RSA y DSA) y los certificados (x509). Este es el formato por defecto de OpenSSL. Almacena los datos en formato DER codificado Base64, entre cabeceras ascii, de modo que es apropiado para transferencias en modo texto entre sistemas. Su extensión suele ser .pem.