Оптимизация безопасности графических паролей

В этой статье, подготовленной на основе некоторых ваших комментариев, мы хотим еще немного поговорить о безопасности графических паролей. Джефф Джонсон (Jeff Johnson), директор по развитию в группе разработчиков пользовательского интерфейса, особенно интересуется безопасностью этой функции и соответствующими расчетами и написал данную статью о том, как оптимизировать безопасность использования графических паролей. Поскольку это новый вид входа в систему, с ним связаны новые вопросы в плане безопасности (особенно это касается мобильных устройств) и в плане проверки подлинности (например, уязвимости, связанные с распознаванием лица, или проблемы, связанные с биометрией), и неудивительно, что пользователи стали задумываться о «подводных камнях» в самом подходе. Наша цель заключалась в предоставлении удобной процедуры, которая была бы однозначно не менее безопасной, чем текстовые пароли (Джефф предоставил все расчеты). Далее Джефф объясняет, почему это решение в общем случае является надежным. Читая статью, следует помнить о том, что многие годы рекомендации составлялись для паролей, вводимых с клавиатуры (такие политики, как использование цифр+букв+разных регистров, ограничение минимальной длины пароля, невозможность повторного использования паролей, запрет использования слов и т. п.), к таким же паролям относятся и важные предостережения (например, не пользоваться точками доступа в общественных местах, где есть камеры слежения или возможность перехвата нажатий клавиш). Как вы понимаете, аналогичные рекомендации имеются и для практики использования графических паролей. Джефф описал некоторые из них, а также объяснил логику безопасности этой модели. -- Стивен


Нам несколько раз в той или иной форме задавали следующий вопрос: «Мне важно обеспечить безопасность своего компьютера; каковы основные рекомендации по созданию самой безопасной последовательности жестов для входа в систему?» Это приводит нас к интересному (по крайней мере, для меня как для математика) анализу. Он отчасти включает теорию игр, но сначала я сведу его к следующим рекомендациям.

  • Выберите фото, на котором имеется не меньше 10 точек интереса. Точка интереса — это область, которая может служить ориентиром для жеста: точка, которой можно коснуться; места, которые можно соединить линией; область, которую можно обвести кругом.
  • Используйте несколько типов жестов в произвольной последовательности. Линия является жестом с наибольшим количеством перестановок, однако постоянное использование 3 линий упрощает задачу злоумышленникам, поскольку они могут исключить последовательности, содержащие жесты других типов, из процесса подбора.
  • Выбрав для пароля касание, линию и круг, задавайте случайную последовательность этих жестов; это создаст в 6 раз больше комбинаций по сравнению с предсказуемым порядком.
  • Для круговых жестов случайным образом задавайте направление — по часовой стрелке или против. Помните и о том, что круг можно сделать больше или меньше, чем «ожидается».
  • Жесты-линии инстинктивно хочется проводить слева направо, но безопаснее будет случайным образом выбирать направление соединения двух точек.
  • Как и во всех видах проверки подлинности, при вводе графического пароля следите, чтобы за вами не подсматривали.
  • Выберите для компьютера безопасное место, где у посторонних не будет к нему физического доступа. Как всегда при вводе пароля, убедитесь, что экран компьютера не попадает в поле обзора устройств слежения.
  • Учтите, что по следам пальцев на экране можно распознать ваши жесты. Регулярно тщательно протирайте экран. Конечно, если протереть экран, затем ввести пароль, а после не протереть еще раз, риск несколько повысится, но если экран совсем не протирать, следы пальцев будут еще лучше видны злоумышленникам (и вообще, приятнее ведь пользоваться чистым экраном?). Обратите внимание на то, что следы пальцев особенно повышают риск в отношении цифровых ПИН-кодов, когда устройство часто включают и выключают, вводя пароль сто раз в день (именно в тех местах следы виднее всего). Регулярно смотрите на экран под косым углом, когда открыта страница ввода пароля, чтобы проверить, не стала ли заметна последовательность жестов. Если да, то либо протрите экран, либо добавьте пальцами пару следов в области ввода пароля (это эффективно увеличивает количество точек интереса, о чем мы поговорим далее).

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

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

