Come fa un browser a distinguere tra un cert intermedio e un cert di entità finale?

3

I certificati di chiusura firmati da certificati intermedi vengono accettati dai browser a condizione che la radice si trovi nell'archivio dei certificati attendibili. La mia comprensione è che un cert di entità finale non può di per sé firmare altri certificati (o in ogni caso un browser non accetterà tali certificati). Se questo è il caso, il browser deve essere in grado di distinguere un cert intermedio da un certificato di entità finale. Come fa questo? C'è un messaggio nel cert intermedio che dice "Questo è un cert intermedio" (che è stato firmato dal cert della radice per la validità)?

    
posta questioner 13.03.2018 - 17:23
fonte

3 risposte

0

Browser e amp; Solo certificati root di archivio del sistema operativo, non certificati intermedi.

La tua domanda è valida, se ho un certificato firmato da Let's Encrypt, che cosa mi impedisce di usare quel certificato per firmare altri certs ?? !!

C'è un flag sul certificato che specifica se si tratta di una CA o End Entity.

Per StackExchange oggi, il server presenta 3 certificati.

  1. DigiCert
  2. DigiCert SHA2 High Assurance
  3. *. Stackexchange.com

Se analizzi ciascun certificato, sotto il tipo di oggetto Base Constraint- > il valore sarà CA per (1) & (2) ma sarà "EndEntity" per (3). Si presume che browser e applicazioni non accettino certificati che non sono firmati da un certificato CA, se l'estensione del tipo di vincolo di base con limitazione non è presente nel certificato, il certificato è considerato un'entità finale per impostazione predefinita.

Esiste anche un vincolo di base per il vincolo di base- > che specifica per quanto tempo può essere una catena di certificati per questo certificato di base. Ciò impedisce a una CA intermedia di emettere certificati CA separati.

link

    
risposta data 14.03.2018 - 07:05
fonte
3

Ci sono diversi "flag" nei certificati. uno di questi è ad esempio il flag "I am a CA", un altro è la "Lunghezza massima del certificato". Quest'ultimo limita la lunghezza della catena di certificati.

Gli strumenti del certificato come openssl rifiuteranno di firmare un certificato con un certificato che non ha il flag della CA.

I browser smetteranno di convalidare una catena una volta trovato un certificato non CA.

Non esiste alcun contrassegno "I am an intermediate", ma tale stato può essere dedotto da un certificato CA firmato da qualcun altro.

    
risposta data 13.03.2018 - 17:37
fonte
0

Ogni certificato ha un oggetto che descrive a chi è rivolto il certificato e un emittente che indica chi ha emesso (e quindi firmato) il certificato. Per il certificato radice l'oggetto e l'emittente sono gli stessi, cioè il certificato è firmato da solo ("autofirmato"). Per i certificati intermedi soggetti e emittenti sono diversi. Sia il certificato radice che quello intermedio devono essere certificati CA, ovvero CA: true nei limiti di base.

In base all'oggetto e all'emittente, è possibile costruire la catena di certificati. All'inizio della catena c'è il certificato del server, che viene emesso dal certificato n. 1 della CA. Questo certificato CA # 1 potrebbe essere autofirmato (l'emittente è uguale all'oggetto), nel qual caso è la fine della catena di fiducia e quindi il certificato di origine. Oppure potrebbe essere firmato da un altro certificato CA che significa che si trova da qualche parte all'interno della catena di fiducia (e non alla fine) ed è quindi un certificato intermedio.

Per maggiori dettagli vedi Quadro dei certificati SSL 101: in che modo il browser verifica effettivamente la validità di un determinato certificato del server? o Wikipedia: catena di fiducia .

    
risposta data 13.03.2018 - 19:35
fonte

Leggi altre domande sui tag