Podcast: Reproducir en una nueva ventana | Descargar
Este capítulo ha surgido a petición Fran Andrades en el grupo de Telegram.
En el capítulo de hoy revisaremos la autoridad de certificación Let’s Encrypt y su protocolo de gestión automatizada de certificados digitales.
Let’s Encrypt es una nueva entidad de certificación que ofrece la generación de certificados de dominio validado, los utilizados por los protocolos SSL y TLS, de forma automatizada y gratuita. Se trata de una iniciativa gestionada por la organización sin ánimo de lucro Internet Security Research Group afincada en California.
El objetivo declarado de ISRG es reducir las barreras económicas, tecnológicas y educativas respecto a la comunicación segura por Internet. Dentro de este marco de objetivos genérico la iniciativa más conocida es la creación de Let’s Encrypt con el objetivo de facilitar la generación de certificados X.509 gratuitos para permitir que cualquier usuario pueda utilizar los protocolos de cifrado SSL y TLS en sus comunicaciones. Esta autoridad sólo emite certificados de dominio validado, pero no de validación extendida, comodín o de firma de software.
Tras esta introducción, vayamos a la novedad de esta autoridad de certificación: El protocolo ACME. No no tiene nada que ver con el fabricante de los utensilios que usa el coyote para intentar capturar al correcaminos.
El protocolo ACME (Automatic Certificate Management Enviroment) fue desarrollado internamente para ISRG aunque posteriormente fue publicado de forma abierta para que pueda ser utilizado libremente. Actualmente se encuentra en fase de ‘propuesta de estándar’ por parte de la IETF con la intención de que pase a ser un estándar abierto de forma oficial.
El objetivo del protocolo ACME es facilitar la gestión automática de los certificados X.509 sin intervención humana alguna. Para conseguir esta automatización se confía en la existencia de un agente de gestión de certificados instalado en el servidor que vaya a usarlos. Así este agente será el responsable de realizar todas las interacciones con los servidores de Let’s Encrypt necesarias para gestionar los certificados.
Para demostrar el control del dominio sobre el que se solicita el certificado. Si bien este punto del protocolo ACME no está cerrado, se utitlizarían dos métodos para para verificar la capacidad de gestión del dominio los más habituales suelen ser:
- Mediante la creación de un subdominio aleatorio (p.e. shdkadli.securizando.com)
- Mediante la creación de un recurso URL aleatorio (p.e. http://securizando.com/.well-known/asdkj.txt)
Una vez comprobada la capacidad de gestión del dominio por parte del agente, ya sea por uno o varias pruebas de control, se solicitará el cifrado de un texto aleatorio mediante la clave privada de dicho agente. Así los servidores de Let’s Encrypt podrán confirmar que el agente es quien dice ser (mediante el uso de las claves privada y pública) y que tiene el control del dominio sobre el que se quiere realizar la gestión.
Tras estas comprobaciones los servidores de Let’s Encrypt ya pueden estar seguros de que el agente es quien dice ser (por el uso de criptografía de clave privada) y que tiene control del dominio a gestionar (por haber superado las pruebas marcadas). A partir de este momento el agente puede solicitar realizar las operaciones de creación, renovación y revocación de los certificados X.509 asociados a ese dominio.
Pingback: Podcast - 24 - HTTPS - Securizando