x.509 verifica delle firme della catena di certificati

1

Una volta che un'applicazione client scarica un file certificato foglia da una certa entità, emessa da una CA, come funziona la verifica delle firme del certificato?

In particolare, non sono chiaro se una firma dei certificati foglia sia crittografata solo da quella foglia certifica la chiave pubblica (quella incorporata nel certificato), o se in qualche modo è coinvolto il certificato della CA principale in quella firma decrypt / verifica il processo.

Dopo che il certificato foglia è stato verificato e l'app si sposta verso l'alto sulla catena di emissione e sul certificato CA intermedio, nella verifica di tale firma intermedia la CA è la chiave pubblica di certs radice coinvolta in qualche modo? oppure l'app ha bisogno solo della chiave pubblica della CA intermedia per verificare la firma di intermedio?

    
posta deepblue 18.05.2018 - 18:48
fonte

1 risposta

0

La pagina wikipedia Chain of Trust ha una buona immagine che spiega questo:

Inparole:

  • L'attodi"emissione" di un certificato da parte di un'autorità di certificazione consiste nell'utilizzare la sua chiave privata per firmare il nuovo certificato. Questa è una dichiarazione che "Io, la CA, prometto che le informazioni in questo certificato sono accurate e valide". Se ti fidi della chiave pubblica della CA, puoi fidarti di tutto ciò che ha firmato.
  • La CA radice firma la CA intermedia, che firma i certificati dell'entità finale.
  • Questo fa una "catena" perché se ci si fida della chiave pubblica della CA principale, è possibile verificare la firma sulla CA intermedia. Ora ti fidi della CA intermedia. Quindi puoi controllare la firma sull'entità finale. Ora ti fidi dell'entità finale.

I certificati root sono una strana eccezione a quanto sopra perché sono firmati dalla stessa chiave presente nel certificato (detto anche "autofirmato"). Ciò significa che non esiste un modo di puro software per verificare se ci si debba fidare o meno; hai bisogno di un essere umano, di solito il fornitore dell'applicazione o del sistema operativo, per decidere quali certificati di root devono essere considerati attendibili. Questo elenco di "root attendibili" viene solitamente inviato all'interno dell'applicazione o del sistema operativo.

In pratica, la convalida del cert va nella direzione opposta:

  • Ho un certificato di entità finale. Chi l'ha firmato? Mi fido già di loro?
  • Oh, è firmato da una CA. Questa CA è presente nell'elenco "root attendibili"?
  • Se sì, abbiamo finito (successo della validazione del cert)
  • Se no, chi ha firmato questo certificato CA? Mi fido già di loro?
  • e così via fino a quando non si preme una radice attendibile (esito positivo della convalida della cert) o si colpisce un certificato autofirmato che non si trova nell'elenco delle "credenziali attendibili" (mancata convalida della cert).
risposta data 18.05.2018 - 19:04
fonte

Leggi altre domande sui tag