Звуковая капча: Звуковая капча / Хабр

Содержание

Как обойти капчу, используя распознавание звука / Хабр

На просторах интернета до сих пор остаются актуальными капчи, которые в качестве опции предлагают прослушать текст с картинки, нажав на соответствующую кнопку. Если кому-то знакома картинка ниже и/или есть интерес как ее обойти, используя систему оффлайн распознавания звука, предлагается к прочтению.


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

Подготовка

«Забегаешь в офис к конкурентам, у которых голосовое управление на компах, кричишь «Судо эрэм минус эрэф хоум» и убегаешь.» Из комментов.

Итак, капча предлагает себя прослушать, нажав на соответствующую кнопку. Если сохранить полученный звуковой файл, то можно выяснить, что он представляет из себя короткий отрезок аудио в .mp3. При этом, как выяснилось, капчи предлагаются с озвучкой женским голосом или мужским. «Рисунок» одних и тех же звуков, произнесенных мужчиной и женщиной разный:

Озвучивают они как буквы (причем русские), так и цифры.

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

Пока эти знания не сильно помогают. Как это все затолкать в пакет Сфинкса?

Установка Pocketsphinx, русской звуковой модели

*На Хабре есть статья, где звук скармливают онлайн google переводчику через перенаправление вывода звука. И на этом можно было закончить данный пост, если бы все это работало для данного случая.

Установка самого Pocketsphinx на windows (да и на linux) не сильно замысловата — скачать, установить.

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

Скачаем русский вариант — ссылка.

После распаковки русской модели в структуре файлов можно попробовать тестовый .wav файл decoder-text.wav cо следующим кодом на python:

import os
from pocketsphinx import AudioFile, get_model_path, get_data_path
#from pocketsphinx import Pocketsphinx

model_path = get_model_path()
data_path = get_data_path()

config = {
    'verbose': False,
    'audio_file': os.path.join(data_path, 'C://python3//decoder-test.wav'),
    'buffer_size': 2048,
    'no_search': False,
    'full_utt': False,
    'hmm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//zero_ru.cd_cont_4000'),
    'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
    'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')    
    
}

audio = AudioFile(**config)
for phrase in audio:
    print(phrase)

Должно вывести в строку содержание аудиофайла: «илья ильф евгений петров золотой телёнок».
Если не вывело (как и в моей ситуации), то необходимо сконвертировать decoder-test.wav в другой аудиоформат.

Для этого понадобится ffmpeg.

Ffmpeg

После скачивания утилиты ffmpeg, положим decoder-test.wav в C:\python3\ffmpeg\bin.
Далее в командной строке конвертируем:

ffmpeg -i decoder-test.wav -ar 16000 decoder-test-.wav

Далее исправим в коде python ссылку на исходный аудиофайл:

'audio_file': os.path.join(data_path, 'C://python3//decoder-test-.wav'),

Теперь, после отработки кода:

Правда надо ждать как до второго пришествия, код очень медленно работает — около 20 сек.

Сконвертируем аудио капчи по тому же принципу из mp3 в wav и скормим аудио от капчи. Взглянем на работу кода:

Невесть какой, но результат есть. Было гораздо хуже, если если бы ничего не вывело. Как с женским голосом:

Посмотрим как улучшить результат и одновременно его ускорить.

Словарь

Понадобится собственный словарь. В данном случае он будет состоять из всех букв русского алфавита (кроме ь, ы, ъ) и цифр.

Все символы надо поместить в обычный текстовый файл по одному в каждой строке в кодировке UTF-8.

Теперь надо сконвертировать словарь.

Понадобится установка perl (он нужен для работы конвертатора).

Далее скачаем проект для конвертации ru4sphinx.

И конвертируем ранее созданный словарь:

 C:\ru4sphinx-master\ru4sphinx-master\text2dict> perl dict2transcript.pl my_dictionary.txt my_dictionary_out.txt.

На выходе получаем словарь для работы:

Расширение словаря надо переименовать из .txt в формат .dic, а сам файл положить в доступное место.

В коде python укажем расположение словаря, закомментировав старый словарь:

#'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')
    'dict': os.path.join(model_path, 'C://python3//my_dict.dic')

Прогоним через программу и посмотрим результат:

Лучше, но так же медленно и не все буквы правильно определились.

Создадим собственную модель

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

Пойдем коротким путем из инструкции.

Зайдем по ссылке и загрузим на сайт наш словарь, ранее созданный в формате .txt (не .dic!):

Нажмем «Compile…». На выходе можно скачать полученный пакет в архиве .tgz (он содержит все необходимые файлы):

Далее из архива возьмем файл с расширением .lm (наша модель).

Поправим python скрипт распознавания, заменив модель на вновь изготовленную:

#'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
'lm': os.path.join(model_path, 'C://python3//my_model//1896.lm'),

Пробуем:

Работает заметно быстрее — менее секунды, кроме того, все буквы определены.

Но тут необходима небольшая ремарка.

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

Например, вместо буквы а, выводит э. Необходимо взять строку из словаря э:
э r y

и перенести(удалив старую) ее, поменяв букву:
а r y

Но так как буква «а» уже есть в словаре, то к букве надо добавить «(2)» (или 3,4), вообщем, порядковый номер, в зависимости сколько звуков уже есть в словаре:
a(2) r y

Заново конвертировать словарь не нужно. Таким нехитрым способом можно «подобрать» фонемы всех букв, почти.

Cherchez la femme

Модель и словарь работают, но не с женским голосом. Если озвучка капчи женская, то на выходе не получаем ничего. Это и хорошо и плохо одновременно. Сначала о хорошем.

Если при запуске программы ничего не распознало — значит мы имеем дело с женским голосом, так можно фильтровать «женские» капчи.

Но что с ними делать?

Здесь надо поработать с конвертацией.

Например, с «мужской» капчей частота была 16000, а для женской «подойдет» 24000:

ffmpeg -i acap(3).mp3 -ar 24000 acap(3)2.wav

Все звуки определились (в каждой строке по звуку), но их соответствие хромает.

Лучше создать отдельный словарь под женскую модель и далее ее править.

Однако, это для самостоятельного изучения.

Полезные ссылки:

1. home-smart-home.ru/raspberry-pi-pocketsphinx-offlajn-raspoznavanie-rechi-i-upravlenie-golosom

2.https://itnan.ru/post.php?c=1&p=351376

3. ru.wikipedia.org/wiki/Cherchez_la_femme

Файлы:

1. Программа.

2. Модель.

3. Русская модель.

4. Словарь.

5.Тестовые капчи.

6. ffmpeg.

7. Пачка капч.

Взлом звуковой CAPTCHA на примере сайта Digg.com / Хабр

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

Сайт Digg.com предоставляет довольно мощный API, который позволяет выполнять многие вещи: комментировать, голосовать за новость, поиск и т.д… Но он не позволяет главного — публиковать свою новость. В принципе нас ни что не ограничивает написать скрипт для автоматического добавления новостей со своего источника. Единственно препятствие — это Captсha, ей мы и займемся.

  • Наклоненные буквы, на разной высоте.
  • Перечеркнутый задний фон.
  • По экспериментам Captha не чувствительна к регистру букв.
  • Буквы английского алфавита a-z, кроме o,i,z.
  • Цифры 2,3,4,6,8

И тут мы остановимся… На хабре уже пробегали способы распознавания символов на картинках с помошью python, OCR и нейронных сетей. Наиболее полно эта тема освещена в статье уважаемого Indalo. Но такой способ не давал 100% вероятности распознавания и относительно сложен в реализации. Зная, что всегда ещё способ решить задачу проще, я случайно увидел интересную фразу: «Can’t read the text? Listen it».

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

При заполенении форм сайт отдает нам такого вида картинку (Внимание требует cookies!):
http://digg.com/captcha/2c7ea3845d5ddfc5a7461c5429b6a7e5.jpg

Звуковой файл будет выглядеть так (Внимание требует cookies!):
http://digg.com/captcha/2c7ea3845d5ddfc5a7461c5429b6a7e5.mp3

После проведенных экспериментов удалось выяснить, что фрагмент каждой буквы равен ~2000 байт. На заднем плане присутствуют шумы, но они не сгенирированны случайным образом, и одна и та же буква на разных каптчах абсолютна идентична. Поэтому наши mp3 файлы следует рассматривать как простой массив символов для поиска таких фрагментов.

