Udostępnij za pośrednictwem


Zaufane zarządzanie tożsamościami sprzętowymi

Usługa Trusted Hardware Identity Management obsługuje zarządzanie pamięcią podręczną certyfikatów dla wszystkich zaufanych środowisk wykonywania (TEE), które znajdują się na platformie Azure. Udostępnia również informacje o zaufanej bazie obliczeniowej (TCB) w celu wymuszenia minimalnej linii bazowej dla rozwiązań zaświadczania.

Zaufane interakcje związane z zarządzaniem tożsamościami sprzętowymi i zaświadczania

Usługa Trusted Hardware Identity Management definiuje punkt odniesienia zabezpieczeń platformy Azure dla węzłów poufnego przetwarzania (ACC) platformy Azure i buforuje zabezpieczenia od dostawców TEE. Usługi zaświadczania i węzły ACC mogą używać buforowanych informacji do weryfikowania tees. Na poniższym diagramie przedstawiono interakcje między usługą zaświadczania lub węzłem, zaufanym zarządzaniem tożsamościami sprzętowymi i hostem enklawy.

Diagram przedstawiający interakcje między usługą zaświadczania lub węzłem, zaufanym zarządzaniem tożsamościami sprzętowymi i hostem enklawy.

Często zadawane pytania

Jak mogę używać zaufanego zarządzania tożsamościami sprzętowymi z procesorami Intel?

Aby wygenerować oferty Intel SGX i Intel TDX, biblioteka Intel Quote Generation Library (QGL) wymaga dostępu do zabezpieczenia generowania/walidacji oferty. Wszystkie lub części tego zabezpieczenia muszą zostać pobrane z usługi Trusted Hardware Identity Management. Można go pobrać przy użyciu biblioteki dostawcy ofert firmy Intel (QPL) lub biblioteki klienta zaświadczania centrum danych Platformy Azure (DCAP).

Data następnej aktualizacji wewnętrznego interfejsu API usługi buforowania platformy Azure używana przez zaświadczanie na platformie Azure wydaje się być nieaktualna. Czy nadal działa i czy mogę go używać?

Pole tcbinfo zawiera informacje O TCB. Usługa Trusted Hardware Identity Management domyślnie udostępnia starsze tcbinfo informacje. Aktualizacja do najnowszych tcbinfo informacji firmy Intel spowodowałaby błędy zaświadczania dla klientów, którzy nie przeprowadzili migracji do najnowszego zestawu Intel SDK, i mogą spowodować awarie.

Zestaw OPEN Enlave SDK i zaświadczenie platformy Azure nie są jednak uwzględniane w nextUpdate tej dacie i będą przekazywane zaświadczania.

Co to jest biblioteka azure DCAP?

Biblioteka Azure Data Center Attestation Primitives (DCAP), zastępująca bibliotekę intel quote provider library (QPL), pobiera zabezpieczenia generowania cudzysłowów i zabezpieczenia weryfikacji cudzysłowu bezpośrednio z usługi Trusted Hardware Identity Management. Pobieranie zabezpieczeń bezpośrednio z usługi Trusted Hardware Identity Management gwarantuje, że wszystkie hosty platformy Azure mają łatwo dostępne zabezpieczenia w chmurze platformy Azure w celu zmniejszenia zależności zewnętrznych. Bieżąca zalecana wersja biblioteki DCAP to 1.11.2.

Gdzie mogę pobrać najnowszą bibliotekę azure DCAP?

Użyj następujących linków, aby pobrać pakiety:

W przypadku nowszych wersji systemu Ubuntu (na przykład Ubuntu 22.04) należy użyć technologii Intel QPL.

Dlaczego zaufane zarządzanie tożsamościami sprzętowymi i intel mają różne punkty odniesienia?

Zaufane zarządzanie tożsamościami sprzętowymi i intel zapewniają różne poziomy odniesienia zaufanej bazy obliczeniowej. Gdy klienci zakładają, że firma Intel ma najnowsze punkty odniesienia, musi upewnić się, że wszystkie wymagania są spełnione. Takie podejście może prowadzić do awarii, jeśli klienci nie zaktualizowali określonych wymagań.

