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 zaawansowane oprogramowanie OCR stanowi narzędzie do zarabiania grubych milionów przez „biznesmanów” zainteresowanych rozsyłaniem na cały świat spamu. Agencja e-biznes Symetria przeprowadziła prekursorskie na polskim rynku badania użyteczności kodów weryfikacyjnych typu CAPTCHA. W badaniu zostały przeanalizowane kody zabezpieczające trzech czołowych serwisów internetowych: Gazeta.pl, o2.pl i Youtube.
Kody tego typu występują w formularzach rejestracyjnych, przy zakładaniu kont pocztowych, czy dodawaniu komentarzy do artykułu lub postów do bloga. Kod ma zwykle postać liter lub cyfr, które należy przepisać z obrazka.
Symetria przeprowadziła badania eye trackingowe (śledzenie ruchu gałek użytkownika) długości czasu i ilości spojrzeń niezbędnych do prawidłowego wpisania kodu CAPTCHA. Wnioski z badania stanowią zbiór konkretnych rekomendacji w zakresie budowy użytecznych, przyjaznych dla użytkownika kodów CAPTCHA.
W poniższym artykule zawarte zostały informacje wprowadzające na temat kodów CAPTCHA, ich znaczenia, zastosowania i niebezpieczeństw związanych z ich implementacją. W drugiej części artykułu omówione zostały przeprowadzone przez Symetrię badania eye trackingowe kodów weryfikacyjnych.
Maszyna udająca człowieka
W 1950 roku angielski matematyk Alan Turing zaproponował rodzaj gry logicznej, której celem była próba odpowiedzi na pytanie, do jakiego momentu możemy twierdzić, że dany układ logiczny jest inteligentny.
W swej podstawowej wersji Test Turinga polega na symulowaniu rozmowy między trzema podmiotami, z których jeden jest komputerem. Jeśli po upływie określonego czasu ludzcy rozmówcy nie będą w stanie określić, czy prowadzili rozmowę z człowiekiem czy z maszyną, wówczas stanowić to będzie dowód na to, że komputer jest inteligentny.
Halo? Czy na pokładzie jest człowiek?
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 (ang. 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.
Nazwę CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) zaproponowali po raz pierwszy Luis von Ahn, Manuel Blum, Nicholas J. Hopper z Carnegie Mellon University.
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 zysk.
?[!:>@_{;……..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”.
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 programistów z Indii lub Chin, 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.
Microsoft w swoich wcześniejszych wersjach kodów CAPTCHA stosował trudne do rozpoznawania łuki, które miały wprowadzać w błąd oprogramowanie OCR, traktujące zaburzające elementy (distortion clutter) jako elementy rzeczywistego kodu.
A czy Ty też jesteś content?
Kolejnym elementem, który ma przysporzyć udręki użytkownikowi jest treść 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.
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.
Dobre praktyki AUDIO CAPTCHA to:
- możliwość odsłuchania CAPTCHA to warunek dostępności,
- zaburzenie tła dźwiękowego musi być ograniczone,
- obecność znaczka audio/niepełnosprawni,
- rozsądne stosowanie javascript i flash.
Zabezpiecz się!
CAPTCHA nie jest zbyt trudne do złamania w dzisiejszych czasach. Problem polega na opłacalności nielegalnej działalności. Jeśli tylko zaangażowanie się w działanie polegające na łamaniu kodu, ma ostatecznie doprowadzić do „zwrotu z inwestycji”, to na pewno znajdą się ludzie, którzy wykorzystają słabości CAPTCHA.
Jak można łamać CAPTCHA:
- wykorzystanie oprogramowania OCR (Optical Character Recognition),
- analiza statystyczna – słów i obrazów z bazy danych CAPTCHA,
- sieci neuronowe, znacznie lepsze od klasycznych podejść algorytmicznych w rozpoznawaniu kształtów,
- farma Turinga, czyli zatrudnienie setek nisko opłacanych ludzi, którzy będą rozwiązywali przedstawiane im CAPTCHA,
- farma porno Turinga – czyli spamer zakłada stronę „tylko dla dorosłych”, w której warunkiem obejrzenia pornograficznego obrazka jest zdekodowanie CAPTCHA pochodzącej z innej strony.
Na ilustracji poniżej zaprezentowano bardzo ciekawy pomysł na nielegalny biznes (farma porno Turinga) Koncepcja bazuje na wykorzystaniu obrazków pornograficznych do łamania kodów weryfikacyjnych.
Na komputerze użytkownika instaluje się trojan, który wyświetla okno z rozebraną Panią. Dalsze części jej garderoby mogą znaleźć się na podłodze, jeśli tylko użytkownik wpisze poprawny kod CAPTCHA. Kod jest ściągany ze strony np. Yahoo, po wpisaniu, przez użytkownika kodu, Pani z obrazka jest bardziej roznegliżowana, a cyberprzestępca zakłada kolejne konto w serwisie z którego pobrał kod.