OCSP e CRL: specificati nel certificato CA o client?

10

Ecco un esempio di configurazione PKI:

* Root CA (offline)
  * Issuing CA
    * Client 1
    * Client 2

Vorrei specificare un punto di distribuzione CRL per i CRL generati dalla CA principale e un URL OCSP per la CA che emette. Pertanto le informazioni sui certificati client revocati sono disponibili solo tramite OCSP. Le informazioni su una CA di emissione revocata (si spera non sia mai necessaria) sono disponibili solo tramite CRL.

La domanda è: uno di questi due modi è il modo corretto di comunicare questo criterio:

* Root CA (CRL distribution point = http://...)
  * Issuing CA (OCSP = http://...)
    * Client 1
    * Client 2

o

* Root CA
  * Issuing CA (CRL distribution point = http://...)
    * Client 1 (OCSP = http://...)
    * Client 2 (OCSP = http://...)

Fondamentalmente, sono confuso su chi specifica gli URI per ottenere informazioni sulla revoca. È specificato nel certificato della CA, che significa "Sono la CA, ed è qui che ti informerò sui certificati che ho emesso che non sono più validi", o è specificato nel certificato del cliente, che significa "se questo certificato viene revocato, ecco dove lo scoprirai? "

Ho esaminato la RFC 5280 e non sono riuscito a trovare una risposta chiara a questa domanda. Molti esempi suggeriscono che la seconda via è corretta, ma la prima sembra avere più senso per me. Quale è?

Se la seconda via è corretta, c'è qualche ragione per specificare anche i punti di distribuzione CRL nella CA radice?

    
posta VokinLoksar 27.12.2011 - 14:57
fonte

2 risposte

9

Versione breve: tutto l'URI dovrebbe essere presente nei certificati dell'entità finale.

Per OCSP , l'ubicazione del risponditore OCSP deve essere specificata in un'estensione di accesso alle informazioni dell'Autorità, descritta nella sezione 4.2.2.1 di RFC 5280 :

The authority information access extension indicates how to access information and services for the issuer of the certificate in which the extension appears.

Il risponditore OCSP in grado di fornire informazioni di revoca su un determinato certificato EE fa parte di un servizio della CA, ovvero l'emittente del certificato EE. Quindi l'URI dovrebbe essere pubblicato come estensione del certificato EE, come da frase sopra citata.

Per CRL , il ruolo principale dell'estensione dei punti di distribuzione CRL consiste nel separare i certificati in sottoinsiemi, in modo che il CRL individuale possa avere un ambito limitato e rimanere breve. Questo meccanismo funziona avendo lo stesso "punto di distribuzione" visualizzato sia nel certificato EE (come parte di un'estensione punti di distribuzione CRL) che nel CRL che si applica a quel certificato (come parte di un'estensione del punto di distribuzione di emissione) (vedere la sezione 4.2. 1.13). Poiché i punti di distribuzione contengono "nomi" e i nomi possono essere URI, è consuetudine utilizzare tale URI come riferimento al luogo da cui è possibile scaricare il CRL.

Il risponditore OCSP e l'URI di download CRL vengono visualizzati nel certificato di destinazione (quello il cui stato di revoca deve essere accertato) ha senso: i server corrispondenti sono sotto il controllo della CA di emissione, quindi l'URI viene scelto da tale CA, e può essere impostato solo in certificati il cui contenuto è sotto il controllo della CA. La CA non sceglie arbitrariamente il contenuto del proprio certificato: quel certificato è emesso da una CA superiore (qui, la "CA radice"). Quindi, la CA inserisce il proprio URI nel certificato che emette se stesso (i certificati dell'entità finale).

    
risposta data 28.12.2011 - 14:44
fonte
1

Questa è una buona domanda perché le specifiche sono vaghe su questo.

Il nostro codice di convalida presuppone che il certificato dell'entità finale contenga gli indirizzi OCSP e CRL, utilizzati per convalidare questo certificato. Cioè ipotizziamo qualcosa di simile

  • Root CA
    • Issuing CA
      • Client 1 (CRL distribution point = http://..., OCSP = http://...)
      • Client 2 (OCSP = http://...)
      • Client 3 (CRL distribution point = http://...)
    
risposta data 28.12.2011 - 09:26
fonte

Leggi altre domande sui tag