Fundamentos sobre Certificados Digitales – El estándar X.509 y estructura de certificados

En esta entrada, dentro de nuestra serie dedicada a Certificados Digitales, nos vamos a centrar en la estructura e implementación de los certificados.

Creo que antes de comenzar es preciso realizar una aclaración, sé que hemos estado hablando continuamente de certificados, la tecnología criptográfica que emplean, la gestión que realizan de ellos las autoridades de certificación, los dispositivos hardware para gestión de claves criptográficas, etc. Por otra parte, también hemos hablado de el establecimiento, normativa y responsabilidades de una CA, así como de los servicios que prestan. Sin embargo, aún no hemos hablado de la implementación de los certificados, es decir, como se construyen y que formatos estructurales tienen. Este punto es el objeto de la presente entrada.

Para definir y establecer el contenido y estructura que debe tener un certificado digital se establece el estándar conocido normalmente como X.509, aunque su nombre completo es “Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile”, definido por el “Network Working Group” y definido en la RFC 5280. El estándar surgió originalmente en el año 1988, aunque la última versión vigente, X.509 v3, se aprobó en 2008.

La principal motivación de la definición de este estándar es la implementación de una Infraestructura de Clave Pública (en adelante PKI). Este hecho es fundamental, y es lo que distingue inequívocamente una clave criptográfica de un certificado digital. Las claves definidas por RSA únicamente son secuencias que permiten realizar el cifrado y descifrado de información, sin embargo el estándar X.509 establece parámetros para identificar al propietario del certificado, a su emisor (la autoridad de Certificación), fechas de emisión, caducidad, etc. Lo que nos lleva a pensar que sin este estándar nos resultaría imposible usar los certificados para, por ejemplo, firmar un documento electrónico.

Adicionalmente, este estándar también marca las directivas para la implementación de los mecanismos de validación que permiten a los usuarios de los certificados comprobar su validez en cualquier momento (más información sobre mecanismos de validación en anteriores entradas de este blog). Además, considera los conceptos de validación, rutas de certificación, revocación, etc. Esto nos da a entender que sin la definición de este estándar sería imposible establecer y operar una PKI.

Nos vamos a centrar en la especificación de la estructura y campos de un certificado digital, que se define fundamentalmente en el apartado 4 de la RFC. De forma gráfica, se muestra la estructura del certificado en la siguiente ilustración, diferenciando los campos que han sido incluidos a lo largo de las modificaciones incluidas en las diferentes versiones de X.509:

En la figura se muestra un orden de campos destinado a identificar los cambios en las versiones, sin embargo, estos campos se organizan categóricamente en tres grupos principales, que son los siguientes:

  • tbsCertificate: Este campo contiene la información de emisor, sujeto, y periodo de validez así como información adicional de interés.
  • signatureAlgorithm: Este campo contiene la información para identificar inequívocamente el algoritmo criptográfico que ha empleado la CA para firmar el certificado, además contiene campos opcionales que serán empleados dependiendo del tipo de algoritmo criptográfico empleado.
  • signatureValue: Este campo contiene, como su nombre indica, el contenido de la firma del certificado, este campo es el que asegura mediante la firma de la CA que toda la información contenida en el campo tbsCertificate es legítima. Lo que supone básicamente que implementa la cadena de confianza del certificado (más información sobre cadena de confianza esta entrada anterior dentro de Fundamentos de Certificados Digitales).
  • Extensiones: Las extensiones son un conjunto de campos y parámetros opcionales que se pueden añadir al certificado, aunque no son imprescindibles. Estos puntos se añadieron en la versión 3 de X.509. Repasaremos las de mayor uso e importancia en la presente entrada.

Con esto es todo en esta entrada, en breve una nueva entrada con un detalle completo de los campos fundamentales de tbsCertificate. Muchas gracias por seguirnos, como siempre quedo a la espera de vuestros comentarios.

Comments

  1. Excelente la entrada y el diagrama es bastante ilustrativo. Con esto vamos cerrando el círculo y estoy impaciente por ver más sobre esto. Gracias!

  2. Estimado Alejandro, gracias por seguirnos y por tu valoración. En breve continuaremos con las publicaciones sobre certificados digitales.

    Un saludo