Анализ

Интерес представляют также расчеты вероятности успеха атаки при различных сценариях. Как обсуждалось в предыдущей записи блога, жесты вводятся на сетке 100 х 100, что дает даже простейшему жесту (касанию) потенциал в 10 000 значений (с учетом области совпадения этот показатель снижается до 270). В действительности количество точек интереса гораздо меньше: только на данной фотографии так много значимых участков.

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

Windows обеспечивает дополнительную защиту для графических паролей (и ПИН-кодов) через отключение механизма входа в систему после 5 неудачных попыток (затем придется использовать обычный пароль). С учетом этого для данного сценария интересно будет оценить относительную безопасность двумя способами.

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

Во-вторых, допустим, что у нас имеется 100 компьютеров, для каждого из которых пароль выбирается случайным образом согласно правилам сценария (назовем это «Вероятность 100»). Какова вероятность того, что злоумышленник сможет войти в систему по крайней мере на одном из этих компьютеров? Поскольку это независимые события, вероятность составит:
  1)/x)^100.

Базовый сценарий

Представим крайне небезопасный сценарий: ваша «картинка» — сплошной черный фон с единственной белой точкой в середине. Поскольку имеется всего одна точка интереса, можно использовать только жесты касания и круга (линию вести некуда). Очевидно, если бы я использовал только касание, успех злоумышленника был бы 100-процентным, ведь единственной допустимой последовательностью были бы три касания белой точки. Предположим, что используются только круги, без точек. Для каждого жеста мы можем случайным образом выбрать 4 возможных круга. В сумме это дает нам 43 = 64 возможных последовательности жестов. Для этого сценария «Вероятность 1» составит 7,81 %, а «Вероятность 100» — 99,97 %. Удивительным оказалось то, что для одного компьютера вероятность успешного входа с моим графическим паролем составила менее 8 % (интуиция подсказывала мне большее значение), а в случае со 100 компьютерами злоумышленнику обязательно удалось бы войти в систему по меньшей мере на одном из них. Кого-то такие показатели вполне устраивают, но для пользователей, придающих особое значение безопасности, и для ИТ-администраторов, отвечающих за парк компьютеров, это неприемлемо.

Усложним сценарий: пусть теперь тип (касание или круг) для каждого жеста выбирается случайным образом. Велик соблазн сказать, что тогда сложность каждого жеста удвоится, но это не так. Существуют 4 возможных круга и 1 возможное касание, итого 5 уникальных жестов, дающих в сумме 125 последовательностей.

Выберем для внедрения нашей новой «случайной» методологии следующий вариант: подбросим монету, чтобы определить, будет ли это касание или круг. Если это круг, мы случайным образом решим, какой из четырех вариантов использовать. Все кажется правильным и случайным, но на самом деле это менее безопасно, чем использовать только круги. Это связано с тем, что половину времени мы будем выбирать жест, для которого имеется только один вариант (касание). Злоумышленник сосредоточит усилия на жестах с двумя или тремя касаниями и добьется большего успеха. Идеальная стратегия атаки (существуют и другие с такой же вероятностью успеха) состоит в том, чтобы за 5 попыток до блокировки попробовать 3 касания, затем два касания, после которых следует каждый из четырех типов кругов. Вместо ожидаемого значения показателя «Вероятность 1», равного 4 % (лучше прежнего значения 7,81 %), злоумышленник на самом деле добьется значения показателя «Вероятность 1», равного 25 %, что в три с лишним раза хуже, чем при использовании только кругов. Вот такая «хитрая» статистика!

К счастью, этот изъян в сценарии можно легко устранить. Для каждого жеста выберем случайный номер от 1 до 5. Если это 1, используем касание. В противном случае используем это значение для выбора одного из 4 возможных кругов. При этом значение «Вероятности 1» равно 4 % (почти вдвое лучше, чем в первом сценарии), но показатель «Вероятность 100» по-прежнему угрожающе велик и равен 98,31 %.

Небольшое улучшение

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

