Artykuł ten jest pierwszą na polskim rynku próbą analizy i badania kodów CAPTCHA za pomocą narzędzia eye trackingowego. Firma Symetria badała w nim działanie takich kodów na trzech witrynach: Gazeta.pl, o2.pl oraz Youtube.pl.
Wprowadzenie
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 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,
• 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.
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 .
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.
Budowa CAPTCHA
Rys. 2. Problemy z odczytaniem zaburzonego kodu
A czy Ty też jesteś content?
Kolejnym 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.
Rys. 3. 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.
Rys. 4. reCAPTCHA
Dobre praktyki AUDIO CAPTCHA:
• 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.
Odsłuchaj audio Google CAPTCHA
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 w jakimś kraju Trzeciego Świata setek 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.
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.
Rys. 5. porno Turinga;
Rys.6. Przykład farmy porno Turinga;
Poniżej zaprezentowano, wskaźniki procentowe rozpoznawalności kodu przez OCR:
Test z człowieczeństwa
Przeprowadziliśmy w Symetrii mały test użyteczności kodów weryfikacyjnych CAPTCHA za pomocą metody eye trackingowej. Do badania wybraliśmy trzy serwisy, których użyteczność kodów zabezpieczających chcieliśmy zweryfikować na podstawie danych otrzymanych w procesie rejestracyjnym.
1. Konto pocztowe Gazeta.pl.
2. Konto serwisu Youtube.pl.
3. Konto pocztowe 02.pl.
Zadania użytkownika polegały na:
1. Założeniu nowego konta pocztowego w serwisie Gazeta.pl.
2. Założeniu nowego konta w serwisie Youtube.pl.
3. Założeniu nowego konta pocztowego w serwisie 02.pl.
Czym jest eye tracking
Eye tracking to badanie ruchów gałek ocznych użytkownika w czasie trwania sesji badawczej. Badanie tego typu jest bezinwazyjne. Specjalne emitery podczerwieni śledzą ruch gałek ocznych użytkownika kiedy ten korzysta z serwisu.
Wzrok śledzony jest za pomocą urządzenia zwanego eye trackerem, które zastępuje w czasie badania monitor komputerowy i jest do niego łudząco podobne.
Rys. 8. Przykładowe badanie eye trackingowe wykonywane w agencji Symetria.
O badaniu
Z uwagi na dobro badania nie ujawnialiśmy jego prawdziwego celu, którym jest zbadanie rozpoznawalności i użyteczności kodów weryfikacyjnych CAPTCHA. Tak, aby badany użytkownik, nie skupiał całej swojej uwagi na prawidłowym odczytaniu kodu – a co za tym idzie aby nie wpływać na naturalne działania użytkownika.
W analizie danych dotyczących liczby spojrzeń w obszar CAPTCHA wzięto pod uwagę tylko i wyłącznie efektywne spojrzenia, a więc te, które prowadziły bezpośrednio do wpisania słowa z obrazka.
Poniżej zaprezentowano również wyniki analiz eye trackingowych w postaci tak zwanych gazeplotów, czyli ścieżek spojrzeń, obrazują one jak długo i w jakiej kolejności użytkownik patrzył na elementy strony.
Wiedza na ten temat daje nam możliwość przeprojektowania serwisu, eliminacji elementów nie spełniających swojej roli np. nie zwracających uwagi użytkownika. Z kolei fiksacja jest to zatrzymanie się wzroku na jakimś elemencie strony, im większa średnica koła, tym dłuższy czas patrzenia użytkownika na dany element strony.
Uczestnicy badania
• kobiety i mężczyźni,
• wiek 20-30 lat,
• internauci,
• mieszkańcy miasta powyżej 500 tys. mieszkańców,
• zarówno osoby, które nie korzystały z tego typu serwisów, jak i takie, które miały z nimi kontakt.
Zastrzeżenie
Należy również nadmienić, że celem testu było zebranie inspiracji i przykładowych wniosków, nie było nim zaś jakiekolwiek porównanie wybranych serwisów, ich test eye trackingowy ani szczegółowa analiza użyteczności i funkcjonalności.
Omówione poniżej wyniki badania mają charakter eksperymentalny. Wyniki należy traktować jako inspirujące wskazówki do dalszych poszukiwań i weryfikacji w trakcie kolejnych badań.
Konto pocztowe 02.pl
Rys. 9. CAPTCHA w serwisie 02.pl
Rys. 10. Przykładowy gazeplot (ścieżki i czas spojrzeń) na kod CAPTCHA w serwisie o2.pl
Statystyka opisowa dla liczby fiksacji i łącznego czasu trwania fiksacji CAPTCHA zamieszczonego w serwisie o2.pl wskazuje na bardzo małą liczbę spojrzeń potrzebnych do wpisania słowa z obrazka.
Średnio użytkownicy potrzebowali 5 spojrzeń na przeczytanie obrazka, a aż 50% badanych potrzebowała mniej niż 3 spojrzeń. Z prawdopodobieństwem 95% można stwierdzić, że liczba spojrzeń potrzebnych na przeczytanie obrazka w populacji zmieści się pomiędzy 2 a 8.
Średni łączny czas trwania spojrzeń wyniósł niewiele ponad 1 sekundę, a połowa badanych potrzebowała mniej niż 0,6 sekundy na wpisanie kodu. Z prawdopodobieństwem 95% można stwierdzić, że w populacji łączny czas potrzebny na przeczytanie obrazka nie przekroczy 2,1 sekundy. Należy zwrócić uwagę, że w jednym przypadku osoba potrzebowała aż 14 spojrzeń, co znacznie zawyżyło średnią i zniekształciło miary skośności.
Tab. 1. Dane statystyczne dla liczby spojrzeń i łącznego czasu spojrzeń na kod CAPTCHA w serwisie o2.pl
Konto pocztowe Gazeta.pl
Rys.11. CAPTCHA w serwisie Gazeta.pl oraz przykładowy gazeplot (ścieżki i czas spojrzeń) na kod CAPTCHA w serwisie Gazeta.pl.
Statystyka opisowa dla liczby fiksacji i łącznego czasu trwania fiksacji CAPTCHA zamieszczonego w serwisie Gazeta.pl wskazuje na umiarkowaną liczbę spojrzeń potrzebnych do wpisania słowa z obrazka.
Średnio użytkownicy potrzebowali 10 spojrzeń na przeczytanie obrazka, a 50% badanych potrzebowała mniej niż 9 spojrzeń. Z prawdopodobieństwem 95% można stwierdzić, że liczba spojrzeń potrzebnych na przeczytanie obrazka w populacji zmieści się pomiędzy 7 a 13.
Średni łączny czas trwania spojrzeń wyniósł ponad 2 sekundy, a połowa badanych potrzebowała więcej niż 2,5 sekundy na wpisanie kodu. Z prawdopodobieństwem 95% można stwierdzić, że w populacji łączny czas potrzebny na przeczytanie obrazka nie przekroczy 3,1 sekundy.
Tab. 2. Dane statystyczne dla liczby spojrzeń i łącznego czasu spojrzeń na kod CAPTCHA w serwisie Gazeta.pl.
Konto serwisu Youtube.pl
Rys. 12. CAPTCHA w serwisie Youtube oraz Gazeplot (ścieżki i czas spojrzeń) na kod CAPTCHA w serwisie Youtube.pl
Statystyka opisowa dla liczby fiksacji i łącznego czasu trwania fiksacji CAPTCHA zamieszczonego w serwisie Gazeta.pl wskazuje na umiarkowaną liczbę spojrzeń potrzebnych do wpisania słowa z obrazka.
Średnio użytkownicy potrzebowali 11,5 spojrzenia na przeczytanie obrazka, a aż 50% badanych potrzebowała więcej niż 13 spojrzeń. Z prawdopodobieństwem 95% można stwierdzić, że liczba spojrzeń potrzebnych na przeczytanie obrazka w populacji zmieści się pomiędzy 7,5 a 15,5. Średni łączny czas trwania spojrzeń wyniósł ponad 3,5 sekundy a połowa badanych potrzebowała więcej niż 3.2 sekundy na wpisanie kodu.
Z prawdopodobieństwem 95% można stwierdzić, że w populacji łączny czas potrzebny na przeczytanie obrazka nie przekroczy 5 sekund. Należy zwrócić uwagę, że w jednym przypadku osoba potrzebowała aż 20 spojrzeń, co znacznie zawyżyło średnią i zniekształciło miary skośności.
Tab 3. Dane statystyczne dla liczby spojrzeń i łącznego czasu spojrzeń na kod CAPTCHA w serwisie Youtube.pl
Porównanie średnich dla różnych serwisów
Celem porównania liczby fiksacji i łącznego czasu spojrzeń użytkowników na poszczególne grupy wykonano „test t dla średnich”, przyjmując hipotezę zerową, że średnie dla liczby spojrzeń i łącznego czasu spojrzeń na CAPTCHA w różnych serwisach są równe. Poniższe tabele zawierają wskaźnik „p-value” dla 95% przedziału ufności.
Tab. 4. Wskaźnik „p-value”.
W przypadku serwisu o2 wszystkie wskazania są poniżej 5%, co świadczy o tym, że hipotezę o równości średniej liczby spojrzeń należy odrzucić. CAPTCHA w serwisie o2 potrzebuje statystycznie mniej spojrzeń niż w pozostałych serwisach. W przypadku Gazety i YouTube można przyjąć, że średnia liczba spojrzeń potrzebnych na przeczytanie słowa z obrazka jest taka sama.
Tab. 5. Wskaźnik „p-value”.
W przypadku średniego łącznego czasu spojrzeń występują istotne statystycznie różnice pomiędzy wszystkimi serwisami. Najkrócej wpatrują się w kod użytkownicy w serwisie o2.pl, dłużej w Gazeta.pl, a najdłużej w YouTube.pl.
Podsumowanie
CAPTCHA zastosowane w serwisie o2.pl wymaga od użytkowników zdecydowanie najmniej wysiłku. Potrzebują oni niewiele krótkich spojrzeń, aby przeczytać i poprawnie wpisać kod. Liczba spojrzeń w serwisie Gazeta.pl i YouTube.pl jest zbliżona, ale w Gazeta.pl trwają one krócej, co oznacza, że użytkownicy mają mniejszy problem z przeczytaniem kodu.
Kod weryfikacyjny w serwisie Youtube.pl, mimo, że najtrudniejszy do odczytania, jest równocześnie najtrudniejszy do złamania przez oprogramowanie OCR. Stłoczone znaki, utrudniają przeczytanie i prawidłowe wpisanie kodu, zarówno użytkownikowi, jak i botowi.
Youtube.pl wprowadzając opcję odśwież, znalazł złoty środek, między użytecznością kodu, a bezpieczeństwem. Liczba fiksacji została w badaniu ograniczona do fiksacji efektywnych, czyli, tych spojrzeń, które doprowadziły do wpisania kodu z obrazka. Możliwość odświeżenia kodu i przeskakiwania przez kolejne generowane CAPTCHA w serwisie Youtube, wpływa na wydłużenie czasu potrzebnego do wpisania kodu.
Kolejna kwestia to problem związany z widocznością przycisku odświeżającego dla użytkownika w serwisie Youtube.pl. Brak informacji czym jest przycisk „nowy obrazek” wpływa dodatkowo na wydłużenie czasu potrzebnego na wpisanie kodu w przypadku osoby, która ma problem z jego odczytaniem i nie korzysta z opcji odświeżenia (nie wnikając dlaczego nie korzysta).
Badane serwisy w przypadku nieprawidłowego wpisania CAPTCHA nie karzą użytkownika koniecznością przechodzenia raz jeszcze poprzez wszystkie pola formularza. Do poprawy jest tylko kod weryfikacyjny, błędnie wypełnione pole, ewentualnie powtórzenie hasła jak w Youtube.pl.
Odświeżanie całego formularza i utrata danych w przypadku nieprawidłowego wpisania kodu, kiedyś stanowiły jeden z większych powodów do frustracji dla użytkowników.
Reasumując wyniki badań, własne spostrzeżenia i wypowiedzi ekspertów, możemy określić, czym powinno się charakteryzować dobre CAPTCHA:
• dobre CAPTCHA to takie, które zapewnia bezpieczeństwo serwisu i nie jest jednocześnie utrapieniem dla użytkowników,
• powinno zapewniać dostęp do serwisu użytkownikom niepełnosprawnym,
• powinno zawierać przycisk odśwież,
• powinno informować o ilości koniecznych do wpisania elementów,
• powinno odzwierciedlać specyfikę kulturową,
• powinno zawierać informacje dlaczego należy je wpisać,
• powinno dawać możliwość dodatkowej np. telefonicznej weryfikacji użytkownika,
• powinno podlegać czasowym ewaluacjom bezpieczeństwa.
Należy jednak nadmienić, że nie w każdym przypadku wszystkie wyżej wymienione elementy mają zastosowanie w pojedynczym kodzie CAPTCHA.