Pull to refresh

Comments 73

Рисовать мышкой несколько фигур — это геморой для реального человека, а для робота это обойти и автоматизировать распознавание конечного набора простых фигур довольно просто. В итоге капча опять не выполняет своего назначения: затрахивает пользователей и не защищает от ботов.
Попытался нарисовать на тачпаде — я никогда такой тест не пройду (:
Я вообще не понимаю кто тачпад придумал — садист какой-то. Никогда не научусь им пользоваться без ложных срабатываний.
Как-то, 2 года назад у меня сломалась мышь. Сначала ругался на неудобный тачпад, но всё было лень купить новую, да и хотел хорошую беспроводную, а на неё денег было жалко.

В итоге через пару месяцев я привык, и вот уже 2 года юзаю исключительно тачпад, и не нужна мне никакая мышка, работаю быстрее чем с мышкой =)
хех. Когда я осваивался с тачпадом на свежекупленном ноуте — лучшей тренировкой было прохождение кримсонленда на харде. С тех пор проблем с тачпадом нет вообще)
мсье знает толк в извращениях
UFO just landed and posted this here
Для начала трекбол найти ещё надо :)
И это минус. Мне трекбол на моей старой Toshiba 8100 очень и очень нравился. Удобно.
Мне тоже, у меня был Compaq Armada 1120T с трекболом, это было офигенно.
Зато на таблетке это реализуемо )
На iPad2 пример не завелся — посещением меньше.
Зря вы к пикселям привязываете входы. Получается неинвариантность относительно масштаба, искривления, поворота.

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

