La mia comprensione di come funziona HTTPS (ad esempio gmail)

26

Voglio chiedere se la mia comprensione qui sotto è corretta o meno rispetto all'HTTP usato 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 di Gmail risponde con una richiesta per stabilire invece la connessione https (invia la richiesta https)
  3. Il mio portatile 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 al server Gmail
  5. Server Gmail verifica la mia password utilizzando la chiave privata di Gmail Server e conferma il mio accesso email
  6. Il server Gmail invia le informazioni e-mail al mio portatile crittografandole utilizzando la chiave pubblica del mio portatile
  7. Il mio laptop legge le informazioni e-mail crittografate decodificandolo utilizzando la chiave privata del mio laptop
  8. Così avanti e così via finché il mio laptop non scollega il server Gmail.

Riepilogo: ci sono 4 chiavi coinvolte in questa connessione https. Gmail Server Public / Private Keys (2pc) + My Laptop Public / Private Keys (2pc)

    
posta Xianlin 12.04.2012 - 04:13
fonte

1 risposta

48

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

In particolare, i passaggi da 4 a 8 non sono esattamente come funziona SSL. SSL funziona un po 'diversamente. Ecco come funziona (farò alcune piccole semplificazioni, ma questo dovrebbe avere il senso giusto dell'idea):

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

  • Il tuo browser verifica la prova nel certificato, per confermare che ha la chiave pubblica corretta per gmail.com .

  • Il tuo browser sceglie una nuova chiave simmetrica K da utilizzare per la sua connessione a Gmail. Crittografa K sotto la chiave pubblica di Gmail.

  • Gmail decifra K usando la sua chiave privata. Ora sia il tuo browser che il server Gmail sanno K , ma nessun altro lo fa.

  • Ogni volta che il tuo browser vuole inviare qualcosa a Gmail, lo crittografa in K ; il server Gmail lo decifra al ricevimento. Ogni volta che il server Gmail vuole inviare qualcosa al tuo browser, lo crittografa in K .

I tuoi passaggi 1-3 sono approssimativamente corretti, anche se non proprio corretti, ei dettagli dipendono un po 'da quale browser utilizzi e da quale URL digiti nella barra degli indirizzi o da come arrivi a Gmail in primo luogo - ma ciò che hai scritto è abbastanza vicino per comprendere il concetto di base. Abbastanza buono per il lavoro di governo.

Ecco alcune letture aggiuntive per te:

Come è possibile che le persone che osservano una connessione HTTPS stabilita non sappiano come decrittografarlo?

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

Scopo dei certificati firmati e considerati attendibili dalla CA

Perché è falso il certificato SSL difficile?

Perché HTTPS non è il protocollo predefinito?

È in corso la visita dei siti Web HTTPS su un hotspot pubblico?

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

Se ciò non bastasse, devi avere altro ancora, ecco alcuni articoli di Wikipedia:

Funzionamento dei certificati

Come funziona SSL

Tuttavia probabilmente hanno molto più dettagli tecnici di quanto tu non abbia mai voluto sapere, e non sono una grande prima introduzione ai concetti o alle idee di base.

    
risposta data 12.04.2012 - 04:40
fonte

Leggi altre domande sui tag