Последние публикации

  16 Июля, 2011
Взлом капчи
Разбираемся, как ломают капчи. Теория и практика


  17 Июня, 2011
Справочник по PHP
Синтаксис языка и операторы. Функции работы с данными. Файлы и сети. Управляющие функции. ..


  25 Января, 2011
Основы web-технологий.
С появлением высокопроизводительных серверов, сетевого оборудования и высокоскоростных каналов связи ..


  22 Января, 2011
Теоретические основы защиты информации.
В настоящее время и у нас в стране, и за рубежом достаточно много публикаций по современным ..


Поиск по сайту

 

postheadericon Главная / безопасность пк / хакинг

Взлом капчи


Разбираемся, как ломают капчи. Теория и практика

сделает все остальное. Сюда же можно отнести и всевозможные арифметические задачи («Сколько будет пять умножить на семь?»), которые легко решаются при помощи регулярных выражений. Однако, для полностью автоматических роботов даже такого вида защиты будет достаточно.

Ещё одно популярное заблуждение создателей капчей: чем сложнее прочитать код человеку, тем сложнее прочитать его роботу. Это заблуждение приводит к появлению капч, которые пользователи с трудом вводят с десятой попытки, но при этом автоматическое распознавание работает на ура. Например, человеку трудно читать светлый шрифт на светлом фоне, а для системы распознавания разница между цветами в один бит так же легко определяется как и визуально заметная разница. Вообще, использование в капче более чем двух цветов практически бесполезно, обратите внимание на капчи крупных сайтов — большая часть из них состоят из темной одноцветной надписи на белом фоне. Это связано с тем, что наиболее сложной задачей является распознавание текста в самой надписи, а не поиск её местоположения на изображении. Помимо прямой уязвимости, капча может оказаться ненадежной из-за уязвимости в скриптах. Например, самая глупая ошибка — передавать текст капчи в виде параметра к скрипту, который генерирует изображение. Или возможность использовать код с изображения несколько раз в течение какого-то времени.

Пример взлома

Итак, лучший способ понять, как оценить надежность

капчи — разобрать пример взлома. Выбор пал на капчу сайта xakep.ru, которая используется при регистрации новых пользователей и добавлении комментариев. Код состоит из четырех цифр, что дает нам 10000 вариантов — не так уж и много, но от прямого перебора защитит. Для вывода цифр используется один шрифт, надпись слегка поворачивается

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

«Пиксельный» шум по всему изображению снимается простейшим фильтром по яркости: все пиксели, яркость которых выше некоторого значения, закрашиваются белым цветом, остальные — черным. Такая операция очищает практически весь шум, за исключением отдельных точек, не мешающих дальнейшей обработке. Остается лишь одна проблема — случайно разбросанные линии, которые значительно затрудняют, во-первых, определение позиции надписи, во-вторых, распознавание отдельных цифр. Поставим задачу довести точность распознавания хотя бы до 5% при приемлемых затратах процессорного времени. Такая постановка задачи позволит нам выбрать уязвимость, которая должна встречаться хотя бы в каждой 20-й капче и с большой вероятностью гарантировать нам распознавание. И такая уязвимость есть — на некоторых изображениях линии практически не пересекают цифры и такие изображения встречаются достаточно часто. От этой особенности и будем отталкиваться.

Для работы нам в первую очередь потребуется набор распознанных образцов. Скажем, 100 штук для начала будет достаточно. Для этого придется немного поработать «китайцем», но для упрощения задачи можно написать небольшой скрипт, загружающий изображения с капчами с сервера и формирующий форму, которую нам придется заполнить вручную. Так как мы решили опираться на наименее зашумленные изображения, то в качестве образцов стоит использовать именно их. Итак, через несколько минут скучной работы у нас есть директория, в которой аккуратно сложены файлы с капчами, имена которых соответствуют кодам на изображении (например, 2716.jpg). Для подобных экспериментов лучше всего подходят скриптовые языки, такие как PHP или Python, также может быть полезен Matlab, в котором есть удобные библиотеки для анализа и обработки изображений. Мы будем использовать PHP, в котором все функции для работы с изображениями имеют префикс image, для низкоуровневой работы с пикселями достаточно imagecolorat. Вот, например, фрагмент кода, который формирует маску изображения с темными участками:

class Xakep_CAPTCHA
{

// Расстояние между двумя цветами
protected function colordist($color1, $color2)
{
return sqrt(pow((($color1 >> 16) & 0xFF) - (($color2 >> 16) & 0xFF), 2) +
pow((($color1 >> 8) &

Дата публикации: 16 Июля, 2011
Автор: Артём Заруцкий
Прочитано: 6286 раз

-  2  -

<1 |  2  | 3 | 4 | 5 | 6 | 7>

postheadericon Это интересно

Справочник по PHP

Синтаксис языка и операторы. Функции работы с данными. Файлы и сети. Управляющие функции. Взаимодействие с базами данных. Графика.

Веб-дизайн

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

Приемы раскрутки WEB-сайтов.

Обзор приемов раскрутки web-сайтов.