CAPTCHA

**CAPTCHA** (inglise keeles *Completely Automated Public Turing test to tell Computers and Humans Apart)* on veebilehtedel esinev küsitlus, mille põhjal on võimalik eristada inimest robotist. Seda testi kasutatakse laialdaselt veebilehtedel, et välistada automatiseeritud programmide ligipääsu ja tagada, et tegemist on inimesega. Selle süsteemi väljatöötamisel mängis olulist rolli Luis von Ahn, luues CAPTCHA, mille omandas 2009. aastal Google.

## Eesmärk
CAPTCHA on tehnoloogia, mis on loodud selleks, et eristada arvuteid inimestest. CAPTCHA eesmärk on kaitsta veebisaite erinevate automatiseeritud rünnakute eest, näiteks spämmirobotite. Siia alla kuuluvad ka massiline kontode registreerimine, reklaam ja andmete kraapimine. Veebisaidid, mis kasutavad CAPTCHAt, on tõendanud selle tõhusaks viisiks takistamaks robotite pahatahtlikke tegevusi.

CAPTCHA võib hõlmata erinevaid ülesandeid, nagu teksti lugemine, piltide tuvastamine või matemaatiliste probleemide lahendamine. Kuigi see on tõhus vahend automatiseeritud rünnakute vastu, võib see samas tekitada väljakutseid nägemis- või muude puuetega inimestele. Seetõttu on olnud püüdlusi arendada alternatiivseid meetodeid, mis tagaksid kaitse veebilehtedele, kuid oleksid samas ka kasutajasõbralikud ja juurdepääsetavad kõigile kasutajatele.

## Ajalugu

1996. aastal esitas Moni Naor Turingi Testi kasutamise internetis, et eristada arvuteid inimestest. 1997. aastal hakkas Andrei Broder välja töötama programmi, mille eesmärgiks oli samuti eristada inimesi robotitest. Samal aastal võttis AltaVista veebileht kasutusele selle meetodi, paludes kasutajatel sisestada moondatud ingliskeelseid sõnu. 2001. aastal hakkasid David Gausebeck ja Max Levchin looma Gausebeck-Levchin testi. See oli üks algelisemaid CAPTCHA variatsioone. 2001. aastal võttis pettuste ennetamiseks sellised testid kasutusele PayPal. Gausebeck-Levchini test oli üks esimesi kommertslikult kasutatud CAPTCHA teste 2003. aastal. See test põhines optilise tähemärgi äratundmise (Optical Character recognition ehk OCR) tagasipööramisel. 

CAPTCHA tehnoloogia populariseerimisega loodi reCAPTCHA, mille Google omandas 2009. aastal. Lisaks pahatahtlike tegevuste takistamisele, kasutas Google reCAPTCHA ja CAPTCHA tehnoloogiat ära, et digitaliseerida New York Timesi ajakirju ning raamatuid. Raamatute skaneerimise käigus esines tihti arvuti jaoks arusaamatuid sõnu. Näiteks võis olla raamatu leht kortsu läinud või tindiplekid laiali valgunud. Arusaamatute sõnade kuvamine CAPTCHA programmis testi lahendajatele aitas paljusi Google Books ajakirju ja raamatuid digitaliseerida.

## Raamatute digitaliseerimine
2009. aastal hakkas Google kasutama ära CAPTCHA tehnoloogiat, et digitaliseerida New York Timesi ajakirju ning raamatuid. Iga 4 päeva tagant digitaliseeriti ära ühe aasta jagu New York Timesi väljaandeid ning tänaseks on paljud Google Books leiduvad raamatud ja ajakirjad digitaliseeritud tänu CAPTCHAle.

