Online Certificate Status Protocol

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Online Certificate Status Protocol (OCSP) es un método para determinar el estado de revocación de un certificado digital X.509 usando otros medios que no sean el uso de CRL (Listas de Revocación de Certificados). Este protocolo se describe en el RFC 2560 y está en el registro de estándares de Internet.

Los mensajes OCSP se codifican en ASN.1 y habitualmente se transmiten sobre el protocolo HTTP. La naturaleza de las peticiones y respuestas de OCSP hace que a los servidores OCSP se les conozca como "OCSP responders".

Ventajas sobre las CRL (Certificate Revocation List)[editar]

OCSP fue creado para solventar ciertas deficiencias de las CRL. Cuando se despliega una PKI (Infraestructura de Clave Pública), es preferible la validación de los certificados mediante OCSP sobre el uso de CRL por varias razones:

  • OCSP puede proporcionar una información más adecuada y reciente del estado de revocación de un certificado.
  • OCSP elimina la necesidad de que los clientes tengan que obtener y procesar las CRL, ahorrando de este modo tráfico de red y procesado por parte del cliente.
  • El contenido de las CRL puede considerarse información sensible, análogamente a la lista de morosos de un banco.
  • Un "OCSP responder" puede implementar mecanismos de tarificación para pasarle el coste de la validación de las transacciones al vendedor, más bien que al cliente.
  • OCSP soporta el encadenamiento de confianza de las peticiones OCSP entre los "responders". Esto permite que los clientes se comuniquen con un "responder" de confianza para lanzar una petición a una autoridad de certificación alternativa dentro de la misma PKI.
  • Una consulta sobre el estado de un certificado sobre una CRL, debe recorrerla completa secuencialmente para decir si es válido o no. Un "OCSP responder" en el fondo, usa un motor de base de datos para consultar el estado del certificado solicitado, con todas las ventajas y estructura para facilitar las consultas. Esto se manifiesta aún más cuando el tamaño de la CRL es muy grande.

Comparación de eficiencia CRL versus OCSP[editar]

Una diferencia importante entre CRL y OCSP, es que una CRL puede ser almacenada temporalmente para hacer consultas locales, en cambio para usar OCSP se requiere de conexión con el "OCSP responder". Si bien la CRL está disponible sin conexión, mientras más tiempo esté sin actualizarse, se hace menos confiable la información que nos brinde, porque pueden haberse revocado algunos certificados entre actualizaciones.

Esto da lugar a una diferencia en la eficiencia del uso del ancho de banda para efectos exclusivos de consultas por estado de certificados.[1]

Con respecto al ancho de banda y al tiempo de validación[editar]

Si se considera que se usa una CRL almacenada por un tiempo para ser consultada, versus el ancho de banda que se usa por cada consulta a través de OCSP, existe una diferencia de uso de ancho de banda que crece mientras aumenta el número de validaciones por día que debe responder la Autoridad Certificadora. Con CRL, el ancho de banda usado sigue una curva logarítmica, por el hecho de que aunque aumenten las consultas diarias, estas se hacen a la CRL almacenada. En cambio, con OCSP, si las consultas aumentan necesariamente aumenta el ancho de banda usado, por lo que la curva resultante es exponencial. Debido a esto, el tiempo de validación, a pesar de seguir la misma curva, al aumentar las validaciones por día, usando CRL, el tiempo "límite" es menor al que se obtiene si se usa OCSP.

Gráficos de OCSP[editar]

El primer gráfico muestra la velocidad de cada validación versus Validaciones/día, el segundo el ancho de Banda usado versus Validaciones/día


Gráficos de CRL[editar]

El gráfico muestra la velocidad de cada validación versus Validaciones/día, el segundo el ancho de Banda usado versus Validaciones/día

Con respecto al número de usuarios[editar]

Si se aumenta el número de usuarios, al igual que en el caso anterior, en algún punto CRL supera a OCSP en cuanto al ancho de banda necesario para soportar la cantidad de consultas que se hacen. Como se muestra en el gráfico siguiente, el ancho de banda necesario para satisfacer la demanda de 60.000 usuarios consultando, supera fácilmente el necesario usando CRL. Incluso con 30.000 usuarios, se ve superado en consumo, al usar CRL.


Cabe destacar que dentro de unos años, 30.000 usuarios o incluso 60.000 usuarios por Autoridad Certificadora, consultando estados de certificados, no debe de ser raro, Así que no es despreciable del todo la idea de usar CRL como política de validación de estado, sobre todo si los usuarios se encuentran en algún lugar sin disponibilidad de conexión.

Implementación básica de una PKI[editar]

  • Juan y Pedro tienen certificados de clave pública emitidos por Iván.
  • Juan desea efectuar una transacción con Pedro y le envía su certificado de clave pública.
  • Pedro, consciente de que la clave privada de Juan pudiera haber sido comprometida, crea una petición OCSP que contiene una huella de la llave pública de Juan y se la manda a Iván, que es la autoridad de validación (VA).
  • El "OCSP responder" de Iván busca el estado de revocación del certificado de Juan (usando la huella que creó Pedro como clave) en su propia base de datos de CA. Si la clave privada de Juan ha sido comprometida, esta será la única localización de confianza donde ese hecho será registrado.
  • El "OCSP responder" de Iván confirma que el certificado de Juan es correcto, y devuelve una respuesta OCSP de éxito firmada a Pedro para comunicárselo.
  • Pedro verifica criptográficamente la respuesta firmada (Pedro tiene la clave pública de Iván a mano, puesto que Iván es un "responder" de confianza) y se asegura de que dicha respuesta fue creada recientemente.
  • Pedro completa la transacción con Juan.

Detalles del protocolo[editar]

El protocolo OCSP está especificado en el RFC 2560. En ella se definen las características que debe cumplir un servidor OCSP, así como el formato tanto de la petición como de la respuesta. Ambas estructuras de datos se representan según la sintaxis ASN.1.

Una petición de OCSP básicamente está compuesta por la versión del protocolo y los identificadores de los certificados que se quiere que sean validados. Este identificador está formado por el número de serie, el hash del Distinguished Name (DN) del emisor del certificado y el hash de la clave pública del mismo. En una petición se pueden solicitar la consulta del estado de varios certificados, incluso pertenecientes a diferentes CA. La firma de la petición es opcional y depende de lo que decida la Autoridad de Validación OCSP.

Un "responder" OCSP puede devolver una respuesta firmada, lo cual significaría que el certificado indicado en la petición es "bueno" (good), "revocado" (revoked) o "desconocido" (unknown). Estas respuestas serán para cada uno de los certificados de los que se ha solicitado la consulta. También puede devolver un código de error, en cuyo caso la respuesta no tendría que estar firmada.

Desafortunadamente, el borrador de la primera versión de OCSP (OCSP v.1) es ambigua en el sentido de "desconocido". Podría significar que el sujeto que figura del certificado es desconocido, o que lo que es desconocido es el estado de revocación del certificado.

El formato de petición OCSP soporta extensiones adicionales. Esto permite una adaptación y configuración más extensas a un esquema de PKI en concreto.

Implementaciones[editar]

Se pueden encontrar implementaciones del protocolo OCSP en:

Referencias[editar]

  1. Estudio comparativo de políticas de revocación de certificados: OCSP vs. Overissued-CRL

Enlaces externos[editar]

  • OpenValidation tiene una visión detallada del mercado, información de interoperabilidad y recursos de desarrollo relacionados con la validación on-line.
  • Safelayer Demo Suite, servidor OCSP de demostración.
  • ADSS OCSP Server, Línea de Certificado de Verificación de estado (OCSP).