El Online Certificate Status Protocol ( OCSP ) es un protocolo de Internet que se utiliza para obtener el estado de revocación de un certificado digital X.509 . [1] Se describe en RFC 6960 y está en la pista de estándares de Internet . Fue creado como una alternativa a las listas de revocación de certificados (CRL), y aborda específicamente ciertos problemas asociados con el uso de CRL en una infraestructura de clave pública (PKI). [2] Los mensajes comunicados a través de OCSP están codificados en ASN.1 y generalmente se comunican a través de HTTP.. La naturaleza de "solicitud / respuesta" de estos mensajes lleva a que los servidores OCSP se denominen respondedores OCSP .
Algunos navegadores web utilizan OCSP para validar certificados HTTPS .
Comparación con las CRL
- Dado que una respuesta OCSP contiene menos datos que una lista de revocación de certificados (CRL) típica , pone menos carga en la red y los recursos del cliente. [3]
- Dado que una respuesta OCSP tiene menos datos para analizar , las bibliotecas del lado del cliente que la manejan pueden ser menos complejas que las que manejan las CRL. [4]
- OCSP revela al respondedor que un host de red particular usó un certificado particular en un momento particular. OCSP no exige el cifrado, por lo que otras partes pueden interceptar esta información. [1]
Implementación básica de PKI
- Alice y Bob tienen certificados de clave pública emitidos por Carol, la autoridad de certificación (CA).
- Alice desea realizar una transacción con Bob y le envía su certificado de clave pública.
- Bob, preocupado porque la clave privada de Alice puede haber sido comprometida, crea una 'solicitud OCSP' que contiene el número de serie del certificado de Alice y se lo envía a Carol.
- El respondedor OCSP de Carol lee el número de serie del certificado de la solicitud de Bob. El respondedor OCSP usa el número de serie del certificado para buscar el estado de revocación del certificado de Alice. El respondedor OCSP busca en una base de datos de CA que mantiene Carol. En este escenario, la base de datos de CA de Carol es la única ubicación confiable donde se registraría un compromiso con el certificado de Alice.
- El respondedor OCSP de Carol confirma que el certificado de Alice todavía está bien y devuelve una 'respuesta OCSP' firmada y exitosa a Bob.
- Bob verifica criptográficamente la respuesta firmada de Carol. Bob ha almacenado la clave pública de Carol en algún momento antes de esta transacción. Bob usa la clave pública de Carol para verificar la respuesta de Carol.
- Bob completa la transacción con Alice.
Detalles del protocolo
Un respondedor OCSP (un servidor normalmente dirigido por el emisor del certificado) puede devolver una respuesta firmada que significa que el certificado especificado en la solicitud es "bueno", "revocado" o "desconocido". Si no puede procesar la solicitud, puede devolver un código de error.
El formato de solicitud OCSP admite extensiones adicionales. Esto permite una amplia personalización para un esquema PKI particular.
OCSP puede ser vulnerable a ataques de reproducción , [5] donde un intermediario malintencionado captura una respuesta "buena" firmada y la reproduce al cliente en una fecha posterior después de que el certificado sujeto haya sido revocado. OCSP permite incluir un nonce en la solicitud que puede incluirse en la respuesta correspondiente. Debido a la alta carga, la mayoría de los respondedores OCSP no utilizan la extensión nonce para crear una respuesta diferente para cada solicitud, sino que utilizan respuestas preestablecidas con un período de validez de varios días. Por lo tanto, el ataque de reproducción es una amenaza importante para los sistemas de validación.
OCSP puede admitir más de un nivel de CA. Las solicitudes OCSP se pueden encadenar entre los respondedores pares para consultar a la CA emisora apropiada para el certificado sujeto, y los respondedores validan las respuestas de los demás contra la CA raíz utilizando sus propias solicitudes OCSP.
Los servidores de validación de ruta delegada (DPV) pueden solicitar información de revocación a un respondedor OCSP . OCSP, por sí mismo, no realiza ningún DPV de los certificados suministrados.
La clave que firma una respuesta no necesita ser la misma clave que firmó el certificado. El emisor del certificado puede delegar en otra autoridad para que sea el respondedor OCSP. En este caso, el certificado del respondedor (el que se utiliza para firmar la respuesta) debe ser emitido por el emisor del certificado en cuestión, y debe incluir una cierta extensión que lo marque como una autoridad de firma OCSP (más precisamente, un extendido extensión de uso de clave con el OID {iso (1) organización-identificada (3) dod (6) internet (1) seguridad (5) mecanismos (5) pkix (7) keyPurpose (3) ocspSigning (9)})
Preocupaciones sobre la privacidad
La verificación OCSP crea un problema de privacidad para algunos usuarios, ya que requiere que el cliente se comunique con un tercero (aunque sea una parte en la que confíe el proveedor del software del cliente) para confirmar la validez del certificado. El grapado OCSP es una forma de verificar la validez sin revelar el comportamiento de navegación a la CA. [1]
Criticas
La revocación basada en OCSP no es una técnica eficaz para mitigar el compromiso de la clave privada de un servidor HTTPS. Un atacante que ha comprometido la clave privada de un servidor normalmente necesita estar en una posición intermedia en la red para abusar de esa clave privada y hacerse pasar por un servidor. Un atacante en tal posición también suele estar en condiciones de interferir con las consultas OCSP del cliente. Debido a que la mayoría de los clientes ignorarán OCSP silenciosamente si la consulta se agota, OCSP no es un medio confiable para mitigar el compromiso de la clave del servidor HTTPS. [6]
La extensión MustStaple TLS en un certificado puede requerir que el certificado sea verificado por una respuesta OCSP grapada , mitigando este problema. [3] OCSP también sigue siendo una defensa válida contra situaciones en las que el atacante no es un "intermediario" (firma de código o certificados emitidos por error).
El protocolo OCSP asume que el solicitante tiene acceso a la red para conectarse a un respondedor OCSP apropiado. Es posible que algunos solicitantes no puedan conectarse porque su red local prohíbe el acceso directo a Internet (una práctica común para los nodos internos en un centro de datos). Obligar a los servidores internos a conectarse a Internet para utilizar OCSP contribuye a la tendencia a la desperimetría . El protocolo de grapado OCSP es una alternativa que permite a los servidores almacenar en caché las respuestas OCSP, lo que elimina la necesidad de que el solicitante se comunique directamente con el respondedor OCSP.
Soporte del navegador
Existe un amplio soporte para OCSP entre la mayoría de los principales navegadores:
- Internet Explorer se basa en CryptoAPI de Windows y, por lo tanto, a partir de la versión 7 en Windows Vista (no XP [7] ) admite la comprobación OCSP. [8]
- Todas las versiones de Mozilla Firefox admiten la comprobación OCSP. Firefox 3 habilita la comprobación OCSP de forma predeterminada. [9]
- Safari en macOS admite la comprobación OCSP. Está habilitado de forma predeterminada a partir de Mac OS X 10.7 (Lion). Antes de eso, debe activarse manualmente en las preferencias de Llavero. [10]
- Las versiones de Opera desde 8.0 [11] [12] hasta la versión actual admiten la verificación OCSP.
Sin embargo, Google Chrome es un caso atípico. Google desactivó las comprobaciones OCSP de forma predeterminada en 2012, citando problemas de latencia y privacidad [13] y, en su lugar, utiliza su propio mecanismo de actualización para enviar certificados revocados al navegador. [14]
Implementaciones
Existen varias implementaciones de OCSP patentadas y de código abierto , incluidos servidores y bibliotecas con todas las funciones para crear aplicaciones personalizadas. La compatibilidad con el cliente OCSP está integrada en muchos sistemas operativos , navegadores web y otro software de red debido a la popularidad de HTTPS y la World Wide Web .
Servidor
Fuente abierta
- Respuesta de Boulder, [15] CA y OCSP desarrollado y utilizado por Let's Encrypt ( Go )
- DogTag, [16] Autoridad certificadora de código abierto CA, CRL y respondedor OCSP.
- Respondedor EJBCA , [17] CA y OCSP ( Java )
- Respondedor XiPKI, [18] CA y OCSP. Con soporte de RFC 6960 y SHA3 ( Java )
Propiedad
- Servicios de certificados [19] CA y respuesta OCSP incluidos con Windows Server
Biblioteca
Fuente abierta
- cfssl [20] (Ir)
- OpenSSL [21] ( C )
- wolfSSL [22] ( C )
Cliente
Ver también
- Lista de revocación de certificados
- Autoridad certificada
- Protocolo de validación de certificados basado en servidor
- Grapado OCSP
- Transparencia del certificado
Referencias
- ↑ a b c A., Jesin (12 de junio de 2014). "Cómo configurar el grapado OCSP en Apache y Nginx" . Tutoriales comunitarios . Océano Digital, Inc . Consultado el 2 de marzo de 2015 .
- ^ "Grapado OCSP" . Soporte GlobalSign . GMO GlobalSign Inc. 1 de agosto de 2014 . Consultado el 2 de marzo de 2015 .
- ^ a b Gibson, Steve. "Conciencia de revocación de certificados de seguridad: el caso de" OCSP Must-Staple " " . Gibson Research Corporation . Consultado el 2 de marzo de 2015 .
- ^ Keeler, David (29 de julio de 2013). "Grapado OCSP en Firefox" . Blog de seguridad de Mozilla . Fundación Mozilla . Consultado el 2 de marzo de 2015 .
- ^ RFC 6960, sección 5, Consideraciones de seguridad
- ^ "No, no habilite la verificación de revocación" . 19 de abril de 2014 . Consultado el 24 de abril de 2014 .
- ^ "Comprobación del estado y revocación del certificado de Windows XP" . Microsoft . Consultado el 9 de mayo de 2016 .
- ^ "Novedades de la revocación de certificados en Windows Vista y Windows Server 2008" . Microsoft . Consultado el 9 de mayo de 2016 .
- ^ "Mozilla Bug 110161 - Habilitar OCSP de forma predeterminada" . Mozilla . 1 de octubre de 2007 . Consultado el 18 de julio de 2010 .
- ^ Wisniewski, Chester (26 de marzo de 2011). "Los usuarios de Apple se marcharon para defenderse de los ataques de certificados" . Sophos . Consultado el 26 de marzo de 2011 .
- ^ Pettersen, Yngve Nysæter (9 de noviembre de 2006). "Presentación de certificados de validación extendida" . Opera Software . Archivado desde el original el 10 de febrero de 2010 . Consultado el 8 de enero de 2010 .
- ^ Pettersen, Yngve Nysæter (3 de julio de 2008). "Boletín de Rootstore" . Opera Software . Consultado el 8 de enero de 2010 .
- ^ Langley, Adam (5 de febrero de 2012). "Comprobación de revocación y CRL de Chrome" . Archivado desde el original el 12 de febrero de 2012 . Consultado el 30 de enero de 2015 .
- ^ "Chrome hace mejor la revocación de certificados" , 21 de abril de 2014, Larry Seltzer, ZDNet
- ^ "Boulder - un ACME CA" . GitHub . 16 de marzo de 2018 . Consultado el 17 de marzo de 2018 .
- ^ "Sistema de Certificado Dogtag" . Consultado el 12 de agosto de 2019 .
- ^ "EJBCA - Autoridad de certificación PKI de código abierto" . PrimeKey. 2 de febrero de 2018 . Consultado el 17 de marzo de 2018 .
- ^ "XiPKI" . GitHub . 13 de marzo de 2018 . Consultado el 17 de marzo de 2018 .
- ^ "Servicios de certificados (Windows)" . Centro de desarrollo de Windows . Microsoft . 2018 . Consultado el 17 de marzo de 2018 .
- ^ "Paquete ocsp" . cfssl GoDoc . 25 de febrero de 2018 . Consultado el 17 de marzo de 2018 .
- ^ "OCSP_response_status" . páginas de manual maestras . OpenSSL . 2017 . Consultado el 17 de marzo de 2018 .
- ^ "OCSP en wolfSSL Embedded SSL - wolfSSL" . 2014-01-27 . Consultado el 25 de enero de 2019 .
enlaces externos
- Infraestructura de clave pública: protocolos operativos en Curlie
- RFC 2560, X.509 Protocolo de estado de certificado en línea de infraestructura de clave pública de Internet - OCSP
- RFC 4806, Extensiones del Protocolo de estado de certificado en línea (OCSP) para IKEv2
- RFC 5019, el perfil de protocolo ligero de estado de certificados en línea (OCSP) para entornos de gran volumen
- RFC 6960, X.509 Protocolo de estado de certificado en línea de infraestructura de clave pública de Internet - OCSP
- Processor.com, artículo de abril de 2009 sobre el protocolo de estado de certificados en línea