Личный опыт тестов Тьюринга

18.12.11

Интеграция - WEB-интеграция

Личный опыт использования тестов тьюринга в администрировании форума PHPBB

Я не люблю, когда на форумах анонимным пользователям отказывают в праве ответить на сообщение. Однако причина понятна - анонимным пользователем может оказаться обычный робот-спаммер, засоряющий форумы. Так вот из-за спама страдают ленивые пользователи, которым лень регистрироваться на ресурсе, который они может быть больше и не посетят, если им не ответят, или у которых нет e-mail.

Если бы существовал способ, который 100% мог бы отличить робота от человека, анонимным пользователям можно было бы разрешить оставлять сообщения в форуме. Не так уж много может человек вручную накидать сообщений. Администратор гораздо быстрее их удалит.

В то время я узнал, что такая защита существует и называется графическим тестом Тьюринга. Пользователю предлагается картинка, на которой изображено число. Он должен ввести это число, когда отправляет сообщение, подтверждая, что он человек, а не робот.

Я поискал сайты с таким текстом и составил небольшую коллекцию картинок:


yahoo.com
 

captcha
 

mail.ru
 

Немного попрограммировав, я написал код, который рисовал самую простую картинку и выводил ее пользователю. Однако мой тестировщик (спаммер) смог сломать защиту. Анализируя логи, я обнаружил, что его спам-программа иногда делает ошибки, следовательно при взломе защиты используются алгоритмы распознавания образов (OCR). Вот мой первый тест:

Я изложу вам историю нашего противостояния, чтобы вы могли представить себе состояние искусственного интеллекта в области OCR. В конечном итоге способ защиты был обнаружен. Он оказался не по зубам современному ИИ, но к этому результату привела длительная и головоломная борьба со спаммером. :) За это ему и спасибо.

Я подумал - зачем писать самому, если можно найти бесплатный готовый тест. И я действительно нашел его в коде одного из бесплатных порталов. Теперь защита выглядела так:

Как видно, буквы стали размытыми, появилась вносящая наводки на распознавание сеть и вместо 10 объектов распознавания (цифры), появились буквы и знаки. Но и эту картинку ИИ переварил, правда знаки *+- и т.п. он не очень хорошо распознавал.

Постепенно я дорабатывал этот тест, размер и позиция букв становились случайными, кроме того я подключил несколько TTF шрифтов и выдавал случайный тест тьюринга.

В конце концов движение в этом направлении привело к тому, что пользователям стало трудно распознавать тест, а защита по-прежнему взламывалась.

Я пробовал добавлять снег (короткие случайные линии), сетку, играть с цветом, но все взламывалось:

Тогда я отошел от классического теста тьюринга - давать пользователю повторить то, что нарисовано на картинке, а заставил его вводить ту информацию, что получается из информации на картинке - короче задавать ему ребусы. Пользователь должен был посчитать сколько фигурок разного вида присутствует на картинке и ввести это число (подсчитывая фигурки в произвольном порядке). Для фигурок я использовал картинки из символьных TTF-шрифтов - тогда я еще не умел работать с графикой.

   

5451
   

243

Это был сложный тест и в нем легко было запутаться и сбиться со счета. Но картинки были одинаковы, хоть и разного размера. И спаммер этим воспользовался, легко взломав тест. Распознать одинаковые картинки, даже с учетом поворота и изменения размера, достаточно легко. Буквы же, хоть и были написаны разными шрифтами, но распознавались по форме. В конечном итоге тест представлял смесь латинских букв, написанных разными шрифтами и картинок. Чтобы пользователю не выискивать одинаковые фигурки,они были вынесены в рамку в левый верхний узел.

Тут я совсем зашел в тупик. Помог мне мой друг Саня Fduch из Кенига, он сказал - тебе нужно рисовать картинку и спрашивать у пользователя - сколько ежиков сидит под сколькими елочками? Ну он немножко не так сказал, выразительнее, используя силу русского и могучего языка, но это подтолкнуло меня к идее.


3332

В первом варианте использовался тот же принцип подсчета одинаковых картинок. Однако один и тот же объект мог изображаться абсолютно разными картинками, непохожими друг на друга. Посмотрите, на картинке три совершенно разных картинки. Сначала я ограничился небольшим набором картинок, тест стал ломаться реже.

