Você está na página 1de 7

Criptografa y Seguridad en

Comunicaciones

Prctica 3:
Infraestructuras de
clave pblica.

Antonio Sanz
ansanz@unizar.es
Jos Luis Salazar
jsalazar@unizar.es

Objetivo de la prctica
Poner en prctica algunos de los conceptos vistos en la teora relativos a la
seguridad proporcionada por las firmas digitales, que implica el uso de una
infraestructura de clave pblica. Se instalar un certificado digital para poder
activar el protocolo SSL en un servidor.

Qu hay preparar de forma previa a la prctica?


Ser necesario el revisar y tener frescos todos los conocimientos adquiridos en la
teora, as como haber repasado los conceptos relacionados con la firma digital.

Cul es el resultado de la prctica?


Se obtiene como resultado de la prctica una infraestructura de clave pblica
necesaria para establecer confianza entre los usuarios de comunicaciones digitales.

Qu se aprende con esta prctica?


Se aprende a realizar todo el proceso de adquisicin e instalacin de un certificado
digital para poder activar SSL en nuestro servidor web.

Introduccin
El uso de la criptografa de clave pblica como herramienta de identificacin a
travs de la firma digital tiene la limitacin de que este protocolo slo identifica a
una clave, no a una entidad fsica concreta. Este ltimo paso, slo se puede hacer a
travs de una infraestructura de clave pblica. El primer principio de
funcionamiento de esta infraestructura es la confianza. Una persona que vaya a
utilizar las comunicaciones digitales debe establecer una confianza inicial en alguien
A; para posteriormente trasladar esa confianza a travs de las entidades en las que
confa A. Una entidad en la que se pueda confiar va a ser una Autoridad de
Certificacin (CA) y su labor ser la de certificar la identidad de sus suscriptores por
medio de certificados digitales expedidos (firmados) por la CA.
El protocolo que vamos a utilizar es el SSL (Secure Socket Layer), pensado para el
uso criptogrfico en Internet. La herramienta que usaremos ser el OpenSSL
incrustado en un paquete de software XAMPP que incluye software de servidor
apache, servicios de FTP, base de datos, etc.
Notas previas a la prctica:
Descargar
el
paquete
XAMPP
e
instalarlo
en
el
ordenador
(http://comelec.unizar.es/soft/xampp.exe). La instalacin de XAMPP no
tiene misterio alguno (tan solo se tendr que tener cuidado de no instalar

Infraestructuras de clave pblica con openssl

2 de 7

los componentes como servicios, ya que no disponemos de privilegios de


administrador en el equipo). XAMPP tiene un cmodo panel de control que
nos permite arrancar de forma manual los diversos componentes
disponibles. Una vez est arrancado de forma exitosa, puede ser accedido
mediante un navegador en la direccin: http://localhost
Descargar
la
interfaz
de
creacin
de
certificados
XCA
La
instalacin
(http://criptosec.unizar.es/soft/setup_xca-0.6.4.exe).
tampoco ofrece ningn problema.
Siempre que tratemos de conectarnos con un navegador al servidor web y
nos d un error, haremos la correccin correspondiente, cerraremos el
navegador y si es necesario, reiniciaremos el servidor.

Generacin de una Autoridad de Certificacin


Dado que la prctica la realizaremos en Windows y generaremos certificados
compatibles tanto con Firefox como con Explorer debemos configurar la aplicacin
XCA para que utilice por defecto la funcin Hash SHA-1, desde el men FILE.
A continuacin procederemos a generar una CA que ser usada para emitir certificados
empleados en la prctica. Para ello emplearemos la aplicacin XCA. Empezaremos
creando una base de datos de claves tanto secretas como pblicas, protegindola con un
password.
Despus, procederemos a la creacin de un certificado raz, donde el firmante y el
suscriptor sean la misma entidad en la pestaa Certificates, no olvidando seleccionar
CA como plantilla de certificado.
Se nos pedir una serie de datos para generar el certificado, que pueden ser los
siguientes:
CN (Country Name): ES
State or Province: Zaragoza
Locality Name: Zaragoza
Organization Name: Universidad de Zaragoza //(Nombre de la propietaria de la CA)
Organizational Name: Dep.. Tecnico
Common Name: El nombre por el que se va a conocer al CA.
Email Address: Mail para contacto con los dueos de la CA

Generacin del certificado de servidor


Para generar un certificado digital para nuestro servidor, en primer lugar ser necesario
crear una peticin de firma de certificado (CSR o Certificate Signing Request) que
luego firmaremos con el certificado de la CA que creamos en el apartado anterior. No
nos olvidemos de seleccionar correctamente la plantilla de certificado de servidor.
CN (Country Name): ES
State or Province: Zaragoza
Locality Name: Zaragoza
Organization Name: GTC //(Nombre de la entidad)
Organizational Unit: Dep.. Tecnico

Infraestructuras de clave pblica con openssl

3 de 7

Common Name: www.gtc.es (URL de la entidad)


Email Address: Mail para contacto de la entidad

Common Name: El nombre del dominio de nuestra pgina (es VITAL ponerlo de
forma correcta o de lo contrario nuestro certificado no funcionar de forma correcta).
Los campos que aparecen como Extras o Empresas adicionales no nos interesan.

Instalacin del certificado de servidor


La instalacin del certificado de servidor seguro requiere de la modificacin del
fichero de configuracin de SSL. Dicho fichero puede o bien estar incluido dentro
del httpd.conf o conformar un fichero propio denominado httpd-ssl.conf (ambos
dentro del directorio %XAMPP%\apache\conf\extra ).
Se debern cambiar las siguientes opciones de configuracin:
SSLCertificateFile conf/ssl.crt/Cert_Server.crt
SSLCertificateKeyFile conf/ssl.key/Clave_Server.pem
Desde XCA se exportarn el certificado de servidor y las claves asociadas al mismo
a los directorios recin especificados en los fichero de configuracin (muy
importante el respetar los path adecuados).
Si se para y se vuelve a iniciar el servidor web se recogern los cambios y, al
acceder por SSL ( https://localhost ), se podr ver los detalles del servidor.
Se podr observar que nos informa de dos irregularidades: En primer lugar, no se
puede verificar el certificado porque el navegador no tiene instalado el certificado
de la CA, y en segundo lugar porque el nombre escrito en el navegador no coincide
con el del certificado. El segundo problema tiene difcil solucin en este momento
(tendramos que tener un servidor de DNS para poder incluir nuestra correlacin IP
/ nombre de dominio), pero el primero puede solucionarse instalando el certificado
de la CA en el navegador.

Instalacin del certificado de la CA en el navegador


Para instalar el certificado de la CA en el navegador, ser necesario exportar el
certificado de la CA (con el nombre Cert_CA.crt al fichero de trabajo y seguir los
pasos que se detallan a continuacin:
Internet Explorer
Acceder a Herramientas Opciones de Internet Contenido Certificados.
Seleccionar la pestaa de Entidades emisoras de certificados de raz de confianza,
y pulsar sobre Importar. Seleccionar el fichero Cert_CA.crt (ser necesario
indicar que muestre todos los ficheros) e importarlo.
Acto seguido aparecer en la lista junto con las otras CA de las que se tiene
reconocimiento automtico por parte del navegador.
Infraestructuras de clave pblica con openssl

4 de 7

Mozilla Firefox
Acceder a
Herramientas Opciones Avanzado Certificados Ver
certificados Autoridades, y pulsar sobre la pestaa de Importar, e importar el
certificado directamente
Acto seguido aparecer en la lista junto con las otras CA de las que se tiene
reconocimiento automtico por parte del navegador.

Instalacin del certificado de usuario en el navegador


Una de las opciones de autenticacin ms potentes y seguras que existen en la
actualidad pasa por el uso de certificados digitales para la autenticacin tanto del cliente
como del servidor. Puede decirse que la autenticacin ms segura posible con la
tecnologa actual sera la que se realiza mediante certificados digitales, y con la clave
privada guardad fuera del ordenador del usuario (en una tarjeta inteligente u otro medio
fsico), y protegido por medidas biomtricas (huella digital, por ejemplo).
En esta prctica vamos a prescindir de biometra y de tarjetas inteligentes, pero vamos a
comprobar la potencia de los certificados digitales como medio de autenticacin.
Para ello, lo primero ser generar una peticin de certificado de usuario, y firmarlo con
la clave de la CA:
CN (Country Name): ES
State or Province: Zaragoza
Locality Name: Zaragoza
Organization Name: GTC //(Nombre de la entidad)
Organizational Unit: Dep. Tecnico
Common Name: Jos Luis Salazar
Email Address: Mail para contacto de la persona

Para poder instalar el certificado junto con la clave privada del navegador, es necesario
emplear otra estructura criptogrfica. Los navegadores principales actualmente aceptan
la estructura PKCS12. PKCS12 es algo as como un saco en el cul podemos meter
informacin criptogrfica, protegido por una contrasea de un solo uso (la que por as
decirlo abre el saco).
El certificado puede instalarse de la misma forma que el de la CA, pero seleccionando la
opcin de Personal en el Internet Explorer. En este caso, se recomienda
encarecidamente no dejar la clave privada sin una contrasea, ya que cualquiera que
usara el equipo podra actuar bajo nuestra identidad.
Para ello, en el Internet Explorer, se debe seleccionar la opcin de Habilitar proteccin
segura de claves privadas, y posteriormente la opcin de Nivel de Seguridad Alto
estableciendo una contrasea que ser la requerida cada vez que sea necesario.

Infraestructuras de clave pblica con openssl

5 de 7

En Mozilla Firefox la importacin se realiza empleando el mismo mtodo, pero


seleccionando la pestaa de Your Certificates. Para garantizar que slo el
administrador podr usar la clave privada de ese certificado, tendremos que colocar un
Contrasea maestra en el Firefox, tarea que puede realizarse accediendo a Tools

Privacy Saved Passwords Set Master Password.

Configuracin del servidor para el acceso por certificados


Una vez generado el certificado digital de usuario, podemos en el servidor realizar un
control de acceso que deje acceder a los usuarios nicamente a unos directorios
especficos en funcin del certificado que presenten (por ejemplo, sera posible dejar
una parte de la Intranet para acceso nicamente a aquellos con Organizacional Unit =
Ventas, o usar un campo extra Cargo o similares).
Para ello ser necesario que el servidor pueda verificar los certificados que le presentan
los usuarios, por lo que copiaremos el Cert_CA.crt al directorio de ssl.crt del Apache, y
realizaremos los siguientes cambios en el http-ssl.cnf:
SSLCACertificateFile %xampp/apache/conf/ssl.crt/Cert_CA.crt
<Location/>
SSLRequireSSL
SSLVerifyClient require
SSLRequire (%{SSL_CLIENT_S_DN_O} eq GTC \
and %{SSL_CLIENT_S_DN_OU} eq Departamento Tecnico)
SSLVerifyDepth 1
</Location>
Nota: La directive location ya existe y tenemos que modificarla.
Nota: El directorio al que vamos a acceder por HTTPS va a ser el htdocs, pero lo
lgico sera que fuera otro directorio.
Si reiniciamos el servidor y hemos realizado la configuracin de forma correcta, Apache
pedir un certificado digital al cliente antes de dejarle acceder a la web.

Generacin de la CRL
Se pueden producir casos en los que un usuario pierda el control de su clave privada (y
por tanto, de su identidad), por lo que es vital tener un mecanismo de rescindir la
validez del acceso de una persona.
En las infraestructuras de clave pblica este mecanismo se conoce como revocacin, y
consta de dos partes: una primera en la que se elimina la validez del certificado, y una
segunda en la que se hace pblica esa rescisin del acceso mediante la emisin de una
CRL (Certificate Revocation List o Lista de Certificados Revocados).

Infraestructuras de clave pblica con openssl

6 de 7

Para poder revocar certificados en nuestra estructura, la primera operacin a realizar


ser seleccionar el certificado que queremos revocar con el men del botn derecho del
ratn y revocar el certificado.
La posterior generacin de la CRL se realiza mediante el mismo men que se activa
sobre el certificado de la entidad que certific el certificado que ahora se revoca.

Una vez generada la CRL, se tendr que exportar al directorio %XAMPP/conf/ssl.crl/, y


modificar la siguiente lnea de ssl.cnf:
#SSLCARevocationFile conf/ssl.crl/ca-budle.crl
por
SSLCARevocationFile conf/ssl.crl/Cert_CA.pem
Si reiniciamos el servidor web verificaremos que se deniega el acceso a nuestro
certificado de administrador, completndose el proceso de anulacin del certificado.

Trabajo a realizar durante la prctica


Se entregarn como resultado de la prctica los siguientes ficheros que sern
enviados como adjuntos a la direccin de correo 512961@unizar.es:

Los tres certificados generados en la sesin.

La CRL generada en al sesin.

Infraestructuras de clave pblica con openssl

7 de 7