Seguridad del contacto de recuperación de la cuenta
Los usuarios pueden añadir hasta cinco personas de su confianza como contactos de recuperación de la cuenta para que les ayuden a recuperar su cuenta y sus datos de iCloud, incluidos los datos con encriptación de punto a punto, tengan o no activada la protección de datos avanzada. Ni Apple ni el contacto de recuperación tienen la información necesaria individualmente para recuperar los datos de iCloud con encriptación de punto a punto del usuario.
Los contactos de recuperación se han diseñado teniendo en cuenta la privacidad del usuario. Apple desconoce los contactos de recuperación elegidos por el usuario. Los servidores de Apple solo conocen información sobre un contacto de recuperación al final de un intento de recuperación, cuando el usuario ha pedido ayuda al contacto y su contacto ya ha empezado a ayudarle con la recuperación. Una vez concluida la recuperación, esa información no se retiene.
Proceso de seguridad del contacto de recuperación
Cuando un usuario configura un contacto de recuperación para su cuenta, se genera una clave asociada a ese contacto. Esta clave protege el acceso a los datos del usuario en iCloud, incluidos los datos de CloudKit encriptados de punto a punto. Después, se genera una clave AES aleatoria de 256 bits, que se utiliza para encriptar la clave del contacto de recuperación y crear un paquete de contacto de recuperación. El paquete encriptado se envía al contacto de recuperación para guardarlo de forma segura y la clave AES aleatoria se almacena en Apple. Ni la clave AES ni el paquete proporcionan ninguna información sobre la clave subyacente. En el momento de la recuperación, cuando el dispositivo del usuario ha obtenido el paquete de contacto de recuperación de su contacto de recuperación y la clave AES de Apple, puede combinarlos para recuperar la clave original y acceder a los datos del usuario en iCloud.
Para configurar un contacto de recuperación de cuenta, el dispositivo del usuario se comunica con los servidores de Apple para subir la parte de la información de la clave que tendrá Apple (la clave AES mencionada anteriormente). A continuación, establece un contenedor de CloudKit con encriptación de punto a punto con el contacto de recuperación para compartir la parte que el contacto de recuperación necesita (el paquete de contacto de recuperación encriptado con la clave AES). También se comparte con el contacto de recuperación un secreto de autorización creado por Apple. Se utilizará para recuperar la cuenta y ayudar a restablecer la contraseña. La comunicación para invitar y aceptar a los contactos de recuperación tiene lugar a través de un canal de IDS autenticado mutuamente. El contacto de recuperación almacena automáticamente la información recibida en su llavero de iCloud. Apple no puede acceder al contenido del contenedor de CloudKit ni al llavero de iCloud que almacena esta información. Cuando se comparte esa parte, los servidores de Apple solo ven un ID anónimo para el contacto de recuperación.
Más adelante, cuando un usuario necesite recuperar su cuenta y sus datos de iCloud, podrá solicitar ayuda a su contacto de recuperación. En ese momento, el dispositivo del contacto de recuperación genera un código de recuperación, que el contacto de recuperación proporciona al usuario fuera de red (por ejemplo, en persona o mediante una llamada telefónica). A continuación, el usuario introduce este código de recuperación en su dispositivo para establecer una conexión segura entre dispositivos mediante el protocolo SPAKE2+, cuyo contenido no es accesible para Apple. Esta interacción está orquestada por los servidores de Apple, pero Apple no puede iniciar el proceso de recuperación.
Una vez establecida la conexión segura y completadas todas las comprobaciones de seguridad necesarias, el dispositivo del contacto de recuperación devuelve al usuario que solicita la recuperación su parte de la información de la clave y el secreto de autorización establecido anteriormente. El usuario presenta este secreto de autorización a un servidor de Apple, lo cual otorga acceso a la información de la clave que Apple almacena. La presentación del secreto de autorización también autoriza el restablecimiento de la contraseña de la cuenta para restaurar el acceso a la misma.
Por último, el dispositivo del usuario vuelve a combinar la información de la clave recibida de Apple y el contacto de recuperación de cuenta, y después lo usa para desencriptar y recuperar sus datos de iCloud.
Existen medidas de seguridad para impedir que un contacto de recuperación inicie la recuperación sin el consentimiento del usuario, que incluyen un control de vivacidad en la cuenta del usuario. Si la cuenta se está usando activamente, la recuperación empleando un contacto de recuperación también requiere conocer un código del dispositivo reciente o el código de seguridad de iCloud.