Home > Wiadomości > Kody CAPTCHA – co to jest i skąd się wzięło

Kody CAPTCHA – co to jest i skąd się wzięło

W związku z wprowadzeniem CAPTCHA do usługi bezpłatnego dostępu do Internetu Aero2 wiele osób zadaje sobie pytanie, skąd wzięły się te nielubiane kody, do czego służą i dlaczego się tak dziwnie nazywają. Postanowiłem przejrzeć historię tego rozwiązania, wyjaśnić kwestię zastosowań oraz przyjrzeć się rozwiązaniu stosowanemu przez Aero2, czyli systemowi reCAPTCHA firmy Google, który ma wiele ciekawych cech.

Wszystko jednak zaczęło się od… pewnego telegramu wysłanego jeszcze w XIX wieku.

Zapraszam do lektury.

SPAM – niechciane wiadomości

Od czasu wynalezienia usług masowej wysyłki wiadomości pojawiła się chęć ich wykorzystania jako nośnika reklamowego. Jeden z pierwszych przykładów niechcianych i niezamawianych wiadomości pochodzi jeszcze z drugiej połowy XIX wieku, gdy pewien dentysta z Londynu postanowił rozesłać… telegramy do deputowanych parlamentu z informacją, gdzie i w jakich godzinach przyjmuje. Sprawa została nagłośniona w prasie dając jeszcze większą, nieplanowaną darmową reklamę.

Pierwszy przykład bardziej nam znanego SPAMu w postaci wiadomości email został wysłany dopiero w 1978 roku i reklamował nowe komputery firmy DEC. Został rozesłany dokładnie do 393 użytkowników pewnej listy dyskusyjnej.

Sama nazwa SPAM ma także skomplikowaną historię. Z jednej strony jest to nazwa produktu, będącego odpowiednikiem naszej konserwy turystycznej, czyli po prostu mielonki. Z drugiej strony do popularnego języka wprowadził ją słynny zespół kabaretowo-rozrywkowy Monty Python w scence o mielonce. Jednak powiązanie tego z niezmawianymi wiadomościami to jak zwykle skomplikowany proces kulturowy, który spowodował skojarzenie powtarzanego w kółko słowa spam (w skeczu Pythonów) z powtarzającymi się wiadomościami publikowanymi w systemie USENET – wtedy z powodu błędu oprogramowania.

Po raz pierwszy spam stał się praktyką komercyjną w kwietniu 1994, gdy pewna firma prawnicza postanowiła zatrudnić programistę do masowego rozesłania wiadomości na grupy dyskusyjne na temat loterii zielonych kart uprawniających do pracy w USA. Już w roku 1998 pierwsze słowniki dołączyły słowo spam w znaczeniu niechcianych wiadomości.

Ocenia się, że w roku 2008 spam stanowił 92% wszystkich przesyłanych w Internecie wiadomości email. Jak to możliwe?

BOTy – automatyczne rozsyłanie

O ile pierwsze reklamy były wysyłane ręcznie, o tyle wraz ze zwiększaniem się zasięgu Internetu i liczby skrzynek pocztowych pojawiły się różne metody automatyzacji tego procesu, co było nie tylko tańsze, ale też znacznie szybsze. Z czasem, poza email i grupami dyskusyjnymi USENET (już dzisiaj w zasadzie zapomnianymi) pojawiły się fora dyskusyjne, komentarze pod artykułami, fanpage i inne miejsca, gdzie można umieścić reklamy. Liczba sposobów publikacji i prezentowanych treści stała się olbrzymia.

Właśnie w celu realizacji tych zadań reklamowych zaczęto tworzyć skrypty, programy i automaty, które wykonują tę ciężką, żmudną i nieciekawą pracę. Nazwa BOT pochodzi od słowa robot i wskazuje właśnie na taki automat, który wykonuje powtarzalne, stosunkowo proste zadania.

Początkowo były to po prostu programy, które po uruchomieniu na komputerze z dostępem do Internetu wykonywały rozsyłanie wiadomości do adresatów z dostarczonej bazy danych. Szybko jednak zaczęła się wojna między twórcami botów, a twórcami systemów obronnych: automatycznych i ręcznych filtrów antyspamowych. Ponieważ wykryć i zablokować pojedyncze źródło (jeden komputer podłączony do Internetu) jest bardzo łatwo, dzisiaj większość spamu jest wysyłania z… zawirusowanych komputerów zwykłych użytkowników. Mogą one być zaatakowane np. wyrafinowanymi trojanami. Te mogą wykonywać mnóstwo skomplikowanych czynności: od utrzymywania sieci komunikacji rozproszonej pomiędzy siecią botów (tzw. botnetem), przez rozsyłanie spamu, aż po wyświetlanie reklam użytkownikowi komputera i obroną przed wykryciem i wykasowaniem nawet przez dobre programy antywirusowe.

