
Säkerhet vid attestering
Säkerhet vid attestering
När ACME-konfigurationen specificerar en maskinvarukopplad nyckel, eller när enhetshanteringstjänsten kräver en DeviceInformation-attestering, använder enheten följande steg:
Operativsystemet begär en maskinvarukopplad nyckel från Secure Enclave, en så kallad attesterad nyckel. För ACME-attestering är den här nyckeln en del av den utfärdade certifikatidentiteten. För
DeviceInformation-attestering genereras nyckeln av operativsystemet och återanvänds för alla efterföljandeDeviceInformation-attesteringar under registreringens livslängd.Operativsystemet begär en maskinvaruattestering från Secure Enclave. Den specificerar den attesterade nyckeln, aktualitetskoden och vilka egenskaper den vill få attesterade.
Secure Enclave genererar och returnerar en ny maskinvaruattestering.
Operativsystemet skickar maskinvaruattesteringen till Apples attesteringsservrar.
Attesteringsservrarna validerar förfrågningen och antingen vägrar att utfärda ett attesteringscertifikat eller genererar en attestering som endast innehåller de egenskaper och värden som kunde bekräftas. Den publika nyckeln i attesteringscertifikatet matchar den attesterade nyckeln.
Operativsystemet tillhandahåller det skapade attesteringscertifikatet till enhetshanteringstjänsten eller ACME-lösningen.
Mer information om validering av det tillhandahållna attesteringscertifikatet finns i Validating a Managed Device Attestation på Apple Developer-webbplatsen.
Om maskinvaruattestering
När Secure Enclave genererar en maskinvaruattestering inkluderar den bland annat följande element:
Identifierarna på moderkortet.
Den publika nyckeln för den attesterade nyckeln.
Hashvärden av följande programvarukomponenter som beräknas under startprocessen och lagras i maskinvaruregister (i likhet med Sealed Key Protection):
Fast Secure Enclave-programvara (sepOS).
Image4-manifestet som är bifogat till LLB som även innehåller mätvärden för all annan systemparkopplad fast programvara.
Operativsystemets Image4-manifest som innehåller mätvärden för all OS-parkopplad fast programvara.
Andra enhetsspecifika värden som ECID och ChipID.
På Mac-datorer ingår detaljer om LocalPolicy.
Aktualitetskoden.
Om Secure Enclave inte kan packa upp den attesterade nyckeln vägrar Secure Enclave att generera en maskinvaruattestering. Det här säkerställer att den attesterade nyckeln kopplas till denna specifika Secure Enclave och att alla andra attesterade egenskaper är associerade med den nyckeln.
Alla dessa element kompileras i en anpassad binär struktur och signeras med UIK. Det här kopplar maskinvaruattesteringen till en specifik identitet som Apples attesteringar kan verifiera så att de kan associera förfrågningen med en specifik aktiveringspost och därför med en specifik tillverkningspost.
Generera attesteringscertifikatet
När Apples attesteringsservrar får en attesteringsbegäran kommer de att:
Validera signaturen för användaridentitetsnyckeln (User Identity Key, UIK) i maskinvaruattesteringen. Om signaturen är ogiltig genereras ingen attestering.
Slå upp
ucrti Apples aktiveringsposter som motsvarar den publika nyckeln i UIK. Om ingenucrthittas genereras ingen attestering.Slå upp
scrtsom motsvarar enhetensucrt.scrtär ett certifikat som utfärdas av Apple-servrar under tillverkning som baseras på kretsidentitetsnyckeln (Silicon Identity Key, SIK). SIK genereras av Secure Enclave och dess publika nyckel samlas in under tillverkning från enheten. SIK används under aktiveringen till att verifiera att Secure Enclave i den aktiverande enheten innehar den privata nyckeln. SIK är beständig under en enhets livstid och fungerar som en unik identifierare. Med hjälp avscrthämtas tillverkningsposten för enheten. Om ingen post hittas genereras ingen attestering.Verifiera att identifierarna för maskinvarukomponenter överensstämmer med tillverkningsposter. Om komponentidentifierarna inte överensstämmer med tillverkningsposter genereras ingen attestering.
Kopiera aktualitetskoden till attesteringen (om en sådan finns).
Om det begärs av attesteringen:
Jämföra programvarukomponenternas beräknade hashvärden mot kända hashvärden från byggposter. Om det finns en matchning infogas det officiella versionsnumret i attesteringen. Annars utelämnas OID eller dess värde är tomt.
När avbilder för LLB, Secure Enclave eller huvudoperativsystemet byggs beräknas hashvärden och registreras i en byggpostdatabas tillsammans med de officiella versionsnumren för de avbilderna.
Beräkna UDID från ECID och ChipID.
Kopiera värden för begärda OID:er från LocalPolicy till attesteringen om enheten är en Mac.
Det praktiska resultatet av dessa valideringar är att ingen attestering genereras om attesteringsservrarna inte känner igen enheten som äkta Apple-maskinvara. Varje egenskap i attesteringscertifikatet inkluderas endast om attesteringsservrarna kan verifiera egenskapens värde, med undantag för aktualitetskoden som inkluderas utan validering.