Quelles clés sont transférées à Apple lors d'une sauvegarde iCloud?


8

La mise en œuvre de la protection des données iOS et la mise en œuvre des sauvegardes iTunes sont toutes deux raisonnablement bien documentées, à un niveau élevé par by Apple, et à un niveau beaucoup plus détaillé by third parties.

Cependant, je m'interroge sur les détails de mise en œuvre des sauvegardes iCloud. Apple document mentionne seulement l'affaire très brièvement dans un paragraphe sur la clé de sauvegarde iCloud. Selon ces informations, et contrairement à une sauvegarde iTunes locale, les données sont lues à partir du périphérique toujours crypté (sauf pour les fichiers avec la classe de protection NSFileProtectionNone, pour lesquels la clé de classe est facilement disponible à tout moment). D'autre part, Apple est clairement capable de déchiffrer une sauvegarde iCloud même sans que l'utilisateur fournisse les informations d'identification Apple originales ou le téléphone avec lequel il a été créé à l'origine, réussissant ainsi (ou échouant?) Le mud puddle test. Cela semble impliquer qu'à un moment donné dans le processus de sauvegarde, les clés de classe réelles sont transmises à Apple (sinon, une sauvegarde iCloud ne peut pas fonctionner pendant que le périphérique est verrouillé - certains fichiers sont protégés par un clé de classe qui n'est disponible que tant que l'écran est déverrouillé). (Pour les sauvegardes locales, les fichiers sont décryptés sur l'appareil, en utilisant les clés contenues dans le sac de stockage, sans exposer les clés à long terme à l'ordinateur effectuant la sauvegarde.)

Alors que l'on sait déjà que Apple a un accès complet aux sauvegardes iCloud stockées sur leurs serveurs, cela impliquerait qu'en permettant la sauvegarde d'iCloud même une seule fois, certaines clés de chiffrement qui autrement ne quitteraient jamais un appareil iOS sont transmises et stockées à iCloud.

Je me demande ce que l'adversaire serait en mesure de faire une fois qu'ils ont accès à une sauvegarde iCloud, en utilisant some third-party software pour télécharger tout à un ordinateur:

Il semblerait que non seulement ils sont en mesure d'examiner la contenu de la sauvegarde elle-même, mais aussi acquérir assez d'informations pour décrypter tout dans la NAND du périphérique, si elles étaient en mesure de l'acquérir physiquement (en plus des informations d'identification Apple), puisque les clés de classe sont contenues dans le fichier de sauvegarde téléchargé. Est-ce que quelqu'un peut partager quelques connaissances sur le fonctionnement du processus de sauvegarde iCloud et si le scénario ci-dessus est plausible?

+1

Je ne crois pas que quiconque en dehors d'Apple sera en mesure de répondre à celui-ci, car ils sont généralement très privé sur la façon dont leurs services fonctionnent. 08 sept.. 152015-09-08 21:31:31

1

Il y a un newer security guide published by Apple à celui que vous avez référencé qui contient une liste de clés non-migratoires, les éléments de keychain pour lesquels la classe est protégée. Le mot "Confidentialité" apparaît dans le guide 2012 une fois. Vingt et une autres références ont été ajoutées en 2016. Les demandes de renseignements de cette nature sont courantes, en particulier lorsque les utilisateurs d'iOS détiennent des informations médicales, financières, de propriété intellectuelle et d'autres informations confidentielles. Comme vous l'avez déduit, il n'est pas possible de désérialiser le trousseau ET d'assurer la confidentialité des attaquants Apple internes à moins qu'un secret ne soit détenu sur le client et utilisé pour chiffrer les données avant d'entrer dans le processus de sauvegarde. Il n'est fait mention d'aucun mécanisme permettant à l'utilisateur iOS d'installer un certificat ou de définir un mot de passe de sauvegarde auquel Apple ne peut pas accéder.

Si vous souhaitez une confidentialité hautement sécurisée, vous avez besoin d'un cryptage côté client au niveau de l'interface utilisateur. Il n'est pas clair si une application peut atteindre l'App Store avec un tel dispositif de confidentialité. Un tel code serait probablement considéré comme une source potentielle de malware ou de virus par Apple. (Voir la section Engagement à la sécurité du nouveau guide.

Bien que différents commentaires puissent être trouvés sur votre sujet, aucun ne provient des équipes de développement ou de sécurité d'Apple, car les informations côté serveur sont sûrement considérées confidentielles par Apple. L'API pour les applications côté client est en boîte noire, la transparence des services de base est faible et the Core Backup API n'est pas assez granulaire pour fournir des conseils.

Vous pouvez en savoir plus sur la classe NSFileProtectionNone et les classes associées dans la documentation API, mais aucun diagramme de séquence ou description n'est fourni. Je n'ai pas réussi à trouver une séquence ou un diagramme d'action contenant des détails. Nous savons seulement que the transfer is via TLS. Un renifleur de paquets produirait des détails, mais le deuxième paragraphe ci-dessus contiendrait indépendamment des détails opérationnels.