“Премия Рунета”: типа капча

Известно, что разные картиночные капчи (CAPTCHA) используют в Интернете с целью отличить просто компьютер от компьютера, управляемого человеком. Например для того, чтобы какие-то действия на сайте были доступны только человеку, а не программе-боту. Сейчас капчи стали настолько “попсовым явлением”, что то и дело появляются реализации, которые программе-боту решить проще, чем человеку.

Рассмотрим пример. На сайте народного голосования “Премии Рунета” есть капча, как бы защищающая голосовалку от накрутки. Капча выглядит так (ниже – две картинки, в масштабе 1:1 и увеличенная):

Итак, человеку тут придётся разглядывать мелкие “цифири”, ломая глаза, и выполнять арифметическое действие.

Между тем, с помощью настроенной программы-бота капча ломается очень быстро. Основная уязвимость капчи в том, что пикселы цифр там всегда чёрные, в фоне же чёрные пикселы не встречаются. При этом цифры выводятся в известной области изображения (одной и той же, как я понимаю) простым шрифтом, без всяких искажений. Ключевой момент алгоритма решения данной капчи: делается простой перебор масок цифр 0-9 (так сказать, из библиотеки, сгенерированных на основе того же шрифта) по изображению, с обнаружением максимально совпадающих масок. Понятно, что даже не нужно делать сегментацию – значащие пикселы уже отмечены “контрастным” цветом (RGB: 0.0.0).

Тип операции (+/-) определяется аналогично. Правда, придётся поискать начальный пиксел знака операции. После чего только одно арифметическое действие отделяет программу бота от решения капчи.

Понятно, что один раз налаженная программа сможет решать такие капчи моментально даже на средненьком по производительности компьютере. Но самое смешное то, что эти капчи можно сгенерировать и прорешать заранее, сложив в базу хеши и ответы. После чего конкретная задача-капча решается ещё быстрее.

Update (27/10/2008): “Премия”, наконец-то, поменяла капчу на более стойкую. Исправляются, это не может не радовать.

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 5

  • 1. 25th October 2008, 15:42 // Читатель arcman написал:

    ну так вообще не интересно, даже нейросеть ненужна =)
    с задачкой школьник за вечер справится

  • 2. 25th October 2008, 15:52 // Александр Венедюхин ответил:

    О чём и речь. И зачем, спрашивается, было _без_понимания_ задачи городить капчу вообще, затрудняя жизнь обычным пользователям? Тем более, что в таком народном голосовании не сможет проголосовать человек с плохим зрением.

  • 3. 27th October 2008, 16:24 // Читатель Maximus написал:

    Александр, приветствую!

    Спасибо Вам и другим авторам за то, что обратили наше внимание на слабые места капчи. Собирались обновить ее еще на прошлой неделе, но по той причине, что с головой были в RIW’е не успели сделать это. Обновили сегодня.

    Думаю, что обновленная капча доставит больше проблем системам распознавания текста.

    Так же хочу заметить, что в своем замечании “самое смешное то, что эти капчи можно сгенерировать и прорешать заранее, сложив в базу хеши и ответы” вы заблуждаетесь. Кэш капчи так же учитывает дату генерации и 2 персональных типа данных, что делает бесполезным создание БД хэшей.

  • 4. 27th October 2008, 16:37 // Александр Венедюхин ответил:

    Да, обновлённая капча несравнимо лучше, без сомнения.

    Что касается предложения с БД: речь не о датах генерации, а том, что варианты капчей с _конкретными_числами_ можно заранее прорешать, вычислить для них хеши и хранить в базе. В дальнейшем, при загрузке с сайта “Премии” капчи, хеш которой есть в БД, сразу брать ответ из базы, а не разбирать капчу.

  • 5. 30th October 2008, 15:43 // Читатель Сережка написал:

    Да, мне кажется, что очень простая капча, хоть я и не программер, но распознать такую – не велика проблема, мне кажется.
    Если делать, то делать качественно.