Een CAPTCHA is een manier om te proberen te achterhalen of een bezoeker van een website een mens of machine is. Het doel is om spam en cybercrime tegen te gaan. De meest voorkomende uitwerking hiervan is de “Ik ben geen robot” checkbox van Google’s reCAPTCHA systeem, vaak met de vervolgvraag om bij voorbeeld stoplichten of zebrapaden aan te klikken.

Wat is een CAPTCHA

CAPTCHA is een afkorting en staat voor Completely Automated Public Turing test to tell Computers and Humans Apart. Zoals de volledige naam al aangeeft is het een manier om geautomatiseerd een test uit te voeren om te bepalen of iemand een mens of een computer is.

De term Turing test is genoemd naar de Engelse wiskundige en computerwetenschapper Alan Turing. Hij formuleerde het idee dat er een test moest zijn waarmee je door vragen te stellen zou moeten kunnen achterhalen of de antwoorden van een computer of een mens kwamen, alleen aan de hand van de inhoud van de geleverde antwoorden. Het klassieke voorbeeld is dat de vraagsteller een vraag op een papier schrijft en dit papiertje door een kier een andere kamer inschuift. Na enige tijd komt er een papier met een antwoord terug. De vraagsteller zou dan op basis van dit geschreven antwoord (of de antwoorden op een serie vragen) moeten bepalen of de antwoorden van iets zou komen wat intelligent is. De vraagsteller heeft daarbij alleen de antwoorden tot beschikking, en kan niet in de andere kamer kijken of daar een computer of een persoon zit. Volgens de oorspronkelijke formulering zou een computer die “menselijk” genoeg antwoord gaf beschouwd moeten worden als intelligent.

Dit principe wordt nagebootst bij een CAPTCHA. Een website kan niet zien wie er aan de andere kan zit. Het kan een persoon achter een computer zijn, maar het zou ook een programma kunnen zijn wat menselijk gedrag nabootst. De CAPTCHA stelt daarom vragen, meestal in de vorm van het aanklikken van afbeeldingen, overtypen van (vervormde) tekst, uitvoeren van simpele rekensommen en andere simpele taken. Het doel is om een vraag of taak te stellen die (makkelijk) door een mens gedaan zou kunnen worden maar niet of moeilijk door een machine.

Waarom is het nodig

Een groot deel van internetverkeer komt door bots. Huidige schattingen gaan ervan uit dat rond de 40% van het internetverkeer geautomatiseerd plaats vindt. Een groot deel hiervan is onproblematisch, zoals voor het indexeren van Google of gegevensuitwisseling tussen servers en websites. Maar een deel zijn scripts en programma’s waarmee spam wordt verstuurd en inbraakpogingen worden gemaakt.

Formulieren zijn vaak interessant voor criminelen en kwaadwillenden. Via contactformulieren kunnen spam mails verstuurd worden, via discussie en comments kunnen spam (en scam) links geplaatst worden. Wanneer er een account nodig is om dergelijke posts te maken dan is het voor een hacker uiteraard ook nodig om account registratie en inlogformulier geautomatiseerd aan te kunnen roepen. Inlogformulieren kunnen ook gebruik gemaakt worden om toegang te krijgen tot accounts van anderen en via die weg gevoelige (persoons)gegevens te verkrijgen.

Door bij het verzenden van formulieren een controle te doen kan een site-eigenaar zich gedeeltelijk beschermen tegen spam en cybercrime. Door ervoor te zorgen dat alleen menselijke gebruikers en geen bots gebruik maken van formulieren wordt de hoeveelheid spam en cyberaanvallen in ieder geval behapbaar.

Geschiedenis

De naam CAPTCHA werd in 2003 bedacht, maar de techniek werd op dat moment al enkele jaren gebruikt. Deze eerste versies waren nagenoeg altijd een variant waarbij een afbeelding met vervormde tekst werd getoond met de vraag om deze correct over te typen of om een simpele rekensom uit te voeren.

Het gebruik kreeg een boost doordat PayPal deze techniek in gebruik nam waarna steeds meer grote en kleine websites dit gingen toepassen.

reCAPTCHA

Omdat de reCAPTCHA van Google verreweg de meest gebruikte oplossing is gaan wij verder in op de geschiedenis van dit specifieke platform.