Usługa Trusted Hardware Identity Management ma wolniejsze podejście do aktualizowania punktu odniesienia TCB, dzięki czemu klienci mogą wprowadzać niezbędne zmiany we własnym tempie. Mimo że takie podejście zapewnia starszą linię bazową TCB, klienci nie napotkają awarii, jeśli nie spełnią wymagań nowego punktu odniesienia TCB. Dlatego punkt odniesienia TCB z zaufanego zarządzania tożsamościami sprzętowymi jest inną wersją niż punkt odniesienia firmy Intel. Chcemy umożliwić klientom spełnienie wymagań nowego planu bazowego TCB w ich tempie, zamiast zmuszać ich do aktualizacji i powodować zakłócenia, które wymagają ponownego zapisania strumieni roboczych.

Dzięki procesorom Intel Xeon E mogę uzyskać moje certyfikaty bezpośrednio z komputera Intel PCS. Dlaczego w przypadku procesorów Intel Xeon Scalable, począwszy od 4 generacji, czy muszę uzyskać certyfikaty z usługi Trusted Hardware Identity Management? Jak mogę pobrać te certyfikaty?

Począwszy od 4. generacji skalowalnych procesorów Intel® Xeon®, platforma Azure wykonuje rejestrację pośrednią w usłudze rejestracji firmy Intel przy użyciu manifestu platformy i przechowuje wynikowy certyfikat PCK w usłudze Trusted Hardware Identity Management (THIM) platformy Azure używa rejestracji pośredniej, ponieważ usługa rejestracji firmy Intel nie będzie przechowywać kluczy głównych dla platformy w tym przypadku i jest to odzwierciedlane przez CachedKeys false flagę w certyfikatach PCK. W miarę użycia rejestracji pośredniej wszystkie następujące połączenia z usługą Intel PCS wymagają manifestu platformy, który platforma Azure nie zapewnia maszynom wirtualnym. Zamiast tego maszyny wirtualne muszą skontaktować się z THIM, aby otrzymywać certyfikaty PCK. Aby pobrać certyfikat PCK, możesz użyć biblioteki Intel QPL lub Azure DCAP.

Jak mogę używać technologii Intel QPL z zaufanym zarządzaniem tożsamościami sprzętowymi?

Klienci mogą chcieć korzystać z technologii Intel QPL do interakcji z zaufanym zarządzaniem tożsamościami sprzętowymi bez konieczności pobierania innej zależności od firmy Microsoft (czyli biblioteki klienta usługi Azure DCAP). Klienci, którzy chcą korzystać z technologii Intel QPL z usługą Trusted Hardware Identity Management, muszą dostosować plik konfiguracji Intel QPL, sgx_default_qcnl.conf.

Zabezpieczenie generowania/weryfikacji cudzysłowu używanego do generowania cudzysłowów Intel SGX lub Intel TDX można podzielić na:

  • Certyfikat PCK. Aby go pobrać, klienci muszą używać punktu końcowego zaufanego zarządzania tożsamościami sprzętowymi.
  • Wszystkie inne zabezpieczenia generowania/weryfikacji cudzysłowu. Aby go pobrać, klienci mogą używać punktu końcowego zaufanego zarządzania tożsamościami sprzętowymi lub punktu końcowego usługi certyfikacji Intel Provisioning Service (PCS).

Plik konfiguracji Intel QPL (sgx_default_qcnl.conf) zawiera trzy klucze służące do definiowania punktów końcowych zabezpieczeń. Klucz pccs_url definiuje punkt końcowy używany do pobierania certyfikatów PCK. Klucz collateral_service może zdefiniować punkt końcowy używany do pobierania wszystkich innych zabezpieczeń generowania/weryfikacji cudzysłowu. collateral_service Jeśli klucz nie jest zdefiniowany, wszystkie zabezpieczenia weryfikacji cudzysłowu są pobierane z punktu końcowego zdefiniowanego za pomocą pccs_url klucza.

W poniższej tabeli przedstawiono sposób ustawiania tych kluczy.

Nazwisko Możliwe punkty końcowe
pccs_url Zaufany punkt końcowy zarządzania tożsamościami sprzętowymi: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service Punkt końcowy zaufanego zarządzania tożsamościami sprzętowymi (https://global.acccache.azure.net/sgx/certification/v3) lub punkt końcowy intel PCS. Plik sgx_default_qcnl.conf zawsze zawiera najbardziej aktualny punkt końcowy w kluczu collateral_service .

Poniższy fragment kodu pochodzi z przykładu pliku konfiguracji 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" 
                } 
            } 
        } 
    }   

Poniższe procedury wyjaśniają, jak zmienić plik konfiguracji intel QPL i aktywować zmiany.

