Интересно Четыре с половиной пароля. Как устроена система аутентификации iOS. Часть 1

Takeshi

Перо Дьявола
Команда форума
PR-group
CPA & Трафик
Регистрация
23 Янв 2019
Сообщения
1,351
Баллы
0
Общие продажи
0$
Общие покупки
0$
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пароли — один из самых старых методов аутентификации. Несмотря на почтенный возраст, они остаются основным способом убедиться в том, что пользователь — именно тот, за кого себя выдает. Пароли недаром пользуются популярностью. Хоть у них и множество недостатков, у паролей есть и несомненные достоинства: при должном контроле они могут быть как достаточно безопасными, так и вполне запоминаемыми.

Что важнее — безопасность или запоминаемость? Вопрос не такой однозначный, каким кажется. Еще исследование 2017 года показало, что у самого обычного пользователя порядка двадцати учетных записей. У среднего офисного работника использовалась 191 учетная запись — и это только те пароли, которые вводятся в окно браузера.

Какие еще пароли бывают? Если у тебя iPhone, то, скорее всего, тебе приходится иметь дело с четырьмя (или пятью — как посмотреть) паролями, тесно связанными между собой. Вот они:



  1. Код блокировки экрана (это пароль, которым ты разблокируешь iPhone).
  2. Пароль от iCloud (он же — пароль от учетной записи Apple ID).
  3. Пароль от резервной копии iTunes (с его помощью будет зашифрована резервная копия iPhone, если создать ее на компьютере).
  4. Пароль «Экранного времени» (позволяет защитить перечисленные выше пароли от сброса, а также устанавливать ограничения на использование устройства).
  5. Одноразовый код двухфакторной аутентификации (будем считать его «половинкой» пароля; используется только в учетных записях, на которых включена двухфакторная аутентификация).
Все эти пароли связаны достаточно запутанной системой взаимоотношений, в которой нелегко разобраться даже специалистам. Мы уже писали о некоторых взаимосвязях (например, о том, что пароль на резервную копию iTunes можно сбросить, если известен код блокировки экрана), но пароли переплетены друг с другом гораздо теснее, чем мы описывали ранее.

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





Код блокировки экрана
Код блокировки — самый важный пароль (а точнее, кодовая фраза), который владельцы iPhone используют чаще всех остальных, вместе взятых. Этот пароль применяется при настройке iPhone. По умолчанию система предлагает установить код блокировки из шести цифр, но можно поставить и PIN-код попроще — из четырех цифр. Можно выбрать и более сложный код блокировки, состоящий из произвольного количества цифр (как в Android) или из буквенно-цифровой последовательности произвольной длины.


Цифровой пароль произвольной длины
При настройке кода блокировки будет установлено соединение с iCloud; это необходимо для того, чтобы добавить устройство в доверенный круг, участники которого могут безопасно синхронизировать такие данные, как пароли («Облачная связка ключей»), «Здоровье», сообщения и «Экранное время». Соответственно, ни одна из этих категорий не будет синхронизирована, если ты не настроишь код блокировки. Кроме того, без кода блокировки не станет работать платежная система Apple Pay.

В блоге «Элкомсофт» есть две статьи на тему кода блокировки экрана:

Please Login or Register to view hidden text.

и

Please Login or Register to view hidden text.

.
Если код блокировки утрачен
Если ты обычный (хорошо, пусть продвинутый) пользователь и тебя угораздило забыть код блокировки, то тебе будет доступно не так много возможностей. Можно сбросить устройство через режим Recovery, можно — перепрошить через DFU. Конечный результат окажется один: данные будут уничтожены, а для настройки сброшенного устройства тебе потребуется ввести пароль от iCloud.

Если ты регулярно подключал телефон к компьютеру, то на компьютере может сохраниться файл lockdown. С его помощью можно установить соединение и сделать резервную копию телефона перед тем, как его сбросить (работает только в том случае, если телефон разблокировали хотя бы раз после последнего включения или перезагрузки). Если резервная копия защищена паролем от резервной копии iTunes, то из нее можно извлечь пароль от iCloud, чтобы активировать сброшенный телефон. А вот если такого файла нет или срок его действия истек, то подключить телефон к компьютеру не получится: начиная с iOS 11 для подключения к новому компьютеру нужно ввести код блокировки экрана.

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