reCAPTCHA was oorspronkelijk niet van Google, maar een initiatief om de behoeftes aan CAPTCHAs te combineren met een andere behoefte, namelijk het digitaliseren van (oude) boeken door Project Gutenberg. Project Gutenberg is een project met doel om zo veel mogelijk boeken die buiten copyright vallen te digitaliseren en deze vervolgens gratis beschikbaar te stellen in de vorm van een digitale bibliotheek. Hierdoor zijn klassieke werken van schrijvers zoals Charles Dickens, Jane Austen en Arthur Conan Doyle als e-books vrij beschikbaar gemaakt.

Versie 1: Woorden overtypen

Een voorbeeld van de eerste versie van reCAPTCHA waarin moelijk leesbare woorden overgetypt moesten worden
Versie 1 van reCAPTCHA

De eerste versie zal voor velen er nog bekend uitzien. Twee woorden werden weergegeven met de vraag om deze over te typen. Wat weinig mensen wisten was dat deze woorden daarna direct terug werden verstuurd naar de scanners van Project Gutenberg. Als groep hebben wij als website bezoekers meegeholpen aan het herkennen en digitaliseren van teksten uit oude boeken.

Toen de reCAPTCHA nog in deze fase was werd het platform overgenomen. Google had (en heeft nog steeds) een groot interesse in machine learning en kunstmatige intelligentie. Het herkennen van teksten was op dat moment zeer interessant voor Google zowel voor de Google Books dienst als voor het scannen van online afbeeldingen op teksten.

In de loop van de tijd schakelde Google ook afbeeldingen in uit Street View foto’s van Google Maps, met name om huisnummers te herkennen.

De focus van Google ging naar meer complexe problemen. Het werd steeds moeilijker om passende “problemen” te vinden die goed door mensen maar slecht door machines opgelost konden worden. Het was zelfs zo dat door vooruitgang in techniek dat machines beter waren geworden dan mensen in het herkennen van teksten.

Dit was reden voor Google om de volgende versie te ontwikkelen.

In maart 2018 werd het systeem achter versie 1 definitief afgesloten.

Versie 2: De checkbox en afbeeldingen

Doordat computers steeds beter teksten konden herkennen daalde de effectiviteit van de eerste versie. Omdat Google’s focus ook op het trainen van de eigen systemen voor kunstmatige intelligentie was de volgende stap ook logisch. Door mensen te vragen om afbeeldingen van een bepaalde categorie aan te klikken pakte Google de twee problemen in een keer aan. Veel voorkomende vragen waren katten en honden, of bepaalde soorten eten zoals sinaasappels in de afbeelding hiernaast.

Uit een raster van afbeeldingen de de gevraagde voorwerpen te vinden is voor iemand met normaal zicht geen probleem. In deze tijd was deze taak echter nagenoeg onmogelijk voor een computer.

Google kon tegelijk de gegeven antwoorden gebruiken om eigen systemen te trainen. Elke keer dat een CAPTCHA was opgelost kregen deze systemen een lijst van de getoonde afbeeldingen met daarbij de gegeven antwoorden. Hierdoor kon Google systemen trainen om dieren en andere dingen uit afbeeldingen te herkennen.

Deze nieuwere versie deed daarnaast zijn best zelfs om ervoor te zorgen dat het niets eens nodig zou zijn om plaatjes aan te klikken. Door met scripts het gedrag van een gebruiker te meten worden bezoekers die zich heel menselijk gedragen direct doorgelaten. Voor hen voldoet het om het vinkje te zetten.

In een poging om de drempel voor gebruikers lager te maken introduceerde Google de “onzichtbare” of “invisible” reCAPTCHA. In feite werkt deze versie nagenoeg hetzelfde als de versie met de checkbox. Het verschil is dat er initieel geen indicatie wordt gegeven van de CAPTCHA, en dat er alleen wanneer de eerste controle mislukt (en de bezoeker dus mogelijk een bot is) er dan de vraag met afbeeldingen worden getoond. Het is dus alleen de eerste checkbox met de tekst “Ik ben geen robot” die verborgen wordt.

Waarom steeds die stoplichten, brandweerkranen, heuvels en taxi’s?

