Door Anoniem: Bedankt voor de uitleg Bitwiper, maar ik geloof dat je wat dingen vergeet hierbij.
Ik denk het niet (vond je de bijdrage niet lang genoeg, of had je willen lezen dat ik -onterecht- zou toegeven dat het injecteren van http redirects in een https verbinding mogelijk is?).
Helaas laat dat plaatje niet zien of sprake is van http of https (tenzij ik erover heen kijk).
Door Anoniem: Dat wil zeggen: ze zagen het juiste certificaat, want ze waren op de echte website. Groen licht dus,.
Sterker, als ze een up-to-date webbrowser gebruiken met ingebouwde HSTS preload lijst en in hun URL-balk "whatsapp.com" of zelfs "http://whatsapp.com/" hebben ingetikt, zal hun browser de verbinding meteen via https maken.
ECHTER: dat gebeurt niet als ik "whatsapp.nl" intik in de URL balk van Firefox, want alleen whatsapp.com staat in de preload lijst!
Als antwoord krijg
ik dan -
via onversleutelde http- een http 301 "Moved permanently" naar "Location: http://www.whatsapp.com" (allemaal te zien met het "F12" developerscherm van Firefox). Van die laatste http maken moderne browsers https als gevolg van de HSTS preload lijst (voor Firefox zie
https://hg.mozilla.org/mozilla-central/file/tip/security/manager/ssl/nsSTSPreloadList.inc).
Het is voor een foute ISP niet moeilijk om die redirect
niet door te sturen naar de browser van de eindgebruiker, maar in plaats daarvan de content van whatsapp.com te laten zien (onder de door de gebruiker intgetikte http URL - zonder slotje dus). Dan kan de ISP de gebruiker laten zien wat zij wenst, en bestanden naar keuze toezenden zodra de gebruiker op "download" klikt. Gebruikers die
niet weten dat zij een https URL zouden moeten zien, en die geen hulp krijgen van HSTS preload, zijn zo eenvoudig te foppen (dit is precies waarom een SSLstrip aanval zo succesvol kan zijn).
Door Anoniem: Maar pas toen ze op de downloadknop klikten, werden ze omgeleid met als resultaat een besmette Whatsapp versie.
Als ik op de Download knop druk voor de windows versie, is de download URL
https://web.whatsapp.com/desktop/windows/release/x64/WhatsAppSetup.exe. De FQDN van web.whatsapp.com is "mmx-ds.cdn.whatsapp.net" en het IP-adres voor mij is 31.13.91.51. Volgens whois is dat een adres geregistreerd bij RIPE, in Europa dus, maar een traceroute lijkt te suggereren dat pakketjes gerouteerd naar dit IP adres toch naar de USA gaan - maar dat hoeft niet in alle gevallen zo te zijn. Het is best mogelijk dat iemand in Kazakhstan voor deze domeinnaam een ander IP-adres terugkrijgt van een server gehost ergens bij een ISP in Kazakhstan. Maar het kan daarbij ook om hetzelfde IP-adres gaan: de ISP kan routeren hoe zij wenst. Voorwaarde is dat de (CDN) server over de private key beschikt, behorende bij de public key in het whatsapp certificaat.
Ook mijn download vond dus niet plaats vanaf https://www.whatsapp.com/, maar vanaf een andere server. Daarbij werd mijn browser niet omgeleid via een redirect (de donwload link
zelf wees naar een andere server). Het betrof in mijn geval echter netjes een https link - waar een ISP niet tussen kan komen met een http redirect.
In Wireshark zag ik achter elkaar (alles naar poort 443, met TLSv1.2, van 31.13.91.51 dat ik hieronder "WA" noem om de regels niet te lang te maken):
PC -> WA: Client Hello (met 14 ondersteunde cipher suites)
WA -> PC: Server Hello (kiest TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)
WA -> PC: Certificate, Server Key Exchange, Server Hello Done
PC -> WA: Client Key Exchange, Change Cipher Spec, Hello Request, Hello Request
PC -> WA: versleutelde data
WA -> PC: New Session Ticket, Change Cipher Spec, Encrypted Handshake Message
WA <-> PC: versleutelde data
Naast dat CDN servers overal kunnen staan (en voor meer mensen fysiek toegankelijk zijn dan je zou willen), sluit ik ook niet uit dat WhatsApp door bepaalde bepaalde landen
gedwongen kan worden om downloads via http aan te bieden, en dan kan elke MitM zich natuurlijk uitleven.
Wat ik in mijn bijdrage
https://www.security.nl/posting/532047/ESET%3A+Providers+voorzien+downloads+van+overheidsspyware#posting532389 probeerde uit te leggen is dat een ISP welliswaar geen "http redirect" kan injecteren in een https verbinding, maar je, onder meer via aangepaste routering, je met elke gewenste server kan laten verbinden. Alleen krijgt de gebruiker wel een certificaatfoutmelding als die server vervolgens niet over de juiste private key beschikt.
Door Anoniem: Bekend is dat de ISP erbij zou zijn betrokken als MITM en m.b.v. redirect 307 de gebruiker naar de valse versie voerde.
Bekend? Waar staat dat dan?
Op de manier waarop ik gedownload heb, is het (voor zover ik weet) onmogelijk om een http redirect te injecteren, want er is geen http verkeer zichtbaar geweest in Wireshark die ik open had tijdens download.
Door Anoniem: Dit is toch niet meer uit te leggen met jouw theorie(?). Probeer dit (*in deze thread*) van jouw kant maar eens te verklaren, en denk eens Out-of-the-Box wat er technisch "in theorie" allemaal mogelijk is en ook met niet al teveel moeite in de praktijk zou kunnen worden gebracht.
Nou goed dan. Naast bovengenoemd scenario (http website) kan de ISP ook de 80MB download elke keer tussendoor afbreken (bijv. alles meer dan 1MB vanaf 31.13.91.51). Na een paar keer zal een gebruiker dan in Google iets intikken als: "download whatsapp windows" en bijv. op deze pagina uitkomen:
http://download.cnet.com/WhatsApp-for-PC/3000-2150_4-76640933.html. Grappig is dat in de knop "Download now", onder die tekst, "Secure download" staat (LOL).
Overigens vind ik het wel heel slecht van WhatsApp dat de signature van WhatsAppSetup.exe, die ik gedownload heb, (1) nog gebruik maakt van een SHA1 hash en (2) geen signed timestamp heeft (zie Signature Info in de Details tab in
https://www.virustotal.com/#/file/b3a885d061f51f01ddc578163ace8f261a9fd679802e5c735413bdb1ae0872a9/details).