Vyšlo na serveru Digiweb.cz,12.9.2006
Vytištěno z adresy: http://www.earchiv.cz/b06/b0912001.php3

Captcha: jste člověk, nebo stroj?

Řada užitečných služeb dnešního Internetu by se už neobešla bez plně automatizovaného Turingova testu, který má za úkol rozlišit člověka od stroje. Říká se tomu "captcha".

Když známý anglický matematik Alan M. Turing vymyslel v roce 1950 svůj test, dodnes označovaný jako "Turingův test", dnešní Internet ještě neexistoval. Stejně tak vyspělost tehdejší výpočetní techniky se s tou dnešní nedala srovnávat. Přesto se už tehdy lidé zabývali stejnou otázkou, která nás trápí i dnes.

Ona otázka zní na první pohled poněkud absurdně: "je někdo či něco strojem, nebo člověkem"?

V polovině minulého století si lidé tuto otázku kladli spíše "perspektivně", v souvislosti s prvními krůčky oboru, usilujícího o vytvoření umělé inteligence. Už tehdy se ptali, jak poznáme že bylo dosaženo kýženého cíle a vznikla skutečná umělá inteligence. Jak ji vlastně poznat?

Právě na to odpovídá Turingův test, který nechává umělou inteligenci předstírat, že je člověkem (včetně možnosti lhát, resp. neříkat pravdu), a nechává jiné lidi posuzovat, zda jednají se člověkem či se strojem. Pokud to nejsou schopni rozlišit, pak se stroj úspěšně vydává za člověka a umělá inteligence je na světě.

Při Turingově testu samozřejmě musí být splněny určité výchozí předpoklady. Třeba ten, že komunikující strany se vzájemně nevidí a předávají si jen písemné vzkazy. To aby se nedalo posuzovat cokoli třeba podle vzhledu či zabarvení hlasu.

Roboti jsou už mezi námi...

Do dnešních dnů stále ještě žádná umělá inteligence Turingovým testem neprošla. Ale na druhou stranu existuje velké množství robotů, kteří vůbec neaspirují na to, aby prošli Turingovým testem a stali se umělou inteligencí. A je jich opravdu široká škála - od těch "fyzických", kteří třeba sami něco montují někde v továrnách, až po roboty softwarové, kteří sami pracují na počítačích či získávají informace v prostředí celosvětového Internetu.

A právě tady, u nejrůznějších robotů, skriptů, programů, kódů či jinak pojmenovaných "strojů", působících v prostředí Internetu, je nepříjemný problém. Vytvořit (naprogramovat, napsat) takovéto stroje může skutečně kdokoli. A již velmi jednoduchý stroj může dělat takové věci, jako třeba registrovat se u nějaké zdarma poskytované služby, nebo ji přímo využívat. Může si například sám vytvořit nový účet na nějakém freemailu, sám poslat po Internetu SMS zprávu, sám někde vyplnit nějaký komentář atd.

Takového možnosti samozřejmě lze využít "pozitivně". Bez nich by se neobešly například plnotextové vyhledávače (jako je třeba známý Google), které vysílají své roboty na sledované webové stránky dívat se, co je zde dostupné (a pak tzv. indexují nalezený obsah, ukládají jej do databáze vyhledávače, a ten je následně využívá pro odpovědi na vyhledávací dotazy uživatelů). Další možností, zdaleka ne poslední, je zautomatizování rutinních činností, které by lidé jinak museli dělat ručně (a nebavilo by je to, dělali by přitom chyby atd.).

Možnosti "softwarových strojů" lze ale stejně tak snadno i zneužít. Třeba k zahlcení nějaké on-line diskuse strojově vkládanými komentáři, které nezřídka obsahují reklamu na to či ono. Nebo k hromadnému vytváření nových účtů na nějaké zdarma poskytované službě, čímž jejímu poskytovateli vznikají náklady, a může dojít i k zahlcení služby jako takové. Nebo třeba k hromadnému odesílání SMS zpráv, poštovních zpráv atd., a tím vlastně ke spammingu. Snad netřeba pokračovat v tomto výčtu.

Potřeba Turingova testu "naruby"