CAPTCHA testi loomiseks genereeris arvuti ühe suvalise sõna, moonutades tähtede kuju ning seejärel paigutas kõrvuti teise sõnaga, mis esines digitaliseeruvas teoses. Kuna arvutil on ühele sõnale vastus olemas, siis koos inimese poolt antud õige sisendiga sai arvuti kinnitada ka teise sõna, mille kaudu likvideeriti mõne kirjateose digitaliseerimise käigus ilmnenud tõke. Ühte CAPTCHA sõnakombinatsiooni näidati korraga tuhandetele inimestele ja seeläbi oli võimalik arvutil koos inimese abiga kindlaks teha digitaliseeritavas teoses keeruliseks osutunud moondunud sõnad.

## CAPTCHA variatsioonid

### Tekstipõhine CAPTCHA
Tekstipõhine CAPTCHA on üks algelisemaid CAPTCHA variatsioone. Teksti loetamatuks muutmine pärineb juba 1980. aastast, kus interneti häkkerid soovisid märksõnu muuta loetamatuks, pääsedes läbi kontroll filtritest. Näiteks, sõna “HELLO” esitati kirjavahemärkidena “|-|3|_|_()”. Seda keelt kutsuti hiljem ''leetspeak''’iks.

Üks esimesi tekstipõhiseid CAPTCHA teste oli Gausebeck-Levchini test. Hiljem tänu Luis von Ahn edasitöötlusele loodi reCAPTCHA, mis kasutab seda süsteemi ära raamatute digitaliseerimiseks. Kasutajale paigutatakse raamatu skaneerimise käigus arusaamatuks jäänud sõna kõrvuti sõnaga, millele arvuti teab vastust. Koos õige sisendiga, tagatakse testitud inimesele ligipääs ning raamatu digitaliseerimise käigus arvuti jaoks arusaamatu sõnale leitakse tähendus.

### Pildipõhine CAPTCHA
Pildipõhine CAPTCHA kuvab kasutajale ette ruudustiku erinevatest piltidest pärismaailmast. Antud testi puhul palutakse kasutajal märkida ära kõik pildid, mis sisaldavad märgitud objekti. Iga reCAPTCHA test on seotud kindla kategooriaga. Näiteks võib test paluda kasutajal ära tunda autosid, ülekäiguradu ja liiklusmärke. Lisaks sellele võib test paluda kasutajal eristada: kaupluste esikülgi, mootorrattaid, jalgrattaid, autoteid, busse, tuletõrjehüdrante, mägesid, taksosid. Google kasutas antud sisendeid ja andmeid ka isesõitvate autode programmeerimisel.

### Muu CAPTCHA
Lisaks pildi- ja tekstipõhistele CAPTCHA liikidele on osadel lehtedel kuvatud neist ka teisi variatsioone. Näiteks nuCAPTCHA, mis kuvab kasutajatele internetist võetud suvalisi videoid, lisades videole liikuvat teksti. Kasutajad peavad suutma liikuvast tekstist eristada teise värviga tähed ning sisestama need tekstilahtrisse.

## CAPTCHA tüüpilised omadused

### Teksti ja värvi moonutamine
CAPTCHA kasutab sageli moonutatud teksti, kus tähed ja numbrid on kergelt moonutatud või erineva suurusega. Samuti esineb erinevatel CAPTCHA variatsioonidel värvimoonutusi, muutes teksti raskesti tuvastatavaks masinõppe algoritmidele, mis eelistavad selgeid ja ühtlasi värve.

### Taustamüra
CAPTCHA pildid võivad sisaldada taustamüra, millest tüüpilisemad on näiteks: täpid, triibud või mustrid, mis muudavad masinõppe algoritmidele tähtede eraldamise taustast raskemaks.

### Teksti fragmenteerimine
CAPTCHA võib tähemärke poolitada, muutes neid fragmentideks. Fragmentide puhul kasutatakse algoritme, mille põhjal on võimalik tähti paigutada üksteisele lähedamale või lausa tähed üksteise peale panna, tagamaks arvutile raskemalt eristada tähtede kombinatsiooni, muudab tihti tähtede kuju loetamatuks.

## Viited