Condividi tramite


Trusted Hardware Identity Management

Il servizio Trusted Hardware Identity Management gestisce la gestione della cache dei certificati per tutti gli ambienti di esecuzione attendibili (TEE) che risiedono in Azure. Fornisce inoltre informazioni TCB (Trusted Computing Base) per applicare una baseline minima per le soluzioni di attestazione.

Trusted Hardware Identity Management and attestation interactions (Gestione delle identità hardware attendibili e interazioni di attestazione)

Trusted Hardware Identity Management definisce la baseline di sicurezza di Azure per i nodi di confidential computing (ACC) di Azure e memorizza nella cache gli elementi collaterali dai provider tee. I servizi di attestazione e i nodi acc possono usare le informazioni memorizzate nella cache per convalidare le TEE. Il diagramma seguente illustra le interazioni tra un servizio di attestazione o un nodo, Trusted Hardware Identity Management e un host enclave.

Diagramma che illustra le interazioni tra un servizio di attestazione o un nodo, Trusted Hardware Identity Management e un host enclave.

Domande frequenti

Ricerca per categorie usare Trusted Hardware Identity Management con processori Intel?

Per generare virgolette Intel SGX e Intel TDX, Intel Quote Generation Library (QGL) necessita dell'accesso al materiale di generazione/convalida delle offerte. Tutte le parti o di questo materiale collaterale devono essere recuperate da Trusted Hardware Identity Management. È possibile recuperarlo usando la libreria client QPL (Intel Quote Provider Library) o la libreria client DCAP (Data Center Attestation Primitives) di Azure.

La data di "aggiornamento successivo" dell'API del servizio di memorizzazione nella cache interna di Azure che attestazione di Azure usa sembra non aggiornata. È ancora in funzione e posso usarlo?

Il tcbinfo campo contiene le informazioni TCB. Il servizio Trusted Hardware Identity Management fornisce informazioni meno recenti tcbinfo per impostazione predefinita. L'aggiornamento alle informazioni più recenti tcbinfo da Intel provocherebbe errori di attestazione per i clienti che non hanno eseguito la migrazione all'SDK Intel più recente e potrebbero verificarsi interruzioni.

Open Enclave SDK e attestazione di Azure non esaminare la nextUpdate data, ma passerà l'attestazione.

Che cos'è la libreria DCAP di Azure?

La libreria DCAP (Data Center Attestation Primitives) di Azure, una sostituzione di Intel Quote Provider Library (QPL), recupera il materiale collaterale e la convalida delle virgolette direttamente dal servizio Trusted Hardware Identity Management. Il recupero di materiale collaterale direttamente dal servizio Trusted Hardware Identity Management garantisce che tutti gli host di Azure abbiano immediatamente disponibilità collaterale all'interno del cloud di Azure per ridurre le dipendenze esterne. La versione consigliata corrente della libreria DCAP è 1.11.2.

Dove è possibile scaricare la libreria DCAP di Azure più recente?

Usare i collegamenti seguenti per scaricare i pacchetti:

Per le versioni più recenti di Ubuntu (ad esempio, Ubuntu 22.04), è necessario usare Intel QPL.

Perché Gestione identità hardware attendibile e Intel hanno baseline diverse?

Trusted Hardware Identity Management e Intel forniscono diversi livelli di base della base di elaborazione attendibile. Quando i clienti presuppongono che Intel abbia le baseline più recenti, devono assicurarsi che tutti i requisiti siano soddisfatti. Questo approccio può causare un'interruzione se i clienti non sono stati aggiornati ai requisiti specificati.

Trusted Hardware Identity Management adotta un approccio più lento all'aggiornamento della baseline TCB, in modo che i clienti possano apportare le modifiche necessarie al proprio ritmo. Anche se questo approccio fornisce una baseline TCB meno recente, i clienti non riscontrano interruzioni se non soddisfano i requisiti della nuova baseline TCB. Ecco perché la baseline TCB di Trusted Hardware Identity Management è una versione diversa dalla baseline di Intel. Vogliamo consentire ai clienti di soddisfare i requisiti della nuova baseline TCB al loro ritmo, invece di forzarli ad aggiornare e causare un'interruzione che richiederebbe la riscrittura dei flussi di lavoro.

Con i processori Intel Xeon E, potrei ottenere i miei certificati direttamente dal PCS Intel. Perché, con processori Scalabili Intel Xeon a partire dalla 4a generazione, è necessario ottenere i certificati da Trusted Hardware Identity Management? E come è possibile recuperare tali certificati?

A partire dalla 4a generazione di processori scalabili Intel® Xeon®, Azure esegue la registrazione indiretta al servizio di registrazione di Intel usando il manifesto della piattaforma e archivia il certificato PCK risultante nel servizio Trusted Hardware Identity Management (THIM) Azure usa la registrazione indiretta, perché il servizio di registrazione intel non archivierà le chiavi radice per una piattaforma in questo caso e questo si riflette nel false flag nei CachedKeys certificati PCK. Come viene usata la registrazione indiretta, tutte le comunicazioni seguenti con Intel PCS richiederebbero il manifesto della piattaforma, che Azure non fornisce alle macchine virtuali (VM). Le macchine virtuali devono invece contattare THIM per ricevere i certificati PCK. Per recuperare un certificato PCK, è possibile usare intel QPL o la libreria DCAP di Azure.

Ricerca per categorie usare Intel QPL con Trusted Hardware Identity Management?

I clienti potrebbero voler usare Intel QPL per interagire con Trusted Hardware Identity Management senza dover scaricare un'altra dipendenza da Microsoft( ovvero la libreria client DCAP di Azure). I clienti che vogliono usare Intel QPL con il servizio Trusted Hardware Identity Management devono modificare il file di configurazione di Intel QPL, sgx_default_qcnl.conf.

