Conozca la diferencia entre firma digital y certificado digital

SSL/TLS Certificados

La criptografía de clave pública, también llamada cifrado asimétrico, se basa en cálculos que son casi imposibles de descifrar con los ordenadores más rápidos de hoy en día. Pero sigue habiendo un problema cuando se utiliza el cifrado con claves privadas y públicas. Se supone que las claves públicas son abiertas, lo que significa que todo el mundo tiene acceso a ellas. Nada impide que un actor malintencionado reclame una clave pública que no es suya. Esto crea un problema de integridad que puede resolverse utilizando una infraestructura de clave pública (PKI).

Con la PKI, los usuarios pueden intercambiar información de forma segura y privada en una red insegura como Internet. Para lograrlo, la PKI utiliza dos tecnologías similares: las firmas digitales y los certificados digitales; ambas son componentes esenciales del modelo de confianza de la autoridad de certificación.

Ejemplo de firma digital

Veamos un escenario de ejemplo para ayudar a comprender el flujo general del proceso al cifrar un mensaje utilizando firmas digitales y certificados digitales.

Permítanme volver a presentar a nuestros actores comunes llamados Alice y Bob.

  • La creación de una firma digital comienza cuando Alicia utiliza su clave privada para cifrar un mensaje.
  • El resultado, también conocido como valor hash, se adjunta al mensaje y se envía a Bob.
  • Cuando Bob recibe el mensaje, primero lo descifra con la clave pública que Alice le ha proporcionado, demostrando así que procede de Alice.
  • A continuación, Bob pasa el mensaje a la misma función hash unidireccional y lo compara con el valor hash adjunto.
  • Si los valores hash son iguales, el mensaje no ha sido alterado.
  • Bob necesita demostrar la autenticidad de su clave pública a Alice. Para ello, debe obtener un certificado digital registrando su clave pública y la información sobre sí mismo en una autoridad de certificación. Bob recibe un certificado que contiene su clave pública y la información que ha proporcionado. A continuación, la CA utiliza su clave privada para firmar digitalmente el certificado de Bob y adjunta la clave pública de la CA al nuevo certificado de Bob.
  • Bob muestra a Alice su nuevo certificado digital. Ella puede demostrar que la clave pública de Bob es válida descifrando y validando la firma mediante la clave pública de la autoridad de certificación.
  • A continuación, Alice pasa el certificado de Bob a la misma función hash unidireccional utilizada cuando se creó el certificado. La clave pública de Bob es auténtica si el valor hash coincide con el proporcionado en el certificado.
  • Si los valores hash no coinciden, entonces algo en el certificado de Bob ha cambiado desde que la CA lo firmó por última vez. Por lo tanto Alice no puede confiar en la información del certificado, incluyendo la clave pública de Bob.

 

Bob sabe ahora si puede confiar en que Alice ha firmado digitalmente el mensaje y verificado si ha sido modificado.

Ejemplo de certificados digitales

Los certificados X.509 PKI distribuyen de forma segura las claves públicas para garantizar que éstas pertenecen a propietarios legítimos y no han sido falsificadas por actores malintencionados. Los certificados X.509 son creados y firmados por una autoridad de certificación de confianza.

Alice y Bob están de vuelta, y esta vez Alice quiere confirmar la autenticidad del certificado firmado de Bob.

  • Bob necesita demostrar la autenticidad de su clave pública a Alice. Para ello, debe obtener un certificado digital registrando su clave pública y la información sobre sí mismo en una autoridad de certificación. Bob recibe un certificado que contiene su clave pública y la información que ha proporcionado. A continuación, la CA utiliza su clave privada para firmar digitalmente el certificado de Bob y adjunta la clave pública de la CA al nuevo certificado de Bob.
  • Bob muestra a Alice su nuevo certificado digital. Ella puede demostrar que la clave pública de Bob es válida descifrando y validando la firma mediante la clave pública de la autoridad de certificación.
  • A continuación, Alice pasa el certificado de Bob a la misma función hash unidireccional utilizada cuando se creó el certificado. La clave pública de Bob es auténtica si el valor hash coincide con el proporcionado en el certificado.
  • Si los valores hash no coinciden, entonces algo en el certificado de Bob ha cambiado desde que la CA lo firmó por última vez. Por lo tanto Alice no puede confiar en la información del certificado, incluyendo la clave pública de Bob.

Tipos de autoridades

La autoridad de registro (RA) es un servidor que espera a que los clientes envíen sus solicitudes de firma de certificado (CSR). Normalmente, la creación de un certificado de clave pública la inicia el sujeto enviando una solicitud a la RA. El sujeto genera un par de claves, que se envía junto con una solicitud de certificado a la RA.

Una vez recibidas, validadas y firmadas las solicitudes, la autoridad de certificación puede crear un certificado a partir del par de claves enviado. A continuación, la RA valida y firma la CSR, que se envía a una autoridad de certificación.

Si el par de claves generado por el sujeto no es válido o la solicitud no contiene la información necesaria para crear un certificado válido, la solicitud no se envía a una autoridad de certificación. De este modo se reduce la carga de las autoridades de certificación.

Una o varias entidades confían a las autoridades de certificación la responsabilidad de crear y firmar certificados de clave pública. Opcionalmente, una autoridad de certificación puede emitir las claves del sujeto o hacer que éste las proporcione a través de una Autoridad de Registro.

Las autoridades de certificación se consideran de confianza porque tienen un certificado CA firmado por otra CA de confianza; también pueden ser responsables de la revocación de certificados.