Jednym z elementów obrony przed spamem są systemy weryfikacji, czy przed komputerem siedzi człowiek.

CAPTCHA – sprawdźmy, czy jesteś człowiekiem

W 1996 roku niejaki Moni Naor zasugerował w jednej ze swoich prac naukowych, że może pojawić się potrzeba takiej weryfikacji przy dostępie do usług internetowych. Chodziło o tutaj przede wszystkim o strony internetowe. Zabezpieczenie to określił to znanym z historii komputerów pojęciem testu Turinga. Test ten miał w oryginale służyć do sprawdzania, czy komputery osiągnęły umiejętność posługiwania się językiem naturalnym i myślenia w sposób ludzki (w skrócie test na inteligencję maszyny) podczas zwykłej rozmowy, jednak tutaj działanie było odwrotne: to maszyny miały wykryć, czy na pewno mają do czynienia z człowiekiem.

W praktyce tego typu zabezpieczenie zastosowano po raz pierwszy w 1997 roku. Wtedy najsłynniejszą wyszukiwarką sieciową nie był Google, ale AltaVista (mało kto pamięta już czasy przed Google). Twórcy tego systemu zauważyli, że ktoś wrzuca do ich bazy adresów internetowych bardzo dużo odnośników w celu zakłócenia ich systemu oceny stron. Formularz dodawania stron był przeznaczony dla ludzi, a ktoś ewidentnie zaspamował ten system automatycznym skryptem. Pracownicy firmy wpadli na pomysł zmuszenia użytkowników do przepisania napisu z obrazka do specjalne pola, zanim jego zlecenie zostanie zaakceptowane. Obrazek był celowo nieco zniekształcony tak, aby dostępne wtedy narzędzia do rozpoznawania obrazów (tzw. OCRy) nie były w stanie ich odczytać.

Tak oto narodził się CAPTCHA. Nazwa ta powstała dopiero w 2000 roku i została użyta przez zespół naukowców z Carnegie Mellon University. Jest to skrót od Completely Automated Public Turing test to tell Computers and Humans Apart – w wolnym tłumaczeniu to całkowicie zautomatyzowany, publiczny test Turinga rozpoznający ludzi i komputery. W oryginalnym założeniu jest to dowolne zadanie, z którym człowiek poradzi sobie łatwo, jednak komputer będzie miał problem lub nie będzie mógł go wykonać wcale.

Najpowszechniejszym stosowanym dziś rodzajem testu CAPTCHA jest rysunek ze zniekształconymi na różne sposoby literami, z którego trzeba odczytać tekst i przepisać do okienka. Spotykamy się jednak z wieloma innymi testami. Może to być żądanie odpowiedzenia na pytanie zadane w języku naturalnym (np. podaj miesiąc następujący po kwietniu), wskazania obiektów o wybranej własności (wskaż koty na zdjęciach), wykonania zadania (przeciągnij piłkę do kosza). Wymyślono też szereg innych rodzajów testu CAPTCHA, jednak to właśnie kody ciągle są najczęściej wybierane przez administratorów systemów komputerowych ze względu na prostotę, niskie wymagania techniczne i znajomość wśród użytkowników.

Powszechność i krytyka

Kody (i inne testy) CAPTCHA stały się skrajnie powszechne i trudno dziś znaleźć stronę, która z nich nie korzysta. Nawet Forum jdtech.pl przy rejestracji jest chronione przez atakami spam-botów za pomocą kodu CAPTCHA i dodatkowego testu CAPTCHA w postaci słownego pytania. Bez ich zastosowania trudno byłoby utrzymać porządek w dyskusji i usuwać spam nawet posiadając dużą grupę moderatorów utrzymujących porządek. Dość wspomnieć, że jeden z ataków spamu na blog jdtech.pl w jego początkach spowodował publikację ponad 23 tysięcy komentarzy w ciągu kilku dni.

