Passa al contenuto principale

2. Protocol Overview (Panoramica del protocollo)

2. Protocol Overview (Panoramica del protocollo)

In luogo di, o come supplemento al controllo rispetto a una CRL periodica, potrebbe essere necessario ottenere informazioni tempestive relative allo stato di revoca dei certificati (cfr. [RFC5280], Sezione 3.3). Gli esempi includono trasferimenti di fondi di alto valore o grandi scambi azionari.

L'Online Certificate Status Protocol (Protocollo di stato del certificato online, OCSP) consente alle applicazioni di determinare lo stato (di revoca) dei certificati identificati. OCSP può essere utilizzato per soddisfare alcuni dei requisiti operativi di fornire informazioni di revoca più tempestive di quanto sia possibile con le CRL e può anche essere utilizzato per ottenere informazioni di stato aggiuntive. Un client OCSP invia una richiesta di stato a un responder OCSP e sospende l'accettazione dei certificati in questione fino a quando il responder non fornisce una risposta.

Questo protocollo specifica i dati che devono essere scambiati tra un'applicazione che controlla lo stato di uno o più certificati e il server che fornisce lo stato corrispondente.

2.1. Request (Richiesta)

Una richiesta OCSP contiene i seguenti dati:

  • versione del protocollo

  • richiesta di servizio

  • identificatore del certificato di destinazione

  • estensioni opzionali, che POSSONO (MAY) essere elaborate dal responder OCSP

Alla ricezione di una richiesta, un responder OCSP determina se:

  1. il messaggio è ben formato,

  2. il responder è configurato per fornire il servizio richiesto, e

  3. la richiesta contiene le informazioni necessarie al responder.

Se una qualsiasi di queste condizioni non è soddisfatta, il responder OCSP produce un messaggio di errore; altrimenti, restituisce una risposta definitiva.

2.2. Response (Risposta)

Le risposte OCSP possono essere di vari tipi. Una risposta OCSP è costituita da un tipo di risposta e dai byte della risposta effettiva. Esiste un tipo base di risposta OCSP che DEVE (MUST) essere supportato da tutti i server e client OCSP. Il resto di questa sezione riguarda solo questo tipo di risposta base.

Tutti i messaggi di risposta definitivi DEVONO (SHALL) essere firmati digitalmente. La chiave utilizzata per firmare la risposta DEVE (MUST) appartenere a una delle seguenti:

  • la CA (Autorità di Certificazione) che ha emesso il certificato in questione

  • un Trusted Responder (Responder Fidato) la cui chiave pubblica è considerata affidabile dal richiedente

  • un CA Designated Responder (Responder Designato dalla CA/Authorized Responder (Responder Autorizzato), definito nella Sezione 4.2.2.2) che detiene un certificato appositamente contrassegnato rilasciato direttamente dalla CA, indicando che il responder può emettere risposte OCSP per quella CA

Un messaggio di risposta definitivo è composto da:

  • versione della sintassi della risposta

  • identificatore del responder

  • data e ora in cui la risposta è stata generata

  • risposte per ciascuno dei certificati in una richiesta

  • estensioni opzionali

  • OID dell'algoritmo di firma

  • firma calcolata su un hash della risposta

La risposta per ciascuno dei certificati in una richiesta è costituita da:

  • identificatore del certificato di destinazione

  • valore dello stato del certificato

  • intervallo di validità della risposta

  • estensioni opzionali

Questa specifica definisce i seguenti indicatori di risposta definitivi per l'uso nel valore dello stato del certificato:

  • good (buono/valido)

  • revoked (revocato)

  • unknown (sconosciuto)

Lo stato "good" indica una risposta positiva all'interrogazione sullo stato. Come minimo, questa risposta positiva indica che nessun certificato con il numero di serie del certificato richiesto attualmente entro il suo intervallo di validità è revocato. Questo stato non significa necessariamente che il certificato sia mai stato emesso o che il momento in cui la risposta è stata prodotta rientri nell'intervallo di validità del certificato. Le estensioni della risposta possono essere utilizzate per trasmettere informazioni aggiuntive sulle asserzioni fatte dal responder in merito allo stato del certificato, come una dichiarazione positiva su emissione, validità, ecc.

Lo stato "revoked" indica che il certificato è stato revocato, temporaneamente (il motivo della revoca è certificateHold) o permanentemente. Questo stato PUÒ (MAY) anche essere restituito se la CA associata non ha traccia di aver mai emesso un certificato con il numero di serie del certificato nella richiesta, utilizzando qualsiasi chiave di emissione corrente o precedente (indicato come certificato "non-issued (non emesso)" in questo documento).

Lo stato "unknown" indica che il responder non conosce il certificato richiesto, di solito perché la richiesta indica un emittente non riconosciuto che non è servito da questo responder.