Далее приведен процесс распознавания. В этой работе я использовал python, но ничто не мешает перенести проект на другие языки.

  1. Вручную создаем базу с готовыми капчами (примерно 100 штук).
  2. Для каждого символа пару звуковых капч, в которых он встречается только один раз, и все остальные символы уникальны, т.е. в разных каптчах не повторяется. Например для цифры — 2, берем такие: AS2DE, 2ZTKJ.
  3. В выбранных каптчах, обычным перебором ищем одинаковую максимально совпадающую последовательность. На выходе получим примерно 2000 символов.
  4. Контролируем, чтобы нам не попался фрагмент ‘паузы’.
  5. Добавляем полученный результат в базу.

Пример простого перебора для двух каптч:

  1. def compare(letter, filename1, filename2):
  2.  
  3.     tfile1 = filename1 + ‘.mp3’
  4.     tfile2 = filename2 + ‘.mp3’
  5.  
  6.     f = open(tfile1, «r»)
  7.     test1 = f.read()
  8.  
  9.     f2 = open(tfile2, «r»)
  10.     test2 = f2.read()      
  11.  
  12.     cnt = i = j =-1
  13.     k = 3000
  14.  
  15.     for item in test1[:-k]:            
  16.         i = i + 1
  17.         j = i + k
  18.  
  19.         cnt = test2.find(test1[i:j])
  20.  
  21.         if cnt > 0:
  22.             res = test2[cnt:cnt+k]
  23.             f3 = open(‘sources/’+letter, ‘w’)
  24.             f3.write(res)
  25.     return
  26. return

На этом все, результат распознавания 100%. Теперь когда робот отправляет нашу новость на digg.com, он на странице находит адрес картинки Captcha, заменяет на mp3, запрашивает озвучку используя cookies, находит искомых 6 символов, сравнивая с собственной базой данных, и отправляет результат. Все новости с вашего сайта будут публиковаться на digg.com за считанные секунды.

Если на вашем сайте есть звуковые каптчи, рекомендую отказаться от них, либо обезопасить следующими рекомендациями:

  • Использовать разных людей, с различными акцентами и интонациями.
  • Варьировать уровень звука, особенно на заднем плане.
  • Добавлять шумы, сгенерированные случайным образом.

Для взлома более защищенных звуковых Catcha, простой метод сравнения кусков mp3 файлов может не дать положительных результатов. В этом случае рекомендуется использовать специальные фильтры для обработки аудио дорожки и удаления шумов. После чего, как вариант, можно применить нейронные сети для анализа последовательностей. Конечно результат будет меньше 100%, но зато будет оставаться на уровне. Кроме того можно попробовать сервисы распознавания речи. Лучший который я встречал — это Google Voice, надо только отправить голосовую почту с нашей mp3 и через некоторое время получить транскрипцию (интересно было бы посмотреть на результаты).
Многие сайты в интернете настолько увлеклись усложнением своей защиты от ботов, что в результате только отдалились от реальных пользователей. И пытаясь наладить обратный контакт с ними, сами создают слабые места, которыми обязательно кто-нибудь воспользуется. Из особо крупных вебсайтов, подверженных такой уязвимости могу отметить GoDaddy.com, точно такая же аудио Captcha в их сервисе whois при проверке доменов.

Все скрипты выполнены с использованием языка Python и доступны тут.

Upd: Перенес в блог Информационная безопасность.

Как обойти капчу, используя звук

На просторах интернета до сих пор остаются актуальными капчи, которые в качестве опции предлагают прослушать текст с картинки, нажав на соответствующую кнопку. Если кому-то знакома картинка ниже и/или есть интерес как ее обойти, используя систему оффлайн распознавания звука, предлагается к прочтению.

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

Подготовка.

«Забегаешь в офис к конкурентам, у которых голосовое управление на компах, кричишь «Судо эрэм минус эрэф хоум» и убегаешь.» Из комментов.

Итак, капча предлагает себя прослушать, нажав на соответствующую кнопку. Если сохранить полученный звуковой файл, то можно выяснить, что он представляет из себя короткий отрезок аудио в .mp3. При этом, как выяснилось, капчи предлагаются с озвучкой женским голосом или мужским. «Рисунок» одних и тех же звуков, произнесенных мужчиной и женщиной разный:


Озвучивают они как буквы (причем русские), так и цифры.

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

Пока эти знания не сильно помогают. Как это все затолкать в пакет Сфинкса?

Установка Pocketsphinx, русской звуковой модели.

*На хабре есть статья, где звук скармливают онлайн google переводчику через перенаправление вывода звука. И на этом можно было закончить данный пост, если бы все это работало для данного случая.

Установка самого Pocketsphinx на windows (да и на linux) не сильно замысловата — скачать, установить.

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

Скачаем русский вариант — ссылка.

После распаковки русской модели в структуре файлов можно попробовать тестовый .wav файл decoder-text.wav cо следующим кодом на python:

import os
from pocketsphinx import AudioFile, get_model_path, get_data_path
#from pocketsphinx import Pocketsphinx

model_path = get_model_path()
data_path = get_data_path()

config = {
    'verbose': False,
    'audio_file': os.path.join(data_path, 'C://python3//decoder-test.wav'),
    'buffer_size': 2048,
    'no_search': False,
    'full_utt': False,
    'hmm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//zero_ru.cd_cont_4000'),
    'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
    'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')    
    
}

audio = AudioFile(**config)
for phrase in audio:
    print(phrase)

Должно вывести в строку содержание аудиофайла: «илья ильф евгений петров золотой телёнок».
Если не вывело (как и в моей ситуации), то необходимо сконвертировать decoder-test.wav в другой аудиоформат.
Для этого понадобится ffmpeg.

Ffmpeg

.
После скачивания утилиты ffmpeg, положим decoder-test.wav в C:\python3\ffmpeg\bin.
Далее в командной строке конвертируем:
ffmpeg -i decoder-test.wav -ar 16000 decoder-test-.wav

Далее исправим в коде python ссылку на исходный аудиофайл:

'audio_file': os.path.join(data_path, 'C://python3//decoder-test-.wav'),

Теперь, после отработки кода:

Правда надо ждать как до второго пришествия, код очень медленно работает — около 20 сек.

Сконвертируем аудио капчи по тому же принципу из mp3 в wav и скормим аудио от капчи. Взглянем на работу кода:

Невесть какой, но результат есть. Было гораздо хуже, если если бы ничего не вывело. Как с женским голосом:

Посмотрим как улучшить результат и одновременно его ускорить.

Словарь

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

Теперь надо сконвертировать словарь.

Понадобится установка perl (он нужен для работы конвертатора).

Далее скачаем проект для конвертации ru4sphinx.

И конвертируем ранее созданный словарь:
C:\ru4sphinx-master\ru4sphinx-master\text2dict> perl dict2transcript.pl my_dictionary.txt my_dictionary_out.txt.

На выходе получаем словарь для работы:

Расширение словаря надо переименовать из .txt в формат .dic, а сам файл положить в доступное место.

В коде python укажем расположение словаря, закомментировав старый словарь:

#'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')
    'dict': os.path.join(model_path, 'C://python3//my_dict.dic')

Прогоним через программу и посмотрим результат:


Лучше, но так же медленно и не все буквы правильно определились.

Создадим собственную модель

.
Это позволит в разы увеличить скорость работы и немного точность результата.
Пойдем коротким путем из инструкции.
Зайдем по ссылке и загрузим на сайт наш словарь, ранее созданный в формате .txt (не .dic!):

Нажмем «Compile…». На выходе можно скачать полученный пакет в архиве .tgz (он содержит все необходимые файлы):

Далее из архива возьмем файл с расширением .lm(наша модель).

Поправим python скрипт распознавания, заменив модель на вновь изготовленную:

#'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
'lm': os.path.join(model_path, 'C://python3//my_model//1896.lm'),

Пробуем:


Работает заметно быстрее — менее секунды, кроме того, все буквы определены.

Но тут необходима небольшая ремарка.

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

Например, вместо буквы а, выводит э. Необходимо взять строку из словаря э:
э r y

