Captcha используется в основном при регистрации пользователей на сайте для защиты от ботов, представляется в виде графических букв и цифр. Расшифровывается как «Completely Automated Public Turing test to tell Computers and Humans Apart», т.е. тест для определения кто использует систему человек или компьютер. Captcha работает следующим образом:пользователь заходит на страницу, на которой для него генерируется случайный текст и выдается в виде определенной картинки. Введенный пользователем текст сравнивается с генерированным текстом. Ботов программируют так, чтобы они смогли распознать текст Captcha. Для распознавания бот должен определить границы символа, его местоположение, а потом уже распознать сам символ. Во избежание того, чтобы бот сразу не мог определить местоположение символа, тот должен генерироваться в случайном месте в окошке Captcha. Бот сравнивает символ с фоном. Если символы и фон отличаются друг от друга цветами, то бот может легко определить местоположение и границы символа. Поэтому к фону необходимо добавить определенный шум, который отличается от самого символа. Также можно помещать символы друг на друге, или достаточно близко друг от друга.
Captcha должна обязательно использовать разные шрифты, а также искажать их форму , т.к. боты накладывают маски на символы и сравнивают их с символами из своей библиотеки. Использование разных шрифтов и их случайное искажение делает в этом случае распознавание для бота довольно сложным.
Существуют алгоритмы под названием «нейронные сети» для распознавания символов «капчи». Эти алгоритмы являются намного сложнее, но более эффективными. Вначале идет построение сети, а потом идет обучение этой сети.
Недавно используя алгоритмы «нейронные сети», Гугл разработал алгоритм для распознавания камерами StreetView дорожные знаки и номера домов. Оказалось, что этот алгоритм идеально подходит для распознавания Captcha. [1]
Рассмотрим Captcha, которую использует gmail.
В данном случае боту распознать символы мешает шум и расположение символов.
В о втором случае боту распознать символы мешает тот факт, что символы помещены друг на друга и деформированы. Проблема заключается в том, что эти варианты Captcha не удобно распознать также и человеку.
Для того, чтобы использование компьютера было бы удобно для пользователя. Дизайн используемой системы должен удовлетворять следующим требованиям[2]:
- Обучаемость: Насколько легко для пользователей выполнять основные задачи в первый раз?
- Эффективность: После ознакомления с дизайном, насколько быстро пользователи могут выполнять задачи?
- Запоминаемость: После долгого периода неиспользования дизайна, насколько просто пользователи смогут в нем ориентироваться?
- Ошибки: Сколько ошибок допустили пользователи, насколько серьезными являются эти ошибки, и как легко от них можно избавиться?
- Удовлетворение (предпочтение пользователей): Насколько приятно пользователю использовать данный дизайн?
Данные варианты Captcha перестают удовлетворять пятый пункт- удобного дизайна- предпочтение пользователей. Появляются более эффективные алгоритмы распознавания символов и в связи с этим Captcha становится более сложной. По нашему мнению желательно поменять направление развития Captcha, не делая его все более сложным.
Гугл использует интеграцию с мобильными устройствами для идентификации пользователя, например, при входе в почту. Очевидно, целесообразно, в случае если Captcha не будет понятна пользователю, у него должна быть возможность доказать, что он не робот с помощью введения кода, который он получит на мобильное устройство в виде сообщения или телефонного звонка. Полностью переходить на метод ввода кода с мобильного устройства, может быть не удобно некоторым пользователем, а вариант выбора, по нашему мнению, будет довольно удачным.
Библиографический список
- http://siliconrus.com/2014/04/google-captcha/
- Usability 101: Introduction to Usability by JAKOB NIELSEN