Обход графического пароля на Android-устройствах

Обход графического пароля на Android-устройствах

В статье описан способ обхода графического пароля на устройствах под управлением Android, основанный на алгоритме, который анализирует траекторию движения пальца в момент разблокировки устройства. Алгоритм позволяет с вероятностью 95% подобрать графический ключ не более чем за 5 попыток, т. е. прежде чем устройство автоматически заблокируется. Пользователям следует задуматься: стоит ли использовать графический пароль? Ведь безопасность устройства под вопросом.

 

 

 

1. Введение

2. Модель угроз

3. Механизм отслеживания траектории движения пальца

4. Получение информации о направлении движения пальца

5. Выводы

 

 

Введение

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

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

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

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

При разработке алгоритма было использовано видео ввода пользователями устройств 120 уникальных графических ключей. Разработанный алгоритм позволяет с вероятностью 95% подобрать графический ключ не более чем за 5 попыток, до автоматической блокировки устройства.

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

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

 

Рисунок 1. Метод прямого наблюдения за пользователем

Метод прямого наблюдения за пользователем

 

Более актуальной является ситуация, в которой «наблюдатель» находится на расстоянии от владельца и производит съемку под углом к экрану. Здесь мы имеем дело с типичной ситуацией при записи, например, в общественном месте.

 

Рисунок 2. Запись видео «А» в общественном месте

Запись видео «А» в общественном месте

 

Рисунок 2.1. Экран устройства, полученный с видео «А»

Экран устройства, полученный с видео «А»

 

Рисунок 3. Запись видео «Б» в общественном месте

Запись видео «Б» в общественном месте

 

Рисунок 3.1. Экран устройства, полученный с видео «Б»

Экран устройства, полученный с видео «Б»

 

Модель угроз

Напомним, что существует несколько условий создания корректного графического ключа:

  • Ключ должен состоять как минимум из 4 точек.
  • Каждая точка может быть использована только один раз.

На рисунке 4 показан пример ключа, состоящий из пяти последовательно связанных точек на сетке 3×3.

 

Рисунок 4. Пример графического ключа

Пример графического ключа

 

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

Предположим, что некто хочет получить доступ к защищенному графическим паролем устройству.

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

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

 

Рисунок 5. Последовательность воссоздания графического ключа

Последовательность воссоздания графического ключа

 

На рисунке 5 поэтапно показана собственно атака.

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

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

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

 

Механизм отслеживания траектории движения пальца

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

 

Рисунок 6. Траектория движения пальца

Траектория движения пальца

 

Отслеживание движения пальца осуществляется посредством алгоритма Tracking-Learning-Detection. Алгоритм автоматически обнаруживает указанные объекты и определяет их границы.

Программный код Tracking-Learning-Detection приведен ниже:

Программный код Tracking-Learning-Detection

 

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

Для того чтобы устранить влияние дрожания камеры, следует создать видео объекта с двух разных ракурсов и применить алгоритм Tracking-Learning-Detection.

На рисунке 7 показан эффект подавления дрожания при использовании алгоритма Tracking-Learning-Detection для обработки видеоряда.

 

Рисунок 7. Устранение влияния дрожания камеры посредством алгоритма Tracking-Learning-Detection

Устранение влияния дрожания камеры посредством алгоритма Tracking-Learning-Detection

 

Рисунок 8. Искомый графический ключ

Искомый графический ключ

 

Генерируемая алгоритмом Tracking-Learning-Detection траектория движения пальца искажена по отношению к действительной траектории из-за разных углов положения экрана по отношению к пользователю и камере. Поэтому следующим шагом является ее преобразование в систему координат, связанную с устройством. Для этого нам необходимо рассчитать угол между камерой и устройством.

Существует алгоритм определения границ объектов, именуемый LineSegmentDetector, способный обнаружить протяженный край объекта.

Программный код алгоритма:

Программный код алгоритма

 

Угол съемки — это угол между установленной границей устройства и горизонталью. Это иллюстрирует рисунок 9.  Возможная незначительная погрешность оценки угла съемки практически не влияет на результат.

 

Рисунок 9. Вычисление угла съемки

Вычисление угла съемки

 

Используя установленный угол съемки Ѳ, производится преобразование траектории движения пальца по экрану в систему координат устройства:

где Т— матрица преобразования, S’ — координата точки отслеживаемой траектории, и S — координата после преобразования.

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

 

Получение информации о направлении движения пальца

Чтобы определить, какие точки использовал человек, важно также знать, в каком направлении движется его палец. На рисунке 10 представлены все возможные на сетке 3×3 шестнадцать направлений движения.

 

Рисунок 10. 16 возможных вариантов направлений на сетке 3х3

16 возможных вариантов направлений на сетке 3х3

 

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

 

Таблица оценки возможных вариантов движения пальца

Таблица оценки возможных вариантов движения пальца

 

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

 

Рисунок 11. Номера направлений отслеживаемой траектории движения

Номера направлений отслеживаемой траектории движения

 

Программный код алгоритма распознавания возможных вариантов ключа:

Программный код алгоритма распознавания возможных вариантов ключа

 

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

 Возможность обхода графического пароля определяется тремя факторами:

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

 

Выводы

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

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

  • Использовать большее количество пересечений, так как они усложняют подбор комбинации и помогут ввести в заблуждение злоумышленника.
  • Отключить опцию «показывать паттерн» в настройках операционной системы Android. После отключения этой опции линии между точками не будут отображаться на экране устройства.
  • Закрывать экран устройства в момент ввода графического пароля — это исключит возможность подсмотреть злоумышленнику ваш пароль.

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

ВложениеРазмер
PDF icon graphic_key.pdf77.82 КБ
Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru