Безопасность ответственного хранения Связки ключей iCloud
Безопасная инфраструктура iCloud помогает гарантировать, что восстановление переданной связки ключей смогут выполнить только авторизованные пользователи и устройства. За iCloud расположены кластеры аппаратных модулей системы безопасности (HSM), которые защищают записи ответственного хранения. Как было описано ранее, каждый кластер имеет ключ, который используется для шифрования находящихся под его контролем записей ответственного хранения.
Чтобы восстановить связку ключей, пользователь должен пройти аутентификацию с использованием своей учетной записи и пароля iCloud, а также ответить на сообщение SMS, которое будет отправлено на зарегистрированный номер телефона. Затем пользователь должен ввести свой код безопасности iCloud. Чтобы убедиться, что пользователь знает свой код безопасности iCloud, кластер HSM использует протокол Secure Remote Password (SRP); сам код не пересылается в компанию Apple. Каждый член кластера независимо от других убеждается, что пользователь не превысил максимальное количество попыток извлечения своей записи (см. ниже). Если большинство членов кластера соглашаются с этим, кластер снимает защиту с записи ответственного хранения и отправляет ее на устройство пользователя.
Затем устройство с помощью сохраненных данных расшифровывает случайный ключ, которым была зашифрована связка ключей пользователя. С помощью этого ключа связка ключей, полученная из CloudKit и хранилища ключей и значений в iCloud, расшифровывается и восстанавливается на устройстве. Служба ответственного хранения разрешает до 10 попыток аутентификации и получения хранящейся в ней записи. После нескольких неудавшихся попыток запись блокируется, и, чтобы получить право на дополнительные попытки, пользователь должен позвонить в службу поддержки Apple. После десятой неудавшейся попытки кластер HSM уничтожает запись ответственного хранения, и восстановить связку ключей невозможно. Такой подход защищает от попыток извлечь запись методом перебора, но жертвует связкой ключей.
Эти политики закодированы в прошивке HSM. Карты административного доступа, разрешающие вносить изменения в прошивку, уничтожены. Любая попытка изменения прошивки или доступа к личному ключу приводит к тому, что кластер HSM удаляет личный ключ. Если это происходит, владелец каждой связки ключей, защищенной этим кластером, получает сообщение о том, что его записи ответственного хранения были утеряны. При желании пользователи могут отправить записи на хранение повторно.