Vertrouwd hardware-identiteitsbeheer

De trusted Hardware Identity Management-service verwerkt cachebeheer van certificaten voor alle vertrouwde uitvoeringsomgevingen (TEE's) die zich in Azure bevinden. Het biedt ook informatie over vertrouwde computingbasis (TCB) om een minimale basislijn af te dwingen voor attestation-oplossingen.

Interacties met vertrouwde hardware-identiteitsbeheer en attestation

Trusted Hardware Identity Management definieert de Azure-beveiligingsbasislijn voor knooppunten van Azure Confidential Computing (ACC) en slaat zekerheden van TEE-providers in de cache op. Attestation-services en ACC-knooppunten kunnen de gegevens in de cache gebruiken om TEE's te valideren. In het volgende diagram ziet u de interacties tussen een attestation-service of -knooppunt, Trusted Hardware Identity Management en een enclavehost.

Diagram that illustrates interactions between an attestation service or node, Trusted Hardware Identity Management, and an enclave host.

Veelgestelde vragen

Hoe kan ik vertrouwde hardware-identiteitsbeheer gebruiken met Intel-processors?

Als u Intel SGX- en Intel TDX-aanhalingstekens wilt genereren, moet de Intel Quote Generation Library (QGL) toegang hebben tot het onderpand voor het genereren/valideren van offertes. Alle of delen van dit onderpand moeten worden opgehaald uit Trusted Hardware Identity Management. U kunt het ophalen met behulp van de Intel Quote Provider Library (QPL) of de Clientbibliotheek van Azure Data Center Attestation Primitives (DCAP).

De datum van de 'volgende update' van de azure-interne cacheservice-API die door Azure Attestation wordt gebruikt, lijkt verouderd te zijn. Is het nog in gebruik en kan ik het gebruiken?

Het tcbinfo veld bevat de TCB-gegevens. De vertrouwde Hardware Identity Management-service biedt standaard oudere tcbinfo informatie. Als u bijwerkt naar de meest recente tcbinfo informatie van Intel, leidt dit tot attestation-fouten voor klanten die niet zijn gemigreerd naar de nieuwste Intel SDK. Dit kan leiden tot storingen.

De Open Enclave SDK en Azure Attestation kijken echter niet naar de nextUpdate datum en geven attestation door.

Wat is de Azure DCAP-bibliotheek?

De DCAP-bibliotheek (Azure Data Center Attestation Primitives), een vervanging voor De Intel Quote Provider Library (QPL), haalt zekerheden voor het genereren van offertes en validatiemateriaal rechtstreeks op uit de Trusted Hardware Identity Management-service. Het rechtstreeks ophalen van onderpand van de vertrouwde Hardware Identity Management-service zorgt ervoor dat alle Azure-hosts zekerheid hebben die direct beschikbaar zijn in de Azure-cloud om externe afhankelijkheden te verminderen. De huidige aanbevolen versie van de DCAP-bibliotheek is 1.11.2.

Waar kan ik de nieuwste Azure DCAP-bibliotheek downloaden?

Gebruik de volgende koppelingen om de pakketten te downloaden:

Voor nieuwere versies van Ubuntu (bijvoorbeeld Ubuntu 22.04) moet u de Intel QPL gebruiken.

Waarom hebben Trusted Hardware Identity Management en Intel verschillende basislijnen?

Trusted Hardware Identity Management en Intel bieden verschillende basislijnniveaus van de vertrouwde rekenbasis. Wanneer klanten ervan uitgaan dat Intel de nieuwste basislijnen heeft, moeten ze ervoor zorgen dat aan alle vereisten wordt voldaan. Deze benadering kan leiden tot een onderbreking als klanten niet zijn bijgewerkt naar de opgegeven vereisten.

Trusted Hardware Identity Management neemt een tragere aanpak voor het bijwerken van de TCB-basislijn, zodat klanten de benodigde wijzigingen in hun eigen tempo kunnen aanbrengen. Hoewel deze benadering een oudere TCB-basislijn biedt, ervaren klanten geen onderbreking als ze niet aan de vereisten van de nieuwe TCB-basislijn voldoen. Daarom is de TCB-basislijn van Trusted Hardware Identity Management een andere versie dan de basislijn van Intel. We willen klanten in staat stellen om te voldoen aan de vereisten van de nieuwe TCB-basislijn in hun tempo, in plaats van hen te dwingen om bij te werken en een onderbreking te veroorzaken die herpriritatie van werkstromen vereist.

Met Intel Xeon E-processors kan ik mijn certificaten rechtstreeks van de Intel PCS ophalen. Waarom, met Intel Xeon Scalable-processors vanaf de 4e generatie, moet ik de certificaten ophalen van Trusted Hardware Identity Management? En hoe kan ik die certificaten ophalen?

Vanaf de 4e generatie Intel Xeon® Scalable-processors voert Azure indirecte registratie uit bij de registratieservice van Intel® met behulp van het platformmanifest en slaat het resulterende PCK-certificaat op in de THIM-service (Trusted Hardware Identity Management) Azure indirecte registratie, omdat de registratieservice van Intel in dit geval geen hoofdsleutels voor een platform opslaat en dit wordt weerspiegeld in false de CachedKeys vlag in PCK-certificaten. Aangezien indirecte registratie wordt gebruikt, vereist alle volgende communicatie met Intel PCS het platformmanifest, dat Azure niet biedt aan virtuele machines (VM's). In plaats daarvan moeten VM's contact opnemen met THIM om PCK-certificaten te ontvangen. Als u een PCK-certificaat wilt ophalen, kunt u de Intel QPL of de Azure DCAP-bibliotheek gebruiken.

Hoe kan ik Intel QPL gebruiken met Trusted Hardware Identity Management?

Klanten willen mogelijk de flexibiliteit om Intel QPL te gebruiken om te communiceren met Trusted Hardware Identity Management zonder dat ze een andere afhankelijkheid van Microsoft hoeven te downloaden (de Azure DCAP-clientbibliotheek). Klanten die Intel QPL willen gebruiken met de trusted Hardware Identity Management-service, moeten het Intel QPL-configuratiebestand sgx_default_qcnl.conf aanpassen.

Het onderpand voor het genereren/verifiëren van offertes dat wordt gebruikt om de Intel SGX- of Intel TDX-aanhalingstekens te genereren, kan worden gesplitst in:

  • Het PCK-certificaat. Om deze op te halen, moeten klanten een trusted Hardware Identity Management-eindpunt gebruiken.
  • Alle andere aanhalingstekens genereren/verifiëren onderpand. Om deze op te halen, kunnen klanten een Eindpunt voor vertrouwd hardware-identiteitsbeheer of een PCS-eindpunt (Intel Provisioning Certification Service) gebruiken.

Het Intel QPL-configuratiebestand (sgx_default_qcnl.conf) bevat drie sleutels voor het definiëren van de onderpandeindpunten. De pccs_url sleutel definieert het eindpunt dat wordt gebruikt om de PCK-certificaten op te halen. De collateral_service sleutel kan het eindpunt definiëren dat wordt gebruikt voor het ophalen van alle andere zekerheden voor het genereren/verifiëren van offertes. Als de collateral_service sleutel niet is gedefinieerd, wordt alle onderpand voor offerteverificatie opgehaald uit het eindpunt dat is gedefinieerd met de pccs_url sleutel.

In de volgende tabel ziet u hoe deze sleutels kunnen worden ingesteld.

Naam Mogelijke eindpunten
pccs_url Eindpunt voor vertrouwd hardware-identiteitsbeheer: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service Eindpunt voor vertrouwd hardware-identiteitsbeheer (https://global.acccache.azure.net/sgx/certification/v3) of Intel PCS-eindpunt. Het bestand sgx_default_qcnl.conf bevat altijd het meest recente eindpunt in de collateral_service sleutel.

Het volgende codefragment is afkomstig uit een voorbeeld van een Intel QPL-configuratiebestand:

    { 
        "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 de volgende procedures wordt uitgelegd hoe u het Intel QPL-configuratiebestand wijzigt en de wijzigingen activeert.

In Windows

  1. Breng wijzigingen aan in het configuratiebestand.

  2. Zorg ervoor dat het bestand leesmachtigingen heeft vanaf de volgende registerlocatie en sleutel/waarde:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. Start de AESMD-service opnieuw op. Open PowerShell bijvoorbeeld als beheerder en gebruik de volgende opdrachten:

    Restart-Service -Name "AESMService" -ErrorAction Stop
    Get-Service -Name "AESMService"
    

In Linux

  1. Breng wijzigingen aan in het configuratiebestand. U kunt bijvoorbeeld Vim gebruiken voor de wijzigingen via de volgende opdracht:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. Start de AESMD-service opnieuw op. Open een terminal en voer de volgende opdrachten uit:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

Hoe kan ik onderpand aanvragen op een vertrouwelijke virtuele machine?

Gebruik het volgende voorbeeld in een CVM-gast (Confidential Virtual Machine) voor het aanvragen van AMD-onderpand dat het VCEK-certificaat en de certificaatketen bevat. Zie Versioned Chip Endorsement Key (VCEK) Certificate and KDS Interface Specification (Versioned Chip Endorsement Key) voor meer informatie over dit onderpand en waar deze vandaan komt.

URI-parameters

GET "http://169.254.169.254/metadata/THIM/amd/certification"

Aanvraagtekst

Name Type Beschrijving
Metadata Booleaanse waarde Instelling om toe te True staan dat onderpand wordt geretourneerd.

Voorbeeldaanvraag

curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"

Antwoorden

Name Beschrijving
200 OK Een lijst met beschikbare onderpanden in de HTTP-hoofdtekst in JSON-indeling
Other Status Codes Beschrijft waarom de bewerking is mislukt

Definities

Toets Beschrijving
VcekCert X.509v3-certificaat zoals gedefinieerd in RFC 5280
tcbm Vertrouwde rekenbasis
certificateChain AMD SEV Key-certificaten (ASK) en AMD Root Key (ARK)

Hoe kan ik AMD-onderpand aanvragen in een Azure Kubernetes Service-container op een CVM-knooppunt?

Volg deze stappen om AMD-onderpand aan te vragen in een vertrouwelijke container:

  1. Begin met het maken van een AKS-cluster (Azure Kubernetes Service) op een CVM-knooppunt of door een CVM-knooppuntgroep toe te voegen aan een bestaand cluster:

    • Maak een AKS-cluster op een CVM-knooppunt:

      1. Maak een resourcegroep in een van de door CVM ondersteunde regio's:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. Maak een AKS-cluster met één CVM-knooppunt in de resourcegroep:

        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. Configureer kubectl om verbinding te maken met het cluster:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • Een CVM-knooppuntgroep toevoegen aan een bestaand AKS-cluster:

      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. Controleer de verbinding met uw cluster met behulp van de kubectl get opdracht. Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.

    kubectl get nodes 
    

    In het volgende uitvoervoorbeeld ziet u het enkele knooppunt dat u in de vorige stappen hebt gemaakt. Zorg ervoor dat de status van het knooppunt is Ready.

    NAAM STATUS ROLLEN LEEFTIJD VERSIE
    aks-nodepool1-31718369-0 Gereed agent 6m44s v1.12.8
  3. Maak een curl.yaml-bestand met de volgende inhoud. Er wordt een taak gedefinieerd waarmee een curl-container wordt uitgevoerd om AMD-onderpand op te halen van het eindpunt trusted Hardware Identity Management. Zie de Kubernetes-documentatie voor meer informatie over Kubernetes-taken.

    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" 
    

    Het bestand curl.yaml bevat de volgende argumenten.

    Name Type Beschrijving
    Metadata Booleaanse waarde Instelling om toe te True staan dat onderpand wordt geretourneerd.
  4. Voer de taak uit door het curl.yaml-bestand toe te passen:

    kubectl apply -f curl.yaml 
    
  5. Controleer en wacht totdat de pod de taak heeft voltooid:

    kubectl get pods 
    

    Hieronder volgt een voorbeeld van een antwoord:

    Naam Gereed Status Opnieuw opgestart Leeftijd
    Curl-w7nt8 0/1 Voltooid 0 72 s
  6. Voer de volgende opdracht uit om de taaklogboeken op te halen en te controleren of deze werkt. Een geslaagde uitvoer moet , vcekCerttcbmen certificateChain.

    kubectl logs job/curl  
    

Volgende stappen