Но пользователям было неудобно считать картинки, я немного изменил логику работы, пользователь должен был ввести пятизначное число, заменяя звездочки соответствующими номерами картинок:


11342

Тест получился удобным и при большом наборе картинок неломаемым. Однако его можно было еще улучшить.Картинок предлагается больше, чем требуется ввести, что еще больше усложняет задачу спаммера. В последней версии тест выглядит так:


61242

Очевидно, что чем больше картинок в коллекции, тем надежнее работает тест и тем более он устойчив к взлому. Дополнительно я добавил небольшой поворот картинок (0-15 градусов) и помехи - не просто линии, а разноцветные треугольники, квадраты, точки, окружности и т.п. Некоторые картинки, которые допускают поворот, я поворачиваю на случайный угол от 0 до 360 градусов. Работает быстро:


25528

Что касается дополнительных доработок, можно бросать картинки не в фиксированные по размерам ячейки, а пододвигать их друг к другу, пока они не соприкоснуться и номер картинки впечатывать в свободное место на ней. Это запутает робота, но не затруднит человека. Как видно, можно использовать и рисунки и фотографии.

Думаю, на данный момент можно построить тест, который компьютер не одолеет за разумное время, даже после предварительной подготовки. Удачи вам в нелегкой борьбе с компьютерными преступниками и ворами, коллеги!

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15661    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17429    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25688    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16260    41    49    

22
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. fixin 4252 18.12.11 09:22 Сейчас в теме
Личный опыт использования тестов тьюринга в администрировании форума PHPBB

Перейти к публикации

1. see1c.ru 50 18.12.11 09:22 Сейчас в теме
Тема интересная.
А если использовать маленькие стерокартинки в которых будет написан текст, или изображение предмета и комментарий к нему.
http://infostart.ru/public/77536/
думаю распознать это будет очень сложно.
5. necropunk 9 21.12.11 10:00 Сейчас в теме
(1) see1c.ru, стереокартинки тоже не все умеют смотреть. Да и если монитор хреновый - замучаешься в маленькой капче в стереокартинку вглядываться. А большая весить до фига будет... Да и видел где-то алгоритм вставки и выдергивания изображений из подобных картинок, а уж после этого робот распознает за милую душу, полагаю.
2. DrAku1a 1678 18.12.11 13:59 Сейчас в теме
Не совсем уместно на сайте 1С ИМХО... Хотя для общего развития =)

Мне как-то рассказывали хохму про индусов, которые сидят и за центы перебивают капчи "вручную" тысячами за день... Страна бедная, денег зарабатывать надо - вот и придумали ))) Думаю, битву с индусами Ваша система не выдержала бы =)
3. cool.vlad4 2 18.12.11 14:07 Сейчас в теме
(2) это так и есть, китайцы и другие азиаты, на заказ перебивают капчи. (0) на самом деле это скучная тема. на хабре и на других ресурсах описано и сделано очень много капч. для бизнес-приложений - я считаю это неактуально (например интернет магазин или техподдержка), пользователи терпеть это не могут.
Думаю, на данный момент можно построить тест, который компьютер не одолеет за разумное время, даже после предварительной подготовки.
вся проблема в том, что не каждый человек в этом случае тоже одолеет)))
4. fixin 4252 18.12.11 15:00 Сейчас в теме
(3) против индусов можно использовать 1. русский язык. 2. российские контексты
6. Defm 21.12.11 10:34 Сейчас в теме
Сообщество не сильно оценило статью: имхо не совсем инфостартовская тематика, кроме того никаких конкретных реализаций. Вопросы распознавания капчи на само деле широко освещены если поискать.. Полезно, но плюс не поставлю
7. ander_ 21.12.11 16:16 Сейчас в теме
Давно и очень эффективно пользуюсь тематическим вопросом (ответ на который очевиден целевой аудитории форума). О спам ботах просто забыл.
8. ser5ax 22.12.11 11:00 Сейчас в теме
В одном из последних примеров Вы пишете значение 61242, но вот что-то у меня получилось 67242)))
9. simpal 27.12.11 14:24 Сейчас в теме
Оставьте свое сообщение