Seguridad de Contactos de recuperación de cuenta
Los usuarios pueden agregar un máximo de cinco personas de confianza como contactos de recuperación de cuenta para que les ayuden a recuperar sus datos y su cuenta de iCloud, incluidos los datos encriptados de extremo a extremo (independientemente de si han activado o no 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 encriptados de extremo a extremo del usuario.
La función de contactos de recuperación se diseñó tomando en cuenta la privacidad del usuario. Apple no sabe a quién elige un usuario como contacto de recuperación. Los servidores de Apple sólo obtienen información sobre un contacto de recuperación al final de un intento de recuperación después de que el usuario le pide ayuda al contacto y este comienza a ayudar con la recuperación. Una vez que se completa la recuperación, esa información no se retiene.
Proceso de seguridad de los contactos de recuperación
Cuando un usuario configura un contacto de recuperación de cuenta, se genera una clave asociada a ese contacto. Esta clave protege el acceso a los datos de iCloud del usuario, incluidos los datos de CloudKit encriptados de extremo a extremo. A continuación, se genera una clave AES aleatoria de 256 bits y se utiliza para encriptar la clave del contacto de recuperación con el fin de crear un paquete de contacto de recuperación. El paquete encriptado se envía al contacto de recuperación para que lo conserve, y la clave AES aleatoria la almacena Apple. Ni la clave AES ni el paquete proporcionan información sobre la clave subyacente por sí mismos. Al momento de la recuperación, cuando el dispositivo del usuario haya obtenido con éxito el paquete de contacto de recuperación y la clave AES de Apple, puede combinarlos para obtener la clave original y acceder a los datos de iCloud del usuario.
Para configurar un contacto de recuperación, el dispositivo del usuario se comunica con los servidores de Apple para cargar la porción de la clave que Apple conservará (la clave AES mencionada anteriormente). A continuación, establece un contenedor de CloudKit encriptado de extremo a extremo con el contacto de recuperación para compartir la porción que este requiere (el paquete de contacto de recuperación que se encriptó usando la clave AES). Además, se comparte con el contacto de recuperación un secreto de autorización creado por Apple, el cual se usará para recuperar la cuenta y ayudar a restablecer la contraseña. La comunicación para invitar y aceptar contactos de recuperación se lleva a cabo a través de un canal IDS autentificado mutuamente. El contacto de recuperación almacena automáticamente la información recibida en su llavero de iCloud. Apple no puede acceder ni a los contenidos del contenedor de CloudKit, ni al llavero de iCloud que almacena esta información. Al momento de compartir, los servidores de Apple visualizan solamente un ID anónimo del contacto de recuperación.
Más tarde, cuando un usuario necesite recuperar su cuenta y sus datos en iCloud, puede 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 debe proporcionar al usuario por un medio separado (por ejemplo, en persona o mediante una llamada telefónica). A continuación, el usuario ingresa este código en su dispositivo para establecer una conexión segura entre dispositivos utilizando el protocolo SPAKE2+, cuyos contenidos no son accesibles para Apple. Esta interacción la organizan los servidores de Apple, pero Apple no puede iniciar el proceso de recuperación.
Una vez que se establece la conexión segura y se completan todas las comprobaciones de seguridad necesarias, el dispositivo del contacto de recuperación devuelve su porción de la información de la clave y el secreto de autorización establecido anteriormente al usuario que solicitó la recuperación. El usuario presenta este secreto de autorización a un servidor de Apple, lo que autoriza el acceso a la información de la clave que Apple tiene. Al presentar el secreto de autorización, también se permite el restablecimiento de la contraseña de la cuenta para poder 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 del contacto de recuperación de cuenta, y luego la usa para desencriptar y recuperar sus datos de iCloud.
Estas son protecciones que sirven para impedir que un contacto de recuperación inicie el proceso sin el consentimiento del usuario, lo cual incluye una revisión de actividad o inactividad de la cuenta del usuario. Si la cuenta se usa de forma activa, la recuperación mediante un contacto de recuperación también requerirá que se conozca un código reciente del dispositivo o el código de seguridad de iCloud.