Sì e no . Per capire perché, dobbiamo guardare al modo in cui Internet è strutturato.
Internet non è costituito da un singolo protocollo, ma da un numero di protocolli che si sovrappongono l'un l'altro . Puoi classificare i protocolli in base a dove si inseriscono nello stack e i temi che emergono quando lo fai sono chiamati layers .
Ci sono due modelli in competizione per come funziona, e parlerò brevemente del livello più basso del modello OSI: questo non è il modello che usano gli utenti IP, ma ci offre alcune basi interessanti. Il livello più basso, secondo la gente dell'OSI, è il livello fisico : la cosa reale che usi per inviare segnali. È probabile che lo strato fisico in uso al momento sia "un filo di rame" o "onde radio", ma ce ne sono altri: in passato le persone hanno usato cavi in fibra ottica, onde sonore, raggi laser e così via. . Come uno scherzo del pesce d'aprile, qualcuno ha persino escogitato un modo per farlo con i piccioni viaggiatori, e anche se non è qualcosa che qualcuno vorrebbe usare, funziona davvero.
Il modello più basso usato dal popolo TCP / IP (il secondo più basso nel modello OSI) è chiamato link layer . Il livello fisico ci fornisce una connessione diretta tra due macchine, ma non dice nulla su come ottenere un segnale attraverso quella connessione: questo è ciò che lo strato di collegamento è per Ethernet è un protocollo di livello di collegamento comune oggigiorno per le macchine che sono connesso in modo permanente via cavo e Wi-Fi (che è derivato da Ethernet) fa la stessa cosa per le onde radio. Al giorno d'oggi, PPP è il protocollo più popolare per i modem a livello di collegamento. Esistono anche altri protocolli di livello link.
Ma ciò che è veramente interessante per questa domanda sono il secondo e il terzo livello . Il secondo livello è chiamato livello di rete o livello Internet (notare il piccolo I ; non è la stessa cosa di Internet). Qui vivono i segnali che cercano di ottenere un segnale tra due macchine che non sono direttamente connesse, usando una catena di macchine che sono direttamente connesse. IP, il protocollo Internet, vive in questo livello; è da dove provengono gli indirizzi IP.
Il terzo livello - il livello di trasporto - è dove smettiamo di parlare di segnali e iniziamo a parlare di dati: dato il segnale, iniziamo a fare qualcosa di coerente da esso. Se hai sentito parlare di TCP e UDP, è qui che vivono: TCP ti consente di collegare i pacchetti in sessioni, mentre UDP è un protocollo di livello più basso per le volte in cui l'infrastruttura TCP non è realmente necessaria. Il compito del livello di trasporto è quello di far dialogare gli host su entrambe le estremità della connessione in modo coerente.
Il quarto livello - il livello di applicazione - è dove si svolge la maggior parte dell'azione eccitante: si basa sull'infrastruttura del livello di trasporto per realizzare ciò che in genere si pensa come attività di rete. HTTP, il protocollo su cui il Web è costruito, vive in questo livello; così come i protocolli di trasferimento file FTP e BitTorrent, il trio di protocolli e-mail SMTP / POP / IMAP, il protocollo di chat IRC e molti altri.
TLS (e il suo predecessore SSL) vivono nel livello di trasporto . TLS ottiene persino il suo nome da lì: Transport Layer Security. Fornisce un'infrastruttura comune per i protocolli a livello di applicazione, come HTTP, per comunicare tra loro e, per questo, funziona bene.
Poiché TLS crittografa l'HTTP, protegge (teoricamente) i dati come l'URL. Tuttavia, tu continui a fare quella richiesta, incluso l'indirizzo IP del server che ti connetti a tramite IP, e TLS vive troppo in alto nello stack per crittografarlo . Quindi, se richiedi un sito dallo stesso host su cui si trova il sito, la NSA (o qualche altro agente) potrebbe capire l'host a cui ti stavi connettendo guardando ciò che stavi inviando nel livello Internet. Non possono ottenere il resto dell'URL, perché sono gestiti all'interno di HTTP (che TLS crittografa), ma potrebbero ottenere l'host.
Se stai utilizzando il tunneling HTTP, puoi in parte aggirare questo . Se tunnel una connessione HTTP attraverso un'altra connessione HTTP, non ti connetti direttamente a xsite.com o ysite.com: invece ti connetti a zsite.com, dì che vuoi collegarti a questi altri luoghi, e renderà la richiesta per te. Poiché il tunneling HTTP risiede in HTTP, TLS lo proteggerà: l'NSA potrebbe rilevare che sei connesso a zsite.com, ma non sarebbero in grado di dire nient'altro, compresi i siti a cui hai chiesto a zsite.com di connettersi. Certo, alla fine si prenderanno cura di te e inizieranno a guardare cosa fa zsite.com, ma prima devono notarlo.
Niente di tutto ciò entra nella praticità di rompere TLS. Sto solo provando a dare una panoramica di ciò che TLS può proteggere (a patto che regge), e cosa non può proteggere anche se funziona perfettamente.