
Sikkerhed under attesteringsprocessen
Sikkerhed under attesteringsprocessen
Når ACME-konfigurationen anfører en hardwarebunden nøgle, eller når tjenesten til enhedsadministration anmoder om en DeviceInformation-attestering, bruger enheden følgende trin:
Operativsystemet anmoder om en hardwarebunden nøgle fra Secure Enclave ved navn attesteret nøgle. Ved ACME-attestering er nøglen en del af den udstedte certifikatidentitet. Ved
DeviceInformation-attestering genereres nøglen af operativsystemet og genbruges til alle efterfølgendeDeviceInformation-attesteringer i hele tilmeldingens levetid.Operativsystemet anmoder om en hardwareattestering fra Secure Enclave. Det specificerer den attesterede nøgle, freshness-koden, og hvilke egenskaber der skal attesteres.
Secure Enclave genererer og returnerer en ny hardwareattestering.
Operativsystemet sender hardwareattesteringen til Apples attesteringsservere.
Attesteringsserverne kontrollerer anmodningen og afviser enten at udstede et attesteringscertifikat eller genererer en attestering, der kun indeholder egenskaberne og værdierne, som de kunne bekræfte. Attesteringscertifikatets offentlige nøgle stemmer overens med den attesterede nøgle.
Operativsystemet leverer det genererede attesteringscertifikat til tjenesten til enhedsadministration eller ACME-løsningen.
Du kan få flere oplysninger om kontrol af det leverede attesteringscertifikat i Validating a Managed Device Attestation på Apple Developer-webstedet.
Om hardwareattestering
Når Secure Enclave genererer en hardwareattestering, inkluderes blandt andet følgende elementer:
Hovedkortets id’er.
Den attesterede nøgles offentlige nøgle.
Hash-værdier for følgende softwarekomponenter, som beregnes under startprocessen og lagres i hardwareregistre (i lighed med Sealed Key Protection):
Secure Enclave-firmware (sepOS).
Image4-manifestet knyttet til LLB, som også indeholder en måling af al anden systemparret firmware.
Operativsystemets Image4-manifest, som indeholder målinger af al OS-parret firmware.
Andre enhedsspecifikke værdier, f.eks. ECID og ChipID.
Oplysninger om LocalPolicy på Mac-computere.
Freshness-koden.
Hvis Secure Enclave ikke kan pakke den attesterede nøgle ud, afviser Secure Enclave at generere en hardwareattestering. Dette sikrer, at den attesterede nøgle er knyttet til den specifikke Secure Enclave, og alle andre attesterede egenskaber er knyttet til den pågældende nøgle.
Alle disse elementer kompileres til en speciel binær struktur og signeres med UIK’en. Det knytter hardwareattesteringen til en specifik identitet, som Apples attesteringer kan bekræfte, så de kan tilknytte anmodningen til en specifik aktiveringspost og derfor til en specifik fremstillingspost.
Generering af attesteringscertifikatet
Når Apples attesteringsservere modtager en anmodning om attestering:
Kontrollerer de brugeridentitetsnøglens (UIK) signatur for hardwareattesteringen. Hvis signaturen er ugyldig, genereres der ingen attestering.
Søger de efter
ucrti Apples aktiveringsposter, som svarer til UIK’ens offentlige nøgle. Hvisucrtikke findes, genereres der ingen attestering.Søger de efter
scrt, som svarer til enhedensucrt.scrter et certifikat, der udstedes af Apple-servere under fremstillingen baseret på Silicon-identitetsnøglen (SIK). SIK genereres af Secure Enclave, og dens offentlige nøgle indsamles under fremstillingen fra enheden. SIK bruges under aktiveringen til at bekræfte, at den aktiverende enheds Secure Enclave er i besiddelse af den private nøgle. SIK bevares i hele enhedens levetid og fungerer som et unikt id. Enhedens fremstillingspost hentes vha.scrt. Hvis der ikke findes nogen post, genereres der ingen attestering.Bekræfter de, at hardwarekomponenternes id'er stemmer overens med fremstillingsposterne. Hvis komponent-id’erne ikke stemmer overens med fremstillingsposterne, genereres der ingen attestering.
Kopierer de freshness-koden i attesteringen, hvis den findes.
Hvis attesteringen anmoder om det:
Sammenligner de beregnede hash-værdier for softwarekomponenter med kendte hash-værdier fra versionsposter. Hvis der er et match, sættes det officielle versionsnummer ind i attesteringen. Hvis der ikke er et match, udelades OID, eller værdien er tom.
Når billeder til LLB, Secure Enclave eller det primære operativsystem bygges, beregnes og registreres hash-værdier i en database med versionsposter sammen med de officielle versionsnumre til disse billeder.
Beregner de UDID fra ECID og ChipID.
Kopierer de værdier for de ønskede OID’er fra LocalPolicy til attesteringen, hvis enheden er en Mac.
Det praktiske resultat af disse kontroller er, at der ikke genereres en attestering, hvis attesteringsserverne ikke genkender enheden som originalt Apple-hardware. Hver egenskab i attesteringscertifikatet inkluderes kun, hvis attesteringsserverne kan bekræfte egenskabens værdi med undtagelse af freshness-koden, som inkluderes uden nogen kontrol.