Pull to refresh

Динамический графический пароль

Level of difficultyEasy
Reading time4 min
Views15K

Графический пароль


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

Динамический графический пароль


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

Примеры графический паролей


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

Недостаток графических паролей


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

Суть динамического графического пароля


Рассмотрим простейший вариант такого пароля. Допустим, в настройках мобильного устройства мы указали метод разблокировки – графический пароль. Выберем секретный пароль — «A?BC❀».

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


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

Метод определения динамического пароля путем мысленных вычислений



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

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

Метод определения динамического пароля путем его отображения на экране


Естественно данный метод можно использовать и в качестве обычного графического пароля. Рассмотрим тот же метод, но с отображением нашего секретного пароля, что является нежелательным моментом, т.к. основная задача динамического пароля НЕ ВЫДАТЬ значение постоянного секретного пароля.

  • Нам необходимо найти буквы нашего пароля на сетке;
  • Провести по ним пальцем, устройство само выделяет помеченные пальцем клетки и само вводит цифру 36 в поле «Динамический пароль». На рисунке выше, приведены 2 из возможных правильных способов выделения клеток;
  • Нажать кнопку «ОК» – подтвердив тем самым ввод динамического пароля;
  • В случае верно введенного динамического пароля, устройство будет разблокировано;


Проверка введенной цифры


Рассмотрим простые действия на стороне устройства.
  • Программа (операционная система мобильного устройства) генерирует сетку и выводит на экран;
  • Дожидается подтверждения пользователем введенного им динамического пароля;
  • Считывает из памяти пароль, разбивает на буквы;
  • Находит буквы на сетке;
  • Сама высчитывает расстояния в клетках между буквами алфавита;
  • Сверяет вычисленное число с введенным пользователем;
  • Разблокирует устройство в случае правильного ввода, в противном случае — блокирует устройство и/или возвращается к п.1;


Пример ошибочного ввода



В попытке подбора или при ошибочном вводе, человек в данном случае вводит цифру 39 или 40, а нужно ввести 36.

Возможные модификации


  • Длинный пароль, соответственно некоторые буквы могут засчитываться дважды – так как в приведенном примере;
  • Изменение размера сетки, например 20 х 20;
  • Трехкратное повторение ввода, для уменьшения вероятности подбора;
  • Трехкратное повторение ввода, но каждый раз разных паролей (три пароля или три части одного пароля);
  • Использование различных символов, картинок, цветов, разноцветных картинок вместо обычных символов алфавита;
  • Использование данного метода в качестве двухфакторной аутентификации (PIN + динамический графический пароль);


Пример для самопроверки


Укажите динамический пароль для постоянного пароля «A?BC❀»


Выводы


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

Плюсы:

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

Минусы:

  • При достаточно маленьком поле, коротком пароле, вероятность угадывания пароля высока;
  • Огромное же поле вызывает трудности с нахождением символов постоянного пароля;
  • Значение динамического пароля имеет невысокую границу сверху, например, не больше 60, для короткого пароля – нужны модификации данного простейшего метода;
  • Пароль обычно хранится в виде хеш — суммы, соответственно вычисления на стороне устройства не будут возможны;


Пример реализации


Кто что — то не понял, или интересно потыкать программу, милости просим:
Ссылка на архив с программой тут
Tags:
Hubs:
+10
Comments18

Articles