Пиктографический пароль. Эксперимент



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

Должно быть много таких систем было погребено историей, мне известны только несколько.—
Background Draw a Secret требует от пользователя нарисовать рисунок, затем оценивается его сходство с эталоном. Одна из реализаций идеи автографа, какой в древности люди ставили на бумаге. Недавно представленный Picture Password компанией Microsoft в Windows 8, требует от пользователя на фоне фотографии нарисовать точки, векторы и круги, а система сравнит их с эталоном. Два метода были предложены проектом Graphical Password в 2006.—В PassPoints нужно отметить точки на фотографии, а сервер сравнит их с отмеченными при регистрации. А вот в ConvexHull пользователь получает картинку с набором пиктограмм расположенных в случайном порядке и указывает точку на ней. Сервер, помня где какие пиктограммы находятся, вычисляет находится ли введённая точка между тремя пиктограммами указными при регистрации. Процедура повторяется несколько раз, что повышает безопасность и тренирует терпение. Ещё есть Winfrasoft Pin+, где нужно отметить узор выбранный при авторизации в матрице чисел. Признаюсь, я так и не понял как этим пользоваться.

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

Глядя на сценарий видно, что пароль может храниться только в одном месте—в голове человека и передаваться может только от человека человеку. Такой пароль для взлома потребует значительного усовершенствования технологий классификации образов, ведь пиктограммы по начертанию значительно сложнее букв и цифр. Тогда, если нет алгоритма способного распознать на изображении пиктограммы с приемлемыми скоростью, качеством и стоимостью, верно нижеследующее.—
  • Единственный способ подобрать пароль—ручной перебор, а время требующееся на такой перебор измеряется в человеко-часах. Например, для перебора четырёхзначного пароля с временем на попытку в 5 секунд потребуется 90 часов и хотя кластер из 10000 индусов может решить эту задачу за полчаса (в худшем случае) стоить это будет около $50 ($1 за 1000 попыток), а вот за пятизначный—уже $800. Целевую атаку не выдержит, но массовую сделает слишком дорогой.
  • Злоумышленник не может входить в систему автоматически, даже если имеет пароль, что серьёзно затрудняет массовое использования фальшивых или захваченных аккаунтов систем;
  • Если нельзя сообщить пароль быстро и нельзя передать его машине, увеличивается надежность коротких паролей. Чтобы переслать или сохранить пароль его нужно нарисовать или как-то описать словами, что снижает эффективность фишинговых атак направленных на выманивание пароля.
  • Для перехвата пароля снифером, трояном, или подсматриванием, да хоть сканированием коры головного мозга, опять же потребуется человек, чтобы распознать перехваченный пароль.
  • По сложности реализации, нагрузке на сервер и непробиваемости пиктопароль сравним с системой где используется текстовый пароль и одновременно обязательный ввод капчи, но безопасней, удобней для ввода и проще в запоминании.


Предлагаю вам принять участие в эксперименте. Испытайте на себе демонстрационное флэш-приложение. Программка собирает статистику: число попыток, отношение количества ошибочных вводов пароля к числу попыток, средняя скорость прохождения теста. Неплохо будет если не только посетители Хабра опробуют систему,—более интересно насколько она покажется удобной и понятной обычным пользователям. Как наберётся приличная статистика обязательно напишу.­­­­ Может пиктопароль совсем не то, что нужно, но какой-то человеческий, неоцифровываемый, способ манипуляций с объектами, использовать для доступа к системам мне кажется необходимо.

P.s. Также метод годен для защиты от ботов вместо цифро-буквенной капчи. Выглядеть может так: следует нажать на нижнем изображении те значки что есть на верхнем.


