Il funzionamento di HTTPS si può spiegare con meno di 8 operazioni (il famoso handshake):
- Il browser apre la connessione verso un server sulla porta 443 con protocollo TCP
- Se il browser riceve una risposta, chiede al server di identificarsi e gli fornisce un numero casuale KC
- Il server risponde con le credenziali del proprio certificato, che include la chiave pubblica e un proprio numero casuale KS
- Il browser esamina il certificato e lo verifica online con le CA (le Certification Authority)
- Verificato il certificato, il browser invia un messaggio al server che contiene un altro numero casuale PMS (pre master secret) cifrato con la chiave pubblica del server (qui una spiegazione di differenza tra chiave simmetrica e asimmetrica)
- Il server risponde con l’MS (il Master Secret), un numero ottenuto elaborando con un algoritmo noto PMS, KC e KS cifrati con la sua chiave privata
- Il browser verifica l’MS e attiva la sessione cifrata con un algoritmo simmetrico usando come chiave il MS
Alla fine della sessione browser e server cancellano KC, KS, PMS e MS.
E questo avviene per ogni connessione HTTPS!
Se volete approfondire l’argomento, vi consiglio questa lettura https://www.cloudflare.com/learning/ssl/what-is-https/