Per il mio computer per verificare l'identità di un determinato certificato dovrebbe avere tutti i certificati fino al certificato di origine?
La convalida del certificato richiede l'elaborazione di un'intera catena da un'ancora di sicurezza (un "certificato radice") fino al certificato che deve essere convalidato. Quindi il tuo computer deve avere i certificati CA intermedi a un certo punto.
Questo non significa che il tuo computer debba archiviare quei certificati CA. I protocolli che gestiscono i certificati di solito includono alcune disposizioni per trasmettere anche una serie di "oggetti helper" che includono certificati CA intermedi. Ad esempio, in SSL / TLS , il server invia il suo certificato insieme a una serie di altri certificati che dovrebbero essere certificati CA intermedi che il client può utilizzare per convalidare il certificato del server. Quindi il client ha accesso ai certificati CA necessari quando ne ha bisogno.
È comunque buona norma conservare una cache locale di certificati CA intermedi, specialmente su computer moderni in cui lo spazio di archiviazione è più economico della larghezza di banda della rete.
In base alla RFC 2549 sezione 3.2, sotto X.509 un'autorità di certificazione (CA) che ha firmato un il certificato del server potrebbe già essere memorizzato sul computer client; in caso contrario, il certificato della CA dovrà essere firmato da un'altra CA e così via, fino a quando la catena non raggiungerà una CA la cui chiave pubblica è memorizzata sul computer client. Quello è generalmente un certificato di root.
Nella maggior parte delle implementazioni X.509, tuttavia, non c'è nulla che ti impedisca di archiviare un certificato autofirmato o altrimenti non connesso a una "CA radice" come Verisign e utilizzarlo per verificare l'autenticità del server in seguito.
OK, c'è una risposta lunga:
Se si desidera farlo nel modo giusto, è necessario disporre di tutte le CA coinvolte nella creazione di qualsiasi certificato che potrebbe essere utilizzato per l'emissione di certificati utilizzati per l'autenticazione. Quando dico "ricostruire il percorso del certificato", intendo controllare che la firma sul certificato corrisponda alla chiave pubblica dell'emittente e che la firma dell'emittente corrisponda alla chiave pubblica dell'emittente e così via fino a quando non si preme un certificato di origine in cui la sua firma corrisponde alla sua chiave pubblica.
Non dovresti MAI aver bisogno di memorizzare il certificato dell'entità finale.
Leggi altre domande sui tag cryptography public-key-infrastructure certificates