Распространение понятий и технологий юзабилити

Недавние записи в блоге UPA Russia

Юзабилити-аспекты дизайна CAPTCHA

Джеф Ян (Jeff Yan)

Школа компьютерных наук,

Университет Ньюкасла, Великобритания

Jeff.Yan@ncl.ac.uk

 

Ахмед Салах Эль Ахмед

Университет Ньюкасла, Великобритания

Ahmad.Salah-El-Ahmad@ncl.ac.uk

Вступление

На сегодняшний день CAPTCHA получили широкое распространение и активно используются на коммерческих веб-сайтах. Фактически, это уже стандартная программа, применяемая для обеспечения безопасности. Два самых важных качества CAPTCHA, которые, к тому же, часто бывают взаимосвязаны ; это высокая юзабилити и эксплуатационная надежность программы. В этой статье мы рассмотрим юзабилити-факторы, которые необходимо учесть при разработке дизайна CAPTCHA. Некоторые из этих факторов лежат на поверхности, другие же сложнее и могут оказывать скрытое воздействие на отказоустойчивость (или безопасность) системы. Кроме того, мы предложим читателю простую и информативную схему для проверки юзабилити CAPTCHA.

Категории и описания объекта исследований

D.4.6 безопасность и защита, H.1.2. системы основанные на взаимодействии людей и машин.

Основные термины

Безопасность, человеческий фактор, дизайн.

Ключевые слова

CAPTCHA, безопасность, юзабилити.

1. Введение

Аббревиатура CAPTCHA расшифровывается как Completely Automated Public Turing Test to Tell Computers and Humans Apart (Полностью автоматизированный публичный тест Тьюринга для различения людей и машин). CAPTCHA ; это программа которая генерирует и оценивает тесты, которые могут быть решены человеком, но недоступны для существующих на сегодняшний день компьютерных программ [1]. Эта технология является практически стандартным защитным механизмом для выявления нежелательных и вредоносных интернет-ботов, служащих для массовой регистрации свободных e-mail адресов или рассылки спама. Количество сайтов, использующих CAPTCHA, невозможно сосчитать. Достаточно сказать, что в их число входят такие гиганты как Google, Yahoo и Microsoft MSN.

Все сходятся во мнении, что хорошая CAPTCHA должна быть одновременно и надежной и удобной в использовании. Их высокая надежность при отражении атак вызвала повышенный интерес со стороны исследовательского сообщества (см. примеры [12, 15, 16, 27]). Удивительно, но, не смотря, на весь этот интерес, юзабилити исследований CAPTCHA практически не проводилось. И это при том, что, по определению, CAPTCHA, которой не смог бы воспользоваться человек ; лишена всякого смысла. Ниже приводим все известные нам работы, на данную тему:

  • Доклад рабочей группы W3C о проблеме использования CAPTCHA «людьми, которые слепы, имеют слабое зрение, либо страдают заболеваниями, осложняющими процесс запоминания и обучения, таких как дислексия». В докладе обсуждается вопрос о возможных улучшениях процесса различения людей и машин. Однако вопросы повышения юзабилити самой CAPTCHA в докладе не поднимаются.
  • Единственная, известная нам работа, посвященная юзабилити-аспектам CAPTCHA [4, 5] отмечает, что CAPTCHA должна быть «human friendly», т.е. удобной в использовании именно человеком. Работа исследует влияние различных техник намеренной деформации текста на юзабилити CAPTCHA, разработанной в Microsoft. 
  • Кроме того, некоторые моменты юзабилити CAPTCHA были затронуты в [3, 6, 7, 9].

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

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

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

Итак, существует три основных типа CAPTCHA:

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

В нашем исследовании речь, в основном, пойдет о текстовых CAPTCHA, и на то есть ряд причин:

Во-первых, текстовые CAPTCHA наиболее распространены. Такие крупные сайты, как Google, Yahoo и Microsoft уже много лет имеют свои собственные текстовые CAPTCHA.

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

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

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

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

2. Простая схема для проверки CAPTCHA

Якоб Нильсен [13] пишет, что юзабилити характеризуется пятью качественными показателями:

  • «Легкость в освоении (Learnability): насколько легко пользователю выполнить основные действия, при первом контакте с дизайном. 
  • Эффективность (Efficiency): После того как пользователь освоил дизайн, насколько быстро он способен выполнять задания. 
  • Запоминаемость (Memorability): Если пользователь долгое время не применял данный дизайн, насколько быстро он восстанавливает свое умение пользоваться им. 
  • Ошибки (Errors): Сколько ошибок допускают пользователи, насколько серьезны эти ошибки, насколько тяжело пользователям справляться с ними.
  • Удовлетворенность (Satisfaction): Насколько приятно пользоваться данным дизайном».

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