и перенести(удалив старую) ее, поменяв букву:
а r y

Но так как буква «а» уже есть в словаре, то к букве надо добавить «(2)» (или 3,4), вообщем, порядковый номер, в зависимости сколько звуков уже есть в словаре:
a(2) r y

Заново конвертировать словарь не нужно. Таким нехитрым способом можно «подобрать» фонемы всех букв, почти.

Cherchez la femme.

Модель и словарь работают, но не с женским голосом. Если озвучка капчи женская, то на выходе не получаем ничего. Это и хорошо и плохо одновременно. Сначала о хорошем.
Если при запуске программы ничего не распознало — значит мы имеем дело с женским голосом, так можно фильтровать «женские» капчи.

Но что с ними делать?

Здесь надо поработать с конвертацией.

Например, с «мужской» капчей частота была 16000, а для женской «подойдет» 24000:
ffmpeg -i acap(3).mp3 -ar 24000 acap(3)2.wav

Все звуки определились (в каждой строке по звуку), но их соответствие хромает.

Лучше создать отдельный словарь под женскую модель и далее ее править.

Однако, это для самостоятельного изучения.

Полезные ссылки:

1. home-smart-home.ru/raspberry-pi-pocketsphinx-offlajn-raspoznavanie-rechi-i-upravlenie-golosom

2.https://itnan.ru/post.php?c=1&p=351376

3. ru.wikipedia.org/wiki/Cherchez_la_femme

Файлы:

1. Программа.

2. Модель.

3. Русская модель.

4. Словарь.

5.Тестовые капчи.

6. ffmpeg.

7. Пачка капч.

убивая конверсию / Блог компании Variti / Хабр

Капча считается международным стандартом защиты от DDoS-атак, автоматических регистраций и спама. Мы в Variti проанализировали эффективность этого решения и пришли к заключению, что это очень неудобное и малоэффективное средство защиты от ботов, плохо влияющее на конверсию, а области с капчей — это сами по себе уязвимые места для атак.


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

Маркетинговые

Бесит!

Капчу необходимо внимательно разглядывать и периодически вводить несколько раз. Исследование Стэнфорда говорит о том, что их испытуемые в среднем тратили 9.8 секунд, чтобы распознать и ввести визуальную капчу и 28.4 секунды на аудио-версию, причем 50% пользователей отказались ее решать. В 2018 году Baymard Institute, который проводит различные исследования на тему UX, подсчитал, что пользователи не могут решать текстовые CAPTCHA примерно в 8% случаев. Эта цифра увеличивается до 29%, если CAPTCHA чувствительна к регистру.

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

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

Наконец, это очень неудобно для людей с нарушениями координации или проблемами со зрением, и даже для тех, кто не различает цвета, ведь далеко не все внедряющие визуальную капчу владельцы ресурсов добавляют к ней звуковую. Плюс к этому капча особенно раздражает “возрастную” аудиторию и ту, где есть большой процент людей с низким уровнем компьютерной грамотности или незнанием английского языка.

Плохо влияет на конверсию

Как известно, вообще любое лишнее поле для заполнения на сайте ухудшает конверсию. Вот интересное исследование, которое показало, что отказ от капчи приводит к росту конверсии на 3,2%. Точные данные по изменению конверсии в зависимости от капчи каждый ресурс может протестировать самостоятельно, ведь результаты зависят от специфики и аудитории. Но если подходить к проблеме с точки зрения упущенной выгоды, то необходимо посчитать затраты и эффективность в обоих случаях — намного ли выгоднее включать капчу, чем избавляться от спама другими средствами? Тем более, что они есть.

Капчи стали сложнее

За эти годы CAPTCHA стал умнее, но и боты стали развиваться стремительнее и становиться более изощренными. В начале 2000-х простых изображений с текстом было достаточно, чтобы остановить большинство спам-ботов, но с каждым годом тексты приходится всё сильнее искажать, чтобы обгонять программы по распознаванию символов. Вы сами можете заметить, что в капчах, где нужно выбрать несколько нужных изображений, после нескольких неудачных попыток объекты для поиска прячутся или искажаются, добавляются новые классы объектов и увеличивается количество страниц, которые нужно пройти. Соответственно, при усложнении увеличивается и количество отказов у реальных пользователей. Конечно, Google решает свои дополнительные задачи, используя эти алгоритмы для обучения своих роботов распознаванию объектов на изображениях и вряд ли от них откажется, но пока что все выглядит так, как будто все, что делает капча, это отсеивает не очень умных ботов и невнимательных людей.

Еще в далеком 2014-м Google стравила между собой свой лучший алгоритм по разгадыванию самых искажённых текстов и людей: компьютер правильно распознал текст в 99,8% случаев, а люди всего в 33%.

Технические

Капчу легко обойти

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

Системы распознавания и нейросети

Системы OCR (оптическое распознавание символов) сейчас работают довольно точно и легко распознают как печатный текст, так и изображения. Решение добавлять “шумовой” фон, лишний цвет и линии, искривлять или сдваивать текст не особенно помогает это предотвратить, зато усложняет прохождение для реального человека.

С развитием технологий машинного обучения и нейронных сетей глубокого обучения дальнейший процесс визуального усложнения капч выглядит бесперспективным. Полносверточная нейронная сеть, в которой на входе подается изображение, а на выходе выдается нужное изображение или несколько изображений (карты центров) распознает текстовые капчи в большинстве случаев. Однако для нее же решаема и капча с выбором нужных картинок ибо обнаружение и классификация объектов — ведь это именно то, чем и занимается нейросеть (в том числе та самая нейросеть reCAPCHA от Google). Да и некоторые библиотеки, позволяющие работать с нейронными сетями, тоже разработаны в Google (например, Tensorflow).

Существуют сервисы взлома, при которых берется и транскрибируется аудио-версия капчи. При успешном развитии систем распознавания голоса это тоже перестает быть проблемой для опытных спамеров. Есть алгоритмы и скрипты, такие, например, как алгоритм Кока-Янгера-Касами для распознавания двухмерной грамматики, который может распознать более 50% капч. Есть и другие способы обхода проверки:

  • Генераторы чисел и другие системы перебора. Например, если есть один и тот же набор из 10 картинок, которые просто переставляются случайным образом, и нужно на них найти что-то определенное, то есть всего лишь 1024 возможных вариаций
  • Восстановление символов по данным логов
  • “Подглядывание” в скрипты для вызова капч, к примеру, <img scr=”/captcha.php?code = 1234”/>
  • Повторное применение идентификаторов сессий пользователей
  • Наконец, спамеры подключают последние версии распознавалок типа FineReader к своим самообучаемым спам-ботам.

Бизнес по разгадыванию

Существует целый рынок услуг, предлагающих обойти капчу, и это очень дешево. В этой индустрии заняты тысячи реальных людей — жителей Индии или Китая, которые за небольшую плату проходят тесты. Специальные биржи типа Amazon Mechanical Turk предлагают купить десятки разгаданных капч за несколько центов, а многочисленные сервисы еще и постоянно сбивают эту цену. Они же постоянно тысячами создают новые “чистые” аккаунты, которые проходят проверку спам-систем на сайтах легче и быстрее всего.

Наконец, существуют онлайн-ресурсы с “интересным” содержанием типа игр или контентом для взрослых. Прежде чем пользователи смогут увидеть следующую порцию контента, система сделает бэкэнд запрос к Yahoo или Google, захватит оттуда капчу и подсунет её пользователю. И как только пользователь ответит на вопрос, хакер отправит разгаданную капчу на целевой сайт. Популярный сайт с востребованным контентом сделать несложно, если парсить (или попросту красть) интересный контент с целого ряда “легальных” порталов (мы в своей работе часто сталкиваемся с такими “копипастерами”). А хакер в итоге получает большую аудиторию, которая разгадывает чужие капчи, не подозревая об этом.

Не различает плохих и хороших ботов

Помимо плохих ботов, существуют и хорошие — это роботы поисковых систем и браузеров, полезные корпоративные боты разных сервисов, которые ищут или размещают информацию или предлагают пользователю помощь, автоматизируя работу техсаппорта компании или продажи ее услуг. Например, по данным GlobalDots, на текущий момент человеческий трафик составляет 62.1%, плохие боты 20.4%, а хорошие 17.5% (то есть отставание от плохих не такое уж и критичное). К сожалению, метод капчи не различает плохих и хороших ботов, не пропуская равно всех, хотя “хорошие” боты могли бы быть полезны.

