Čudna i izobličena slova još čudnijeg naziva CAPTCHA šire se iz godine u godinu na sve veći broj web aplikacija, izazivajući, poput ambrozije, alergijsku reakciju kod brojnih korisnika. Ona bi trebala zaštititi sustav od napada automatiziranih skripti i spamera, ali nerijetko predstavlja kamen spoticanja za krajnje korisnike, kod kojih se samo akumulira nezadovoljstvo, a vlasnicima štićenog sustava daje ( lažan? ) osjećaj sigurnosti.
Completely automated public Turing test to tell computers and humans apart, ili skraćeno CAPTCHA, nastala je kao obrambeni mehanizam od automatiziranih napada na sajtove koji omogućuju korisnički upis ili čitanje u velike baze podataka ili iz njih. Prva je bila Alta Vista još 1997. godine, koja je na taj način željela spriječiti automatizirano dodavanje sajtova na njihov popis. Nažalost, čudna i izobličena slova ubrzo su umjesto hackera tjerala legitimne korisnike. Nedavno smo doživjeli primjer da je na jednoj javnoj bazi podataka korisnik uspješno pročitao tek petu CAPTCHA-u. Nažalost postoje računalni algoritmi koji su puno uspješniji. Paradoksalno, sama umjetna inteligencija u vidu ekspertnog sustava za optičko prepoznavanje znakova (OCR) uspješno polaže test ljudskosti. Isti oni algoritmi koji pomažu digitalizaciji papirnatih dokumenata, pomažu u zaobilaženju CAPTCHA-e.
Programeri vičniji webu nalaze svoje načine za zaobilaženje, a ne probijanje CAPTCHA-e na način da je uopće ne riješe, ili pomoću jednostavnog plasiranja CAPTCHA-e na svoj visoko prometni sajt i čekanja da netko drugi riješi taj test. Redom su probijani testovi najvećih i najrasprostranjenijih imena: Microsoft, Google, Wikipedia, phpBB…
Ništa od toga nije pokolebalo pobornike strojnog testiranja čovječnosti u svojoj namjeri. Smišljavali su nove testove, zvučne i tekstualne zagonetke, razlikovanje slika pasa od mačaka i slično, no ta rješenja samo tek kraće vrijeme ostaju nehakirana. Sve se svodi na rat živaca između autora zaštite, hakera i najvećih kolateralnih žrtava – dobronamjernih korisnika.
-
Slikovna CAPTCHA je zbog toga promašeno rješenje za stvaran problem utvrđivanja ljudskosti anonimnih korisnika, koji se mora pokušati riješiti na druge načine. Treba krenuti od same potrebe ograničavanja upisa ili čitanja. Postoji li čitav niz nenametljivih načina na koji se logički i tehički približno mogu odvojiti strojni od ljudskih posjetitelja ( a, ne obratno ) ? Od praćenja putanje do registracije sa serverske strane, preko besmislenih ili skrivenih polja na obrascima, detektiranje pokreta mišom ili pritiska na tipku, bilježenje vremena potrebnog da se obavi zadatak…?
Ukoliko naručitelj insistira na nametljivom testu ( koji se može kombinirati i s nenametljivim ), postoje brojne alternative izobličenim slovima ( zadaci riječima ), no činjenica ostaje, da vrijedi američka poslovica: Kada čovjek izmisli bolju mišolovku, priroda izmisli boljeg miša. Svaki test u kojem stroj utvrđuje ljudskost, može se uz manje ili više truda strojno položiti, stoga prave ljudske posjetitelje ne treba nepotrebno usporavati u korištenju web-aplikacija.
Korisni linkovi:
http://www.w3.org/TR/turingtest/
http://www.mperfect.net/aiCaptcha/
http://www.arraystudio.com/as-workshop/the-captcha-alternatives.html
http://pandalabs.pandasecurity.com/blogs/images/PandaLabs/2007/07/24/xrumer.swf
September 14th, 2009 at 09:53
Osobno imam najviše pozitivnih iskustava sa “tektualnim zagonetkama”, i to čak utoliko da sam broj spam registracija sveo na 0. (radi se o web forumu)
S obim zagonetkama je zapravo najveći problem osmisliti pravo i jednoznačno pitanje na koje bilo tko iz prve može dati pravi odgovor. Inače se stvar zakomplicira i nakon nekoliko krivih pokušaja korisnik odustaje.
Provjera na strani klijenta (browsera) nije dovoljna jer se taj dio može jednostavno zaobići izmjenom GET i POST zahtjeva, više o tome (nečitljiv tehnički tekst ) sam napisao ovdje:
http://www.martic.net/blog/development/programming/paros-proxy-useful-utility-for-web-debugging/
U biti kao što je i u samom tekstu navedeno, najbolje je iskombinirati client i server-side elemente i nadati se najboljem…
No, ne zaboravite da prema posjetitelju provjera mora biti samo JEDNA, a ne postavljati mu pitanje za pitanjem, što će ga također otjerati…