Domanda:
Catena di certificati
user1157
2011-01-24 18:41:16 UTC
view on stackexchange narkive permalink

Affinché il mio computer possa verificare l'identità di un determinato certificato, dovrebbe avere tutti i certificati fino al certificato radice?

Tre risposte:
Thomas Pornin
2011-02-07 17:41:12 UTC
view on stackexchange narkive permalink

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 .

user502
2011-01-24 19:34:54 UTC
view on stackexchange narkive permalink

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.

dire che il certificato certA deve essere verificato. Devo contrassegnare tutti i certificati tra root e certA come attendibili?
Come descritto nella sezione 6 della RFC, quando il sistema gerarchico funziona correttamente non è necessario intervenire manualmente per fidarsi di qualcosa; avrai una catena di certificati che iniziano con uno di cui ti fidi già, e ognuno si fida in modo verificabile del successivo fino a raggiungere il server in questione.
bethlakshmi
2011-01-25 20:45:11 UTC
view on stackexchange narkive permalink

OK, la risposta è lunga:

  • Il modo più semplice: se stai solo controllando che il certificato proviene da un emittente attendibile, allora hai solo bisogno della raccolta di CA che potrebbero emettere certificati per te. Questo approccio è semplice e veloce, ma elimina le best practice tipiche, come il controllo dello stato del certificato.
  • Il modo giusto, dove c'è un rischio maggiore o la necessità di controllare meglio il sito, dovrebbe (almeno) - ricostruire il percorso del certificato, controllare ogni certificato TRANNE la radice rispetto a un meccanismo di stato del certificato (CRL o OCSP), verificare la data di validità di ogni certificato.

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.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...