Jak spameři zvítězili nad testem CAPTCHA

CAPTCHA je dnes všudypřítomným souputníkem webových formulářů. Používáme ji proto, abychom odlišili člověka od zákeřného stroje. Čas od času ale stroj přeci jen zvítězí.

Bez CAPTCHA testu se dnes už neobejde žádná větší webová služba. Technika slouží k tomu, aby zamezila automatickému dolování dat ze stránky a jejímu programovatelnému využití. To je trošku těžkopádná definice, příklad je ale nasnadě. Takový Twitter, Gmail nebo český Seznam jednoduše nechce, aby někdo pomocí programu (nebo skriptu) vytvořil strojově třeba deset tisíc účtů na jedno klepnutí a mohl je pak začít využívat k nejrůznější pochybné činnosti. Druhým důvodem CAPTCHA testování je třeba touha provozovatele webu po tom, aby obsah na jeho stránkách „nevykrádal“ automatický indexovací robot, neboť takový robot bez problému vycucne všechny informace, nicméně reklamy, ze kterých je web živ, si nevšimne ani náhodou.

Turingův test

CAPTCHA je zkratkou pro„Completly Automated Public Turing test to tell Computers and Humans Apart“.Hezky-česky se tedy jedná o plně automatizovaný Turingův test. Zbytek už překládat není třeba, Turingův test je totiž ve vší obecnosti jakákoliv zkouška, která testuje, jestli jste člověk nebo „hloupý“ stroj.

loebner.png

Jeho historie sahá do padesátých let minulého století, kdy sloužil k jednoduchému testu, zdali náhodná osoba pozná, jestli mluví s člověkem nebo umělou inteligencí. Turingův test má dnes mnoho podob a kdo jej pokoří (zejména někteří chatovací roboti), může usilovat o tzv. Loebnerovu cenu, o kterou se v každoročním soutěžním klání bojuje už od začátku devadesátých let minulého století. Seznam vítězů najdete na webu Loebner.net.

Je pravda, že ten druhý případ zatím příliš rozšířený není, z toho prvního se ovšem stal nepsaný standard. Sám si ostatně dobře pamatuji na dobu „předcaptchovou“, kdy jste na webu našli hromadu nástrojů, které vaše stránky snadno a rychle (strojově) zaregistrovali do desítek a stovek katalogových vyhledávačů. Bylo to snadné, program totiž v jedné sekundě vyplnil registrační formulář, strojově „klepnul na Enter“ a vám už jen došel e-mail s potvrzením, že se vaše stránka dostala do katalogového vyhledávače kdesi v Malajsii.

Grafický CAPTCHA test

Podobných aplikací vznikly tisíce, každá se věnovala něčemu jinému a provozovatelům služeb pochopitelně brzy došla trpělivost, jelikož byly velmi snadno zneužitelné. Proto se objevila grafická CAPTCHA, která má zamezit všem těmto strojově vyplněným formulářům, neboť jestli něco běžný program nepochopí, tak je to obrázek, ze kterého má opsat text.

Chvíli se zdálo, že jeden programátor zvítězil nad druhým, byla to ale jen falešná naděje, underground totiž použil stejnou počítačovou zbraň a na pomoc si vzal OCR – strojové rozpoznávání textu v obrázcích. Jak se neustále komplikuje CAPTCHA, zlepšují se i OCR algoritmy, a tak se zdá, že se vážně jedná o marný boj. Rukojmí v tomto boji jsme přitom my všichni – surfaři na webu, kteří nejen že musí do stále většího množství webových služeb zadávat hrozivě složitá hesla (není snad kvalita hesla odpovědností pouze a jedině samotného uživatele?), ale v některých případech si skutečně lámou hlavu i nad tím, co vlastně CAPTCHA obrázek obsahuje. Tato podoba Turingova testu jednoduše už místy zašla tak daleko, že jako stroj vyhodnotí i nebohého člověka.

1 000 prolomených CAPTCHA testů za necelých 40 korun

Druhou ranou pro grafický CAPTCHA test je pak komercializace jeho prolamování. A zde už nemá šanci ani ta nejlepší obrázková šifra. Do boje proti CAPCTHA testu na straně undergroundu se totiž zapojily zcela regulérní podniky, jejichž weby připomínají vcelku solidní byznys.

best captchas.png
Ceník Best Captchas: koupit se dnes dá prostě všechno

