Známe ji všichni. Znesnadňuje nám občas život a vyznat se v ní bývá v mnoha případech nemalý oříšek. Nemám na mysli ženu, ale obrázkový nebo zvukový kód zabraňující botům v provedení určité akce sloužící výhradně lidem, tzv. captchu. Cílem článku, který právě čtete, není již po několikáté řešit oblíbenost tohoto způsobu ochrany u uživatelů či úspěšnost botů v průniku skrz tyto systémy, rád bych v něm ale poukázal na případy, kdy špatná implementace captchy způsobí její naprostou nefunkčnost. Právě v takových případech totiž dochází k situaci, kdy je jediným posláním captchy obtěžovat lidi, přičemž boti si s ní hravě poradí.
Možná si teď říkáte, další článek o nějaké sofistikované OCR čtečce. Musím vás ale zklamat (nebo potěšit), o nich dnes řeč rozhodně nebude. Podíváme se na zoubek elegantnějšímu, ale přitom ne tak známému řešení a možná někteří z vás zjistí, že ani jejich captcha systém není neprůstřelný. Zaměříme se na mladými opěvované a skeptiky zavrhované PPC služby založené na systému BUX, neboť captcha se stala jejich prioritní a zároveň jedinou ochranou proti autoclickerům. Byl bych ale velice nerad, kdyby se diskuze pod tímto článkem zvrhla v hádku o smyslu zmiňovaných výdělečných systémů, neboť to v první řadě není cílem tohoto článku a za druhé se na podobných systémech dá opravdu vydělat nemalý obnos dolarů, rozhodně ne ale ručním klikáním.
BUX je oblíbený webový systém založený na principu PPC (Pay Per Click), tedy způsobu výdělku, při kterém je uživatel finančně odměňován za proklik reklamních odkazů. V různých úpravách jej využívají přední PPC servery zaměřené na tento druh komerce. Výdělky založené na výše uvedeném systému (nebo jeho obdoby) se staly doslova boomem posledních let, a to převážně mezi mladými lidmi. Jako u každého způsobu možného obohacení, i u PPC se ale postupem času našli lidé, kteří si chtěli tuto činnost usnadnit, nejlépe plně zautomatizovat, a tak se krátce po vzniku zmíněných systémů začaly přihlašovací formuláře opatřovat captcha obrázky, i když nutno dodat, že mnohé PPC aplikace (a tím zdaleka nemyslím jen ty malé) jimi nedisponují dodnes.
Podíváte-li se na žebříčky oblíbenosti jednotlivých BUX systémů, pak se dozvíte, že nejoblíbenějším serverem nabízejícím tento způsob výdělku je v současnosti bux.to disponující největším počtem reklam a tudíž i uživatelů. Nevšímejme si nyní skutečnosti, že i s jejich captchou by moderní OCR čtečka neměla větší problém a zaměřme se rovnou na chybnou implementaci způsobující její praktickou nefunkčnost.
![Captcha1](https://i.iinfo.cz/urs/img1-preview-121908672723597.png)
Přihlašování tvoří klasický formulář vyžadující uživatelské jméno, heslo a kód zobrazené captchy, celkem běžná záležitost. Mimo to nám server při vstupu na tuto stránku přidělí i jedinečný identifikátor sezení PHPSESSID. Vyplňme nyní všechny údaje a přihlasme se. Server následně zkontroluje námi zadaná data a v případě úspěšné autentifikace a korektně opsaného captcha kódu jsme vpuštěni do systému a do našeho sezení je zapsána informace o platném opsání captcha znaků, jsme tudíž považováni za člověka a můžeme se s chutí pustit do vydělávání tvrdé měny. Možná si teď říkáte, že jste si ničeho nezvyklého, co by odporovalo bezpečnostním pravidlům, nevšimli, a přesto se tak stalo.
Podívejte se nyní na přidělená cookies. Zmíněná informace o korektním opsání kódu z captchy nacházející se v sezení totiž není nijak spjata s právě použitými přihlašovacími údaji, ty se nacházejí každá ve vlastním cookie, čehož se dá samozřejmě snadno zneužít a boti tak nemilosrdně činí. Stačí totiž použít identifikátor sezení obsahující informaci o regulérním překonání captchy i pro pozdější autentifikaci, a to k libovolnému účtu, opisovat captchu v následujících přihlašovacích procesech tak nebude nutné a boti mají doslova zelenou, zatímco lidé se otrocky trápí při opisování captcha obrázků. Navíc lze při takto nevhodně implementovaném bezpečnostním prvku zajít ještě dál a v našich požadavcích vedle uživatelského jména a hesla hashovaném algoritmem MD5 jednoduše identifikátor sezení vůbec neodesílat, pak dojde rovněž k úspěšnému přihlášení, aniž bychom kdy opisovali jakýkoliv kód z obrázku. Tato chyba je typická především pro systémy, kde byla ochrana captchou implementována teprve později a není tak svázána s procesem přihlašování.
![Captcha2](https://i.iinfo.cz/urs/img2-preview-121908676616629.png)
Pokud jste někdy listovali ve fóru PPC serverů threadem s palcovým titulkem „Security“, možná jste zamáčkli slzu nad naivitou majitelů a v první řadě tvůrců těchto systémů. Snaha najít sofistikované řešení, které by vyřešilo problém automatických botů, je jistě chvályhodná, otázkou však zůstává, zda by nebylo rozumnější příliš nepřemýšlet nad komplikovanými algoritmy a soustředit svoji pozornost spíše na kvalitní 3D captchu svázanou s přihlašovacími údaji a pouze jedním procesem autentifikace. Přinejmenším současné technologie, a tudíž i všichni boti, by byli vůči takovému zabezpečení bezzubé. Přitom samotná implementace by nezabrala déle než několik minut a uživatelé rozdíl v podstatě nikterak nepocítí.
Schopnosti jednotlivých internetových botů se přímo odvíjejí od stupně univerzálnosti, kterým je program vybaven. Čím širší okruh využití, tím menší stupeň úspěšnosti a naopak, přičemž v případě botů vybavených OCR čtečkou to platí dvojnásob. Automatizace v čele s roboty se navíc stává boomem posledních let, lze tedy předpokládat, že se s podobnými systémy na principu Turingova testu budeme v budoucnosti setkávat ještě častěji.
Captcha je vůbec zvláštní druh zabezpečení, navíc se u uživatelů netěší přílišné oblibě, neboť obtěžuje právě je, ale přitom chrání majitele nabízených služeb. V posledních měsících jsme měli možnost slyšet postupně o prolomení captchy gigantů jako Google či Microsoft a ani nejznámější internetová peněženka PayPal si s propracovanou captchou hlavu neláme. Registrační formulář je opatřen snadno prolomitelným obrázkem a v případě alternativního formuláře je možné se zaregistrovat dokonce bez čtení jakékoliv captchy, ta na primárním registračním formuláři tak postrádá jakýkoliv smysl. Rozhodnete-li se tedy pro zabezpečení svých služeb formou captchy, vyvarujte se její chybné implementaci, která více než botům znepříjemňuje život regulérním uživatelům.