Segurança de contatos de recuperação de conta
Usuários podem adicionar até cinco pessoas em quem confiam como contatos para recuperação de conta para ajudar na recuperação da conta e dados do iCloud, incluindo todos os dados criptografados de ponta a ponta, independentemente de essas pessoas terem ou não ativado a Proteção Avançada de Dados. Nem a Apple nem o contato de recuperação têm as informações necessárias para recuperar os dados do iCloud criptografados de ponta a ponta do usuário.
O Contato de Recuperação é projetado com base na privacidade do usuário. Os contatos de recuperação de um usuário não são de conhecimento da Apple. Os servidores da Apple só tomam conhecimento das informações sobre um contato de recuperação no final do processo de uma tentativa de recuperação, depois que o usuário pede ajuda ao contato e o contato começa realmente a ajudar na recuperação. Essas informações não são retidas depois que a recuperação é concluída.
Processo de segurança do contato de recuperação
Quando um usuário configura um Contato para Recuperação de Conta, a chave para acessar os dados do usuário no iCloud (incluindo os dados do CloudKit criptografados de ponta a ponta) é criptografada com uma chave aleatória forte. Essa chave aleatória é dividida entre o contato de recuperação e a Apple. No momento da recuperação, apenas quando as duas partes das chaves são recombinadas, é que a chave original pode ser recuperada e os dados do iCloud do usuário acessados.
Para configurar um Contato para Recuperação de Conta, o dispositivo do usuário se comunica com os servidores da Apple para enviar a parte das informações de chaveamento que a Apple reterá. Depois, ele estabelece um contêiner do CloudKit criptografado de ponta a ponta com o contato de recuperação para compartilhar a parte que o contato de recuperação precisa. A Apple e o contato de recuperação também recebem o mesmo segredo de autorização do usuário, necessário mais tarde para a recuperação. A comunicação para convidar e aceitar contatos de recuperação ocorre por um canal IDS com autenticação mútua. O contato de recuperação armazena automaticamente as informações recebidas nas suas respectivas Chaves do iCloud. A Apple não pode acessar o conteúdo do contêiner do CloudKit nem as Chaves do iCloud que armazenam essas informações. Quando o compartilhamento é realizado, os servidores da Apple veem apenas um ID anônimo do contato de recuperação.
Posteriormente, quando um usuário precisa recuperar sua conta e dados do iCloud, ele pode pedir ajuda ao contato de recuperação. Nesse momento, um código de recuperação é gerado pelo dispositivo do contato de recuperação, que fornece o código ao usuário fora da banda (pessoalmente ou por telefone, por exemplo). O usuário digita o código de recuperação em seu dispositivo para estabelecer uma conexão segura entre os dispositivos com o protocolo SPAKE2+, cujo conteúdo não pode ser acessado pela Apple. Essa interação é orquestrada pelos servidores da Apple, mas a Apple não pode iniciar o processo de recuperação.
Depois de estabelecer a conexão segura e realizar todas as verificações de segurança necessárias, o dispositivo do contato de recuperação devolve a sua parte das informações de chaveamento para o usuário que está solicitando a recuperação, assim como o segredo de autorização previamente estabelecido. O usuário apresenta esse segredo de autorização a um servidor da Apple, que concede acesso às informações de chaveamento que a Apple guarda. O fornecimento do segredo de autorização também autoriza a redefinição da senha da conta para restaurar o acesso à conta.
Por fim, o dispositivo do usuário recombina as informações de chaveamento recebidas da Apple e do Contato para Recuperação de Conta, e as usa para descriptografar e recuperar seus dados do iCloud.
Existem medidas de segurança efetivas para impedir que um contato de recuperação inicie uma recuperação sem o consentimento do usuário, que incluem uma verificação de atividade na conta do usuário. Se a conta está em uso ativo, a recuperação com um Contato de Recuperação também exige o conhecimento de um código de dispositivo recente ou o Código de Segurança do iCloud.