Affinché il mio computer possa verificare l'identità di un determinato certificato, dovrebbe avere tutti i certificati fino al certificato radice?
Affinché il mio computer possa verificare l'identità di un determinato certificato, dovrebbe avere tutti i certificati fino al certificato radice?
La convalida del certificato richiede l'elaborazione di un'intera catena da un trust anchor (un "certificato radice") fino al certificato che deve essere convalidato. Quindi il tuo computer deve avere i certificati CA intermedi a un certo punto.
Ciò non significa che il tuo computer debba memorizzare quei certificati CA. I protocolli che gestiscono i certificati di solito includono alcune disposizioni per trasmettere anche una serie di "oggetti di supporto" 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 i certificati CA intermedi che il client può utilizzare per convalidare il certificato del server. Quindi il client ha accesso ai certificati CA necessari proprio quando ne ha bisogno.
È comunque una buona idea mantenere una cache locale di certificati CA intermedi, specialmente sui computer moderni in cui l'archiviazione è più economica della larghezza di banda della rete .
Secondo RFC 2549 sezione 3.2, in X.509 a l'autorità di certificazione (CA) che ha firmato un certificato del server potrebbe essere già archiviata sul computer client, in caso contrario il certificato dovrà essere firmato da un'altra CA e così via fino a quando la catena non raggiunge una CA la cui chiave pubblica è archiviata nel computer client. Quello è generalmente un certificato radice.
Nella maggior parte delle implementazioni X.509, tuttavia, non c'è nulla che ti impedisca di archiviare un certificato autofirmato o uno altrimenti non connesso a una "CA radice" come Verisign e utilizzarlo per verificare l'autenticità del server in seguito.
OK, la risposta è lunga:
Se vuoi farlo nel modo giusto, è necessario disporre di ogni CA coinvolta nella creazione di qualsiasi certificato che potrebbe essere utilizzato per l'emissione di certificati utilizzati per l'autenticazione. Quando dico "ricostruisci il percorso del certificato", intendo verificare che la firma sul certificato corrisponda alla chiave pubblica dell'emittente e la firma dell'emittente corrisponda alla chiave pubblica dell'emittente e così via finché non premi un certificato radice in cui la sua firma corrisponde alla sua chiave pubblica.
Non dovresti MAI aver bisogno di memorizzare il certificato dell'entità finale.