Итак, если код блокировки утрачен:

  • Можно сбросить iPhone через Recovery. Это сбросит код блокировки экрана и удалит все данные, но для настройки устройства потребуется ввести пароль от iCloud.
  • Работникам правоохранительных органов может быть доступен вариант с перебором кодов блокировки.
  • Подключить iPhone к новому компьютеру не удастся (для установления доверенного соединения требуется ввести код блокировки экрана).
  • Если есть доступ к файлу lockdown, а телефон был разблокирован хотя бы раз с момента последней перезагрузки или включения, то существует возможность извлечь локальную резервную копию. Если резервная копия защищена паролем от резервной копии iTunes, то из нее можно будет извлечь пароль от iCloud, посредством которого можно активировать сброшенный телефон.
Если код блокировки известен
Если же код блокировки известен, с телефоном можно проделать множество разных вещей:

  • Разблокировать устройство даже после холодной загрузки.
  • Подключить к новому компьютеру или аксессуарам USB (обход блокировки USB).
  • Создать свежую резервную копию в формате iTunes.
  • Сбросить пароль от iCloud.


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


  • Сбросить пароль от резервной копии iTunes (если не установлен или известен пароль «Экранного времени»), создать резервную копию с новым паролем и узнать из нее пароль от iCloud.


  • iOS 13: установить или изменить пароль от резервной копии iTunes.
  • Обновить версию iOS.
  • Сбросить устройство к заводским настройкам, отключить iCloud lock.
  • Просматривать пароли из «Связки ключей».
  • Получить доступ к некоторым типам данных в iCloud (потребуется указать пароль от iCloud и одноразовый код двухфакторной аутентификации — оба из которых можно сбросить и настроить заново при помощи кода блокировки экрана). В список входят такие данные, как «Облачная связка ключей» (пароли от учетных записей пользователя, заполненные формы в Safari), данные «Здоровья» и «Экранного времени», сообщения (SMS, iMessage).
  • Сменить или удалить код блокировки экрана (при его удалении станут недоступными некоторые данные как в самом iPhone, так и в облаке iCloud).
Подводные камни
  • Установленный неизвестный пароль «Экранного времени» не даст сбросить пароль от резервной копии iTunes.
  • Если пользователь установил ограничения на внесение изменений в учетную запись Apple ID и защитил ограничение паролем «Экранного времени», то сбросить пароль от iCloud не удастся.
  • При смене кода блокировки экрана iOS потребует установить соединение с iCloud. Это нужно для добавления iPhone в круг доверенных устройств, которые будут синхронизировать защищенную часть данных (пароли из «Облачной связки ключей», «Здоровье», сообщения, «Экранное время»).


Выглядит достаточно запутанно? Мы только начали!





Пароль от iCloud
Учетная запись iCloud (а точнее — Apple ID) не обязательна; можно пользоваться телефоном и без нее. Впрочем, так же как и в случае с кодом блокировки, без учетной записи в iCloud полноценно пользоваться устройством не выйдет. Пароль от iCloud совпадает с паролем от учетной записи Apple ID, а без учетной записи Apple не получится не только синхронизировать данные и создавать резервные копии в iCloud, но и загружать приложения, даже бесплатные, из магазина App Store, слушать музыку и совершать покупки в Apple Music. Мало кто покупает iPhone исключительно для звонков и просмотра веб-страниц через встроенный браузер, поэтому большинство пользователей заводит себе учетную запись Apple ID.

В Apple контролируют минимальную сложность пароля к iCloud; слишком простой пароль установить не получится, равно как и пароль, совпадающий с одним из тех, которые использовались ранее.

Пароль от iCloud защищает доступ к онлайновой части доступных пользователю сервисов Apple (например, к фотографиям, которые хранятся в iCloud, к данным календарей, заметок, облачным резервным копиям). Кроме того, пароль от iCloud используется для защиты iPhone от сброса к заводским настройкам (а точнее — от возможности его после этого активировать и использовать), а также для удаленной блокировки, отслеживания или стирания данных с украденных устройств.

В то же время пароль от iCloud — далеко не все, что нужно для доступа ко всем данным в iCloud. Так, некоторые данные будут сохраняться в облако только после включения двухфакторной аутентификации (соответственно, для их извлечения понадобится одноразовый код двухфакторной аутентификации), а некоторые (пароли из «Облачной связки ключей», «Здоровье», сообщения, «Экранное время») дополнительно защищены еще и кодом блокировки экрана.

Можно ли обойти пароль и все равно получить доступ к данным из облака? Да, но набор доступных таким образом данных будет ограничен; подробности — в статье

Please Login or Register to view hidden text.

.

Если пароль от iCloud утрачен
Пароль от iCloud используется значительно реже кода блокировки экрана; соответственно, забывают его пользователи гораздо чаще. Для его восстановления Apple опубликовали подробную инструкцию в статье «

Please Login or Register to view hidden text.

».

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

Кроме того, пароль от iCloud можно узнать, проанализировав пароли, сохраненные в браузере на компьютере (Chrome, IE, Edge, Firefox), при помощи

Please Login or Register to view hidden text.

(Windows), либо извлечь из «Связки ключей» macOS инструментом

Please Login or Register to view hidden text.

. Наконец, можно проанализировать зашифрованную резервную копию iOS при помощи

Please Login or Register to view hidden text.

.

Итак, если утрачен пароль от iCloud, ты сможешь:

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


  • Сбросить с чужого устройства из экосистемы Apple (код блокировки экрана, должна быть включена двухфакторная аутентификация, нужно ввести одноразовый код).
  • Сбросить через браузер (процесс различается для учетных записей с 2FA и без; потребуется доступ к ящику электронной почты, привязанному к данному Apple ID, одноразовый код двухфакторной аутентификации для учетных записей с 2FA; код может быть доставлен в SMS, отправленной на доверенный номер телефона — который, напомним, можно сменить при помощи кода блокировки экрана).
Если пароль от iCloud известен
Как ни странно, если известен пароль от iCloud (и только он), сделать можно не так и много:

  • Заново настроить устройство, если был утрачен код блокировки экрана (сброс через Recovery, настройка с нуля, ввести пароль от iCloud для отвязки от iCloud).
  • Подтверждать покупки в App Store и iTunes Store (альтернатива — биометрическая аутентификация, для настройки которой, впрочем, все равно потребуется ввести пароль от iCloud).
  • Подтверждать обновление приложений (пароль запрашивается не всегда; закономерности выявить не удалось).
  • Логин в App Store (если включена двухфакторная аутентификация, потребуется одноразовый код).
  • Извлекать ограниченное количество данных из iCloud (если двухфакторная аутентификация не включена).
  • Извлекать чуть больше данных из iCloud (только если двухфакторная аутентификация включена и доступен одноразовый код).
  • Извлекать еще чуть больше данных из iCloud (пароли «Облачной связки ключей», пароль «Экранного времени», сообщения, «Здоровье»; только если двухфакторная аутентификация включена, доступен одноразовый код и код блокировки экрана).

  • Категории, помеченные на скриншоте выше оранжевым цветом, можно извлечь, если известен код блокировки экрана. «Зеленые» категории легко извлекаются при помощи только логина и пароля от iCloud (для учетных записей с 2FA понадобится и одноразовый код).
  • Отвязать iPhone от iCloud, отключить Find My iPhone, сбросить к заводским настройкам.
  • Войти в учетную запись Apple из браузера (если включена двухфакторная аутентификация, потребуется одноразовый код).
  • Дистанционно стереть или заблокировать iPhone при помощи сервиса

    Please Login or Register to view hidden text.

    (одноразовый код не нужен даже для учетных записей с двухфакторной аутентификацией).
  • Сменить пароль от Apple ID / iCloud.
  • Добавить учетную запись на устройствах Apple; устройство становится доверенным (если включена двухфакторная аутентификация, потребуется одноразовый код).
Подводные камни
  • Пароль от iCloud не получится сбросить или изменить, если на устройстве настроено ограничение «Экранного времени» на действия с учетной записью (а пароль «Экранного времени» неизвестен).
  • Уже по списку «Если пароль известен» видно, что сам по себе пароль от iCloud практически бесполезен, когда в учетной записи включена двухфакторная аутентификация. Имея доступ ко второму фактору, можно легко сбросить пароль от iCloud. А вот добавить или изменить дополнительный фактор аутентификации, имея только пароль от iCloud, невозможно. Официальная процедура восстановления учетной записи не дает гарантированного результата (в нашей лаборатории мы смогли восстановить лишь каждую вторую учетную запись). Похоже, дополнительный фактор аутентификации в настоящий момент имеет больший вес, чем пароль от iCloud.


