Come rilevare se il certificato X.509 appartiene alla CA o all'utente finale regolare (host)

0

Se ho capito correttamente nella convalida di autenticità SSL / TLS ci sono 2 (forse più) tipi di certificati secondo quanto segue:

  • quelli che appartengono a CA (questi contengono la chiave pubblica utilizzata per verificare altri certificati)
  • quelli che appartengono agli utenti finali (host) (questi contengono la chiave pubblica utilizzata per crittografare il canale tra il client TLS e il server TLS)

È corretto e come rilevare di quale tipo è il certificato quando viene presentato?

NOTA: Sto verificando con wireshark. Il server mi ha presentato 2 certificati, uno per il suo nome di dominio e uno per la sua CA. Penso di dover controllare il campo estensioni , probabilmente id-ce-basicConstraint o id-ce-keyUsage .

    
posta croraf 01.11.2018 - 08:51
fonte

2 risposte

2

Quindi, ci sono alcuni modi per dire (in nessun ordine particolare):

  • Vincoli di base: può identificare un certificato come appartenente a una CA o un'entità finale.
  • Utilizzo chiave: i certificati CA saranno validi per il certificato e (solitamente) la firma CRL e (di solito) non per la crittografia delle chiavi. Le informazioni migliorate sull'uso delle chiavi potrebbero essere utili o meno qui.
  • Nome soggetto: i certificati end-entity identificheranno un'entità finale (come un nome di dominio, un indirizzo e-mail, ecc.), mentre i certificati CA identificheranno una CA. Mentre non c'è nulla che impedisca tecnicamente a una CA di utilizzare un certificato con un nome di dominio o simile come il suo campo di nome comune, in pratica non mi aspetterei mai di vederne uno.
  • Verifica della catena di firme: i certificati di CA root sono autofirmati e dovrebbero essere trovati nel tuo trust store (la maggior parte dei server web non li invia direttamente); i certificati CA intermedi devono essere firmati da certificati CA radice o certificati CA intermedi, mentre i certificati entità finali sono quasi sempre firmati da certificati CA intermedi e non hanno firmato alcun certificato stesso. Nella situazione che descrivi (vedendo due certificati in Wireshark), puoi essere certo che quello che ha firmato l'altro è un certificato CA e quello che è stato firmato è il certificato dell'entità finale.
risposta data 01.11.2018 - 10:03
fonte
1

I certificati CA devono contenere il cA Flag con valore true in Basic Constraints extension . Vedi anche questa domanda

    
risposta data 01.11.2018 - 10:19
fonte

Leggi altre domande sui tag