You are on page 1of 10

Universidad Catlica Andrs Bello

Laboratorio de Seguridad Computacional


Prof. Wilmer Pereira
Alumno: Adrin Rama

Laboratorio 3: Certificados digitales

1. Al igual de gpg, openssl se utiliza para generar claves pblicas y privadas y manejar los certificados digitales

1.1 Qu es openssl?
Es un proyecto de software libre, el cual consiste en un conjunto de herramientas de administracin y
bibliotecas con la criptografa, que suministra funciones criptogrfico a otros paquetes (como OpenSSH) y
tambin a navegadores web, para realizar un acceso seguro a distintos sitios(HTTPS).
Este paquete de herramientas ayuda al sistema a implementar el protocolo de capa de puertos seguros
SSL (Secure Sockets Layer), o el protocolo TLS (Transport Layer Security), el cual usa certificados
X.509(estndar UIT-T para infraestructuras de claves pblicas (en ingls, Public Key Infrastructure o PKI).
X.509 especifica, entre otras cosas, formatos estndar para certificados de claves pblicas y un algoritmo de
validacin de la ruta de certificacin. Su sintaxis, se define empleando el lenguaje ASN.1 (Abstract Syntax
Notation One), y los formatos de codificacin ms comunes son DER (Distinguish Encoding Rules) o PEM
(Privacy Enhanced Mail)), aunque tambin OpenSSL tambin permite crer certificados digitales que pueden
aplicarse a un servidor, por ejemplo, Apache.

1.2. Hay muchas extensiones al momento de definir los certificados (.pem, .der, .pfx, .p12, ...) Comprelas
entre ellas exhaustivamente (algunos formatos contienen la clave pblica y privada, otros estn en ASCII y
otros en binario, algunos son especficos a un lenguaje ). Mencione alguna herramienta para transformar
certificados de un formato a otro. Haga la transformacin y mustrela en una captura de pantalla.

.rse

Esta es una Solicitud de Firma de Certificado. Algunas aplicaciones pueden generar estos para la
presentacin de certificado de las autoridades. El formato actual es PKCS10 que se define en RFC 2986.
Incluye algunos o todos de los detalles clave del certificado solicitado, tales como sujeto, organizacin,
estado, etc, as como la clave pblica del certificado de conseguir un contrato. Estos firmado por la CA y
devuelve un certificado. Devuelve el certificado es el pblico certificado (no la clave), que puede ser en un
par de formatos.
.pem

Definido en el RFC del 1421 a travs de 1424, este es un formato contenedor que puede incluir slo el
pblico certificado (como con Apache se instala, y archivos de certificados de CA /etc/ssl/certs), o puede
incluir toda una cadena de certificados, incluyendo la clave pblica, la clave privada, y de los certificados
de root. El nombre de Privacidad de Correo electrnico Mejorada, un error de mtodo para correo electrnico
seguro, pero el formato de envase que se utiliza vidas, y es un base64 traduccin de la x509 ASN.1 teclas.
.pkcs12 .pfx .p12

Definido Originalmente por la RSA en la Criptografa de Clave Pblica Normas, el "12" variante fue
reforzada por Microsoft. Esta es una contrasea de formato contenedor que contiene tanto pblicas como
privadas certificado de pares. A diferencia de los archivos pem, este contenedor est totalmente encriptada.
Openssl puede convertir esto en una .pem de archivos pblicos y privados claves: openssl pkcs12 -in file-
to-convert.p12 -out converted-file.pem -nodes
.der

Una manera de codificar la ASN.sintaxis de 1 en binario, una .pem archivo es slo una codificado en Base64
.der archivo. OpenSSL puede convertir estos .pem (openssl x509 -inform der -in to-convert.der -out
converted.pem).
entre sus extesiones estn(cert .cer .crt .der)
p7b se Define en RFC 2315, este es un formato utilizado por windows para obtener el certificado de
intercambio. Java entiende de estos de forma nativa. A diferencia de los .pem estilo de certificados, este
formato tiene una definida la forma de incluir la certificacin de la ruta de los certificados.
.crl Una lista de revocacin de certificados. Certificado de las Autoridades de producir esto como una manera
de autorizar los certificados antes de la expiracin. A veces se puede descargar de CA sitios web.
En resumen, hay cuatro maneras diferentes de presentar los certificados y sus componentes:

