Zoals een man zegt: „Er zijn geen problemen, alleen oplossingen.”
Nederlands

QR Quishing Detector

Veelgestelde vragen

Welke codes leest de app?

Antwoord

Met de camera en uit een afbeelding die je kiest, leest de app QR-codes, Data Matrix-, Aztec- en PDF417-codes en deze streepjescodes: EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, Codabar, ITF, GS1 DataBar, GS1 DataBar Limited en GS1 DataBar Expanded.

Een deel daarvan hangt af van de telefoon of van hoe de code wordt gelezen. GS1 DataBar, GS1 DataBar Limited en GS1 DataBar Expanded worden alleen op een iPhone gelezen, niet op een Android-telefoon. Codabar is met de camera gelezen op een Android-telefoon en op een iPhone, maar uit een afbeelding is het op geen van beide nog gelezen: het enige geprobeerde voorbeeld werd niet gelezen. Hoe een iPhone met een UPC-A-code omgaat, is nog niet op een echte iPhone gecontroleerd.

Nog vier streepjescodes, Code 11, MSI Plessey, Pharmacode en Telepen, worden alleen gelezen uit een afbeelding die je kiest, niet met de camera. De eigen codelezer van de telefoon, die de camera gebruikt, kent ze niet, dus leest de app ze zelf uit de afbeelding. Pharmacode wordt alleen met de goede kant boven gelezen, dus een code die ondersteboven op de afbeelding staat, kan een ander getal opleveren: controleer het getal aan de hand van de verpakking.

De beschrijving van de app in de winkel en de startpagina van deze website zeggen alleen dat de app QR-codes, Data Matrix-, Aztec- en PDF417-codes en gangbare streepjescodes zoals EAN en Code 128 leest. De melding die de app vóór je eerste scan toont, noemt de codes bij naam en laat er een aantal weg: GS1 DataBar, GS1 DataBar Limited en GS1 DataBar Expanded, die alleen op een iPhone worden gelezen; UPC-A, die nog niet op een echte iPhone is gecontroleerd; en Code 11, MSI Plessey, Pharmacode en Telepen, die alleen worden gelezen uit een afbeelding die je kiest en op een Android-telefoon zijn bevestigd, maar nog niet op een iPhone. De app leest ze wel waar dat kan.

Bevat een code een webadres dat de app kan controleren, dan geeft de app het een beoordeling, zoals het antwoord over de risicoscore hieronder uitlegt. Inhoud die helemaal geen adres is, zoals de cijfers van de streepjescode van een product, de gegevens van een wifinetwerk of platte tekst, toont de app zoals gescand, gemarkeerd als NIET GEANALYSEERD. Dat is geen uitspraak dat het veilig is. Het resultaatscherm kan aanbieden die inhoud met een andere app te delen.

Waarom leest de app sommige codes niet, zoals Spotify Codes?

Antwoord

Voor de codes die de app wel leest, zie Welke codes leest de app?

Er zijn andere standaardcodes die de app niet ondersteunt, zoals Micro QR, rMQR, MaxiCode, DotCode en Han Xin. Komt de app zo'n code tegen, dan kan de camera helemaal niets tonen of melden dat het een streepjescode is die de app niet kan herkennen; bij een afbeelding die je kiest, kan de app melden dat er geen code is gevonden of dat het een streepjescode is die de app niet kan herkennen.

Sommige apps en diensten hebben een eigen soort code, zoals Spotify Codes, Snapcodes van Snapchat en App Clip Codes van Apple. De app ondersteunt deze soorten code niet, en Spotify heeft geen volledige specificatie van Spotify Codes gepubliceerd. Een Snapcode kan een website openen en een App Clip Code bevat een webadres, dus wees net zo voorzichtig met wat ze openen als met elke andere link.

Een Spotify Code is het Spotify-logo met daarachter een rij streepjes van verschillende hoogte. Er staat geen webadres in, maar een kort getal dat alleen de servers van Spotify kunnen omzetten in een Spotify-adres. Een Spotify Code opent dus iets op Spotify. Scan een Spotify Code met de Spotify-app om hem te gebruiken.

