Protection scellée des clés (SKP)
Sur les appareils Apple qui prennent en charge la protection des données, la clé de chiffrement des clés (KEK) est protégée ou scellée par des mesures du logiciel sur le système tout en étant liée à l’UID disponible uniquement auprès du Secure Enclave. Sur un Mac avec puce Apple, la protection de la clé KEK est davantage renforcée en incorporant des informations sur le règlement de sécurité dans le système, car macOS prend en charge les modifications essentielles de ce règlement (telles que la désactivation du démarrage sécurisé ou de la protection de l’intégrité du système) qui ne sont pas prises en charge sur d’autres plateformes. Sur un Mac avec puce Apple, cette protection inclut les clés FileVault, car FileVault est implémenté avec la protection des données (classe C).
La clé qui provient de l’emmêlement du mot de passe de l’utilisateur, de la clé SKP à long terme et de la clé matérielle 1 (l’UID du Secure Enclave) est appelée clé dérivée du mot de passe. Cette clé est utilisée pour protéger le conteneur de clés de l’utilisateur (sur toutes les plateformes prises en charge) et la KEK (uniquement sous macOS) et activer le déverrouillage par biométrie ou automatique au moyen d’autres appareils comme l’Apple Watch.
Le moniteur de démarrage du Secure Enclave capture la mesure du système d’exploitation du Secure Enclave qui est chargé. Lorsque la mémoire morte d’amorçage du processeur d’application mesure le manifeste Image4 joint au LLB, ce manifeste contient alors une mesure de tout autre programme interne couplé au système également chargé. Le fichier LocalPolicy contient les configurations de sécurité centrales chargées pour macOS. Le fichier LocalPolicy contient également le champ nsih
, un hachage du manifeste Image4 de macOS. Le manifeste Image4 de macOS contient des mesures de l’ensemble des objets de démarrage du programme interne couplé à macOS et de macOS, comme la collection du noyau de démarrage ou le hachage racine du volume système signé (VSS).
Si un assaillant réussit contre toute attente à modifier un des éléments mesurés susmentionnés (programmes internes, logiciels ou composants de la configuration de sécurité), cette modification modifiera à son tour les mesures stockées dans les registres internes. La modification des mesures modifie la valeur de la SMRK (System Measurement Root Key, clé racine de mesure du système) dérivée du matériel cryptographique, ce qui brise le sceau de la hiérarchie de clés. La SMDK (system measurement device key, clé d’appareil de mesure système) et, par le fait même, la KEK deviennent alors inaccessibles, empêchant ainsi l’assaillant d’accéder aux données.
Cependant, lorsqu’il n’est pas aux prises avec une attaque, le système doit permettre les mises à jour logicielles légitimes qui modifient les mesures du programme interne et le champ nsih
dans le fichier LocalPolicy pour qu’ils pointent vers de nouvelles mesures de macOS. Avec d’autres systèmes qui essaient d’incorporer des mesures du programme interne, mais qui ne disposent pas d’une source de vérification satisfaisante et reconnue, l’utilisateur doit désactiver le règlement de sécurité, puis mettre à jour le programme interne avant de réactiver le règlement pour capturer une nouvelle mesure de référence. Cela augmente considérablement le risque qu’un assaillant puisse modifier le programme interne pendant une mise à jour logicielle. Le fait que le manifeste Image4 contient toutes les mesures requises contribue à protéger davantage le système. Le matériel qui déchiffre la SMDK avec la SMRK après la validation des mesures au cours d’un démarrage normal peut également chiffrer la SMDK en fonction d’une future SMRK proposée. En spécifiant les mesures attendues après une mise à jour logicielle, le matériel peut chiffrer une SMDK qui est accessible dans un système d’exploitation actuel de manière à ce qu’elle reste accessible dans un système d’exploitation futur. De façon semblable, lorsqu’un utilisateur change légitimement ses réglages de sécurité dans le fichier LocalPolicy, la SMDK doit être chiffrée pour la future SMRK en fonction de la mesure du fichier LocalPolicy que le LLB calculera lors du prochain redémarrage.