La CA gestiona esta tarea manteniendo una estructura de datos denominada lista de revocación de certificados (CRL). Una CRL contiene identificadores para todos los certificados revocados emitidos por la misma CA. La autenticidad de la propia CRL se demuestra firmándola digitalmente de forma similar a un certificado de clave pública.

Una autoridad de validación puede verificar un certificado descargando la CRL de una CA, verificando la firma y, a continuación, comprobando si el certificado se encuentra en la CRL. Si se encuentra en la CRL, el certificado no es válido. En caso contrario, se considera un certificado válido.

Otra forma de gestionar la revocación de certificados es utilizar el Protocolo de Estado de Certificados en Línea (OSCP). El protocolo resuelve el problema de que una CRL crece por cada certificado revocado. Cada vez que es necesario verificar un certificado, el cliente debe descargar la CRL completa. En cambio, OSCP permite a un cliente consultar si un certificado es válido en lugar de descargar una CRL. El informe establece que cada respuesta a un cliente debe estar firmada para que éste pueda verificar su autenticidad.

Tipos de certificados X.509

X.509 es un protocolo ampliamente aceptado que regula el formato de un certificado digital. Se han definido tres versiones de la norma x509:

  • La versión 1 de X.509 se publicó por primera vez en 1988 como parte de la norma X.500 de la UIT sobre servicios de directorio.
  • La versión 2 de X.509 añadió dos nuevos campos al formato en 1993.
  • X. 509 versión 3 define el formato de las extensiones de certificado utilizadas para almacenar información adicional sobre el titular del certificado y regular el uso de los certificados.

Los certificados X.509 suelen adjuntar una firma digital con una clave pública, un periodo de validez, un emisor, un asunto y un conjunto de extensiones. Las extensiones describen características adicionales del certificado, como atributos adicionales o restricciones de uso.

Los certificados X.509 deben cumplir los tres requisitos siguientes:

1. Existe una ruta de verificación desde el certificado del servidor hasta un certificado raíz de confianza;

2. Los atributos del certificado en la ruta de verificación cumplen criterios específicos para dicha verificación;

3. El certificado no figura en el contenido de ninguna CRL actual ni en la respuesta de una solicitud OCSP.

 

X.509 PKI consta de cuatro componentes diferentes: 

  1. Un servidor de entidad final que solicita un certificado digital firmado
  2. Una autoridad de certificación raíz que puede emitir y verificar certificados digitales
  3. Una autoridad de registro que sea el intermediario, y
  4. El usuario final que desea comprobar el certificado de clave pública de un servidor.

 

Los certificados raíz, a menudo denominados raíz de confianza, están en el origen de las cadenas de confianza en la PKI basada en certificados X.509. Las CA raíz pueden emitir y firmar certificados de confianza, externamente, y designarlos con funciones y propósitos específicos. Pero, como es imposible confirmar la integridad de un certificado autofirmado, se necesita una jerarquía de certificados auditable.

Los certificados raíz X.509 pueden clasificarse en tres tipos diferentes:

  1. Certificados autoemitidos - Estos certificados son certificados de CA en los que el emisor y el sujeto tienen los mismos valores.
  2. Certificados autofirmados - Estos certificados son un tipo diferente de certificado CA autoemitido en el que los objetos emisor y sujeto tienen los mismos valores. La diferencia entre el certificado autofirmado y el autoemitido es que el certificado autofirmado se firma utilizando la clave privada correspondiente. Este tipo de certificado puede ser utilizado por la autoridad de certificación para hacer públicas sus claves públicas.
  3. Certificados cruzados - Se trata de un certificado de CA con la propiedad de que el emisor y el sujeto son autoridades de certificación diferentes. Se utilizan para confirmar y verificar la existencia de la CA sujeto.

 

Los certificados de entidad final son certificados de clave pública emitidos por una autoridad de certificación. Estos certificados tienen la propiedad de que su clave privada correspondiente no puede utilizarse para firmar otros certificados de clave pública.

Los certificados de entidad final de clave pública se utilizan para verificar que sus correspondientes claves públicas no han sido falsificadas. Aunque todos los certificados emitidos por una CA son de confianza hereditaria, la CA raíz no emite certificados de entidad final directamente. Por estas razones, la CA raíz crea una capa protectora de certificados subordinados.

Los certificados subordinados viven en línea, entre el certificado raíz y los certificados de entidad final, y se vinculan en cadena a los certificados raíz. Esto permite a los observadores públicos validar los certificados de entidad final, incluso cuando el certificado raíz está fuera de línea en un módulo de seguridad de Hardware .

Siempre que estén vinculadas a una CA raíz de confianza, es posible verificar toda la cadena de confianza, desde la raíz hasta el certificado de entidad final. Puede haber más de una capa de CA subordinadas. Los certificados que se encuentran entre los certificados subordinados y los certificados de entidad final suelen denominarse certificados intermedios.

Los certificados intermedios sirven como eslabones maestros de las cadenas de confianza. Sólo pueden realizar tareas autorizadas por la CA raíz. En las jerarquías públicas, una CA intermedia sólo está autorizada a emitir certificadosSSL , mientras que otra sólo emite certificados S/MIME.

Otro escenario habitual es autorizar a distintas CA intermedias a emitir certificados para cada departamento o ubicación de una organización. Además, podría tener una para certificar claves ECC y otra diferente para claves RSA.

La PKI también necesita un directorio para emitir, almacenar, revocar y gestionar certificados digitales X.509.

Gestión de certificados digitales

Si desea obtener más información sobre la gestión de certificados digitales y las mejores prácticas de PKI, consulte estos recursos adicionales: