Эволюция системы защиты от перебора кода блокировки в iOS

31 января, 2025, Oleg Afonin
Рубрика: «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

Немного истории

Когда-то давно механизм защиты кодов блокировки в iOS работал совершенно иначе. Количество попыток ввода пароля практически не ограничивалось, но зато с каждой новой ошибкой время ожидания увеличивалось до астрономических величин. В интернете можно найти множество фотографий устройств с надписями вида «Следующая попытка через 100500 миллионов лет». Снимки экрана с таких устройств можно легко найти в интернете.

iOS 10 и iOS 11

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

  • 5 попыток : 1 минута
  • 6 попыток : 5 минут
  • 7 попыток : 15 минут
  • 8 попыток : 15 минут
  • 9 попыток : 1 час
  • 10 попыток : 1 час
  • 11 попыток : сброс к заводским настройкам или блокировка устройства

Ещё в 2018 году мы протестировали обе версии iOS и подтвердили эти данные.

iOS 12: без изменений

С выходом iOS 12 мы протестировали и её, не обнаружив каких-либо изменений в задержках между попытками.

Интересно, что в доступной на тот момент документации Apple указывала другие цифры. В документе https://support.apple.com/en-gb/ht204306  компания Apple утверждала: «Если вы введете неправильный пароль на устройстве с iOS шесть раз подряд, устройство будет заблокировано». Мы не смогли найти никакого подтверждения этой информации. Несмотря на это, ресурсы тех времён охотно цитировали её в своих статьях (например, здесь). В наших тестах задержки начинаются после ввода неправильного пароля 5 раз подряд, после чего задержка постепенно увеличивается. Блокируется же устройство только после 11-й попытки. На сегодняшний день Apple уже исправила документацию, но оригинальную версию статьи всё ещё можно найти в архиве Интернета.

2023 год: всё ещё без изменений

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

Когда-то в 2024

В период между августом 2023 и октябрём 2024 (мы не смогли определить точный момент, когда это произошло) разработчики Apple изменили схему задержек. Актуальная схема теперь выглядит следующим образом:

  • 3 попытки : нет задержки
  • 4-я попытка : 1 минута
  • 5-я попытка : 5 минут
  • 6-я попытка : 15 минут
  • 7-я попытка : 1 час
  • 8-я попытка : 3 часа
  • 9-я попытка : 8 часов
  • 10 и более попыток : устройство блокируется или сбрасывается к заводским настройкам

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

Одинаковые пароли подряд не учитываются, но можно попробовать старый

Если два или более одинаковых пароля введены подряд, система учитывает их как одну попытку и не увеличивает счётчик неверных вводов.

В то же время в iOS 17 появилась одна очень интересная функция, позволяющая использовать свой старый код блокировки, если забыт новый. Работа функции подробно описана в документации, но некоторые пользователи наблюдают странные аномалии: ветка на reddit, дискуссия на форуме Apple; бывали и случаи, когда старый пароль оставался работоспособным в течение более 72 часов.

Кстати, с недавних пор Apple непосредственно на экране блокировки предлагает полный сброс устройства в том случае, если вы подтверждаете, что забыли пароль. Удивительно, но долгое время такой функции не было, и пользователям приходилось либо вводить 10 неверных паролей, чтобы довести телефон до состояния, когда он требует подключения к компьютеру (тогда там появляются инструкции по дальнейшим действиям), либо искать в интернете инструкции по вводу в DFU для дальнейшего сброса. Некоторая неопределённость со сбросом привела к появлению на рынке недорогих программ, которые рекламировались как средства для обхода забытого или утерянного пароля — но в реальности они просто помогали сбрасывать забытый пароль, что можно сделать и бесплатно. Разумеется, данные при этом терялись, и отвязка устройства от учётной записи не производилась.

Пароль на Screen Time: тоже задержки, но без блокировки устройства

Пароль Экранного времени (Screen Time) используется для ограничений и контроля использования устройства, в основном — в руках у ребёнка (но также может служить в качестве последней линии обороны от некоторых несанкционированных действий с устройством). Для защиты от перебора этот пароль тоже имеет свою систему задержек. Раньше механизм также использовал прогрессивные задержки, а после 11-й попытки задержка оставалась фиксированной — 1 час, что, в принципе, позволяло ребёнку или злоумышленнику со временем подобрать 4-значный код — ведь блокировки устройства не происходит независимо от числа попыток.

Мы проверили задержки на iOS 18; они выглядят так:

  • 5 неверных попыток — без задержки
  • 6-я попытка — 1 минута
  • 7-я попытка — 5 минут
  • 8-я попытка — 15 минут
  • 9-я попытка — 1 час

