Protection des données sur les appareils Apple
Sur les appareils Apple qui utilisent la protection des données, chaque fichier est protégé à l’aide d’une clé par fichier (ou par domaine) unique. La clé, enveloppée à l’aide de l’algorithme d’encapsulation de clé NIST AED, est enveloppée une autre fois par une des différentes clés de classe, en fonction du mode d’accès au fichier. La clé par fichier enveloppée est stockée dans les métadonnées du fichier.
Les appareils dotés du format APFS peuvent prendre en charge le clonage des fichiers (copies sans perte à l’aide de la technologie de copie à l’écriture). Si un fichier est cloné, chaque moitié du clone obtient une nouvelle clé pour accepter les écritures entrantes de façon à ce que les nouvelles données y soient inscrites avec une nouvelle clé. Au fil du temps, le fichier peut être composé de différents domaines (ou fragments), chacun associé à une clé différente. Cependant, tous les domaines qui forment un même fichier sont protégés par la même clé de classe.
Lorsqu’un fichier est ouvert, ses métadonnées sont déchiffrées à l’aide de la clé du système de fichiers, ce qui révèle la clé par fichier enveloppée ainsi que la classe qui la protège. La clé par fichier (ou par domaine) est débloquée avec la clé de classe, puis transmise au moteur AES matériel, qui déchiffre le fichier au moment de sa lecture à partir du stockage flash. Toute la gestion des clés par fichier enveloppées se fait dans le Secure Enclave; la clé de fichier n’est jamais directement exposée au processeur d’application. Au démarrage, le Secure Enclave négocie une clé éphémère avec le moteur AES. Quand le Secure Enclave débloque les clés d’un fichier, celles-ci sont enveloppées avec la clé éphémère, puis envoyées au processeur d’application.
Les métadonnées de tous les fichiers présents dans le système de fichiers du volume de données sont chiffrées avec une clé aléatoire, qui est créée lors de l’installation initiale du système d’exploitation ou lors de l’effacement de l’appareil par l’utilisateur. Cette clé est chiffrée et enveloppée par une clé d’encapsulation connue uniquement du Secure Enclave pour le stockage à long terme. La clé d’encapsulation change chaque fois qu’un utilisateur efface son appareil. Sur les systèmes sur une puce A9 et de génération ultérieure, le Secure Enclave compte sur une entropie renforcée par des systèmes antirejeu pour réaliser l’effacement et protéger, entre autres, sa clé d’encapsulation. Pour en savoir plus, consultez la section Stockage non volatil sécurisé.
Tout comme les clés par fichier ou par domaine, la clé de métadonnées du volume de données n’est jamais exposée directement au processeur d’application; le Secure Enclave en envoie plutôt une version éphémère, qui change à chaque démarrage. Lorsqu’elle est stockée, la clé chiffrée du système de fichiers est par ailleurs enveloppée par une « clé effaçable » stockée dans le stockage effaçable ou par une clé d’encapsulation de clé de support, protégée par le mécanisme antirejeu du Secure Enclave. Cette clé ne renforce pas la confidentialité des données. Elle est plutôt conçue pour être effacée rapidement sur demande (par l’utilisateur, à l’aide de l’option « Effacer contenu et réglages », ou par un utilisateur ou un administrateur qui exécute une commande d’effacement à distance via une solution de GAM, Microsoft Exchange ActiveSync ou iCloud). Effacer la clé de cette manière rend impossible le déchiffrement des fichiers.
Le contenu d’un fichier peut être chiffré avec des clés par fichier (ou par domaine), qui sont enveloppées avec une clé de classe et stockées dans les métadonnées du fichier, qui sont à leur tour chiffrées avec la clé du système de fichiers. La clé de classe est protégée par l’UID de l’appareil et, pour certaines classes, par le code de l’utilisateur. Cette hiérarchie offre à la fois souplesse et performance. Par exemple, pour changer la classe d’un fichier, il suffit d’envelopper de nouveau sa clé par fichier; la modification du code de sécurité n’enveloppe de nouveau que la clé de classe.