Che cosa è esattamente IE / Chrome quando visualizzo la scheda "percorso di certificazione" sui dettagli della connessione cert?

1

Quando visualizzo i dettagli dei certificati per una pagina Web in IE o Chrome, ho la possibilità di visualizzare la gerarchia dei certificati (sotto una scheda denominata "Percorso di certificazione"). Ecco un esempio per security.stackexchange.com:

Originariamente pensavo che si trattasse di un riepilogo della catena di certificati esatta fornita dal server durante la connessione TLS + il certificato radice sul mio terminale. Recentemente ho osservato che la sezione del percorso di certificazione mostrerà cose diverse se cambio i miei intermedi memorizzati localmente (anche se non ho cambiato nulla sul lato server).

Quindi le mie domande sono:

  • Che cosa è esattamente questo controllo? Dov'è Windows (o più specificamente, l'applicazione Crypto Shell Extension ) che popola le informazioni in questa scheda da?
  • Come posso vedere esattamente cosa ha ottenuto il browser in termini di catena di certificati effettiva (supponendo che il server in questione non sia accessibile al pubblico)
posta Mike B 25.07.2015 - 20:19
fonte

2 risposte

3

What exactly is this checking? Where is Windows (or more specifically, the Crypto Shell Extension application) populating the information on this tab from?

Mostra il percorso di fiducia costruito in base ai certificati inviati nell'handshake SSL (ignorando eventuali certificati di root inviati dal server), i certificati intermedi memorizzati nella cache da altre connessioni, i certificati radice incorporati e tutti gli altri certificati ha nel negozio. Alcuni browser scaricano anche i certificati mancanti e anche questi verranno visualizzati.

How can I see exactly what the browser got in terms of the actual certificate chain (assuming that the server in question is not publicly accessible)

Non otterrai queste informazioni dal browser. È possibile utilizzare strumenti come openssl per visualizzare i certificati che lo strumento ottiene:

openssl s_client -showcerts -servername host -connect host:port

Questi sono nella maggior parte dei casi gli stessi certificati visualizzati dal browser, ma un server potrebbe effettivamente decidere di restituire certificati diversi in base ai parametri dell'handshake SSL avviati dal client. Questo è specificamente rilevante per l'estensione SNI, quindi è necessario includere l'opzione -servername con s_client.

Per ottenere una conoscenza precisa di ciò che il browser vede, è necessario eseguire un'acquisizione di pacchetti utilizzando strumenti come tcpdump o wireshark. Quando si visualizza l'acquisizione con wireshark, è possibile visualizzare i certificati inviati dal server. Per assicurarti di non ottenere una ripresa della sessione in cui non vedi alcun certificato, assicurati di riavviare il browser prima di visitare il sito pertinente.

    
risposta data 25.07.2015 - 21:04
fonte
0

Quando ti connetti a un sito tramite SSL, il server serve il certificato per quel sito durante la sessione SSL. Nel campo issuer di questo certificato, viene specificato il subject del certificato utilizzato per firmare il certificato del sito (ovvero il prossimo certificato in alto nella catena). Tale certificato può essere stato firmato da un altro certificato, e così via e così via, fino a quando non viene raggiunto un certificato di root che è considerato affidabile dal client (ad esempio un certificato CA). Per ogni certificato, il campo issuer punta al subject del prossimo certificato in alto nella catena.

Quindi, in che modo il client (ad esempio il browser Web) accede a tutti questi certificati nella catena? Ci sono diversi modi in cui questo può essere fatto. In molti casi, il server serve tutti i certificati nella catena. Questo è spesso fatto includendo tutti i certificati in un file .pem. In altri casi, il client potrebbe già avere alcuni (o tutti) i certificati nella sua cache. In altri casi, è possibile utilizzare il campo Authority Information Access di un certificato nella catena per specificare una posizione HTTP in cui è possibile accedere al certificato utilizzato per firmare questo certificato (ovvero il certificato successivo nella catena).

Ad esempio, per il certificato per * .stackexchange.com di cui hai incluso uno screenshot nel tuo post, se guardi il campo issuer , vedrai "GlobalSign Organization Validation CA - SHA256 - G2". Questo è il subject del certificato che è stato utilizzato per firmare il certificato per * .stackexchange.com. Ora, se si guarda il campo Authority Information Access del certificato per * .stackexchange.com, verrà visualizzato l'URL link . Il certificato per "GlobalSign Organization Validation CA - SHA256 - G2" è disponibile su questo URL. Tuttavia, il tuo browser web probabilmente non dovrebbe scaricare nessuno dei certificati nella catena dagli URL forniti nei campi Authority Information Access , perché i server Web di Stack Exchange servono tutti i certificati nella catena durante la sessione SSL.

    
risposta data 25.07.2015 - 21:52
fonte

Leggi altre domande sui tag