You are on page 1of 7

SEGURIDAD INFORMATICA (IS-444) 1 UNSCH

LABORATORIO Nº 6

“CERTIFICADOS DIGITALES II – CIFRADO SIMÉTRICO – ASIMÉTRICO – ENVIO


DE CORREO SEGURO”

1. OBJETIVO

1.1. Instalar Un certificado raíz.


1.2. Verificar los certificados digitales utilizados.
1.3. Crear e instalar un certificado digital.
1.4. Comprender como poder enviar un correo de manera segura.
1.5. Aprender los comandos básicos del OpenSSL para cifrados simétricos y
asimétricos.

2. INFORME PREVIO

3. DESARROLLO TEÓRICO

3.1. CACERT:

CAcert es una Entidad Certificadora conducida por la comunidad, que emite


certificados al público en general de forma gratuita.
La razón de ser de CAcertes promover la conciencia y la educación en la seguridad
computacional a través del uso de la encriptación, especificamente con la familia
de standards X.509. Hemos compilado un documento base que contiene ayudas y
trucos para utilizar encriptación con programas de uso común, e información
general acerca de la Infraestructura de Claves Públicas (Public Key Infrastructures,
PKI).
Para los entusiastas que quieran probar el agua, tenemos una manera fácil de
obtener certificados que puede usar con su programa de correo. Puede usarlo no
solo para encriptar, pero también para probar a sus amigos y familia que el
mensaje proviene de Usted realmente .
Para los administradores que están buscando como proteger los servicios que
entregan, proveemos de certificados para sus equipos individuales y múltiples
(wildcard), que pueden ser entregados casi inmediatamente. No solo puede
proteger sus páginas web, pero también las conecciones POP3, SMTP y IMAP, por
nombrar solo algunas. A diferencia de otros certificadores, nosotros no limitamos
la clase de los certificados, o el uso de certificados múltiples (wildcard). Cada uno
tiene el derecho a la seguridad y a proteger su privacidad, no solo aquellos que
manejan los sitios de comercio electrónico.

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 2 UNSCH

Si usted es extremadamente interesado en encriptación, puede unirse al programa


de Certificación y Circulo de Confianza de CAcert. Esto le permite verificar su
identidad y obtener otros beneficios, como certificados válidos por mayores
períodos, y la posibilidad de incluir su nombre en los certificados de correo.

3.2. OPENSSL

OpenSSL es un proyecto de software desarrollado por los miembros de la


comunidad Open Source para libre descarga y está basado en SSLeay, desarrollado
por Eric Young y Tim Hudson.
Consiste en un robusto paquete de herramientas de administración y librerías
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). Este paquete de software es importante para cualquiera que
esté planeando usar cierto nivel de seguridad en su máquina con un sistema
operativo libre basado en GNU/Linux. OpenSSL también permite crear certificados
digitales que pueden aplicarse a un servidor, por ejemplo Apache.

4. DESARROLLO DE LA PRÁCTICA

4.1. Instalación del certificado raíz

 Acceder a la página http://www.cacert.org


 Intentar acceder en modo https y aparecerá un error porque el certificado no es válido
 Para poder acceder sin problemas debes instalar el certificado raíz (Root certifícate en
la página principal)
o Utilizar el format PEM
o Establecer la confianza en la entidad

4.2. Verificación del certificado raíz

Realizar las siguientes operaciones para comprobar el funcionamiento del certificado raíz

 Acceder a la página https://www.cacert.org


o Comprobar en el candadito que el acceso es seguro
 Localizar el certificado dentro de Firefox
o Entrar en Tools/options/Advanced/Encryption/View Certificates
o El certificado debe estar en la sección de Authorities en la organización Root CA
o Comprobar para qué usos es válido
o Editar las propiedades y anular alguno de los posibles usos del certificado
o Volver a comprobar para qué usos es válido
o Anular la confianza en esta CA para identificar sitios web
o Intentar recargar la página de cacert en modo https
o Corregir las propiedades del certificado raíz

4.3. Crear e instalar un certificado personal

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 3 UNSCH

Antes de firmar un certificado personal hay que seguir un proceso en que la entidad emisora
pueda verificar de alguna manera toda la información contenida en el certificado. En el caso
los certificados de la Casa de la Moneda (FNMT) se verifica el nombre y el NIF (campo CN
del subject), pero no se verifica la dirección de correo electrónico (campo E del subject). Sin
embargo, en el caso de CAcert no se verifica el nombre y sí se verifica la dirección de correo.