Il materiale collaterale di generazione/verifica delle virgolette usato per generare le citazioni Intel SGX o Intel TDX può essere suddiviso in:

  • Certificato PCK. Per recuperarlo, i clienti devono usare un endpoint di Gestione identità hardware attendibile.
  • Tutti gli altri elementi collaterali di generazione/verifica delle virgolette. Per recuperarlo, i clienti possono usare un endpoint di Gestione identità hardware attendibile o un endpoint del servizio di certificazione del provisioning Intel (PCS).

Il file di configurazione Intel QPL (sgx_default_qcnl.conf) contiene tre chiavi per definire gli endpoint collaterali. La pccs_url chiave definisce l'endpoint usato per recuperare i certificati PCK. La collateral_service chiave può definire l'endpoint usato per recuperare tutti gli altri elementi collaterali di generazione/verifica delle virgolette. Se la chiave non è definita, tutta la collateral_service verifica delle virgolette viene recuperata dall'endpoint definito con la pccs_url chiave.

Nella tabella seguente viene illustrato come impostare queste chiavi.

Nome Endpoint possibili
pccs_url Endpoint di Gestione identità hardware attendibile: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service Endpoint Trusted Hardware Identity Management (https://global.acccache.azure.net/sgx/certification/v3) o endpoint Intel PCS. Il file sgx_default_qcnl.conf elenca sempre l'endpoint più aggiornato nella collateral_service chiave.

Il frammento di codice seguente proviene da un esempio di file di configurazione Intel QPL:

    { 
        "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" 
                } 
            } 
        } 
    }   

Le procedure seguenti illustrano come modificare il file di configurazione intel QPL e attivare le modifiche.

In Windows

  1. Apportare modifiche al file di configurazione.

  2. Assicurarsi che siano disponibili autorizzazioni di lettura per il file dal percorso e dalla chiave/valore del Registro di sistema seguenti:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. Riavviare il servizio AESMD. Ad esempio, aprire PowerShell come amministratore e usare i comandi seguenti:

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

In Linux

  1. Apportare modifiche al file di configurazione. Ad esempio, è possibile usare Vim per le modifiche tramite il comando seguente:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. Riavviare il servizio AESMD. Aprire qualsiasi terminale ed eseguire i comandi seguenti:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

Ricerca per categorie richiedere materiale collaterale in una macchina virtuale riservata?

Usare l'esempio seguente in un guest di macchina virtuale riservata (CVM) per richiedere materiale collaterale AMD che include il certificato VCEK e la catena di certificati. Per informazioni dettagliate su questo materiale collaterale e da dove proviene, vedere Certificato vcEK (Versioned Chip Endorsement Key) e specifica dell'interfaccia KDS.

Parametri URI

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

Testo della richiesta

Nome Tipo Descrizione
Metadata Boolean L'impostazione su True consente la restituzione del materiale collaterale.

Esempio di richiesta

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

Risposte

Nome Descrizione
200 OK Elenca gli elementi collaterali disponibili nel corpo HTTP nel formato JSON
Other Status Codes Descrive il motivo per cui l'operazione non è riuscita

Definizioni

Chiave Descrizione
VcekCert Certificato X.509v3 come definito in RFC 5280
tcbm Base di elaborazione attendibile
certificateChain Certificati AMD SEV Key (ASK) e AMD Root Key (ARK)

Ricerca per categorie richiedere il materiale collaterale AMD in un contenitore servizio Azure Kubernetes in un nodo CVM?

Seguire questa procedura per richiedere il materiale collaterale AMD in un contenitore riservato:

  1. Per iniziare, creare un cluster servizio Azure Kubernetes (servizio Azure Kubernetes) in un nodo CVM o aggiungendo un pool di nodi CVM a un cluster esistente:

    • Creare un cluster del servizio Azure Kubernetes in un nodo CVM:

      1. Creare un gruppo di risorse in una delle aree supportate da CVM:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. Creare un cluster del servizio Azure Kubernetes con un nodo CVM nel gruppo di risorse:

        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. Configurare kubectl per connettersi al cluster:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • Aggiungere un pool di nodi CVM a un cluster del servizio Azure Kubernetes esistente:

      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. Verificare la connessione al cluster usando il kubectl get comando . Questo comando restituisce un elenco dei nodi del cluster.

    kubectl get nodes 
    

    L'esempio di output seguente mostra il singolo nodo creato nei passaggi precedenti. Assicurarsi che lo stato del nodo sia Ready.

    NOME STATO RUOLI AGE VERSION
    aks-nodepool1-31718369-0 Pronto agente 6m44s v1.12.8
  3. Creare un file curl.yaml con il contenuto seguente. Definisce un processo che esegue un contenitore curl per recuperare il collaterale AMD dall'endpoint Trusted Hardware Identity Management. Per altre informazioni sui processi Kubernetes, vedere la documentazione di Kubernetes.

    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" 
    

    Il file curl.yaml contiene gli argomenti seguenti.

    Nome Tipo Descrizione
    Metadata Boolean L'impostazione su True consente la restituzione del materiale collaterale.
  4. Eseguire il processo applicando il file curl.yaml :

    kubectl apply -f curl.yaml 
    
  5. Controllare e attendere che il pod completi il processo:

    kubectl get pods 
    

    Di seguito è riportata una risposta di esempio:

    Nome Pronto Status Riavvii Età
    Curl-w7nt8 0/1 Completato 0 72 s
  6. Eseguire il comando seguente per ottenere i log del processo e verificare se funziona. Un output riuscito deve includere vcekCert, tcbme certificateChain.

    kubectl logs job/curl  
    

Passaggi successivi