Door Anoniem: Ik gebruik zelf een DNS provider met DNS-bescherming over TLS en deze provider blokkeert ook malware,spyware en phishing domeinen. De DNS-verbinding zelf is encrypted. (DNS resolver: Amsterdam). Dit moet toch voldoende zijn om een omleiding zoals hierboven beschreven tegen te gaan. Of heb ik het mis?
Ja, je hebt het mis.
Stel, in de adresbalk van jouw browser voer je in:
security.nl en drukt Enter. Dan zal elke betrouwbare DNS server jouw browser antwoorden dat het IP-adres van security.nl
82.94.191.110 is - terwijl een onbetrouwbare DNS server elk gewenst IP-adres als antwoord kan geven.
Maar dat boeit niet voor een onbetrouwbare ISP: die partij zorgt sowieso voor de routering naar de juiste server - of naar een andere server, bijvoorbeeld eentje in hun eigen beheer. Daarbij, net zoals jouw thuis-router of jouw 4G/5G telecomprovider NAT (Network Address Translation) kan toepassen, kan elke ISP (of kwaadaardige WiFi-access-point beheerder) dat ook. Vergelijkbaar, ook met het juiste adres op een envelop ben je afhankelijk van de betrouwbaarheid van de postbode.
Precies om al deze potentiële ellende te voorkómen, bestaat https.
Oftewel, als je in de adresbalk van jouw browser
security.nl intikt, gevolgd door de Enter-toets, kan het volgende gebeuren:
a) Als jouw browser op https-only is ingesteld, en/of als je daarmee minder dan 31536000 seconden (365 dagen) geleden
https://security.nl hebt bezocht - en die informatie in jouw browser niet is verwijderd, probeert jouw browser een https verbinding te maken met het IP-adres dat als antwoord kwam op de vraag
security.nl aan "DNS".
Alleen als jouw browser dan een
door jouw browser erkend certificaat ontvangt, dat
geldig is voor (in elk geval)
security.nl,
én de betreffende server
in een ononderbroken verbinding aantoont over de private key te beschikken die past bij de public key in het certificaat, komt een https verbinding
zonder foutmeldingen tot stand. Nb. zaken als IP-adressen, routering en ethernet-adressen spelen hierbij geen relevante rol.
Jouw browser kan dan nog steeds verbinding hebben gemaakt met een nepserver, namelijk als een door die browser vertrouwde certificaatuitgever onterecht een certificaat voor security.nl aan een bedrieger heeft verstrekt. Dit kan ook het geval zijn als je eerder bent verleid om een rootcertificaat van een onbetrouwbare certificaatuitgever te installeren.
Als daarentegen alles in orde is, is het enige dat een kwaadaardige ISP (of andere MitM/AitM) kan doen, de https verbinding enorm vertragen of blokkeren (in dat laatste geval zie je een foutmelding).
b) Als er een http-verbinding wordt opgebouwd, heb je geen idee of jouw browser met de echte of met een nepserver communiceert.
Ik heb het al vaak geschreven, https verzorgt
twee zaken:
1) Authenticatie van de server;
2) Het versleutelen van de verbinding (en, minder bekend maar wel belangrijk, het verifiëren van de integriteit van de uitgewisselde informatie).
Kortom: als jouw browser een https-verbinding, zonder foutmeldingen, kan opzetten met een webserver, heb je een behoorlijke zekerheid dat jouw browser een veilige verbinding heeft met de server waarvan de domeinnaam in de adresbalk van jouw browser wordt getoond (dat kan een nepserver zijn als daar een kopie van de private key van de echte server op staat, naast dat, zoals ik al schreef, sprake kan zijn van een onterecht uitgegeven certificaat). Een ander uitgangspunt is dat jouw computer en browser niet zijn gecompromitteerd, want dan houdt alles op.