upd: Эксперимент завершен, о результатах читайте тут.
Поделиться публикацией
Похожие публикации
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 62
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      А что мешает без индусов генерировать массивы точек и отправлять на сервер?
      • +2
        Соревнование с рандомом получится.
        • 0
          Есть небольшой но -> на нём пиктограммы из набора в случайном порядке
          Распозновалки в конце концов распознают весь набор. А так как в случае распространения набор по умолчанию будет одинаков, то задача упрощается. В принципе получается обычная капча
        • +1
          Дык пиктограммы-то местами меняются при каждом показе картинки
          • 0
            Каюсь, не учел этого. Такой метод защиты будет эффективен только при невозможности достаточно быстро программно распознать изображения, при этом не напрягая сильно пользователя.
            • –1
              Да пофигу, долго бьем рандомом. Авось угадаем
          • +6
            А по поводу «p.s.», что-то мне подсказывает, что если набор картинок известен, то такую капчу распознать будет не сложнее, чем искаженный текст на цветном фоне.
            • +2
              Пиктографический пароль понятен на любых языках мира.
              Отлично подойдет для авторизации с мобильных устройств.

              Основные препятствия у проекта для широкого применения, лежат за его пределами — это человеческие привычки; человеческая память:

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

              А вот для мобильных устройств таких препятствий может и не быть.
              Кстати, пиктографический пароль возможно подойдет и для защиты от кражи мобильника, планшета, нетбука и т.д. (как вариант).
              • +1
                Странно, после ввода «сердечко, домик, смайлик» ваша флешка ни разу меня не пропустила.
                Потом, почему перехватывать пароль так сложно? У картинки есть свой id (иначе как сервер узнает, какую он картинку отправил). Так просто отсылать те же точки и тот же id картинки. И как вы собираетесь хранить это в базе данных безопасно? Хранить хеш? А как, простите, тогда сравнивать допустимое расстояние будете?
                • 0
                  И что-то мне подсказывает, что где-то пол года назад тыкал в какую-то подобную флешку тут же, на хабре.
                  • 0
                    id картинки на стороне клиента тоже может быть рандомным, а таблица соответсвия хранится на сервере.
                    • +1
                      Черт, как вы угадали мой пароль?
                      • 0
                        ID картинок хранятся на сервере, как и их соответствие новым координатам, которые показываются пользователю.
                        Пользователь на сервер посылает лишь массив с введенными координатами (и они для каждой новой картинки разные). Далее на сервере по координатам выкупаются ID реальных картинок и сравниваются с введенными при рег-ции.

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

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

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

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

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

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

                          Второе: злоумышленники будут пытаться сделать среду обитания «мутной водой», чтобы прикрыть свою деятельность, поэтому необходимо сделать возможным каким-то образом сделать эту среду обитания ПРОЗРАЧНОЙ: раз — и она прозрачна! Так можно восстановить защиту среды применения и всего содержимого. Вот только пока еще не догадался «КАК?»!

                          Может быть Вы это знаете: КАК?

                          А что касается автора статьи — у него готовое решение; и возможно он сделает какие-то доработки и можно будет уже где-то применять: Счастливых ему интересностей! Но нужно иметь ввиду, что его разработка — это «транспорт»+«маршрут», а не «среда» и взаимосвязи с нею, и соответственно защитить сможет только в определенных условиях среды применения.
                          • 0
                            Все дело в том, что владельцу транспорта, если брать ваш пример, намного проще оградить свой же транспорт кои-то защитой, чем защищать весь канал.
                            Другое дело, если канал уже будет защищен (т.е. новые протоколы и т.д.).
                            • 0
                              Заметьте пожалуйста:
                              Вы предлагаете варианты только из разряда транспорт+маршрут — людей готовых подумать об этом вполне достаточно; а ситуация со средой остается без изменений:
                              соединение с интернетом — маршрут; протокол — транспорт; содержимое транспорта — груз (матрёшка вобщем: всё вместе легко украсть, а содержимое и не догадается что его украли).

                              Предупредить кражу намного легче, чем потом голову ломать!
                              Вот поэтому и возник вопрос «КАК?».

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

                      • +6
                        Итак, какое отличие имеет этот способ от классичего символьного пароля?

                        Вместо ввода символов с обычной клавиатуры, мы предоставляем пользователю виртуальную «клавиатуру», только вместо букв на ней картинки, да еще расставленные так, что найти нужную практически невозможно. Плюс ко всему самих пиктограм будет гораздо меньше чем символов — ведь если создать полотно из хотя бы 200 картинок (по аналогии с классическим методом — большие маленькие буквы, символы, знаки препинания) то «набрать» на нем 10-ти значный пароль будет просто адской задачей. А если символов будет всего 16 — то о какой криптостойкости будет идти речь?

                        А как набирать пароль дальтоникам? Или просто людям с плохим зрением?

                        Одним словом, идея вообще непригодна к использованию.
                        • +2
                          А при ВЫБОРЕ пароля зачем запутывать?
                          • 0
                            Т. е. случайный порядок иконок — это хорошо, но маскировать и переворачивать-то зачем?
                          • +3
                            Я так и не смог правильно ввести пароль.
                            • +4
                              1. Пароль действительно нельзя сообщить быстро, именно поэтому его очень тяжело запомнить. Придумать длинный словесный пароль элементарно: «ехали1медведи2на3велосипеде», я свой шестизначный символьный пароль я забыл через пару секунд.
                              2. Ввести пароль с клавиатуры и нажать Enter — секундное дело. Тут же вы заставите пользователя разгадывать капчу. Ладно еще при регистрации это неизбежное (?) зло, но при каждом логине!
                              3. Пароль элементарно подсматривается из-за спины.
                              • 0
                                Если я правильно понял, то идею можно изменить следующим образом:

                                1. При регистрации выбрать язык пароля и несколько букв (их гораздо проще запомнить!!!)
                                2. Для ввода пароля генерировать «алфавит» из пиктограмм, начинающихся на буквы алфавита пользователя. Например, для буквы «ж» можно использовать «жирафа», «желудь», «жетон» и т. п.
                                • 0
                                  Основная идея которую я вкладывал в статью: создание способа авторизации который пригоден для человека, но не для компьютера (запрет автоматического логина, принципиально).
                                  Пиктографический пароль только один из возможных методов отвечающих этому условию.
                                  • +2
                                    опять же — если набор иконок будет ограниченный — то компьютеру будет не сложно будет «вводить такой пароль»
                                    • 0
                                      Пусть набор иконок состоит из 3х штук, но на каждой новой картинке они располагаются в новом месте. Каким образом компьютер будет отправлять на сервер координаты нужных картинок в нужной последовательности без распознавания образов иконок ??

                                    • 0
                                      Имхо, вариация вашей идеи, которую я предложил чуть выше, решает проблему запоминания и быстрой передачи пароля, одновременно усиливая стойкость, особенно если пользователь владеет редким языком, поддерживаемым сайтом.
                                      • +1
                                        Символьный пароль + обязательная каптча.

                                        Зачем пиктографический пароль вообще нужен если есть эта связка? У него одни недостатки, нет ни одного достоинства. Громзодкий, неудобный, сложный для ввода, криптоскойкость никакая.

                                        Да и взломается продвинутым шпионом тоже без особых проблем (к примеру таким, который делает по скриншоту на каждый клик мышью)
                                        • –1
                                          а это и есть «Символьный пароль + обязательная каптча» в одном флаконе, пиктограммы ведь тоже — символы. :)
                                          • 0
                                            Главный плюс этой идеи в том, что какие клавиши пользователь наживает в поле пароля можно перехватить или подглядеть. а в графических паролях кто вводит пароль ищет свои иконки и мысленно дорисовывает какую-то фигуру в итоге непонятно какие иконки его… но чтобы сделать эту систему универсальной нужно сбалансировать компромисс между простотой(пару кликов сделал и ты на сайте) и безопасностью(больше иконок, новые алгоритмы выроба иконок, возможное их деформирование, выцветание и т.п.)
                                      • +2
                                        А теперь можно, я чуть-чуть упрощу? Показывайте буквы и цифры. всё то же самое, но буквы и цифры на экране вместо пиктограмм. Запоминать будет сильно проще.
                                        • 0
                                          1. Бессмысленное сочетание букв и цифр без тренировки запомнить труднее чем набор картинок, я вот не одного своего пароля не помню, записываю где-нибудь. Но и набор пиктограмм с ходу запомнить трудно, я использовал простое мнемоническое правило: составить из картинок легенду. Например: «всё время на земле зажигают звезду», что значит: «часы, земля, лампочка, звезда».
                                          2. Система надежна пока выполняется условие, что компьютер не может распознать пиктограмм. Как это может быть достигнуто: отдельный разговор, — но точно это всегда будет компромисс между удобством и безопасностью.
                                          • +2
                                            ну не знаю. У меня три пароля из рандомного набора символов — 16 символов и два по 8. Самый сложный — для почт, два других — один для всяких контактов, асек, второй для вообще всех сайтов. Запомнил все три достаточно быстро, хоть память слабенькая. Возможно это связано с тем, что его приходится вводить на клавиатуре, и я просто запоминаю какие кнопки нажимать нужно (потому что они расположены в одном и том же месте). В этом же случае (с картинкой) — я последовательность из 5 символов запомнил не сразу, во-вторых, как вы запишете на будущее это? Скриншотом с пометкой куда кликнули? Запиской со словами «лампа, письмо, смайлик». А если со временем появится, скажем, грустный и веселый смайлик, а у вас просто смайлик записан?
                                            Ну и наконец — допустим, все сайты дружно такое поставят. Тогда нужно либо стандартизировать набор иконок (а тогда теряется смысл с этого всего, потому что будет доступен набор иконок и искать их — доли секунды, так что будет простой перебор, только несколько в непривычном виде). А если разные — тогда жесть не удобно запоминать последовательности для каждого сайта.
                                            • –1
                                              Пиктограммы не должны меняться и какому то стандарту соответствовать, а вот их начертания — обязательно, в той флэшке используется три разных набора. А то, конечно, получится как если бы на клавиатуре русские буквы заменили китайскими, да еще и местами поменяли.
                                            • +1
                                              и если Вы сможете при этом ответить на вопрос «зачем человеку это делать?», то возможно узнаете практическое применение Вашему изобретению, и, вероятно, среду применения этого изобретения.
                                              Мысль вслух.
                                              • –1
                                                Хорошо, что ни я, ни авторы статей на Хабре, ни любые другие авторы чего бы то не было, не задаются подобными нигилистическими вопросами.
                                          • +1
                                            Одному мне пришла в голову мысль, что так лучше хранить не пароль, а сделать из этого капчу?

                                            Пару тысяч картинок (а ведь по сравнению с буквами это гораздо более сложные контуры, не говоря уж про цвета и возможность очень разных изображений, обозначаемых одинаковыми словами) + искажения + возможность использовать синонимы, в т.ч. культурно-обусловленные (хотя с этим нужно оооочень осторожно) — кажется дадут намного большую устойчивость, чем вывернутый наизнанку текст, который железяки отгадывают, видимо, уже лучше людей (потому что сейчас на рекапче, например, можно глаз вырвать — 1-2-3 раза пробовать)
                                            • 0
                                              в догонку: требование капчи должно быть текстовым. Ищем мы картинки быстро, а вот сравниваем — тяжело. Не даром «найди 10 отличий» — достаточно знаменито.
                                            • 0
                                              Годная капча.
                                              • 0
                                                Ни разу не получилось попасть в центр фигуры. Идея явно нуждается в доработке.
                                                Может при наведении мышки на фигуру надо её контур как-то выделять, а при клике пусть она выбирается? А работать также, с координатами.
                                                • 0
                                                  А зачем вам центр? Кликнули в бок, сравнивается, я так думаю, расстояние от центра до вашего клика. Если оно меньше какой-то величины (там...5 пх) — вы выбрали фигуру. Т.е. заморачиваться с попаданием в центр не стоит…
                                                  • 0
                                                    Да я, собственно, и не заморачивался. Просто кликал на фигуру — не смог войти, старался кликать на центр — не смог войти. Да и кружок выделения ни разу в центре не нарисовался. И я, увы, не один такой.
                                                    Согласен с коментатором ниже, что это всё же проблема реализации.
                                                    • 0
                                                      Да надо было сбросить всё и попробовать начать с начала.

                                                      Я тоже никак не мог понять почему не выходит(быстро забыл пароль), решил сбросить все, но не получилось, пока не разобрался: оказывается чтобы всё сбросить нужно нажимать левый нижний крестик на красном фоне и тогда можно выбрать пароль заново. Вот тогда у меня все и получилось.
                                                      • 0
                                                        Специально попробовал снова войти. 3 раза пробовал. И все три раза вошёл с 1го раза) Я прям не знаю что и думать.
                                                • 0
                                                  Мде, я наверное компьютер, вход у меня занял минут 10 и то после третьей попытки регистрации. Причем прошло 10 минут я уже абсолютно не помню пароля.
                                                  • 0
                                                    Все, кто пишут про сложность первого входа — это проблемы реализации, а не идеи.

                                                    << Злоумышленник не может входить в систему автоматически, даже если имеет пароль, что серьёзно затрудняет массовое использования фальшивых или захваченных аккаунтов систем;
                                                    А я привык в браузере сохранять пароли. Как быть?

                                                    Кстати, как по мне, вполне вариант мастер-пароля
                                                    • –1
                                                      На хабре тоже пароль в браузере не сохраняется и тем не менее это никого не пугает.
                                                      • 0
                                                        Ну это один пример. У меня на большинстве сайтов пароли сохранены. Вы от частного к общему перешли
                                                      • 0
                                                        Да, мастер-пароль, интересный вариант исполнения.
                                                        Кстати, запомнить мастер пароль — использовать скороговорку, как предложил автора топика, тоже вариант.
                                                      • 0
                                                        Всё время боюсь забыть свой символьный пятизначный пароль. Звёздочка, Светофор, Домик, Сердце, Кофе… Звёздочка, Светофор, Домик, Сердце, Кофе…

                                                        Всё равно завтра забуду.
                                                        • 0
                                                          Мне одному этот топик напомнил фильм Джонни-мнемоник 95ого года?..
                                                          • 0
                                                            Мне в голову пришла такая мысль:


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

                                                            Тогда боту надо будет: распознать правильно пиктограмму, найти её центр, отправить на сервер правильную последовательность координат.

                                                            А человеку достаточно запомнить несколько цифр, на картинке мысленно провести пару линий, представив что это «клавиатура», по нажимать пиктограммы-«кнопочки».
                                                            • 0
                                                              Упс, не заметил комментарий выше, считайте иллюстрацией
                                                              • 0
                                                                А по-моему, у Вас дак прекрасная идея — она как раз расширяет применение технологии: идея у автора — картинки, а у Вас — разбиение по зонам. И наверняка это тоже где-то имеет применение (кто-то выше там говорил про дальтоников — ну чем ни вариант? :) ).
                                                                Отличная у Вас идея!
                                                            • 0
                                                              Часы-шестеренка-сердечко-смайлик — не пускает, перепроверил 5 раз.
                                                              Другие комбинации работают.
                                                              • 0
                                                                Ох. Как мне быть, человеку со слабой визуальной памятью?
                                                                • 0
                                                                  Данний способ не силно отличается от обычного пароля. А как вам такайы идея:

                                                                  1. ползователь запоминает 2 пиктограммы
                                                                  2. сервак генерит матрицу со всякими картинками (в которых есть и наши 2)
                                                                  3. пользователь кликает на любую картинку которая находится между нашими 2.
                                                                  4. повторяем шаги 2 и 3 несколько раз
                                                                  5. Та Да.

                                                                  Плюсы:
                                                                  — Запоминать надо мало
                                                                  — Пароль можно вводить даже если кто--то смотрит как ползователь это делает
                                                                  — Может что-то еще.
                                                                  • 0
                                                                    т.е. это символьная капча, повторенная несколько раз:
                                                                    своеобразно конечно запоминающееся, но видимо долго и не очень запаролено.
                                                                    А идея хороша другим качеством: кол-вом ввода; так можно использовать при расширений функций безопасности, например, один из символов будет передаваться 5 раз, а в другом сеансе авторизации 3 раза, но при этом необходимо, чтобы сервер и пользователь как-то знали об этом.

                                                                    Потенциально у Вас хорошая идея!
                                                                  • +2
                                                                    image
                                                                    • 0
                                                                      С точки зрения доступности подобная форма для ввода пароля мне кажется весьма не удобной для настольного компьютера.
                                                                      Нет флеша — не войти
                                                                      Отключены картинки — не войти
                                                                      Отключаем джаваскрипт — опять не то.
                                                                      Мышка сломалась — снова проблема.

                                                                      P. S. И как уже было отмечено, субъективно пароль сложен для запоминания. Три картинки, которые я ввёл 2 минуты назад, я уже забыл.

                                                                      Предлагаю свой вариант — список radio button'ов с цифрами и запоминать последовательность их выбора. Можно и на десктопе, и на сенсорном экране, и без картинок, и запомнить легко.
                                                                      • +1
                                                                        а без интернета ваще труба :)

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