Controllo di revoca del certificato OpenSSL nel programma client utilizzando la pinzatura OCSP 2

2

Praticamente questa è una richiesta di informazioni aggiuntive per la domanda: collegamento

Voglio sapere come OpenSSL gestisce effettivamente la risposta alla stapling di OCSP. Le domande sono:

  1. OpenSSL verifica la firma, la chiave dell'emittente / l'hash del nome della risposta?

  2. La risposta include risposte OCSP per l'intera catena di certificati? In tal caso, c'è un modo per sapere che una delle convalide è fallita?

  3. Per riassumere, posso semplicemente fare affidamento sul campo "Stato Cert: buono" della risposta? :)

La mia preoccupazione è che l'hacker possa creare un server https utilizzando un certificato revocato (rubato) ma durante l'handshake fornisce una risposta OCSP con punti metallici valida per un sito Web casuale certificato dallo stesso emittente della CA. Potrebbe l'OpenSSL gestire tale situazione?

La risposta OCSP di esempio può essere trovata qui link

    
posta Evgeny Yashin 13.04.2016 - 06:25
fonte

1 risposta

2

how OpenSSL actually handles OCSP stapling response

OpensSL non fa nulla da solo in quest'area. Devi occuparti esplicitamente della pinzatura OCSP nel tuo codice, sia per segnalare che supporti la pinzatura e per convalidare e interpretare la risposta.

Does the OpenSSL check the signature, issuer key/name hashes of the response?

Se si utilizzano le funzioni corrette, è possibile farlo. La convalida di una risposta OCSP è per lo più simile alla convalida di un certificato o di un CRL, vale a dire la convalida della catena di affidabilità. A parte questo, devi verificare che la risposta OCSP sia effettivamente per il certificato corretto.

Does the response include OCSP responses for the whole certificate chain? If so, is there a way to know that one of the validations have failed?

Dipende da ciò che il server invia e da ciò che il client richiede (cioè singola risposta OCSP o multipla). E dal momento che devi implementare tutti i dettagli in ogni caso, hai anche le informazioni su quale parte della convalida ha avuto esito negativo.

To sum up, can I simply rely on 'Cert Status: good' field of the response? :)

No, non puoi semplicemente fidarti di qualsiasi risposta OCSP inviata dal server.
Devi fare tutta la convalida della risposta OCSP da solo. A parte le parti già citate, ciò comporta anche il controllo se la risposta è obsoleta (troppo vecchia). E, naturalmente, il certificato potrebbe essere stato revocato negli ultimi minuti, ma la risposta è ancora valida, ovvero OCSP non fornisce informazioni in tempo reale sullo stato di un certificato.

Si noti che solo gli strumenti o le librerie basati su OpenSSL implementano la graffatura OCSP e / o OCSP e, anche se lo fanno, di solito non è abilitata per impostazione predefinita. Questo non è molto diverso con altre implementazioni TLS.

    
risposta data 13.04.2016 - 06:54
fonte

Leggi altre domande sui tag