Из самой природы CAPTCHA следует, что следующие критерии юзабилити влияют на эффективность, ошибки и удовлетворенность:

  • Точность (Accuracy) - насколько точно пользователь может выполнить задания CAPTCHA. Например, сколько попыток ему требуется для прохождения теста.
  • Затрачиваемое время (Response time) - сколько времени требуется пользователю для прохождения теста.
  • Сложность понимания/удовлетворение от использования схемы (Perceived difficulty/satisfaction of using a scheme) - Насколько сложной пользователи считают CAPTCHA. Каково их субъективное мнение ; удовлетворены ли они работой CAPTCHA, желали бы они в дальнейшем пользоваться такой схемой.

Этот набор критериев позволяет оценивать количественные показатели юзабилити CAPTCHA. Однако он дает слишком мало точных указаний, как повысить точность и удовлетворенность, или снизить затрачиваемое время и сложность понимания. Вместо этого мы предлагаем следующий тест для измерения юзабилити CAPTCHA. Этот тест основан на трех факторах: ? Искажение (Distortion) -проверяет какие искажения были применены в CAPTCHA и как они повлияли на юзабилити. ? Контент (Content) ; проверяет насколько содержание теста CAPTCHA повлияло на юзабилити. Например, как должен быть организован контент и насколько правильно он был подобран. ? Подача материала (Presentation) ; проверяет каким способом задания CAPTCHA были преподнесены пользователю и как это повлияло на юзабилити.

С помощью этого теста, можно как выделить и улучшить конкретные элементы одной отдельно взятой CAPTCHA, так и повысить юзабилити всей схемы в целом. Этот тест может быть применен как для текстовых, так и для звуковых CAPTCHA, в которых присутствуют все три показателя ; искажение, контент и подача материала. Так же с помощью теста можно проверить визуальные схемы (см. IMAGINATION [24], PIX [1] и схему, предложенную в [26]). Тем не менее, существуют визуальные схемы, в которых отсутствует искажение (см. Assira [25] и Bongo [1]) ; для таких схем имеют значение только показатели контента и подачи материала.

3. Юзабилити текстовых CAPTCHAs

В этом разделе мы, с помощью теста, предложенного в разделе 2, обсудим вопросы юзабилити текстовых CAPTCHAS. В таблице 1 перечислены все вопросы, которые будут затронуты в данном разделе.

Таблица 1.

Категория

Юзабилити-факторы

Искажение

Метод и степень искажения

Непонятные символы

 

Насколько система понятна иностранцам (Friendly to foreigners)

Контент

Набор используемых символов

Количество символов в последовательности

Длинна последовательности

Предсказуемо или нет

Случайный набор букв или литературное слово

Ненормативная лексика

 

Подача материала

 

Тип и размер шрифта

 

Размер изображения

 

Использование цвета

 

Интеграция в дизайн веб-страниц

 

 

 

 

 

 

 

 

 

 

 

 

3.1. Искажение

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

Метод и степень искажения. Наиболее очевидный юзабилити-фактор текстовых CAPTCHA -это их читабельность, которая сильно зависит от выбранного метода и степени искажения. Команда Microsoft [4] проверила следующие виды искажения и эмпирически определила оптимальную степень искажения для каждого вида.

  • Смещение: символы смещаются относительно вертикальной и/или горизонтальной оси
  • Закручивание: символы поворачиваются по часовой стрелке, или в обратную сторону
  • Масштабирование: Сжатие или растягивание символов по вертикали и горизонтали
  • Искривление: гибкая деформация символов различных размеров

Исследование принесло ценные результаты, которые были учтены при создании собственного дизайна CAPTCHA, который Microsoft уже несколько лет применяет в своих онлайн-сервисах, таких как MSN, Hotmail и Windows Live (Назовем эту CAPTCHA «MSN схемой» и в дальнейшем будем на нее ссылаться). Все эти результаты так же применимы при создании других текстовых CAPTCHA.

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

  • Буквы и цифры: сложно отличить искаженный 0 от О, 6 от G и b, 5 от S/s, 2 от Z/z, 1 от l.
  • Цифры и цифры: 5 сложно отличить от 6, 7 в разных странах пишется по-разному, и зачастую то, что выглядит как 7, на самом деле является 1, 8 похожа на 6 и 9.
  • Буквы и буквы: После некоторых видов искажений, «vv» может быть похожа на «w»; «cl» на «d»; «nn» на «m»; «rn» на «m»; «rm» на «nn»; «cm» на «an». В таблице 2 приведено несколько примеров такой путаницы, которые нам удалось обнаружить у Google (исследуемая CAPTCHA использовалась в почтовом сервисе Gmail). По результатам наблюдений нам удалось выяснить, что около 6% всех последовательностей сгенерированных схемой Google содержали такие символы.
  • Символы и помехи: В CAPTCHA подобных MSN схеме, в качестве помех выступают случайные кривые. В результате пользователь часто не может отличить символы от кривых. Так, например, тяжело отличить кривую от «J»,«7» или «L» (см. рисунок 1). В особенности часто в этой схеме наблюдалась путаница между кривой и «J» (обычно непонятный символ стоял в начале или конце последовательности, см. рисунок 1(d)).

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

