Newsletter

Grupa MagazynyInternetowe

Online: 968

Wyszukiwarka

CAPTCHA, Spam, Ochrona formularzy

Ochrona przed spamem: CAPTCHA

Ochrona przed spamem: CAPTCHA Jednym z popularniejszych sposobów zabezpieczenia dostępu do formularzy i innych danych jest CAPTCHA. Zwykle polega na przepisaniu tekstu zapisanego jako obrazek lub plik dźwiękowy, jednak nie są to jedyne sposoby. Ich skuteczność rzadko kiedy jest wystarczająca.

Marcin Kosedowski

CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) umieszcza się na stronie po to, aby ułatwić moderację forów, blogów i formularzy pozwalających dodać użytkownikom własną treść. Aby odróżnić prawdziwych internautów od programów spamujących, administratorzy stosują różne sposoby - najpopularniejszy z nich polega na przepisaniu tekstu z obrazka.

Przed czym chroni CAPTCHA?

Dobre CAPTCHA powinno być niezauważalne lub łatwe do odczytania przez człowieka i możliwie niewykonalne przez komputer. Niestety, nawet kilkuprocentowa skuteczność programu potrafiącego je obejść jest wystarczająca, żeby uzyskać dostęp do chronionych zasobów. Programy mogą bowiem niskim kosztem i w krótkim czasie wysłać setki zapytań do serwera. Nawet jeśli tyko kilka z nich ominie zabezpieczenia, będzie to wystarczająca ilość.

Projekt gimpy (www.captcha.net/captchas/gimpy/) - znajdź trzy różne słowa. Równie skutecznie zatrzymuje boty jak i ludzi Projekt gimpy (www.captcha.net/captchas/gimpy/) - znajdź trzy różne słowa. Równie skutecznie zatrzymuje boty jak i ludzi

Dużo większą niedogodnością jest jednak utrudnianie życia zwykłym czytelnikom. Często zdarza się, że źle zaprojektowane CAPTCHA jest trudnym zadaniem dla internautów, a programy radzą sobie z nimi bez problemów.

Przeciwnikami CAPTCHA nie zawsze są spamerzy. Każde dodatkowe zabezpieczenie jest czasem straconym przez prawdziwych czytelników. Problemy mogą mieć osoby niewidome, korzystające z przeglądarek tekstowych lub nieznające języka, w którym wypowiadane są dźwiękowe CAPTCHA.

Nie utrudniaj życia czytelnikom

Projektując "obrazkowe" CAPTCHA, warto zwrócić uwagę na szczegóły, które na pierwszy rzut oka wydają się utrudnieniem dla komputerów, a w rzeczywistości tylko ułatwiają im pracę.

  • rozmycie - programy typu OCR i tak rozmywają tekst, więc tylko przyśpieszy to ich pracę,
  • kolorystyka - jeśli tło ma inne kolory niż tekst (np. zawsze czarny), programowi łatwiej będzie je oddzielić,
  • niski kontrast - komputer go powiększy rozszerzając histogram, człowiek nie,
  • mały tekst - dla programu oznacza jedynie mniej obliczeń, ludzie z wadami wzroku mogą mieć problem,
  • odstępy między znakami - duże pozwolą na łatwe oddzielenie znaków, małe utrudnią odczytanie tekstu (także użytkownikom),
  • szum, cienkie linie - do wyeliminowania prostym filtrem,
  • grube linie - mogą zmylić programy, ale przeszkodzą głównie czytelnikom,
  • użycie jednego kroju pisma - pozwoli na łatwe i szybkie dopasowanie do wzorca,
  • wstawianie wyrazów zamiast losowych znaków - program znajdzie odpowiednie przyporządkowanie w słowniku,
  • użycie znaków takich jak 0 (zero) i O (duże o), 1 (jeden) i l (małe L) itp. - mimo że powstrzyma komputery, to przeszkadza przede wszystkim użytkownikom.

Jak widać, większość popularnych filtrów nie daje prawie nic albo szkodzi jednocześnie użytkownikom i programom. Dość skuteczne sposoby to:

  • przekształcenia takie jak uwypuklenie fragmentów tekstu, wiry, fale itp. - wymagające zastosowania nieliniowych filtrów o dużej złożoności,
  • ucinanie fragmentów znaków - użytkownik domyśli się jak wygląda np. ucięty dół cyfry 6, komputer nie ma szans.