Om een Spotify Code om te zetten in een adres zou de app de servers van Spotify moeten raadplegen. QR Quishing Detector doet dat niet: de app maakt zelf nooit verbinding met het adres in een code, en het enige deel van een scan dat de app via internet kan versturen, is een domeinnaam, voor het optionele opzoeken van de domeinleeftijd dat in het privacybeleid wordt beschreven.

Weet je dat een code een gewone QR-code is en leest de app hem niet, meld het dan; het antwoord op Hoe meld ik een probleem of stel ik een functie voor? zegt waar.

Hoe werkt de risicoscore?

Antwoord

Voor een webadres dat de app kan controleren, voert de app op je apparaat een reeks controles uit. Elke controle kijkt naar de vorm van het adres en zoekt één waarschuwingssignaal, zoals de naam van een merk in een adres dat niet een van de eigen adressen van dat merk is, een dienst die links verkort en zo verbergt waar de link heen gaat, of een gebruikersnaam vóór een "@" die de echte bestemming verbergt. De app bezoekt de site nooit en kan dus niet zien wat er werkelijk op staat.

Elk waarschuwingssignaal dat een controle vindt, wordt als bevinding vermeld, en elke bevinding telt haar eigen punten op bij de score; een controle kan meer dan één bevinding opleveren, bijvoorbeeld één voor elke merknaam in het adres. De score bepaalt de beoordeling: LAAG RISICO, GEMIDDELD RISICO of HOOG RISICO. Sommige waarschuwingssignalen tellen zwaarder dan andere, en herkent de app een gevaarlijk soort adres, zoals een javascript:-adres, dat code uitvoert in plaats van een webpagina te openen, dan is het resultaat HOOG RISICO.

Het resultaatscherm toont de beoordeling en de score, en somt op wat de app heeft gevonden, met de punten die elke bevinding optelt. In de app staat in Opties het scherm "Hoe de score werkt", met elke controle, haar punten en het scorebereik van elke beoordeling. De domeinleeftijd verandert de score nooit, en de experimentele controle op namen die op merken lijken, hieronder beschreven, telt alleen mee als je haar aanzet.

Inhoud die helemaal geen adres is, zoals platte tekst, de gegevens van een wifinetwerk of een contactkaart, krijgt geen beoordeling: de app toont die als NIET GEANALYSEERD. Dat is geen uitspraak dat het veilig is.

De score is een hulpmiddel bij je eigen oordeel. Een lage score betekent niet dat de link veilig is, en een hoge score is geen bewijs van phishing. Bij twijfel: open de link niet, maar ga zelf naar de officiële site of app van de organisatie.

Wat doet het opzoeken van de domeinleeftijd, en wat betekent het resultaat?

Antwoord

Het opzoeken van de domeinleeftijd vertelt je hoe lang het domein van een gescand webadres al geregistreerd is. Het staat uit totdat je het aanzet: zet in Opties "Domeinleeftijd opzoeken" aan en kies "Aanzetten" in het venster dat het uitlegt. Vanaf dan zoekt de app het domein op van elk webadres dat de app controleert, totdat je het weer uitzet.

Zolang de app draait, onthoudt de app de registratiedatums die onlangs zijn opgehaald, zodat een latere scan van een adres op hetzelfde domein uit het geheugen beantwoord kan worden, zonder nieuw verzoek. Is er een verzoek nodig, dan verzendt de app alleen de domeinnaam, zoals example.com voor een adres op www.example.com, en nooit het volledige adres. De app verzendt die via HTTPS naar het register van de extensie van dat domein, en het verzoek maakt je IP-adres zichtbaar voor dat register, zoals elk internetverzoek. De app maakt zelf nooit verbinding met de gescande site. Het privacybeleid beschrijft wat er wordt verzonden en naar wie.

