Комментарии 102
При соответствующем бюджете можно вообще все что угодно взломать, не только капчу
Работа проделана качественная, профессиональная и значительная. Жаль, что всё это ради вреда. А ведь много полезных применений — ЭКГ расшифромывать, томограммы, ставить диагнозы… «Эту бы энергию, да в мирных целях...» (с) Не жалко своего времени и сил на негодные дела?
Это всего лишь готовые задачки. На основе этих алгоритмов можно комп и машины научить водить и найти телефон Сары Коннор в справочнике.
Это вполне конкретная задача. И мы все понимаем как это будет использоваться. А кто хочет машины учить водить — тот учит машины.
И мы все понимаем как это будет использоваться.

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

Публикацией статей обычно грешат люди «с другой стороны баррикад» — те, кто делают замки. Им же тоже нужно оценивать качество своей работы. Ну и деньжат на улучшение «замков», если получится, срубить…
НЛО прилетело и опубликовало эту надпись здесь
А кто хочет машины учить водить — тот учит машины.

А ещё лучше - совмещать
image
Если честно, то не вижу трагедии. Разве распознавание капчи это чудесная задачка чтобы отточить свои навыки работы с CNN (легко генерировать выборку любого размера и любой сложности).
Всякая медицина же, требует определенного бэкграунда.
я участвовал в проекте автоматизированной расшифровки ЭКГ кучу лет назад(больше 10 точно).
и уже тогда их было достаточно.
Я понимаю что это вредная вещь, но не смог удержаться. Уж очень интересная задача. Хотя статья может быть и полезна: разработчики капч посмотрят эту статью и начнут думать в сторону улучшения своих капч или вообще отказа от них.
НЛО прилетело и опубликовало эту надпись здесь
Очень часто встречается капча из одной галочки «Я не робот». Полагаю, как-то анализируется пользовательское поведение на странице или история.
НЛО прилетело и опубликовало эту надпись здесь
Ставишь её- и давай разгадывать машины. Не все в гугле зарегистрированны.
Жаль, что всё это ради вреда. А ведь много полезных применений


Все не так однозначно,

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

во-вторых, бывают задачи когда требуется обходить капчи и парсить сайты для вполне легальных и моральных целей, когда я работал на фрилансе несколько раз обращались с задачами вида автоматизировать труд человека, который просматривал сайты бесплатных объявлений для поиска определенных важных заказчику объявлений (он бы их в любом случае просматривал, только скрипт экономил ему полчаса-час рабочего времени ежедневно), либо с когда посреднику нужно было получать каталог и цены от оптовика, оптовик был в принципе не против (посредник же продавал его товары), но не готов был оплачивать разработку api или доработку своего сайта.

Это всего лишь инструмент, его можно по-разному использовать, так же как всякое ПО для хакерских проникновений.
Вы абсолютно не правы. Если существует знание о взломе любой защиты, то чем раньше это знание будет опубликовано, тем лучше. Это поможет разработать средства защиты. Иначе защищающимся будет сложнее подготовиться к атакам.
Интересная работа) Сам сейчас начинаю работать с нейросетями, но успехов пока мало)
Не просто капчи, а уже а вторая рекапча, программеры Хрумера далеко продвинулсь в этом.
Ненавижу рекапчу, чувствую себя как на личном досмотре в аэропорту, и плевать я хотел на вашу борьбу со ботами, это не мои проблемы.
поддерживаю. Новая версия с картинками еще и часто нелогична для человека. К примеру, спрашивают все картинки, где есть автомобиль. Показывают картинку, где в левом верхнем краю картинки виднеется маленький кусочек колеса (где-то четверть). Что делать?
Или фото всех магазинов, и виден дом с большими фасадными окнами, а место, где вывеска может быть (или не быть), заслонено деревом и хз, это магазин, или жилой дом.
Разве вы еще не поняли, что в рекапче главное — не столько правильно угадать, сколько продемонстрировать типичное для человека поведение(траектория мышки, раздумья над сложным случаем и быстрые отметки в простом и т.п.)?
+сто. Давно уже пора понять и принять что человек и компьютер усиленно стремятся к точке неотличимости друг от друга. Пора отказаться от капчастылей и перейти на систему оценки контента по личному доверию.
Компьютер ни куда не стремится, люди которые делают ботов стремятся к неотличимости ботов от людей.
Со всеми включенными куками, залогиненый в сервисах гугла я просто ставлю галочку и мне не предлагает даже её проходить.
И пусть, чем это мне мешает? Слишком хорошая выдача поиска будет? Реклама которая будет пробиваться сквозь блокировщики будет адекватной? Я не вижу минусов от того, что какой-то ИИ следит за мной.
Вам не мешает, а вот мне мешает.
Выдача будет не хорошей, а персонализированной, то есть легко попасть в информационный пузырь. Адекватная реклама может ударить в мои уязвимые точки и заставить купить вещь, которая мне в действительности не нужна, в отличие от ванг и средств от грибка, которые фильтруются и без блокировщиков. И т.д.
Ваш выбор конечно, но дискриминация любителе анонимности не есть хорошо, по крайней мере с моей точки зрения.
НЛО прилетело и опубликовало эту надпись здесь