Насколько система понятна иностранцам (Friendly to foreigners) В теории текстовые CAPTCHA понятны на интуитивном уровне пользователям всего мира и почти не имеют проблем с локализацией. Многие исследователи (см. [5]) отмечают это как основное преимущество текстовых CAPTCHA над другими схемами. Однако небольшое исследование, проведенное в октябре 2007 с участием 20 студентов вашего покорного слуги, показало, что иностранные студенты, чей родной язык не использует латинский алфавит, гораздо хуже справлялись с заданием, чем те студенты, родной язык которых основан на латинице (например, англичане и американцы). Когда студентов просили распознать последовательности искаженных символов сгенерированных при помощи BaffleText [6] (одной из ранних текстовых схем), первые находили откровенно трудным распознать (или даже предположить) какие символы были подвергнуты искажению.

Таблица 2. Непонятные символы в Google CAPTCHA

 

Изображение

 

Непонятные символы

 

tab2_1.PNG

Что за символ в середине  d” или  cl”?

tab2_2.PNG

Еще один пример путаницы между “cl” и “d

tab2_3.PNG

И снова путаница между “cl” и “d

 

tab2_4.PNG

Что за символ в начале “m” или

rn”?

tab2_5.PNG

Вторую и третью буквы можно принять за  w”.

tab2_6.PNG

Настоящая головная боль: что за символ в начале “m” или “rn”? А в середине “inv” или “nw”?

Microsoft CAPTCHA a.PNG(a)

Microsoft CAPTCHA b.PNG(b)

Microsoft CAPTCHA c.PNG(c)

Microsoft CAPTCHA d1.PNG

Microsoft CAPTCHA d2.PNG(d)

Рисунок 1. Microsoft CAPTCHA: первый символ в примерах (a), (b) и (c) выглядит соответственно как ‘J?, ‘7? и‘L?. Последний символ обеих последовательностей (d) выглядит как ‘J?

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

Во время подготовки финальной версии данной статьи нам стало известно об исследовании пользователей, которое определяло зависимость между языками, на которых разговаривали участники и скоростью прохождения ими CAPTCHA [23]. Это исследование показало, что средняя скорость прохождения тестов сгенерированных Google CAPTCHA была одинаковой для участников, которые владеют английским языком и для тех, которые не владеют. Это входит в противоречие с результатами нашего исследования. Однако несовпадение результатов легко объяснимо: CAPTCHA, которую мы использовали в нашем исследовании предполагала значительно более сильное искажение нежели Google CAPTCHA.

С другой стороны наши наблюдения отчасти подтверждаются Луисом фон Ахном, в его повсеместно применяемой системе reCAPTCHA [2]. Он выяснил, что процент успешно пройденных тестов reCAPTCHA составляет соответственно 97% в дневное время и 93% в ночное (по американскому времени). По IP адресам удалось выяснить, что большинство иностранных пользователей (особенно из стран Азии) проходили тест ночью (по американскому времени) ; так как вечернее время в США как раз приходится на дневное время в Азии. Это позволяет предположить, что носители различных языков демонстрируют различные результаты в распознавании искаженных латинских символов. Объясняется это очень легко ; представьте себе насколько «просто» было бы англичанину разобрать рукописный текст на китайском языке.

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

3.2 Контент

Выбор контента для каждого теста CAPTCHA также может оказать значительное влияние на юзабилити.

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

Количество символов в последовательности. Количество символов в каждой текстовой последовательности так же влияет на безопасность. Если ваша CAPTCHA использует небольшой набор символов и длина каждой последовательности невелика, вероятность, прохождения такого теста путем случайной подстановки крайне высока. Как правило, чем длиннее ряд в вашем тесте, тем надежнее результат. Пример: допустим, что некоторый компьютерный интеллект способен распознавать символы с вероятностью r (<1), шансы, что он распознает все символы в последовательности, равны rn, где n равняется количеству символов в последовательности. Очевидно, что шансы его тем меньше, чем выше значение n.

