
Jak CAPTCHA rozpoznaje człowieka? Co dzieje się po kliknięciu „nie jestem robotem”?
Zaznaczasz pole „Nie jestem robotem” i po chwili pojawia się zielony znacznik. Innym razem strona każe Ci wybrać wszystkie zdjęcia z przejściami dla pieszych, autobusami albo motocyklami. Czasami test wraca kilka razy, mimo że odpowiedzi wydają się prawidłowe.
CAPTCHA nie zawsze sprawdza wyłącznie to, czy potrafisz rozpoznać obiekt na zdjęciu. Nowoczesne systemy analizują całe środowisko, w którym otwierasz stronę, oraz kontekst wykonywanej czynności. Widoczny test obrazkowy jest często dopiero dodatkowym etapem uruchamianym wtedy, gdy wcześniejsza ocena nie dała jednoznacznego wyniku.
Kliknięcie pola nie udowadnia więc samo w sobie, że jesteś człowiekiem. Rozpoczyna lub potwierdza proces, w którym system ocenia, czy dana próba przypomina zachowanie prawdziwego użytkownika, czy automatycznego programu.
Co oznacza skrót CAPTCHA?
CAPTCHA to rodzaj automatycznego testu, którego zadaniem jest odróżnienie człowieka od programu komputerowego. Nazwa pochodzi od angielskiego określenia „Completely Automated Public Turing test to tell Computers and Humans Apart”.
Test ma być:
- automatycznie tworzony przez system,
- możliwy do rozwiązania przez człowieka,
- trudniejszy do przejścia dla automatu,
- sprawdzany bez udziału administratora strony.
CAPTCHA można potraktować jako cyfrowego portiera. Nie musi znać Twojego nazwiska ani wiedzieć, kim jesteś. Ma jedynie ocenić, czy za formularzem znajduje się zwykły użytkownik, czy program wykonujący setki podobnych operacji. W3C opisuje CAPTCHA jako test służący rozróżnianiu ludzi i komputerów, wskazując jednocześnie, że takie mechanizmy mogą stwarzać problemy z dostępnością.
Dlaczego strony internetowe używają CAPTCHA?
Bez dodatkowych zabezpieczeń program może automatycznie otwierać stronę, uzupełniać formularze i naciskać przyciski. Dobrze przygotowany bot potrafi wykonywać takie czynności znacznie szybciej niż człowiek.
CAPTCHA jest najczęściej stosowana przy:
- zakładaniu kont,
- logowaniu,
- odzyskiwaniu hasła,
- publikowaniu komentarzy,
- wysyłaniu formularzy kontaktowych,
- kupowaniu biletów,
- głosowaniach internetowych,
- składaniu zamówień,
- pobieraniu plików,
- sprawdzaniu dostępności produktów.
Celem może być ograniczenie spamu, masowego tworzenia fałszywych kont, automatycznego testowania haseł, wykupywania ograniczonej liczby produktów albo przeciążania formularza tysiącami zapytań. Google przedstawia reCAPTCHA jako mechanizm chroniący strony przed spamem, nadużyciami i nieuczciwymi działaniami. hCaptcha podobnie wskazuje ochronę aplikacji przed botami, spamem i zautomatyzowanymi nadużyciami.
Bot nie musi być wirusem. Może być legalnym programem indeksującym internet, narzędziem monitorującym ceny albo automatem używanym przez właściciela strony. CAPTCHA ma blokować przede wszystkim działania, których dana witryna nie chce dopuścić w konkretnym miejscu.
Więcej o programach rozprzestrzeniających się automatycznie przeczytasz w artykule Skąd wzięła się nazwa „robaki internetowe”?. Robak internetowy i bot wykonujący formularze nie są tym samym, choć oba mogą działać bez bieżącej kontroli człowieka.
Co dzieje się po kliknięciu „Nie jestem robotem”?
Pole wyboru jest tylko widoczną częścią znacznie większego mechanizmu. Po jego kliknięciu przeglądarka uruchamia skrypt systemu zabezpieczającego. Następnie wykonywana jest ocena próby, a strona otrzymuje specjalny token, który musi zostać zweryfikowany przez jej serwer.
W uproszczeniu proces wygląda tak:
- Otwierasz stronę z formularzem.
- W przeglądarce ładowany jest mechanizm CAPTCHA.
- System zbiera sygnały potrzebne do oceny próby.
- Klikasz pole albo wysyłasz formularz.
- CAPTCHA uznaje próbę za wystarczająco wiarygodną lub pokazuje dodatkowy test.
- Po zaliczeniu powstaje tymczasowy token.
- Serwer strony przesyła token do dostawcy CAPTCHA.
- Dostawca potwierdza, czy token jest prawidłowy.
- Dopiero wtedy strona przyjmuje formularz, logowanie lub rejestrację.
Samo pojawienie się zielonego znacznika w przeglądarce nie powinno być jedynym zabezpieczeniem. Wynik musi zostać sprawdzony po stronie serwera. W przypadku reCAPTCHA token jest jednorazowy i ma ograniczony czas ważności. Podobny model stosuje Turnstile: skrypt działający w przeglądarce tworzy token, a serwer strony przesyła go do Cloudflare w celu weryfikacji.
Taki podział utrudnia oszustowi zwykłe podrobienie wyglądu pola wyboru. Fałszywy znacznik na ekranie nie wystarczy, jeżeli serwer nie otrzyma poprawnego potwierdzenia.
Skąd CAPTCHA wie, że prawdopodobnie jesteś człowiekiem?
Dostawcy zabezpieczeń nie ujawniają pełnej listy sygnałów ani dokładnych reguł oceny. Gdyby algorytm był całkowicie jawny, twórcy botów mogliby łatwiej dostosować automaty do jego wymagań.
Współczesne systemy mogą brać pod uwagę między innymi:
- zgodność działania przeglądarki z typowym środowiskiem użytkownika,
- obsługiwane funkcje JavaScript i interfejsy przeglądarki,
- poprawność wykonywania niewielkich zadań technicznych,
- informacje o urządzeniu i połączeniu,
- historię wcześniejszych prób,
- tempo i kolejność wykonywanych operacji,
- charakter działania na zabezpieczonym formularzu,
- występowanie sygnałów typowych dla automatycznych przeglądarek.
Cloudflare opisuje Turnstile jako system wykonujący serię niewidocznych testów JavaScript. Mogą one obejmować niewielkie zadania obliczeniowe, sprawdzanie dostępnych interfejsów sieciowych i graficznych, cech przeglądarki oraz sygnałów związanych ze sposobem korzystania z niej.
Nie należy jednak sprowadzać całego mechanizmu do ruchu kursora. Popularne stwierdzenie, że CAPTCHA „wie, że jesteś człowiekiem, ponieważ poruszasz myszką nierówno”, jest zbyt dużym uproszczeniem.
Ruch kursora może być jednym z elementów kontekstu w niektórych systemach, ale nie jest uniwersalnym dowodem. Użytkownik może obsługiwać stronę klawiaturą, ekranem dotykowym, urządzeniem wspomagającym albo wcale nie poruszać kursorem przed wysłaniem formularza.
Czy CAPTCHA korzysta z fingerprintingu przeglądarki?
CAPTCHA i fingerprinting mogą analizować podobne elementy środowiska, ale zwykle mają inny podstawowy cel.
Fingerprinting tworzy charakterystykę przeglądarki na podstawie wielu parametrów technicznych. Może służyć między innymi do rozpoznawania powracającego środowiska, wykrywania oszustw albo śledzenia użytkowników. CAPTCHA wykorzystuje sygnały techniczne przede wszystkim do oceny, czy konkretną operację wykonuje człowiek, automat lub podejrzane narzędzie.
System może sprawdzić na przykład, czy przeglądarka:
- prawidłowo wykonuje JavaScript,
- udostępnia spodziewane funkcje,
- zachowuje się jak zwykła przeglądarka,
- nie ujawnia wyraźnych cech środowiska automatycznego,
- nie ma nietypowo zmienionych parametrów.
Mechanizmy te częściowo się więc nakładają. Więcej o danych przekazywanych przez przeglądarkę przeczytasz w artykule Czym jest i jak działa fingerprinting przeglądarki?.
Nie oznacza to, że każda CAPTCHA tworzy trwały profil użytkownika ani że wszystkie systemy analizują dokładnie te same dane. Zakres przetwarzania zależy od dostawcy, wersji mechanizmu oraz konfiguracji zastosowanej przez właściciela strony.
Dlaczego czasem wystarczy jedno kliknięcie?
Po kliknięciu pola system może uznać, że dostępne informacje są wystarczająco spójne. Wtedy nie musi pokazywać dodatkowego zadania.
To może oznaczać, że:
- przeglądarka działa w typowy sposób,
- połączenie nie wzbudza podejrzeń,
- formularz nie był uzupełniany w nienaturalnym tempie,
- wcześniejsze działania nie przypominają masowej automatyzacji,
- środowisko poprawnie przeszło niewidoczne testy,
- poziom ryzyka danej operacji jest niewielki.
Kliknięcie pola jest wtedy bardziej potwierdzeniem gotowości do weryfikacji niż samym testem zręczności. System zdążył już ocenić wiele sygnałów albo robi to bezpośrednio po kliknięciu.
Google podaje, że w części sesji reCAPTCHA może w ogóle nie wyświetlić testu, jeżeli mechanizm uzna żądanie za prawidłowe. Nowocześniejsze wersje mogą również działać bez widocznego pola i zwracać właścicielowi strony ocenę ryzyka.
Dlaczego pojawiają się zdjęcia?
Test obrazkowy pojawia się najczęściej wtedy, gdy system potrzebuje dodatkowego sygnału. Użytkownik może zostać poproszony o zaznaczenie zdjęć zawierających określony obiekt, na przykład rower, sygnalizację świetlną albo schody.
Zadanie opiera się na założeniu, że człowiek potrafi rozpoznać znaczenie obrazu i zastosować je do wskazanej instrukcji. Nie chodzi tylko o wykrycie kolorów i krawędzi. Trzeba zrozumieć, czym jest dany obiekt, gdzie się kończy oraz czy jego niewielki fragment powinien zostać zaznaczony.
Test może przyjąć kilka form:
- wybór pasujących zdjęć z siatki,
- zaznaczanie kolejnych obrazów pojawiających się po kliknięciu,
- wskazanie elementu ustawionego we właściwym kierunku,
- rozpoznanie podobnych przedmiotów,
- przepisanie tekstu lub liczb,
- rozwiązanie zadania dźwiękowego.
Poziom trudności może być dobierany automatycznie. hCaptcha pozwala właścicielom stron konfigurować trudność testów, a tryb automatyczny dopasowuje sposób działania systemu do oceny ryzyka.
Dlaczego CAPTCHA czasem uznaje prawidłową odpowiedź za błędną?
Obraz nie zawsze ma oczywistą granicę. Fragment motocykla może znajdować się na dwóch polach. Sygnalizator bywa częściowo zasłonięty przez drzewo, a przejście dla pieszych może być niewyraźne.
System może również sprawdzać więcej niż sam wybór zdjęć. Prawidłowe zaznaczenie nie musi zakończyć weryfikacji, jeżeli inne sygnały nadal wskazują na podwyższone ryzyko albo wystąpił problem techniczny.
Niepowodzenie może wynikać z:
- błędnego zaznaczenia jednego pola,
- zbyt późnego zatwierdzenia testu,
- wygaśnięcia tokenu,
- przerwania połączenia,
- zablokowania skryptu,
- zmiany adresu IP w trakcie próby,
- nieprawidłowej konfiguracji CAPTCHA na stronie,
- błędu samego mechanizmu.
Nie zawsze jest to więc dowód, że użytkownik „nie rozpoznał autobusu”. Czasem zadanie zostało rozwiązane poprawnie, ale strona nie mogła potwierdzić wyniku.
Jak działa niewidoczna CAPTCHA?
Niewidoczna CAPTCHA nie wymaga zaznaczania pola. Może uruchomić się dopiero w chwili kliknięcia przycisku „Wyślij”, „Zaloguj” lub „Załóż konto”.
Jeżeli próba wygląda wiarygodnie, formularz zostaje zaakceptowany bez dodatkowego działania. Gdy poziom ryzyka jest większy, użytkownik może zobaczyć test obrazkowy lub inną metodę weryfikacji.
Google udostępnia niewidoczny wariant reCAPTCHA, który można powiązać z przyciskiem formularza albo uruchomić programowo. hCaptcha również oferuje tryb niewidoczny, w którym nie jest wyświetlane standardowe pole wyboru.
Jeszcze inaczej działa reCAPTCHA v3. Zamiast prezentować użytkownikowi test, system zwraca ocenę związaną z ryzykiem danej operacji. Właściciel strony może na jej podstawie:
- zaakceptować formularz,
- zażądać dodatkowego logowania,
- skierować wiadomość do moderacji,
- ograniczyć częstotliwość operacji,
- uruchomić kolejną metodę weryfikacji.
Google podkreśla, że wynik powinien być interpretowany w kontekście konkretnej strony i rodzaju działania. Nie istnieje jeden próg, który będzie właściwy dla wszystkich serwisów.
Czym różni się CAPTCHA od Turnstile?
Turnstile jest przedstawiany przez Cloudflare jako alternatywa dla klasycznych testów CAPTCHA. Mechanizm może działać w tle, wykonując niewielkie zadania w przeglądarce i oceniając dostępne sygnały.
W większości przypadków użytkownik nie musi rozpoznawać zdjęć ani przepisywać tekstu. Jeżeli dodatkowe potwierdzenie okaże się potrzebne, może pojawić się proste pole wyboru.
Z punktu widzenia użytkownika różnica wygląda następująco:
| Rozwiązanie | Typowe doświadczenie użytkownika |
|---|---|
| Klasyczna CAPTCHA tekstowa | Przepisanie zniekształconych znaków |
| CAPTCHA obrazkowa | Wybór pasujących zdjęć |
| Pole „Nie jestem robotem” | Kliknięcie pola, czasem dodatkowe zdjęcia |
| Niewidoczna CAPTCHA | Brak działania lub test tylko przy podwyższonym ryzyku |
| System punktowy | Brak widocznego testu, decyzję podejmuje strona |
| Turnstile | Testy w tle, czasem proste potwierdzenie |
Wszystkie te rozwiązania próbują osiągnąć podobny cel: podnieść koszt automatycznego nadużywania strony, nie utrudniając nadmiernie życia zwykłym użytkownikom.
Czy sztuczna inteligencja potrafi rozwiązywać CAPTCHA?
Tak. Współczesne systemy rozpoznawania obrazu potrafią klasyfikować obiekty, odczytywać zniekształcony tekst i analizować elementy sceny. Prosty test, który kilkanaście lat temu stanowił poważną przeszkodę dla programu, może dziś być rozwiązywany automatycznie.
To jeden z powodów, dla których zabezpieczenia nie polegają już wyłącznie na pojedynczym obrazku. Systemy oceniają wiele sygnałów, zmieniają rodzaje zadań i sprawdzają wynik po stronie serwera.
Rozwój CAPTCHA przypomina wyścig:
- strony wprowadzają nowy rodzaj testu,
- twórcy automatów uczą programy jego rozwiązywania,
- dostawcy zabezpieczeń dodają nowe sygnały,
- boty ponownie próbują naśladować człowieka.
Sztuczna inteligencja może pomagać po obu stronach. Jest wykorzystywana do rozpoznawania nadużyć, ale może również służyć do tworzenia skuteczniejszych automatów. Podobny mechanizm technologicznego wyścigu opisujemy w artykule Czy wirus może nauczyć się sam naprawiać?.
AI nie działa przy tym na zasadzie ludzkiej intuicji. Analizuje wzorce wyuczone na danych. Ten sam sposób przetwarzania informacji może służyć do rozpoznawania znaków drogowych, dokumentów, zabytków albo elementów testu CAPTCHA. Więcej przykładów znajdziesz w materiale Czy sztuczna inteligencja może rozwiązywać historyczne zagadki?.
Dlaczego CAPTCHA pojawia się kilka razy z rzędu?
Powtarzający się test może oznaczać, że system nadal nie otrzymał wystarczającego potwierdzenia albo nie może poprawnie zapisać i zweryfikować wyniku.
Częstsze wyświetlanie CAPTCHA może być związane z:
- korzystaniem z VPN lub serwera proxy,
- adresem IP współdzielonym przez wiele osób,
- dużą liczbą podobnych zapytań,
- niestabilnym połączeniem,
- wyłączonym JavaScriptem,
- rozszerzeniem blokującym skrypty,
- przestarzałą przeglądarką,
- automatycznym narzędziem działającym w tle,
- nietypowymi ustawieniami prywatności,
- zmianą sieci podczas wykonywania testu.
Cloudflare wymienia wśród przyczyn pętli weryfikacji problemy z siecią, blokujące rozszerzenia, wyłączony JavaScript, nieobsługiwaną przeglądarkę, korzystanie z VPN lub proxy oraz wykrycie sygnałów przypominających działanie bota.
VPN sam w sobie nie oznacza, że robisz coś niewłaściwego. Problem polega na tym, że jeden adres serwera może być używany równocześnie przez wielu klientów. Jeśli część z nich generuje automatyczny lub podejrzany ruch, cały adres może otrzymać niższą ocenę zaufania.
Google również może wyświetlić reCAPTCHA, gdy z sieci lub adresu VPN pochodzi ruch przypominający zautomatyzowane zapytania.
Co zrobić, gdy CAPTCHA nie działa?
Najpierw odśwież stronę i spróbuj rozwiązać test ponownie. Jeśli problem wraca, wykonaj kolejno kilka prostych czynności.
Sprawdź JavaScript
Nowoczesne systemy CAPTCHA wymagają JavaScriptu. Jeśli został całkowicie wyłączony albo zablokowany przez rozszerzenie, test może się nie załadować lub nie przesłać wyniku.
Wyłącz na chwilę rozszerzenia
Blokery reklam, skryptów i trackerów mogą zatrzymać element potrzebny do weryfikacji. Nie musisz od razu usuwać rozszerzenia. Wyłącz je tylko dla danej strony i sprawdź, czy problem ustępuje.
Otwórz stronę w trybie prywatnym
Tryb prywatny często uruchamia przeglądarkę bez części rozszerzeń i starych danych witryny. Pomaga dzięki temu ustalić, czy problem powoduje dodatek, plik zapisany w pamięci albo ustawienie bieżącego profilu.
Tryb incognito nie ukrywa jednak całego środowiska przeglądarki. Więcej na ten temat przeczytasz w artykule Jak działa odcisk palca przeglądarki?.
Zaktualizuj przeglądarkę
Starsza wersja może nie obsługiwać funkcji wymaganych przez system zabezpieczający. Aktualizacja usuwa również błędy i luki, które mogą wpływać na działanie skryptów.
Podstawy działania programów służących do otwierania stron opisujemy w materiale Przeglądarki internetowe – na czym polega ich funkcjonowanie?.
Wyłącz VPN lub zmień sieć
Jeżeli korzystasz z VPN, wyłącz go na chwilę i ponownie otwórz stronę. Możesz też przełączyć się z domowego Wi-Fi na internet mobilny albo odwrotnie.
Sprawdź inne urządzenie
Jeśli test działa na telefonie, ale nie na komputerze, problem prawdopodobnie jest związany z konfiguracją konkretnej przeglądarki, rozszerzeniem lub urządzeniem.
Nie odświeżaj strony bez końca
Bardzo szybkie ponawianie próby może wyglądać jak działanie automatu. Zatrzymaj się na chwilę, zamknij niepotrzebne karty i spróbuj ponownie po zmianie jednego ustawienia.
Czy CAPTCHA jest dostępna dla każdego?
Test obrazkowy może być trudny lub niemożliwy do rozwiązania dla osoby niewidomej, słabowidzącej, mającej trudności poznawcze albo korzystającej z określonych technologii wspomagających.
Dlatego część systemów oferuje alternatywne zadanie dźwiękowe. Zamiast rozpoznawania zdjęć użytkownik słucha nagrania i wpisuje odczytane cyfry lub słowa.
Nie rozwiązuje to wszystkich problemów. Test dźwiękowy może być trudny dla osoby niesłyszącej, a oba warianty mogą stanowić przeszkodę dla użytkowników z innymi ograniczeniami.
Wytyczne W3C zalecają udostępnianie alternatywnych form CAPTCHA wykorzystujących różne rodzaje percepcji. Organizacja zwraca również uwagę, że nawet dwa warianty nie gwarantują dostępności dla każdej osoby.
Z tego powodu coraz większe znaczenie mają mechanizmy niewidoczne, ocena ryzyka i zabezpieczenia niewymagające rozpoznawania obrazu.
Czy kliknięcie CAPTCHA może być niebezpieczne?
Prawdziwy test CAPTCHA nie powinien wymagać:
- pobierania programu,
- instalowania rozszerzenia,
- wklejania polecenia do systemu,
- wyłączenia programu antywirusowego,
- podawania hasła,
- wpisywania danych karty,
- udostępniania kodu SMS,
- zezwalania na zdalny dostęp do komputera.
Oszuści mogą umieścić na stronie grafikę przypominającą CAPTCHA i wykorzystać ją jako element manipulacji. Fałszywa instrukcja może nakazywać naciśnięcie kombinacji klawiszy, otwarcie okna systemowego albo wklejenie skopiowanego polecenia.
Nie wykonuj takich działań. Zwykła CAPTCHA ogranicza się do interakcji w obrębie strony: kliknięcia pola, wyboru obrazów, przepisania znaków lub odsłuchania nagrania.
Podobną ostrożność należy zachować przy dodatkach obiecujących automatyczne omijanie testów. Mogą otrzymywać dostęp do odwiedzanych stron i wpisywanych danych. Zasady sprawdzania takich dodatków opisujemy w poradniku Jak rozpoznać i unikać fałszywych wtyczek przeglądarkowych?.
Czy można całkowicie zrezygnować z CAPTCHA?
Właściciel strony może stosować inne zabezpieczenia, na przykład:
- ograniczenie liczby prób,
- potwierdzenie adresu e-mail,
- analizę reputacji połączenia,
- wykrywanie nietypowego tempa operacji,
- ukryte pola formularza niewidoczne dla użytkownika,
- filtrowanie treści wiadomości,
- dodatkowe uwierzytelnianie,
- ręczną moderację,
- system oceny ryzyka.
Najlepsze rezultaty daje zwykle połączenie kilku metod. CAPTCHA nie powinna być jedynym zabezpieczeniem formularza, podobnie jak program antywirusowy nie jest jedynym elementem ochrony komputera.
Zbyt łatwy test nie zatrzyma botów. Zbyt trudny zniechęci prawdziwych użytkowników. Dlatego właściciel serwisu musi znaleźć równowagę między bezpieczeństwem, wygodą i dostępnością.
Osoba tworząca własną witrynę powinna też pamiętać, że widżet widoczny w kodzie strony nie wystarcza. Token musi zostać poprawnie zweryfikowany przez serwer. Podstawy budowania dokumentów internetowych opisujemy w poradniku Jak zacząć pisać stronę w HTML?.
CAPTCHA nie pyta wyłącznie o obrazki
Najważniejsze jest to, że nowoczesna CAPTCHA nie działa jak pojedyncza zagadka z prawidłową i błędną odpowiedzią. Jest raczej częścią systemu oceny ryzyka.
Może sprawdzać:
- czy przeglądarka działa prawidłowo,
- czy środowisko przypomina zwykłe urządzenie,
- czy próba nie jest elementem masowej automatyzacji,
- czy niewidoczne zadania zostały wykonane poprawnie,
- czy odpowiedź została przesłana w odpowiednim czasie,
- czy token został potwierdzony przez serwer.
Test ze zdjęciami pojawia się wtedy, gdy potrzebny jest dodatkowy dowód. Dlatego jednego dnia wystarczy jedno kliknięcie, a innego trzeba zaznaczyć kilka plansz.
CAPTCHA nie wie ze stuprocentową pewnością, że jesteś człowiekiem. Oblicza prawdopodobieństwo, szuka sygnałów typowych dla automatów i podejmuje decyzję na podstawie dostępnych danych. Czasami się myli. Właśnie dlatego mechanizmy te są stale rozwijane, a proste obrazki coraz częściej zastępują testy działające dyskretnie w tle.