CAPTCHA od  Google jest dość łatwa do odczytania, a dzięki wykorzystaniu nieliniowych przekształceń całkiem skuteczna CAPTCHA od Google jest dość łatwa do odczytania, a dzięki wykorzystaniu nieliniowych przekształceń całkiem skuteczna

Nie tylko tekst

Proste odczytywanie tekstów nie jest jedynym sposobem na zabezpieczenie formularza. Jednym z ciekawszych pomysłów na nietypowe CAPTCHA była usługa hotcaptcha.com (aktualnie niedostępna). Z dziewięciu dostarczonych zdjęć należało wybrać osoby, które wyglądają na atrakcyjne. Dostępna była wersja zarówno ze zdjęciami kobiet jak i mężczyzn. Serwis korzystał z bazy witryny hotornot.com, na której użytkownicy oceniają atrakcyjność osób, które umieściły w nim swoje zdjęcia. Mimo że zdecydowanie ciekawszy od nudnego przepisywania liter, system został szybko złamany.

Hotcaptcha.com - ze zdjęć wybierz trzy atrakcyjne kobiety (jest również wersja z mężczyznami). Mimo że komputer nie potrafi tego zrobić system został szybko złamany. Hotcaptcha.com - ze zdjęć wybierz trzy atrakcyjne kobiety (jest również wersja z mężczyznami). Mimo że komputer nie potrafi tego zrobić system został szybko złamany.

Ciekawym pomysłem jest wygenerowanie zadania matematycznego, którego wynik trzeba podać w wybranym polu. System taki wdrożono np. na stronie http://random.irb.hr/signup.ph.... Mimo że przykłady nie są trudne, można łatwo się w nich pomylić. Niestety, po pomyłce spotka nas mały problem - stopień skomplikowania zadań drastycznie rośnie. Sparsowanie i obliczenie pierwszego przykładu przez komputer nie stanowi najmniejszego problemu, więc CAPTCHA chroni jedynie przed użytkownikami niepotrafiącymi rozwiązać równań trygonometrycznych i różniczkowych. Ale może o to chodziło?

Rozwiąż zadanie matematyczne. Mimo prostoty można się pomylić, co skutkuje... Rozwiąż zadanie matematyczne. Mimo prostoty można się pomylić, co skutkuje... ...delikatnym zwiększeniem poziomu trudności. ...delikatnym zwiększeniem poziomu trudności.

Podobnie działają wszelkie skrypty proszące o wskazanie zdjęć przedstawiających koty, podanie zależności między przedmiotami ("na czym leży książka?") itp. Ich autorzy liczą na to, że komputery nie będą w stanie rozwiązać abstrakcyjnych problemów, jednak systemy łamane są w inny sposób - poprzez atak na bazę, znalezienie luk w skryptach czy użycie żywych użytkowników do masowego odgadywania haseł.

I tak to złamią

Niestety każde CAPTCHA zostanie w ten lub inny sposób złamane (a pamiętać należy, że wystarczy trafić raz na kilkadziesiąt prób, żeby uznać program za skuteczny). Jeśli tylko chronione dane staną się na tyle popularne, że komuś będzie opłacało się obejść CAPTCHA, pojawią się osoby, które je złamią. Ratunkiem może być stosowanie autorskich rozwiązań chroniących niewiele stron i w razie potrzeby zmiana algorytmów.

Nie zawsze opłaca się inwestować w programistę, który napisze odpowiedni program łamiący. Jeśli CAPTCHA jest trudne, tańszym wyjściem może okazać się zapłacenie wynajętym internatuom za odczytywanie tekstu z obrazków. Jeszcze sprytniejsze jest skopiowanie obrazka i zaserwowanie go użytkownikom własnego serwisu. Domyślenie się, że CAPTCHA nie chroni formularza, ale służy do łamania innych zabezpieczeń jest praktycznie niemożliwe.

Czasem okazuje się, że zabezpieczenia chronią jedynie przed prawdziwymi czytelnikami. Witryna polskiej ambasady na Ukrainie miała swego czasu formularz zabezpieczony standardowym CAPTCHA z kilkoma cyframi do przepisania z obrazków. Mimo że były one generowane losowo, to liczba składała się z oddzielnych plików o nazwach 1.gif, 2.gif itd. Program nie musiał nawet pobierać grafik - wystarczyła odpowiednia manipulacja źródłem strony.

