Captcha
CAPTCHA ili Captcha (/ˈkæptʃə/) vrsta je autentikacije "izazov-odgovor" koji se koristi u računarstvu da bi odredilo je li korisnik čovjek ili računalo, s ciljem sprječavanja pristupa zlonamjernim računalnim programima. Proces najčešće podrazumjeva jedno računalo (server), koji traži od korisnika da odradi jednostavan test koji računalo može generirati i ocijeniti. Pretpostavka je da drugo računalo nije u stanju riješiti taj test, pa se svaki korisnik koji unese točan odgovor se smatra čovjekom. Uobičajeni CAPTCHA testovi traže od korisnika da unese nekoliko simbola (najčešće slova i/ili brojeva) koji su prikazana na slici, koja je na neki način iskrivljena. Zbog toga se ponekad naziva "obrnuti Turingov test", jer podrazumijeva stroj koji cilja na prepoznavanje ljudi, za razliku od originalnog turingovog testa kojeg izvode ljudi da bi prepoznali računala.
Skraćenica CAPTCHA nastala je 2000. godine, a osmislili su je Luis von Ahn, Manuel Blum, Nicholas J. Hopper (svi s Carnegie Mellon University), i John Langford (tada u IBM-u). Skraćenica dolazi od engleskog Completely Automated Public Turing test to tell Computers and Humans Apart (u prijevodu: potpuno automatizirani javni Turingov test za razlikovanje računala od ljudi).
Carnegie Mellon University je pokušao zaštititi ovu riječ,[2] no od zahtjeva su odustali 21. travnja 2008.[3] Trenutno, tvorci CAPTCHA-a preporučuju korištenje sustava reCAPTCHA kao službene implementacije.[4]
CAPTCHA sustav je sredstvo za automatsko generiranje novih izazova koje:
- suvremeni softver nije u stanju točno riješiti
- većina ljudi može uspješno riješiti
- se ne oslanja na pretpostavku da je ovaj tip CAPTCHA -a novi za napadača
Iako checkbox "klikni ovdje ako nisi bot" može poslužiti za razlikovanje ljudi od računala, to nije CAPTCHA jer se oslanja na činjenicu napadač nije potrošio nešto vremena da provali u određenu formu. Metode "klikni ovdje" su vrlo lake za probijanje.
Uskraćivanje algoritma može povećati integritet ograničenog skupa sustava, kao u praksi sigurnosti kroz neshvatljivost. Najvažniji faktor u odlučivanju treba li algoritam biti otvoreni ili ograničen je veličina sustava.
Iako algoritam koji izdrži testiranje stručnjaka za sigurnost može biti smatran konceptualno sigurnijim od netestiranog algoritma, netestirani algoritmi specifični za ograničen broj sustava su ujedno i manje interesantni i onima koji se upuštaju u zloporabu. Razbijanje CAPTCHA-e najčešće zahtijeva određeni trud specifičan upravo za tu CAPTCHA implementaciju, pa osoba koja planira zloporabu može zaključiti da taj CAPTCHA nije vrijedan truda.
Moni Naor je prvi koji je teoretizirao o načinima provjere dolazi li zahtjev od osobe ili od bota. [5] Primitivni CAPTCHA test su 1997. razvili Andrei Broder, Martin Abadi, Krishna Bharat i Mark Lillibridge, da bi spriječili internet botove da dodaju URL-ove od njihovih pretraživača.[6]
Da bi slike učinili otpornijim na OCR (eng. Optical Character Recognition), tim je simulirao situacije, koristili su primjere iz priručnika za skener gdje su prikazani znakovi krivo očitani uz pomoć OCR-a. 2000. godine, Luis von Ahn i Manuel Blum smislili su izraz 'CAPTCHA', koji je podrazumijevao općeniti program za razlokivanje ljudi od računala. Osmislili su višestruke primjere CAPTCHA-e, uključujući prve naširoko korištene CAPTCHA-a, one koje je u početku koristio Yahoo!.
CAPTCHA se koristi za prevenciju protiv automatskog softvera koji može poduzeti akcije s ciljem snižavanja kvalitete danog sustava, bilo zloporabom, bilo trošenjem resursa. CAPTCHA mogu štiti sustave ranjive prema e-mail spamu, kao što su webmail servisi Gmail, Hotmail, i Yahoo! Mail.
CAPTCHA su do sada aktivno korišteni ta sprječavanje automatskog postiranja na blogove, internet forume i wikije, bez obzira radi li se o komercijalne promocije ili uznemiravanja i vandaliziranja (troliranja).
CAPTCHA se također koristi i kao limitator kod pretjerane uporabe resursa, pa se kod npr. prevelikog broja akcija u jedinici vremena, pred korisnika može postaviti zahtjev da se riješi CAPTCHA test prije nastavka rada.
S obzirom na to da se CAPTCHAs oslanja na vizualnu percepciju, korisnici koji ne mogu čitati CAPTCHA-u (zbog raznih ograničenja, npr. teškoća u čitanju) neće moći proći ovaj CAPTCHA-test. Stoga internet stranice koje koriste CAPTCHA-u mogu korisniku omogućiti i audio test, uz vizualni, što je i službena preporuka na CAPTCHA stranicama. Ova kombinacija predstavlja do sada najdostupniji postojeći CAPTCHA test.
Pokušaji da se CAPTCHA učini još dostupnijim
No, čak i audio i vizualni CAPTCHA testovi mogu biti nedostatni za neke korisnike, koji su npr. i slijepi i gluhi. Pokušaji uključuju postavljanje jednostavnih matematičkih pitanja ("Koliko je 1+1?") ili pitanja na koje svi znaju odgovor ("Koje je boje nebo za vedrog dana?"). No, ovi testovi ne zadovoljavaju neke osnovne zahtjeve kao što su automatsko generiranje, a i napadač s iskustvom ih lako probije. Stoga ove testove ne možemo nazivati CAPTCHA jer ne daju sigurnost koju pruža CAPTCHA.
Postoji nekoliko pristupa pri pokušajima da se zaobiđe CAPTCHA:
- iskorištavanje bugova koji dopuštaju napadaču da posve zaobiđe CAPTCHA test,
- poboljšanje softvera za prepoznavanje znakova ili
- korištenje jeftine radne snage za prolaženje testova (en:Human-based computation
- sirova sila - višestruki uzastopni napadi
Nesigurna implementacija
Kao i svaki drugi sigurnosni sustav, greške u dizajnu mogu spriječiti postizanje teoretske sigurnosti u praksi. Mnoge implementacije CAPTCHA-e, posebno one koje nisu pregledali sigurnosni eksperti, ranjive su na napade.
Neki se CAPTCHA zaštitni sustavi mogu zaobići i bez uporabe OCR-a, jednostavno uz pomoć ponovne uporabe session ID-a poznate CAPTCHA slike.
Pravilno dizajnirana CAPTCHA ne dozvoljava višestrike pokušaje prolaska testa. Ovo sprječava ponovno korištenje ispravnih testova i pogađanje iz više pokušaja nakon neprolaska na testu.[7] Druge CAPTCHA implementacije koriste hash (kao što je MD5 hash) rješenja kao ključ koji se šalje klijentu da validira CAPTCHA-u. Ponekad je CAPTCHA tako mali, da se njgov harh kod može probiti.[8]
Nadalje, hash može pomoći u pokušaju probijanja temeljam OCR-a. Sigurnija schema bi bila ona s korištenjem HMAC-a.
Na kraju, neke implementacije CAPTCHA-e koriste konačni (mali) broj slika. S vremenom, kada napadač prikupi dovoljno slika, CAPTCHA se može probiti jednostavnom usporedbom hash-a CAPTCHA-e s hashom nekom od pohranjenih slika.
Računalno prepoznavanje znakova
Do sada je prevedeno niz istraživanja s ciljem probijanja vizualnog CAPTCHA testa, a neki od njih su bili uspješni. Programi koji su razbijali CAPTCHA se temelje na ovim funkcionalnostima:
- Redukcija šuma - odstranjivanje pozadinskog šuma
- Segmentacija (procesiranje slika) - podjela slike na regije od kojih svaka sadrži po jedan znak
- Klasifikacija: identificiranje znakova u svakom dijelu slike
Koraci 1 i 3 su lak zadatak za računala.[9] Jedini korak gdje je čovjek i dana jači od računala je segmentacija.
- ↑ Greg, Mori; Malik, Jitendra. Breaking a Visual CAPTCHA. Simon Fraser University. Pristupljeno 21. prosinca 2008.
- ↑ Computer Literacy Tests: Are You Human?. Time (časopis). Inačica izvorne stranice arhivirana 30. travnja 2009. Pristupljeno 8. srpnja 2009..
The Carnegie Mellon team came back with the CAPTCHA. (It stands for "completely automated public Turing test to tell computers and humans apart"; no, the acronym doesn't really fit.) The point of the CAPTCHA is that reading those swirly letters is something that computers aren't very good at.
- ↑ Latest Status of CAPTCHA Trademark Application. USPTO. 21. travnja 2008. Pristupljeno 21. prosinca 2008.
- ↑ reCAPTCHA homepage. Captcha.net. Inačica izvorne stranice arhivirana 4. travnja 2012. Pristupljeno 21. prosinca 2008.
- ↑ Moni Naor. Srpanj 1996. Verification of a human in the loop or Identification via the Turing Test (PS) (disertacija). Pristupljeno 6. srpnja 2008.
- ↑ [1] US Patent no. 6,195,698, "Method for selectively restricting access to computer systems"
- ↑ Breaking CAPTCHAs Without Using OCR. Howard Yeend (pureMango.co.uk). 2005. Inačica izvorne stranice arhivirana 25. lipnja 2017. Pristupljeno 22. kolovoza 2006.
- ↑ Online services allow MD5 hashes to be cracked. Inačica izvorne stranice arhivirana 28. veljače 2009. Pristupljeno 4. siječnja 2007.
- ↑ Kumar Chellapilla, Kevin Larson, Patrice Simard, Mary Czerwinski. 2005. Computers beat Humans at Single Character Recognition in Reading based Human Interaction Proofs (HIPs) (PDF) (disertacija). Microsoft Research. Pristupljeno 2. kolovoza 2006.CS1 održavanje: više imena: authors list (link)