Pages

24 November 2011

Šta je Captcha ?


CAPTCHA“ je vrsta izazov-odgovor test koji se koristi u računarstvu da odredi da li je korisnik čovek ili računar. Proces podrazumeva jedan računar (server), koji traži od korisnika da odradi jednostavan test koji je računar sposoban da generiše i oceni. Pošto bi računar trebalo da bude nesposoban da reši taj test, svaki korisnik koji unese tačan odgovor se smatra čovekom. Uobičajeni „CAPTCHA“ testovi traže od korisnika da unese nekoliko slova koja su prikazana na neki način iskrivljenoj slici.


Skraćenica „CAPTCHA“ dolazi od engleskog Completely Automated Public Turing test to tell Computers and Humans Apart (u prevodu: potpuno automatizovani javni Tjuringov test za razlikovanje računara i ljudi).


Problem koji stvaraju uobičajeni „CAPTCHA“ testovi jeste što onemogućuju pristup ne samo računarima, već i slepim i slabovidim licima, koja nemaju načina da odgovore na traženi upit. Neki od metoda za rešavanje ovog problema (mada se u praksi još uvek relativno retko koriste) jesu omogućavanje slepim ili slabovidim licima da klikom na odgovarajuće dugme zatraže da umesto vizuelnog polažu audio „CAPTCHA“ test, ili da se obrate administratoru sistema, koji će im omogućiti otvaranje naloga.
 


Kako vreme prolazi, razvijaju se sve napredniji algoritmi za čitanje „CAPTCHA“ sličica, pa i same sličice postaju sve kompleksnije. Ovo sa jedne strane znači da ponekad čitanje slova sa slike i za čoveka može da predstavlja veliki izazov (neki sistemi nude korisniku da zameni sliku ukoliko mu je nečitljiva). Sa druge strane novi algoritmi razvijeni za razbijanje „CAPTCHA“ sistema mogu da unaprede OCR tehnologiju (automatsko prepoznavanje skeniranog teksta).


Neki od izumitelja „CAPTCHA“ sistema su implementirali način da se deo napora koji korisnici ulažu da odgovore na ove testove praktično iskoristi (u vidu sistema distribuiranog rada). Po ovoj ideji, jedan deo „CAPTCHA“ sličice predstavlja uobičajeni tekst (koji je nečitljiv za mašinu, ali server zna šta na slici piše, pa može da proveri da li je korisnik uneo tačan odgovor), dok drugi deo predstavlja mali deo skeniranog teksta koji OCR čitači nisu uspeli da razaberu Projekat Gutenberg, pa se korisnikov odgovor koristi da dešifruje taj segment teksta.

Postoji više razloga zbog kojih se koriste ovakvi testovi za razlikovanje računara i ljudi. Jedan je sprečavanje spama (neželjenih reklamnih poruka) na forumima. Oglašivači često prave botove (programe), koji krstare Internetom, pronalaze forume na kojima otvaraju naloge, i zatim obasipaju sve diskusije nerelevantnim reklamnim materijalom. Ovo naravno mogu i ljudi da rade, ali bi to bilo mnogo mnogo manje isplativo, jer računar može da ostavlja poruke stotinama puta brže.


Drugi razlog je sprečavanje automatskog otvaranja hiljada naloga na sajtovima koji pružaju razne besplatne servise (kao što je na primer gmail servis za elektronsku poštu), što može da iscrpe resurse sistema.



Treći razlog može da bude sprečavanje pristupa botovima besplatnim sistemima koji se finansiraju prikazivanjem reklamnih banera. Na primer, serveri koji služe za razmenu datoteka između korisnika Interneta često ne naplaćuju svoje usluge ni pošiljaocima datoteka, niti korisnicima koji ih skidaju sa Interneta, a svoje troškove pokrivaju i zarađuju tako što pre početka skidanja datoteke korisniku prikazuju reklamne poruke. Ukoliko bi neko programirao botove da skidaju materijale sa takvih sajtova (što je razvijena praksa), reklamne poruke niko ne bi video, i sponzori ne bi imali interesa da plaćaju postavljanje svojih reklamnih banera.

Još jedna primena je zaštita korisničkih naloga od napada koji su usmereni na otkrivanje korisničke lozinke metodom grube sile (isprobavanje kombinacija slova dok se ne otkrije koja je lozinka). Ako korisnik pri pokušaju logovanja više puta unese pogrešnu lozinku, za svaki dalji pokušaj logovanja se od njega traži da odradi „CAPTCHA“ test, kako bi se sprečilo da bot pokušava da se uloguje satima ili danima sve dok ne otkrije lozinku.