Projektując CAPTCHA, warto zastanowić się nad jego skutecznością i sposobem działania programów odczytujących tekst. Może warto postawić na proste rozwiązania, które nie utrudnią życia użytkownikom, a zatrzymają proste programy spamujące? W końcu złamanie każdego zabezpieczenia to tylko kwestia opłacalności.

14 kwietnia 2009

Powiązane publikacje

Czy e-mail da się chronić?

Czy e-mail da się chronić?

Czy aby na pewno jest Pan człowiekiem? Użyteczność kodów CAPTCHA - test z człowieczeństwa

Czy aby na pewno jest Pan człowiekiem? Użyteczność kodów CAPTCHA - test z człowieczeństwa

Czy aby na pewno jest Pan człowiekiem? Użyteczność kodów CAPTCHA - teoria

Czy aby na pewno jest Pan człowiekiem? Użyteczność kodów CAPTCHA - teoria

Ochrona formularzy przed spamem

Ochrona formularzy przed spamem

 
Skomentuj
ten artykuł

Komentarzy: 7

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum Friday, 16.07.2010 13:08plf

Zapraszamy do udziału w bardzo prostym badaniu dotyczącym systemów CAPTCHA.
W badaniu prosimy o wypełnienie krótkiego kwestionariusza składającego się z 21 zamkniętych pytań. Przewidujemy, że jego wypełnienie zajmie nie więcej niż 10 minut. Po zakończeniu wypełniania kwestionariusza będzie można zobaczyć podsumowanie odpowiedzi. Badanie jest całkowicie anonimowe.
http://www.staff.amu.edu.pl/~kleka/cam/

Przejdż do tego postu na forum Monday, 15.02.2010 17:29ff

gfgf

Przejdż do tego postu na forum Sunday, 19.04.2009 10:57palik

ciekawym systemem jest http://recaptcha.net/ - darmowa usługa oferująca captcha - użytkownicy rozwiązujący zadania odczytania tekstu pomagają w projekcie digitalizacji starych i słabo zeskanowanych tekstów

Przejdż do tego postu na forum Saturday, 18.04.2009 10:11Michał

Przeczytajcie teraz tekst:
# szum, cienkie linie - do wyeliminowania prostym filtrem,
# grube linie - mogą zmylić programy, ale przeszkodzą głównie czytelnikom,
#użycie jednego kroju pisma - pozwoli na łatwe i szybkie dopasowanie do wzorca,
i spójrzcie na wasze CAPTCHA... Może by tak się do tego zastosować, bo porady są w gruncie rzeczy dobre?

Ponadto ilość użytych przez was kolorów i miejsc, w których pojawiają się litery pozwala znalezienie liter po użyciu dwóch filtrów i najprostszego przyporządkowania.

Przejdż do tego postu na forum Thursday, 16.04.2009 15:46Syrus

Do Jędrzej: co ci sie nie podoba w tym po prawej?, kod sie zgadza, moze nie umiesz odczytac

Przejdż do tego postu na forum Wednesday, 15.04.2009 14:31kowalski

test

Przejdż do tego postu na forum Wednesday, 15.04.2009 12:14Jędrzej

Ha ha! Co ja czytam i co widzę tu po prawej tongue.gif Ech...
Na dodatek nie mogę dodać komentarza, bo pole z kodem się nie zgadza?(!!!)

Zobacz wszystkie komentarze »

Autor

Marcin Kosedowski

Marcin Kosedowski - programista i mimo wykształcenia typowo technicznego autor artykułów o tematyce dotyczącej Internetu i bezpieczeństwa w sieci. Hobbystycznie prowadzi bloga, na którym porusza sprawy związane z programowaniem i Internetem.

Adres bloga like-a-geek.jogger.pl

Artykuły tego autora:

Pozostałe publikacje

Jak chronić pocztę elektroniczną?

Jak chronić pocztę elektroniczną?

Otwieranie skrzynki pocztowej to najczęstsza aktywność w Internecie. Miliony elektronicznych maili codziennie krążą po sieci i dostarczają każdego typu informacji: prywatnych, służbowych, lapidarnych bądź w postaci rozbudowanych elaboratów. Często - o treściach bardzo poufnych. Czy wiemy jednak, co dzieje się z naszą wiadomością, kiedy klikamy "Wyślij"? Jeśli zależy nam na tajności i prywatności naszej komunikacji, warto zadbać o odpowiednią ochronę elektronicznej korespondencji.

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.