Длина последовательности оказывает интересное влияние на юзабилити. Если применяется случайная последовательность символов, то чем она длиннее, тем сложнее ею пользоваться. Причина состоит в том, что пользователю требуется распознавать и вводить больше символов, в результате чего вероятность ошибки возрастает. Так, например, пользователи могут неверно распознать какие-либо символы, в особенности те, которые после искажения выглядят одинаково. Однако со схемами, в которых применяются литературные слова, все обстоит не так. Исследование схемы reCAPTCHA [18] показало, что чем длиннее было слово, используемое в тесте, тем большее количество людей ввели его правильно [2]. Возможно, это объясняется тем, что чем длиннее слово, тем больше информации о нем получает пользователь, таким образом, Гештальтпсихология (способность людей восстанавливать целостную картину, обладая только частичной информацией) помогает пользователям правильно распознавать слова.

Еще один фактор, который стоит учесть при разработке ; может ли пользователь предсказать количество символов в последовательности. В некоторых схемах применяется постоянное количество символов. Например, в MSN схеме каждая последовательность содержит 8 знаков. В других схемах, таких как Google CAPTCHA, длина последовательности вирируется: каждая отдельная последовательность использует различные символы, а их количество каждый раз меняется. Выходит, что этот фактор так же оказывает влияние и на безопасность и на юзабилити.

Приведем пример: использование фиксированного количества символов в MSN схеме снижает ее безопасность. Мы применили знание о том, сколько символов содержится в последовательности, для того, чтобы установить значимые символы и оценить количество таких символов в последовательности. Это был решающий шаг для нашей, крайне эффективной, сегментационной атаки на MSN схему[16]. В 92% процентах случаев сегментация была успешной, что в 60% случаев могло бы привести к общему успеху атаки (т.е. к успешному сегментированию и распознаванию). С другой стороны это дизайнерское решение повышает юзабилити схемы. Если пользователь знает, сколько символов он должен ввести, вы можете быть уверены, что он понимает ; первый символ на рисунке 1 (a)-(c), это скорее случайная кривая, а не ‘J?, ‘7? или ‘L?. Таким образом, использование фиксированного количества символов, так же как и индикатор того, сколько символов требуется ввести (как показано на рисунке 2) повышают юзабилити.

MSN_scheme.PNG

Рисунок 2. MSN-схема: количество символов фиксировано и отображено в интерфейсе.

И напротив, если бы в MSN схеме применялась различная длина последовательности и количество символов невозможно было бы предсказать, пользователям было бы очень трудно (а то и вовсе невозможно) определить, чем на самом деле являются вышеупомянутые объекты. Однако, не смотря на такой недостаток в юзабилити, это решение разработчиков могло бы существенно затруднить или даже сделать невозможными автоматические сегментационные атаки, подобные нашей[16].

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

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

Случайный набор символов vs. литературные слова. Лексическая информация уже использовалась для атак на CAPTCHA (см. [12, 15]). Тем не менее, мы не уверены, что использование лексической информации в CAPTCHA ; это абсолютно плохая идея. Как правило, схемы, использующие слова более удобны в использовании, чем те, в которых применяется случайный набор символов (пример: люди быстрее печатают реально существующие слова, чем случайный набор букв). Кроме того, людям бывает трудно разобрать отдельные буквы, которые подверглись слишком сильному искажению. А вот если эти буквы являются частью какого-либо слова, люди понимающие язык на котором составлено задание, с легкостью пройдут тест, используя контекст.

Что действительно важно, так это как CAPTCHA спроектирована. Например, если система безопасности схемы спроектирована специально для того, чтобы противостоять сегментированию, т.е. механизм отражения сегментационных атак обеспечивает необходимый уровень безопасности, мы не видим никакой проблемы в использовании лексической информации в CAPTCHA. Правда, мы согласны, что использование лексики нужно тщательно проверять. Тем, кто желает быть предусмотрительным, в качестве альтернативы, предлагаем использовать фонетический генератор неанглийских, но произносимых последовательностей звуков. Это затруднит, так называемые, «словарные» атаки и в тоже время обеспечит лучшую юзабилити по сравнению с полностью случайными последовательностями. Единственный возможный недостаток этого метода состоит в том, что пользователь может принять такую последовательность за реально существующее английское слово [6].

Ненормативная лексика. Содержание каждой последовательности может повлиять на удовлетворенность пользователей, и это еще один юзабилити-фактор. Будет слишком грубо, если, например, в тесте появиться слово «negro». Ненормативный контент может сгенерироваться как в схемах, использующих случайные последовательности, так и в тех, где применяются литературные слова. Так, например, ненормативные слова появлялись и в Google CAPTCHA, и в reCAPTCHA [10]. Стандартным решением является введение списка запрещенных слов. Это помогает отсеивать неподходящие последовательности, сгенерированные CAPTCHA. Однако это не лучшее решение для таких систем как reCAPTCHA, поскольку некоторые слова, использующиеся в таких схемах, являются теми частями реально существующего текста, которые не удалось распознать с помощью программ оптического распознавания символов (OCR). И никто не знает, что важнее, позволить reCAPTCHA распознать текст, или не допустить появления в тесте запрещенных слов.

