La mayoría de las comunicaciones seguras ocurren entre máquinas muy alejadas entre sí, la implantación de una PKI (Public Key Infrastructure, infraestructura de clave pública) permite la comunicación segura entre cliente y servidor.
Explicaré de forma breve y concisa los agentes que intervienen en un PKI:
- La Autoridad de Certificación (CA [Certificate Authority]), cuya misión es emitir certificados. Ejemplos de CA españolas:
- Fábrica Nacional de Moneda y Timbre (FNMT)
- Agència Catalana de Certificació (CATCert)
- Agencia Notarial de Certificación (ANCERT)
- ANF Autoridad de Certificación (ANF AC)
- Autoridad de Certificación de la Abogacía (ACA)
- Autoridad de Certificación HealthSign
- Autoritat de Certificació de la Comunitat Valenciana (ACCV)
- Banco de España
- Banco Español de Crédito S.A. (Banesto)
- Banco de Santander
- Camerfirma
- EDICOM
- Firma Profesional
- Gerencia de Informática de la Seguridad Social (GISS)
- IZENPE
- Ministerio de Defensa
- Ministerio de Trabajo e Inmigración
- La autoridad de Registro (RA [Registration Authority]), que es la responsable de asegurar que el solicitante del certificado es quien dice ser. Ejemplo: Ministerio de Hacienda, Seguridad Social, Correos, …
- La autoridad de Validación (VA [Validation Authority]) es la responsable de comprobar la validez de los certificados digitales emitidos. En la práctica suele coincidir con la CA.
- Los repositorios. Son almacenes de certificados. Los principales son el repositorio de certificados activos y el repositorio de listas de revocación de certificados (certificados que, por cualquier motivo, fueron expresamente desactivados antes de caducar).
El funcionamiento es el siguiente:
- Durante el inicio de la sesión, el servidor envía su clave pública al cliente para que cifre el diálogo que van a comenzar (autenticación usuario/contraseña, etc.); pero el cliente, antes de utilizarla, desconfía: necesita comprobar que el servidor es quien dice ser.
- El servidor lo ha supuesto y ha enviado, junto con su clave pública, la firma digital de esa clave. Esa firma digital ha sido realizada por una CA oficial utilizando la clave privada de esa CA.
- El cliente puede verificar la firma recibida utilizando la clave pública de la CA (en este punto puede necesitar conectar con la VA). Si la firma es correcta, la clave pública del servidor también los es y podemos iniciar la sesión segura con toda confianza.
Por lo tanto, para que funcione la autenticación de una clave pública mediante PKI, se necesitan dos pasos previos:
- El servidor ha conseguido que una CA le firme su clave pública. Por ejemplo: VeriSign, FNMT, etc.
- El cliente dispone de la clave pública de esa CA dentro de su llavero de claves asimétricas, es decir, el certificado digital.
Realmente, las CA no emiten un simple fichero con la firma, como hemos visto hasta ahora en la Firma Digital en Windows (Ficheros .asc), https://jesusfernandeztoledo.com/firma-digital-en-windows/, ni encontramos suelta la clave pública de una CA para importarla.
Es importante la información complementaria:
- ¿Quién firma?
- ¿Para quién firma?
- ¿Qué usos tiene la clave? (cifrado y firmado, solo firmado, etc.)
- ¿En qué fecha se firmó?
- ¿Cuándo caduca esa firma?
- ¿Qué algoritmos se han utilizado?
- …
Esta información se recoge en una estructura que constituye el certificado digital, según el estándar X.509. Por lo tanto, en el funcionamiento de una KPI los usuarios importan certificados de CA y los servidores envían sus claves públicas dentro de certificados.
Ahora bien, ¿cómo podemos estar seguros de que la clave pública de la CA es auténtica?
- Porque se ha instalado en nuestro ordenador de manera segura.
- Porque forma parte de la instalación del Sistema Operativo.
- Porque en algún momento la hemos importado voluntariamente.
Se suelen llamar certificados raíz (root certificates).
Hay muchas empresas públicas y privadas que disponen de una PKI y se dedican a emitir certificados. Los usuarios que desean un certificado de empresa visitarán sólo una vez su RA y su CA para obtenerlo, aunque después usarán muchas veces la VA y los repositorios. Solamente volverán a la CA para renovar el certificado cuando esté próximo a caducar.
Cuando el certificado está próximo a caducar, la CA envía un mensaje, como se puede comprobar en la imagen.
En esta otra imagen es la RA la que envía el mensaje.
Además de las comunicaciones por Internet, las empresas también necesitan cifrar la información interna que circula por sus sistemas y sus redes. Para reducir el coste que supone contratar los certificados con una empresa externa, suelen crear una PKI propia que no emita certificados al público general, sino solamente a sus empleados y sus sistemas. La instalación consiste en configurar un servidor de la empresa con un software necesario para ejercer las funciones de CA y VA, y poner la clave pública de la CA en todos los equipos, uno a uno. La RA es asumida por el departamento de informática.
Como casi todo en seguridad informática, la PKI no es perfecta. Todavía tenemos 2 vulnerabilidades:
- Un virus en nuestro ordenador puede alterar el depósito de claves, e importar sin nuestro consentimiento claves públicas de CA fraudulentas. Una conexión segura a servidores respaldados por esas CA no es fiable.
- Un ataque a los servidores de una CA podría robar su clave privada. Desde ese momento, el atacante puede firmar las claves públicas de servidores peligrosos y los clientes se conectarían a ellos confiando en que es una firma legal.
Ejercicios:
Ejercicio 1. ¿Qué es una KPI?, ¿De qué están compuestas las KPI?
Ejercicio 2. Enumera 5 autoridades de certificación (CA) españolas, este enlace te puede ayudar.
http://firmaelectronica.gob.es/Home/Empresas/Autoridades-Certificacion.html
Ejercicio 3. Investiga precios y requisitos para conseguir un certificado de una empresa de PKI.
Ejercicio 4. Enumera los diferentes tipos de certificados que existen, te puedes ayudar de este artículo.
https://es.wikipedia.org/wiki/Infraestructura_de_clave_p%C3%BAblica
Ejercicio 5. Autentícate en tu Gmail y contesta a las siguientes preguntas:
- ¿Quién es la autoridad de certificación (CA) raiz? Observa que el destinatario y el emisor son el mismo.
- ¿Qué algoritmo de cifrado/firma está usando su CA raiz?
- ¿Cuándo caduca el certificado?
- ¿Cuánto vale aproximadamente un certificado de esta CA?
Ejercicio 6. Además de las comunicaciones por Internet, las empresas también necesitan cifrar la información interna que circula por sus sistemas y sus redes. Para reducir el coste que supone contratar los certificados con una empresa externa, suelen crear una PKI propia que no emita certificados al público en general, sino solo a sus empleados y sus sistemas.
La instalación consiste en configurar un servidor de la empresa con el software necesario para ejercer las funciones de CA y VA, y poner la clave pública de la CA en todos los equipos, uno a uno. La RA es asumida por el departamento de informática.
Autentícate en Gmail y contesta a las siguientes preguntas.
- ¿Qué algoritmo de cifrado/firma está usando Google en su KPI propia?
- ¿Quién está respaldando al certificado de Google?
- ¿Cuándo caduca el certificado?
Ejercicio 7. Instalar IIS en tu servidor Windows, y crea un certificado autofirmado. Puedes ayudarte del siguiente vídeo.
https://www.youtube.com/watch?v=pB7h5-QZC2k
Ejercicio 8. Instalar un certificado gratuito de Let’s Encript en tu servidor Kali Apache
Te puedes ayudar de estos artículos,
https://www.desarrolloweb.com/articulos/instalar-ssl-letsencrypt-ubuntu-apache.html
https://www.desarrolloweb.com/articulos/instalar-certificado-ssl-lets-encrypt.html