W systemie Windows

  1. Wprowadź zmiany w pliku konfiguracji.

  2. Upewnij się, że istnieją uprawnienia do odczytu do pliku z następującej lokalizacji rejestru i klucza/wartości:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. Uruchom ponownie usługę AESMD. Na przykład otwórz program PowerShell jako administrator i użyj następujących poleceń:

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

W systemie Linux

  1. Wprowadź zmiany w pliku konfiguracji. Na przykład możesz użyć narzędzia Vim dla zmian za pomocą następującego polecenia:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. Uruchom ponownie usługę AESMD. Otwórz dowolny terminal i uruchom następujące polecenia:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

Jak mogę zażądać zabezpieczenia na poufnej maszynie wirtualnej?

Użyj poniższego przykładu w gościu poufnej maszyny wirtualnej (CVM) do żądania zabezpieczeń AMD, który obejmuje certyfikat VCEK i łańcuch certyfikatów. Aby uzyskać szczegółowe informacje na temat tego zabezpieczenia i skąd pochodzą, zobacz Versioned Chip Endorsement Key (VCEK) Certificate (VcEK) Certificate and KDS Interface Specification (Specyfikacja interfejsu KDS w wersji).

Parametry identyfikatora URI

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

Treść żądania

Nazwisko Pisz Opis
Metadata Logiczny Ustawienie zezwala na True zwracanie zabezpieczeń.

Przykładowe żądanie

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

Odpowiedzi

Nazwa/nazwisko opis
200 OK Wyświetla listę dostępnych zabezpieczeń w treści HTTP w formacie JSON
Other Status Codes Opisuje, dlaczego operacja nie powiodła się

Definicje

Key opis
VcekCert Certyfikat X.509v3 zdefiniowany w dokumencie RFC 5280
tcbm Zaufana baza obliczeniowa
certificateChain Certyfikaty klucza AMD SEV (ASK) i klucza głównego AMD (ARK)

Jak mogę zażądać zabezpieczeń AMD w kontenerze usługi Azure Kubernetes Service w węźle CVM?

Wykonaj następujące kroki, aby zażądać zabezpieczeń FIRMY AMD w poufnym kontenerze:

  1. Zacznij od utworzenia klastra usługi Azure Kubernetes Service (AKS) w węźle CVM lub przez dodanie puli węzłów CVM do istniejącego klastra:

    • Utwórz klaster usługi AKS w węźle CVM:

      1. Utwórz grupę zasobów w jednym z obsługiwanych regionów CVM:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. Utwórz klaster usługi AKS z jednym węzłem CVM w grupie zasobów:

        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. Skonfiguruj narzędzie kubectl, aby nawiązać połączenie z klastrem:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • Dodaj pulę węzłów CVM do istniejącego klastra usługi AKS:

      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. Sprawdź połączenie z klastrem kubectl get przy użyciu polecenia . To polecenie zwraca listę węzłów klastra.

    kubectl get nodes 
    

    Poniższy przykład danych wyjściowych przedstawia pojedynczy węzeł utworzony w poprzednich krokach. Upewnij się, że stan węzła to Ready.

    NAZWA STAN RÓL AGE WERSJA
    aks-nodepool1-31718369-0 Gotowy agent 6m44s wersja 1.12.8
  3. Utwórz plik curl.yaml z następującą zawartością. Definiuje zadanie, które uruchamia kontener curl w celu pobrania zabezpieczeń AMD z punktu końcowego zaufanego zarządzania tożsamościami sprzętowymi. Aby uzyskać więcej informacji na temat zadań Kubernetes, zobacz dokumentację rozwiązania 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" 
    

    Plik curl.yaml zawiera następujące argumenty.

    Nazwisko Pisz Opis
    Metadata Logiczny Ustawienie zezwala na True zwracanie zabezpieczeń.
  4. Uruchom zadanie, stosując plik curl.yaml :

    kubectl apply -f curl.yaml 
    
  5. Sprawdź i poczekaj na ukończenie zadania zasobnika:

    kubectl get pods 
    

    Oto przykładowa odpowiedź:

    Nazwisko Gotowy Stan Ponownym uruchomieniu Wiek
    Curl-w7nt8 0/1 Ukończone 0 72 s
  6. Uruchom następujące polecenie, aby pobrać dzienniki zadań i sprawdzić, czy działa. Pomyślne dane wyjściowe powinny zawierać vcekCertwartości , tcbmi certificateChain.

    kubectl logs job/curl  
    

Następne kroki