Condividi tramite


Gestione delle identità di hardware attendibile

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 il livello di sicurezza di base di Azure per i nodi di confidential computing (ACC) di Azure e archivia nella cache gli elementi collaterali dai fornitori 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

Come si usa 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. Tutto o parte di questo materiale collaterale devono essere ottenuti 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 usata da Attestazione di Azure 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 esaminano la data nextUpdate e passeranno 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 Gestione delle identità di hardware attendibile. 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. È consigliabile usare la versione più recente disponibile per il sistema operativo di destinazione.

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 24.04), è necessario usare Intel QPL.

Perché la Gestione dell'identità dell'hardware attendibile e Intel hanno basi di riferimento 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.

Come posso 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 utilizzare un endpoint di gestione delle identità hardware attendibile oppure un endpoint del Servizio di Certificazione per il 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 collateral_service non è definita, tutto il materiale di verifica delle citazioni viene recuperato dall'endpoint definito dalla chiave pccs_url.

Nella tabella seguente viene illustrato come impostare queste chiavi.

Nome Possibili punti finali
pccs_url Endpoint di Gestione delle identità di hardware attendibile: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service Endpoint di Gestione delle identità di hardware attendibile (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 
    

Come è possibile richiedere materiale collaterale in una macchina virtuale riservata?

Usare l'esempio seguente in una macchina virtuale confidenziale (CVM) guest per richiedere la documentazione AMD che include il certificato VCEK e la catena di certificati. Per informazioni dettagliate su questo materiale collaterale e sulla sua provenienza, vedere Certificato VCEK (Versioned Chip Endorsement Key) e specifica dell'interfaccia KDS.

Parametri URI

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

Corpo 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)

Come posso richiedere il materiale collaterale AMD in un contenitore del servizio Azure Kubernetes su un nodo CVM?

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

  1. Per iniziare, creare un cluster del Servizio Azure Kubernetes su un nodo CVM o aggiungere un pool di nodi CVM a un cluster esistente:

    • Creare un cluster AKS su 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 AKS 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 AKS 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 ETÀ VERSIONE
    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 materiale collaterale AMD dall'endpoint Gestione delle identità di hardware affidabile. 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 Stato 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