Door Briolet: Dit geeft wel weer aan dat je nooit via een externe link naar je bank moet gaan. En kun je er echt niet omheen, moet je het certificaat zelf bekijken en niet genoegen nemen met slechts de aanwezigheid van een slotje.
Je
hoeft het servercertificaat niet te bekijken, jouw webbrowser checkt dit voor jou en waarschuwt je als er iets niet klopt.
Sterker, ik raad het bekijken van https servercertificaten af tenzij je er echt verstand van hebt, want dit is voor de meeste mensen onbegrijpelijke kost. Bovendien, in Firefox voor Android en iOS, en Safari voor iOS en iPadOS,
kan ik het certificaat niet eens bekijken. En sowieso is het essentieel dat je checkt of de in de URL-balk getoonde domeinnaam van de bedoelde organisatie (met de bedoelde toepassing) is; een servercertificaat kan veel meer domeinnamen bevatten. Een certificaat checken leidt vooral af.
Ik heb, ook voor mijzelf, maar eens op een rijtje gezet wat je allemaal
wél moet weten om redelijk veilig te kunnen internetbankieren via een webbrowser, met als voorbeeld de Rabobank. Het lijkt moeilijk en veel, maar in de praktijk valt het m.i. reuze mee, vooral zodra je dit een tijdjje serieus hebt geoefend.
Vooraf: het essentiële deel van de zichtbare domeinnaam plus de (indien getoond) eerstvolgende slash maak ik vet en onderstreept in de voorbeelden hieronder (in "klikbare" URL's kan ik dat niet). Dus bijvoorbeeld "rabobank.nl", maar ook "www.rabobank.nl/particulieren". Merk op dat in dat laatste voorbeeld ook de punt tussen "www" en "rabobank" vet en onderstreept is, omdat deze ook essentieel is (zie punt 14 hieronder).
Met bakhaken, zoals in "[*.]" wordt bedoeld dat wat tussen die bakhaken staat optioneel is; de bakhaken zelf zijn ter indicatie (die horen niet in URL's).
Met een sterretje "*" bedoel ik hier 1 of meer karakters, in dit geval inclusief één of meer (niet direct opeenvolgende) punten: dus bijvoorbeeld "www." of "www.bankieren.".
Dubbele aanhalingstekens " gebruik ik om URL's en domeinnamen te onderscheiden van de tekst eromheen (URL's bevatten nooit dat soort aanhalingstekens).
Ik schrijf "https" steeds met een vette "s" om duidelijk onderscheid te maken met "http".
Je hoeft niet te weten waarom je bij "https" redelijk zeker weet dat jouw webbrowser een versleutelde verbinding heeft met de website waarvan de domeinnaam in de URL-balk van de webbrowser wordt getoond (dat hier uitleggen voert te ver), als je maar onthoudt dat het slotje op de juiste plaats getoond moet worden (zonder streep er doorheen).
Om redelijk veilig te kunnen internetbankieren met een webbrowser, moet je het volgende weten:0) Wat een webbrowser is, hoe je deze start en afsluit, dat deze meerdere tabs of vensters open kan hebben en hoe je daartussen wisselt.
1)
Belangrijk: Dat een door jouw webbrowser getoonde webpagina een (bijna of exact) identieke kopie kan zijn van een pagina afkomstig van een
andere website.
2) Dat je dus,
vóórdat je iets invult, downloadt of voor authentiek aanneemt wat je leest,
altijd eerst moet checken of je op de bedoelde website zit.
3) Dat je dit vaststelt aan de hand van de domeinnaam
plus slotje (of "http
s://
naam.tld/" - waarbij je i.p.v. "
naam.tld" moet denken aan "
rabobank.nl"). Nb. TLD staat voor Top Level Domain.
4) Welk deel van jouw webbrowser, bij nep,
wel betrouwbare informatie toont (tenzij "volledig scherm" is ingeschakeld, want dan kan
alles wat je ziet nep zijn).
5) Wat de URL-balk is in jouw webbrowser en waar je deze vindt.
6) Wat een URL is en welk deel daarvan de domeinnaam is.
7) Dat webbrowsers vaak slechts een deel van de URL tonen in de URL-balk (tenzij je er in klikt of de URL kopieert naar het klembord en dan plakt in kladblok of een andere editor of tekstverwerker).
8) Wat een domeinnaam precies is en welke optionele onderdelen (tussen "//" en eerstvolgende "
/" - scheidingen die zelf niet altijd door webbrowsers worden getoond)
niet tot een domeinnaam behoren.
9) Dat
spelfouten ('0' i.p.v. 'o', '1' of 'i' i.p.v. 'l', 'rn' i.p.v. 'm', 'vv' i.p.v. 'w' etc.) in een domeinnaam
altijd wijzen op nep.
10) Dat een domeinnaam misleidende karakters uit bijvoorbeeld het Griekse schrift kan bevatten, en dat je dergelijke potentieel bedriegelijke domeinnamen eruit pikt door, in de instellingen van de webbrowser (indien beschikbaar) "show punycode"
aan te zetten (of "show IDN" / "show International Domain Names"
uit) - of door de URL uit de URL-balk via het klembord in kladblok te plakken en te bekijken (voor meer info zie de 2e helft van
https://security.nl/posting/734218). Toegegeven, de "punycode" domeinnaam kun je ook zien door het https servercertificaat te inspecteren.
11) Dat de domeinnaam pas eindigt bij de eerstvolgende forward slash ("
/") - die niet altijd getoond wordt (zie het volgende punt).
12) Dat sommige webbrowsers de forward slash achter de domeinnaam soms niet tonen, nl. als er niets volgt achter die "
/", zoals in slotje + "
rabobank.nl" of mogelijk "https://www
.rabobank.nl" (klik bijv. op de volgende link -die in een nieuw venster of nieuw tabblad opent- en kijk wat je ziet in jouw webbrowser:
https://www.security.nl/).
13) Dat je domeinnamen van rechts naar links moet lezen, en dat de eigenaar van
naam.tld altijd zeggenschap heeft over subdomeinnamen (en subsubdomeinnamen etc.) in
sub.naam.tld. Dat wil niet altijd zeggen dat de organisatie met
naam verantwoordelijk is en/of toegang heeft tot servers achter subdomeinen, zoals bijvoorbeeld in het geval van
bedrijfsnaam.sharepoint.com" en
theregister.co.uk. Ook bij iets als
mailings.rabobank.nl bestaat de kans dat de server daarvoor van een andere organisatie is, waardoor de beveiliging daarvan minder goed kan zijn dan van servers van de bank zelf. Kijk dus ook altijd naar subdomeinnamen: iets als
test.rabobank.nl is hartstikke verdacht als "productie" website voor internetbankieren; criminelen zouden zo'n testserver mogelijk eenvoudiger kunnen hacken en vervolgens phishingmails met een link daarnaar verzenden.
14) Dat punten (en niks anders) in domeinnamen de essentiële scheidingstekens zijn. Dus dat
"
wwwrabobank.nl/" en bijvoorbeeld
"
www-rabobank.nl/" en
"
www_rabobank.nl/"
niet van de Rabobank zijn, terwijl
"www
.rabobank.nl/" en
"
rabobank.nl/"
wél van de Rabobank zijn.
15) Dat veel websites genaamd "www
.naam.tld" jouw browser automatisch doorsturen naar "
naam.tld" maar dat er ook websites zijn die dit
andersom doen (zoals
https://security.nl/).
16) Dat webbrowsers het voorvoegsel "www." vaak niet tonen in de URL-balk (en je dus geen idee hebt van punt 15).
17) Dat het TLD zoals "
.nl even essentieel is als de tekst daarvoor; "
rabobank.ni en "
rabobank.eu" kunnen van cybercriminelen zijn.
18) Dat het handig kan zijn om te weten dat "
.nl"
niet betekent dat de server in Nederland staat, maar ook niet dat de
eigenaar van die domeinnaam een Nederlander is of in Nederland gevestigd is. Ook handig om te weten is dat de meeste webpagina's jouw webbrowser opdragen om tevens "content" (pagina-onderdelen waaronder plaatjes, maar dit kan vanalles zijn) van
andere websites te laden, waar je normaal gesproken geen domeinnamen van te zien krijgt. Dit is niet zonder risico's maar zeker als beginner kun je hier weinig tot niets tegen doen, anders dan "third party cookies" disablen in de instellingen van jouw webbrowser (wat er soms toe kan leiden dat de primaire website niet goed meer werkt).
19)
Belangrijk: dat je zeker moet weten dat de domeinnaam van de bedoelde organisatie is! En hoe je dat eventueel (bij twijfel) vaststelt.
20) Dat het oude "http://" verbindingstype (ook protocol genaamd)
geen enkele garantie biedt dat jouw webbrowser verbinding heeft met de website waarvan de domeinnaam in de URL-balk van jouw webbrowser getoond wordt. Als er wel een verbinding is met de kennelijke website, kan die verbinding worden
afgeluisterd en er kan ongewenste data worden
geïnjecteerd of
vervangen (evt. de hele pagina's). Jouw webbrowser kan, bijvoorbeeld tijdens het opzetten van de verbinding met de bedoelde website, ook worden doorgestuurd naar een webite met een andere domeinnaam (maar de meest geniepige aanval is natuurlijk dat je de domeinnaam van de bedoelde website ziet, terwijl derden volledige controle hebben over wat jij ziet en afluisteren wat jij invoert. Met name via public WiFi is dit risico
groot. Daarom hoort elke zichzelf respecterende website het "http
s" protocol te gebruiken; dit voorkomt met redelijke betrouwbaarheid alle genoemde aanvallen.
21) Dat het altijd verstandig is om, in plaats van kortweg "
naam.tld" in te tikken in de URL-balk,
"https://
naam.tld" in te tikken. Als je er niet "https://" aan laat voorafgaan, zijn er verschillende mechanismes die proberen om de verbinding
niet via "http" maar meteen via "http
s tot stand te brengen (om te voorkomen dat die verbinding kan worden afgeluisterd of gekaapt), maar die zijn niet voor 100% betrouwbaar.
Als je
zelf "http
s://" ervóór tikt zal nooit worden teruggevallen op het risicovolle "http" protocol (tenzij als gevolg van een configuratiefout op de server). Advies: vooral als je wilt internetbankieren, zeker via WiFi van een ander (in dit voorbeeld bij de Rabobank), tik dan:
"http
s://
rabobank.nl" en sla eventuele (certificaat-) waarschuwingen nooit in de wind. De meeste websites sturen jouw browser overigens automatisch door van
"http://
naam.tld/" naar
"http
s://
naam.tld/", maar dat doen ze niet allemaal. Denkbaar is zelfs (bijv. t.g.v. een configuratiefout) dat het
omgekeerde het geval is. Ook komt het meestal onzichtbare scenario
"http
s" -> "http" -> "http
s" voor. Dit is gevaarlijk, want zodra een kwaadwillende met toegang tot de verbinding (bijvoorbeeld bij public WiFi) de http-verbinding "voorbij" ziet komen, kan zij of hij deze kapen.
Controleer daarom
altijd de domeinnaam + slotje
nadat de website geheel geladen is, doch voordat je iets invoert, downloadt of leest. Daarmee detecteer je ook eventueel door jouzelf gemaakte tikfouten bijtijds.
22) Dat het verbindingstype "http
s://", indien er geen (certificaat-) foutmeldingen zijn, met redelijke zekerheid aantoont dat jouw webbrowser de website met de getoonde domeinnaam heeft
geauthenticeerd en dat daar nu een versleutelde verbinding mee tot stand is gekomen,
of23) Als alternatief voor het vaak niet meer getoonde "https://" voorvoegsel: dat, op de juiste plaats (niet
in de webpagina), een slotje zonder waarschuwingen wordt getoond (dus niet met een streep erdoor, zo'n streep betekent dat de verbinding niet veilig is). Stop als er iets niet klopt en probeer niet in te loggen. Probeer het later nog eens. Als de waarschuwingen blijven bestaan, raadpleeg dan een deskundige.
Voor de Rabobank moet het gaan om "http
s://[*
.]
rabobank.nl/boeit/niet" waarbij "*
." bijvoorbeeld kan staan voor "www
.", "www.bankieren
." of "ideal
.".
Voorbeelden van in de URL-balk getoonde correcte domeinnamenAls de browser "https://" en "https://www."
niet laat zien, zijn bijvoorbeeld correct:
goed: slotje + "
rabobank.nl/particulieren"
goed: slotje + "
rabobank.nl"
goed: slotje +"bankieren
.rabobank.nl/nog/iets"
goed: slotje +"ideal
.rabobank.nl/'
goed: slotje +"ideal
.rabobank.nl'
Als de browser "https://" en "https://www."
wél laat zien, zijn bijvoorbeeld correct:
goed: "https://
rabobank.nl/particulieren"
goed: "https://
rabobank.nl"
goed: "https://www
.rabobank.nl/particulieren"
goed: "https://bankieren
.rabobank.nl/"
goed: "https://ideal
.rabobank.nl/"
goed: "https://ideal
.rabobank.nl"
Voorbeelden van in de URL-balk getoonde foute domeinnamenAlle andere vormen en/of spellingen zijn foute boel, zoals (bij een browser die "https://" niet toont). Sowieso hoort er een slotje getoond te worden (anders moet je
zeker niet internetbankieren):
fout: slotje + "
rab0bank.nl/"
(cijfer 0 i.p.v. letter o)
fout: slotje + "
robabank.nl/"
(letters a en o omgewisseld)
fout: slotje + "
rabobank.ni/"
(TLD onjuist)
fout: slotje + "
rabobank-secure.nl/"
(verkeerd domein)
fout: slotje + "
mijnrabobank.nl/"
(geen punt tussen "mijn" en "rabobank")
fout: slotje + "rabobank.nl:inloggen@
rabobank.xyz/"
(user-ID + password ervoor, TLD onjuist)
fout: slotje +
"rabobank
.nl-izucb1bvav1ev9ad1v817g.xyz/"
(domein = "nl-
RANDOM.xyz")
Fout als de browser "http
s://"
wél toont:
fout: "http
s://
rab0bank.nl/"
(cijfer 0 i.p.v. letter o)
fout: "http
s://
robabank.nl/"
(letters a en o omgewisseld)
fout: "http
s://
rabobank.ni/"
(TLD onjuist)
fout: "http
s://
rabobank-secure.nl/"
(verkeerd domein)
fout: "http
s://
mijnrabobank.nl/"
(geen punt tussen "mijn" en "rabobank")
fout: "http
s://rabobank.nl:inloggen@
rabobank.xyz/"
(user-ID + password ervoor, TLD onjuist)
fout: "http
s://rabobank
.nl-izucb1bvav1ev9ad1v817g.xyz/"
(domein = "nl-
RANDOM.xyz")
Veiliger: App (tenzij)Als je de
juiste app (echt van
jouw bank) voor internetbankieren gebruikt,
en je nooit laat overhalen om alsnog een webbrowser te gebruiken, spelen geen van bovenstaande problemen. Daarom hebben banken liever dat hun klanten de bank-app gebruiken.
Echter, ook met een app blijft het risico op social engineering bestaan: als je je door (vaak uiterst geraffineerde) criminelen laat overtuigen dat je, om welke reden dan ook, geld moet overmaken naar een bankrekening van een geldezel, of dat zij je zover krijgen om een link zogenaamd naar de website van jouw bank toch in een webbrowser te openen, dan biedt zo'n app natuurlijk geen bescherming.
DisclaimerIk heb geprobeerd de lijst met "noodzakelijke weetjes" correct en zo compleet mogelijk te maken, maar er zitten heel veel opmaakcodes in waarbij ik mij vergist kan hebben, en ook kan ik aandachtspunten vergeten zijn of zaken verkeerd begrijpen of onjuist hebben verwoord (ik word graag op fouten en ontbrekende items gewezen).
Nb. één uur na plaatsing van deze post kan ik er niets meer in wijzigen, als deze materie je interesseert check s.v.p. hieronder voor posts van mij met aanvullingen en/of correcties (verwijzingen naar latere posts vind je aanvankelijk ook in de linkerkolom in
https://security.nl/profile?alias=Erik+van+Straten). En in een deel van de gevallen heb ik alleen beschreven
dat je iets moet weten, maar niet hoe je dat precies te weten kunt komen (de post is lang genoeg zo).