Redirecting you to
Entrada de blog ago. 27, 2020

Explicación del Entorno Automatizado de Gestión de Certificados (ACME)

El protocolo ACME automatiza la gestión del ciclo de vida de los certificados PKI, reduciendo el esfuerzo manual y los riesgos. Simplifica la emisión, renovación y revocación de certificados con mensajes JSON seguros mediante HTTPS, asegurando operaciones eficientes para los equipos de TI.

Tabla de Contenidos

¿Qué es el protocolo ACME?

El protocolo Automated Certificate Management Environment (ACME) es un protocolo para automatizar las comunicaciones de gestión del ciclo de vida de los certificados entre las autoridades de certificación (CA) y los servidores web de una empresa, los sistemas de correo electrónico, los dispositivos de usuario y cualquier otro lugar en el que se utilicen certificados de infraestructura de clave pública (PKI). El protocolo ACME no tiene costes de licencia y requiere muy poco tiempo para que los equipos informáticos configuren y ejecuten su automatización de gestión de certificados, lo que lo convierte en un componente cada vez más adoptado en la seguridad empresarial.

El Grupo de Investigación sobre Seguridad en Internet (ISRG) diseñó originalmente el protocolo ACME para su propio servicio de certificados y lo publicó como norma de Internet en el RFC 8555 a través de su propio grupo de trabajo IETF. La API ACME v2 es la versión actual del protocolo, publicada en marzo de 2018. (La versión anterior, ACME v1, se publicó en abril de 2016; ahora está obsoleta).

La base de la emisión de certificados PKI es que se confía en las autoridades de certificación, como Sectigo, para autenticar que un usuario de certificado representa legítimamente las identidades y el nombre o nombres de dominio asociados al certificado PKI. El proceso de intercambio de información necesario para que la CA realice esa autenticación y emita los certificados, y para que el usuario despliegue los certificados emitidos, se automatiza mediante el protocolo ACME, en lugar de comunicar esta información manualmente. Además del proceso de emisión de certificados, el protocolo también permite otros casos de uso de la gestión del ciclo de vida de los certificados, como la revocación y renovación de certificados, utilizando mensajes sencillos con formato JSON a través de comunicaciones HTTPS cifradas.

Protocolo automatizado: ventajas y casos de uso

Aunque no existe una solución de autenticación y cifrado más potente y fácil de usar que la identidad digital proporcionada por la PKI, el reto para los ocupados equipos de TI sigue siendo que la implantación y gestión manual de certificados lleva mucho tiempo y puede crear riesgos innecesarios. Tanto si una empresa implementa un único certificado SSL para un servidor web como si gestiona millones de certificados en todos los dispositivos conectados en red y las identidades de usuario de una organización, el proceso completo de emisión, configuración e implementación de certificados puede llevar varias horas. La gestión manual de certificados también expone a las empresas a un riesgo significativo de que los certificados se olviden hasta su caducidad y de que se expongan a lagunas en la propiedad, lo que provoca interrupciones repentinas o fallos de los sistemas críticos de la empresa junto con infracciones y ataques Man-in-the-Middle (MITM).

Con los muchos escollos potenciales inherentes a la gestión manual de certificados PKI, las empresas necesitan un estándar de automatización como ACME para garantizar que los certificados se configuran e implementan correctamente sin la intervención humana necesaria para garantizar que los certificados son válidos de uno en uno. Esta automatización no sólo ayuda a reducir el riesgo, sino que permite a los departamentos de TI controlar los costes operativos.

¿Por qué utilizar ACME en lugar de otras opciones?

Existen otros estándares de automatización de certificados como Enrollment over Secure Transport (EST) y Simple Certificate Enrollment Protocol (SCEP), así como soluciones asociadas a arquitecturas empresariales como Microsoft Active Directory. Entonces, ¿por qué ACME es un estándar de automatización cada vez más popular para muchas empresas?

La razón principal radica en la complejidad y la escala de la mayoría de las necesidades de certificados de las empresas. Las empresas confían en los certificados PKI para autenticar y cifrar todo, desde servidores web en la nube y en las instalaciones, dispositivos en red, dispositivos móviles, identidades de usuario, sistemas de correo electrónico, dispositivos de red, dispositivos IoT, entornos DevOps y mucho más. Para que la gestión de este vasto ecosistema sea aún más difícil, las empresas a menudo operan en múltiples infraestructuras de TI, no solo en una arquitectura centralizada.

