Новости из Блогов Интеллектуальное распознавание капчей

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 14 Apr 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,057
    Reputations:
    693
    Интеллектуальное распознавание капчей


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

    [​IMG]


    Так что имейте ввиду, я не врал когда говорил что любую капчу можно обойти :D

    Итак, вернемся к делу. Предлагаемый мной метод к сожалению подходит не для любой реализации капчи, так как не все их реализации уязвимы к моей атаке, но на уязвимых капчах мой метод гарантирует практически 100%-ое распознавание, плюс дает возможность самообучать систему распознавания.

    Какие реализации уязвимы?

    Расмотрим абстрактный код генерации среднестатистической капчи:
    Code:
    if(empty($_SESSION['captcha_key'])){
    	$captcha_key=GenerateNewKey();
    	$_SESSION['captcha_key']=$captcha_key;
    }else{
    	$captcha_key=$_SESSION['captcha_key'];
    }
     
    $captcha=new CaptchaObject();
    $captcha->SetKey($captcha_key);
    $captcha->Output();
    Если объяснить словами, то текст который впоследствии пишется на картинке, заносится в сессию. При повторном запросе скрипта будет использован тот же самый текст из сессии, хотя при этом картинка генерируется немного по другому.

    То есть если подытожить, то уязвимы реализации, которые позволяют получить несколько вариантов капчи с одним и тем же текстом на ней.

    Как провести атаку?

    Как вы догадались для этого нам необходимо скачать несколько вариантов одной капчи. Обычно для этого достаточно обратится к скрипту генерации капчей с одним и тем же индетификатором сессии (зависит от ее реализации).

    [​IMG]

    Затем каждую из полученных картинок нам необходимо распознать (подробнее см Оперируем капчу на примере или Анализ алгоритмов генерации CAPTCHA). Так как все таки символы разных размеров, имеют наклоны, плюс не всегда получается успешно их разрезать, то естественно среди распознанных картинок будут ошибки. Поэтому мы получим приблизительно такие значения:

    Как видно практически ни одного правильного ответа. Подсчитываем количество каждой цифры и строим вот такую вот таблицу:

    [​IMG]

    А вот таблица наглядно демонстрирует то что правильные цифры будут доминировать среди остальных, и из этих цифр составляем итоговый ответ - 8118

    А как же обучать систему?

    Выше мы вроде разобрались как научится распознавать капчу с большой точностью, но точность можно повысить с помощью обучения системы новым маскам символов. Для этого берем маски тех символов которые неверно распознались и добавляем их в общий пул масок. Ну к примеру возьмем нераспознанные маски первых символов (эти маски были распознанны как цифры пять и шесть вместо восьми):
    [​IMG]
    Заметно что некоторые маски похожи между собой, это прийдется анализировать и похожие удалить, так как чем больше масок в пуле тем дольше будет идти распознание. В итоге останется всего две новых маски:
    [​IMG]
    Такую же операцию проводим и для остальных символов и также добавляем их в пул. И рано или поздно мы будем иметь маски всех вариантов каждой цифры, что повысит общий верный процент распознания.

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

    Итог

    Этот алгоритм помимо своих плюсов , имеет существенные минусы:

    Загрузка канала (необходимо скачивать несколько капчей вместо одной)
    Загрузка процессора (необходимо распознавать несколько капчей вместо одной)

    Хотя эти недостатки на мой взгляд легко компенсируются плюсами:

    Почти стопроцентная точность распознавания
    Возможность самообучения системы

    В общем использовать ли этот алгоритм или нет - решать вам :)


    Дата: 13.04.2012
    Автор: Intellect
    http://intsystem.org/615/intellect-recognition-captcha/
    http://intsystem.org/
     
    _________________________
  2. TohaK

    TohaK Banned

    Joined:
    16 Aug 2011
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    Видоизменение капчи не много где используется. Обычно новая генерируется.

    Не так давно идея ходила в неких кругах - создать единую базу достоверно расшифрованных капч, после использовать как образцы для софта.
     
  3. TR0J@N

    TR0J@N Elder - Старейшина

    Joined:
    30 Mar 2007
    Messages:
    105
    Likes Received:
    58
    Reputations:
    13
    Что то в этом есть. (полезно)
     
  4. Avriel

    Avriel New Member

    Joined:
    5 Feb 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    ЩАс уже нигде такого нет, хотя и мысть хорошая. Может если развить что-то и получится
     
  5. A.Hagen

    A.Hagen New Member

    Joined:
    10 Apr 2012
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Такие капчи есть в Webmoney например, да и вообще они не очень редко встречаются
     
  6. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Captcha Killer неплохо капчу распознает до сих пор (=
     
  7. shell_c0de

    shell_c0de Hack All World

    Joined:
    7 Jul 2009
    Messages:
    1,177
    Likes Received:
    617
    Reputations:
    690
    Авторы хрумера вроде 95% капч обошли не?
     
    _________________________
  8. A.Hagen

    A.Hagen New Member

    Joined:
    10 Apr 2012
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Тут фишка именно в обучаемости
     
  9. kishfuntick

    kishfuntick New Member

    Joined:
    26 Oct 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Подскажите, где или кто может написать софт под определенный вид каптчи?