Pasos a seguir para obtener el certificado:

 Crear una cuenta en CAcert mediante el botón join (sólo se pueden generar certificados
digitales después de crear la cuenta)
 Entrar mediante "password login" (notar que el momento de pedir login/password se
activa el modo seguro https)
 Seleccionar Client Certificates/New
 Generar el certificado
 ¿en qué momento se ha validado la dirección de correo?

4.4. Comprobar el certificado

Realizar las siguientes operaciones para verificar el funcionamiento del certificado

 Salir de CAcert y volver a entrar mediante "certifícate login" instead of "password


login"
 Localizar el certificado en Firefox
o Entrar en Tools/options/Advanced/Encryption/View Certificates
o El certificado debe estar en la sección de certificados personales en la
organización Root CA
o Comprobar si es válido y comprobar el campo subject y las fechas de validez.
o Editar las propiedades del certificado raíz (solapa de Authorities) y anular alguno
de los posibles usos del certificado
o Volver a comprobar el certificado personal para ver si ha dejado de ser válido
o Salir de CAcert e intentar entrar mediante "certifícate login" cuando el certificado
no es válido.
o Corregir las propiedades del certificado raíz

4.5. Copia de seguridad

Es muy importante guardar copia de seguridad de los certificados. Para ellos los
guardaremos en ficheros seguros (Formato p12) que se pueden enviar por correo
electrónico o copiar a un flash.

 Entrar en Tools/options/Advanced/Encryption/View Certificates


 Seleccionar el certificado persona y pulsar "backup"
o El sistema preguntará el nombre del fichero y la clave con que va cifrar dicho
fichero
o Es muy probable que pida la Master Password antes de exportar. La clave del
fichero puede ser distinta, pero la del fichero será la importante para poder
recuperar el fichero para la próxima práctica.

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 4 UNSCH

 El certificado raíz también se puede exportar, en este a caso a fichero PEM (extensión
.crt) que no va cifrado porque es información pública. No es imprescindible porque se
puede volver al instalar desde la web CAcert

 Enviar por correo electrónico los ficheros y recodar (o apuntar en otro sitio) el login y
la clave de acceso a CAcert, y las claves de los ficheros .p12

4.6. Instalar OpenSSL

 Acceder a la página www.openssl.org


 Buscar el ejecutable de Windows en la sección Related/binaries
 Para poder trabajar en d:\temp hay que definir el path:
o Path c:\openssl\bin

4.7. Preparación del certificado

4.8. Verificar validez del certificado personal

En prácticas anteriores hemos obtenido un certificado personal de la entidad cacert.org.


