Применяемый в iOS черный список из простых и запоминающихся PIN-кодов не повышает безопасность. Такие выводы сделали исследователи из Германии и США, которые экспериментально выяснили содержание черного списка PIN-кодов в iOS, собрав робота на основе Raspberry Pi и LEGO, а также провели эксперименты на добровольцах. Статья об исследовании будет представлена на конференции IEEE SP2020, а его описание опубликовано на странице авторов.
Современные устройства и интернет-сервисы почти всегда позволяют использовать длинные и надежные пароли с разными символами, многие из них также позволяют применять двухфакторную аутентификацию. Тем не менее, большинство людей не используют сложные и уникальные пароли, и уже семь лет подряд самым популярным паролем в мире считается 123456. В последние годы эта проблема отчасти смягчилась из-за распространения биометрических датчиков на смартфонах, однако в некоторых случаях, например, после перезагрузки, смартфоны все равно спрашивают у пользователя пароль или PIN-код.
Из-за этого некоторые разработчики, в том числе Apple, стали предупреждать пользователей, когда они выбирают ненадежную комбинацию, а также добавлять поддержку более длинных шестизначных PIN-кодов. Исследователи в области информационной безопасности под руководством Адама Авива (Adam Aviv) из Университета Джорджа Вашингтона решили проверить эффективность этих методов, а также выяснить конкретный список PIN-кодов в iOS, которые Apple считает ненадежными.
Из-за черного списка PIN-кодов при попытке ввода одной из входящих в него комбинаций пользователь получает предупреждение о том, что этот код может быть легко угадан, и предложение поменять комбинацию. Существует простой и быстрый способ выяснить содержание черного списка PIN-кодов: извлечь его из кода прошивки. Исследователи воспользовались утилитой iExtractor и успешно получили список, однако они решили также использовать более интересный метод, позволяющий получить список напрямую без обратной разработки.
Для этого они перебрали все возможные PIN-коды методом простого перебора. Этот метод требователен к ресурсам: в случае с шестизначными кодами исследователям пришлось бы вручную вводить миллион комбинаций. Вместо того, чтобы вводить все коды вручную, авторы собрали простой аппарат для автоматического ввода и сбора данных на основе микрокомпьютера Raspberry Pi Zero W, iPhone и камеры для микрокомпьютера. Его корпус исследователи собрали из конструктора LEGO. В нижней части лежит iPhone экраном вверх, а над ним на расстоянии около 15 сантиметров находится камера и Raspberry Pi.
Работа аппарата основана на том, что iOS позволяет вводить данные не только через экран, но и с помощью проводной или беспроводной клавиатуры. Микрокомпьютер эмулирует клавиатуру и подает на экран установки PIN-кода определенную комбинацию, а затем снимает результат с помощью камеры. Снимок пересылается на компьютер, на котором алгоритм распознает текст и относит конкретный PIN-код к обычному или черному списку.
На сбор черного списка в случае с четырехзначным кодом у исследователей ушло около девяти часов, а в случае с шестизначным кодом на это пришлось потратить 30 дней, причем данные во втором случае собирались одновременно на двух смартфонах. Выяснилось, что в iOS список из слабых PIN-кодов состоит из 274 значений для четырехзначных кодов и из 2910 чисел для шестизначных. В основном это простые комбинации типа 1234, прямые линии на клавиатуре ввода, например, 2580, а также даты с 1956 по 2015 год.
Главная часть исследования посвящена проверке гипотезы о том, что черные списки и более длинные PIN-коды помогают повысить безопасность. Для этого они провели исследование на добровольцах из Amazon Mechanical Turk, которых просили придумывать пароль в интерфейсе, напоминающем интерфейс iOS. Разные добровольцы сталкивались с разными условиями исследования, такими как длина комбинации (четыре или шесть цифр), разными черными списками, сформированными на основе списка Apple и двух других научных статей по смежной теме, а также некоторым из них автоматически предлагали поменять первый введенный пароль, даже если он не входил в черный список.
Получив датасет из 1220 придуманных пользователями кодов, исследователи провели их анализ несколькими методами. В одной из проверок исследователи имитировали подбор PIN-кода, в котором злоумышленник последовательно вводит пароль на основе публично доступных датасетов популярных среди пользователей кодов. При этом черный список в этом эксперименте не применялся. Исследователи получили достаточно контринтиутивный результат: на первых 40 попытках доля угаданных шестизначных PIN-кодов выше, чем доля четырехзначных. Они предполагают, что причина заключается в том, что в случае с четырехзначными кодами пользователям доступно множество различных комбинаций, простых для запоминания, таких как даты или линии на клавиатуре. В случае с шестизначными паролями чаще всего пользователи обходятся простым повторением цифр или простыми последовательностями вроде 123456 или 654321.
В анализе эффективности паролей исследователи также подбирали пароль по популярности в датасетах в условиях разных черных списков. Выяснилось, что если учитывать, что iOS-устройства ограничивают количество вводимых паролей при разблокировке десятью, то применение черного списка не дает статистически значимого преимущества в доле угаданных злоумышленником PIN-кодов. Однако при использовании Android, где количество попыток ввода ограничивается только временем, применение большего по размеру черного списка имеет статистически значимое преимущество при десятках попыток ввода. В качестве компромисса между безопасностью и удобством пользователя исследователи предлагают использовать список из примерно 10 процентов запрещенных комбинаций.
У простого предупреждения о том, что придуманный пользователями PIN-код легко подобрать есть эффективные альтернативы. Например, в 2018 году исследователи экспериментально доказали, что наглядное сравнение с остальными пользователями или отображение времени, которое необходимо для подбора пароля, заставляет пользователей придумывать более стойкий пароль.
Григорий Копиев