Na czym polegają główne problemy z CAPTCHA w znanej nam postaci?  Jest ich kilka.

  1. Po pierwsze po prostu zabiera to czas użytkownikowi, który chce wykonać prostą czynność, np. dodać komentarz. W 2012 zespół Carnegie Mellon oszacował, że jest to w sumie 150 tysięcy godzin, jakie spędzają użytkownicy rozwiązujący zagadki CAPTCHA każdego dnia. Przez to także zniechęca to osoby do interakcji w niektórych przypadkach.
  2. CAPTCHA to przede wszystkim test wizualny, a więc ogranicza dostęp dla osób z dysfunkcjami narządu wzroku. Co prawda najpowszechniejszy system reCAPTCHA ma podpowiedź dźwiękową, jednak jest on przeznaczony dla użytkowników korzystających na co dzień z języka angielskiego. Prawdopodobnie dlatego podpowiedź dźwiękowa nie jest nawet prezentowana w rozwiązaniu zastosowanym przez Aero2 przy ochronie bezpłatnego dostępu do Internetu.
  3. Czasem zadania i kody CAPTCHA są po prostu zbyt trudne, do odczytania przez zwykłych użytkowników. Ponieważ trwa nieustająca walka pomiędzy twórcami kodów CAPTCHA i systemami ich rozwiązywania, trudność kodów po prostu musi rosnąć. Na naszym podwórku mamy z tym także do czynienia w Aero2. W takim wypadku CAPTCHA nie tylko weryfikuje, ale po prostu odstrasza.
  4. Kody CAPTCHA wymagają stosowania graficznych interfejsów użytkownika, a często obsługi dodatkowych skryptów (javascript) i odpowiedniej wydajności komputerów (w przypadku bardziej złożonych testów animowanych i interaktywnych). To powoduje odcięcie od usług urządzeń, które nie spełniają tych wymogów.

A jest to tylko wybór najczęściej powtarzanych zarzutów wobec CAPTCHA.

reCAPTCHA – człowiek jako maszyna

I tu dochodzimy do głównego wroga ludzkości, jakim jest system reCAPTCHA – najszerzej stosowany w Internecie system CAPTCHA, który dziennie serwuje około 100 milionów rysunków na całym świecie. Na czym polega specyfika tego systemu i skąd wzięła się jego popularność?

O ile typowy test CAPTCHA wymaga od nas przepisania ciągu znaków i nic z tego więcej nie wynika, twórcy reCAPTCHA wpadli na pomysł, żeby tę wielką siłę roboczą (przypomnijmy: 150 tysięcy roboczo-godzin dziennie) wykorzystać do czegoś pożytecznego. Rozwiązywanie kodów to rozpoznawanie napisów. Może dałoby się wykorzystać więc to do… no właśnie… rozpoznawania tekstów i napisów?

Tak oto zrodził się pomysł, żeby przy okazji sprawdzania, czy przed komputerem siedzi człowiek poprosić go o rozpoznanie niewyraźnego napisu z zeskanowanej książki, którego nie udało się rozpoznać powszechnie stosowanym systemom OCR. Dlatego właśnie w reCAPTCHA pojawiają się dwa wyrazy, a nie jeden:

Przykład kodu CAPTCHA

Przykład kodu reCAPTCHA - lewy wyraz sprawdza, czy jesteśmy człowiekiem, a prawy - to fragment napisu do rozpoznania

Jeden z wyrazów to specjalnie spreparowany ciąg znaków, który sprawdza, czy z systemu korzysta człowiek, a drugi, zwykle wyraźniejszy, to właściwa praca, którą wykonujemy dla firmy reCAPTCHA a więc i dla Google. Oczywiście tego drugiego wyrazu reCAPTCHA nie weryfikuje, bo po prostu nie zna prawidłowej odpowiedzi. Mimo to jednak odpowiedzi przekazywane przez użytkowników są jeszcze weryfikowane na różne sposoby, zanim zostaną użyte w faktycznym tłumaczeniu.

W ten sposób pomagamy firmie w skanowaniu gazet (do 2012 odczytano w ten sposób 30 roczników The New York Times), trwa skanowanie książek w ramach projektu Google Books, a ostatnio także rozpoznawane są numery domów w ramach usługi Google Street View.

A dlaczego usługa jest tak popularna? Tutaj mamy do czynienia z kilkoma czynnikami.

  1. Usługa reCAPTCHA jest darmowa i w zasadzie nie ma ograniczeń co do liczby wyświetlanych kodów – w tej chwili chwali się około 100 milionami kodów prezentowanych każdego dnia.
  2. Usługa jest bardzo skuteczna: w przypadku pojawienia się skutecznego ataku, zespół obsługujący ją reaguje bardzo szybko odpowiednio modyfikując prezentowane kody, dzięki czemu zabezpieczone tą techniką usługi są cały czas dobrze chronione.
  3. Dzięki obsłudze na serwerach firmy Google jest bardzo niezawodna i działa szybko na całym świecie.
  4. W reCAPTCHA wbudowane są systemy automatycznej obrony, które utrudniają nadużycia usługi. Z tego typu zabezpieczeniami mamy do czynienia nawet w Aero2. Dodatkowo są one na tyle inteligentne i powiązane z innymi usługami firmy Google, że pozwalają sprawdzonym użytkownikom na ułatwienia.

