Безопасное восстановление Связки ключей iCloud
Связка ключей iCloud передает данные связки ключей пользователей в Apple, не позволяя Apple читать пароли и другие данные, которые там содержатся. Даже если у пользователя есть только одно устройство, функция восстановления связки ключей обеспечивает защиту от потери данных. Это особенно важно, если Safari генерирует для учетных записей веб-сайтов случайные, надежные пароли, поскольку единственный экземпляр этих паролей хранится в связке ключей.
Фундаментальным элементом восстановления связки ключей является служба дополнительной аутентификации и безопасного ответственного хранения, разработанная компанией Apple специально для поддержки этой функции. Связка ключей пользователя зашифрована с использованием надежного код-пароля, и служба ответственного хранения выдает копию этой связки ключей только при соблюдении строгого набора условий.
Использование дополнительной аутентификации
Есть несколько способов установить надежный код-пароль.
Если для учетной записи пользователя включена двухфакторная аутентификация, для восстановления переданной на хранение связки ключей используется код-пароль устройства.
Если двухфакторная аутентификация не настроена, пользователю предлагается создать код безопасности iCloud, введя код-пароль из 6 цифр. Либо, не используя двухфакторную аутентификацию, пользователи могут указать собственный, более длинный код или позволить устройствам создать криптографически случайный код, который они могут записать и хранить самостоятельно.
Процесс передачи связки ключей на хранение
После задания код-пароля связка ключей передается на ответственное хранение в Apple. Устройство iOS, iPadOS или macOS сначала экспортирует копию связки ключей пользователя, а затем шифрует ее с помощью ключей из хранилища асимметричных ключей и помещает в хранилище iCloud типа ключ-значение, причем само хранилище принадлежит пользователю. Хранилище ключей защищается с помощью кода безопасности iCloud и открытого ключа кластера аппаратного модуля системы безопасности (HSM), в котором хранится запись ответственного хранения. Эта запись становится записью ответственного хранения iCloud пользователя. В случае учетных записей с двухфакторной аутентификацией связка ключей также хранится в CloudKit. Она защищена с помощью промежуточных ключей, которые можно восстановить только с помощью содержимого записи ответственного хранения iCloud, что обеспечивает одинаковый уровень защиты.
С помощью содержимого записи ответственного хранения восстанавливающее устройство также может заново присоединиться к связке ключей iCloud, подтвердив для имеющихся устройств, что восстанавливающее устройство завершило процесс передачи, а следовательно, владелец учетной записи дал на это свое разрешение.
Примечание. Если вместо того, чтобы задавать свой собственный сложный или четырехзначный код, пользователь решит принять криптографически случайный код, запись ответственного хранения будет не нужна. Для защиты случайного ключа будет использован код безопасности iCloud.
Помимо установки кода безопасности, пользователи должны зарегистрировать номер телефона. Это обеспечивает второй уровень аутентификации при восстановлении связки ключей. Пользователь получает SMS и должен на него ответить, чтобы процесс восстановления был продолжен.