reCAPTCHA

Z Wikipedii, wolnej encyklopedii
Logo reCAPTCHA

reCAPTCHA – rozwiązanie informatyczne, dzięki któremu rozproszona aktywność użytkowników Internetu jest wykorzystywana do pomocy przy rozpoznawaniu fragmentów zeskanowanego tekstu, z których odczytaniem nie poradziło sobie oprogramowanie OCR. Łączy ochronę stron internetowych przez CAPTCHA z pożyteczną pracą użytkowników sieci na rzecz digitalizacji tekstów[1]. Wdrożone i rozwijane w ramach projektu reCAPTCHA[2] na Uniwersytecie Carnegiego i Mellonów w Pittsburghu.

Idea[edytuj | edytuj kod]

W związku z masowym wykorzystaniem botów do rozpowszechniania spamu coraz więcej serwisów zabezpiecza swoje strony internetowe poprzez CAPTCHA. Użytkownik musi rozpoznać znajdujący się na obrazku fragment celowo zniekształconego tekstu – dowodzi w ten sposób, że jest żywym człowiekiem, a nie maszyną. Zadania CAPTCHA (pary złożone z obrazka i ukrytego na nim słowa) są generowane automatycznie przez odpowiednie programy.

Tymczasem z bardzo podobnym zadaniem, polegającym na rozpoznaniu nieczytelnych dla komputera fragmentów tekstu, borykają się programy OCR. Podczas digitalizacji zeskanowanego tekstu (np. książki) często pojawiają się fragmenty nieczytelne, w przypadku których oprogramowanie OCR nie daje jednoznacznego wyniku. Ponieważ człowiek lepiej od maszyny radzi sobie z prawidłowym rozpoznawaniem takich fragmentów, instytucje zajmujące się digitalizacją zasobów bibliotecznych zatrudniają pracowników, których zadaniem jest weryfikacja błędów OCR.

Idea reCAPTCHA pozwala zastąpić pracę weryfikatorów przez grupę przypadkowych użytkowników sieci, którzy każdego dnia rozwiązują około 200 milionów zadań CAPTCHA[3]. Jeśli rozwiązanie jednego zadania zajmuje 10 sekund, to łączna liczba przepracowanych w ten sposób godzin przekracza 150 tysięcy dziennie. Wykorzystanie nawet niewielkiej części tej pracy do pomocy przy digitalizacji pozwala na zaoszczędzenie kilku tysięcy etatów pracowników weryfikujących działanie OCR metodami tradycyjnymi.

Zasada działania[edytuj | edytuj kod]

Przykładowy obrazek użyty przez test reCAPTCHA

Załóżmy, że podczas odczytywania przedstawionego fragmentu tekstu[a] program OCR rozpoznaje słowo dennej, ale nie potrafi rozpoznać aktivity (we fragmencie zakreślonym obwódką).

Zakreślony fragment jest dodatkowo zniekształcany, tak by typowy program OCR nie poradził sobie ani z pierwszym, ani z drugim słowem[b], po czym utworzony w ten sposób obrazek (u dołu) jest wykorzystywany jako zadanie CAPTCHA.

Użytkownicy na ogół bezbłędnie rozpoznają obydwa słowa i wpisują do formularza odpowiednią frazę (tu dennej aktivity). Jeśli znana część frazy (dennej) jest zgodna z wynikami OCR, to program przyjmuje, że brakująca część została podana (aktivity). Dla pewności ostateczny wynik ustalany jest na podstawie aktywności kilku niezależnych użytkowników rozwiązujących to samo zadanie: jeśli wszyscy (lub przeważająca większość) wpiszą to samo słowo (aktivity), to jest ono uznawane za wynik weryfikacji.

Szczegóły implementacji[edytuj | edytuj kod]