Ресурс для атак

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

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

Впрочем, эта проблема решаема:

  1. Нужно выбрать определенный тип капчи, который этой проблемы лишен
  2. Расположить капчу на отдельном ресурсе

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

Замедляет работу сайта

Небольшое замедление может показаться не настолько важной проблемой, но вы будете не правы, если не будете обращать на это внимание. Посмотрите вот на это исследование: в то время как пятая часть маркетологов не считает, что время загрузки влияет на коэффициент конверсии, почти 70% людей признают, что скорость страницы влияет на вероятность покупки.

Как капча может влиять на скорость?

  • Генерация сложного изображения достаточно ресурсоемкая операция с учетом того, что не все показанные коды используются. Поэтому сервисы капчи и сопутствующие им логи и куки могут замедлять работу онлайн-ресурса.
  • Проверка кода и ключа осуществляется бэкендом, где могут возникнуть сложности с передачей больших файлов. Одноразовые ссылки также требуют проверки на уровне бэкенда, создавая лишнюю нагрузку. Капча может зацикливаться и замусоривать backend и тогда требуется создать механизм кеширования неиспользованных изображений для возможности их показа для других пользователей.
  • Кроме того, у многих капч-сервисов неудобный API как самого виджета капчи, так и сервера, и с этим разработчику тоже придется помучиться.

Это все?

Увы, нет. Есть еще несколько моментов.

Во-первых, капчи могут ломать логику работы сайта — особенно в случаях, когда заполнение формы заканчивается капчей, причем не всегда пользователь об этом предупрежден. Однако и вариант “показывать капчу только на входе” не решает задачу защиты от спамеров, ведь получается, что после одноразового прохождения они могут делать дальше все, что захотят.

Во-вторых, давайте подумаем о поисковых системах. Если поисковые системы “обеляются” по user-agent, то капча неэффективна. Если капча показывается всем — то может показаться и поисковикам, и сайт будет иметь проблемы с индексацией.

Не капчей единой

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

На сетевом уровне это могут быть обфускация или шифрование HTML, блокирование определённых user-agent и различные ловушки со стороны веб-сервера: например, создание невидимых разделов сайта, куда попадают только роботы и позже банятся по IP, или фильтрация анонимных прокси.

И, наконец, есть метод, который мы применяем в Variti — это полная фильтрация трафика, который мы считаем единственным полноценным подходом в защите от ботов и DDoS-атак. Мы пропускаем через свои кластеры весь трафик, который идет на сайт или приложение клиентов, а специально настроенные и самообучающиеся алгоритмы определяют и пропускают дальше легитимный трафик от живых пользователей и “хороших” ботов, причем блокировки IP в этом процессе также не требуется. Впрочем, о том, почему мы считаем еще и метод блокировки IP вредоносным, мы поговорим в следующих статьях.

Как обойти капчу при парсинге сайтов?

Первую капчу сделал Google, это был искаженный текст, который, тем не менее, читался людьми. Потом Google представил reCaptcha с использованием изображений, таких как светофоры, пожарные гидранты, пешеходные переходы, лестницы и дымоходы. ReCaptcha V1 исчерапала свой ресурс и была закрыта, зато в 2018 году заработали ReCaptcha V2 и V3. Сейчас различные типы ReCaptcha имеют свои специфические особенности:

  1. ReCaptcha V2 просит пользователя нажать на чекбокс.
  2. Невидимая форма ReCaptcha V2 начинает работать при подозрительной активности на веб-сайте. Владелец сайта получает предупреждение, а затем выбирает, как справиться с ситуацией.
  3. ReCaptcha V3 – это улучшенная непобедимая ReCaptcha. Она анализирует взаимодействие между пользователем и браузером, составляет отпечаток устройства, и отправляет его сайту.

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

Как работает ReCaptcha? Кроме разгадывания картинок, ReCaptcha добавляет файлы cookie и собирает “отпечатки” устройства – создает профиль клиента (fingerprinting).

Усовершенствованные профили позволяют анализировать движения мыши и аудиосигналы, полученные с устройства. Что тогда нужно сделать, чтобы обойти ReCaptcha? Использование реального IP-адреса от хорошего прокси-сервера – отличный первый шаг.

Обход ReCaptcha

Реальный IP идеально подходит для использования, если вы хотите обойти ReCaptcha. Живые IP-адреса могут быть либо меняющимися, либо статичными, постоянными. Меняющиеся IP-адреса принадлежат реальным пользователям, и они чередуются каждый раз, когда определенный IP-адрес больше не используется. Статический IP, с другой стороны, является постоянным и выдается провайдером для коммерческого использования. Статический IP-адрес похож на меняющийся только тем, что он используется одним клиентом, купившим его, и поэтому никогда не меняется. Если вы посещаете какие-то социальные сети и сайты продажи билетов, лучше использовать статический IP-адрес, поскольку сайт проверяет постоянство IP-адреса для учетной записи.

Многие сайты используют ReCaptcha на важных страницах – для регистрации или при публикации информации. Для них работает так называемый “водопад” – вы начинаете с отправки запросов с использованием IP-адресов центров обработки данных, а затем, сканируя нужные конфиденциальные страницы, меняете их на живые IP-адреса. Такой водопад может обеспечить высокий уровень успеха и сэкономить ваши средства. Примером этого процесса может быть отправка запросов через центр обработки данных. Если отправка запроса не удалась, он отправляется через внешнюю доверенную сеть. Если это так же не удается, запрос автоматически направляется через мобильную сеть.

Другой способ использования метода водопада – это маршрутизация запросов через разные географические точки. Это полезно при просмотре сайтов электронной коммерции со страницами продуктов и ReCaptcha. Изменение IP-адреса с одного места на другое может помочь преодолеть ReCaptcha.

Теперь мы обсудим процесс реализации правила изменения URL для переключения между сетями. Важно, чтобы каждому прокси-порту в LPM был назначен отдельный тип сети. Как только это будет сделано и порты будут готовы, вам нужно создать правило, которое будет срабатывать при запросе целевого URL-адреса, и переключать IP-адрес на внешний. В раскрывающемся списке действий выберите «повторить попытку с новым прокси-портом», и он начнет маршрутизацию водопада. В разделе повторных попыток с раскрывающимся списком выберите порт, который вы хотите использовать с новым адресом.

Некоторые простые сайты просто анализируют профиль браузера, его заголовок, и запускают невидимую ReCaptcha. Чтобы предотвратить и обойти это, отправляйте настоящий заголовок браузера и меняйте его для каждого запроса. Вы можете установить значения заголовков браузера на вкладке заголовков в настройках каждого прокси-порта. Если хотите, можете вручную добавить параметры заголовков, включая cookie, accept-language и т.п., введя имя и значение в соответствии с требованиями целевого сайта.

Если вы работаете с API-интерфейсом прокси-менеджера, вы можете установить требуемые заголовки, создав новый прокси-сервер, отправив запрос POST или обновив порт прокси-сервера с помощью запроса PUT при отправке JSON файла конфигурации для порта. В файле конфигурации есть соответствующий массив заголовков с именами и значениями полей заголовка. Например, для определенного сайта вы добавите «cookie» в поле имени, а в поле «значение» – строку для самого куки. При этом вы можете включать одинаковые или разные значения файлов cookie для каждого запроса, одновременно получая различные значения файлов cookie из баз данных файлов cookie, которые относятся к вашему целевому сайту.

То же самое можно сделать в Puppeteer или Selenium, добавив заголовки браузера в ваш код. Хорошей манипуляцией с прокси является разрешение DNS на стороне партнера, а не на стороне супер-прокси. DNS преобразует IP-адрес в URL, и преимущество разрешения DNS на стороне супер-прокси является скорость выполнения запросов. Разрешение на стороне партнера приводит к большей анонимности, особенно когда вы используете бот или сканер. Вы можете разрешить DNS, перейдя на вкладку «Скорость запроса» в менеджере прокси и выбрав удаленное разрешение по пиру в поле поиска DNS.