Пароль от резервной копии iTunes
Этот пароль такой же опциональный, как и предыдущие два. Более того, если не установить пароль на резервную копию, то для неискушенного пользователя не изменится по большому счету ничего: все возможности как устройства, так и облачных сервисов будут доступны точно так же, как и с паролем. В статье

Please Login or Register to view hidden text.

мы описали некоторые особенности паролей от резервной копии.

Для чего вообще нужен этот пароль? Очевидно, для шифрования резервной копии, которую можно создать в iTunes. Нужно ли задавать этот пароль, если ты никогда не создавал резервные копии в iTunes и не собираешься этого делать? Да, нужно, потому что резервную копию злоумышленник может создать самостоятельно, после чего получит доступ практически к полному содержимому телефона, включая все пароли к учетным записям, которые использовались в браузере Safari. Помешает ли этот пароль злоумышленнику, если он получит в руки твой iPhone и узнает его код блокировки? Нет, не помешает, но ты сможешь дополнительно (и достаточно надежно) защитить его паролем «Экранного времени».

Насколько вообще безопасен пароль от резервной копии iTunes? Если в руки злоумышленника попадут только файлы резервной копии, зашифрованные неизвестным паролем, то тебе повезло: скорость перебора будет исключительно низкой. Даже на профессиональном оборудовании с использованием аппаратного ускорения и распределенных вычислительных сетей скорость перебора на одном компьютере не превышает 100 паролей в секунду. Это очень медленно; пароль из случайного набора букв и цифр длиной хотя бы в шесть символов не будет вскрыт и за сотню лет.

Ситуация меняется на полностью противоположную, если в руки злоумышленника попадет твой iPhone, а код блокировки экрана подсмотрят или узнают иным способом. Используя код блокировки экрана, пароль от резервной копии iTunes можно сбросить буквально за пару шагов (вместе с ним удаляется и код блокировки телефона). Если же цель — узнать оригинальный пароль, то можно сделать джейлбрейк (для старых устройств это возможно независимо от версии iOS), после чего пароль извлекается из скрытой записи «Связки ключей».

Наконец, если на iPhone запущена iOS 13, то для установки или смены пароля от резервной копии также потребуется ввести код блокировки экрана.

Если пароль от резервной копии iTunes утрачен
  • Если оригинальный iPhone в твоем распоряжении, то можно сбросить пароль от резервной копии iTunes; для этого нужен код блокировки экрана. Если установлен пароль «Экранного времени», то потребуется ввести и его.
  • Если же в твоем распоряжении только файлы резервной копии, то единственный возможный вариант — атака по словарю или методом полного перебора.
  • Если цель — анализ данных из локальной резервной копии, то заменить ее может восстановление на новое устройство либо скачивание и анализ комбинации из облачной резервной копии устройства и «Связки ключей» из iCloud. Для доступа к ним нужны будут пароль от iCloud, одноразовый код двухфакторной аутентификации и (для анализа «Облачной связки ключей») код блокировки экрана телефона.
Если пароль от резервной копии iTunes известен
Известный пароль от резервной копии (при наличии самой резервной копии) позволит:

  • Восстановить из резервной копии как оригинальное, так и новое устройство с iOS, включая восстановление «Связки ключей» с паролями.
  • Проанализировать содержимое резервной копии (включая пароли из «Связки ключей»).
  • Узнать пароль «Экранного времени» (только для iOS 12) или пароль ограничений (для iOS 11). Приложений для этого существует достаточно много; отобразить пароль «Экранного времени» в состоянии, к примеру, Elcomsoft Phone Viewer.
  • Узнать пароль от iCloud / Apple ID (подробнее об этом чуть ниже).
Подводные камни
  • Пароль от iCloud не всегда можно найти в резервной копии. Точную зависимость установить не удалось.
  • Пароль «Экранного времени» можно узнать только для старых версий iOS. В резервных копиях, созданных iOS 13 и более свежими сборками, пароль «Экранного времени» получил более высокий класс защиты и не может быть расшифрован из резервной копии.
  • Если тебе пришлось сбросить пароль от резервной копии iTunes через настройки телефона, то код блокировки экрана также будет сброшен. Это приведет к удалению с устройства данных обо всех транзакциях Apple Pay, писем и данных Exchange. Ты потеряешь возможность сбросить пароль от iCloud; будет утрачен доступ к «Облачной связке ключей» и другим защищенным данным в облаке. Впрочем, доступ к облачным данным можно восстановить, задав код блокировки заново и позволив системе добавить устройство в список доверенных.