Realizar los siguientes pasos para comprobar su validez.

 Partimos de un fichero .p12 (Formato PKCS#12)


 Instalar en Firefox el certificado raíz Root CA desde la página cacert.org
 Importar el certificado personal en Certificate Manager
 Comprobar la validez dentro del Certificate Manager
 Comprobar la validez entranto en cacert.org con validación por certificado.

4.9. Conversión de formato de certificados

Las extensiones de archivos más utilizadas son las siguientes:

 .crt.cer ó .der para certificados X.509 puros en formato DER


 .pem para certificados X.509 puros en formato PEM
 .p7c .p7b .p7s .p7m … para certificados X.509 dentro de una estructura PKCS#7 en
formato DER o PEM
 .p12 ó .pfx para certificados X.509 dentro de una estructura PKCS#12 en formato
DER

El comando pkcs12 de openssl permite convertir un fichero .p12 en un fichero .pem que
contiene tanto la clave pública como la privada.
openssl pkcs12 -in certificado.p12 -out certificado.pem

A continuación podemos utilizar el comando rsa para extraer en otro fichero .pem sólo la
clave pública y sólo la clave privada.
openssl rsa -in certificado.pem -out clave_publica.pem -pubout
openssl rsa -in certificado.pem -out clave_privada.pem

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 5 UNSCH

4.10. Conceptos básicos de cifrado asimétrico

Crear un texto corto (una línea) en un archivo de texto

 Para cifrar con la clave pública:


openssl rsautl -in texto.txt -out texto.rsa -inkey clave_publica.pem -pubin –encrypt

 ¿qué significa cada opción?


 ¿Pide el password?
 ¿Cuál es la longitud máxima de fichero que se puede cifrar por este método?
 Para descifrar con la clave privada:
openssl rsautl -in texto.rsa -out texto_recuperado.txt -inkey clave_privada.pem -
decrypt
openssl rsautl -in texto.rsa -out texto_recuperado.txt -inkey certificado.pem -decrypt

 ¿qué significa cada opción?


 ¿Pide el password?

4.11. Envío de un mensaje cifrado a un compañero

Para cifrar ficheros grandes se suelen combinar algoritmos simétricos con asimétricos.
Realizar con openssl los siguientes pasos para poder enviar por correo electrónico un
archivo grande.

 Preparar un fichero grande, por ejemplo una foto.


 Cifrar el fichero utilizando un algoritmo simétrico
 Por correo electrónico, intercambiar con un compañero las claves públicas.
 Cifrar con RSA la clave utiliza para el cifrado simétrico.
o La clave utilizada para el cifrado simétrico debe guardarse en un fichero de
texto para poder cifrarla con RSA
o ¿qué clave habrá que utilizar para cifrar con RSA?
o Al realizar este cifrado RSA, openssl no debe pedir ninguna clave.
 Enviar al compañero el archivo cifrado (simétrico) junto con la clave cifrada (en
asimétrico).
 Deshacer los cifrados para obtener el archivo original. Para obtener la clave simétrica,
deberíamos utilizar nuestra clave privada.

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 6 UNSCH

4.12. Envío de un mensaje firmado

4.12.1.Obtener el resumen de un documento

Utilizar el comando dgst de openssl para generar el resumen del documentos

 openssl dgst –md5 fichero.doc


 openssl dgst –sha1 fichero.doc

4.12.2.Cifrar el resumen

Realizar los siguientes pasos:

 Guardar el código de resumen en un fichero de texto


 ¿Qué clave hay que utilizar para el cifrado RSA?
 Cifrar dicho fichero de manera asimétrica con la clave privada, mediante el comando
openssl rsautl -sign -in sha.txt -inkey prikey.pem -out sig.txt

4.12.3.Enviar por correo electrónico

Enviar a un compañero los siguientes elementos:

 Documento original, sin cifrar


 La firma electrónica (código de resumen cifrado con la clave privada: sig.txt)
 La clave pública

4.12.4.Verificar la firma

Realizar los siguientes pasos para verificar la integridad del documento recibido:

 Obtener el resumen del documento (mediante MD5 o SHA)


 Comparar con el resultado de extraer el resumen de sig.txt
openssl rsautl -verify -in sig.txt -inkey pubkey.pem –pubin –raw

4.13. Alternativa de firma electrónica

Para cifrar ficheros también se pueden utilizar los comandos smime, que es el estándar
utilizado en el correo electrónico.
openssl smime -sign -in bigfile.doc -out bigfile.msg -signer certificado.pem
Enter pass phrase for certificado.pem: xxxxxx

Para realizar la verificación completa se puede utilizar el comando:


openssl smime -verify -in bigfile.msg –Cafile rootca.pem -out extraido.doc
Verification successful

Si la aplicación no necesita verificar el certificado del autor de documento, entonces


se puede utilizar la opción –noverify en lugar de la opción –CAfile, como se muestra
en el siguiente ejemplo:
openssl smime -verify -noverify -in bigfile.msg -out extraido.doc
Verification successful

¿Qué estándar PKCS utiliza smime?

Mg. Ing. Manuel A. Lagos Barzola


SEGURIDAD INFORMATICA (IS-444) 7 UNSCH

NOTA: Puede ser necesario hacer la conversión a .pem utilizando la opción -clcerts (ver
P6aclaracion.pdf)

5. CUESTIONARIO

5.1. Rellene las preguntas del desarrollo de la práctica.

6. CONCLUSIONES

7. RECOMENDACIONES

8. BIBLIOGRAFÍA

http://www.cacert.org/help.php?id=2&lang=es_ES
http://www.softwarelibre.org.bo/esteban/files/86/228/openssl02.pdf
www.openssl.org/

Mg. Ing. Manuel A. Lagos Barzola

You might also like