S rozvojem celosvětového Internetu, a s jeho dostupností skutečně každému, bohužel rostou i snahy o zneužití výše naznačených možností. Bohužel do takové míry, že bez vhodných a účinných protiopatření by se řada užitečných služeb stala zcela nepoužitelnými, nebo by se jejich poskytovatelům už nevyplácelo je poskytovat.

Většina protiopatření přitom staví na snaze rozlišit, zda požadavek přichází od člověka, nebo od stroje (robota, skriptu atd.). Požadavek na poskytnutí služby pak přijme pouze tehdy, pokud usoudí že přichází od člověka. Jde tedy o analogii Turingova testu, ovšem jakoby "naruby": už nejde o pozitivní test, který má někoho někam přijmout (akceptovat stroj jako myslící, resp. jako umělou inteligenci), ale spíše o negativní test, který má někoho vyloučit (odhalit toho, kdo by neměl mít právo na určitou službu).

Také techniky, které se v tomto případě používají, sází spíše na omezenost schopností robota, než aby testovaly jejich dostatečně vysokou úroveň. Záměrně totiž využívají něčeho, co je pro člověka relativně snadné a bezproblémové, zatímco pro robota (obvykle relativně jednoduchého) je nepřekonatelným problémem. Tyto technicky samotné však musí být jednoduché a schopné autonomního fungování, tak aby nevyžadovaly přímou součinnost člověka. I v tom je odlišnost od původního Turingova testu, který provádí člověk, zatímco zde je provádí stroj (resp. program).

Co je Captcha?

Popisované techniky, usilující o rozpoznání lidského uživatele od stroje (robota), již také existují nějaký ten pátek, a mají dokonce i své obecné pojmenování. Zní poněkud exoticky: CAPTCHA, což je zkratka od: Completely Automated Public Turing test to tell Computers and Humans Apart. V doslovném překladu to znamená "plně automatizovaný veřejný Turingův test pro rozlišení lidí a počítačů"). Tento termín vymysleli čtyři pánové z Carnegie Mellon University a firmy IBM již v roce 2000, a universita Carnegie Mellon jej prý má dokonce i zaregistrován jako svůj trademark (zdroj).

Nejčastější formou Captch-y jsou obrázky, na kterých je nějaký "zpřeházený" text či víceciferné číslo, navíc s různě komplikovaným pozadím, které ztěžuje jeho čitelnost. Nikoli tak moc, aby to člověk už nemohl přečíst (a opsat jako "důkaz své lidskosti" někam do připraveného políčka). Ale už dost "nečitelné" na to, aby si na tom vylámaly zuby případné snahy robotů o automatické rozpoznání textu (resp. čísla). Určitě jste se s tím již někde potkali - a pokud snad ne, jednu takovou "captch-u" vidíte na následujícím obrázku.



Obrázek: Příklad captch-y z formuláře pro odesílání SMS zprávy do sítě Vodafone (z veřejné brány http://sms.vodafone.cz/)

Grafické formy captchy ale přináší jednu velkou nepříjemnost: zuby si na nich nelámou pouze "nežádoucí" roboti, ale třeba také čtecí zařízení zrakově postižených uživatelů. Ani ti pak nemají šanci projít přes captchu, a příslušné služby se pak pro ně stávají nedostupné. V dnešní době, kdy třeba po webech veřejných institucí se přímo zákonem požaduje dostupnost i pro uživatele s různými formami postižení, to je problém.

Naštěstí existují i jiné formy captchy, než jen grafické. Může jít třeba o zvukovou captchu, která vyžaduje aby si uživatel vyslechl nějaký pokyn a na něj reagoval. Pak zrakově postižení problém mít nemusí, ale zase jej budou mít uživatelé sluchově postižení.

V úvahu naštěstí připadají i další formy, jako třeba nějaká slovní úloha, kterou uživatel musí spočítat a výsledek někam zapsat. Nebo nějaký menší rébus, hádanka apod. Možností je nepřeberně, ale vždy je nutné pečlivě vyvážit míru ochrany, kterou je třeba zajistit, a míru obtěžování, kterou je ještě ochoten tolerovat zájemce o příslušnou službu. A takovéto vyvážení nemusí být vůbec jednoduché. A co teprve do budoucna, kdy schopnosti nežádoucích robotů nejspíše také rychle porostou.