Metody obchodzenia

Mimo wszystko każde zabezpieczenie można jakoś obejść – taniej, lub drożej, ale jednak. W przypadku reCAPTCHA i innych systemów tego typu stosuje się… żywych ludzi odczytujących kody, którym się za to płaci, a czasem nawet i to nie. Trzy przykłady:

  • W biedniejszych, ale skomputeryzowanych krajach (np. Indie, Pakistan) można znaleźć oferty pracy przy odczytywaniu kodów CAPTCHA.
  • Niektóre strony oferujące dostęp do plików oraz pornografii stosują kody CAPTCHA, ale nie są ich pierwszymi użytkownikami, a tylko realizują zadania rozwiązania kodów dla innych systemów automatycznych, które faktycznie potrzebują przedostać się przez to zabezpieczenie w celu realizacji swoich zadań (w tym także spamowania).
  • Powstają systemy wymiany kodów CAPTCHA, w których ludzie rozwiązują sobie kody na wzajem w zamian za punkty. Najpierw my siadamy i rozwiązujemy kody dla innych, a następnie za punkty możemy zakupić automatyczne rozwiązanie prezentowanych nam kodów przez innych użytkowników. Oryginalnie system był przeznaczony dla użytkowników serwisów udostępniania plików. Udało się to także zastosować to nawet w Aero2, jednak tutaj wymagane jest dodatkowe łącze internetowe do przesłania kodu i odebrania rozwiązania (sama konfiguracja jest także skomplikowana).

Jest to możliwe dzięki temu, że systemy CAPTCHA zwykle mają dość długą ważność kodu wyświetlonego użytkownikowi – niektóre systemy pozwalają na odstęp nawet kilkuminutowy między wyświetleniem kodu, a wprowadzeniem rozwiązania.

Kapeć w Aero2

Wracamy na nasze podwórko. Jak wiemy, od 1 kwietnia 2014 operator zastosował test CAPTCHA w usłudze bezpłatnego dostępu do Internetu. Co nie dziwi, wykorzystany został system reCAPTCHA ze względu na domowość, niezawodność i wydajność. Mimo zapowiedzi, kody nie pojawiają się co godzinę, a od miesiąca ciągle są prezentowane w losowych momentach.

Wprowadzanie kodu nie odbywa się bezpośrednio w formatce dostarczonej przez reCAPTCHA, a poprzez specjalną wydzieloną sieć wewnętrzną, która na czas wprowadzania kodu odcina nas od internetu pozostawiając dostęp jedynie do serwera weryfikacyjnego oraz serwerów Google serwujących kody. Przez to system nie jest w żaden sposób dostosowany dla osób niedowidzących – nie ma dostępu do podpowiedzi głosowej (która prawdopodobnie dla Polaków i tak byłaby nieprzydatna).

Dodatkowa procedura wymagająca rozłączenia ponownego połączenia po wpisaniu kodu jest celowym rozwiązaniem mającym na celu zniechęcenie korzystających z routerów do dzielenia łącza, gdyż nie ma innego istotnego uzasadnienia technicznego.

Ponieważ Aero2 zdecydowało się na zastosowanie darmowej usługi zewnętrznego dostawcy, nie dziwi to, że przyznaje się otwarcie do braku jakiejkolwiek kontroli nad formą prezentowanych kodów i nie może w zasadzie nic zrobić, gdy pojawią się trudniejsze kody (pierwszy raz miało to miejsce w połowie kwietnia, teraz takie kody są widoczne cały czas). Są co prawda metody przywrócenia czytelniejszych kodów, jednak zmuszanie użytkowników do wykonywania tego typu czynności jest niezbyt profesjonalnym rozwiązaniem zwłaszcza, że nawet łatwiejsze kody wzbudziły wątpliwości Urzędu Komunikacji Elektronicznej ze względu na swoją nieczytelność.

Kategorie:Wiadomości
  1. JACEK
    Maj 11th, 2014 at 08:58 | #1

    Wystarczy wpisywac tylko pierwsze "pokrecone" slowo z kodu – drugiego prostszego nie trzeba (po co robic frajersko prace dla google za darmo?)

  2. Piotr, Eugeniusz
    Maj 7th, 2014 at 05:21 | #2

    kody captcha wymyslili UFOLUDKI :) zeby rozum byl nie za krotki wiec lepiej wypic browara z budki a captcha wsadzic w duze pupki :)

Strony komentarza
1 2 3568
  1. Brak jeszcze trackbacków
Musisz być zalogowany aby dodać komentarz.
>