Trusted Hardware Identity Management
Der Dienst „Trusted Hardware Identity Management“ übernimmt die Cacheverwaltung von Zertifikaten für alle vertrauenswürdigen Ausführungsumgebungen (Trusted Execution Environments, TEEs), die sich in Azure befinden. Außerdem werden vertrauenswürdige RechenbasisInformationen (Trusted Computing Base, TBC) bereitgestellt, um eine Mindestbaseline für Nachweislösungen zu erzwingen.
Trusted Hardware Identity Management und Nachweisinteraktionen
Trusted Hardware Identity Management definiert die Azure-Sicherheitsbaseline für Azure Confidential Computing-Knoten (ACC) und speichert Begleitmaterialien von TEE-Anbietern zwischen. Nachweisdienste und ACC-Knoten können die zwischengespeicherten Informationen verwenden, um TEEs zu überprüfen. Das folgende Diagramm zeigt die Interaktionen zwischen einem Nachweisdienst oder Knoten, dem Trusted Hardware Identity Management und einem Enclave-Host.
Häufig gestellte Fragen
Wie verwende ich vertrauenswürdige Trusted Hardware Identity Management mit Intel-Prozessoren?
Um Intel SGX- und Intel TDX-Angebote zu generieren, benötigt die Intel Quote Generation Library (QGL) Zugriff auf Begleitmaterialien zur Angebotsgenerierung bzw. -validierung. Alle oder Teile dieser Begleitmaterialien müssen aus dem Trusted Hardware Identity Management abgerufen werden. Sie können sie mithilfe der Intel Quote Provider Library (QPL) oder der Azure Data Center Attestation Primitives-Clientbibliothek (DCAP) abrufen.
Das Datum der nächsten von Azure Attestation verwendeten Aktualisierung der Azure-internen Cachedienst-API scheint veraltet zu sein. Ist sie noch in Betrieb und kann es verwendet werden?
Das Feld „tcbinfo
“ enthält die TCB-Informationen. Der Dienst "Trusted Hardware Identity Management" stellt standardmäßig ältere „tcbinfo
“-Informationen bereit. Eine Aktualisierung auf die neuesten „tcbinfo
“-Daten von Intel würde bei Kunden, die nicht zum neuesten Intel-SDK migriert sind, zu Nachweisfehlern führen, was Ausfälle verursachen könnte.
Das Open Enclave- SDK und Azure Attestation achten jedoch nicht auf das „nextUpdate
“-Datum und bestehen den Nachweis.
Was ist die Azure DCAP-Bibliothek?
Die Azure Data Center Attestation Primitives-Bibliothek (DCAP), ein Ersatz für die Intel Quote Provider Library (QPL), ruft Begleitmaterialien zur Angebotsgenerierung und -validierung direkt aus dem Trusted Hardware Identity Management-Dienst ab. Durch das direkte Abrufen von Begleitmaterialien aus dem Trusted Hardware Identity Management-Dienst wird sichergestellt, dass Begleitmaterialien für alle Azure-Hosts in der Azure-Cloud leicht verfügbar sind, um externe Abhängigkeiten zu reduzieren. Die aktuelle empfohlene Version der DCAP-Bibliothek ist 1.11.2.
Wo kann ich die neueste Azure DCAP-Bibliothek herunterladen?
Verwenden Sie die folgenden Links, um die Pakete herunterzuladen:
Für neuere Versionen von Ubuntu (z. B. Ubuntu 22.04) müssen Sie Intel QPL verwenden.
Warum verfügen Trusted Hardware Identity Management und Intel über unterschiedliche Baselines?
Trusted Hardware Identity Management und Intel stellen verschiedene Baselineebenen der Trusted Computing Base (TBC) bereit. Wenn Kunden davon ausgehen, dass Intel über die neuesten Baselines verfügt, müssen sie sicherstellen, dass alle Anforderungen erfüllt sind. Dieser Ansatz kann zu einer Unterbrechung führen, wenn Kunden nicht auf die angegebenen Anforderungen aktualisiert haben.
Trusted Hardware Identity Management verfolgt einen langsameren Ansatz bei der Aktualisierung der TCB-Baseline, damit Kunden die erforderlichen Änderungen in individuellem Tempo vornehmen können. Obwohl dieser Ansatz eine ältere TCB-Baseline bereitstellt, tritt bei Kunden keine Unterbrechung auf, wenn sie die Anforderungen der neuen TCB-Baseline nicht erfüllt haben. Aus diesem Grund liegt die TCB-Baseline von Trusted Hardware Identity Management in einer anderen Version vor als die von Intel. Wir möchten es unseren Kunden ermöglichen, die Anforderungen der neuen TCB-Baseline in ihrem Tempo zu erfüllen, anstatt ihn Aktualisierungen aufzuzwingen und eine Unterbrechung zu verursachen, die eine Neupriorisierung der Arbeitsstreams erfordern würde.
Mit Intel Xeon E-Prozessoren konnte ich meine Zertifikate direkt vom Intel PCS beziehen. Warum muss ich bei Intel Xeon Scalable-Prozessoren ab der 4. Generation die Zertifikate von Trusted Hardware Identity Management beziehen? Und wie kann ich diese Zertifikate abrufen?
Ab der 4. Generation von Intel® Xeon® Scalable-Prozessoren führt Azure die indirekte Registrierung beim Registrierungsdienst von Intel mithilfe des Plattformmanifests durch und speichert das resultierende PCK-Zertifikat im Trusted Hardware Identity Management (THIM)-Dienst, da Intels Registrierungsdienst in diesem Fall keine Stammschlüssel für eine Plattform speichert, was durch false
in der CachedKeys
-Kennzeichnung in PCK-Zertifikaten angezeigt wird.
Da die indirekte Registrierung verwendet wird, würde die gesamte folgende Kommunikation mit Intel PCS das Plattformmanifest erfordern, das Azure nicht für virtuelle Computer (VMs) bereitstellt.
Stattdessen müssen VMs sich an THIM wenden, um PCK-Zertifikate zu erhalten.
Um ein PCK-Zertifikat abzurufen, können Sie entweder die Intel QPL- oder die Azure DCAP-Bibliothek verwenden.
Wie verwende ich Intel QPL mit Trusted Hardware Identity Management?
Kunden möchten möglicherweise die Flexibilität, Intel QPL zusammen mit dem Trusted Hardware Identity Management-Dienst zu verwenden, ohne eine weitere Abhängigkeit von Microsoft herunterladen zu müssen (d. h. die Azure DCAP-Clientbibliothek). Kunden, die Intel QPL zusammen mit dem Trusted Hardware Identity Management-Dienst verwenden möchten, müssen die Intel QPL-Konfigurationsdatei sgx_default_qcnl.conf anpassen.
Die Angebotsgenerierung bzw. -validierung von Begleitmaterialien, die verwendet wird, um die Intel SGX- oder Intel TDX-Angebote zu generieren, kann folgendermaßen aufgeschlüsselt werden:
- Das PCK-Zertifikat. Zum Abrufen müssen Kunden einen Trusted Hardware Identity Management-Endpunkt verwenden.
- Alle anderen Begleitmaterialien zur Angebotserstellung bzw. -validierung. Zum Abrufen können Kunden entweder einen Trusted Hardware Identity Management- oder einen Intel Provisioning Certification Service-Endpunkt (PCS) verwenden.
Die Intel QPL-Konfigurationsdatei (sgx_default_qcnl.conf) enthält drei Schlüssel, die zum Definieren der Endpunkte für die Begleitmaterialien verwendet werden. Der Schlüssel „pccs_url
“ definiert den Endpunkt, der zum Abrufen der PCK-Zertifikate verwendet wird. Der Schlüssel „collateral_service
“ kann den Endpunkt definieren, der zum Abrufen aller anderen Begleitmaterialien zur Angebotsgenerierung bzw. -validierung verwendet wird. Wenn der Schlüssel „collateral_service
“ nicht definiert ist, werden alle Begleitmaterialien zur Angebotsvalidierung vom Endpunkt abgerufen, der mit dem Schlüssel „pccs_url
“ definiert ist.
In der folgenden Tabelle wird gezeigt, wie diese Schlüssel festgelegt werden können.
Name | Mögliche Endpunkte |
---|---|
pccs_url |
Trusted Hardware Identity Management-Endpunkt: https://global.acccache.azure.net/sgx/certification/v3 . |
collateral_service |
Trusted Hardware Identity Management-Endpunkt (https://global.acccache.azure.net/sgx/certification/v3 ) oder Intel PCS-Endpunkt. Die Datei sgx_default_qcnl.conf listet immer den aktuellsten Endpunkt im Schlüssel „collateral_service “ auf. |
Der folgende Codeschnipsel stammt aus einem Beispiel für eine Intel QPL-Konfigurationsdatei:
{
"pccs_url": "https://global.acccache.azure.net/sgx/certification/v3/",
"use_secure_cert": true,
"collateral_service": "https://global.acccache.azure.net/sgx/certification/v3/",
"pccs_api_version": "3.1",
"retry_times": 6,
"retry_delay": 5,
"local_pck_url": "http://169.254.169.254/metadata/THIM/sgx/certification/v3/",
"pck_cache_expire_hours": 24,
"verify_collateral_cache_expire_hours": 24,
"custom_request_options": {
"get_cert": {
"headers": {
"metadata": "true"
},
"params": {
"api-version": "2021-07-22-preview"
}
}
}
}
In den folgenden Verfahren wird erläutert, wie Sie die Intel QPL-Konfigurationsdatei ändern und die vorgenommenen Änderungen aktivieren können.
Unter Windows
Nehmen Sie Änderungen an der Konfigurationsdatei vor.
Stellen Sie sicher, dass Leseberechtigungen für die Datei vom folgenden Registrierungsspeicherort und Schlüssel bzw. Wert vorhanden sind:
[HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL] "CONFIG_FILE"="<Full File Path>"
Starten Sie den AESMD-Dienst neu. Öffnen Sie beispielsweise PowerShell als Administrator, und führen Sie die folgenden Befehle aus:
Restart-Service -Name "AESMService" -ErrorAction Stop Get-Service -Name "AESMService"
Unter Linux
Nehmen Sie Änderungen an der Konfigurationsdatei vor. Sie können für die Änderungen beispielsweise „Vim“ mithilfe des folgenden Befehls verwenden:
sudo vim /etc/sgx_default_qcnl.conf
Starten Sie den AESMD-Dienst neu. Öffnen Sie ein beliebiges Terminal, und führen Sie die folgenden Befehle aus:
sudo systemctl restart aesmd systemctl status aesmd
Wie fordere ich Begleitmaterialien in einer vertraulichen VM an?
Verwenden Sie das folgende Beispiel auf einer vertraulichen VM (Confidential Virtual Machine, CVM), um AMD-Begleitmaterialien anzufordern, die das VCEK-Zertifikat und die Zertifikatkette enthalten. Ausführliche Informationen zu diesen Begleitmaterialien und deren Ursprung finden Sie unter Versioned Chip Endorsement Key (VCEK) Certificate and KDS Interface Specification (VCEK-Zertifikat (Versioned Chip Endorsement Key) und KDS-Schnittstellenspezifikation).
URI-Parameter
GET "http://169.254.169.254/metadata/THIM/amd/certification"
Anforderungstext
Name | Typ | Beschreibung |
---|---|---|
Metadata |
Boolean | Wenn Sie die Option auf „True “ festlegen, können Begleitmaterialien zurückgegeben werden. |
Beispiel für eine Anforderung
curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"
Antworten
Name | BESCHREIBUNG |
---|---|
200 OK |
Listet verfügbare Begleitmaterialien im HTTP-Text im JSON-Format auf. |
Other Status Codes |
Beschreibt, warum der Vorgang fehlgeschlagen ist. |
Definitionen
Schlüssel | BESCHREIBUNG |
---|---|
VcekCert |
X.509v3-Zertifikat, wie in RFC 5280 definiert |
tcbm |
Trusted Computing Base |
certificateChain |
AMD SEV Key- (ASK) und AMD Root Key-Zertifikate (ARK) |
Wie fordere ich AMD-Begleitmaterialien in einem Azure Kubernetes Service-Container auf einem CVM-Knoten an?
Führen Sie die folgenden Schritte aus, um AMD-Begleitmaterialien in einem vertraulichen Container anzufordern:
Erstellen Sie zunächst einen Azure Kubernetes Service -Cluster (AKS) auf einem CVM-Knoten oder fügen Sie einem vorhandenen Cluster einen CVM-Knotenpool hinzu:
Erstellen Sie einen AKS-Cluster auf dem CVM-Knoten:
Erstellen Sie eine Ressourcengruppe in einer der unterstützten CVM-Regionen:
az group create --resource-group <RG_NAME> --location <LOCATION>
Erstellen Sie einen AKS-Cluster mit einem CVM-Knoten in der Ressourcengruppe:
az aks create --name <CLUSTER_NAME> --resource-group <RG_NAME> -l <LOCATION> --node-vm-size Standard_DC4as_v5 --nodepool-name <POOL_NAME> --node-count 1
Konfigurieren Sie „kubectl“ für die Verbindung mit dem Cluster:
az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME>
Fügen Sie einem vorhandenen AKS-Cluster einen CVM-Knotenpool hinzu:
az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1
Überprüfen Sie die Verbindung mit Ihrem Cluster mithilfe des Befehls „
kubectl get
“. Dieser Befehl gibt eine Liste der Clusterknoten zurück.kubectl get nodes
Das folgende Ausgabebeispiel zeigt den in den vorherigen Schritten erstellten Einzelknoten. Stellen Sie sicher, dass der Knotenstatus „
Ready
“ lautet.NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Bereit Agent 6m44s v1.12.8 Erstellen Sie eine curl.yaml-Datei folgenden Inhalts. Sie definiert einen Auftrag, der einen curl-Container zum Abrufen von AMD-Begleitmaterialien vom Trusted Hardware Identity Management-Endpunkt ausführt. Weitere Informationen zu Kubernetes-Aufträgen finden Sie in der Kubernetes-Dokumentation.
apiVersion: batch/v1 kind: Job metadata: name: curl spec: template: metadata: labels: app: curl spec: nodeSelector: kubernetes.azure.com/security-type: ConfidentialVM containers: - name: curlcontainer image: alpine/curl:3.14 imagePullPolicy: IfNotPresent args: ["-H", "Metadata:true", "http://169.254.169.254/metadata/THIM/amd/certification"] restartPolicy: "Never"
Die curl.yaml-Datei enthält die folgenden Argumente.
Name Typ Beschreibung Metadata
Boolean Wenn Sie die Option auf „ True
“ festlegen, können Begleitmaterialien zurückgegeben werden.Führen Sie den Auftrag aus, indem Sie die curl.yaml-Datei anwenden:
kubectl apply -f curl.yaml
Warten Sie, bis der Pod seinen Auftrag abgeschlossen hat:
kubectl get pods
Hier sehen Sie eine Beispielantwort:
Name Bereit Status Neustarts Age Curl-w7nt8 0/1 Abgeschlossen 0 72 s Führen Sie den folgenden Befehl aus, um die Auftragsprotokolle abzurufen und zu überprüfen, ob er funktioniert. Eine erfolgreiche Ausgabe sollte „
vcekCert
“, „tcbm
“ und „certificateChain
“ enthalten.kubectl logs job/curl
Nächste Schritte
- Erfahren Sie mehr über die Azure Attestation-Dokumentation.
- Hier finden Sie die Dokumentation zu Azure Confidential Computing.