Los equipos de TI confían cada vez más en ACME para ayudarles a abordar sus retos de escala y complejidad, ya que ofrece

  • un estándar abierto con un conjunto completo de comandos y una sólida gestión de errores, lo que facilita su adopción tanto por parte de la empresa como de las CA
  • las mejores prácticas TLS y otras prácticas de seguridad PKI tanto para los equipos de TI encargados de implantar y gestionar certificados PKI válidos como para las CA de confianza que se adhieren a estrictos procedimientos de autenticación
  • mejoras y soporte continuos por parte de una comunidad, no controlados por un único proveedor u organización
  • flexibilidad para añadir y admitir CA de respaldo
  • bajo coste, ya que su uso es gratuito

¿Cómo funciona el protocolo ACME?

Las dos entidades de comunicación de ACME son el cliente ACME y el servidor ACME. El cliente ACME utiliza el protocolo para solicitar acciones de gestión de certificados, como la emisión o la revocación. El cliente se ejecuta en el servidor o dispositivo del usuario que necesita estar protegido por el certificado PKI. El servidor ACME se ejecuta en una autoridad de certificación, como Sectigo. Responde a las solicitudes del cliente y ejecuta las acciones solicitadas una vez que el cliente está autorizado. La comunicación entre ambos se basa en mensajes JSON a través de una conexión HTTPS segura.

Aprende más sobre la integración Sectigo ACME hoy.

Cómo funciona el protocolo ACME para la gestión automatizada de certificados PKI

Cómo funciona el protocolo ACME para la gestión automatizada de certificados PKI

El otro elemento importante del proceso es el paso de autenticación, conocido como desafío ACME. La CA no puede emitir un certificado o completar la solicitud hasta que se supere el desafío. Los requisitos de autenticación para este proceso de validación garantizan que los certificados sólo se emitan a usuarios de confianza. Actualmente existen dos tipos de desafíos ACME:

Retos HTTP

Cuando el servidor ACME recibe una solicitud de un cliente ACME, la CA envía un token al cliente ACME para que lo instale en el servidor. A continuación, el cliente crea un archivo que contiene ese token y lo adjunta con una huella digital de la clave de autorización que se generó durante la instalación. La estructura del archivo es (Token) || '.' || (huella digital de la clave de autorización). Una vez instalado el archivo, el cliente informa a la CA, que recupera y valida el archivo y, a continuación, completa la solicitud.

Desafíos DNS

Este desafío incluye un factor de verificación adicional al requerir que el agente ACME coloque un valor determinado en un registro TXT en el espacio DNS del dominio. El proceso de autenticación es similar al de los retos HTTP: la CA envía un token al cliente y se añade la huella digital de la clave de autorización para crear e instalar el archivo de reto. Una vez que el agente notifica a la CA que se ha cumplido el reto, la CA intenta hacer una búsqueda DNS y recuperar el registro TXT.

Todo el proceso de impugnación es rápido, normalmente se completa en menos de 15 segundos para ambos tipos. Sin embargo, según el RFC 8555, los administradores deben asegurarse de que la configuración del servidor se ha completado antes de que el cliente ACME envíe ninguna solicitud, ya que no es infrecuente que las consultas de los servidores ACME fallen mientras un recurso todavía se está configurando en los sistemas de los usuarios. Por ejemplo, la información DNS o HTTP o las reglas de cortafuegos tardan en propagarse por los servidores y el servidor ACME puede informar de un error si consulta un sistema antes de que se haya completado la propagación. El servidor de ACME en la CA considera el desafío como «en curso» y reintenta la consulta cada 5 o 10 segundos mientras el cliente siga intentándolo. Por lo tanto, se recomienda que en la configuración del usuario los clientes no respondan a los desafíos hasta que crean que las consultas del servidor tendrán éxito, ya que puede haber un pequeño retraso entre la carga del archivo o registro DNS y que la CA pueda recuperarlos.

Cómo configurar un cliente

Para configurar un cliente ACME, el usuario decide en primer lugar qué cliente va a utilizar y, a continuación, instala el cliente en el dominio/servidor para utilizar el protocolo ACME. Como la flexibilidad es un punto fuerte, los clientes funcionan en casi todos los lenguajes de programación y entornos que pueda tener una empresa:

  • Bash
  • C/C++
  • Clojure
  • Docker
  • Go
  • HAProxy
  • Java
  • Microsoft Azure
  • nginx
  • Node.js
  • OpenShift
  • Perl
  • PHP
  • Python
  • Ruby
  • Rust
  • Windows/IIS

