CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart - далее «капча») - полностью автоматизированный тест Тьюринга для различения компьютеров и людей. Является одной из форм теста «ответ на запрос» и служит для того, чтобы определить, действительно ли пользователь, отправивший ответ, является человеком, а не компьютером.
Сам термин был придуман в 2003 году Луисом фон Аном, Мануэлем Блюмом, Николасом Дж. Хоппером и Джоном Лэнгфордом [3]. А наиболее распространенный на сегодня вид капч - изображение с искаженными и завуалированными символами (буквами и цифрами) - был изобретен в 1997 году.
Капча в основном используется в качестве премодерации, защиты поисковых систем, социальных сетей, онлайн опросов, регистрации на сайтах от спама и вредоносных программ, таких как боты (или роботы, - специальные программы, автоматически выполняющие определенные, чаще вредоносные, действия). Принцип защиты следующий: пользователю, после некоторых совершенных им действий, например, после ввода своих данных при регистрации электронной почты, перед сохранением результатов предлагается ввести текст, изображенный на капче. Если пользователь верно распознал текст и ввёл его в строку, то система принимает его за человека и разрешает зарегистрировать электронную почту. Иначе, пользователем, скорее всего, является компьютер, и система не сохраняет результат.
Как было сказано выше, на сегодняшний день самый распространённый вид капч - это текстовая капча (изображение с некоторым набором букв, цифр или символов). Также существуют и другие виды, основанные на изображениях, аудио, видео или пазлах [7]. Первые могут представлять собой как просто деформированный набор символов, так и математический пример, который нужно решить. Решая второй вид капч, пользователь должен указать те изображения, на которых, по его мнению, изображены заданные объекты. Аудио- и видеокапчи похожи на текстовые с той лишь разницей, что тут текст произносится диктором или показывается на видео. Последний вид капч представляет собой мозаику, которую нужно правильно сложить.
Главное свойство каждой капчи - быть одновременно простой для человека и сложной для машины. Очень важно соблюсти этот баланс, иначе капча может быть очень сложна для восприятия человеком (рисунок 1):
Можно сказать, что на сегодняшний день с интернет-технологиями связаны почти все сферы жизни человека. А значит у злоумышленников появляется больше возможностей для кражи личных данных, отправки спама, создания ботов и для других вредительств. Поэтому сегодня так актуально обезопасить интернет- -ресурсы. И одним из рубежей защиты как раз является капча. А, как известно, «лучшая защита - это нападение». Поэтому цель данной работы - произвести атаку на некоторые капчи, исследовать достоверность распознавания капч различными классификаторами и выбрать среди них лучший по таким параметрам, как процент правильного распознавания символов, время обучения и время непосредственного распознавания символов на капче.
В данной работе будут рассмотрены только текстовые капчи, в которых нужно распознать цифры и буквы. Обычно данная задача разбивается на подзадачи: предварительная обработка изображения (удаление шумов, искажений и т.д.), сегментация (выделение символов и постобработка) и распознавание символов некоторым алгоритмом. Последняя подзадача применима ко всем текстовым капчам в неизменном виде, как и вторая. А препроцесс для каждой капчи может существенно различаться, т.к. они индивидуальны, и к каждой нужно найти свой подход.
В данной работе были рассмотрены методы распознавания текстовых капч. На первом виде капч «зашифрованы» 4 цифры, на второй капче - 6 букв латинского алфавита. Процесс распознавания был разделен на три этапа: предобработка изображения, выделение символов (сегментация) и классификация символов.
На первом этапе изображения были подвергнуты пространственным и морфологическим преобразованиям для визуального выделения символов, отделения их от фона.
На втором этапе с помощью алгоритма поиска границ Кэнни были найдены и выделены края букв и цифр.
На последнем этапе были рассмотрены и сравнены 4 алгоритма классификации объектов: искусственные нейронные сети, метод опорных векторов, случайный лес (набор деревьев решений) и к ближайших соседей.
Для первой капчи оптимальным алгоритмом классификации стали нейронные сети (в скрытом слое 84 нейрона) - 88.375 % символов были распознаны верно.
Для второй капчи оптимальным методом оказался метод к ближайших соседей - 69 % символов были распознаны правильно.
В целом для рассмотренных капч наилучшим образом себя показал метод опорных векторов, для первой капчи давший среднюю ошибку 88.75 %, а для второй - 68.33 %. Нельзя сказать, что алгоритм работает быстрее других, но всегда придется чем-то жертвовать: либо точностью в угоду скорости работы, либо скоростью в угоду точности.
Нельзя написать единственный алгоритм, который будет распознавать все виды капч, будь то текстовые, с выбором подходящих изображений или другие. Каждая из них имеет свои особенности и свой подход к решению.
Также всегда следует помнить, что капча в первую очередь должна быть проста и понятна человеку, и только потом она должна быть сложна для автоматического распознания, иначе теряется весь смысл этой технологии, придуманной сотрудниками университета Карнеги-Меллон.
1. Гонсалес, Р. Цифровая обработка изображений [Текст]: пер. с англ. / Р. Гонсалес, Р. Вудс. - М.: ТЕХНОСФЕРА, 2005 г. - 1070 с.
2. Разинков Е.В. Машинное обучение. Конспект лекций. Казань, 2015.
3. Ahn L. von, Blum M., Hopper N.J., Langford J. CAPTCHA: Using Hard AI Problems For Security, Advances in Cryptology - EUROCRYPT 2003, 2003, pp. 294-311.
4. Kanan C., Cottrel G.W., Color-to-Grayscale: Does the Method Matter in Image Recognition? PLOS ONE, 7, 1, 2012.
5. Mitchell T.M. Machine Learning. - McGraw-Hill, 1997. - 414 pp.
6. Rummelhart D. E., Hinton G. E., Williams R. J. Learning internal representations by error propagation / Vol. 1 of Computational models of cognition and perception, chap. 8. - Cambridge, MA: MIT Press, 1986. - 319-362 pp.
7. Singh V.P., Pal. P., Survey of Different Types of CAPTCHA, International Journal of Computer Science and Information Technologies, 5(2), 2014, pp. 2242-2245.
8. Воронцов К.В. Лекции по методу опорных векторов [Электронный ресурс]: - Электрон. текст. дан. - 2007. http://www.ccas.ru/voron/download/SVM.pdf
9. Воронцов К.В. Лекции по метрическим алгоритмам классификации
[Электронный ресурс]: - Электрон. текст. дан. - 2009.
http: //www.machinelearning.ru/wiki/images/9/9d/V oron-ML-Metric.pdf
10. Moeslund T. Canny Edge Detection [Электронный ресурс]: Laboratory of
Computer Vision and Media Technology, Aalborg University. - Электрон. текст. дан. - Aalborg, Denmark. http: //www.cvmt.dk/education/teaching/
f09/VGIS8/AIP/canny 09gr820.pdf