Criptografia do iCloud
A criptografia de dados no iCloud está intimamente associada ao modelo de armazenamento de dados, a começar pelos frameworks e APIs do CloudKit que permitem que os apps e o software do sistema armazenem dados no iCloud em nome do usuário e mantenham tudo atualizado nos dispositivos e na web.
Criptografia do CloudKit
O CloudKit é um framework que permite que desenvolvedores de apps armazenem dados de valores de chaves, dados estruturados e materiais (dados grandes armazenados separadamente do banco de dados, como imagens ou vídeos) no iCloud. O CloudKit é compatível com bancos de dados públicos e privados, agrupados em contêineres. Os bancos de dados públicos são compartilhados globalmente (normalmente usados para materiais genéricos) e não são criptografados. Os bancos de dados privados armazenam os dados do iCloud de cada usuário.
O CloudKit usa uma hierarquia de chaves que coincide com a estrutura dos dados. O banco de dados privado de cada contêiner é protegido por uma hierarquia de chaves que tem raízes em uma chave assimétrica chamada de chave de Serviço do CloudKit. Essas chaves são exclusivas para cada usuário do iCloud e são geradas no dispositivo de confiança do usuário. Quando os dados são gravados no CloudKit, todas as chaves de registro são geradas no dispositivo de confiança do usuário e embaladas na hierarquia de chaves apropriada antes que qualquer dado seja enviado.
Muitos serviços da Apple, relacionados no artigo de Suporte da Apple Visão geral da segurança de dados do iCloud, usam criptografia de ponta a ponta com uma chave de serviço do CloudKit protegida da mesma maneira que a sincronização das Chaves do iCloud. Nesses contêineres do CloudKit, as chaves de serviço são armazenadas somente nos dispositivos de confiança do usuário e não podem ser acessadas pela Apple nem nenhum terceiro. Essas chaves são sincronizadas entre os dispositivos de um usuário mesmo que ele opte por não usar as Chaves do iCloud para sincronizar suas senhas, chaves‑senha e outros dados de usuário. No caso da perda de um dispositivo, o usuário pode recuperar os dados das Chaves do iCloud via Recuperação segura das Chaves do iCloud, Contatos para Recuperação de Conta ou uma Chave Reserva da Conta.
Gerenciamento de chaves de criptografia
A segurança dos dados criptografados no CloudKit dependem da segurança das chaves de criptografia correspondentes. As chaves de serviço do CloudKit são divididas em duas categorias: criptografadas de ponta a ponta e disponíveis depois da autenticação.
Chaves de serviço criptografadas de ponta a ponta: nos serviços do iCloud criptografados de ponta a ponta, as chaves privadas relevantes ao serviço do CloudKit nunca são disponibilizadas aos servidores da Apple. Pares de chaves de serviço, incluindo as chaves privadas, são criadas localmente em um dispositivo de confiança do usuário e transferidas para os outros dispositivos do usuário com a segurança das Chaves do iCloud. Embora os fluxos de recuperação e sincronização das Chaves do iCloud sejam mediados pelos servidores da Apple, esses servidores são criptograficamente impedidos de acessar qualquer dado das chaves do usuário. No pior cenário de perda de acesso às Chaves do iCloud e de todos os mecanismos de recuperação, os dados criptografados de ponta a ponta no CloudKit são perdidos. A Apple não pode ajudar a recuperar esses dados.
Chaves de serviço disponíveis depois da autenticação: nos outros serviços, como Fotos e iCloud Drive, as chaves de serviço são armazenadas nos Módulos de Segurança de Hardware do iCloud nos centros de processamento de dados da Apple e podem ser acessadas por alguns serviços da Apple. Quando um usuário inicia a sessão no iCloud em um novo dispositivo e autentica o ID Apple, essas chaves podem ser acessadas pelos servidores da Apple sem nenhuma interação ou entrada adicional do usuário. Por exemplo, depois de iniciar a sessão em iCloud.com, o usuário pode visualizar imediatamente suas fotos online. Essas chaves de serviço são chaves disponíveis depois da autenticação.