?[!:>@_{;……..CAPTCHA!
Autor: Mariusz Dziechciaronek. Dodano dnia 27/03/09
Ile razy każdy z nas wpisywał po raz kolejny i kolejny kod z obrazka, próbując założyć nowe konto pocztowe, albo dokończyć proces rejestracji. Najbardziej znienawidzone przez użytkowników i często obrzucane najgorszymi epitetami kody CAPTCHA, strzegą bezpieczeństwa serwisów…..a raczej strzegły ich bezpieczeństwa. Po złamaniu kodów CAPTCHA Google na początku zeszłego roku, żaden kod weryfikacyjny nie jest już bezpieczny. Coraz bardziej doskonałe oprogramowanie OCR, stanowi narzędzie do zarabiania grubych milionów przez „biznesmanów” zainteresowanych rozsyłaniem na cały świat spamu.
Human Needed
CAPTCHA to nic innego jak kod weryfikacji człowieczeństwa. Z założenia stanowić ma barierę dla botów i oprogramowania czytającego i łamiącego kody – OCR (Optical Character Recognition). Jednym słowem jeśli jesteś botem, powinieneś przynajmniej w teorii mieć problem z założeniem konta w popularnym serwisie, czy ściągnięcia najnowszych poprawek do Linuksa na swój dysk. Rzeczywistość wygląda jednak inaczej. Z jednej strony serwisy walczą o utrzymanie minimalnych standardów bezpieczeństwa, z drugiej zaś próbują nie narazić się zbytnio użytkownikom.
Proste kody CAPTCHA są bardzo łatwe do hackowania, rzecz jasna łamanie kodów musi być opłacalne, tj. czas złamania jednego kodu powinien być na tyle niski, aby móc hackować kody masowo. W przeciwnym wypadku, łamanie kodu, będzie tylko sztuką dla sztuki, a nie przykładem ciekawego sposobu na nielegalny zarobek.
?[!:>@_{;……..CAPTCHA!
Z CAPTCHA od samego początku jego istnienia był problem. Problem ten narastał latami, budując coraz to nowe bariery dla użytkownika.
Główne problemy użyteczności CAPTCHA:
- niska rozpoznawalność przez użytkownika,
- skomplikowanie samego kodu – zadania matematyczne, itp.,
- problemy z odczytaniem kodu CAPTCHA przez osoby niepełnosprawne: niewidzące, niedowidzące, niesłyszące, cierpiące na inne problemy,
- brak przycisku odśwież kod – automatyczne przeładowanie strony i utrata danych z formularza
- brak informacji dlaczego należy wpisać CAPTCHA,
- brak przycisku Audio,
- brak alternatywnej poza sieciowej identyfikacji użytkownika przez serwis – takie usługi zapewnia Yahoo.
Użyteczność CAPTCHA może być rozpatrywana w wielu aspektach. Najważniejsze z nich zostały posegregowane przez naukowców, którzy zawodowo zajmują się hackowaniem kodów –Jeffa Yan, Ahmada Ahmad, w pracy Usability of CAPTCHAs or Usability Issues in CAPTCHA Design

J. Yan, a. Ahmad, Usability of CAPTCHAs or Usability Issues in CAPTCHA Design; http://cups.cs.cmu.edu/soups/2008/proceedings/p44Yan.pdf
Distortion – czyli celowe zaburzanie elementów kodu, tak aby oprogramowanie OCR miało problem z jego czytaniem, stanowi podstawowy i najważniejszy aspekt bezpieczeństwa CAPTCHA. Do niedawna kody Google, dzięki zastosowaniu techniki stłaczania liter (crowded) stanowiły nie lada problem dla botów. W celu zarabiania na ich łamaniu, wspominani wcześniej „biznesmani” zmuszeni byli do wynajmowania Hindusów czy Chińczyków, którzy rozpoznawali i wpisywali miliony kodów każdego dnia.
Mimo, że nie ma obecnie w pełni zabezpieczonych przed atakiem kodów tekstowych CAPTCHA, to wciąż jeszcze ten sposób weryfikacji użytkownika jest bardzo popularny. W tym miejscu należy również nadmienić, że nie każde oprogramowanie OCR jest od razu zdolne do czytania i łamania skomplikowanych kodów.
Do najważniejszych zaburzeń zaliczamy:
- przemieszczanie elementów w górę i w dół,
- obroty elementów,
- skalowanie elementów,
- gięcie elementów.

Problemy z odczytaniem zaburzonego kodu
Kolejny elementem, który ma przysporzyć udręki użytkownikowi jest content kodu. Tutaj istotną rolę odgrywa wielkość elementów i ich ilość czyli string. Badania pokazują, że im większy element, tym wyższe bezpieczeństwo, ale i większe prawdopodobieństwo ponadnormatywnego zaburzenia elementów kodu, który może się stać nieczytelny dla użytkownika.
Dobrą praktyką ułatwiającą życie użytkownikom jest podanie liczby elementów, które należy wpisać w polu weryfikacji. Zwykle taka informacja nie wpływa negatywnie na poziom bezpieczeństwa kodu.

Sympatia.pl podaje ilość znaków do wpisania
Sporną kwestią pozostaje to, czy CAPTCHA powinno generować istniejące słowa czy tylko zbiory przypadkowych znaków. Yan i Ahmad argumentują, że nie ma to znaczenia, jednocześnie zastrzegając, że używanie słów nieistniejących, lub odmiennych od danego obszaru kulturowego implikuje problemy użyteczności.
Prezentacja kodu jest równie ważna z perspektywy użyteczności jak poziom zaburzeń elementów. Nieprofesjonalne używanie koloru, tworzenie mozaiek kolorów tła, wprowadzania wielu odcieni, jest często barierą nie do przejścia dla użytkownika. OCR radzi sobie z takimi przeszkodami bardzo dobrze.
Zatem jeśli nie jesteś ekspertem, używaj tylko dwóch kolorów, nie staraj się tworzyć obrazów Kandinskiego bo stracisz swoich użytkowników.
Dostępność CAPTCHA to kolejny problem. Do niedawna dostępne dla niewidzących użytkowników były tylko kody Google i reCAPTCHA. Dziś mamy więcej przyjaznych serwisów dla niepełnosprawnych. Aczkolwiek problem prawidłowego odsłuchania kodu, może czasem stanowić nie lada wyzwanie, szczególnie jeśli nie jest się rodowitym Teksańczykiem czy mieszkańcem Dover.
Odsłuchaj audio Google CAPTCHA
Więcej na temat użyteczności oraz metod łamania kodów CAPTCHA dowiesz się z prezentacji
Czy aby na pewno jest Pan człowiekiem? Użyteczność i dostępność CAPTCHA.




Michał
Mar 31st, 2009
To wszystko tylko kwestia opłacalności łamania danego kodu, jeśli rzeczywiście dany kod opłacałoby się łamać – nie tylko, żeby udowodnić, ze się da, ale po to, żeby założyć 100 tys, spamerskich kont, to na pewno ludzie już dawno przypuściliby taki atak na te kody, że tylko ich zastąpienie czymś bardziej skutecznym byłoby rozwiązaniem spamowego zalewu.
-M