Komerční (a v mnoha případech vážně profesionální) služby jako DeCaptcher, Beat Captchas, Bypass CAPTCHA, Captcha Buster nebo třeba Human Coder vám slíbí, že pro vás CAPTCHA test prolomí. Samozřejmě to nebude zadarmo, ceny se ale pohybují pod hladinou jednoho centu za jednu úspěšnou kontrolu. V praxi to tedy znamená, že třeba takový DeCaptcher si za 1 000 prolomených testů účtuje dva dolary. Za necelých čtyřicet korun tedy jako autor nějakého hypotetického spamovacího robota získáte třeba tisíc strojově vytvořených registrací na Twitteru (registrace vyžaduje úspěšný CAPTCHA test). Zbytek si už doprogramujete, strojově vyplníte formulář, správný text kontrolního obrázku a už můžete zvesela dobývat tuto populární službu pomocí virtuálních osob s tradičními jmény Monica4587982, Julia458723 aj.

Jednodolaroví dělníci

Samozřejmě se nabízí otázka, jak to vše funguje. Leckoho napadne, že tyto služby prostě jen provozují hromadu serverů, na kterých permanentně běží nějaký OCR software a z fronty si postupně bere obrázek za obrázkem, který dekóduje. Při nějakém vyšším výkonu pak bude zákazník na rozkódování čekat třeba jen několik málo sekund, aby mohl dokončit registraci na Hotmailu, Yahoo Mailu a Googlu (velmi často zneužívaní weboví pošťáci pro spam).

captcha seznam.png
CAPTCHA test pro autory webů
nabízí i český Seznam

Skutečnost je ale prozaičtější. Do přepisu obrázků na text se totiž docela často zapojuje člověk. V některých případech nevědomky, do odhalování CAPTCHA testů se totiž mohou zapojit i botnety nakažených počítačů. Ty vám pak třeba na monitoru zobrazí dialog s žádostí, abyste urychleně rozeznali text. Ve skutečnosti ale vyplníte CAPTCHA test třeba pro Google nebo Microsoft a výsledky se okamžitě pošlou na centrální záškodnický server, který díky vám skutečně vytvoří nového uživatele na jedné z těchto služeb. Tento způsob ale není zase tak častý a skutečně jde už za hranici běžné legislativy.

captcha test google.png
CAPTCHA test a formulář Googlu

Služby jako DeCaptcher a jiné používají naopak zcela legitimních technik – používají totiž hrubou lidskou pracovní sílu. Podle Scotta Koeglera z webu Internet Evolution si takoví novodobí dělníci vydělají až jeden dolar denně a za tuto cenu třebas během hodinové směny vyplní stovky až tisíce CAPTCHA testů.

Proti tomuto útoku autoři technik CAPTCHA prakticky nemají šanci a provozovatelé podobných služeb zároveň případnému zájemci vše dokážou zpříjemnit. Většina těchto služeb tedy nabízí jednoduché API hned v několika programovacích jazycích.

Zákazník Captcha Busteru ve svém PHP skriptu použije jen těchto pár řádků:

$captcha=file_get_contents("adresa k obrázku s testem CAPTCHA","FILE_BINARY");
cs_set_auth_details("můjlogin","můjklíč");
cs_initialize();
$result=cs_solve_captcha($captcha,$message);
echo "CAPTCHA obsahuje tento text:".$result[result];
cs_dispose();

Nejprve si tedy ve svém skriptu načte obrázek CAPTCHA, přihlásí se ke službě, pošle veškerá data ke zpracování a během okamžiku získá výsledek. Vše ostatní je v režii autora skriptu, musí tedy zjistit adresu obrázku, ve kterém se nachází CAPTCHA a je to pochopitelně on, kdo se musí postarat o další detaily, proces obrázek → text je ale zcela v režii Captcha Busteru. Prakticky identicky fungují i ostatní služby a programátoři mají po ruce vedle PHP zpravidla i jazyky Python, Perl, C#, Javu nebo třeba C++.

reCAPTCHA

Profesionalizace a komercializace prolamování CAPTCHA testů na zakázku a především jeho neskutečně snadné zakomponování do aplikací je současný trend. Ačkoliv se jedná o praktiky na hraně zákona, podobné služby se zpravidla tváří jako reklamní a marketingové agentury, které vám přeci pouze chtějí pomoci s byznysem.

google captcha.png

Oba tábory budou ruku na srdce po technologické stránce vždy značně vyrovnané – pokud se ovšem nezačne používat nějaká nová převratná technologie. Něco pravdy tak bude i na poněkud cynickém komentáři jistého čtenáře: „když už se neubráníme prolamování CAPTCHA testu, používejme alespoň projekt reCAPTCHA.“


reCAPTCHA v testu používá slova z digitalizace amerických knihoven, se kterými si neporadil běžný OCR software. Člověk tak dopomůže snazší digitalizaci a naučí OCR software novým slovům. Projekt reCAPTCHA dnes patří do portfolia Googlu, i ten tedy výsledky používá pro potřeby digitalizace a rozpoznávání textu.

Diskuze (37) Další článek: Britové mají jasno: Google šmírováním Wi-Fi porušil zákon

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,