Google heeft een enorme hoeveelheid aan beeldmateriaal uit de Google Maps Street View. Door steeds deze beelden te gebruiken bouwt Google ook een enorme dataset op waarmee niet alleen de Street View data verrijkt kan worden, maar het geeft ook trainingsmateriaal. Google kan dit gebruiken om systemen te trainen om daarmee met steeds minder menselijke input herkenningen uit te voeren, maar een waarschijnlijk tweede doel is het trainen van systemen die gebruikt kunnen worden voor zelfrijdende auto’s, drones en andere voertuigen. De hoeveelheid data dat Google tot beschikking heeft geeft dit bedrijf een voordeel ten opzichte van concurrenten die het met minder data moeten doen.

Versie 3: De echt onzichtbare CAPTCHA

De volgende stap in de ontwikkeling van de reCAPTCHA is echt onzichtbaar. Deze nieuwste versie werkt volledig zonder dat de gebruiker het doorheeft. Google laat een sitebouwer een script op zoveel mogelijk pagina’s installeren zodat het gedrag van gebruikers over een zo lang mogelijk periode geanalyseerd kunnen worden. Bij het verzenden van een formulier wordt een score gegeven in plaats van een simpel wel/geen robot resultaat. Op basis hiervan kan een site eigenaar zelf instellen hoe strikt er gefilterd moet worden.

Het nadeel hiervan is de toegevoegde complexiteit. Een sitebouwer kan niet “even snel” deze versie van reCAPTCHA aan een formulier toevoegen. Er moet expliciet op basis van een score iets gedaan worden aan de kant van de website en er is ook geen ingebouwde functionaliteit om extra verificatie te doen. Wanneer de controle bij versie 2 mislukt, dan kan iemand nog steeds plaatjes aanklikken tot dat het systeem tevreden is. Bij deze versie is hier geen ondersteuning voor. Het is daarom aan de sitebouwer om manieren te ontwikkelen waarmee mensen die ten onrechte als machines worden gezien een herkansing te geven.

Door deze complexiteit is het gebruik ook veel lager dan de vorige versie. Het is ook een signaal dat Google zich meer richt op grote organisaties die zelf de nodige middelen hebben om maatwerk oplossingen te maken.

Problemen met CAPTCHAs

Dat CAPTCHAs (en specifiek de reCAPTCHA) een goedkope en relatief makkelijke manier brengt om sites te beschermen is duidelijk, maar er zijn ook problemen met deze oplossingen.

Vooral spammers maken ook veelvuldig gebruik van goedkope menselijke werkers uit arme landen. Er bestaan diensten waarmee iemand als het ware een aantal “oplossingen” kan inkopen, een script starten wat het spammen uitvoert starten. Wanneer het script een CAPTCHA tegenkomt wordt dit beeld doorgezet naar iemand die de hele dag niets anders doet dan CAPTCHAs oplossen. Wanneer de CAPTCHA is opgelost wordt dit van het tegoed van de spammer afgehaald en kan het script weer verder werken.

Naast het terugvallen op mensen om CAPTCHAs semi-geautomatiseerd op te lossen heeft de toenemende kracht en toegankelijk van machine learning en andere vormen van kunstmatige intelligentie ook een impact. Zoals hierboven al genoemd zijn computers tegenwoordig beter dan mensen in het herkennen van vervormde of verwrongen teksten en tekens.

Wij merken dat een aantal van onze klanten hier in toenemende mate mee te maken hebben en genoodzaakt zijn om nieuwe beschermingen aan diverse formulieren toe te voegen omdat de CAPTCHAs niet meer voldoende bescherming bieden.

De reCAPTCHA van Google specifiek heeft ook beperkingen voor internationaal gebruik. Specifiek voor websites die bezoekers vanuit China verwachten kan de Chinese Great Firewall problemen veroorzaken bij het laden. Dit komt doordat de Great Firewall de neiging heeft om vaak servers van Google te blokkeren. Wie bezoek uit China of andere landen met een restrictief internetbeleid mogelijk wil maken doet er daarom goed in om voor een andere oplossing te kiezen.

Toegankelijkheid

Een terugkerend probleem met veel CAPTCHA oplossingen is toegankelijkheid. Vaak wordt er uitgegaan van een gebruiker zonder visuele, cognitieve of motorische beperkingen. Wanneer dit wel het geval zou zijn van wordt de CAPTCHA vaak moeilijk of onmogelijk om op te lossen.

