Korte link naar deze reactie:
https://security.nl/posting/852763.
Door Anoniem: Twee reacties die vinden dat https niet nodig is, terwijl dat de aanvalsvector mogelijk heeft gemaakt. Lees je even in aub. Http is onveilig, omdat het AitM mogelijk maakt.
Klopt.
Sterker, https is, indien de server en de browser zich aan de regels houden, ijzersterk in het voorkómen dat een AitM zich in één E2EE https verbinding tussen browser en server weet te nestelen. De vraag is wel wat je daar aan hebt als er minstens drie situaties bestaan waardoor AitM's met
twee of meer https verbindingen mogelijk zijn:
• Onterecht uitgegeven DV-certificaten
• Mensen incompatibel met domeinnamen
• "Legitieme" AitM's
Onterecht uitgegeven DV-certificaten
Zie
https://crt.sh/?id=13897808125&opt=ocsp voor het volgende voorbeeld:
[browser]
^
| https verbinding #1 tussen
| de browser en de AitM nepsite
|
| vertrouwd doch onterecht
| uitgegeven certificaat voor
| dydx.exchange (nepsite)
v /
[proxy server] AitM
^
| https verbinding #2 tussen
| de AitM en de echte website
|
| vertrouwd certificaat voor
| dydx.exchange (echte site)
v /
[server]
Mensen incompatibel met domeinnamen
De incompatibiliteit van mensen met domeinnamen is een
véél groter (maar oplosbaar) probleem dan
onterecht uitgegeven DV-certificaten (verderop geef ik voorbeelden van die menselijke incompatibiliteit).
Zie
https://crt.sh/?q=m-santander.de voor het volgende voorbeeld:
[browser]
^
| https verbinding #1 tussen
| de browser en de AitM nepsite
|
| vertrouwd certificaat voor
| m–santander.de (nepsite)
v /
[proxy server] AitM
^
| https verbinding #2 tussen
| de AitM en de echte website
|
| vertrouwd certificaat voor
| santander.de (echte site)
v /
[server]
"Legitieme" AitM's
Het vorige plaatje is feitelijk onjuist, want de genoemde aanvaller verstopt zich achter Cloudflare (zie
https://www.virustotal.com/gui/domain/m-santander.de/details). Het correcte plaatje ziet er waarschijnlijk uit als volgt:
[browser]
^
| https verbinding #1 tussen
| de browser en een Cloudflare
| CDN (proxy) server
|
| vertrouwd certificaat voor
| m–santander.de (nepsite)
v /
[proxy server] "Legitieme" AitM
^ (Cloudflare)
|
| https verbinding #2 tussen
| de Cloudflare en de aanvaller
|
| vertrouwd certificaat voor
| m–santander.de (nepsite)
v /
[proxy server] AitM
^
| https verbinding #3 tussen
| de AitM en de echte website
|
| vertrouwd certificaat voor
| santander.de (echte site)
v /
[server]
Overigens weet je niets over verbinding #2 (welk servercertificaat gebruikt wordt, mogelijk gebruikt die verbinding niet eens https).
Wat is een domeinnaam
Een domeinnaam, zoals
drogist.nl of
www.ing.nl, is een identifier waarmee bijvoorbeeld een internet-
website uniek geadresseerd kan worden.
Feitelijk is zo'n domeinnaam een
alias - waaruit geenszins hoeft te blijken wie de "eigenaar" is van de website (zoals in het eerste geval).
In de basis is een domeinnaam een alias voor een IP-adres, vergelijkbaar met een naam (of nickmame) en een bijbehorend telefoonnummer in een adresboek.
Een domeinnaam kan overigens ook aan meer dan één IP-adres gekoppeld zijn (vergelijkbaar met dat iemand op meerdere telefoonnummers bereikt kan worden).
Omdat (nog steeds zeer gangbare) IPv4 adressen 32 bits lang zijn en er in theorie dus 2^32 = 4.294.967.296 IP-adressen mogelijk. Grote hoeveelheden daarvan vallen, om allerlei redenen, af, hetgeen de schaarste aan IPv4 adressen vergroot. O.a. om die reden "zitten" er vaak meerdere, soms duizenden, websites achter één IPv4 adres.
Domeinnamen voor websites hebben dan een dubbelfunctie:
• Met welk IPv4 adres moet de browser verbinding maken (DNS vraag en antwoord);
• SNI (Server Name Indication): bij het opzetten van de verbinding vertelt de browser aan de server met het via DNS verkregen IP-adres welke website precies bedoeld wordt.
Issues bij mensen en domeinnamen
Het probleem hier is dat de meeste domeinnamen feitelijk aliases zijn die niets hoeven te zeggen (of zelfs onterecht suggestief kunnen zijn) ongeschikt zijn "voor menselijke consumptie". De primaire redenen daarvoor zijn:
1) Als mensen iets met een organisatie willen of moeten doen waar zij niet eerder mee te maken hadden (zoals een gegooglede website van een loodgieter of de een of andere webshop (zie bijv.
https://security.nl/posting/851829)
valt er niets te herinneren aan de domeinnaam van die gevonden website. Die domeinnaam hoeft niets te zeggen over de eigenaar van de website, of kan zelfs suggestief (misleidend) zijn (zoals in het voorbeeld dat ik noemde);
2) Dat mensen niet goed zijn in het 100% foutloos onthouden van potentieel nietszeggende domeinnamen.
2: Issues bij eerder bezochte websites
Het kan fout gaan als de gebruiker van de browser:
• Vertrouwt op logo's en bijv. KvK-info in webpagina's en de domeinnaan getoond in de adresbalk van diens browser
daarom niet checkt;
• De domeinnaam in de adresbalk
wél checkt maar niet weet hoe deze te interpreteren (zoals
m-santander[.]de, suggererend een mobiele variant van de echte
santander.de te zijn - zie
https://www.virustotal.com/gui/domain/m-santander.de, of bijvoorbeeld in
loginmicrosoftonlinecom.pages[.]dev trapt, zie
https://www.virustotal.com/gui/domain/loginmicrosoftonlinecom.pages.dev);
• De domeinnaam in de adresbalk
wél checkt maar niet weet dat de betreffende domeinnaam niet toebehoort aan de gesuggereerde eigenaar (zoals
ing-movil[.]com, zie
https://www.virustotal.com/gui/domain/ing-movil.com);
• De domeinnaam in de adresbalk
wél checkt maar zich niet herinnert dat een streepje (minnetje) niet in de authentieke domeinnaam voorkwam, zoals destijd bij
circle-ci.com (nep) en
circl-ci.com (authentiek) - zie
https://security.nl/posting/768888. Of zich niet realiseert dat
dydx.exchange niet van dezelfde eigenaar hoeft te zijn als bijvoorbeeld
dxdy.exchange of
dydx.finance;
• De domeinnaam in de adresbalk
wél checkt maar zich niet herinnert dat de exacte TLD van de authentieke domeinnaam een andere was (zoals ik hierboven noemde), of bijvoorbeeld
example.co.com verwart met
example.com.co;
• De domeinnaam in de adresbalk
wél checkt maar zich laat foppen met een "lijkt op" IDN - een groter risico naarmate de ogen van de internetter slechter zijn. Zelf heb ik ook een leesbril nodig waarvan ik er ééntje bij mijn moeder heb laten liggen. Toegegeven, met 95 Eurocent bij de Action ook weer geen economische ramp, mits je niet te veel "cylinder" hebt (= astigmatisme, het brandpunt in bijvoorbeeld verticale richting verder weg of dichterbij dan in horizontale richting). Ook dyslexie bemoelijkt het correct lezen van domeinnamen. Overigens hoeven er in IDN's geen
zichtbare afwijkingen t.o.v. ASCII karakters te zien zijn.
Als je in Firefox bijvoorbeeld
https://www.xn--80ak6aa92e.com/ (dat wordt Punycode genoemd) opent, zie je in de adresbalk (naast het hangslotje) gewoon
apple.com (de IDN = International Domain Name - dat
andere browsers de
Punycode i.p.v. de
IDN tonen, komt doordat zo'n IDN -met vertraging- op een blocklist is gezet en/of de browser van -potentieel- feilbare "AI" gebruikmaakt). Een ander voorbeeld is
https://xn--hopfenhhle-kcb.de, dat de meeste (zo niet alle) browsers
wél als
hopfenhöhle.de (bierkoeler!) laten zien;
• De domeinnaam in de adresbalk
wél checkt maar niet ziet dat deze veel langer is (Firefox onder Android toont dan het
minder interessante linkerdeel van de domeinnaam, check bijvoorbeeld (niet bereikbaar via https)
http://klusbedrijf-constructiewerk-onderhoud-renovatie-keuken-badkamer.nl/ (bron:
https://www.sidn.nl/en/news-and-blogs/whats-the-longest-domain-name uit 2018; veel links zijn dood en zo te zien ondersteunt geen enkele https). Hoe langer het
op naam gezette deel van een domeinnaam is, hoe
stommer de registreerder, en hoe
onveiliger diens website wel eens zou kunnen zijn;
• De domeinnaam in de adresbalk
wél checkt maar niet weet dat deze niet van de bedoelde webserver is, maar van een potentieel onbetrouwbare CDN-operator (zoals Cloudflare en Fastly) terwijl vertrouwelijke informatie moet worden uitgewisseld die de three letter agencies van de USA
niet beslist niet te weten mogen komen;
• De domeinnaam in de link waar zij of hij op klikt
wél checkt, maar niet ziet dat deze een @ bevat, zoals in
https://nu.nl@nos.nl (security.nl maakt die link niet klikbaar, maar sommige browsers openen daarmee
nos.nl zonder te waarschuwen);
• De domeinnaam in de link waar zij of hij op klikt
wél checkt, maar niet ziet dat deze een 'l' i.p.v. een 'I' bevat (of andersom). Denk ook aan 'vv' versus 'w' en 'rn' versus 'm', en zo zijn er meer verwarringen mogelijk;
• De domeinnaam in de link waar zij of hij op klikt
wél checkt, maar niet weet dat/of het om een (soort) URL-shortener service gaat, zoals in
https://tiny.cc/KvK-Klarna (te vinden verderop in de pagina
https://tiny.cc/Klarna-Aflossen), of bijv.
https://i5c.us/d31136 (zie
https://infosec.exchange/@sans_isc/112887855671019627 en mijn reactie daaronder);
• De domeinnaam in de link waar zij of hij op klikt
wél checkt, maar niet weet dat/of het om een open redirect gaat;
• De domeinnaam in de link waar zij of hij op klikt
wél checkt, maar niet beseft dat/of het om een closed redirect gaat, zoals een (lange en nauwelijks "leesbare") link zoals
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.foodwatch.org%2Fnl%2Fcurrent-nieuws%2F2021%2Flandbouwgif-glyfosaat-in-wijn-van-ah-jumbo-en-lidl%2F&data=05%7C01%7Cviolette.geissen%40wur.nl%7C24b9c627a60e445c9c8808da255f98d7%7C27d137e5761f4dc1af88d26430abb18f%7C0%7C0%7C637863389784658423%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=hH9tTaPiHX6ZwtQoEqaV3onA2IAfG2GnPIgDFR%2BgLJk%3D&reserved=0 (de laatste link in de tekst van
https://www.rtl.nl/nieuws/nederland/artikel/5411313/glyfosaat-hoe-een-als-veilig-beoordeeld-bestrijdingsmiddel-nu-toch).
• En wat ik nu vergeet.
Conclusie
Domeinnamen zijn een onmenselijke, en vooral in mobiele browsers
krampachtige, "oplossing" om websites uniek mee te adresseren - zonder dat zij betrouwbare informatie over de eigenaar van een website geven. Dat mensen hier in de praktijk betrouwbaar gebruik van zouden kunnen maken, is ordinair
wensdenken door techsolutionisten.
Een prima oplossing is denkbaar (
https://security.nl/posting/852741), maar naast dat Big Tech dat (om financiële redenen) niet wil, reageren op deze site ook criminelen, anarchisten en/of niet-snappende egoïsten negatief op mijn voorstellen van dit type.