Некоторые целевые сайты, которые используют ReCaptcha V3 или используют сложные функции анализа, могут создавать отпечатки – собирать данные о движении мыши, рендеринге webRTC, анализировать аудиосигнал и многое другое. Анализ звука можно преодолеть, добавив шум к вашему запросу. Используйте инструмент преобразования текста в речь, чтобы создать нужное аудио, а затем включить его в свой запрос.

Когда запрос содержит звуковую часть, вы заметите, что ReCaptcha V3 отсутствует. Вы также можете добавить другие параметры отпечатка – создать профиль браузера с несколькими входами в систему, холст (canvas), статический шум, WebGL и т.д. Если вы хотите преодолеть ReCaptcha во время сканирования и не прерывать процесс, начните с изменения IP при появлении ReCaptcha. Вы можете сделать это на вкладке правил прокси-менеджера, создав новое правило. Установите триггер на «HTML body element» и для сканируемой строки введите любое слово, которое появляется в консоли браузера. После этого выберите «Повторить попытку с новым IP» и укажите количество повторных попыток, а затем проверьте правило.

Другой вариант обхода капчи заключается в том, чтобы на самом деле решить ее с помощью стороннего сервиса, такого как 2captcha или anti-captcha. Эти две платформы используют реальных людей, которые решают задачи вручную и отправляют вам результаты, после чего вы продолжаете работу. Использование сервисов для определения капчи – не очень удобный вариант, потому что вам придется обнаруживать наличие капчи, а затем подключать сложный API для отправки запроса на решение. Основная проблема при использовании этих сервисов – время отклика. Для того, чтобы капча была решена и отправлена ​​вам, в среднем требуется от 40 до 60 секунд.

Что надо знать об обходе капчи при парсинге сайтов

Капчи раздражают большинство пользователей, и вы наверняка сталкивались с некоторыми из них, пытаясь получить доступ к некоторой информации. Это те сложно читаемые символы, которые вас просят ввести в текстовое поле. При парсинге данных и использовании ботов с ними непросто иметь дело, поэтому вам необходимо более подробно изучить механизмы их работы.

1. Понимание капчи

CAPTCHA – это аббревиатура, обозначающая “Полностью автоматизированный общедоступный тест Тьюринга для различения компьютеров и людей” (Completely Automated Public Turin test to tell Computers and Humans Apart). Это тест используется в вычислительной технике, чтобы отличать живых пользователей от роботов, и широко применяется в Интернете. Вы так или иначе сталкиваетесь с ним либо при совершении покупок в Интернете, либо при входе на сайт, либо в некоторых других ситуациях.

Цель капчи состоит в том, чтобы задавать вопросы и ставить задачи, с которыми компьютеры не могут справиться, а живые пользователи могут. Это, например, строка с символами, испорченными до неузнаваемости. Хотя они выглядят страшно искаженными, люди могут легко разобрать буквы, но для компьютеров они становятся большой проблемой, и именно поэтому тест работает. Даже если вы используете очень сложную автоматизированную систему, которая может сканировать изображения с текстом и распознавать слова в нем, все равно с такими специально испорченными строками у нее будут большие проблемы.

Виды капчи

Существуют различные типы каптч, наиболее распространенными и наиболее встречающимися из них являются текстовая капча, капча, основанная на изображениях, и аудиозапись.

Текстовые капчи обычно состоят из двух частей. Первая – это последовательность случайно сгенерированных символов (цифр и/или букв), которые выглядят искаженными, вторая – текстовое поле. В этом тесте нужно ввести правильные символы в текстовое поле, чтобы доказать, что вы человек.

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

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

Еще есть звуковые капчи. Эти тесты используют случайные слова или числа из записей в комбинированной форме и добавляют немного шума в звук. Чтобы доказать, что вы человек, вы должны ввести услышанные в записи слова или цифры. С этим типом капчи сложнее всего бороться по сравнению с текстовыми или графическими.

Как работать с капчами во время парсинга

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

Captcha также затрудняет извлечение информации для ботов и спамеров. Она предотвращает недопустимое поведение и спам. Как только бот обнаружен, IP-адрес банится, и у него больше нет доступа к сайту. Поэтому, чтобы обойти эту проблему, вам нужно использовать прокси, чтобы вы могли оставаться анонимными и иметь постоянный доступ к нужному ресурсу.

Во время парсинга веб-страниц важно справляться с капчами, потому что они, в случае появления, будут препятствовать работе краулеров. Лучший способ справиться с капчей – это избежать ее, и есть несколько советов, которые помогут вам в этом.

Действовать как человек, даже если вы используете ботов, – это хороший способ предотвратить появление капчи. Учитывая это, вы должны стараться парсить сайт не слишком часто и понемногу. Однако на страницах входа все равно капчи появляются часто, и их никак нельзя избежать. Вы можете вручную решить такие капчи с помощью Octoparse.

Если вы занимаетесь парсингом и используете собственные сканеры, есть средства для обхода капчи, которые вы можете интегрировать в свой код. Примерами являются Bypass CAPTCHA и Death by CAPTCHA. Эти два сервиса позволяют вам подключаться через API и автоматически решать задачи во время скрапинга. Эти инструменты могут решить и CAPTCHA и ReCaptcha.

Расширения для веб-браузеров, которые умеют обходить и решать капчу

Подразумевается, что компьютеры CAPTCHA решить не могут, но людь их понять способны. Это не всегда так, потому что даже людям с хорошим зрением иногда трудно увидеть, что там написано. Некоторые типы капчи могут быть очень раздражающими, как, например, Google Recaptcha. Здесь вы не просто решаете одну головоломку, но иногда вам нужно решить до четырех головоломок последовательно. Если вы ошибетесь, придется начать заново – пока вы все не решите правильно, и это может быть очень раздражающим.

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

AntiCaptcha

AntiCaptcha – популярный и рекомендуемый сервис решения CAPTCHA. Расширение доступно для браузеров Chrome и Firefox, и является платным сервисом. AntiCaptcha может автоматически решать Google ReCaptcha, FunCaptcha, GeeTest и ряд других. Для работы вам просто надо кликнуть правой кнопкой мыши на текстовом поле и выбрать «Найти и решить капчу» или использовать сочетание клавиш Ctrl + Shift + 6.

Решение капч в среднем занимает от 5 до 20 секунд, а ReCaptcha занимает в среднем от 30 до 60 секунд.

Buster: Captcha Solver for Humans

Buster – это бесплатное расширение с открытым исходным кодом, которое решает ваши капчи без какой-либо оплаты. Оно решает звуковые капчи с помощью распознавания речи. Однако его недостатком является то, что его можно использовать только для решения проблемы Google ReCaptcha. Но поскольку это очень распространенная форма капчи, вам, скорее всего, этого расширения хватит для всех задач. Buster совместим с браузерами Chrome, Firefox и Opera.

Использовать Buster Captcha Solver очень просто. Расширение работает всего в несколько кликов. Когда всплывет ReCaptcha, вы нажимаете «Я не робот», чтобы открыть доступ к вариантам испытаний. Внизу появится зеленый и оранжевый значок, нажав на него вы откроете окно голосовой проверки и сможете с помощью Buster начать его решение. Buster решает все довольно быстро – обычно на один тест уходит менее 30 секунд.

Пока Buster решает, вы будете видеть в окне круглый значок. Он исчезнет, если расширение решит задачу, но в случае неудачи просто нужно будет получить новую запись, нажав на крайнюю левую иконку.

Rumola 

Rumola Captcha Solver работает с капчами, где вам нужно вводить слова, цифры или решать математические задачи. Оно не может решить Google ReCaptcha или капчи на основе изображений. Rumola может автоматически искать капчи после загрузки страницы, и вы можете отключить эту опцию в меню расширений вашего браузера.

Когда на странице обнаружена капча, Rumola накладывает небольшой значок на изображение и текстовое поле для ответа. То, что вам нужно сделать, это дважды щелкнуть внутри пустого текстового поля, и Rumola получит управление и начнет решить капчу. Если капча не обнаружена, можно попробовать найти ее самостоятельно или через меню расширений.

Если и после поиска на странице ничего не обнаруживается, можно щелкнуть правой кнопкой мыши на изображении и выбрать «Распознать это изображение как капчу». Если всплывающая небольшая иконка не станет анимированной, кликните правой кнопкой мыши на текстовом поле ответа и выберите «использовать это поле для ввода капчи». Один из указанных вариантов распознает и решит вашу капчу за 5-10 секунд.

