Skip to main content

Inloggen met QR Code: zo beperk je de risico’s

Wat kunnen dienstverleners en identityproviders doen om de risico’s te beperken?

Fraude met QR-codes is ‘hot’. Onder andere de politie en de Fraudehelpdesk waarschuwen dat inloggen met QR-codes niet zonder risico’s is. Wat kunnen dienstverleners en identityproviders doen om de risico’s te beperken?

Auteur: Mert Aybat, Senior Software Developer bij Signicat (voorheen Connectis)

Bij de Fraudehelpdesk en de politie Oost-Nederland komen wekelijks tientallen aangiftes van oplichting met QR-codes binnen, zo meldde onder andere De Gelderlander eerder dit jaar. In veel gevallen zijn de slachtoffers grote geldbedragen kwijt. Bijvoorbeeld na contact met een potentiële ‘koper’ op Marktplaats.

Bij deze vorm van oplichting belooft de oplichter het gevraagde geldbedrag direct over te maken. De verkoper hoeft alleen maar even een QR-code te scannen met zijn app voor mobiel bankieren. Zo weet de koper zogenaamd zeker dat hij het geld naar het juiste rekeningnummer overmaakt. In werkelijkheid krijgt de dader hiermee toegang tot de mobiele betaalomgeving van het slachtoffer.

De ‘parkeertruc’ – waarvoor eerder dit jaar twee mannen uit Rotterdam werden aangehouden – werkt op een vergelijkbare manier. De oplichters hangen op straat het verhaal op dat ze enkel contant geld hebben voor het parkeren van hun auto, maar dat ze bij de parkeerautomaat alleen kunnen pinnen. De verdachten vragen slachtoffers via een QR-code vijf euro over te maken, in ruil voor cash. De QR-code geeft de oplichters echter toegang tot de bankgegevens van de slachtoffers.

QRLJacking

Deze aanvalstechniek wordt ook wel ‘Quick Response Code Login Jacking’ (QRLJacking) genoemd. Het Open Web Application Security Project (OWASP) waarschuwt hier al enkele jaren voor. Bij QRLJacking zet de hacker een sessie met bijvoorbeeld een bank op, kopieert de QR-inlogcode, plaatst deze code op een frauduleuze website en lokt de slachtoffers hier naartoe.

Op het moment dat een slachtoffer de gekopieerde code met een mobiele app scant, stuurt de mobiele telefoon gevoelige gegevens over de identiteit van de gebruiker door naar een centrale server. Deze server stuurt vervolgens een notificatie naar de browsersessie, zoals dat ook gebeurt bij een gangbare ‘QR Code Login’. In dit geval behoort de browsersessie echter toe aan de hacker die met de verkregen gegevens uit naam van het slachtoffer kan inloggen.

Risico’s mitigeren

Dat QRLJacking zo succesvol is, heeft meerdere oorzaken. De tools om het proces van ‘kopiëren, plakken en verleiden’ te automatiseren, zijn breed beschikbaar. Een aanval is zo opgezet. Door het laagdrempelige karakter van QR-codes hebben aanvallers ook sneller succes. Bij het invullen van gebruikersnaam en wachtwoord zijn gebruikers doorgaans op hun hoede. Een QR-code is in een split second gescand, nog voordat de gebruiker na heeft kunnen denken over de mogelijke gevolgen.

Het is lastig om QRLJacking volledig uit te bannen. Er zijn echter wel een aantal dingen die dienstverleners en identityproviders bij de implementatie van QR Code Login kunnen doen om de risico’s te beperken:

1. Maak gebruikers bewust van de risico’s

Steeds meer gebruikers zijn zich ervan bewust dat hun gebruikersnaam en wachtwoord nooit in verkeerde handen mogen vallen. Het besef dat QR-codes mogelijk toegang bieden tot gevoelige gegevens ontbreekt echter vaak. Dat bewustzijn moet nog groeien. Bijvoorbeeld notificaties tijdens het inloggen met QR-codes kunnen hierbij helpen.

2. Controleer op locatie

Als er sprake is van ‘jacking’, dan bevinden de mobiele telefoon en de browsersessie zich (waarschijnlijk) niet op dezelfde locatie. De browsersessie behoort immers toe aan de hacker, en die kan in China zitten terwijl de gebruiker vanuit Nederland een code probeert te scannen. Het is mogelijk om zo’n verdachte situatie vanuit de mobiele app te detecteren.

3. Dwing ‘same network login’ af

Het controleren of mobiele telefoon en de browsersessie zich op dezelfde locatie bevinden, is niet zaligmakend. De aanvaller kan die locatie manipuleren. Een alternatief is om af te dwingen dat de mobiele telefoon en bijvoorbeeld de laptop met de browsersessie met hetzelfde netwerk verbonden zijn. Dit betekent wel dat de gebruiker niet kan inloggen als zijn telefoon is verbonden met 4G en zijn laptop met het wifinetwerk.

4. Beperk de levensduur van QR-codes

Een andere mogelijkheid is om de ‘levensduur’ van QR-codes in te stellen op bijvoorbeeld 10 seconden. Een gekopieerde code is dan al snel onbruikbaar. Toch is deze aanpak ook niet waterdicht. De aanvaller kan deze beperking omzeilen door de getoonde QR-code continu te verversen. Ook hiervoor is tooling beschikbaar.

5. Gebruik QR-codes alleen als multifactor login

De belangrijkste conclusie is misschien wel dat QR Code Login niet bulletproof is te maken. Het lijkt een toepassing die broken by design is. Mijn belangrijkste advies is dan ook om inloggen met uitsluitend een QR-code in geen enkel geval toe te staan. Wel kan een QR-code dienen als ‘tweede factor’ voor authenticatie nadat de gebruiker al zijn gebruikersnaam en wachtwoord heeft ingevoerd. Ook is het mogelijk om QR-code login alleen toe te staan op een “bekend” apparaat, dat wil zeggen een apparaat dat al eerder gekoppeld is aan de gebruiker.