С паспортами наверное ещё хуже. В году 2015-м попадались публикация о взломе аккаунтов playstation.Суть сводилась к тому, что взломщик, вроде ситуация была в Бельгии, звонил в службу техподлержки и легко выдавал себя за настоящего пользователя, ему сбрасывали пароль и он вводил аккаунт. Немного позже я поговорил с сотрудником российской техподлержки Сони, с его слов когда они просят прислать скан или фото страницы паспорта с фото, это просто психологический трюк, чтобы вспугнуть потенциального злоумышленника. В реальности если им пришлют фотошоп или сгенерированный скан паспорта — они не поймут что это фальшивка т.к. главное чтобы совпали ФИО пользователя.

В Германии широко применяется. Можно завести счет в банке, и верифицировать паспорт удаленно. Есть сервис верификации от Deutsche Post, некоторые банки используют собственное решение.

Реализовано это как приложение для телефона с видеочатом; оператор достаточно заморочен и просит показать паспорт в разных ракурсах и двигать им чтобы проступили защитные элементы, которые видны под определенным углом.
Не думаю что у них «просьба прислать скан» работает только как «психологический трюк». В нашей организации такая проблема тоже стоит и мы тоже просим прислать «сканы». Не знаю как в российском законодательстве, а здесь (франция) за изготовление использование фальшивого документа можно получить до 3-5 лет тюрьмы или до 45 000 € / 75 000 € штрафа (в зависимости от типа документа и контекста).

Можете себе гуглом перевести: www.service-public.fr/particuliers/vosdroits/F31612
Да. По сути преступлением считается использование «личности» другого человека. Фальшивый документ, его «скан» или ксерокопия лишь разные проявления этого преступления.
Юридический аспект — это другая сторона. И в случае завладения аккаунтом, это не самое большое и не основное преступление. Фактически скан паспорта — это единственное, что стоит на пути злоумышленника. Остальное просто, и после скана, техподдержка уже ничего не проверяет. Пользуясь случаем предупреждаю владельцев аккаунтов PS — не привязывайте к аккаунту настоящие банковские карты, и тем более зарплатные, где есть деньги. Списываются они в один момент, вернуть обратно (почти) невозможно по пользовательскому соглашению после покупки и загрузки игры в угнанном аккаунте. Списываются они и официально по не знанию или не внимательному прочтению каких-то соглашений и условий подписок, акций. Вот эти деньги точно вернуть нельзя.
К слову юристы у Sony самые злые — у них так четко описаны условия использования, покупок, что пользователь везде им должен. И в случае спора у Сони есть куда ткнуть чтобы показать с чем пользователь соглашался.
«Введите любое 11-значное простое число, чтобы продолжить...». (с)
Введите любое шестнадцат… Ошибка. Вы слишком долго читали текст и не вводили ответ. Скорее всего вы не робот и вам запрещен вход на этот ресурс.
НЛО прилетело и опубликовало эту надпись здесь
Ну дык это почти во всех почти странах так… если все делать как в законе написано. И всегда было так. Просто в Германии несколько более аккуратно закон соблюдают…

Причём тут CAPTCHA и Gmail???
НЛО прилетело и опубликовало эту надпись здесь
Возможно. Законы требовали обязательного предьявления ID всегда, а после череды терактов за этим стали более тщательно следить. Думаю в России тоже про них скоро вспомнят…
Не так давно покупал prepaid sim на заправке в Германии, для регистрации было достаточно ввести свое имя и адрес на сайте. Потом ее, конечно, заблокировали, но обещали разблокировать, если я таки пришлю им свой настоящий адрес.
Что-то у нейронной сети результаты не намного лучше, чем у аналитических алгоритмов…

Ну а если поделу — на данный момент ни одна нейронная сеть, ни аналитика не может разгадать капчи с пересечением букв (пример, на первом изображении статьи «низо» и «кожа»).
Учитывая это, я слабо понимаю смысл создавать нейронные сети, если аналитические алгоритмы дают примерно такие же результаты (?)
на данный момент ни одна нейронная сеть, ни аналитика не может разгадать капчи с пересечением букв

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

Учитывая это, я слабо понимаю смысл создавать нейронные сети, если аналитические алгоритмы дают примерно такие же результаты (?)