PEM Rige por Rfc, es utilizado preferentemente por el software de cdigo abierto. Puede tener una variedad
de extensiones (.pem, .clave .cer, .cert, ms).

PKCS7 Un estndar abierto de Java y compatible con Windows. No contiene material de clave privada.

PKCS12 UN privado estndar que proporciona una mayor seguridad frente al texto sin formato PEM. Este
puede contener material de clave privada. Es utilizado preferentemente por los sistemas Windows, y puede
ser libremente convertidos a formato PEM a travs del uso de openssl.

DER El padre formato de PEM. Es til pensar en ella como una versin binaria de la codificacin base64
PEM archivo. No se usa rutinariamente por tanto fuera de Windows.

1.3. Qu es un CSR?
Antes de poder pedir un certificado SSL, se debe generar primero un CSR(Certificate Signing Request)
para el servidor, este es un cuerpo de texto cifrado, el cual contendr informacin codificada y especfica para
el que est generando el certificado, entre estos estn:

Nombre comn: El nombre de dominio completamente calificado, o URL, que est protegiendo.
Si se est solicitando un certificado Wildcard, se agrega un asterisco (*) a la izquierda del nombre comn en
el que quiera poner el comodn, por ejemplo, *.example.com.

Organizacin: El nombre legalmente registrado para el negocio. En caso de inscribirse como un individuo, solo
se ingresa el nombre del certificado del solicitante.

Unidad de organizacin: Si procede, introduce el nombre DBA (Doing Business As).

Ciudad o localidad: Nombre de la ciudad en la que est registrada o se encuentra la organizacin. No se abrevia.

Estado o provincia: Nombre del estado o provincia en donde se encuentra la organizacin. No se abrevia.

Pas: El formato de dos letras de la Organizacin Internacional para la Estandarizacin (ISO) para el cdigo de
pas para el lugar en donde tu organizacin est legalmente registrada.
Para convertir un certificado en formato DER (.crt .cer .der) a PEM, es necesario tener un certificado en la
maquina ya presente y en cualquiera de los formatos DER y luego con el siguiente comando:

$ cat localhost.key ca.crt > ca.pem


$ openssl x509 -in ca.crt -out ca.pem
$ openssl x509 -inform der -in ca.cer -out ca.pem

Conversin de un archivo de formato DER a PEM.

2. Qu hace el comando? Dnde estn las claves pblica y privada? Hacer una captura de pantalla que lo
justifique

openssl genrsa -des3 -out ca.key 4096

Este commando genera la clave privada y la clave pblica asociada, previa para la creacin de un certificado
autofirmado ya que la llave privada ser til para la generacin del certificado. Una vez creado, nuestro
certificado SSL depender de esta llave para la implementacin del mismo en cualquier servicio que requiera
una conexin segura.
-des3 se utiliza para proteger la clave privada con una contrasea. En este caso al ser utilizado por un
servidor no se debe incluir este parmetro.
En el ejemplo de la tabla se genera una llave de 4096 bits
Es importante destacar que esta llave se guarda en el directorio en cual se est ubicado el terminal.
Uso de comando openssl genrsa -des3 -out ca.key 4096 para generar una llave publica y privada, las cuales
se almacenan en el directorio desde el cual se esta realizando la operacion en el caso de la imagen
/home/linux1.
3. Cul es el objetivo del siguiente comando? Hacer una captura de pantalla que lo justifique

openssl req -new -x509 -days 7300 -key ca.key -out ca.crt
Con este comando se genera un certificado autofirmado, que tiene una vigencia de 20 Aos, es
importante destacar que un certificado contiene la firma de una tercera parte que valida una clave pblica como
autntica. Para que esa tercera parte pueda firmar una clave, se debe generar una peticin de firma de certificado
y envarsla a la autoridad de certificado que la devolver firmada. El comando para la peticin de certificado
es: openssl req new key ca.key out ca.csr, en el caso de la tabla ya que con el comando anterior se trata la
clave con una autoridad de certificado y por esto cobran, se puede realizar el autofirmado, que es suficiente
para un entorno de pruebas.

