¿Se puede confiar en una CRL incrustada?

2

La incorporación de CRL en un documento firmado permitirá validar la firma a largo plazo, al proporcionar una instantánea del estado del firmante en el momento en que se firmó el documento. Me pregunto si estas CRL incrustadas pueden ser confiables desde:

  1. Algunas PKI permitirán la emisión de múltiples CRL pequeñas. Incrustar una de estas CRL producirá documentos perfectamente válidos, incluso si la CRL incrustada no es en la que finalmente aparecerá el certificado. Desde la perspectiva del cliente, no hay forma de saber si una PKI utiliza múltiples CRL pequeñas o una única donde aparecen todos los certificados.
  2. El estado del firmante en el momento de la firma puede cambiar post-signature . Vamos a definir: T como el momento en que se realizó una firma válida y se incrustó una CRL correspondiente. T + 1 como el momento en que se revocó el certificado. T-1 la hora establecida como la fecha de revocación real (es decir, la fecha de compromiso en el pasado, antes de que se hiciera la firma). De T a T + 1 , la firma debe ser válida. Después de T + 1 , la firma debe considerarse inválida ya que la clave se vio comprometida en el momento T-1 . En esta situación, no podemos confiar en la CRL integrada, ya que siempre mostrará la firma como válida. Por otro lado, la verificación en línea solo se puede utilizar hasta el vencimiento del certificado. Luego solo nos queda el CRL incorporado, que sabemos que falta algunos bits importantes.

En este sentido, ¿podemos preferir las CRL integradas a las en línea?

    
pregunta Mathieu Fortin 16.06.2015 - 20:15
fuente

2 respuestas

3

Una CRL tiene valor, y es aceptable, en virtud de estar firmada . Dado que la CRL está firmada, su obtención no tiene ninguna importancia en cuanto a su aceptabilidad. Ese es el punto de los certificados y CRL: pueden distribuirse a través de redes arbitrarias, protegidas o no, incluso HTTP simple, correo electrónico, transportistas avia ... no importa.

A la inversa, que la CRL está "en línea" no lo hace mejor; Aún tiene que verificar la firma, las fechas, etc.

Por lo tanto, la CRL (o los certificados, o las respuestas de OCSP) pueden integrarse perfectamente, transmitirse junto con los datos que califican, o lo que sea. Por ejemplo, un objeto CMS (PKCS # 7) SignedData contiene campos llamados certificates y crls precisamente para incrustar certificados y CRL (y respuestas OCSP) que los receptores de tal objeto pueden encontrar útiles para fines de validación. De manera similar, cuando un servidor SSL / TLS envía su certificado, también envía algunos certificados adicionales (una "cadena") que el cliente puede usar (en su tiempo libre) para validar el certificado del servidor.

Cuando una CA divide la CRL en múltiples sub-CRL, el alcance de cada CRL se indica explícitamente: un certificado está en el alcance de una CRL si el certificado contiene una extensión (crítica) CRL Distribution Points con un "Punto de distribución "que coincide con la extensión Issuing Distribution Point en la CRL. Consulte RFC 5280 , sección 6.3.3, paso (b). (2). (I ). Por lo tanto, esta división de CRL no es un problema.

OCSP encarna una división aún más extrema. OCSP es tanto un formato para objetos firmados (las "respuestas de OCSP") como un protocolo de comunicación para obtener una respuesta de OCSP de un respondedor en línea. Cada respuesta de OCSP es funcionalmente equivalente a una CRL que habla de un solo certificado. Por lo tanto, esto es como la CRL más dividida que pueda imaginar y, sin embargo, no crea ninguna información ambigua porque cada respuesta de OCSP designa explícitamente de qué certificado se está hablando.

Por lo tanto, que una CRL esté dividida o no no induce ninguna debilidad; y obtener una CRL nueva de la CA tampoco solucionaría nada, ya que el proceso de descarga no está protegido de todos modos.

En cuanto a su segunda pregunta: de hecho, el estado de revocación es, por definición, una propiedad transitoria. Por un lado, que el certificado del firmante no fue revocado en algún momento en el pasado (esa es la información proporcionada por un antiguo CRL) no garantiza de ninguna manera que el certificado aún no se haya revocado, y, en particular, que la clave privada no fue comprometido en el tiempo medio. Por otro lado, las CRL recientes no hablan de certificados caducados (y ese es el punto de caducidad de los certificados: para evitar que las CRL crezcan para siempre).

La salida de este enigma es marcas de tiempo . Con una marca de tiempo, de alguna manera puede "congelar" un objeto en un momento en el tiempo. La idea es que, en la fecha T , tome el objeto firmado, junto con todos los certificados y CRL que se pueden usar para validar la firma en esa fecha. Pones todo esto en algún formato de archivo, luego obtienes una marca de tiempo en general. En una fecha posterior T ', validará la marca de tiempo; Si la marca de tiempo es válida (en la fecha T '), sabrá que todos los contenidos del archivo ya existían en la fecha T , y luego puede proceder a validar la firma. y use los certificados y la CRL como si la fecha actual aún fuera T . El concepto es que SI hubiera hecho la validación en la fecha T , ENTONCES aún lo recordaría y actuaría en consecuencia; con la marca de tiempo, sabe que en la fecha T todos los certificados y CRL existían tal como están y, por lo tanto, podría haber hecho esa validación.

Hay muchas sutilezas en ese proceso, por lo que se han definido algunos estándares para admitirlo correctamente. Busque CAdES (y posiblemente sus hermanos XAdES y PAdES, para XML-DSig y PDF firmado, respectivamente).

    
respondido por el Thomas Pornin 16.06.2015 - 21:10
fuente
1

Creo que el nombre general para esto es Grapado de CRL , lo que podría ser un término de búsqueda de Google útil para encontrar su respuesta. Aquí hay una excelente pregunta de security.SE que explica el Grapado CRL.

Algunas reflexiones sobre tu pregunta:

  1. Incluso si una CA está configurada para publicar varias CRL pequeñas, cada certificado incluye una extensión que apunta al archivo CRL en el que se revocará. Por ejemplo, el certificado para *.stackexchange.com incluye esta extensión:

    [1]CRL Distribution Point
    Distribution Point Name:
      Full Name:
           URL=http://crl.globalsign.com/gs/gsorganizationvalsha2g2.crl
    

    Desde el nombre del archivo, supongo que este es el segundo archivo de CRL en un conjunto de CRL pequeñas (ish). Cuando una aplicación cliente está verificando una CRL grapada, podría verificar que el nombre del archivo coincida con el CRL Distribution Point en el certificado.

  2. Correcto. Ha identificado un inconveniente importante en el grapado CRL. No hay solución para esto.

Nadie ha afirmado que el grapado CRL fuera más seguro que los cheques en línea, no lo es. Lo que ofrece es velocidad ya que no se requieren cheques en línea. Como señala, muchos proveedores de software están dispuestos a hacer esta compensación de velocidad a través de la seguridad (y no puedo culparlos, ya que algunas CA pueden demorar unos segundos en responder a una solicitud de OCSP, y / o los archivos CRL publicados son días antiguo).

Por esta y otras razones, la industria se está alejando (lentamente) de las CRL hacia el Protocolo de estado de certificado en línea (OCSP) y otras tecnologías para propagar información de revocación.

    
respondido por el Mike Ounsworth 16.06.2015 - 20:32
fuente

Lea otras preguntas en las etiquetas