it-swarm.it

Comprensione del funzionamento di HTTPS (ad esempio gmail)

Voglio chiedere se la mia comprensione di seguito è corretta o meno per quanto riguarda l'HTTPS utilizzato per la pagina Web che stiamo visitando.

Userò Gmail come esempio:

  1. Il mio laptop tenta di connettersi al server Gmail e invia una richiesta http
  2. Il server Gmail risponde invece con una richiesta per stabilire una connessione https (invia una richiesta https)
  3. Il mio laptop controlla la certificazione https del server Gmail e accetta di utilizzare https per connettersi
  4. Il mio laptop trova la chiave pubblica del server Gmail e la utilizza per crittografare la password del mio account Gmail e la invia a Gmail Server
  5. Gmail Server verifica la mia password utilizzando la chiave privata di Gmail Server e conferma il mio accesso e-mail
  6. Gmail Server invia le informazioni e-mail al mio laptop crittografandole utilizzando la chiave pubblica del mio laptop
  7. Il mio laptop legge le informazioni e-mail crittografate decodificandole utilizzando la chiave privata del mio laptop
  8. E così via fino a quando il mio laptop non disconnette il server Gmail.

Riepilogo: ci sono 4 chiavi coinvolte in questa connessione https. Chiavi pubbliche/private del server Gmail (2pc) + Chiavi pubbliche/private del mio laptop (2pc)

27
Xianlin

Sì, sei sulla strada giusta! Ma le cose in realtà funzionano un po 'diversamente da come hai delineato.

In particolare, i passaggi da 4 a 8 non spiegano come funziona SSL. SSL funziona in modo leggermente diverso. Ecco come funziona effettivamente (ho intenzione di apportare alcune piccole semplificazioni, ma questo dovrebbe rendere l'idea dell'idea giusta):

  • Il server Gmail invia al tuo client un certificato . Il certificato include la chiave pubblica del server Gmail e alcune prove del fatto che questa chiave pubblica appartiene effettivamente a gmail.com.

  • Il tuo browser verifica le prove nel certificato per confermare che dispone della chiave pubblica appropriata per gmail.com.

  • Il tuo browser sceglie una nuova chiave simmetrica casuale [~ # ~] k [~ # ~] da utilizzare per la sua connessione a Gmail. Crittografa [~ # ~] k [~ # ~] sotto la chiave pubblica di Gmail.

  • Gmail decodifica [~ # ~] k [~ # ~] usando la sua chiave privata. Ora sia il tuo browser che il server Gmail sanno [~ # ~] k [~ # ~] , ma nessun altro lo sa.

  • Ogni volta che il tuo browser desidera inviare qualcosa a Gmail, lo crittografa sotto [~ # ~] k [~ # ~] ; il server Gmail lo decodifica alla ricezione. Ogni volta che il server Gmail vuole inviare qualcosa al tuo browser, lo crittografa sotto [~ # ~] k [~ # ~] .

I tuoi passaggi 1-3 sono all'incirca giusti, sebbene non esattamente esatti, e i dettagli dipendono un po 'dal browser che usi e dall'URL che digiti nella barra degli indirizzi o da come arrivi a Gmail in primo luogo, ma cosa scritto è abbastanza vicino per comprendere il concetto di base. Abbastanza buono per il lavoro del governo.

Ecco alcune letture aggiuntive per te:

Come è possibile che le persone che osservano una connessione HTTPS stabilita non sapessero come decifrarla?

Come funzionano i processi per certificati digitali, firme e SSL?

Scopo dei certificati firmati e considerati affidabili dalla CA

Perché è fasullo il certificato SSL?

Perché HTTPS non è il protocollo predefinito?

La visita dei siti Web HTTPS su un hotspot pubblico è sicura?

Penso che quegli articoli dovrebbero darti un'ottima comprensione dell'SSL, come funziona e perché è progettato così com'è.

Se ciò non bastasse, devi averne di più, ecco alcuni articoli di Wikipedia:

Come funzionano i certificati

Come funziona SSL

Tuttavia, probabilmente hanno molti più dettagli tecnici di quanti tu abbia mai voluto sapere e non sono un'ottima prima introduzione ai concetti o alle idee di base.

50
D.W.