Дальше тестировать мы не стали. Стоит отметить, что пароль Screen Time всегда состоит из 4 цифр, этот формат не изменился с момента появления функции.

Плюсы новой схемы задержек: защита от случайной блокировки

Добавление задержек длительностью в 3 и 8 часов после седьмой попытки ввода имеет один очевидный плюс: теперь ребёнку, в руки которого попало устройство, станет сложнее случайно заблокировать устройство. Ранее для этого хватало 2,5 часов активных нажатий экранных кнопок; маловероятно, что смартфон будет в руках у ребёнка (или в зоне его доступа) более 12 часов подряд.

Интересные факты о кодах блокировки

Казалось бы, что интересного можно рассказать о такой простой вещи, как PIN-код на разблокировку iPhone? Тем не менее, нам удалось собрать целый ряд фактов, опровергающих популярные городские легенды или проливающих свет на функционирование механизмов защиты. Вот они:

Действительно ли данные удаляются после 10-11 попытки?

Ответ на этот вопрос неоднозначен.

  • Для 32-битных устройств данные не удаляются, их можно извлечь. Причём устройства с iOS 7 и более ранними версиями позволяют получить доступ к данным даже без знания пароля.
  • На всех устройствах данные в принципе не стираются полностью — удаляются лишь метаданные, содержащие ключи шифрования. Впрочем, этого вполне достаточно; без этих ключей расшифровать данные технически невозможно в принципе.
  • Для некоторых старых 64-битных устройств (до iPhone 7 включительно) на iOS примерно до 12-й версии существовала возможность взломать код даже в состоянии «iPhone is disabled» и извлечь информацию.

Легенда про обновление iOS и получение дополнительной попытки

Существует миф, что если попытки ввода пароля исчерпаны и устройство находится в статусе «iPhone is disabled», можно обновить iOS (например, через 3uTools) и получить одну дополнительную попытку. Нам не удалось найти подтверждений этой гипотезе. В редких случаях система действительно позволяет ввести пароль ещё раз, но эта «дополнительная попытка» оказывается пустышкой — даже правильный пароль всё равно не принимается.

Влияют ли задержки на скорость перебора форензик-софтом?

Нет, эти задержки никак не сказываются на скорости перебора паролей специальными инструментами, поскольку реализованы на уровне iOS. Там, где перебор возможен, он выполняется на скоростях от 5-20 паролей в секунду для 32-битных устройств или до 2 паролей в минуту для более новых моделей.

Пример: в посте на LinkedIn описан случай перебора 595 тысяч паролей за 192 дня. Это означает, что устройство iPhone SE 2020 (чип A13, iOS 15.6.1) позволяло проверять примерно 2 пароля в минуту.

Есть ли решения для iPhone 12 и новее?

Насколько нам известно, на момент написания статьи для iPhone 12 и более новых устройств (чип A14) способов перебора кода блокировки не существует — даже в самых технологически продвинутых решениях, доступных исключительно государственным органам. Скорее всего, это связано с переходом на новое поколение Secure Enclave. Подробнее об изменениях в этой технологии можно прочитать в документе Apple: Secure Enclave feature summary.

Реальные скорости перебора vs. официальные заявления

В официальной документации Apple утверждается:

«Число итераций калибровано так, что одна попытка занимает примерно 80 миллисекунд. Таким образом, полный перебор всех возможных 6-значных буквенно-цифровых паролей займёт более пяти с половиной лет.»

На практике такие расчёты не соответствуют реальности; перебор гораздо медленнее. Перебор со скоростью 12 паролей в секунду невозможен даже для iPhone 7, не говоря уже о более новых устройствах. К тому же, расчёты Apple основаны на комбинации из 6 символов (буквы и цифры), тогда как пользователи чаще выбирают 6-значный цифровой код, который при такой скорости был бы перебран всего за несколько часов, чего на самом деле не происходит.

Отметим, что иногда более высокую скорость можно получить на старых устройствах (до iPhone 7 включительно) сразу после установки или смены кода блокировки. В таких случаях мы могли наблюдать скорости порядка 30-35 п/с. В реальности ситуация редкая и относится к тестовым: после небольшого количества циклов штатной блокировки-разблокировки происходят изменения в SEP, после чего перебор становится заметно более медленным- порядка 5-6 паролей в минуту.

Заключение

Эволюция системы защиты от перебора кодов блокировки в iOS показывает небольшие, но важные изменения в схеме задержек между попытками. Перебор паролей в ручном режиме как был, так и остаётся малоэффективным; увеличение же задержек на последних перед сбросом или блокировкой устройства этапах ведёт, скорее, не к увеличению безопасности, а к возможности «остыть» и вспомнить забытый пароль для владельца устройства.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