3.3 Подача материала

Способ, которым CAPTCHA демонстрирует задания (или тесты) пользователю ; это еще один юзабилити-фактор. Так, например, имеет значение тип и размер шрифта [6, 7, 3], равно как и размер изображения всего теста. В этом разделе речь пойдет о двух основных факторах текстовых CAPTCHA: 1) использование цвета в тесте 2) интеграция тестовых заданий в дизайн веб-страницы.

3.3.1 Использование цвета

Цвет активно применяется в пользовательских интерфейсах. При правильном подходе, с помощью цвета можно существенно улучшить их дизайн [8]. В текстовых CAPTCHA, так же обычно применяют цвет, в основном, это происходит по ряду нижеизложенных причин:

  • Цвет - это отличный механизм для привлечения внимания.
  • С помощью цвета можно удовлетворить различные предпочтения пользователей [9].
  • Цветные изображения привлекательнее и могут сделать задания CAPTCHA интереснее.
  • Цвет облегчает распознавание и положительно влияет на понимание.
  • Цвет помогает подогнать дизайн CAPTCHA в тон к веб-странице и сделать его менее назойливым [5].

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

Gimpy-r_color_1.PNGGimpy-r_white_1.PNG

Gimpy-r_color_2.PNGGimpy-r_white_2.PNG

Gimpy-r_color_3.PNGGimpy-r_white_3.PNG

Gimpy-r_color_4.PNGGimpy-r_white_4.PNG

(a)                                                          (b)

Рисунок 2. Gimpy-r (a) первоначальные изображения (b) тексты извлеченные нашей автоматической программой (Обратите внимание: изображения в колонке (а) и колонке (b) обеспечивают одинаковый уровень безопасности)

Пример: Gimpy-r ; хорошо известная ранняя схема разработанная в университете Карнеги Меллон (Carnegie Mellon University). Gimpy-r использовал цветные изображения (см. Рисунок 2 (а)) Однако, среди всех цветов используемых в заданиях, цвет текста всегда наименее интенсивный. Кроме того, этот цвет (как правило, черный) никогда не используется в качестве подложки. Это позволяет с легкостью извлечь текст из изображения с помощью компьютерной программы ; на рисунке 2 (b) показаны тексты, которые нам удалось получить при помощи нашей автоматической программы. Изображения на рисунке 2 (a) и (b) демонстрируют, как тест выглядит для людей (a) и машин (b) соответственно, при этом они обеспечивают одинаковый уровень безопасности. Цветная подложка оказалась бесполезной с точки зрения безопасности, а ее негативный эффект на юзабилити очевиден: она сбивает людей с толку и снижает юзабилити всей схемы. Такие же проблемы наблюдаются и у EZ-gimpy, другой ранней CAPTCHA, разработанной в университете Карнеги Меллон (см. рисунок 3).

EZ-gimpy_color_1.PNGEZ-gimpy_white_1.PNG

EZ-gimpy_color_2.PNGEZ-gimpy_white_2.PNG

(a)                                                               (b)

Рисунок 3. EZ-gimpy. (a) первоначальные изображения (b) тексты извлеченные нашей автоматической программой (Обратите внимание: изображения в колонке (а) и колонке (b) обеспечивают одинаковый уровень безопасности)

Чтобы тесты выглядели интереснее, некоторые CAPTCHA создают изображения, на которых соседние символы имеют разные цвета. Как показано на рисунке 4 (а), одной из таких схем является Cryptograph CAPTCHA [19]. Однако это решение оказалась примером неправильного использования цвета, что привело к фатальной ошибке в дизайне с точки зрения безопасности, как объяснено ниже.

Cryptograph_1_a.PNGCryptograph_1_b.PNGCryptograph_1_c.PNG

Cryptograph_2_a.PNGCryptograph_2_b.PNGCryptograph_2_c.PNG

(а)                          (b)                      (c)

Рисунок 4. Cryptograph CAPTCHA: (a) первоначальные изображения (b) после удаления помех на заднем плане (c) финальные результаты сегментации

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

  1. Цвет пикселя отличается от доминирующего цвета подложки (белого);
  2. Как минимум 6 соседних пикселей окрашены в цвет подложки.
  3. Повторяйте предыдущие два действия до тех пор, пока ни один пиксель не будет соответствовать условию № 2.

