TLS fornisce tre elementi:
-
Riservatezza: che nessuno può vedere il traffico tra te e
facebook.com
(incluso il ragazzo al tavolo successivo di Starbucks, il tuo ISP, alcune apparecchiature di rete abbozzate nel datacenter COUGH NSA , nessuno).
-
Integrità: che nessuno sta modificando i messaggi mentre viaggiano tra te e
facebook.com
(questo è separato dalla Riservatezza perché alcuni tipi di attacchi ti consentono di modificare il messaggio in modo malevolo anche se non lo fai so quali sono i messaggi).
-
Autenticazione: che stai parlando con il server autentico
facebook.com
, non con una versione contraffatta.
The basic idea what I got from them is, when using https all things are encrypted in client side and then sent it to the server. (Please correct me if I am wrong)
Questo copre le parti di riservatezza e integrità, ma ti manca la parte di autenticazione:
To prove that you're not talking to a spoofed web server.
Dire che ho creato una versione di phishing di Facebook e in qualche modo ho hackerato nel tuo router di casa (facile) o ISP (più difficile) in modo che quando digiti facebook.com
si risolva nel mio indirizzo IP invece che in quello reale. Ho creato una copia esatta della schermata di accesso che ti aspetti e inserirai nome utente e password. Muahaha! Ora ho il tuo nome utente e password.
In che modo HTTPS lo impedisce? Risposta: con certificati:
SeapriamoilcertificatonelDevToolsdelmiobrowser>Sicurezza,vedremoquesto:
DigiCertèciòchevienechiamato Autorità di certificazione (CA) pubblicamente attendibile . Di fatto, DigiCert è una delle CA che il tuo browser considera intrinsecamente affidabile poiché il suo "certificato radice" è incorporato nel codice sorgente del tuo browser. Puoi visualizzare l'elenco completo delle CA radice affidabili eseguendo ricerche nelle impostazioni del browser e cercando "Certificati" o "Root attendibili" o qualcosa del genere.
Quindi, il tuo browser si affida a DigiCert e, attraverso questo certificato, DigiCert ha certificato che il server con cui stai parlando è il vero facebook.com
(perché ha la chiave privata che corrisponde al certificato). Ottieni il lucchetto verde e sai che tutto va bene.
Solo per divertimento, facciamo un finto facebook.com
. Ho aggiunto questa riga al mio file hosts in modo che ogni volta che digito facebook.com
verrà reindirizzato sull'indirizzo IP di google.com
:
209.85.147.138 facebook.com
Google, cosa fai cercando di rubare la mia password di Facebook ?? Grazie a Dio HTTPS è qui per proteggermi! Il mio browser è super insoddisfatto perché il certificato che è stato presentato (per google.com
) non corrisponde all'URL richiesto ( facebook.com
). Grazie HTTPS!