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, é gerada uma chave associada a esse contato. Essa chave protege o acesso aos dados do iCloud do usuário, incluindo dados do CloudKit criptografados de ponta a ponta. A seguir, é gerada uma chave AES de 256 bits aleatória, usada para criptografar a chave de Contato de Recuperação com o objetivo de criar um Pacote de Contato de Recuperação. O Pacote criptografado é enviado para o Contato de Recuperação para custódia, e a chave AES aleatória é armazenada com a Apple. Nem a chave AES nem o pacote fornece informações sobre a chave subjacente por si só. No momento da recuperação, depois que o dispositivo do usuário obtém o Pacote de Contato de Recuperação do seu Contato de Recuperação e a chave AES da Apple, ele pode combinar os dois para recuperar a chave original e acessar os dados do iCloud do usuário.
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á (a chave AES mencionada anteriormente). 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 (o Pacote de Contato de Recuperação criptografado usando a chave AES). Uma autorização secreta, criada pela Apple, também é compartilhada com o contato de recuperação. Ela será usada para recuperar a conta e ajudar a redefinir a senha da conta. 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 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.