
Sikkerhet for attesteringsprosessen
Sikkerhet for attesteringsprosessen
Når ACME-konfigurasjonen angir en maskinvarebundet nøkkel, eller når tjenesten for enhetsadministrering spør om en DeviceInformation-attestering, bruker enheten følgende trinn:
Operativsystemet ber om en maskinvarebundet nøkkel fra Secure Enclave, kalt en attestert nøkkel. For ACME-attestering er denne nøkkelen en del av identiteten til det utstedte sertifikatet. For
DeviceInformation-attestering blir nøkkelen generert av operativsystemet og gjenbrukes for alle påfølgendeDeviceInformation-attesteringer så lenge registreringen gjelder.Operativsystemet etterspør en maskinvareattestering fra Secure Enclave. Det angir den attesterte nøkkelen, ferskhetskoden og hvilke egenskaper det vil ha attestert.
Secure Enclave genererer og returnerer en ny maskinvareattestering.
Operativsystemet sender maskinvareattesteringen til Apples attesteringstjenere.
Attesteringstjenerne validerer forespørselen og enten nekter å utstede et attesteringssertifikat eller genererer en attestering som kun inneholder egenskapene og verdiene de kunne bekrefte. Den offentlige nøkkelen i attesteringssertifikatet stemmer overens med den attesterte nøkkelen.
Operativsystemet sender det resulterende attesteringssertifikatet til tjenesten for enhetsadministrering eller ACME-løsningen.
Hvis du vil ha mer informasjon om validering av attesteringssertifikatet, kan du se Validating a Managed Device Attestation på Apple Developer-nettstedet.
Om maskinvareattestering
Når Secure Enclave genererer en maskinvareattestering, inkluderer det blant annet følgende elementer:
Identifikatorer for hovedkortet
Den offentlige nøkkelen til den attesterte nøkkelen
Hasher for de følgende programvarekomponentene som beregnes i oppstartsprosessen og oppbevares i maskinvareregistrene (som med Sealed Key Protection):
Secure Enclave-firmware (sepOS)
Image4-listen til LLB, som også inneholder en måling av all annen systemtilhørende firmware
Image4-listen til operativsystemet, som inneholder målinger av all OS-tilhørende firmware
Andre enhetsspesifikke verdier som ECID og ChipID
Detaljer som LocalPolicy på Mac-maskiner
Ferskhetskoden
Hvis Secure Enclave ikke kan pakke ut den attesterte nøkkelen, nekter Secure Enclave å generere en maskinvareattestering. Dette sikrer at den attesterte nøkkelen er bundet til den bestemte Secure Enclave og alle andre attesterte egenskaper som hører til den nøkkelen.
Alle disse elementene samles i en tilpasset binær struktur og signeres med UIK. Dette knytter maskinvareattesteringen til en bestemt identitet som Apples attesteringer kan verifisere, slik at de kan knytte forespørselen til en bestemt aktiveringsoppføring og derfor med en bestemt produksjonsoppføring.
Generering av attesteringssertifikatet
Når Apples attesteringstjenere mottar en attesteringsforespørsel, skjer følgende:
Brukeridentitetsnøkkelen (UIK) for maskinvareattesteringen valideres. Hvis signaturen er ugyldig, genereres det ingen attestering.
Det søkes etter
ucrt, som samsvarer med den offentlige nøkkelen til UIK-en, i Apples aktiveringsoppføringer. Hvis det ikke finnes noenucrt, genereres det ingen attestering.Det søkes etter
scrt, som samsvarer med enhetensucrt.scrter et sertifikat utstedt av Apples tjenere under produksjonen, og er basert på Silicon Identity Key (SIK). SIK-en genereres av Secure Enclave, og den offentlige nøkkelen innhentes fra enheten under produksjonen. SIK-en brukes under aktivering for å verifisere at Secure Enclave på enheten som aktiveres, faktisk er i besittelse av den private nøkkelen. SIK-en varer hele livsløpet til en enhet og fungerer som en unik identifikator. Produksjonsoppføringen til enheten kan hentes fram ved hjelp av enscrt. Hvis det ikke finnes noen oppføring, genereres det ingen attestering.Det verifiseres at identifikatorene til maskinvarekomponentene stemmer overens med produksjonsoppføringene. Hvis identifikatorene til komponentene ikke stemmer overens med produksjonsoppføringene, genereres det ingen attestering.
Ferskhetskoden kopieres til attesteringen, hvis den finnes.
Hvis det etterspørres av attesteringen:
Sammenligner beregnede hasher for programvarekomponenter mot kjente hasher fra byggoppføringer. Hvis det finnes et treff, vil det offisielle versjonsnummeret settes inn i attesteringen, og hvis ikke vil OID-en utelates eller verdien stå tom.
Når bilder til LLB, Secure Enclave eller hovedoperativsystemet bygges, vil hasher beregnes og registreres i en database over byggoppføringer sammen med de offisielle versjonsnumrene til disse bildene.
Beregner UDID-en fra ECID-en og ChipID-en.
Kopierer verdier for de forespurte OID-ene fra LocalPolicy til attesteringen hvis enheten er en Mac.
Det praktiske resultatet av disse valideringene er at ingen attestering genereres dersom attesteringstjenerne ikke gjenkjenner enheten som ekte Apple-maskinvare. Hver enkelt egenskap i attesteringssertifikatet inkluderes kun dersom attesteringstjenerne kan verifisere egenskapens verdi, med unntak av ferskhetskoden som inkluderes uten validering.