Вариант: просите человека нарисовать «треугольник» или «круг». И распознавайте любой треугольник или круг. Например посчитав количество углов и подав их как один из входов. А еще лучше составить одномерный массив из точек в порядке рисования и провести БПФ например. Много про это написано, уж тут точно велосипед изобретать не надо.
Ну да, идея в этом и состоит, что «рассказать» пользователю, что ему надо нарисовать, не обязательно это изображения, которые, как тут упоминают, легко распознать. Например, в одном изображении наложение сразу нескольких фигур, а нарисовать пользователю предлагается только одну. По моему нарисовать простые 3 фигурки мышкой все же проще, чем разбирать/подбирать reCaptch'y.
Две странички. На одной ваша капча, на второй рекаптча. Поставьте простейший таймер на js. Потом попросиет людей разного возраста и разного уровня владения компом «разгадать» капчи на обеих страницах.
(для чистоты эксперимента ничего им не рассказывайте про свою капчу заранее)
Что то мне подсказывает что с reCaptcha они справятся наоборот быстрее
Ну так это из-за эффекта массовости, конечно любая каптча с полем для ввода уже прижилась и понятно что надо с ней делать. По моему дело привычки, нарисовать 3 фигуры можно за 5 секунд. Никто ж не просит пользователя нарисовать идеально ровный круг, поэтому я и решил применять нейросети для распознавания каракуль от пользователя.
Насчет масштаба согласен, на разных масштабах придется переобучать сеть, а так обучать же сеть надо не на идеальных кругах, а на реальных «рисульках», тогда как не нарисуй на выходе мы будем иметь или круг или квадрат или треугольник или ничто…
Логично.
Лучше писать нечто типа «Нарисуйте круг внутри овала».
А принимать картинку на вход — хорошая идея, впринципе. Вот только технологии еще не доросли — рисовать мышкой/тачпадом/трекболом жутко неудобно, а требовать от пользователя наличия сенсорного экрана или светового пера на данный момент просто нереально.
Вы всё перепутали. Каптча — это некая задачка, решение которой тривиально для человека, и соответственно нетривиально для компьютера.
Компьютеру не составит труда идеально скопировать изображение (при необходимости внести помехи), а вот для человека рисовать мышкой круги — не так уж и легко (по крайней мере сложнее чем ввести текст).
Хотя я недопонял идею сразу, так просто не скопируешь…
Но все равно, не вижу преимуществ перед текстовой каптчей.
А недостатки есть, например слабая поддержка мобильных девайсов. Или гемморой для людей, лишенных мыши (таким был одно время и я).
Цвет контура фигуры отличается от цвета помех. Слишком просто для автоматики
Ну как бы картинка нарисована в Paint'e просто для примера. Сама идея — это наверху просить пользователя вводить внизу фигуры, можно на изображении вставить текст + фигурку, вложить фигуры и стрелочкой показать какую нарисовать в общем на сколько хватит фантазии, лишь бы подключить абстрактное мышление человека!
Лучше заставлять не фигуры рисовать, а текстовые задачки из учебника математики 2-3-го класса дать :-)
Только вот генерировать их — увы! — задача, сложность которой сравнима со сложностью распознавания семантики и решения.
Поддержку roman_tik далеко не массовое решение, удобство очень спорное проблем с реализацией много.
По-моему тут исходную спам ботам будет легче исходную картинку распознавать нежели самому человек её вырисовывать
Вы действительно считаете, что такая капча не может быть автоматически взломана?
Конечно же нет. На этот счет я не питаю иллюзий. Всё, что сделано руками человека, им же может быть и сломано.
А вот криптования ответа от пользователя (в каптче) я точно ещё нигде не встречал. Обычно под взломом каптчи подразумевают распознать ответ, который надо отправить на сервер в открытом виде и каптча взломана.
А в такой каптче правильного ответа уже будет не достаточно для отправки на сервер…
Криптование ответа пользователя совершенно бесполезно, оно ничуть не усложняет задачу роботам.
По-моему Вы только усложнили задачу распознания ввода пользователя серверной стороной.
Боты будут делать более правильные фигуры, чтобы их (фигуры) надежнее принимались сервером.
А криворукие пользователи типа меня будут гневно материться.
Да, согласен, нагрузка на серверную часть несомненно вырастет.
Я ж в статье написал, что слишком правильные фигуры можно легко отсекать. Другое дело что умный бот, не будет слать правильную фигуру. Тут уже дело правильного обучения сети. Вот как закончу, посмотрю на результат, тогда можно делать выводы будет…
Мне кажется, такие капчи подбирать очень легко. В каждом поле может нарисовать 3 фигуры, за максимум 27 попыток подберет. Надо добавлять еще фигуры, но не заставлять же пользователя рисовать объемный прямоугольный параллелепипед.
UFO just landed and posted this here
… после того как нарисуете, нажмите кнопку «отправить». Ваши рисунки рассмотрят наши эксперты в течении шести месяцев и вынесут вердикт о правдоподобности ваших картинок.
Если ваш рисунок признают оригиналом, то вы богаты!
Мне кажется, только один человек сможет попасть на этот сайт. И тот умер :(
Тоже удалось его повторить:
Если зажать ЛКМ -> нарисовать -> вывести курсор за область рисования -> отпустить ЛКМ -> нажать очистить, то после заведения курсора на поле рисования будет проявляться старый рисунок.
Если браузер может отправить, то и бот сможет отправить на сервер разгаданную капчу, тем более, что алгоритм налицо.
Это такая капча наоборот получается: я чё-нибудь нарисую, а система пускай угадывает — что именно. Всегда об это мечтал!
<сарказм>
очень удобно
</сарказм>

Насколько я помю — кто-то выкладывал статью на тему, что тремерные капчи ничуть не сложнее двумерных в распознавании.
И какие же там буквы нарисованы? Я так и не понял…
Я выбрал пример наугад, трёхмерных капч много. Суть в том что распознать что-то в пространстве я считаю роботу не под силу.

В капче нарисованы буквы: VMBK
мы видим это как «в пространстве», а боту фиолетово на это пространство)) ну наклонены буквы посильнее чем обычно)
А в чем сложность? Применяем афинные преобразования, получаем проекцию сверху и распознаем. Кстати, параметры букв в пространстве не меняются, а хорошие нейронные сети инвариантны к пространственным преобразованиям.
Самый оригинальный вариант капчи, который я когда-либо видел:
image
Тут далеко не каждый человек разберет.
Не уподобляйтесь, пожалуйста, в погоне за оригинальностью.
На hidden-3d.com капчи не генерятся динамически, т.е. опеределённому набору картинок соответствует набор чисел в базе. Может оно и оригинально, но бесполезно: на час работы, чтоб собрать базу соответствий, чтоб потом по ссылке на картинку выдавать нужное число.
Возможно, реализация динамической генерации для этого варианта трудоемка, но не думаю, что невозможна. Я вообще не к тому говорил, что ее подобрать можно, а к тому, что вероятность правильного ввода подобной капчи человеком далека от 100%, мало кто на самом деле умеет такие картинки смотреть. Скриптом по словарю перебрать — это, кстати, интересная мысль.
Решительно ВСЁ, что можно сохранить в виде картинки или куска html, автоматизируется ботом отправкой индусам, разгадкой их операторами по 500 штук за 1 доллар и отправкой на сервер готового решения.

Автору настоятельно рекоммендую нечто динамическое, например, вести мышкой за летающей по канвасу мухой. Хотя и это можно автоматизировать.
Выходит надежной капчи не существует)… остается капча только ввиде какого нибудь реального задания, что-то вроде «Сфотографируйтесь рядом со своим котом лежа спине в позе лотоса, и пришлите нам в специальную форму, с числом в углу, которое вы указали при регистрации, наши эксперты рассмотрят ваше изображение и вынесут вердикт о том что вы реальный человек а не Бендер робот»
так это же восстановление аккаунта в контакте!
Мне известно два метода взлома нормальной каптчи захват изображения/звука/флеша с последующей передачей:
— сложному алгоритму, пытающемуся её разгадать;
— индусам для разгадки.

Идея с рисованием по канвасу уже очень неплоха, хотя всё ещё подвержена обоим способам. Интерактивное воздействие (как в моём примере с мухой), наверняка, подвержено первому способу, но уже не второму.
Если не будет грызть совесть, что индусы остались без крошки хлеба, можно попробовать пойти в эту сторону.