NOTA: Lo stato "revoked" indica che un certificato con il numero di serie richiesto dovrebbe essere rifiutato, mentre lo stato "unknown" indica che lo stato non ha potuto essere determinato da questo responder, consentendo così al client di decidere se vuole provare un'altra fonte di informazioni sullo stato (come una CRL). Ciò rende la risposta "revoked" adatta per i certificati non emessi (come definito sopra) dove l'intenzione del responder è di indurre il client a rifiutare il certificato piuttosto che provare un'altra fonte di informazioni sullo stato. Lo stato "revoked" è ancora opzionale per i certificati non emessi al fine di mantenere la retrocompatibilità con le distribuzioni della RFC 2560. Ad esempio, il responder potrebbe non avere alcuna conoscenza se un numero di serie richiesto è stato assegnato a un certificato emesso, oppure il responder potrebbe fornire risposte pre-prodotte in conformità con la RFC 5019 e, per tale motivo, non è in grado di fornire una risposta firmata per tutti i numeri di serie dei certificati non emessi.

Quando un responder invia una risposta "revoked" a una richiesta di stato per un certificato non emesso, il responder DEVE (MUST) includere l'estensione di risposta extended revoked definition (definizione revocata estesa) (Sezione 4.4.8) nella risposta, indicando che il responder OCSP supporta la definizione estesa dello stato "revoked" per coprire anche i certificati non emessi. Inoltre, la SingleResponse relativa a questo certificato non emesso:

  • DEVE (MUST) specificare il motivo della revoca certificateHold (6),

  • DEVE (MUST) specificare l'orario di revoca revocationTime 1 gennaio 1970, e

  • NON DEVE (MUST NOT) includere un'estensione CRL references (riferimenti CRL) (Sezione 4.4.2) o estensioni CRL entry (voce CRL) (Sezione 4.4.5).

2.3. Exception Cases (Casi di eccezione)

In caso di errori, il responder OCSP può restituire un messaggio di errore. Questi messaggi non sono firmati. Gli errori possono essere dei seguenti tipi:

  • malformedRequest (richiesta malformata)

  • internalError (errore interno)

  • tryLater (riprova più tardi)

  • sigRequired (firma richiesta)

  • unauthorized (non autorizzato)

Un server produce la risposta "malformedRequest" se la richiesta ricevuta non è conforme alla sintassi OCSP.

La risposta "internalError" indica che il responder OCSP ha raggiunto uno stato interno incoerente. La query deve essere ritentata, potenzialmente con un altro responder.

Nel caso in cui il responder OCSP sia operativo ma non in grado di restituire uno stato per il certificato richiesto, la risposta "tryLater" può essere utilizzata per indicare che il servizio esiste ma è temporaneamente incapace di rispondere.

La risposta "sigRequired" viene restituita nei casi in cui il server richiede che il client firmi la richiesta per costruire una risposta.

La risposta "unauthorized" viene restituita nei casi in cui il client non è autorizzato a effettuare questa query a questo server o il server non è in grado di rispondere in modo autorevole (cfr. [RFC5019], Sezione 2.2.3).

2.4. Semantics of thisUpdate, nextUpdate, and producedAt (Semantica di thisUpdate, nextUpdate e producedAt)

Le risposte definite in questo documento possono contenere quattro orari -- thisUpdate, nextUpdate, producedAt e revocationTime. La semantica di questi campi è:

thisUpdate: L'orario più recente in cui lo stato indicato è noto al responder come corretto.

nextUpdate: L'orario in cui o prima del quale saranno disponibili informazioni più recenti sullo stato del certificato.

producedAt: L'orario in cui il responder OCSP ha firmato questa risposta.

revocationTime: L'orario in cui il certificato è stato revocato o posto in sospeso.

2.5. Response Pre-Production (Pre-produzione della risposta)

I responder OCSP POSSONO (MAY) pre-produrre risposte firmate che specificano lo stato dei certificati in un momento specificato. L'orario in cui lo stato era noto come corretto DEVE (SHALL) essere riflesso nel campo thisUpdate della risposta. L'orario in cui o prima del quale saranno disponibili informazioni più recenti viene riflesso nel campo nextUpdate, mentre l'orario in cui è stata prodotta la risposta apparirà nel campo producedAt della risposta.

2.6. OCSP Signature Authority Delegation (Delega dell'autorità di firma OCSP)

La chiave che firma le informazioni sullo stato di un certificato non deve necessariamente essere la stessa chiave che ha firmato il certificato. L'emittente di un certificato delega esplicitamente l'autorità di firma OCSP emettendo un certificato contenente un valore univoco per l'estensione extended key usage (uso esteso della chiave) (definita in [RFC5280], Sezione 4.2.1.12) nel certificato del firmatario OCSP. Questo certificato DEVE (MUST) essere emesso direttamente al responder dalla CA competente. Vedere la Sezione 4.2.2.2 per i dettagli.

2.7. CA Key Compromise (Compromissione della chiave CA)

Se un responder OCSP sa che la chiave privata di una particolare CA è stata compromessa, PUÒ (MAY) restituire lo stato "revoked" per tutti i certificati emessi da quella CA.