Seguridad en redes. Guía 9 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Seguridad en redes Tema: Certificados Digitales Contenidos Instalación de OpenSSL Creación de la Autoridad Certificadora (AC) Petición y generación de certificados digitales Utilización de las Listas de Revocación de Certificados (CRL) Objetivos Específicos Familiarizarse con la herramienta OpenSSL, la cuál 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. Materiales y Equipo PC con Sistema Operativo Linux, CentOS instalado. Paquete de instalación de OpenSSL más reciente. Introducción Teórica El panorama de las telecomunicaciones de datos se ha visto afectado por un gran cambio en los últimos años. Las innovaciones y cambios tecnológicos suceden con gran velocidad a medida que se perfeccionan y se depuran las ideas y técnicas que han permitido la unión entre la informática, la electrónica y las comunicaciones. En las transacciones comunes, los retos de identificación, autenticación y privacidad son resueltas con marcas físicas, tales como las firmas manuscritas. En las transacciones electrónicas, el equivalente a un sello tiene que ser codificado en información. El verificar que el sello se encuentra presente y no ha sido alterado, es la forma en la que el que recibe la información puede confirmar la identidad del que lo envió y de esa manera se asegura que el mensaje no ha sido modificado en el camino. Para crear un equivalente electrónico a la seguridad física, se utiliza la criptografía. Un Certificado Digital es un documento electrónico, mediante el cual un tercero confiable (Autoridad Certificadora) garantiza la relación entre la identidad de un sujeto o entidad y su clave pública.
2 Seguridad en redes. Guía 9 Existen varios formatos de Certificado Digital, los más comúnmente empleados se rigen por el estándar UIT-T X.509 v3. El certificado contiene usualmente el nombre de la entidad certificada, un número serial, fecha de expiración, una copia de la clave pública del titular (utilizada para la verificación de su firma digital) y la firma digital de la autoridad emisora del certificado; de forma que el receptor pueda verificar que esta última ha establecido realmente la relación de confianza. Para los usuarios, los certificado digitales proporcionan un mecanismo para verificar la autenticidad de programas y documentos obtenidos a través de la red, el envío de correo cifrado o firmado digitalmente así como el acceso a recursos. Certificado Digital Un certificado permite obtener la clave pública de otra entidad ya sea una persona o institución. Se considera como una declaración firmada digitalmente por una entidad indicando que la clave pública de otra persona tiene un valor específico. Existen tres clases de certificados de acuerdo a su utilidad: Certificados de Servidor, aportan a un sitio Web la característica de seguridad para poder intercambiar información como: números de cuentas bancarias, contraseñas, estados financieros, etc. Certificados para WAP, permiten a los sitios Web la realización de transacciones seguras con sus usuarios móviles. Los certificados WAP permiten mantener conexiones seguras basadas en cifrado y autenticación con dispositivos de telefonía móvil. Certificados Personales, otorgan seguridad a los correos electrónicos basados en el estándar S/MIME, asegurando que el receptor designando sea el lector del mensaje. Certificados para firmar código, permiten a los administradores o desarrolladores de software, firmar su código para la distribución segura entre sus clientes. Certificados para IPSec-VPN, son los elementos necesarios para que la organización aproveche las cualidades y ventajas del uso de las VPN (Virtual Private Network). Es posible obtener un certificado digital a través de dos formas: Petición on-line, en este tipo regularmente se solicitan certificados personales, para lo cual se requiere de llenar un formulario, enviar alguna documentación y esperar el certificado firmado por la AC. Petición postal, resulta óptimo para la obtención de certificados de Servidor, siendo una combinación, ya que el CSR Solicitud de Firma de Certificado (Certificate Sign Request), se envía por correo y la documentación se hace llegar por correo. Un CSR es un archivo que incluye la información necesaria para solicitar un certificado digital.
Seguridad en redes. Guía 9 3 OpenSSL 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). Autoridad Certificadora (AC) Una AC, es una organización confiable que recibe solicitudes de certificados de otras entidades, las valida, genera certificados y mantiene la información de su estado. Entre las principales funciones de una Autoridad Certificadora, se pueden mencionar: Administración de certificados Autenticación del sujeto Generación de certificados Distribución de certificados Anulación de certificados Almacenes de datos CRL, Listas de Revocación de Certificados Los certificados tienen un período de validez, durante el cual la AC debe mantener la información de las entidades. Entre los datos más importantes que deben ser actualizados, se encuentra el estado de anulación del certificado, el cual indica que el período de validez ha terminado antes de tiempo y el sistema que lo emplee no debe confiar en él. Las CRL, son un mecanismo a través del cual la AC, da a conocer y distribuye la información acerca de los certificados anulados a las aplicaciones que los emplean. Estas estructuras de datos firmadas por la AC, contienen su fecha y hora de publicación, el nombre de la entidad certificadora y los números de serie de los certificados anulados que aún no han expirado. Un administrador de redes debe obtener la última CRL de la entidad que firma el certificado que emplean sus aplicaciones y verificar que los números de series de sus certificados no estén incluidos en dicha lista. Las listas de revocación deben ser publicadas para que sean consultadas por los usuarios, por ejemplo en un servidor Web.
4 Seguridad en redes. Guía 9 Procedimiento Bibliografía I Parte. Instalación de OpenSSL 1. Iniciar sesión dentro del sistema operativo del equipo asignado, ingresando la cuenta de root con su correspondiente contraseña. 2. Abrir una terminal de shell para instalar la herramienta. 3. Crear una carpeta llamada openssl, bajo el directorio /opt/. 4. Cambie de directorio de trabajo a /opt/openssl. Para ello haga uso del comando cd /opt/openssl. 5. Copiar el archivo de instalación del OpenSSL a la nueva carpeta creada. Para ello, utilice el comando: cp /opt/openssl-0.9.8l.tar.gz /opt/openssl. Suponiendo que el archivo openssl-0.9.8l.tar.gz se encuentra originalmente en la carpeta /opt/. 6. Ejecute los siguientes comandos: a. tar xvzf openssl-0.9.8d.tar.gz b. cd /openssl-0.9.8l c../config El script./config permite la configuración de la herramienta, verificando la existencia de las dependencias del sistema. 7. Si el sistema no indica ningún error, ejecute la siguiente instrucción: make. 8. make, es una herramienta de generación o automatización de código usada en sistemas operativos del tipo Linux/Unix, por defecto lee las instrucciones para generar el programa o para su instalación. Nuevamente, verificar que no existe ningún error. 9. Ejecutar el comnado make test. El cual permite verificar que la aplicación fue bien compilada. 10. Si en el paso anterior no existe ningún error, ejecutar el comando: make install. 11. make install, es un script que instala la aplicación en los directorios destino. El archivo de configuración de OpenSSL esta por defecto en: /usr/local/ssl/openssl.cnf. Para el desarrollo de la presente práctica, se empleará la configuración por defecto. Guía 1 II Parte. Creación de la Autoridad Certificadora (AC) 1. Para crear un certificado digital, en primera instancia se debe realizar una solicitud del certificado a una AC que respalde la información del certificado solicitado. Algunas AC reconocidas son Verisign, Visa, etc., éstas previo pago, devuelven certificados firmados por ellas. Para sustituir a dichas AC, se creará una propia, para firmar los certificados que se generen. 2. Abrir una terminal de shell y crear una carpeta con el nombre OpenSSL_iniciales, en el directorio de trabajo actual. Para ello, utilice el siguiente comando: mkdir /opt/openssl/openssl_iniciales.
Seguridad en redes. Guía 9 5 3. Cambie de directorio a /opt/openssl/openssl_iniciales, el cual será nuestro nuevo directorio de trabajo. 4. Ejecute el siguiente comando: openssl req x509 newkey rsa:2048 keyout cakey.pem days 3650 out cacert.pem 5. Describa la función del comando anterior y las principales características del mismo 6. A continuación, se solicita una contraseña para la AC, introduzca la palabra: 5eCuR1Ty y confirme la frase cuando se le solicite.!!!!!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!!!!! 7. Cuando se le solicite, en el país introduzca el código identificador, SV. 8. El siguiente campo solicita el estado o provincia, introduzca, San Salvador. 9. Cuando se solicita el nombre de la localización, introduzca, Laboratorio de Redes. 10. En el nombre de la organización, introduzca UDB 11. En la unidad organizacional, introduzca ING. 12. En el Nombre Común, escriba su nombre Juan Pérez. 13. Finalmente, proporcione su correo electrónico, juan.perez@dominio.com 14. Verificar que los archivos que contienen el certificado de la AC y su clave se han creado, en el directorio actual, a través de los siguientes comandos: a. cat cakey.pem b. cat cacert.pem Hasta este punto, se ha creado la AC, que validará las certificados que se generen durante la práctica. III Parte. Petición y generación de certificados digitales El objetivo de este apartado es generar una CSR, después de haber creado la AC en el punto anterior. 1. El primer paso para la generación de un certificado digital, es la creación de la clave privada del mismo. Introduzca el siguiente comando, el cual crea una clave privada con un algoritmo de cifrado RSA de 2048 bytes y se almacena en el archivo priv.pem, con la opción passout pass: en la cual le indicará la frase privada para la clave privada. openssl genrsa des3 out priv.pem passout pass:iniciales 2048
6 Seguridad en redes. Guía 9 2. Verificar que el archivo priv.pem se haya creado en su archivo de trabajo e identifique en su contenido los encabezados. Para ello, haga uso del siguiente comando. cat priv.pem 3. El segundo paso es realizar una CSR, donde se define el propietario del mismo. El siguiente comando hace una petición con el parámetro subj en donde especificamos a quien pertenece el certificado dentro de las comillas separadas por la /. Así mismo, se indica la clave privada que será utilizada en el certificado además de la frase password. openssl req new subj /DC=ing.udb.sv/OU=LabdeRedes/CN=ing key priv.pem passin pass:inciales out peticion.pem 4. Verificar que el archivo petición.pem se haya creado en el directorio actual utilizando el comando ls. 5. El tercer paso es la emisión del certificado. Para definir las características de un certificado digital, openssl cuenta con el archivo de configuración openssl.conf ubicado en la carpeta /usr/local/ssl o bien se puede hacer un archivo de configuración. Crear un archivo con el nombre config1.txt a través de la siguiente instrucción. touch config1.txt 6. Abra el editor vi y escriba las siguientes líneas, posteriormente guarde el archivo. basicconstraints = critical,ca:false extendedkeyusage = serverauth 7. Contando con el archivo de configuración, digite el siguiente comando que genera el certificado firmado por la AC ya creada. openssl x509 CA cacert.pem CAkey cakey.pem req in peticion.pem days 3650 extfile config1.txt sha1 CAcreateserial out servidorcert.pem 8. La aplicación solicitará el password de la AC que firma el certificado, introduzca el password configurado en el paso 6 de la sección 2 (5eCuR1Ty). 9. Verificar que el certificado se haya creado con éxito y analice su contenido, el cual debe lucir similar al que se observa en la figura 1. Para esto, introduzca los siguientes comandos: ls cat servidorcert.pem 10. Hasta este punto, se ha creado un certificado que puede ser empleado para implementar un servidor que permita dar soporte a sitios Web certificados bajo SSL (Secure Socket Layer), en servidores Apache o IIS por ejemplo. 11. Ejecutar el siguiente comando que permite obtener información sobre el certificado recientemente generado. Intente identificar e interpretar el significado de los parámetros que allí aparecen. openssl x509 in servidorcert.pem text noout
Seguridad en redes. Guía 9 7 Figura 1: Contenido de un certificado digital creado IV Parte. Utilización de las Listas de Revocación de Certificados (CRL) 1. Modificar el archivo de configuración openssl.cnf ubicado en /usr/local/ssl/openssl.cnf y comentando el campo dir, y colocando el directorio actual en su lugar, de la siguiente manera: #dir=./democa dir=. 2. Guardar los cambios realizados presionando <ESC> y luego la combinación :wq. 3. Modificar el archivo de configuración openssl.cnf ubicado en /etc/pki/tls/openssl.cnf y comentando los campos dir, unique_subject y crlnumber y colocando el directorio actual en su lugar de la siguiente manera: #dir =../../CA dir=. # unique_subject = no #Set to no to allow creation of # crlnumber = $dir/crlnumber #the current crl number
8 Seguridad en redes. Guía 9 4. Guardar los cambios realizados presionando <ESC> y luego la combinación :wq. 5. Crear un archivo de nombre index.txt en el directorio de trabajo utilizando el siguiente comando: touch index.txt 6. Revocar el certificado creado, mediante el siguiente comando: openssl ca keyfile cakey.pem cert cacert.pem revoke servidorcert.pem 7. Ingresar la contraseña de la clave privada de la AC (5eCuR1Ty) cuando sea solicitado. 8. La operación anterior no modifica el certificado, simplemente actualiza el contenido del archivo de la base de datos, index.txt. 9. Generar una CRL a través del siguiente comando, introduciendo el password de la clave privada de la AC (5eCuR1Ty) cuando sea solicitado. openssl ca gencrl keyfile cakey.pem cert cacert.pem out ejemplo.crl 10. Analizar el contenido del archive creado en el paso anterior. cat ejemplo.crl 11. Para obtener información acerca de la lista de revocación de certificados, ejecute el siguiente comando y analice la salida que se obtiene. openssl crl in ejemplo.crl text noout 12. Finalmente, hay que restaurar la configuración inicial, eliminando la carpeta openssl que se encuentra bajo el directorio /opt/, creada al inicio de la práctica. Investigación Complementaria En que consiste el formato pem utilizados en la clave y el certificado de la Autoridad Certificadora? Guía 3 Cuál es el funcionamiento de las líneas de comando introducidas al shell en el paso 6 de la sección 5.3? Guía Es posible 4 utilizar un certificado digital generado por una AC implementada en Linux para proveer soporte SSL (utilizando certificados digitales) a un Servidor Web basado fía en Windows, como por ejemplo IIS? Presentar el procedimiento a seguir para instalar un certificado digital en un servidor Web Microsoft IIS 6.0. Investigar 3 razones para indicar que un certificado ya no es válido. Investigue 5 sitios Web de Internet en donde se pueden encontrar Listas de Revocación de Certificados (CRL). Bibliografía http://www.openssl.org/ Guía 3 Guía 4 fía
Seguridad en redes. Guía 9 9 Guía 9: Certificados Digitales Tema: Presentación del programa Alumno: Hoja de cotejo: Docente: Máquina No: Máquina GL: No: 9 1 Alumno: Docente: Docente: GL: Máquina a No: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO 25 Demostró poco conocimiento sobre el tema de la práctica. APLICACIÓN DEL CONOCIMIENTO 70 Crea la autoridad certificadora (AC) en openssl Demostró conocimiento medio sobre el tema de la práctica. Crea la autoridad certificadora (AC) y genera certificados digitales en openssl Demostró buen conocimiento sobre el tema de la práctica. Crea la autoridad certificadora (AC), genera un certificado digital y utiliza la lista de renovación de certificados (CRL) en openssl ACTITUD 2.5 Es un observador pasivo. 2.5 Es ordenado pero no hace un uso adecuado de los recursos. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Hace un uso adecuado de recursos respetando las pautas de seguridad, pero es desordenado. Participa propositiva e integralmente en toda la práctica. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene. TOTAL 100