Сети иногда проще натренировать, чем написать алгоритм для любой капчи
на данный момент ни одна нейронная сеть, ни аналитика не может разгадать капчи с пересечением
я и сам не всегда могу их разгадать
Может может. Для полносверточной сети не обязательно чтобы символы были разделены, она ищет в каждом месте картинке каждый символ.
Ну пока что выглядит все равно полуавтоматически, то есть просто отточенный алгоритм с базой, вот когда будет уровня суем любую каптчу и она без обучения решает как человек, тогда уже можно будет волноваться.
Уже пора волноваться. В статье описана идея как можно автоматизировать разметку (Что еще можно было бы улучшить). Хотя hotmail выбрал интересную тактику: меняют капчу каждые 2 недели. Это сильное усложнение — нужно все время обучать сеть заново.
Суть в том что ей все равно нужна еще тренировка, то есть есть нужна база в которой уже будет прорешенно 1к каптчей, человек же вообще любую каптчу может решить с первого раза даже которую вчера придумали на другом конце света.
человек же вообще любую каптчу может решить с первого раза даже которую вчера придумали на другом конце света

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

Решайте. Или вы не человек? Её придумали весьма давно если что.
Капча

Классификация картинок это классическая задача в которой соревнуются авторы работ по нейросетям. Называется ImageNet. Есть подозрение, что Гугл берёт картинки прямо оттуда. Вроде как сейчас наилучший результат это 73%, но исследования в этой области ведутся так быстро, что возможно уже через неделю этот результат будет устаревшим.

Это результат не классификации, а детектирования объектов и это не совсем «проценты». В классификации на том же конкурсе результат топ-5 97+% и топ-1 81+%
Бот для «рукапчи» даже с гугловской справляется с определенным успехом.

Уважаемый автор. Как вы оцениваете устойчивость данного вида капчи?


  1. Сейчас, когда процент 'похожести' рисунка пользователя определяется с помощью НН?
  2. Что если попытки взлома с помощью НН будут использоватся для обучения НН которая отсеивает взломы?
Я не автор, но мне кажется тут боты лучше справятся, чем люди.
image
Я бы сказал она устойчива против людей :)
Была забракована 1/3 моих попыток. При этом регулярно говорила «ок» на недорисованное изображение
Возможно такую капчу можно взломать генеративными сетями (GAN). arxiv.org/pdf/1406.2661.pdf такая сеть может генерировать картинки. Может и векторную графику тоже сможет адекватную сгенерировать
А кружок с галкой не принимает уже с десяток попыток даже достаточно удачных забраковала…
Очень интересно что будет при таком прогрессе через годик-два. Очень надеюсь что каптчам найдут замену, а то местами они уже конкретно подбешивать начинают и превращаются в защиту от людей а не роботов.
В итоге везде будут гуглокапчи, которые вводить ещё дольше и сложнее, чем буквы.
Не хватает списка литературы. Про карту центров сами придумали или есть исследования? Вроде бы на Coursera, Andrew Ng приводил пример с капчей, где алгоритм последовательно обрабатывал часть картинки (квадратное окно, движущееся слева направо) без разделения на символы, результаты с выхода классификатора объединялись какой-то эвристикой. Не пробовали что-нибудь подобное?
А зачем окно? В сверточной сети ядра сверток уже и так бегают по картинкам. Делаем полносверточную сеть и все. Карту центров сам придумал. Но может быть изобрел велосипед. Позже видел в статьях то же самое делали (статья была про поиск ключевых точек тела: локти колени и т п). Окно изначально не пробывал т к в этой задаче важна еще и скорость. Показалось что окно будет слишком медленным
>Вероятно, уже настало время отказываться от текстовых капч.
Не совсем, на мой взгляд. Сейчас уже есть решения, позволяющие автоматизированно решать ту же ReCaptcha от гугла и у гугла особо нет инструментов для борьбы с этими решениями и единственное что они сейчас делают — это лимитируют количество вводов с одного IP и блокируют подозрительные IP-адреса (плюс проводят большую работу по выявлению бот\не бот на основе кук)

Что же касается текстовой капчи, так в ней ещё большой запас для адекватного усложнения для нейросети с сохранением «человечности» при которой у человека не возникнет проблем с её распознанием.

К примеру вот образцы капчи с формы авторизации сервиса антикапчи rucaptcha.com:
image

image

image
Думаю полносверточная сеть здесь сможет достичь около 30 %. Да есть еще методы борьбы: постоянно менять капчу, блокировать по IP, анализировать активность зарегестрирванного почтового ящика (кстати это все опять же можно делать машинным обучением). Кстати спамеры арендуют много IP чтобы регестировать аккаунты.
Спасибо за статью!