Het resultaat staat onder de beoordeling, in een vak "Domeinleeftijd". Het zegt hoe lang geleden het domein is geregistreerd: een recente registratie in dagen en een oudere in maanden of jaren, afgerond; als de echte leeftijd niet dicht bij de getoonde waarde ligt, zegt het vak dat het bijna of meer dan zoveel is. Is het domein heel nieuw, dan zegt het vak dat, en dat oplichtingssites vaak pas kort geregistreerd zijn, maar dat een jong domein daar geen bewijs van is. Voor een adres op een subdomein dat een hostingplatform uitgeeft, toont het vak de leeftijd van het platform, omdat zulke subdomeinen niet apart worden geregistreerd. Zolang het opzoeken loopt, staat dat in het vak.

De domeinleeftijd verandert de score en de beoordeling nooit: het is alleen extra informatie.

Is er geen leeftijd om te tonen, dan zegt het vak waarom. "Niet beschikbaar voor dit domein." betekent dat de app geen register over dit domein kon raadplegen, bijvoorbeeld omdat de extensie geen opzoekdienst van een register heeft. "Niet van toepassing op dit adres." betekent dat het adres geen geregistreerde domeinnaam heeft om naar te vragen, bijvoorbeeld als het als IP-adres is geschreven. In die twee gevallen wordt er niets verzonden. "Ophalen mislukt." betekent dat de app geen bruikbare registratiegegevens kon krijgen: bijvoorbeeld omdat de verbinding mislukte, het register niet op tijd antwoordde of het antwoord geen leesbare registratiedatum bevatte. Een mislukte opzoekactie wordt niet onthouden, dus de volgende scan van dat adres probeert het opnieuw.

Wat doet de experimentele controle op namen die op merken lijken?

Antwoord

De app controleert altijd of de naam van de site in een adres, zoals www.example.com, de naam van een bekend merk bevat zonder een van de eigen adressen van dat merk te zijn. De lijst met merken is kort en gericht op Spanje: er staan namen in zoals Correos, DGT en BBVA, en ook PayPal en DHL.

De controle op namen die op merken lijken, gaat een stap verder. Voordat ze naar de naam van een merk zoekt, behandelt ze tekens die op elkaar lijken als hetzelfde teken: sommige Griekse en Cyrillische letters die op Latijnse letters lijken, en sommige cijfers die op letters lijken, zoals de 1 en de l, en ze negeert koppeltekens. Zo kan ze een adres signaleren dat PayPal schrijft met het cijfer 1 in plaats van de letter l, of met een Cyrillische letter die op de Latijnse a lijkt, wat de merkcontrole hierboven niet ziet. Het resultaat zegt dan dat het adres op het merk lijkt: een gelijkenis, geen overeenkomst.

Omdat een gelijkenis een zwakker bewijs is dan de naam van het merk zelf, telt zo'n bevinding minder punten op dan de merkcontrole, maar ze kan de score en de beoordeling nog steeds veranderen.

De controle is experimenteel en staat standaard uit. De tabel met gelijkende tekens is met de hand geschreven en beperkt, en de controle kan een adres signaleren dat geen nabootsing is. Zet "Namen die op merken lijken (experimenteel)" aan in Opties om de controle te gebruiken; dat geldt vanaf de volgende scan.

De controle zoekt alleen naar de merken op de lijst, zoekt niet naar tikfouten in het algemeen, en de tabel met gelijkende tekens omvat maar een deel van de tekens. Een resultaat zonder zo'n bevinding betekent niet dat het adres echt is.

Hoe meld ik een probleem of stel ik een functie voor?

Antwoord

Meld een probleem of doe een suggestie op de issue tracker op GitHub. In de app staat dezelfde link in Opties, onder "Website en feedback": "Een probleem melden of een suggestie doen".

Wat je daar plaatst, is openbaar en het privacybeleid van GitHub is van toepassing, dus plaats geen persoonsgegevens. Vragen over privacy kun je ook per e-mail stellen: het privacybeleid geeft het adres.