Rumola – платный сервис по поиску капчи, и при первой установке вы получаете 5 бесплатных кредитов, которые вы можете использовать для тестирования.

Recaptcha Solver

Этот “агрегатор” не принадлежит какой-либо конкретной компании. Перед использованием этого расширения вам необходимо зарегистрироваться и приобрести кредиты у DeathByCaptcha, 2captcha, ImageTypers, Anti-Captcha, BestCaptchaSolver или EndCaptcha. После покупки вы можете выбрать службу капчи в раскрывающемся меню и ввести либо ключ API, либо имя пользователя и пароль.

Выводы

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

образцов звука BotDetect Audio CAPTCHA

В отличие от Рекапчи Сталкер — BotDetect CAPTCHA работает в Китае! Лицензионный исходный код; самообслуживания — не преследует — и не прихлебывает ваши данные формы! Подумайте: GDPR и LGPD!

BotDetect CAPTCHA обеспечивает альтернативу звуковой капчи, чтобы гарантировать, что проверка человеком доступна для слепых и других людей с ослабленным зрением. BotDetect разработан с учетом рекомендаций Access Board Section 508 и создает XHTML 1.1 и разметка, совместимая с WCAG AAA.

По умолчанию BotDetect audio Captcha использует элементы Html5 для воспроизведения звука. Он также обнаруживает браузеры, которые не поддерживают полностью или должным образом звук Html5 Wav, и автоматически возвращается к использованию элементов и . Это гарантирует, что такие браузеры по-прежнему могут воспроизводить звуковые символы Captcha и оставаться такими же доступными, как и до появления звука Html5.

Audio CAPTCHA Sound Security

BotDetect audio Функция Captcha использует 20 различных звуковых стилей, каждый из которых использует уникальную комбинацию эффектов и шумов.Это делает звуковую капчу намного более устойчивой к любому автоматическому анализу звука, особенно когда звуковой стиль, используемый для каждой сгенерированной звуковой капчи, выбирается случайным образом.

Многоязычный аудио CAPTCHA Произношения

BotDetect CAPTCHA предлагает множество различных вариантов произношения, локализованных с помощью капчи. Каждое локализованное произношение звуковой капчи записывается диктатором-носителем языка в профессиональной студии звукозаписи, что гарантирует наилучшее качество звуков, используемых для создания альтернативы звуковой капчи.

Чтобы обеспечить максимальную гибкость в выборе поддержки локали, которая соответствует вашим потребностям, звуковые ресурсы были отделены от основного компонента на внешние звуковые пакеты, зависящие от языка. Их можно загрузить отдельно со страницы локализации BotDetect, когда они вам понадобятся.

Вот примеры некоторых популярных локализаций аудио Captcha:

Вы можете найти все поддерживаемые в настоящее время локализованные варианты произношения с помощью Captcha на странице локализаций BotDetect.

Подробнее о BotDetect (Аудио) CAPTCHA

Если вы предпочитаете большой образец случайно сгенерированных звуков Captcha, вы также можете услышать все звуковые стили BotDetect Captcha в действии (и сравнить, как различные настройки Captcha влияют на них), запустив демонстрацию функций BotDetect Captcha.

Для ключевых шагов интеграции см. Ускоренные курсы для разработчиков BotDetect для PHP, ASP.NET и Java.

,

Спрос на доступность аудио CAPTCHA

Август 2013. Автор: Матей Шарич

Проблемы Captcha на основе изображений являются основным элементом защиты от спама в Интернете, и не зря. При правильной реализации они являются незначительным препятствием для пользователей-людей, но оставляют в тупике различных ботов и автоматизированных скриптов. Если спамерская шалость в первую очередь требует такого «доказательства взаимодействия человека», что может быть проще и естественнее для ваших посетителей, чем просто , смотрящий на картинку , и , читающую нескольких символов? Но эта простота использования основана на довольно большом предположении: у всех посетителей безупречное зрение…

Содержание

Важные проблемы доступности CAPTCHA

Это своего рода постыдный общественный секрет, что существует множество реализаций капчи с плохим изображением, которые не соответствуют основным стандартам читабельности и могут расстроить любого, независимо от того, насколько здоровы и проницательны их глаза. Но даже если предположить, что вы используете прилично читаемую защиту Captcha, которую большинство людей решает за несколько секунд, факт остается фактом: большинство людей все еще далеко от каждого посетителя, которого вы хотите обслужить .

Потребность в доступном веб-контенте

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

Сделать Интернет более удобным для людей с ослабленным зрением

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

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

Эта крайне желательная доступность веб-контента далеко не автоматическая и требует дисциплины и соблюдения хорошо задокументированных руководящих принципов проектирования.
Некоторые из этих рекомендаций, например
W3C WCAG
— просто полезный справочник для внимательных веб-мастеров.Другие гораздо более серьезны — например, обязательное, имеющее юридическую силу
Раздел 508
обращение в федеральные агентства США или требования гражданского законодательства США
ADA.

Подводные камни доступности изображений CAPTCHA

Добавление защиты изображения Captcha на ваши страницы творит чудеса, когда дело доходит до предотвращения автоматической рассылки спама, но это также усложняет их доступность:

  • Стандартное руководство по обеспечению доступности для визуального контента, такого как изображения, заключается в предоставлении эквивалента обычного текста, который может быть прочитан программами чтения с экрана; это достигается путем добавления соответствующего текста в качестве атрибута alt элемента Html.
  • Однако этот вариант недоступен для изображений Captcha, поскольку вставка простого текстового представления кода Captcha на страницу также позволит ботам легко обойти проблему Captcha, что в первую очередь устранит причину использования защиты Captcha.

Очевидно, что нужен другой подход, чтобы сделать формы, защищенные Captcha, полностью доступными. К счастью, такая альтернатива легко доступна …

Обеспечение доступности CAPTCHA с помощью альтернативы Audio CAPTCHA

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

BotDetect CAPTCHA Audio Screenshot

BotDetect audio Captcha произносит код Captcha

Чтобы оставаться эффективным при обнаружении и нейтрализации ботов, произношение кода Captcha должно быть устойчивым к распространенным формам автоматического анализа. Для этой цели звуки Captcha также содержат слышимые фоновые шумы и используют различные звуковые эффекты, чтобы «замаскировать» голос, произносящий код Captcha.В идеале посетители-люди не будут иметь проблем с прослушиванием и выделением кода Captcha, в то время как боты не смогут разбираться в содержимом звукового файла.

Образец звуковых стилей BotDetect Audio CAPTCHA

Оставив полное объяснение всех шагов, необходимых для реализации защиты Captcha, полностью совместимой с основными стандартами доступности в другой раз (Раздел 508 Captcha, WCAG Captcha), мы будем удовлетворены тем, что аудио Captcha играет очень важную роль в этой задаче. ,..

[вверх]

Оптимизация пользовательского опыта Audio CAPTCHA

Основная идея аудио Captcha очень проста — произнесите код, показанный на изображении Captcha, и посетители с нарушениями зрения, но со звуком слуха смогут решить эту проблему так же легко, как и любой другой. Равные возможности, универсальный доступ, беспроигрышная доступность! Но добиться истинной доступности не так просто, как позволить людям загрузить звуковой файл и закончить его — нужно подумать, чтобы правильно разработать звуковой код Captcha.

Проверка юзабилити 1. Локализованная аудиозапись CAPTCHA Произношение

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

BotDetect CAPTCHA Локализация аудио

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

Чтобы обеспечить максимальную гибкость в выборе поддержки локали, которая соответствует требованиям вашего веб-сайта, эти звуковые ресурсы были отделены от основного компонента Captcha на внешние звуковые пакеты, зависящие от языка.Их можно загрузить со страницы локализации BotDetect, когда они вам понадобятся.

Пример локализации BotDetect Audio CAPTCHA

Проверка удобства использования 2: Воспроизведение аудио CAPTCHA с широкой совместимостью

Создание идеально озвученных, локализованных звуков Captcha — отличный первый шаг, но он не очень поможет посетителю, если его устройство и выбранный браузер не могут их воспроизвести. И, несмотря на головокружительную технологическую поездку по Интернету, такая простая операция, как воспроизведение звука на веб-странице, все еще доступна… сложно.

Создание пользовательского интерфейса Audio CAPTCHA

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

К сожалению, не все браузеры и устройства поддерживают этот идеализированный опыт — и даже если и поддерживают, не все они поддерживают его, используя один и тот же подход. Таким образом, реализации этого идеального рабочего процесса недостаточно: мы также должны сделать его изящно деградирующим и разумно настроить поведение звука Captcha для различных возможностей устройства.

Desktop Browsers

Поддержка браузера BotDetect Audio CAPTCHA

Если у вас есть опыт создания веб-страниц, совместимых с разными устройствами и браузерами, вы знаете, что это может стать довольно сложным процессом… К счастью, разработчики BotDetect позаботятся об этом за вас, а наши инженеры по контролю качества тестировали функциональность аудио Captcha в основных версиях IE, Firefox, Chrome, Safari и Opera, выпущенных с 2001 года, а также на популярных устройствах Android и iOS.

Проверка удобства использования 3. Повторное воспроизведение звука CAPTCHA

Итак, мы позаботились о том, чтобы сами звуковые файлы были легко понятны и адаптированы для посетителя, и мы использовали все до последней капли технического волшебства, чтобы убедиться, что они воспроизводятся правильно.Но мы все еще не закончили оптимизацию пользовательского интерфейса аудио Captcha.

Вполне возможно, что посетитель, прослушивающий звуковой файл с функцией Captcha, не сможет повторно ввести весь код после того, как услышал его только один раз. Если это кажется очевидным, учтите, что каждое сгенерированное изображение Captcha всегда будет содержать другой случайный код Captcha в целях безопасности. Опять же, когда изображение загружается в браузер, у пользователя есть достаточно времени, чтобы повторно изучить его несколько раз, если это необходимо, в то время как воспроизведение звука по своей природе носит временный характер.

Поскольку только единственную возможность понимания вряд ли можно считать доступной, BotDetect позволяет посетителям использовать звуковую кнопку столько раз, сколько им нужно, и произносить один и тот же код Captcha — если их браузер поддерживает это. Чтобы соответствовать требованиям безопасности Captcha, браузеры, которые не могут воспроизводить одно и то же аудио (старые браузеры, не поддерживающие аудио Html5 Wav), должны будут запросить новый код Captcha перед воспроизведением нового аудио. Но надлежащая защита аудио с помощью Captcha — это отдельная полноценная тема…

[вверх]

Выводы и дополнительная литература

Хорошо реализованная звуковая капча позволяет защитить ваши веб-формы от автоматической рассылки спама, не делая их недоступными для посетителей с ослабленным зрением. Локализованное произношение звука Captcha позволяет вам сделать все возможное, чтобы приспособить вашу аудиторию, равно как и обеспечение совместимости воспроизведения звука Captcha с широким спектром браузеров и устройств.

Если вы хотите проверить, насколько BotDetect соответствует этим требованиям, продемонстрируйте здесь звук Captcha и проверьте его самостоятельно: выберите локализованное произношение Captcha из раскрывающегося списка Locale, измените стиль звука, попробуйте его на разных устройствах…

Звуковой совет: все об аудио CAPTCHA

[вверх]

.

Скачать BotDetect CAPTCHA Localizations

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

Развертывание локализации

изображений Captcha для всех языков могут быть нарисованы только с помощью базовой библиотеки Captcha, в то время как локализованные звуки Captcha также требуют файлов звукового пакета с данными звука произношения.

Чтобы сделать локализованное произношение Captcha доступным для ваших приложений, вы должны развернуть .bdsp файлов, загруженных с этой страницы в папку звуков BotDetect:

  • Приложения ASP.NET по умолчанию используют Bin \ BotDetectSounds . Вот как настроить расположение звуковых пакетов в
    Традиционный API и в
    Простой API.
  • Приложения Java по умолчанию используют WEB-INF \ BotDetectSounds . Вот как настроить расположение звуковых пакетов в
    Традиционный API и в
    Простой API.
  • Приложения PHP по умолчанию используют lib / botdetect / Resources / Sounds .Вот как настроить расположение звуковых пакетов в
    Традиционный API и в
    Простой API.
  • Классические приложения ASP по умолчанию используют Redistribute \ BotDetectSounds в папке установки BotDetect. Пользовательскую папку можно указать в файле BotDetect / CaptchaConfig.asp .

Пакеты звуков произношения для стран Северной Америки включены в установку BotDetect и по умолчанию расположены по адресу:

Платформа Расположение звуковых пакетов по умолчанию
BotDetect ASP.NET управление Captcha C: \ Program Files \ Captcha Inc \ BotDetect CAPTCHA \ BotDetectSounds
BotDetect Классический компонент ASP Captcha C: \ Program Files \ Captcha Inc \ BotDetect 4 CAPTCHA Component \ Asp \ Redistribute \ BotDetectSounds
Библиотека Java Captcha BotDetect com / captcha / botdetect / resources / звуки botdetect.jar )
BotDetect PHP Captcha Library библиотека / botdetect / ресурсы / звуки

Поддерживаемые регионы

Северная Америка

North America

[вверх]

Европа

Europe

[вверх]

Азия

South America

[вверх]

Австралия и Новая Зеландия

Australia & New Zealand

[вверх]

Южная Америка

South America

[вверх]

Другие языки (локализованный звук Captcha еще не доступен)

Европа

Europe

[вверх]

Азия

South America

[вверх]

Австралия и Новая Зеландия

Australia & New Zealand

[вверх]

Южная Америка

South America

[вверх]

Африка

Africa

[вверх]

Скоро появятся новые локации!

Запросить язык, не указанный на этой странице

,

Официальный сайт CAPTCHA

CAPTCHA — это программа, которая защищает веб-сайты от ботов путем создания и оценки тестов, которые люди могут пройти, но
современные компьютерные программы не могут. Например, люди могут читать искаженный текст, как показано ниже, но современные компьютерные программы не могут:

Термин CAPTCHA (полностью автоматизированный общедоступный тест Тьюринга для различения компьютеров и людей) был
придуман в 2000 году Луисом фон Аном, Мануэлем Блюмом,
Николас Хоппер и Джон Лэнгфорд из Университета Карнеги-Меллона.

Бесплатная, безопасная и доступная реализация CAPTCHA доступна в проекте reCAPTCHA . Простые в установке плагины и элементы управления
доступно для WordPress, MediaWiki, PHP,
ASP.NET,
Perl, Python, Java и многие другие
сред. reCAPTCHA также поставляется с аудиотестом, чтобы убедиться, что слепые пользователи могут свободно перемещаться по вашему сайту. reCAPTCHA официально рекомендована
Внедрение CAPTCHA.

  • reCAPTCHA . Остановите спам и помогите оцифровывать книги одновременно!
    Показанные слова взяты непосредственно из старых книг, которые оцифровываются.

  • СКВИГЛ-ПИКС . Наша новейшая CAPTCHA!

  • ESP-PIX . Скрипт CAPTCHA, который нам близок. Вместо того, чтобы вводить
    письма, вы подтверждаете себя как человек
    узнав, какой объект является общим в наборе изображений. Это был первый пример CAPTCHA на основе распознавания изображений.

Наш новый сайт duolingo.com предлагает вам возможность изучать языки на 100% бесплатно, помогая
переводить Интернет.

У

