L'ISP (qui, l'hotspot WiFi) è ciò che ti offre le pagine. Ovviamente è banale che un ISP legga il traffico non protetto:
Consideriamoorauncasoincuil'inviodellecredenzialièprotettoconHTTPS(quindil'ISPnonpuòannusarledirettamentedalfilo),malapaginadiaccessoHTTPScaricaunoscriptnonprotetto,helper.js
.L'ISPpuòiniettarequalsiasicomportamentoinquelloscriptnonHTTPSprimadiservireinfineloscriptalbrowser.Adesempio,l'ISPpuòinserireleistruzioni," Quando questa pagina invia le credenziali, invia una copia di esse a evil.example.com
. " Il diagramma seguente mostra richieste e risposte sicure in richieste / risposte verdi e non sicure in altri colori:
Quandoiltuobrowserrichiedehelper.js
suHTTP,l'ISPdannosorispondeconunarisorsaconilcontenutosbagliato.Iltuobrowsernonhaideadicomedovrebbeapparirehelper.js
e,senzaalcunamisuradiconvalidadell'integrità(comeHTTPS),ilbrowsernonhaideadinullachenonva.Iltuobrowserpresupponechesiastatocorrettamentepubblicatohttp://tmail.com/helper.js
,perchéèquellochehachiestoel'ISPharestituitounarispostasenzaalcunreclamo(adesempio,larispostaeraun200
HTTPper/helper.js
).Ilfattocheciòcheiltuobrowserhaèdiversodaciòcheilveroserverhainviatoètotalmenteirrilevante,perchéiltuobrowsernonhamododirilevarechequestadifferenzasièverificata.
Inbaseaituoicommenti,sembrachetupossapensaredimodificareunarisorsasoloreindirizzandoilbrowseraun'altrarisorsa.QuestononècorrettoConsideraMarioilbrowser,Iggyl'ISPedueserver,AliceeMallory.
Perprimacosa,considerailcasoonesto:
Ora consideriamo un caso disonesto:
In questo caso, la barra degli indirizzi del browser sarà diversa da quella in cui è stato digitato originariamente: mallory.com/favoritefood
anziché alice.com/favoritefood
.
Consideriamo ora questo caso:
Non ci sono altre risorse coinvolte. http://alice.com/favoritefood
è l'unica risorsa da recuperare qui; Iggy ha semplicemente mentito su quali fossero i contenuti della risorsa. Bob non ha modo di scoprire che Iggy sta mentendo, perché non esiste un sistema di convalida dell'integrità.
Un ultimo tentativo di spiegazione: supponiamo che l'ISP sia onesto, ma erroneamente ha invertito un singolo bit durante la consegna del contenuto del file HTML. Sicuramente non ti aspetteresti che un tale errore causi il caricamento della pagina web in un dominio diverso. Supponiamo ora che l'ISP onesto abbia erroneamente invertito due bit invece di uno solo: ancora una volta, un tale errore non avrebbe mai causato il cambiamento del percorso del dominio o delle risorse. Ora supponiamo che l'ISP abbia capovolto duemila bit per errore onesto (forse l'ISP ha commutato un errore in qualche posto, o il router WiFi è stato colpito dai raggi cosmici): ancora una volta, non c'è bisogno che il dominio cambi. Ora supponiamo che il cambiamento sia stato fatto malignamente invece che per errore: ancora una volta, il cambiamento di intenti non causa alcun cambiamento in ciò che sta realmente accadendo. Il percorso e l'origine delle risorse, come identificati nella barra degli indirizzi del browser, rimangono invariati, mentre l'ISP è libero di modificare il contenuto della risorsa (onestamente o in modo disonesto) senza rilevamento.