Autofirmado de ca.key, es importante destacar que este certificado tiene formato .crt aunque se puede
cambiar, y a la hora de leer este certificado se observar de que tipo es el arcivo.
4. Qu nota de particular en el certificado generado en el paso anterior? Quin lo firma? Indique
explcitamente como supo lo que afirma indicndolo en una captura de pantalla.

openssl x509 -noout -text -in ca.crt | less

Se puede observar el issuer quien es el emisor del certificado, es decir, el que lo firma con su clave privada
en este caso al ser autofirmado aparece los datos del autofirmante, tambin se puede observar el subject el
cual es el propietario del certificado, es decir, el que lo crea y solicita a la CA que lo firme, es importante
destacar que al ser un certificado autofirmado este tiene un mismo valor.

Vista de Certificado de Google, como se puede observar el issuer es Google Internet Authority G2 y el
subject Google Inc.
5. Cmo generar un CSR? Averige por Internet

Un CSR es la base para un certificado SSL, en l se definen datos como el dominio, organizacin,
ubicacin, informacin de contacto, entre otros.
Es importante destacar que estos pasos tambin son necesarios cuando se va vas a adquirir un certificado
SSL de un proveedor autorizado, durante la gestin del mismo, el proveedor va a solicitar este archivo para
crear el certificado. Por lo tanto, se debe tener mucho cuidado en que la informacin que se ingresa sea la
correcta.
Aunque si se comete un error no hay problema, este se puede generar varias veces.
Para generar el CSR se debe ejecutar el siguiente comando, como se puede observar uno de los
parmetros es la llave privada que se acaba de crear en la parte 2.

openssl req -new -key ca.key -out ca.csr

6. Firme el CSR de un compaero con el certificado generado en el punto 3. Ahora Qu nota con respecto a
las firmas? Corrobore su afirmacin mediante una captura de pantalla.

Es importante destacar que antes de firmar un certificado externo, se debe crear una autoridad certificadora.

Creacin de una autoridad certificadora con la ejecucin de comando /usr/lib/ssl/misc/CA.sh newca.


Firma del certificado emitido por linux2.

Certificados emitidos por linux1 al firmar el crt de linux2.


7. Con respecto a un servidor apache:

7.1. Qu hace el comando aptitude purge apache2?


Elimina del sistema todo el directorio apache2 y sus configuraciones.

7.2. Qu hace el comando aptitude install apache2?


Instala el directorio apache2 en el sistema.

7.3. Qu hace el comando a2enmod ssl?


Verifica el correcto funcionamiento del ssl.
Ejemplo:
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

7.4. Ir al directorio de configuracin de apache, all editar el archivo default-ssl o


httpd.conf para buscar y reemplazar lo que sigue. Qu logra con esos dos comandos?

SSLCertificateFile DIRECTORIO_HOME/TU_CERTIFICADO.crt

SSLCertificateKeyFile DIRECTORIO_HOME/TU_CERTIFICADO.key

Con la edicin de estas lneas ubicadas en el archivo /etc/apache2/sites-avalaible/default-ssl/ se hace la


configuracin de los host virtuales para mostrar el nuevo certificado.

7.5. Qu hace el comando a2ensite default-ssl? Cul es la diferencia con 7.3?


Este permite que el host virtual sea activado, es importante destacar que este viene por el puerto 443, a
diferencia del a2enmod ssl que lo que hace es solamente habilitar el ssl.

7.6. Qu hace el comando /etc/init.d/apache2 restart o sudo service apache2


restart?
Reinicia el apache, es importante destacar que luego de realizar los cambios propuestos en la parte 7.4
este pide una clave de autenticacin.

Uso del sudo service apache2 restart, como se observa este ahora pide la clave de la llave de ca.key
para su funcionamiento.
7.7. Usando firefox o chrome indique les diferencias entre ambos URL's. Qu indica el browser? Por qu
hay warning? Mustrelo con una captura de pantalla.

You might also like