Уже обсуждалась на хабре, проста для компьютера и сложна для некоторых людей, которые не могу смотреть стереокартинки. Какие либо шумы тут придумать сложно, остается идея использования третьего фона, который видят процентов 10 всех людей, (сам лично видел только на одной кратинке, очень сложно всматривался минут 15), т.е. погружение в стрееокартинку, из той которую вы уже видели… выходит эффект картинки в картинки, но тоже не вариант из — за сложности.
«Хотя конечно на сервере можно исключить из результатов вероятности выше 0,95 (вряд ли пользователи рисуют как Пикассо и правильно нарисовать мышью может только бот)»
Допустим бот распознает эти самые 0.95, тогда что мешает ему же добавить небольшие шумы/искажения? Теперь уже не только сервер защищается от ботов, но и бот от хитрожопства сервера.

«но всё же для надежности, я думаю, надо криптовать матрицу функцией с ключем, которую будет выдавать сервер (и не обязательно одной и той же), естественно в не читаемом и упакованном виде.
Теперь, если даже бот распознает правильно картинку — отправить на сервер правильную бинарную матрицу не сможет!»
Да что вы говорите =) Если криптует клиент, значит ничто не мешает поковыряться в коде и выяснить алгоритм, а далее прогнать распознанную картинку(матрицу) этим алгоритмом, или (если всегда алгоритмы разные), сделать что-то на основе WebBrowser(или любую другую вариацию исполнения JS кода).

В итоге опять получаем ещё более уязвимую капчу, т.к. если очень сильно искажать фигуры и много шума- пользователь их не нарисует(или нарисует так же криво, как и видит), и соответственно не пройдет тест, а если при сравнении результата пользователя и исходной картинки выставить очень мелкие коэффициенты сходства — тогда ботам будет проще распознавать(достаточно будет выбрать допустим все черные пиксели, а остальные — убрать).
Что мешает вместо распознавание каптчи «в лоб» нейронными сетями (боту) сделать модель вносимых шумов (можно даже нейронную), убить их и отправить исходную картинку? Каждое из действий не особо сложно.
И еще. Ваше решение совершенно не масштабируется. Если Вы увеличите количество примитивов на картинке — особого эффекта это не принесет, потому что чтобы распознавать ответ на сервере, картинка должна легко резаться на отдельные примитивы, в противном случае (примитивы пересекаются, показываются частично и т.п.) сеть должна иметь гораздо более сложную структуру и обучаться на других примерах, что не оправдано для поставленной задачи.
P.S. 10 минут на обучение нейронной сети… Я могу о таком только мечтать
Я совсем не знаток капч и их уязвимостей, но разве обычная капча в виде текстовых вопросов (составленных непосредственно разработчиком/администратором сайта) обходится ботами? И если обходится, то как? P.S. на гугле не забанен, но всё равно откопать ответ не вышло.
Зависит от каптчи. Стандартные типа «введите слово на картинке» ломаются обычно нейронными сетями или с помощью специальной мат. модели (шумоустойчивыми распознавателями текста и т.п.). Общих методов мне не известно, ибо задача требует воспроизведения интеллектуальных усилий.
Нет, я имел ввиду немного другое. Например на одном из моих форумов (музыкальной тематики), капча ввиде вопросов: «Назовите одну из самых популярных шведских групп».
Эти тоже обходятся, есть весьма продвинутые методы анализа текстов, включающие выделение отношений между членами предложения. Так что взломать возможно. Но я не встречал в инете ресурсов, защищенных капчой, содержание которых оправдывало бы применение столь сложных методов анализа. Тем более, что всегда есть обходные пути получить их содержание
Идиотизм, честное слово.
Мне одному кажется, что аутентификация пользователя (или подтверждение важного действия) оптимально должна производится по отпечатку пальца?
Капча может использоваться только как часть процесса аутентификации.
> аутентификация пользователя (или подтверждение важного действия) оптимально должна производится по отпечатку пальца
На интернет-сервисах? А почему не по сетчатке глаза? И основную задачу каптчи — проверку, что пользователь есть Homo sapiens — это не решает
Всем спасибо за комментарии, написал вторую часть статьи — исправленную. К сожалению не хватает кармы опубликовать (4/5).
Увидел на одном блоге интересную капчу. Ребята сказали их разработка и скоро выложат в паблик бесплатно.
Вот пример.
jacksoft.biz/wp-login.php
а тут они ее будт выкладывать (сайт в разработке).
icecaptcha.com/
Взял у них плагин к вордпресу — на днях поставлю себе.
Сходу отвечаю, как обходится первая капча.
1. Выделяем контуры изображения, например фильтром Собеля. Бинаризуем.
2. С помощью алгоритма Хафа находим окружность.
3. Имитируем клик в районе центра окружности.

По второй примера не нашёл, зато забавно видеть спам на форуме этой «крутой» капчи :)
Sign up to leave a comment.

Articles