
Attestation d’appareil géré pour les appareils Apple
L’attestation d’appareil géré est disponible sous iOS 16, iPadOS 16, macOS 14, tvOS 16, visionOS 1.1, watchOS 9 ou les versions ultérieures. Elle utilise le Secure Enclave pour fournir des assurances chiffrées concernant l’identité d’un appareil et sa sécurité. Les iPad, les iPhone et les Apple TV requièrent la puce A11 Bionic ou les modèles ultérieurs, et seuls les ordinateurs Mac avec puce Apple sont pris en charge. L’attestation d’appareil géré aide à protéger contre les menaces suivantes :
un appareil compromis qui ment au sujet de ses propriétés
un appareil compromis qui fournit une attestation obsolète
un appareil compromis qui envoie les identifiants d’un autre appareil
l’extraction d’une clé privée pour l’utiliser sur un appareil malveillant
un assaillant qui détourne une demande de certificat pour inciter l’autorité de certification à lui émettre un certificat
À l’aide de l’attestation d’appareil géré, un appareil peut demander une attestation des serveurs d’attestation d’Apple, qui renvoient un tableau de données composé d’un certificat feuille intermédiaire qui est ancré dans l’Apple Enterprise Attestation Root CA. Selon le type d’appareil, le certificat feuille peut contenir des propriétés particulières (voir le tableau suivant).
OID et valeur | Versions minimales de systèmes d’exploitation prises en charge | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
1.2.840.113635.100.8.9.1 Numéro de série | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Représente le numéro de série de l’appareil et peut être utilisé pour identifier un appareil. Pour protéger la vie privée de l’utilisateur, cette valeur n’est pas incluse lorsque l’attestation d’appareil géré est utilisée avec l’inscription par l’utilisateur. | |||||||||
1.2.840.113635.100.8.9.2 UDID | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Représente l’identifiant matériel unique et peut être utilisé pour identifier un appareil. Sur un Mac, l’UDID correspond à l’approvisionnement de l’UDID de l’appareil. Pour protéger la vie privée de l’utilisateur, cette valeur n’est pas incluse lorsque l’attestation d’appareil géré est utilisée avec l’inscription par l’utilisateur. | |||||||||
1.2.840.113635.100.8.10.2 Version de sepOS | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Représente la version de programme interne du Secure Enclave. | |||||||||
1.2.840.113635.100.8.11.1 Code de fabrication | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Code unique et non prévisible identifiant une attestation en particulier. Indique que l’attestation a été générée après la création du code. | |||||||||
1.2.840.113635.100.8.13.1 État de la SIP | macOS 14 | Représente l’état d’activation de la SIP sur un Mac avec puce Apple. | |||||||||
1.2.840.113635.100.8.13.2 État du démarrage sécurisé | macOS 14 | Représente la sélection de configuration de démarrage sécurisé d’un Mac avec puce Apple. | |||||||||
1.2.840.113635.100.8.13.3 Extensions de noyau tierces autorisées | macOS 14 | Représente si les extensions de noyau tierces sont autorisées sur un Mac avec puce Apple. | |||||||||
1.2.840.113635.100.8.10.3 Version du LLB | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Représente la version de programme interne du Chargeur d’amorçage de niveau inférieur (LLB). | |||||||||
1.2.840.113635.100.8.10.1 Version du système d’exploitation | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Représente la version du système d’exploitation et d’iBoot. | |||||||||
1.2.840.113635.100.8.9.4 Identifiant de mise à jour logicielle de l’appareil | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Atteste que | |||||||||
Une demande d’attestation est lancée par une requête DeviceInformation envoyée par le service de gestion des appareils ou par l’installation d’une configuration ACME. Dans les deux situations, l’appareil reçoit un code de fabrication du service de gestion des appareils ou de la solution ACME. Avec l’attestation DeviceInformation, le code de fabrication est la valeur DeviceAttestationNonce indiquée dans la demande. Avec l’attestation ACME, le code de fabrication est le hachage SHA‑256 du jeton provenant du défi device-attest-01. La valeur qui en résulte est incluse en tant que propriété dans le certificat feuille et permet au service de gestion des appareils ou à la solution ACME de vérifier que l’attestation correspond à la demande.
À la réception de l’attestation, un service dorsal doit effectuer des vérifications de validation rigoureuses. Ces vérifications consistent notamment à s’assurer que le certificat feuille a été émis par l’Apple Enterprise Attestation Root CA, à comparer le hachage du code de fabrication avec la valeur attendue et à examiner d’autres propriétés de l’attestation.
Selon le modèle de déploiement d’une organisation, l’attestation d’appareil géré peut constituer un fondement important d’un déploiement moderne et sécurisé et être utilisé de différentes manières :
Utiliser un certificat délivré par l’ACME pour authentifier la connexion du client au service de gestion des appareils et tirer profit de l’attestation
DeviceInformationpour vérifier les propriétés d’un appareil de façon continue.Vérifier l’identité d’un appareil et son niveau de sécurité, puis demander à la solution ACME d’effectuer une évaluation de confiance avant d’émettre un certificat. Ainsi, seuls les appareils qui répondent aux normes requises reçoivent un certificat.
Incorporer les propriétés de l’appareil provenant de l’attestation dans un certificat ACME et effectuer l’évaluation de la fiabilité de ses parties de confiance.
Clés liées au matériel
Dans le cadre de la délivrance d’un certificat à l’aide du protocole ACME, il peut être demandé à un appareil de fournir une attestation qui entraîne aussi la protection par le Secure Enclave de la paire de clés associée pour bénéficier de sa robuste sécurité matérielle et contribuer à empêcher l’exportation de la clé privée.
Afin de créer une clé liée au matériel, la configuration ACME a besoin d’utiliser l’algorithme ECSECPrimeRandom avec une taille de clé de 256 ou 384 bits. Il s’agit d’une paire de clés sur les courbes P-256 ou P-384, telles que définies dans la norme NIST SP 800-186.
Pour générer la clé privée, le Secure Enclave utilise d’abord les éléments suivants pour créer un secret cryptographique enveloppé :
une combinaison de son générateur de nombres aléatoires (TRNG) matériel
l’entropie stockée dans le stockage non volatile sécurisé du Secure Enclave
une clé de protection des données
Le système d’exploitation stocke le secret enveloppé, mais celui-ci ne vaut rien seul. Pour dériver la clé privée, le Secure Enclave doit utiliser le même secret, la même entropie stockée et la même clé de protection des données. Comme l’entropie stockée et la clé de protection des données sont uniques à ce Secure Enclave spécifique, seul celui-ci peut générer la clé privée qui lie effectivement la clé liée au matériel à ce Secure Enclave.
Lorsque l’appareil est effacé, le Secure Enclave supprime l’entropie stockée. Pour cette raison, une clé liée au matériel ne peut pas être régénérée après une sauvegarde et une restauration, même si la restauration a lieu sur le même appareil.
Toutes les configurations contenant une entité ACME avec une clé liée au matériel sont supprimées lors de la restauration. Si une clé liée au matériel est utilisée comme identité de client du service de gestion des appareils, l’appareil est désinscrit. Dans ce scénario, si un appareil a été inscrit au moyen de l’inscription automatisée des appareils, l’appareil récupère son profil d’inscription et se réinscrit.