Oprettelse og administration af signeringsnøgler til LocalPolicy
Oprettelse
Når macOS installeres første gang på fabrikken, eller når der foretages sletning og installering via Internetdeling, afvikler Mac kode fra en RAM-disk til midlertidig gendannelse for at initialisere standardfunktionen. Under denne proces opretter gendannelsesmiljøet et nyt sæt offentlige og private nøgler, som opbevares i Secure Enclave. Den private nøgle kaldes ejeridentitetsnøglen (OIK (Owner Identity Key)). Hvis der allerede findes en OIK, slettes den som led i processen. Gendannelsesmiljøet initialiserer også den nøgle, der bruges til Aktiveringslås – brugeridentitetsnøglen (UIK (User Identity Key)). Når der anmodes om UIK-certificering for Aktiveringslås på en Mac med Apple Silicon, inkluderes desuden et sæt begrænsninger, der skal håndhæves på valideringstidspunktet for LocalPolicy. Hvis enheden ikke kan få en UIK-nøgle certificeret til Aktiveringslås (f.eks. fordi enheden er knyttet til en Find min Mac-konto og oplyst som mistet), kan den ikke fortsætte og oprette LocalPolicy. Hvis der udstedes et brugeridentitetscertifikat (ucrt) til enheden, indeholder dette certifikat politikbegrænsninger bestemt af serveren og politikbegrænsninger, som brugeren har anmodet om, i en X.509 v3-udvidelse.
Når Aktiveringslås/ucrt
opnås, gemmes emnet i en database på serversiden og sendes også tilbage til enheden. Når enheden har fået et ucrt-certifikat, sendes en certificeringsanmodning om den offentlige nøgle, som svarer til ejeridentitetsnøglen (OIK), til BAA-serveren (Basic Attestation Authority). BAA kontrollerer OIK-certificeringsanmodningen ved hjælp af den offentlige nøgle fra ucrt-certifikatet, der er gemt i den database, som BAA har adgang til. Hvis BAA kan godkende certificeringen, identificerer BAA den offentlige nøgle og returnerer det ejeridentitetscertifikat (OIC (Owner Identity Certificate)), som er signeret af BAA og indeholder begrænsningerne i ucrt-certifikatet. OIC sendes tilbage til Secure Enclave. Når Secure Enclave fremover signerer en ny LocalPolicy, bliver OIC vedhæftet Image4-arkivet. LLB har indbygget tillid til BAA-rodcertifikatet og har derfor også tillid til OIC og som følge heraf også til hele LocalPolicy-signaturen.
RemotePolicy-begrænsninger
Alle Image4-arkiver, ikke kun LocalPolicy-arkiver, indeholder begrænsninger for evaluering af Image4-manifester. Disse begrænsninger kodes med særlige OID’er (object identifiers) i bladcertifikatet. Biblioteket til Image4-godkendelse søger i et certifikat efter det særlige OID til certifikatbegrænsning, mens signaturen evalueres, og derefter evaluerer biblioteket mekanisk de begrænsninger, der er angivet i det. Begrænsningerne har dette format:
X skal eksistere
X må ikke eksistere
X skal have en specifik værdi
Eksempel: For “personliggjorte” signaturer vil certifikatbegrænsningerne indeholde “ECID skal eksistere”, og for “globale” signaturer vil de indeholde “ECID må ikke eksistere”. Disse begrænsninger har til formål at sikre, at alle Image4-arkiver signeret af en given nøgle skal overholde visse krav for at undgå, at der genereres Image4-manifester, som er signeret forkert.
I forbindelse med hver LocalPolicy kaldes disse Image4-certifikatbegrænsninger for RemotePolicy. Forskellige startmiljøers LocalPolicy kan have hver deres RemotePolicy. RemotePolicy bruges til at begrænse LocalPolicy til macOS-gendannelse, så macOS-gendannelse til enhver tid kun kan fungere, som om det er startet med Fuld sikkerhed. Det øger tilliden til integriteten i startmiljøet for macOS-gendannelse som et sted, hvor politikker kan ændres. LocalPolicy begrænses af RemotePolicy til at indeholde ECID fra den Mac, hvor LocalPolicy blev genereret, og den Remote Policy Nonce Hash (rpnh
), der opbevares i komponenten til sikker opbevaring på den pågældende maskine. rpnh
og dermed RemotePolicy ændres kun, når der foretages handlinger i forbindelse med Find min Mac og Aktiveringslås, f.eks. tilmelding, framelding, ekstern låsning og ekstern sletning. RemotePolicy-begrænsninger fastlægges og anføres på certificeringstidspunktet for brugeridentitetsnøglen (UIK) og er logget ind på det udstedte brugeridentitetscertifikat (ucrt). Nogle Remote Policy-begrænsninger, f.eks. ECID, ChipID og BoardID, fastlægges af serveren. Formålet er at forhindre en enhed i at signere LocalPolicy-arkiver for en anden enhed. Andre RemotePolicy-begrænsninger kan defineres af enheden for at være med til at forhindre, at LocalPolicy-sikkerheden nedgraderes uden anførelse af både den lokale godkendelse, der kræves for at få adgang til den aktuelle OIK-nøgle, og den eksterne godkendelse af den konto, som enhedens Aktiveringslås er knyttet til.