На рисунке 4 (b) показаны результаты такого подхода.

Обычно, разделить накладывающиеся друг на друга символы довольно сложно. Поэтому новейшие разработки в области CAPTCHA предполагают, что при создании текстовых схем следует полагаться на этот механизм сопротивления сегментации, что и обеспечит безопасность вашей CAPTCHA [5]. Однако, поскольку в этой схеме каждый символ имел собственный цвет, собрав воедино все пиксели одного цвета, мы успешно разделили накладывающиеся символы (см. рисунок 4 (с))! Мы опробовали этот метод на 50 случайно выбранных тестах созданных Cryptograph, сегментация была успешной в 100% случаев (средняя скорость сегментации составила порядка 60мс на тест).

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

Такую же ошибку допустили создатели FreeCap [20], другой популярной CAPTCHA (выдача в Google search ; 22,800 ссылок, схема получила широкое применение на веб-сайтах, включая такие популярные игровые сайты как [21]). В этой схеме (см. рисунок 5) соседние буквы так же имеют разные цвета, что помогает разделить соприкасающиеся и накладывающиеся друг на друга символы. В противном случае это было бы сделать намного труднее.

Рисунок 5. образцы тестов FreeCap

BotBlock [17] ; отличный пример, демонстрирующий, как неправильное использование цвета может вызвать проблемы и с юзабилити, и с безопасностью. Как видно на рисунке 6 (а), в этой схеме применяется произвольный набор букв, и располагаются они случайным образом по всей площади картинки. Создатели даже применили сложное цветовое решение: задний фон состоит из случайных блоков различной формы и цвета (в том числе и цвета которым написан текст).

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

С другой стороны, безопасность этой схемы слишком сильно зависит от цветовой составляющей. Мы проверили 100 образцов, созданных этой схемой, все они, и в самом деле, устояли против лучших на рынке OCR программ. К сожалению, критическая ошибка в дизайне позволила в два счета избавиться от пестрого заднего плана: все тексты были написаны одним и тем же цветом. Найдя этот цвет, мы успешно извлекли тексты из всех тестируемых образцов. Таким образом, надежность у этой схемы такая же, как у образцов справа (см. рисунок 6 (b)) ; расшифровать которые не составляет никакого труда.

BotBlock_a_1.PNGBotBlock_b_1.PNG

BotBlock_a_2.PNGBotBlock_b_2.PNG

BotBlock_a_3.PNGBotBlock_b_3.PNG

BotBlock_a_4.PNGBotBlock_b_4.PNG

(a)                                    (b)

Рисунок 6. BotBlock CAPTCHA (a) образцы заданий (b) текст задания, извлеченный нашей автоматизированной программой. (Обратите внимание: изображения в колонке (а) и колонке (b) обеспечивают одинаковый уровень безопасности)

На самом деле эта схема беззащитна перед, изобретенной нами [15], атакой с пересчетом пикселей. Т.е. сосчитав количество пикселей на переднем плане, мы смогли распознать большинство символов. Для тех немногих символов, у которых совпадает количество пикселей, достаточно было простого анализа их геометрической формы. С помощью этой нехитрой атаки мы взломали все 100 тестируемых образцов.

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

  • MSN схема: применятся простая цветная схема, передний план (включая текст) написан синим, подложка светло-серая. 
  • Google: все тексты написаны одним цветом (зеленым, красным или голубым), подложка белая. 
  • Yahoo и reCAPTCHA: используются только белый и черный цвета (будет нелишним упомянуть, что главный разработчик reCAPTCHA в свое время создал Gimpy-r и EZgimpy, которые Yahoo применила на своих сайтах несколько лет назад).

Похоже что «эффект Лас-Вегаса» при выборе цветовой политики интерфейса ; «самый лучший цвет, слишком много цвета» ; еще сохраняется в текстовых CAPTCHA. Учитывая это, напоминаем ; урок, который мы сегодня вынесли, касается не только юзабилити, но и безопасности. Вот почему мы советуем следовать следующим рекомендациям:

  • Если вы не уверены (например, если вы не являетесь экспертом в области человеческого зрения и обработки изображений), то в целях безопасности и юзабилити используйте в своей схеме два цвета ; один для переднего плана, и один для заднего. Самый простой и надежный выбор ; черный и белый.
  • Использование пестрых цветных схем может привести не только к проблемам с юзабилити (например: к сложностям, которые испытывают люди с различными недостатками зрения, такими как дальтонизм), но и к неспособности вашей CAPTCHA противостоять атакам.
  • Разумное использование цвета может повысить юзабилити и безопасность вашей CAPTCHA. Хотя это интересный, важный, а главное открытый вопрос.
  • На сегодняшний день, мы бы скорее сделали ставку на способность схемы противостоять сегментационным атакам.