Oplossingen hiervoor zijn vaak ook moeilijk. De reCAPTCHA van Google heeft wel een audio alternatief voor de afbeeldingen, maar het probleem is daarmee niet weggenomen. Veel ouderen hebben bij voorbeeld te maken met zowel verslechterd zicht als gehoor. Daarbij komt dat veel andere CAPTCHA oplossingen, die bij voorbeeld met een content management systeem of een extensie daarvan gebundeld zijn vaak helemaal geen alternatieve methodes bieden.

Het resultaat hiervan is dat grote groepen mensen worden uitgesloten van grote delen van het internet zoals de diensten van Google (met name Gmail en het inloggen voor YouTube), of onderdelen van veel sites zoals voor het inloggen of contact opnemen via formulieren.

Toekomst

Door de bovengenoemde problemen wordt er ook naar alternatieven gezocht die de bescherming van een CAPTCHA bieden maar zonder onnodige complexiteit voor de websitebeheerder of de gebruiker. Er worden vaak pogingen gedaan om, zoals Google, het gedrag van bezoekers te analyseren en op basis daarvan iemand wel of niet toe te laten.

Cloudflare’s Cryptographic Attestation of Personhood

Een andere invalshoek kwam afgelopen mei van Cloudflare. Zij lanceerden een initiatief waar gebruik gemaakt wordt van een hardwaresleutel zoals een YubiKey of de vingerafdrukscanner van een laptop. Door iemand als het ware in te loggen via Web Authentication kan met vrij grote zekerheid gesteld worden dan iemand een mens is.

Uiteraard is het ook hierbij mogelijk om een geautomatiseerd systeem te maken met een groot aantal hardware sleutels. Het is echter zo dat de bijkomende kosten een afschrikwekkend effect kunnen hebben. Zelfs een simpele hardwaresleutel kost snel 10 tot 20 euro. Dit gecombineerd met het feit dat Cloudflare niet alleen individuele sleutels maar hele batches met sleutels kunnen blokkeren betekent dat het snel een groot financieel risico vormt om een geautomatiseerd systeem op te zetten juist doordat er meer kosten zijn die terugverdiend moeten worden en doordat grote hoeveelheden apparatuur ineens onbruikbaar kunnen worden gesteld.

Een gerelateerd probleem is dat lang niet iedereen een bruikbare hardwaresleutel heeft. De fingerafdrukscanners van mobiele telefoons zijn op dit moment ook nog niet te gebruiken in het systeem. Ook als dat wel zo zou zijn dan blijven er nog veel systemen over zonder passende hardware om de authenticatie uit te voeren. Voor grote groepen in rijke landen zal dat niet snel veranderen en voor armere landen is de drempel nog hoger. De vraag is daarom in hoeverre deze techniek van Cloudflare uitgebreid gebruikt zal kunnen worden of dat het gebruik beperkt zal blijven tot zakelijke oplossingen.

Verdere ontwikkelingen

Zoals hierboven wordt uitgelegd wordt er hard gewerkt aan nieuwe oplossingen om CAPTCHAs makkelijker te maken voor mensen en moeilijker voor bots, maar elke oplossing heeft zijn eigen voor– en nadelen. Afwegingen zijn de complexiteit voor de bouwer, de complexiteit voor de bezoeker, de privacy van de bezoeker, toegankelijkheid voor mensen met beperkingen en toegankelijkheid voor mensen zonder speciale (en soms dure) hardware.

Een oplossing die voldoende rekening houdt met al deze punten lijkt nog ver weg. Wij zullen ons er bij neer moeten leggen dat wij nog een tijd plaatjes moeten aanklikken of soortgelijke tests uitvoeren om op sites formulieren te kunnen versturen.

Wij verwachten wel een groeiende diversiteit in aanbieders van CAPTCHA diensten nu steeds meer organisaties merken dat reCAPTCHA niet altijd voldoende bescherming biedt. Er zal ook een groei zijn van oplossingen die in eigen beheer zullen werken waar er geen afhankelijkheid is van externe platformen. In deze situaties kan de de kleinschaligheid ook juist helpen in het beperken van aanvallen. Een hacker richt zich liever op een oplossing die in veel sites kan worden toegepast, dan een oplossing die maar voor een site werkt (tenzij er hoge waarde is in het aanvallen van die specifieke site).