1. Интересно было бы увидеть процент распознавания или error rate для всех сетов для каждой из протестированных архитектур.
2. Результат с тренировкой на сгенерированых одним алгоритмом капчами предсказуем т.к. распределение тренировочного датасета отличается от тестировочного.
3. Почему Вы изначально решили работать с полносверточной сетью без FC слоёв?
4. Касательно неконтрастных изображений — думаю увеличение размеров фильтров помогло бы.
5. Интересно было бы почитать о сравнении результатов, если решите попробовать capsnet для той же задачи.
1. Я почти все результаты выложил. Есть еще некоторый капчи hotmail другого типа но там тоже примерно 40% — 50%. Дело в том что критерием распознанной капчи я считал точность не ниже 50%. Если точность была ниже то я делал сеть больше и датасет больше и точность достигала 50%
2. Это не было очевидно. На глаз генерированая капча и реальная капча ничем не отличается.
3. Для скорости + полносверточная сеть не требует сегментации букв.
4. Может быть, я не проверял.
5. Капчи уже надоели. Сейчас занимаюсь поиском людей на изображении.

Решая рекапчу мы помогаем нейросетям тренироваться. Если будут сливы бд рекапчи то мороженки и машины тоже будут искажать. Как вариант появиться капча вроде Саймон говорит — три раза потянуть точку в левый нижний угол квадрата и тому подобное, и все это капчевым шрифтом.

Вспомнил кейс, где эта разработка была бы направлена исключительно в мирное русло. У страховой компании «Согласие» при покупке полиса ОСАГО онлайн на нескольких этапах оформления есть ввод капчи, причем по отзывам на форумах, последняя капча для «нежелательных» клиентов уже непосредственно перед оплатой специально сделана нерешаемой путем использования вперемешку русских/латинских букв одинакового начертания. То есть формально тебе в заключении договора не отказывают, но ты тупо не можешь ввести капчу, чтобы заплатить за полис :) Их техподдержка предлагает пробовать другой браузер, почистить кэш, и т.д., пока ты не сдашься и не отстанешь от них. Было бы интересно узнать, можно ли победить такую капчу — там количество попыток ввода неограниченно.
А где гарантии, что сервер не возвращает «неверно» на любой вариант ответа?
Ну Вы уже совсем потеряли веру в человечество :) Хотя такой вариант тоже вполне возможен…
Я думаю капчи надо делать на основе «специфики» зрения человека, например использовать оптические иллюзии. Так же, в борьбе с такими вот нейронными сетями хорошо должно помочь примешивание к изображению частей символов, в качестве шума. Сеть не отличит часть символа от символа, у которого «повреждена» часть (но присутствует), так как сеть не ищет «недостающее» для распознания символа. Например, берём букву В и стираем часть вертикальной палки — человек увидит что символ неполный и проигнорирует, а сеть даст ложное распознание буквы В.
Если левую палку у B стереть то получится 3 тут и человек может спутать. Нейронная сеть и человек видят по разному. Генеративные сети показали что сеть плохо справляется с подсчетом особенностей (она может сгенерировать изображение собаки с 6тю лапами). Значит нужно слеплять символы так чтобы было трудно понять какие символы не посчитав некоторые палочки. Например последовательности из p и q причем некоторые p и q совмещены так что их кружочки совпадают. Тогда чтобы понять что за последовательность нужно посмотреть как палочки расположены, посчитать их. Тут надо специальный алгоритм генерирования капчи делать чтобы совмещать кружочки. Также нужен специальный шрифт в котором нет никаких завиточков дополнительных у p и q, иначе сеть может зацепится за завиточки и распознать. Но и такие неоднозначности кажутся решаемыми моделью CNN+LSTM
Стирать нужно так, чтобы не получалось другого символа, т.е. часть палки/дуги. Получится не символ, лишь похоже. Человек видит что часть символа отсутствует, программа этого нюанса не может увидеть, так как она определяет символ по проценту совпадения с оригиналом.
Если в обучающем датасете поставить символы с затертой палочкой то сеть обучится находить и такие символы
Если стирать скажем не более 20% длины символа, в случайном месте, то сколько вариантов «несимвола» получится? Не слишком ли большой алфавит распознавания выйдет для нейронной сети?
Там не нужно чтобы в датасете были все возможные способы затирания части символа т к сеть смотрит несколько признаков символа в разных местах если некоторые из них (не обязательно все) найдены то символ распознается.
Вот именно про это я и говорю. Программа не может отличить намеренный дефект от искажения. Человек может. Псевдосимвол распознается программой, а человек видит что это не символ, лишь его бОльшая часть.
Да ровно так же может оказаться, что такие намеренные дефекты будут слишком сложными для человека, но распознаваться программой. Проблема капчи в том, чтобы она не превратилась в дикий ребус, который для разгадывания требует кучу сил и времени, иначе ваши пользователи/клиенты просто уйдут.

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