Como ocurre con los estándares de código abierto, no hay clientes propietarios para ninguna de las CA. Esto permite a las organizaciones elegir las CA que deseen, siempre que sean compatibles con ACME. He aquí una lista de clientes ACME v2 populares encontrados en GitHub:

  • Certbot por Electronic Frontier Foundation (EFF) y patrocinado por Sectigo
  • ACMESharp
  • acme-client
  • GetSSL
  • Posh-ACME
  • Caddy
  • Alcantarilla
  • nginx ACME
  • nodo-acme-lambda

El siguiente paso es configurar el cliente ACME y luego instalarlo en el servidor donde se van a desplegar los certificados PKI. El proceso de configuración consta de 6 sencillos pasos y sólo se tarda unos minutos en completarlo:

  1. El cliente solicita al usuario que introduzca el dominio o dominios que desea gestionar.
  2. El usuario elige la CA deseada de una lista de CAs compatibles con ACME proporcionada por el cliente.
  3. Una vez seleccionada una CA, el cliente se pone en contacto con la CA y genera un par de claves privadas.
  4. La CA emite el desafío ACME, ya sea HTTP o DNS, para autenticar la identidad del usuario.
  5. Además de los retos, la CA también envía un número generado aleatoriamente llamado nonce. El cliente firma con la clave privada que acaba de generar para demostrar la propiedad del par de claves.
  6. Se define la frecuencia con la que el cliente se pone en contacto con la CA para renovar el certificado.

Una vez que la CA verifica que se ha superado el reto y que la firma es auténtica, el cliente ACME está oficialmente autorizado para actuar en nombre de los dominios validados.

¿Cómo soporta ACME la gestión del ciclo de vida de los certificados?

La emisión, renovación y revocación de certificados PKI mediante el protocolo ACME es muy sencilla gracias a los procesos habituales de gestión de certificados. El cliente simplemente envía mensajes estándar de gestión de certificados PKI y firma dichos certificados con el par de claves autorizado.

Para emitir o renovar un certificado

  1. El cliente crea una solicitud de firma de certificado (CSR) que pide a la CA que emita un certificado para el dominio autorizado con una clave pública especificada.
  2. El CSR incluye una firma por la clave privada correspondiente a la clave pública en el CSR
  3. El cliente firma el CSR completo con la clave autorizada para el dominio de forma que la CA pueda verificar que está autorizado
  4. La CA verifica ambas firmas y, si son válidas, emite un certificado para el dominio autorizado con la clave pública del CSR
  5. La CA emite el certificado al cliente
Emisión y renovación automatizada de certificados mediante el protocolo ACME

Emisión y renovación automatizada de certificados mediante el protocolo ACME

La revocación de certificados mediante ACME sigue una comunicación similar a la de emisión y renovación. El cliente firma una solicitud de revocación con el par de claves autorizado para el dominio, y la CA verifica que la solicitud está autorizada. A continuación, la CA publica la información de revocación en los canales de revocación estándar para que los navegadores no acepten el certificado revocado.

Proceso automatizado de revocación de certificados mediante el protocolo ACME

Proceso automatizado de revocación de certificados mediante el protocolo ACME

¿Qué tipos de certificados TLS/SSL y otros certificados PKI admite?

Como se ha mencionado anteriormente, el estándar ACME admite certificados PKI para los servidores web de una empresa, sistemas de correo electrónico, dispositivos de usuario y cualquier otro lugar en el que se utilice PKI, siempre que la CA admita ACME para ese tipo de certificado PKI. Por ejemplo, soporta certificados SSL que requieren diferentes modos de autenticación - certificados de validación de dominio (DV), validación de organización (OV) y validación extendida (EV) - teniendo en cuenta que pueden ser necesarios pasos adicionales de autenticación fuera de lo que facilita ACME.

Como Sectigo ofrece certificados SSL/TLS además de firma de codigo, S/MIME, y otros certificados X.509 que soportan ACME, las empresas también necesitan una forma de automatizar la gestión del ciclo de vida de extremo a extremo a escala. El Gestor de Certificados Sectigo soporta el protocolo ACME para una completa gestión automatizada del ciclo de vida de los certificados.

¿Quieres saber más? Ponte en contacto con nosotros para reservar una demo de Sectigo Certificate Manager.

Entradas asociadas:

Los riesgos de ignorar ACME en la era SSL de 90 y 47 días

Root Causes 298: Avanzando juntos - Promoviendo la automatización

Integración de certificados Sectigo para Apache usando ACME