CAPTCHA есть несколько приложений для практической безопасности, включая (но не ограничиваясь):

  • Предотвращение спама в комментариях в блогах. Большинство блоггеров знакомы с программами, которые отправляют фальшивые комментарии,
    обычно с целью
    повышение рейтинга некоторых веб-сайтов в поисковых системах (например, «купите здесь копеечные акции»). Это называется спамом в комментариях. Используя CAPTCHA, только люди могут войти
    комментарии в блоге. Нет необходимости заставлять пользователей регистрироваться до того, как они введут комментарий, и нет никаких законных комментариев.
    когда-либо потеряно!

  • Защита регистрации на сайте. Несколько компаний (Yahoo !, Microsoft и др.) Предлагают бесплатные услуги электронной почты.
    Еще несколько лет назад большинство этих сервисов подвергалось атакам определенного типа: «боты», которые подписывались на
    тысячи учетных записей электронной почты каждую минуту. Решением этой проблемы было использование CAPTCHA, чтобы гарантировать, что только люди
    получить бесплатные аккаунты. В общем, бесплатные сервисы должны быть защищены CAPTCHA, чтобы предотвратить злоупотребления со стороны
    автоматизированные скрипты.

  • Защита адресов электронной почты от парсеров. Спамеры сканируют Интернет в поисках адресов электронной почты, размещенных в открытом виде. CAPTCHA — это эффективный механизм, позволяющий скрыть ваш адрес электронной почты от веб-парсеров. Идея состоит в том, чтобы потребовать от пользователей
    решите CAPTCHA, прежде чем показывать свой адрес электронной почты. Бесплатную и безопасную реализацию, которая использует CAPTCHA для обфускации адреса электронной почты, можно найти на reCAPTCHA.
    Mailhide.

  • Интернет-опросы. В ноябре 1999 г. http://www.slashdot.org опубликовал онлайн-опрос, в котором
    лучшая аспирантура по информатике (опасный вопрос в сети!).Как и в случае с большинством
    онлайн-опросы IP-адреса избирателей записывались, чтобы отдельные пользователи не могли проголосовать более одного раза.
    Однако студенты Карнеги-Меллона нашли способ набивать бюллетени с помощью программ, которые голосовали за CMU тысячами
    раз. Оценка CMU начала быстро расти. На следующий день студенты Массачусетского технологического института написали свою программу, и результат опроса стал
    соревнование между голосующими «ботами». Массачусетский технологический институт закончил с 21 156 голосами, Карнеги-Меллон с 21 032 голосами и все остальные школы.
    с менее чем 1000.Можно ли доверять результату любого онлайн-опроса? Нет, если только опрос не подтвердит, что только люди могут
    голос.

  • Предотвращение словарных атак. CAPTCHA также можно использовать для предотвращения атак по словарю в пароле.
    системы. Идея проста: запретить компьютеру перебирать все пространство паролей путем
    требуя от него решения CAPTCHA после определенного количества неудачных входов в систему. Это лучше, чем классический подход
    блокировка учетной записи после серии неудачных входов в систему, поскольку это позволяет злоумышленнику заблокировать учетные записи по своему желанию.

  • Поисковые боты. Иногда желательно, чтобы веб-страницы оставались неиндексированными, чтобы другие не могли их найти
    их легко. Существует тег html для предотвращения чтения веб-страниц роботами поисковых систем. Однако тег не
    гарантировать, что боты не прочитают веб-страницу; он служит только для того, чтобы сказать «пожалуйста, никаких ботов». Боты поисковых систем, поскольку они
    обычно принадлежат крупным компаниям, уважайте веб-страницы, которые не хотят их допускать. Однако, чтобы действительно
    гарантия того, что боты не зайдут на сайт, необходимы CAPTCHA.

  • Черви и спам. CAPTCHA также предлагают надежное решение против почтовых червей и спама: «Я
    принимайте электронные письма только в том случае, если я знаю, что за другим компьютером стоит человек ». Некоторые компании уже продвигают эту идею.

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

  • Доступность. CAPTCHA должны быть доступны. CAPTCHA, основанные исключительно на чтении текста или других
    задачи визуального восприятия — предотвращение доступа слабовидящих пользователей к защищенному ресурсу. Такие капчи
    может сделать сайт несовместимым с Разделом 508 в США. Любая реализация CAPTCHA должна позволять слепой
    пользователи могут обойти барьер, например, разрешив пользователям выбирать звуковую или звуковую CAPTCHA.

  • Безопасность изображения. CAPTCHA изображения текста перед показом пользователю должны быть случайным образом искажены.Много
    реализации CAPTCHA используют неискаженный текст или текст с незначительными искажениями. Эти реализации
    уязвимы для простых автоматических атак.

  • Безопасность скриптов. Создать безопасный код CAPTCHA непросто. Помимо того, что изображения не читаются
    компьютеров, система должна гарантировать, что не существует простых способов обойти это на уровне сценария. Общие примеры
    К уязвимостям в этом отношении относятся: (1) системы, которые передают ответ на CAPTCHA в виде обычного текста как часть сети
    сформироваться.(2) Системы, в которых решение одной и той же CAPTCHA может использоваться несколько раз (это делает CAPTCHA уязвимой для
    так называемые «атаки повторного воспроизведения»). Большинство скриптов CAPTCHA, свободно доступных в Интернете, уязвимы для этих типов атак.

  • Безопасность даже после широкого распространения. Существуют различные «CAPTCHA», которые будут небезопасными, если
    значительное количество сайтов начали их использовать. Примером такой головоломки является задание текстовых вопросов, например
    математический вопрос («что такое 1 + 1»).Поскольку можно легко написать парсер, который позволил бы ботам обойти это
    проверки, такие «CAPTCHA» основаны на том факте, что их используют немногие сайты, и поэтому у автора бота нет стимула
    запрограммируйте своего бота для решения этой задачи. Настоящие CAPTCHA должны быть безопасными даже после значительного количества веб-сайтов.
    принять их.

  • Стоит ли делать собственную капчу? В общем, создание собственного скрипта CAPTCHA (например, с использованием PHP, Perl или .Net) — плохая идея, так как есть много ошибок.
    режимы.Мы рекомендуем вам использовать
    хорошо протестированная реализация, такая как reCAPTCHA.

Иногда слухи, что спамеры используют порнографические сайты для решения CAPTCHAs: капча изображения отправляются на порносайт, и порно пользователи сайта
спросил
решить CAPTCHA, прежде чем он сможет увидеть порнографические изображения. Это не проблема безопасности для CAPTCHA . Хотя может случиться так, что некоторые
спамеры используют порно
сайтов для атаки CAPTCHA, ущерб, который это может нанести, крошечный (настолько крошечный, что мы даже не заметили вмятины!).В то время как написать бота, который
миллионы раз в день злоупотребляет незащищенным сайтом, перенаправляя CAPTCHA для решения людьми, просматривающими
порнография только позволит спамерам злоупотреблять системы несколько тысяч раз в день. Экономика этой атаки просто не складывается: каждый раз, порно шоу сайта
проверки по слову перед порно изображения, они рискуют потерять клиента на другой сайт, который не делает этого.

Тесты

CAPTCHA основаны на открытых проблемах искусственного интеллекта (ИИ): например, декодирование изображений искаженного текста выходит за рамки возможностей
современные компьютеры.Таким образом, CAPTCHA также создают четко определенные задачи для сообщества ИИ и способствуют обеспечению безопасности.
исследователи, а также программисты-злоумышленники, работающие над развитием ИИ. Таким образом, CAPTCHA — беспроигрышная ситуация: либо CAPTCHA не
сломан, и есть способ отличить людей от компьютеров, или CAPTCHA не работает и проблема ИИ решена.

  • Луис фон Ан, Бен Маурер, Колин МакМиллен, Дэвид Абрахам и Мануэль Блюм.
    reCAPTCHA: распознавание персонажей с помощью средств веб-безопасности.В г. Наука.

  • Дженнифер Там, Иржи Симса, Шон Хайд и Луис фон Ан. Взлом аудио CAPTCHA.
    В достижениях в системах обработки нейронной информации
    (Н).

  • Луис фон Ан, Мануэль Блюм и Джон Лангфорд. запечатленное
    Люди и компьютеры автоматически разделяются. В Связь с ACM .

  • Луис фон Ан, Мануэль Блюм, Николас Хоппер и Джон Лэнгфорд. CAPTCHA: Использование сложных задач ИИ для обеспечения безопасности.В
    Еврокрипт .

  • Кумар Челлапилла и Патрис Ю. Симард. Использование машинного обучения, чтобы сломать человека
    Доказательства взаимодействия (HIP). В NIPS . (Объясняет, как разбить простые CAPTCHA, для которых сегментация символов является простой.)

  • Грег Мори и Джитендра Малик. Распознавание объектов в состязательном беспорядке: нарушение визуального восприятия
    CAPTCHA. В CVPR . (Объясняет, как взломать простую CAPTCHA.)

  • Google Tech Talk о CAPTCHA и человеческих вычислениях.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *