Атака на iPhone: взламываем запароленный iPhone через депонированные ключи

Олег Афонин, 10.01.2017
Xakep #215
С каждым новым поколением устройств и с каждой новой версией iOS взломать мобильные устройства Apple становится все сложнее. И если для 32-битных устройств достаточно было установить jailbreak, чтобы получить полный доступ к файловой системе, то уже начиная с iPhone 5s хакеры сталкиваются с рядом ограничений. А что делать, если исследуемый iPhone заблокирован паролем? Про способы обхода блокировки обманом датчика отпечатков пальцев мы писали в одном из прошлых выпусков. Сегодня же мы рассмотрим еще один способ обхода блокировки — на сей раз с использованием депонированных ключей.

WARNING

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

Что такое депонированный ключ

С точки зрения пользователя, депонированный ключ (он же lockdown file или pairing record) — это то, что избавляет от необходимости каждый раз разблокировать телефон при проводном подключении к компьютеру для синхронизации с iTunes. Во время первого подключения телефон выдаст запрос: «Доверять этому компьютеру?» При положительном ответе (чтобы ответить, нужно сперва разблокировать телефон) будет создана пара криптографических ключей, один из которых передается на компьютер (и сохраняется приложением iTunes в виде файла), а второй шифруется с использованием аппаратного ключа и сохраняется в Secure Enclave (сразу скажу: извлечь и расшифровать вторую половинку пока не удалось никому).

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

Компьютер, удаленный из списка доверенных, теряет доступ к содержимому на устройстве: iOS уничтожает вторую половинку ключа — ту, которая хранится в телефоне. Без нее депонированный ключ, лежащий на компьютере, оказывается совершенно бесполезным.

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

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

Историческая справка

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

iOS 8 и более новые. В какой-то момент Apple надоело вытаскивать для полицейских данные из многочисленных телефонов. Да и репутация страдала. Поэтому в iOS 8 механизм установления доверенных отношений был полностью переработан. Теперь создается не один, а пара ключей и доверенные отношения могут быть как отозваны пользователем в настройках устройства, так и уничтожены после сброса к заводским настройкам. Кроме того, поскольку на устройствах под управлением iOS используется шифрование раздела данных, для установления связи с компьютером из списка доверенных обязательно, чтобы устройство было разблокировано хотя бы раз после загрузки.

Срок действия депонированных ключей

Официальная документация Apple часто умалчивает о некоторых вещах. В разных источниках встречаются разные догадки по поводу того, когда и при каких обстоятельствах могут «сгорать» ключи. Мы проверили, как обстоят дела в реальности, и вот что получилось.

Депонированные ключи действительны 48 часов с момента последней разблокировки?

Ничего подобного. В нашей лаборатории есть устройства, работающие под всеми версиями iOS. Мы провели тщательную проверку, протестировав iPhone с iOS 8.1, 9.1, 10.1 и заканчивая третьей бета-версией iOS 10.2. Все устройства получилось разблокировать с помощью депонированного ключа спустя 48, а потом и 96 часов с момента последней разблокировки.

Депонированные ключи действительны 30, 60 или 90 дней?

Тоже нет. Ждать три месяца мы не стали, а просто подключили к компьютеру несколько телефонов, которые лежали в лаборатории с лета. Все устройства без проблем разблокировались депонированными ключами.

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

Как взломать iPhone с помощью депонированных ключей

С теорией разобрались. Давай попробуем разблокировать телефон с помощью депонированного ключа, скопированного с доверенного компьютера. Для этого воспользуемся инструментарием Elcomsoft iOS Forensic Toolkit.

У тебя не получится использовать депонированный ключ для разблокировки экрана. Ключи используются исключительно для синхронизации с iTunes и для создания резервных копий. Твоя цель — заставить телефон создать резервную копию на твоем компьютере и вытащить из нее данные.

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

Старым способом мало кто пользуется. Многие про него вообще не знают. Если владелец телефона ни разу не создавал локальную резервную копию в iTunes (а пользовался только облачным резервным копированием или не пользовался вовсе), то пароль на резервные копии, скорее всего, будет пустым. Это означает две вещи. С одной стороны, резервная копия без пароля сохраняется в незашифрованном виде. С другой — часть данных (keychain) все-таки будет зашифрована, причем для шифрования будет использован стойкий аппаратный ключ, который хранится в самом устройстве и который невозможно извлечь или взломать (с оговоркой: извлечь аппаратный ключ все-таки можно, но только из старых 32-разрядных устройств без Secure Enclave и только при использовании jailbreak, установить который невозможно без разблокировки паролем).

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

А теперь подумай, что лучше: незашифрованный бэкап, в котором недоступны сохраненные пароли и прочие интересные вещи, или же бэкап с паролем, который можно расшифровать целиком? Полагаю, второй вариант привлекательнее!

Так что если пароль на резервную копию не установлен, не поленись установить временный. Если же для снятия бэкапа ты используешь Elcomsoft iOS Forensic Toolkit, то приложение установит временный пароль 123 автоматически.

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

Если бэкапы защищены паролем, все данные шифруются непосредственно на самом устройстве. Наружу выдается уже зашифрованный поток. iTunes или Elcomsoft iOS Forensic Toolkit выступает в роли простого приемника, сохраняющего зашифрованный поток в файлы.

Извини, но продолжение статьи доступно только подписчикам

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

Подпишись на журнал по выгодной цене

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