Prijeđi na sadržaj

Captcha

Izvor: Wikipedija
Rane "CAPTCHA" testove kao ove, generirane uz pomoć programa EZ-Gimpy, koristio je Yahoo!. Međutim, razvijena je tehnologija za čitanje ovog tipa CAPTCHA testova[1]
Moderni CAPTCHA ne pokušava stvoriti iskrivljenu pozadinu i zakrivljenje teksta, već se usmjerava na otežavanje segmentacije dodavanjem zakrivljenih linija
Drugi način za otežavanje segmentacije je zgušnjavanje simbola. Ovo je oblik CAPTCHA-e kojeg trenutno koristi Yahoo!. Ovo se može pokazati teškim za pročitati čak i nekim ljudima, pa je u ovom primjeru teško reći je li lijeva riječ "klopsh" ili "kbpsh".

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]

Svojstva

[uredi | uredi kôd]

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.

Povijest

[uredi | uredi kôd]

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!.

Primjene

[uredi | uredi kôd]

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.

Dostupnost

[uredi | uredi kôd]

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.

Zaobilaženje CAPTCHA-e

[uredi | uredi kôd]

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:

  1. Redukcija šuma - odstranjivanje pozadinskog šuma
  2. Segmentacija (procesiranje slika) - podjela slike na regije od kojih svaka sadrži po jedan znak
  3. 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.


Izvori

[uredi | uredi kôd]
  1. Greg, Mori; Malik, Jitendra. Breaking a Visual CAPTCHA. Simon Fraser University. Pristupljeno 21. prosinca 2008.
  2. 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.
  3. Latest Status of CAPTCHA Trademark Application. USPTO. 21. travnja 2008. Pristupljeno 21. prosinca 2008.
  4. reCAPTCHA homepage. Captcha.net. Inačica izvorne stranice arhivirana 4. travnja 2012. Pristupljeno 21. prosinca 2008.
  5. Moni Naor. Srpanj 1996. Verification of a human in the loop or Identification via the Turing Test (PS) (disertacija). Pristupljeno 6. srpnja 2008.
  6. [1] US Patent no. 6,195,698, "Method for selectively restricting access to computer systems"
  7. Breaking CAPTCHAs Without Using OCR. Howard Yeend (pureMango.co.uk). 2005. Inačica izvorne stranice arhivirana 25. lipnja 2017. Pristupljeno 22. kolovoza 2006.
  8. Online services allow MD5 hashes to be cracked. Inačica izvorne stranice arhivirana 28. veljače 2009. Pristupljeno 4. siječnja 2007.
  9. 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)

Vanjske poveznice

[uredi | uredi kôd]
Logotip Zajedničkog poslužitelja
Logotip Zajedničkog poslužitelja
Zajednički poslužitelj ima još gradiva o temi Captcha