Misverstand over "Alleen-HTTPS-modus"
Als u in uw browser de "Alleen-HTTPS-modus" aanzet (mits beschikbaar), dan kunt u
nog steeds gebruik maken van
http:// verbindingen. Wel moet u dat dan "elke keer" handmatig goedkeuren.
Ik heb hierboven "elke keer" tussen dubbele aanhalingstekens gezet, want nadat u éénmalig toestemming hebt verleend voor een webserver (voor bijvoorbeeld
http://http.badssl.com of
http://gemeente.amsterdam, uw thuisrouter of een ander IoT apparaat aan uw lokale netwerk), blijft die toestemming in elk geval gelden zolang u de browser niet helemaal afsluit (hoe dit precies werkt kan afhangen van de gebruikte browser).
Met "Alleen-HTTPS-modus" UITgeschakeld (default)
Als u in de adresbalk van uw browser bijvoorbeeld
ing.nl intikt (of op de link
http://ing.nl klikt,
proberen de meeste moderne browsers eerst
https://ing.nl. En als dat lukt, blijft de browser
https:// gebruiken.
Opmerking: hier kan ook een
ander mechanisme ingrijpen, namelijk HSTS - maar dát werkt niet in alle gevallen, bijvoorbeeld:
• Als u een private browser tab gebruikt (dit hoeft niet voor alle browsers te gelden);
• Als u de website voor het eerst bezoekt met uw huidige browser (of meer dan 1/2 of 1 jaar niet bezocht hebt);
• De website HSTS niet of niet goed ondersteunt.
Uitleg over HSTS gaf ik eerder in "
Steekproef: overheid + HSTS"
https://security.nl/posting/802243.
Dat eerst (ongevraagd)
https:// geprobeerd wordt, is een verbetering t.o.v. "vroeger", toen browsers (in de beschreven situatie, bijv.
http://ing.nl) "gewoon http deden" en er pas van
https:// gebruik gemaakt werd
indien en nadat de server de browser doorstuurde naar dezelfde (of een andere) server via een
https:// verbinding (zoals
https://www.ing.nl).
De verbetering bestaat eruit dat dit
passief "afuisteren" en eventueel
passief kapen van de verbinding, tijdens het opzetten daarvan, voorkómt. En bij héél stomme servers (die wel
https:// ondersteunen maar de browser daar niet automatisch naar doorsturen) voorkómt dit dat derden kunnen afluisteren en wijzigen.
Echter: dit is
zinloos bij een
actieve AitM. En die AitM hoeft niet eens "
in uw netwerk" (*) te zitten: een gespooft (vervalst) DNS-antwoord volstaat.
(*) Denk aan een vals access point bij publieke WiFi, of het netwerk van een hotel of bedrijf (waar u op bezoek bent) waar kwaadwillenden toegang tot hebben.
Demonstratie (Windows)Hiermee simuleren we een DNS-aanval. Dat is veel lastiger voor aanvallers als u bijv. DoH (DNS over Https) gebruikt, maar dan zijn, op onveilige netwerken, nog steeds AitM-aanvallen mogelijk; het effect daarvan is zeer vergelijkbaar (uw browser komt op een andere site uit,
met https, die als twee druppels water op de echte site
kan lijken).
In dit voorbeeld gebruik ik
almere.nl, een website die (ondanks wetgeving van medio vorig jaar) in elk geval HSTS nog steeds niet juist geconfigureerd heeft (zie
https://internet.nl/site/almere.nl/2770195/). Dit om te voorkómen dat HSTS mijn tests in de war schopt.
1) Start uw browser.
2) Stel vast dat "altijd HTTPS" o.i.d. in uw browser
nog niet aan staat door
http://http.badssl.com te openen. Als er een rode pagina met in witte letters "http.badssl.com" verschijnt, accepteert uw browser, zonder vragen, http-verbindingen.
3) Voeg toe aan het bestand
C:\Windows\System32\Drivers\hosts :
Nb. dat IP-adres is van
www.security.nl. Het handige van deze website is dat deze aan https-verzoeken meegegeven domeinnamen negeert.
Opmerking: zo'n regel in de hosts file heeft geen effect op subdomeinnamen (zoals
www.almere.nl).
4) Tik in de adresbalk van uw browser:
almere.nl en druk op Enter. Als ik dat doe verschijnt de home-pagina van
https://www.security.nl/ - zonder ook maar één enkele foutmelding.
Indien mijn browser zou zijn doorgestuurd naar bijvoorbeeld
https://www-almere.nl, of naar
https://almere.nu, en de getoonde pagina had als twee druppels water op die van
https://almere.nl geleken, had ik
heel goed naar de adresbalk moeten kijken om dat op te merken (ik weet zeker dat heel veel mensen in dit soort trucs trappen).
5) Vergeet na afloop niet om de aan de hosts file toegevoegde regel te verwijderen.
Met "Alleen-HTTPS-modus" INgeschakeld
Of ik "Alleen-HTTPS-modus" kon aanzetten heb ik getest bij de volgende browsers:
Android:
- Firefox: ja
- Firefox Focus: ja
- Firefox Nightly: ja
- Chrome: ja
iOS/iPadOS:
- Chrome: ja
- Safari:
nee- Firefox:
nee- Edge:
neeWindows (alleen 10 getest):
- Firefox: ja
- Edge: ja - na veel uitzoekwerk (zie onder)
Als "Alleen-HTTPS-modus" aan staat, krijg ik altijd een melding uit de betreffende browser zelf als ik
http://http.badssl.com (of bijv.
http://gemeente.amsterdam) open. In alle gevallen kan ik
zelf kiezen of ik door wil gaan via het onveilige http.
TIP: in veel gevallen ondersteunt de
uiteindelijke website
wel https, maar een "jump site" daarvoor niet. Destijds was dat ook het geval bij
http://werk.nl (die geen https ondersteunde) maar de browser wél doorstuurde naar
https://www.werk.nl. Als u een "geen https" foutmelding krijgt op bijvoorbeeld
example.com kunt u proberen of
www.example.com wél https ondersteunt ("example" is hier een voorbeeld).
Windows Edge: "Alleen-HTTPS-modus" INschakelen
Microsoft heeft, in al haar "wijsheid", de instelling "Alleen-HTTPS-modus" verwijderd uit de settings van Edge.
U kunt dit aanzetten door handmatig het register te editten, of door het volgende tekstbestand te maken en op te slaan onder bijv. de bestandsnaam
EdgeForceHttps.reg, en daarop te dubbel-klikken (geen admin-rechten nodig, en dit geldt alleen voor de
nu ingelogde gebruiker):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge]
"AutomaticHttpsDefault"=dword:00000002
LET OP: Als u "veilige DNS" (secure DNS) gebruikte, wordt dat hierdoor uitgeschakeld!
Dat kan, ongetwijfeld, ook wel weer met een policy (c.q. de daaruit resulterende registerwaarde) worden gecorrigeerd, maar dat heb ik niet verder uitgezocht.
LET OP: Tijdens mijn experimenten met de "demo" middels de hosts-truc reproduceerden wijzigingen soms niet. Kennelijk had Egde
gecached dat
almere.nl de inhoud van
www.security.nl bevatte. Het wissen van alle browsergeschiedenis loste dit probleem op (mocht u zelf aan het experimenteren slaan, verwijder dan regelmatig de browser history).
Desgewenst kunt u de instelling weer verwijderen door regedit te starten, de sleutel (links) "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge" te openen, en rechts de waarde-naam "AutomaticHttpsDefault" geheel te verwijderen (door de .reg file opnieuw te draaien wordt deze hersteld). Na dit soort wijzigingen in het register moet u Edge geheel sluiten (alle eventuele vensters) en opnieuw starten.
Waarom "Alleen-HTTPS-modus" INschakelen helpt
In links genoemd of getoond op TV, in kranten en in tijdschriften, word het voorvoegsel
https:// in bijna alle gevallen
weggelaten - en ik ken maar weinig mensen die dat er
zelf vóór typen in de adresbalk van hun browser.
Maar ook bij links in e-mails, in SMS-berichten, in QR-codes en zelfs in webpagina's kan het voorvoegsel zijn weggelaten, of staat er glashard
http:// voor - terwijl de gelinkte website gewoon
https:// ondersteunt.
Ook als het risico hierdoor
meestal klein is, vind ik dit zonde. Ik werk al tijden met "HTTPS-Only" en ondervind zelden onverwachte problemen (en als die er zijn, is dat voor mij vaak reden voor extra onderzoek :-)
Gewoon aanzetten dus, is mijn advies. En klaag bij de eigenaar als diens website niet veilig geconfigureerd is; op de eerste plaats is dat in
uw belang!