En criptografía , una lista de revocación de certificados ( CRL ) es "una lista de certificados digitales que han sido revocados por la autoridad de certificación (CA) emisora antes de su fecha de vencimiento programada y ya no se debe confiar en ellos". [1]
Las CA de confianza pública en la PKI web están obligadas (incluso por el foro CA/Navegador [2] ) a emitir CRL para sus certificados, y lo hacen en gran medida. [3]
Los navegadores y otras partes que confían en los certificados pueden utilizar listas de revocación de certificados (CRL) o tecnologías de revocación de certificados alternativas (como OCSP ) [4] [5] o CRLSets (un conjunto de datos derivado de las CRL [6] ) para verificar el estado de revocación de certificados. Tenga en cuenta que OCSP está cayendo en desuso debido a problemas de privacidad [7] y rendimiento [8] .
Los suscriptores y otras partes también pueden utilizar ARI. [9]
Hay dos estados diferentes de revocación definidos en RFC 5280:
Las razones para revocar, retener o anular la lista de un certificado según RFC 5280 [10] son:
unspecified
(0)keyCompromise
(1)cACompromise
(2)affiliationChanged
(3)superseded
(4)cessationOfOperation
(5)certificateHold
(6)removeFromCRL
(8)privilegeWithdrawn
(9)aACompromise
(10)Tenga en cuenta que el valor 7 no se utiliza.
Una CRL se genera y publica periódicamente, a menudo en un intervalo definido. Una CRL también puede publicarse inmediatamente después de que se haya revocado un certificado. Una CRL es emitida por un emisor de CRL, que normalmente es la CA que también emitió los certificados correspondientes, pero también podría ser otra autoridad de confianza. Todas las CRL tienen un período de validez durante el cual son válidas; este período de tiempo suele ser de 24 horas o menos. Durante el período de validez de una CRL, una aplicación habilitada para PKI puede consultarla para verificar un certificado antes de su uso.
Para evitar ataques de suplantación de identidad o de denegación de servicio , las CRL suelen llevar una firma digital asociada a la CA que las publica. Para validar una CRL específica antes de confiar en ella, se necesita el certificado de la CA correspondiente.
Los certificados para los cuales se debe mantener una CRL suelen ser certificados de clave pública / X.509 , ya que este formato es el que suelen utilizar los esquemas PKI.
Las fechas de vencimiento no sustituyen a una CRL. Si bien todos los certificados vencidos se consideran inválidos, no todos los certificados vigentes deberían ser válidos. Las CRL u otras técnicas de validación de certificados son una parte necesaria de cualquier PKI que funcione correctamente, ya que es de esperar que se produzcan errores en la verificación de certificados y la gestión de claves en las operaciones del mundo real.
En un ejemplo notable, se emitió por error un certificado para Microsoft a una persona desconocida, que se había hecho pasar por Microsoft ante la CA contratada para mantener el sistema de "certificados de editor" de ActiveX ( VeriSign ). [11] Microsoft vio la necesidad de aplicar un parche a su subsistema de criptografía para que comprobara el estado de los certificados antes de confiar en ellos. Como solución a corto plazo, se emitió un parche para el software de Microsoft pertinente (sobre todo Windows) que enumeraba específicamente los dos certificados en cuestión como "revocados". [12]
Las mejores prácticas exigen que, independientemente de cómo se mantenga el estado de un certificado, se compruebe siempre que se desee confiar en él. De lo contrario, un certificado revocado puede aceptarse incorrectamente como válido. Esto significa que, para utilizar una PKI de forma eficaz, se debe tener acceso a las listas de revocación de certificados (CRL) actuales. Este requisito de validación en línea anula una de las principales ventajas originales de la PKI sobre los protocolos de criptografía simétrica , a saber, que el certificado es "autoautenticable". Los sistemas simétricos como Kerberos también dependen de la existencia de servicios en línea (un centro de distribución de claves en el caso de Kerberos).
La existencia de una CRL implica la necesidad de que alguien (o alguna organización) haga cumplir la política y revoque los certificados que se consideren contrarios a la política operativa. Si se revoca un certificado por error, pueden surgir problemas importantes. Como la autoridad de certificación tiene la tarea de hacer cumplir la política operativa para la emisión de certificados, normalmente es responsable de determinar si es adecuada la revocación y cuándo, interpretando la política operativa.
La necesidad de consultar una CRL (u otro servicio de estado de certificado) antes de aceptar un certificado plantea un posible ataque de denegación de servicio contra la PKI. Si la aceptación de un certificado falla en ausencia de una CRL válida disponible, no se pueden realizar operaciones que dependan de la aceptación del certificado. Este problema también existe en los sistemas Kerberos, donde la imposibilidad de recuperar un token de autenticación actual impedirá el acceso al sistema.
Una alternativa al uso de CRL es el protocolo de validación de certificados conocido como Protocolo de estado de certificados en línea (OCSP). El OCSP tiene la principal ventaja de requerir menos ancho de banda de red, lo que permite realizar verificaciones de estado en tiempo real y casi en tiempo real para operaciones de gran volumen o alto valor.
A partir de Firefox 28, Mozilla ha anunciado que dejará de utilizar CRL en favor de OCSP. [4]
Los archivos CRL pueden crecer considerablemente con el tiempo; por ejemplo, en el gobierno de los EE. UU., para ciertas instituciones pueden alcanzar varios megabytes. Por lo tanto, se han diseñado CRL incrementales [13], a veces denominadas "CRL delta". Sin embargo, solo unos pocos clientes las implementan. [14]
Una lista de revocación de autoridad (ARL) es una forma de CRL que contiene certificados revocados emitidos a autoridades de certificación , a diferencia de las CRL que contienen certificados de entidad final revocados. [15] [16]
En lugar de, o como complemento a, la comprobación con una CRL periódica, puede ser necesario obtener información oportuna sobre el estado de revocación de los certificados. ... OCSP puede utilizarse para satisfacer algunos de los requisitos operativos de proporcionar información de revocación más oportuna de la que es posible con las CRL y también puede utilizarse para obtener información de estado adicional.