3.3.2 Интеграция в дизайн веб-страницы/формы

Интеграция заданий CAPTCHA в состав веб-страницы так же может стать вопросом юзабилити. Например, еще недавно в популярной схеме reCAPTCHA, поле «введите два слова» не активировалось автоматически (см. рисунок 7). Люди часто вводили свои ответы в пустоту, если только перед этим не активизировали поле вручную. Разумеется, это увеличивало нагрузку на пользователей. Чтобы не раздражать людей, CAPTCHA должна быть очень аккуратно интегрирована в состав веб-страницы, не создавая дополнительной нагрузки на них.

reCAPTCHA.PNG

Рисунок 7. Пользовательский интерфейс reCAPTCHA

4. Применение теста в аудио схемах CAPTCHA

В этом разделе мы кратко покажем, что юзабилити-тест, о котором говорилось выше, так же может быть применен и в других видах CAPTCHA. В качестве примера, мы воспользуемся аудио схемами, вторыми по популярности CAPTCHA. В аудио схемах, буквы произносятся вслух вместо того, чтобы отображаться мониторе. Обычно, в запись специально добавляют шумы, чтобы предотвратить взлом с помощью технологий распознавания речи. Так, например, аудио версия reCAPTCHA использует в качестве шума записи на языке индейцев Навахо, который понимает весьма ограниченное количество людей на планете. По этой причине язык Навахо даже использовался в качестве радио-шифра во время Второй Мировой войны.

Искажение. Шумы на заднем плане эффективно искажают звуки аудио CAPTCHA. Детального исследования, какие шумы обеспечивают необходимое искажение, не проводилось. Однако и так понятно, что, как и в случае с текстовыми CAPTCHA, способ и степень искажения могут оказать огромное влияние на юзабилити. Например, один из ранних тестов в 2003 показал, что ни один из четырех журналистов, которым дали прослушать искаженную запись аудио CAPTCHA, применявшуюся на Microsoft Hotmail, не смог разобрать изначальный текст [11]. Хотя ни у одного из них не было проблем со слухом.

Из-за звукового искажения, непонятные куски могут появляться и в аудио CAPTCHA. Так, например, мы заметили, что бывает тяжело отличить ‘p? и ‘b?; ‘g? и ‘j?, ‘a? и ‘8? (eight). Еще один юзабилити-фактор аудио CAPTCHA ; насколько хорошо ваша CAPTCHA понимается иностранцами. Пример: оба автора этой статьи не являются коренными носителями английского языка, и хотя у нас обоих хороший слух, нам не удалось справиться с аудио-версиями Google CAPTCHA, Microsoft MSN CAPTCHA и reCAPTCHA.

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

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

Google CAPTCHA.PNG

Рисунок 8. Интерфейс Google CAPTCHA

Пример: Несмотря на то, что во многих схемах, таких как Microsoft и reCAPTCHA используется значок динамика (см. рисунки 2 и 7), общепринятого графического символа для обозначения аудио CAPTCHA не существует. Так, например, Google использует значок «инвалидность» (см. рисунок 8). Хотя, как нам кажется, значок динамика ; более точная метафора.

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

Когда вы размещаете аудио CAPTCHA на своей странице, у вас могут возникнуть проблемы с совместимостью. Пример: многие аудио схемы требует, чтобы JavaScript был включен. Однако некоторые пользователи предпочитают отключать JavaScript в своих браузерах. Другие схемы могут быть еще хуже. Так, например, мы нашли одну аудио схему, требовавшую наличия Adobe Flash [22]. В этой схеме пользователи с нарушениями зрения даже не узнают, что на странице имеется альтернативная версия CAPTCHA, пока на их компьютере не будет установлен Flash. К тому же, рядом со значком, похожим на динамик, не было никакого поясняющего текста.

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

5. Заключение

Мы обсудили юзабилити-аспекты дизайна CAPTCHA. В чем же основной вклад нашей статьи?

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

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

 

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

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

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

6. Благодарности

Мы признательны Линдсэй Маршалл (Lindsay Marshall) и Крису Крэю (Chris Kray) за их ценные дополнения и корректирование этой статьи, а также всем, кто уделил нам внимание и оставил свои комментарии.

7. Список использованной литературы:

[1] L von Ahn, M Blum and J Langford. «Telling Humans and Computer Apart Automatically», CACM, V47, No2, 2004.

[2] Luis von Ahn, Personal Communications, Oct 2007.

