Обеспечение безопасности и контакты для восстановления доступа
Пользователи могут добавлять до пяти людей, которым они доверяют, в качестве контактов для восстановления доступа. Эти контакты помогут восстановить доступ к учетной записи и данным iCloud, в том числе всем данным, которые защищены сквозным шифрованием, независимо от того, включена ли Расширенная защита данных. Ни Apple, ни контакт для восстановления доступа сами по себе не обладают информацией, необходимой для восстановления пользовательских данных iCloud, защищенных сквозным шифрованием.
Функционирование контактов для восстановления доступа обеспечивает полную конфиденциальность данных. Apple не знает, кого пользователь назначил контактами для восстановления доступа. Серверы Apple получают информацию о контакте для восстановления доступа только в ходе попытки восстановления, после того как пользователь запрашивает помощь и соответствующий контакт начинает процесс восстановления. После восстановления эта информация не сохраняется.
Процесс обеспечения безопасности с помощью контактов для восстановления доступа
Когда пользователь настраивает контакт для восстановления доступа, ключ для доступа к пользовательским данным iCloud (в том числе данным CloudKit, которые защищены сквозным шифрованием) шифруется надежным случайным ключом. Затем этот случайный ключ разделяется между контактом для восстановления доступа и Apple. Восстановление исходного ключа и доступ к пользовательским данным iCloud возможны только после того, как обе части ключа объединяются в процессе восстановления доступа.
При настройке контакта для восстановления доступа устройство пользователя обменивается данными с серверами Apple, чтобы выгрузить ту часть данных ключа, которая будет храниться у Apple. Затем устройство создает защищенный сквозным шифрованием контейнер CloudKit с контактом для восстановления доступа и использует этот контейнер для отправки той части ключа, которая необходима контакту для восстановления доступа. Кроме того, Apple и контакт для восстановления доступа получают от пользователя один и тот же секретный код авторизации. Этот код позднее потребуется для восстановления доступа. Обмен данными, необходимый, чтобы пригласить контакты для восстановления доступа и получить от них одобрение запроса, происходит через взаимно удостоверенному каналу IDS. Контакт для восстановления доступа автоматически сохраняет полученные данные в своей связке ключей iCloud. Apple не может получить доступ ни к содержимому контейнера CloudKit, ни к связке ключей iCloud, в которых хранятся эти данные. При обмене данными серверы Apple могут прочитать только анонимный идентификатор контакта для восстановления доступа.
Позднее, если пользователю потребуется восстановить доступ к своей учетной записи и данным iCloud, пользователь может запросить помощь у контакта для восстановления доступа. В этот момент на устройстве контакта для восстановления доступа генерируется код восстановления. Контакт для восстановления доступа передает этот код пользователю не в электронном виде (например, сообщает лично или по телефону). Затем пользователь вводит этот код восстановления на своем устройстве, чтобы установить безопасное соединение между устройствами по протоколу SPAKE2+, содержимое которого Apple не может прочитать. За организацию этого процесса отвечают серверы Apple, но Apple не может запустить процесс восстановления.
После установления безопасного соединения и выполнения всех необходимых проверок безопасности устройство контакта для восстановления доступа возвращает свою часть данных ключа и ранее предоставленный секретный код авторизации пользователю, запросившему восстановление. Пользователь передает этот секретный код авторизации на серверы Apple, которые разрешают ему получить доступ к данным ключа, хранящимся у Apple. Предоставив секретный код для авторизации, также можно сбросить пароль учетной записи, чтобы восстановить доступ к ней.
Наконец, устройство пользователя объединяет данные ключа, полученные от Apple и от контакта для восстановления доступа, а затем использует их, чтобы расшифровать и восстановить данные iCloud.
Определенные меры безопасности, в том числе проверка активности учетной записи пользователя, не позволяют контакту для восстановления доступа запустить процесс восстановления без согласия пользователя. Если учетная запись активна, контакту для восстановления доступа также потребуется указать недавний код‑пароль устройства или код безопасности iCloud.