
Sicherheit beim Beglaubigungsprozess
Sicherheit beim Beglaubigungsprozess
Wenn die ACME-Konfiguration einen hardwaregebundenen Schlüssel spezifiziert oder der Gerätemanagementdienst eine DeviceInformation-Beglaubigung anfordert, verwendet das Gerät die folgenden Schritte:
Das Betriebssystem fordert einen hardwaregebundenen Schlüssel von der Secure Enclave an, genannt beglaubigter Schlüssel. Für die ACME-Beglaubigung ist dieser Schlüssel Teil der ausgestellten Zertifikatsidentität. Für die
DeviceInformation-Beglaubigung wird der Schlüssel vom Betriebssystem generiert und für alle nachfolgendenDeviceInformation-Beglaubigungen für die Dauer der Registrierung verwendet.Das Betriebssystem fordert einen hardwaregebundenen Schlüssel von der Secure Enclave. Es spezifiziert den beglaubigten Schlüssel, den Freshness-Code und welche Eigenschaften beglaubigt werden sollen.
Die Secure Enclave generiert eine neue Hardware-Beglaubigung und gibt diese zurück.
Das Betriebssystem sendet die Hardware-Beglaubigung an die Beglaubigungsserver von Apple.
Die Beglaubigungsserver validieren die Anfrage und weigern sich, ein Beglaubigungszertifikat auszustellen, oder generieren eine Beglaubigung, die nur die Eigenschaften und Werte enthält, die bestätigt werden konnten. Der öffentliche Schlüssel des Beglaubigungszertifikats stimmt mit dem beglaubigten Schlüssel überein.
Das Betriebssystem stellt das daraus entstehende Beglaubigungszertifikat dem Gerätemanagementdienst oder der ACME-Lösung zur Verfügung.
Weitere Informationen zum Validieren des bereitgestellten Beglaubigungszertifikats findest du unter Verwaltete Gerätebeglaubigung validieren auf der Apple Developer-Website.
Über die Hardware-Beglaubigung
Wenn die Secure Enclave eine Hardware-Beglaubigung generiert, enthält sie u. a. die folgenden Elemente:
IDs der Hauptplatine.
Der öffentliche Schlüssel des beglaubigten Schlüssels.
Hashes der folgenden Softwarekomponenten, welche während des Boot-Prozesses berechnet werden und in Hardware-Registern gespeichert werden (ähnlich wie bei der Sealed Key Protection):
Die Secure Enclave-Firmware (sepOS).
Das Image4-Manifest ist an LLB gekoppelt, das ebenfalls die Kennzahlen aller anderen mit dem System gekoppelten Firmwarekomponenten enthält.
Das Image4-Manifest des Betriebssystems, welches Kennzahlen der gesamten Firmware enthält, die mit dem OS gekoppelt ist.
Andere gerätespezifische Werte wie ECID und ChipID.
Details der LocalPolicy auf Mac-Computern.
Der Freshness-Code.
Wenn die Secure Enclave nicht imstande ist, den beglaubigten Schlüssel zu entpacken, weigert sie sich, eine Hardware-Beglaubigung zu generieren. So wird sichergestellt, dass der beglaubigte Schlüssel genau dieser Secure Enclave zugeordnet ist und alle anderen beglaubigten Eigenschaften mit diesem Schlüssel assoziiert werden.
All diese Elemente werden in einer eigenen binären Struktur gesammelt und mit dem UIK signiert. So wird die Hardware-Beglaubigung an eine bestimmte Identität gebunden. Apples Beglaubigungen können diese verifizieren und dadurch die Anfrage mit einem bestimmten Aktivierungseintrag (und daher mit einem bestimmten Herstellungseintrag) assoziieren.
Beglaubigungszertifikat generieren
Wenn die Beglaubigungsserver von Apple eine Beglaubigungsanfrage erhalten, führen sie die folgenden Schritte aus:
Die User Identity Key (UIK)-Signatur der Hardware-Beglaubigung wird validiert. Falls die Signatur ungültig ist, wird keine Beglaubigung generiert.
ucrtwird in den Aktivierungseinträgen von Apple gesucht, der mit dem öffentlichen Schlüssel des UIKs übereinstimmt. Fallsucrtnicht gefunden wird, wird keine Beglaubigung generiert.scrtwird gesucht, der mit demucrtdes Geräts übereinstimmt.scrtist ein bei der Herstellung von Apple-Servern ausgestelltes Zertifikat basierend auf dem Silicon Identity Key (SIK). Der SIK wird von der Secure Enclave generiert und der dazugehörige öffentliche Schlüssel wird während der Herstellung vom Gerät gesammelt. Der SIK wird während der Aktivierung verwendet, um zu verifizieren, dass die Secure Enclave des Aktivierungsgeräts im Besitz des privaten Schlüssels ist. Der SIK besteht während der gesamten Lebenszeit eines Geräts und agiert als einzigartige ID. Mithilfe vonscrtwird der Herstellungseintrag des Geräts abgerufen. Falls kein Eintrag gefunden wird, wird keine Beglaubigung generiert.Es wird verifiziert, dass die IDs der Hardware-Komponenten mit den Herstellungseinträgen übereinstimmen. Falls die Komponenten-IDs nicht mit den Herstellungseinträgen übereinstimmen, wird keine Beglaubigung generiert.
Falls vorhanden, wird der Freshness-Code in die Beglaubigung kopiert.
Falls von der Beglaubigung angefordert:
Berechnete Hashes der Software-Komponenten werden mit bekannten Hashes von Build-Einträgen verglichen. Falls es eine Übereinstimmung gibt, wird die offizielle Versionsnummer in die Beglaubigung eingefügt. Falls nicht, wird die OID nicht aufgeführt oder der Wert bleibt leer.
Wenn Bilder für LLB, Secure Enclave oder das Hauptbetriebssystem erstellt werden, werden Hashes berechnet und in einer Datenbank für Build-Einträge aufgeführt, zusammen mit den offiziellen Versionsnummern für diese Bilder.
Der UDID wird aus dem ECID und der ChipID berechnet.
Werte für die angeforderten OIDs von der LocalPolicy werden in die Beglaubigung kopiert, wenn es sich bei dem Gerät um einen Mac handelt.
Das praktische Ergebnis dieser Validierungen ist, dass keine Beglaubigung generiert wird, wenn die Beglaubigungsserver das Gerät nicht als authentische Apple-Hardware erkennen. Jede Eigenschaft im Beglaubigungszertifikat ist nur enthalten, wenn die Beglaubigungsserver die Werte der Eigenschaften verifizieren können, mit Ausnahme des Freshness-Codes, der ohne Validierung enthalten ist.