Какие ключи переданы Apple во время резервного копирования iCloud?


8

Реализация защиты данных iOS и реализация резервных копий iTunes достаточно хорошо документированы на высоком уровне на by Apple и на гораздо более детальном уровне by third parties.

Тем не менее, мне интересно узнать подробности реализации iCloud. Apple document упоминает этот вопрос очень кратко в параграфе резервный ключевой пакет iCloud.

В соответствии с этой информацией и в отличие от локальной резервной копии iTunes данные считываются с устройства, все еще зашифрованного (за исключением файлов с классом защиты NSFileProtectionNone, для которых ключ класса всегда доступен всегда). С другой стороны, Apple явно может расшифровать резервную копию iCloud даже без того, чтобы пользователь предоставил исходные идентификационные данные Apple ID или телефон, с которого он был создан, тем самым передав (или не удалось?) mud puddle test.

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

Хотя уже известно, что Apple имеет полный доступ к резервным хранилищам iCloud, хранящимся на их серверах, это подразумевает, что, включив резерв iCloud даже один раз, некоторые ключи шифрования, которые в противном случае никогда не покидают устройство iOS, передаются и сохраняются в iCloud.

Я задаюсь вопросом, что противник сможет сделать, как только они получают доступ к резервной копии ICloud, используя some third-party software, чтобы загрузить все на компьютер:

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

Может ли кто-нибудь поделиться некоторыми знаниями о том, как работает процесс резервного копирования iCloud, и если сценарий выше правдоподобен?

+1

Я не верю, что кто-либо за пределами Apple сможет ответить на этот вопрос, поскольку они, как правило, очень конфиденциальны о том, как работают их службы. 08 сен. 152015-09-08 21:31:31

1

Существует newer security guide published by Apple, чем тот, на который вы ссылались, который содержит список непереходных ключей, элементов брелка, для которых класс защищен. Слово «Конфиденциальность» содержится в путеводителе 2012 года. В 2016 году было добавлено еще двадцать ссылок. Подобные запросы распространены, особенно когда пользователи iOS хранят медицинскую, финансовую, интеллектуальную собственность и другую конфиденциальную информацию.

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

Если вы хотите обеспечить безопасную конфиденциальность, вам необходимо шифрование на стороне клиента на уровне пользовательского интерфейса. Неясно, сможет ли приложение войти в App Store с таким устройством конфиденциальности. Такой код, вероятно, будет считаться потенциальным источником вредоносных программ или вирусов Apple. (См. Раздел «Обязательство к безопасности» нового руководства.)

Хотя различные комментарии можно найти по вашей теме, ни одна из них не входит в состав разработчиков Apple или групп безопасности, поскольку информация на стороне сервера, безусловно, считается конфиденциальной компанией Apple. API для клиентских приложений - это черный ящик, прозрачность основных услуг низкая, а the Core Backup API не достаточно гранулирована, чтобы давать подсказки.

Подробнее о классе NSFileProtectionNone и связанных с ним классах в документации по API вы можете узнать, но диаграмма последовательности или описание не предоставлены. Мне не удалось найти последовательность или диаграмму действий с любой деталью к ней. Мы знаем только, что the transfer is via TLS.

Ударщик пакетов будет производить детали, но второй абзац выше будет содержать независимо от рабочих деталей.