[3] HS Baird, MA Moll and SY Wang. «A highly legible captcha that resists segmentation attacks». Proc. of Second Int?l Workshop on Human Interactive Proofs (HIP?05), ed. by HS Baird and DP Lopresti, Springer-Verlag. LNCS 3517, Bethlehem, PA, USA, 2005.

[4] K Chellapilla, K Larson, P Simard and M Czerwinski, «Designing human friendly human interaction proofs», ACM CHI?05, 2005.

[5] K Chellapilla, K Larson, P Simard and M Czerwinski, «Building Segmentation Based Human-friendly Human Interaction Proofs», 2nd Int?l Workshop on Human Interaction Proofs, Springer-Verlag, LNCS 3517, 2005.

[6] M Chew and HS Baird. «BaffleText: a human interactive proof». Proc. of 10th IS&T/SPIE Document Recognition & Retrieval Conference, 2003.

[7] AL Coates, H S Baird and RJ Fateman. «PessimalPrint: A Reverse Turing Test», Int’l. J. on Document Analysis & Recognition, Vol. 5, pp. 158-163, 2003.

[8] Lindsay W. MacDonald. «Using Colour Effectively in Computer Graphics». IEEE Computer Graphics and Applications, July/August 1999.

[9] T Converse, «CAPTCHA generation as a web service», Proc. of Second Int?l Workshop on Human Interactive Proofs (HIP?05), ed. by HS Baird and DP Lopresti, Springer-Verlag. LNCS 3517, Bethlehem, PA, USA, 2005. pp. 82-96

[10] Dan Goodin, «Facebook takes the Captcha rap». The Register, Dec 13, 2007. Available at http://www.theregister.co.uk/2007/12/13/facebook_captcha _goes_wrong/

[11] Paul Festa. «Spam-bot tests flunk the blind», CNET News.com, July 2, 2003. Available at http://www.news.com/2100-1032-1022814.html.

[12] Greg Mori and Jitendra Malik. «Recognising Objects in Adversarial Clutter: Breaking a Visual CAPTCHA», IEEE Conference on Computer Vision and Pattern Recognition (CVPR’03), Vol 1, June 2003, pp.134-141.

[13] Jakob Nielsen. Usability 101: Introduction to Usability, 2003. Available at http://www.useit.com/alertbox/20030825.html.

[14] W3C Working Group, «Inaccessibility of CAPTCHA - Alternatives to Visual Turing Tests on the Web», Nov, 2005. Available at http://www.w3.org/TR/turingtest/.

[15] J Yan and A S El Ahmad. «Breaking Visual CAPTCHAs with Naïve Pattern Recognition Algorithms», in Proc. of the 23rd Annual Computer Security Applications Conference (ACSAC?07). FL, USA, Dec 2007. IEEE computer society. pp 279-291.

[16] J Yan and A S El Ahmad. «A Low-cost Attack on a Microsoft CAPTCHA», School of Computing Science Technical Report, Newcastle University, England. Feb, 2008.

[17] BotBlock. http://www.chimetv.com/tv/products/botblock.shtml. Accessed in Feb, 2008.

[18] http://recaptcha.net/

[19] http://www.cryptographp.com

[20] FreeCap. http://www.puremango.co.uk/cm_php_captcha_script_113.php

[21] Diablo 2 event, http://newd2event.net/index.php?id=hacks/redvex/HotPlug _Plugin

[22] The «Shout it out» audio CAPTCHA, http://www.nswardh.com/shout/. Accessed in Feb, 2008.

[23] R Chow, P Gollé, M Jakobsson, X Wang, L Wang. «Making CAPTCHAs clickable». Ninth Workshop on Mobile Computing Systems and Applications (HotMobile 2008). 2008 February 25-26; Napa, CA.

[24] Ritendra Datta, Jia Li and James Z. Wang, «IMAGINATION: A Robust Image-based CAPTCHA Generation System», Proceedings of the ACM Multimedia Conference, pp. 331-334, Singapore, ACM, November 2005.

[25] J Elson, JR Douceur, J Howell and J Saul. «Asirra: a CAPTCHA that exploits interest-aligned manual image categorization». Proceedings of the 14th ACM conference on Computer and communications security (CCS), 2007.

[26] M Hoque, D Russomanno, M Yeasin. «2D Captchas from 3D Models», IEEE SoutheastCon 2006 Memphis, TN, April 2006.

[27] J Yan and A S El Ahmad. «Is cheap labour behind the scene? ; Low-cost automated attacks on Yahoo CAPTCHAs», School of Computing Science Technical Report, Newcastle University, England. Apr, 2008.

Комментарии к статье:

Идеальная CAPTCHA:удобство и безопасность

Категория: Выпуск № 30
Permalink |  Trackback