Guía - Lab-FISC7
Guía - Lab-FISC7
Guía - Lab-FISC7
B. TEMAS:
Protocolo SSL.
C. OBJETIVO(S):
• Familiarizarse con la herramienta OpenSSL, la cual es software libre que permite la administración de
Certificados Digitales.
• Comprender el papel de una Autoridad Certificadora en el esquema de seguridad de los Certificados
Digitales.
• Conocer los procesos involucrados en dar de alta a un Certificado Digital para su utilización.
• Describir la importancia de las Listas de Revocación de Certificados (CRL) en el esquema de los
Certificados Digitales.
• Afianzar los conceptos de cifrado, descifrado y firma digital a través de algoritmo RSA y AES
D. RECURSOS:
• Máquina virtual: VirtualBox o WMware.
• Herramienta OpenSSL.
• Sistema operativo Linux.
E. METODOLOGÍA:
El alumno realizará cada sección de la guía, y deberá demostrarlo para ser evaluado presencialmente. Sin
embargo, al final encontrará unas preguntas las cuales deberá colocarla en la plataforma Moodle.
ENTORNO DE LA PRÁCTICA:
• Se utilizarán dos shells. En uno de ellos se utilizar al usuario root y en otro al usuario ubuntu.
• Durante la ejecución de la práctica se crearán las llaves correspondientes a cada uno de los
usuarios mencionados.
• Para la creación de la Autoridad de Certificación será necesario tener instalado servicio
Apache.
• Es MUY importante que ud. sepa en cada caso con que usuario esté trabajando. Le
recomendamos que al abrir los dos shells los organice de la siguiente forma.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
OpenSSL, es una herramienta de software libre desarrollado por los miembros de la comunidad OpenSource, que
permite la creación y administración de certificados digitales, además de contar con librerías relacionadas con la
criptografía, útiles para proporcionar funciones criptográficas, como OpenSSH y navegadores Web seguros (https).
Se estará desarrollando lo siguiente:
• Instalación de OpenSSL
• Creación de la Autoridad Certificadora (AC) y su certificado
• Creación del certificado para el servidor Web. Realizar la petición de firma para la autoridad certificadora
(AC), y se firma el servidor Web con la del AC
• Configuración de Apache para utilizar los certificados SSL
• Generación de certificados digitales
• Utilización de las Listas de Revocación de Certificados (CRL)
• Cifrado y descifrado de archivos
• Uso de firma digital
1. Iniciar sesión dentro del sistema operativo, ingresando la cuenta de root con su correspondiente contraseña.
2. Abrir una terminal de shell para instalar la herramienta.
!!!!!En ambientes de producción, esta contraseña debe tener una alta complejidad ya que de ser vulnerada,
se comprometerían todos los certificados emitidos por esta AC!!!!!
Con esto vamos a dar un nombre al servidor Secury.csr y le asignamos la clave anteriormente creada, Llaves.key
Con este comando le asignamos la duración a nuestro certificado, el servidor y la contraseña ya antes creadas.
Hasta este punto, se ha creado la AC, que validará los certificados que se generen durante la práctica.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Ahora vamos a crear la carpeta ssl con el siguiente comando:
#mkdir /etc/apache2/ssl
Después, vamos a mover, el servidor y la clave del servidor a la carpeta ssl con este comando:
#mv Llaves.key Secury.crt /etc/apache2/ssl
Para verificar que el puerto 443 no este comentado con un “#”, abriremos el archivo “ports.conf” con un editor de
texto:
#nano /etc/apache2/ports.conf
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Para concluir con la parte de comandos, para configurar SSL, usaremos el siguiente:
#nano /etc/apache2/sites-available/default-ssl.conf
Lo que haremos es abrir el archivo default-ssl.conf para buscar las líneas “SSLCertificateFile y
SSLCertificateKeyFile” y las modificaremos por las siguientes:
SSLCertificateFile/etc/apache2/ssl/Secury.crt
SSLCertificateKeyFile/etc/apache2/ssl/Llaves.key
Y comentar las líneas similares con un “#”
Por último reiniciaremos los servicios “default-ssl y apache2” con los comandos:
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
#a2ensite default-ssl
#service apache2 restart
Dar un click en Advanced el cual se expandirá indicando que es inválido el certificado de seguridad de localhost y
que no es de confianza, que solo es válido para la nombre que aparece. Dar click en Add Exception…
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Dar un click en el botón Confirm Security Exception, su explorador debe quedar de la siguiente manera:
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Observe en la parte superior aparece un candado indicando la validez y confianza del certificado en el servidor.
Para el desarrollo de la presente práctica, se empleará la configuración por defecto.
Una Autoridad Certificadora, lo que hace, es firmar certificados SSL, permitiendo asegurar, que el certificado y el
dominio ó site son nuestros.
Nosotros vamos a ser nuestra propia Autoridad Certificadora “privada”. Nuestra CA no será válida para utilizar en
internet. Por lo tanto, no vamos a enviar nuestro certificado de seguridad a una entidad certificadora, como por
ejemplo Verisign.
Ahora, creamos el directorio CA que va contener los certificados de nuestra entidad certificadora “privada”:
cd /etc/ssl
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
mkdir CA
mkdir newcerts
Lo siguiente, es crear el archivo “serial“, que establece la numeración de los certificados, y el fichero index.txt,
que guarda la base de datos de los certificados:
cd CA
echo '01' > serial
touch index.txt
A partir de este momento, hacemos un backup el fichero openssl.cnf, y editamos un nuevo fichero
openssl.cnf:
Editamos el archivo openssl.cnf con la siguiente información: (solo cambiar en la sección CA)
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /etc/ssl
serial = $dir/CA/serial
database = $dir/CA/index.txt
new_certs_dir = $dir/newcerts
certificate = $dir/CA/ca.crt #nombre del archivo del certificado raiz
private_key = $dir/CA/ca.key #nomre dela clave privada de certificado r$
default_days = 3650
default_md = md5
preserve = no
email_in_dn = no
nameopt = default_ca
certopt = default_ca
policy = policy_match
#cd /etc/ssl
#openssl req -config openssl.cnf -new -nodes -keyout /etc/apache2/CA/apachessl.key -out apachessl.csr -days
3650
• La opción "nodes" es necesaria para que la clave privada no sea protegida con una passphrase. Si el
certificado no se va a utilizar para la autenticación de servidores, no se debería incluir en la opción anterior.
• El "Common Name" (CN) es la información que identifica de forma única al servicio, por lo que debemos
asegurarnos de escribirlo correctamente.
• Se recomienda rellenar todos los campos que nos pidan, ya que si los dejamos vacíos, se nos rellenarán con
los datos por defecto, y en ocasiones pueden inducirnos a pensar que hay algún error en ellos.
• La opción "-policy policy_anything" indica que no se requiere que los campos "Country", "State" o "City"
coincidan con los de la CA.
Ahora nos vamos a nuestro buscador Firefox. Menú-Preferencias. Seleccionar Ver certificados.
Buscamos la carpeta donde está el certificado creado del servidor Apache, para nuestro caso lo tenemos en /etc/ssl
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Si deseamos que un certificado deje de ser válido debemos revocarlo. Esto se puede hacer con el comando:
# openssl ca -config openssl.cnf -revoke /etc/ssl/CA/Secury.crt
Entonces debemos generar un nueva CRL (Certificate Revokation List):
# openssl ca -config openssl.cnf -gencrl -out crl/ca.crl
El archivo de la CRL es crl/ca.crl.
El certificado de nuestra CA y nuestra lista de revocación (CRL) deben ser distribuidos a aquellos que confíen en
nuestra CA para que puedan importarlos en el software cliente (web browser, clientes ftp, clientes de e-mail, etc.
Además la CRL debe ser pública.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Firmar un fichero
$openssl rsautl -encrypt -inkey pubkey.pem -pubin -in fichero -out fichero.ssl
NOTA: No se pueden cifrar más datos que el tamaño de la clave (menos el tamaño requerido por el padding).
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
Cifrar y descifrar con RSA + AES
Cifrar:
$openssl enc -aes-256-cbc -salt -in fichero -out fichero.ssl -pass file:./aesKey.txt
$openssl rsautl -encrypt -inkey pubkey.pem -pubin -in aesKey.txt -out aesKey.rsa
Descifrar:
$openssl rsautl -decrypt -inkey privkey.pem -in aesKey.rsa -out aesKey.txt
ULTIMA PARTE
1. Con la información y los conocimientos que ha adquirido trate de llenar la tabla siguiente.
Marque aquellas casillas que puedan obtenerse con las funciones que se mencionan en cada caso.
Tome como ejemplo la primera fila.
Mensaje Plano
Mensaje Cifrado
+ HASH Plano
Mensaje Cifrado
+ Firma
G. RESULTADOS:
Investigue:
1. ¿En qué consiste el formato pem utilizados en la clave y el certificado de la Autoridad Certificadora?
2. ¿Cuál es el funcionamiento de las líneas de comando introducidas al shell en el paso 7 de la sección
3?
3. ¿Es posible utilizar un certificado digital generado por una AC implementada en Linux para proveer
soporte SSL (utilizando certificados digitales) a un Servidor Web basado en Windows, como por
ejemplo IIS? Explique
4. Presentar el procedimiento a seguir para instalar un certificado digital en un servidor Web Microsoft IIS
6.0.
5. Investigar 3 razones para indicar que un certificado ya no es válido.
6. Investigue 5 sitios Web de Internet en donde se pueden encontrar Listas de Revocación de
Certificados (CRL).
H. RÚBRICAS:
I. CONSIDERACIONES FINALES:
Indicar comentarios sobre experiencia obtenida del laboratorio. (Opcional)
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 7
J. REFERENCIAS:
• OpenSSL https://www.openssl.org/https://www.openssl.org/
• Autoridad de Certificación. http://www.juanluramirez.com/crear-autoridad-certificadora-ssl/
• SSL. Certificado Firmado por nuestra propia Autoridad Certificadora http://www.planetainopia.com/2013-10-
15/ssl-certificado-firmado-por-nuestra-propia-entidad-certificadora.html
• Crear una autoridad certificadora con OpenSSL http://www.ayudamelinux.es/crear-una-entidad-
certificadora-ca-con-openssl/