Наученные предыдущим примером, мы не станем случайным образом выбирать тип жеста, а затем сам жест. Мы проанализируем все возможные жесты, а затем выберем случайный номер и присвоим его с равной вероятностью каждому возможному жесту. Существуют 2 возможных касания, 8 возможных кругов и 2 возможных линии. Общее число последовательностей жестов составит 123=1728. Это дает нам «Вероятность 1» в размере 0,29 % и «Вероятность 100» в размере 25,2 %. Стоит обратить на это внимание: такая простая картинка, всего 2 точки интереса и настолько низкая вероятность успешной атаки. Даже при попытке входа в случае со 100 компьютерами успехом увенчалась бы 1 попытка из 4 всего на одном компьютере.

Можно еще лучше

Предположим, на картинке 5 точек интереса. Могу вообразить какие-то совсем простые картинки подобного рода. У нас есть 5 возможных касаний, 20 возможных кругов и 20 возможных линий. Это дает нам 453=91 125 возможных последовательностей. Показатель «Вероятность 1» теперь ничтожно мал и равен 0,0055 %, показатель «Вероятность 100» тоже очень мал и равен 0,55 %. Для многих пользователей этого вполне достаточно, чтобы защитить свои данные.

Максимальная защита

Допустим, для нас очень важна безопасность и мы выберем картинку с 10 точками интереса. Можно поспорить, сколько точек интереса содержит конкретная фотография. Однако важно не то, сколько на ней «очевидных» точек интереса, а то, что вы можете выбрать себе 10 различимых точек и применять к ним жесты случайным образом. На самом деле, если некоторые точки неочевидны (но вы можете точно на них указать), это плюс для безопасности.

У нас есть 10 возможных касаний, 40 возможных кругов и 90 возможных линий. Получаем впечатляющий итог: 1403=2 744 000 последовательностей. Показатель «Вероятность 1» ничтожно мал и равен 0,0002 %. Фактически у вас в 50 раз больше шансов выиграть 10 000 долл. США по билету ценой 1 долл. США в лотерее штата Вашингтон, где нужно угадать 4 числа, чем войти в систему на компьютере с графическим паролем на основе картинки, содержащей 10 точек интереса! Значение показателя «Вероятность 100» снизилось до 0,018 %, и даже значение «Вероятность 1000» составляет лишь 0,18 %.

Социотехника

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

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

Игра в кости

В завершение предлагаю вам занимательный пример, в котором тоже создается подобие случайной последовательности жестов. Для этого я возьму кубик для игры в кости (D6 на жаргоне игроков :-)) и создам последовательность жестов с 6 точками интереса. Мало того, что все точки интереса удобно сопоставлены граням кубика, картинка с 6 точками интереса хороша еще и тем, что количество возможных линий (30) равно сумме количества касаний (6) и кругов (24), поэтому легко разделять типы жестов.

Повторим следующие действия для каждого из трех жестов:

  1. Бросаем кубик.
    Число указывает, какую из шести точек интереса использовать для жеста (для линии это будет начальная точка).
  2. Бросаем кубик снова.
    • Если число четное, жестом будет линия.
      Бросаем кубик снова.
      Если число совпадает с тем, которое выпало в первый раз для начальной точки, бросим кубик снова, чтобы выпало другое число.
      Это число будет второй точкой для линии.
    • Если число нечетное, жестом будет касание или круг.
      Бросаем кубик снова.
      Используйте следующий список чисел, чтобы определить тип жеста.
      1 — жестом будет касание.
      2 — жестом будет малый круг по часовой стрелке.
      3 — жестом будет малый круг против часовой стрелки.
      4 — жестом будет большой круг по часовой стрелке.
      5 — жестом будет большой круг против часовой стрелки.
      6 — повторный бросок.

Как и ожидалось, в случае с 6 точками интереса степень сложности взлома будет между значениями для 5 и 10 точек интереса. Показатель «Вероятность 1» равен 0,0023 %, а показатель «Вероятность 100» равен 0,23 %.

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

-- Джефф Джонсон (Jeff Johnson)