А теперь — обещанные подробности об извлечении пароля от iCloud из резервной копии с паролем (это важно: из резервной копии, которая паролем не защищена, извлечь «Связку ключей» невозможно). Пароль от iCloud может храниться в одной или нескольких записях из следующего списка:

  • com.apple.account.AppleIDAuthentication.password;
  • apple.account.iTunesStore.password и apple.account.AppleAccount.password (устаревшие записи, в которых все еще может оказаться пароль).
Пароль от iCloud можно обнаружить и в этих записях, принадлежащих браузеру Safari:

  • appleid.apple.com;
  • www.icloud.com;
  • idmsa.apple.com;
  • id.apple.com;
  • secure1.store.apple.com;
  • secure2.store.apple.com;
  • mapsconnect.apple.com;
  • daw2.apple.com.


Пароль «Экранного времени»
«

Please Login or Register to view hidden text.

» — относительно недавно появившаяся в iOS 12 система, позволяющая отслеживать и ограничивать время использования устройства. Установленные ограничения пользователь может защитить код-паролем, состоящим из четырех цифр.

Если пользователь установил пароль «Экранного времени», то система будет запрашивать его при попытке изменить настройки как собственно ограничений, установленных в разделе «Экранного времени», так и некоторых других системных настроек. В частности, система потребует ввести пароль «Экранного времени» (в дополнение к коду блокировки экрана) при попытке сбросить настройки (Reset All Settings) с целью сбросить пароль от резервной копии iTunes.

Пользователи могут установить и собственные ограничения. Например, может быть установлено ограничение на действия с учетной записью, после чего iOS не позволит сбросить пароль от iCloud, вводя код блокировки. Еще одно ограничение может запретить установку на устройство приложений, что не даст выполнить джейлбрейк и извлечь из устройства образ файловой системы. А вот защитить пароли в «Связке ключей» таким образом не получится: их всегда можно просмотреть, даже если установлен пароль «Экранного времени».

Если пароль «Экранного времени» утрачен
  • Невозможно отключить или обойти установленные ограничения «Экранного времени», убрать или сменить пароль.
  • Невозможно включить функцию «Экранного времени» Share across devices («Учет на всех устройствах»), благодаря которой пароль «Экранного времени» попадает в облако iCloud и может быть оттуда извлечен.
  • Невозможно сбросить настройки для удаления пароля к резервной копии iTunes.
  • В зависимости от установленных пользователем настроек могут быть и другие ограничения: на сброс пароля от iCloud, установку приложений и другие.
  • iOS 12: пароль «Экранного времени» можно извлечь из локальной резервной копии с паролем (если пароль от резервной копии iTunes известен).
  • iOS 12 и 13: пароль «Экранного времени» можно извлечь из iCloud, если известен пароль от iCloud, есть одноразовый код двухфакторной аутентификации и известен код блокировки устройства (не обязательно данного конкретного устройства, но хотя бы одного устройства из доверенного круга); функция «Экранного времени» Share across devices («Учет на всех устройствах») должна быть уже включена.
Если пароль «Экранного времени» известен
Если пароль «Экранного времени» известен, ты сможешь:

  • Настраивать и отключать ограничения «Экранного времени».
  • Сменить или удалить пароль «Экранного времени».
  • Если известен код блокировки устройства, сменить пароль от резервной копии iTunes.
Подводные камни
  • iOS 12: для того чтобы извлечь пароль «Экранного времени» из локальной резервной копии, необходимо, чтобы локальная копия была зашифрована паролем, а сам пароль от резервной копии iTunes был известен.
  • iOS 13: пароль «Экранного времени» хранится с повышенным классом защиты и не может быть извлечен из резервной копии. Вместо этого можно использовать извлечение из iCloud.

  • Из облака iCloud пароль «Экранного времени» можно извлечь лишь при условии, что пользователь включил функцию «Экранного времени» Share across devices («Учет на всех устройствах»). Если эта функция включена, то в качестве кода блокировки можно использовать код блокировки экрана или системный пароль любого устройства Apple, входящего в «доверенный круг» (то есть они зарегистрированы в том же Apple ID и на них также включена функция «Экранного времени» «Учет на всех устройствах»).
  • Функция «Учет на всех устройствах» работает исключительно в учетных записях с двухфакторной аутентификацией. Соответственно, потребуется ввести одноразовый код двухфакторной аутентификации.