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.

Diagram that illustrates interactions between an attestation service or node, Trusted Hardware Identity Management, and an 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

  1. Nehmen Sie Änderungen an der Konfigurationsdatei vor.

  2. 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>"
    
  3. 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

  1. 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
    
  2. 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:

  1. 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:

      1. Erstellen Sie eine Ressourcengruppe in einer der unterstützten CVM-Regionen:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. 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
        
      3. 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 
      
  2. Ü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
  3. 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.
  4. Führen Sie den Auftrag aus, indem Sie die curl.yaml-Datei anwenden:

    kubectl apply -f curl.yaml 
    
  5. 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
  6. 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