Современные смартфоны защищены биометрией, но сканер отпечатка и Face ID срабатывают не всегда — и тогда остаётся ввести код разблокировки. На iPhone и Android именно этот код служит мастер-паролем для встроенного менеджера паролей и подтверждения входа по ключам доступа (passkey). Если код состоит всего из четырёх цифр, за ним оказываются все сохранённые пароли и ключи — какими бы сложными ни были сами пароли от банковских и государственных аккаунтов.


Код устройства как мастер-пароль
Встроенные менеджеры паролей — «Пароли» на iPhone и Менеджер паролей Google на Android — используют код разблокировки в качестве мастер-пароля. В обычном режиме хранилище открывается по биометрии: Face ID или отпечатку пальца. Но распознавание срабатывает не всегда. Крупные солнцезащитные очки мешают Face ID, мокрые или грязные пальцы — сканеру отпечатка. В таких случаях остаётся ввод кода устройства, и если он короткий, доступ к хранилищу паролей закрыт лишь четырьмя цифрами.
Главное ограничение здесь — человеческая память: код должен легко вспоминаться и быстро набираться. Поэтому в ход идут год рождения, памятные даты или простой графический узор. Подсмотреть такой код через плечо несложно, а подобрать по известным о владельце данным — тем более.
Ключ доступа (passkey) — способ входа в аккаунт без пароля на основе пары криптографических ключей. Открытый ключ хранится у сервиса, закрытый никогда не покидает устройство. В терминологии Google и Microsoft это «ключ доступа», в терминологии Apple — «ключ входа».
Почему ключи доступа не защищают при слабом коде
Ключи доступа выглядят как замена паролям, но и они опираются на код устройства. При создании ключа на стороне сервиса остаётся открытый ключ, а закрытый генерируется и хранится только на смартфоне. В ответ на попытку входа приходит криптографический запрос (challenge), подписать который можно лишь закрытым ключом на устройстве. Перехватить или скопировать закрытый ключ по сети нельзя — в этом и состоит преимущество технологии.
Слабое место в другом. При входе по ключу доступа устройство запрашивает подтверждение — биометрией или тем же кодом разблокировки. Узнавший четырёхзначный код получает доступ и ко всем паролям, и ко всем ключам доступа на устройстве. Криптографическая стойкость ключа в этом сценарии теряет смысл.
Сторонний менеджер паролей как отдельный барьер
Независимый менеджер паролей устраняет эту уязвимость. У такого приложения собственный мастер-пароль, отдельный от кода устройства. Чтобы добраться до сохранённых логинов, злоумышленнику пришлось бы пройти два барьера: сначала код разблокировки, затем мастер-пароль менеджера. У встроенного менеджера iOS или Android эти два барьера слиты в один.
В качестве такого решения подойдёт, например, Bitwarden с открытым исходным кодом и шифрованием хранилища алгоритмом AES-256. Расплата за дополнительный барьер — необходимость помнить ещё один сложный пароль, который, в отличие от кода устройства, нельзя восстановить.
Аппаратные пределы перебора кода
Прямой перебор кода затруднён на уровне оборудования. На iPhone код-пароль вплетён в аппаратный идентификатор устройства (UID) внутри Secure Enclave, поэтому подбор возможен только на самом смартфоне, а не на ферме из мощных компьютеров. Каждая попытка занимает около 80 миллисекунд — такая задержка заложена в вычислениях намеренно, чтобы замедлить перебор. По расчётам Apple, полный перебор 6-значного буквенно-цифрового кода из строчных латинских букв и цифр занял бы более 5,5 лет.
Secure Enclave — обособленный аппаратный сопроцессор в чипах Apple, изолированный от основной системы. В нём хранятся ключи шифрования и проверяется код-пароль. На Android схожую роль играет доверенная среда исполнения (TEE) или отдельный защищённый чип.
Помимо аппаратной задержки, в iOS после каждой неверной попытки паузы растут, а при включённой функции стирания данных содержимое устройства удаляется после десятой ошибки подряд.
| Число неверных попыток подряд | Задержка перед следующей попыткой |
|---|---|
| 1–5 | без задержки |
| 6 | 1 минута |
| 7 | 5 минут |
| 8 | 15 минут |
| 9 | 60 минут |
| 10 | устройство отключается, требуется подключение к компьютеру |
Именно эти программные паузы и лимит в десять попыток обычно защищают даже короткий код. Опасность возникает, когда специализированный инструмент обходит лимит и опирается только на аппаратные 80 миллисекунд на попытку. Тогда разрыв между длинами кода становится наглядным: 4-значный код из 10 000 комбинаций перебирается примерно за 13 минут, 6-значный цифровой — около суток, а 8-символьный буквенно-цифровой код со смешанным регистром — сотни тысяч лет.
На Android за защиту от перебора отвечают компоненты Gatekeeper и Weaver: они проверяют код в доверенной среде или защищённом чипе и наращивают задержки между попытками. Ключ так же привязан к оборудованию, поэтому подбор без самого устройства невозможен. По данным независимых исследований, в iOS устройство отключается уже после 10 попыток, тогда как в Android 7 и новее перебор заметно замедляется ближе к тридцатой.
Современные чипы делают прямой перебор ещё сложнее: для iPhone 12 и новее с чипом A14 публично известных способов обхода аппаратной защиты нет. Поэтому главная практическая угроза — не математический подбор, а подсматривание. Короткий код легко запомнить, заметив через плечо, а затем разблокировать украденный телефон. Длинный код наблюдать и воспроизводить сложнее.
Как сделать код разблокировки длиннее
На iPhone откройте «Настройки», перейдите в раздел «Face ID и код-пароль» (или «Touch ID и код-пароль» в зависимости от модели), введите текущий код и нажмите «Сменить код-пароль». На экране ввода нового кода выберите «Параметры код-пароля» — здесь доступны произвольный цифровой код и буквенно-цифровой код, которые надёжнее стандартных четырёх или шести цифр.
На Android путь зависит от производителя. В общем случае откройте «Настройки», перейдите в раздел «Безопасность и конфиденциальность» (на части устройств — «Защита и конфиденциальность»), затем «Разблокировка устройства» -> «Блокировка экрана» и задайте новый PIN-код или пароль. Точные названия пунктов на оболочках Samsung, Xiaomi и других производителей отличаются.
Оптимальный вариант — код не короче восьми цифр либо буквенно-цифровой пароль. Он не должен совпадать с легко вычисляемой датой или простым узором.
Заключение
Надёжность всей защиты смартфона упирается в код разблокировки: на iPhone и Android он остаётся мастер-паролем для встроенного хранилища и ключей доступа. Это касается всех, кто хранит пароли в системном менеджере или пользуется входом по passkey. На практике достаточно двух шагов: задать код из восьми и более цифр либо буквенно-цифровой пароль, а для критичных аккаунтов перейти на сторонний менеджер паролей с отдельным мастер-паролем.