W obecnej implementacji oprogramowania oraz wtyczek reCAPTCHA, obydwa wyszukiwane słowa nie pochodzą ze wspólnej frazy tekstu (jak w powyższym przykładzie), lecz stanowią dwa niezależne obrazki, z których jeden zawiera tekst znany, drugi zaś – przeznaczony do rozpoznawania. Użytkownik nie wie, który z dwóch obrazków jest dodatkowym zabezpieczeniem, zatem musi wprowadzić obydwa słowa[c]. Badane słowo (nierozpoznane przez OCR) jest początkowo pokazywane trzem różnym użytkownikom, za każdym razem z innymi, przypadkowo wybranymi zniekształceniami obrazu[4]. Jeśli każdy z nich wybrał tę samą odpowiedź, słowo jest uznawane za odgadnięte i wprowadzane do pliku aktualnie digitalizowanego tekstu. Odgadnięte słowa (i odpowiadające im obrazki) stają się jednocześnie wzorcami nowych słów zabezpieczających. Jeśli trzej pierwsi użytkownicy nie podali tej samej odpowiedzi, obrazek jest prezentowany większej liczbie osób, ostateczna decyzja jest zaś podejmowana na podstawie najczęściej powtarzających się odpowiedzi[4].

Wykorzystanie[edytuj | edytuj kod]

Przykładowo w 2009 r. oprogramowanie reCAPTCHA było na bieżąco wykorzystywane do wspomagania prac nad digitalizacją książek zgromadzonych w Internet Archive oraz archiwalnych roczników „New York Timesa”. Część oprogramowania służącą do zabezpieczania usług sieciowych przed spamem udostępniono na stronach projektu[2]; udostępniono również gotowe wtyczki dla oprogramowania WordPress, Joomla!, MediaWiki czy Zend Framework.

W ciągu pierwszego roku funkcjonowania, użytkownicy reCAPTCHA przyczynili się do zamieszczenia w Internecie ponad 17 000 książek[5].

ReCAPTCHA nie zapewnia jednak pełnego bezpieczeństwa serwisu. Przekonał się o tym magazyn Time, którego ranking 100 najbardziej wpływowych osób świata został zhackowany przez internautów związanych z serwisem 4chan.org. Ranking był ułożony na podstawie głosów internautów i zabezpieczony przez reCAPTCHA. Hackerom udało się wprowadzić na pierwsze miejsce założyciela serwisu 4chan.org i ułożyć skrótowiec z pierwszych liter nazwisk osób w rankingu: „marble cake also the game”[6].
W tym wypadku system reCAPTCHA nie został złamany, jednak udało się go obejść, gdyż zawiodły inne elementy (atak typu cross-site request forgery) systemu do głosowania.

Uwagi[edytuj | edytuj kod]

  1. Fragment (w języku słowackim) pochodzi z opisu działań ochronnych wobec kozic w słowackiej części Tatrzańskiego Parku Narodowego.
  2. Jest to zabezpieczenie przed odczytaniem już rozpoznanej części przez boty, które również mogą dysponować programami OCR.
  3. Gdyby za każdym razem zabezpieczenie stanowił obrazek wyświetlany np. po lewej stronie okienka, część użytkowników unikałaby dodatkowej pracy rozpoznając tylko słowo zabezpieczające (patrz: bibliografia).

Przypisy[edytuj | edytuj kod]

  1. Walka ze spamem jako narzędzie digitalizacji książek – reCAPTCHA.
  2. a b Strona projektu. [dostęp 2009-04-04]. [zarchiwizowane z tego adresu (2009-05-18)].
  3. What is reCAPTCHA? (opis ze strony Projektu reCAPTCHA).
  4. a b von Ahn L., Maurer B., McMillen C., Abraham D., Blum M. reCAPTCHA: human-based character recognition via Web security measures.. „Science”. 5895 (321), s. 1465–1468, wrzesień 2008. DOI: 10.1126/science.1160379. PMID: 18703711. (ang.). 
  5. reCAPTCHA ocaliła ponad 17 tysięcy książek. [dostęp 2009-04-04]. [zarchiwizowane z tego adresu (2011-06-05)].
  6. Hackerzy ośmieszyli magazyn Time. [dostęp 2009-04-30]. [zarchiwizowane z tego adresu (14 kwietnia 2010)].

Bibliografia[edytuj | edytuj kod]