Archivo de la etiqueta: certificado X.509

Podcast – 23 – Let’s Encrypt

Este capítulo ha surgido a petición Fran Andrades en el grupo de Telegram.

Logo Let's Encrypt

Logo de Let’s Encrypt.
Fuente imagen: Let’s Encrypt

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.

Coyote usando productos ACME

Coyote usando productos ACME.
Fuente imagen:La Legal

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)
Micro con feed

Fuente imagen:PerfectYourPodcast

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.

Descarga directa.

Podcast – 22 – Certificados digitales

Los certificados de claves públicas X.509 nacieron como estándar de la Unión Internacional de Telecomunicaciones en 1988, si bien han ido evolucionando y actualmente la versión 3 se definió en 2008. La seguridad se basa en que una autoridad de certificación en la que confiamos (en realidad confia nuestro navegador), indica que la web a la que accedemos es la que dice ser (se evalúa el dominio) y por lo tanto se puede usar esta clave pública para cifrar la información de tal forma que sólo el servidor web pueda leer la información enviada.

Icono de certificado digital

Icono de certificado digital.
Fuente imagen:TuAsesorProfesional

Veamos los campos básicos de un certificado de dominio:

  1. Identificador de versión. Los valores aceptables son 1, 2 y 3. En el caso del certificado de Securizando.com la versión es la 3.
  2. Número de serie del certificado. Cada certificado emitido por una autoridad de certificación debe tener un número de serie único.
  3. Identificador del algoritmo de firmado. En el caso del certificado del blog es algoritmo es SHA-256 con cifrado RSA.
  4. Nombre del emisor. En el ejemplo el certificado de securizando.com está emitido por COMODO
  5. Periodo de validez. Este campo se basa en dos fechas: la de inicio de validez y la de caducidad. En nuestro ejemplo el certificado es válido del 22 de diciembre de 2016 al 23 de diciembre de 2018.
  6. Nombre del sujeto. Este campo identifica la identidad cuya clave pública está certificada. En nuestro ejemplo securizando.com
  7. Información de clave pública del sujeto. Este campo contiene la clave pública, sus parámetros y el identificador del algoritmo con el que se emplea la clave.
  8. Aquí aparecen algunos campos opcionales, si bien casi siempre se incluye la información de los protocolos CRL y OCSP que permiten confirmar que un certificado sea válido. Como estos protocolos no están estandarizados (aunque todas las autoridades de certificación los usen) no tienen un campo específico en el certificado y cae dentro de los opcionales
  9. Firma del certificado. La autoridad de certificación firma todo el contenido del cifrado para demostrar que ha sido emitido por dicha CA y no ha sido modificado

Existen diferentes campos opcionales (declaración de políticas de la entidad certificadora, restricciones del certificado, etc.).

¿Cómo se usa el certificado X.509?

Micro con feed

Fuente imagen:PerfectYourPodcast

Cuando nuestro navegador accede a una web, descarga el certificado asociado a la misma. El navegador comprueba que el certificado está correctamente firmado por la CA, corresponde al dominio de la web accedida y el estamos dentro del período de validez. Una vez realizadas estas comprobaciones básicas, revisará mediante los protocolos CRL y OCSP
que no haya sido revocado. Si todas las comprobaciones son correctas, empezará un intercambio de mensajes para definir una clave de sesión usando el certificado recién comprobado como punto de inicio del protocolo de cifrado. En realidad por cada sesión se calcula una nueva clave de cifrado, pero el protocolo siempre se inicia con mensajes cifrados usando el certificado digital X.509.

Recomendaciones

  1. La Universidad Complutense de Madrid organiza, dentro de los Cursos de Verano de El Escorial,
    el curso de dos días títulado «La ciberseguridad como eje de la transformación digital». El curso se celebra los dia 10 y 11 de julio y el primer día tiene un corte más empresarial, con
    los CISO de Orange y FCC y una mesa redonda donde irá el director del Instituto Nacional de Ciberseguridad. El segundo día, será una jornada más práctica, incluyendo un taller.
  2. La segunda recomendación tiene un alcance más sencillo: se trata de una charla «Ciberseguridad: El reto empresarial del siglo XXI» de la Cámara de Comercio de Mallorca que se celebra el próximo jueves 22 de junio. Es gratuita y estaré por ahí de oyente.

Descarga directa.