Koncepcje podstawowe
W tym artykule zdefiniowano niektóre podstawowe pojęcia związane z zaświadczeniem platformy Microsoft Azure.
Token internetowy JSON (JWTs)
Token sieci Web JSON (JWT) to otwarta standardowa metoda RFC7519 umożliwiająca bezpieczne przesyłanie informacji między stronami jako obiekt JavaScript Object Notation (JSON). Te informacje można zweryfikować i zaufać, ponieważ są podpisane cyfrowo. JWTs można podpisać przy użyciu wpisu tajnego lub pary kluczy publicznych/prywatnych.
Klucz internetowy JSON (JWK)
Klucz internetowy JSON (JWK) to struktura danych JSON reprezentująca klucz kryptograficzny. Ta specyfikacja definiuje również strukturę danych JWK Set JSON reprezentującą zestaw zestawów JWK.
Dostawca zaświadczania
Dostawca zaświadczania należy do dostawcy zasobów platformy Azure o nazwie Microsoft.Attestation. Dostawca zasobów to punkt końcowy usługi, który zapewnia kontrakt REST zaświadczania platformy Azure i jest wdrażany przy użyciu usługi Azure Resource Manager. Każdy dostawca zaświadczania przestrzega określonych, możliwych do odnalezienia zasad. Dostawcy zaświadczania są tworzone przy użyciu domyślnych zasad dla każdego typu zaświadczania (należy pamiętać, że enklawa VBS nie ma domyślnych zasad). Zobacz przykłady zasad zaświadczania, aby uzyskać więcej informacji na temat zasad domyślnych dla SGX.
Żądanie zaświadczania
Żądanie zaświadczania to serializowany obiekt JSON wysyłany przez aplikację kliencką do dostawcy zaświadczania. Obiekt żądania dla enklawy SGX ma dwie właściwości:
- "Cytat" — wartość właściwości "Cytat" jest ciągiem zawierającym zakodowaną w formacie Base64URL reprezentację cudzysłowu zaświadczania.
- "EnlaveHeldData" — wartość właściwości "EnlaveHeldData" jest ciągiem zawierającym zakodowaną w formacie Base64URL reprezentację danych przechowywanych w enklawie.
Zaświadczenie platformy Azure weryfikuje podany cudzysłów, aby upewnić się, że skrót SHA256 podanych danych przechowywanych w enklawie jest wyrażony w pierwszych 32 bajtach pola reportData w cudzysłowie.
Zasady zaświadczania
Zasady zaświadczania są używane do przetwarzania dowodów zaświadczania i można je konfigurować przez klientów. Podstawą zaświadczania platformy Azure jest aparat zasad, który przetwarza roszczenia składające się na dowody. Zasady służą do określania, czy zaświadczenie platformy Azure wystawia token zaświadczania na podstawie dowodów (lub nie), a tym samym popiera attester (lub nie). W związku z tym niepowodzenie przekazania wszystkich zasad nie powoduje wystawienia tokenu JWT.
Jeśli domyślne zasady u dostawcy zaświadczania nie spełniają wymagań, klienci będą mogli tworzyć niestandardowe zasady w dowolnym z regionów obsługiwanych przez zaświadczania platformy Azure. Zarządzanie zasadami to kluczowa funkcja udostępniana klientom przez zaświadczanie platformy Azure. Zasady są specyficzne dla typu zaświadczania i mogą służyć do identyfikowania enklaw lub dodawania oświadczeń do tokenu wyjściowego lub modyfikowania oświadczeń w tokenie wyjściowym.
Zobacz przykłady zasad zaświadczania.
Zalety podpisywania zasad
Zasady zaświadczania określają ostatecznie, czy token zaświadczania jest wystawiany przez zaświadczenie platformy Azure. Zasady określają również oświadczenia, które mają być generowane w tokenie zaświadczania. Ważne jest, aby zasady oceniane przez usługę były zasadami napisanymi przez administratora i że nie zostały naruszone ani zmodyfikowane przez jednostki zewnętrzne.
Model zaufania definiuje model autoryzacji dostawcy zaświadczania w celu definiowania i aktualizowania zasad. Obsługiwane są dwa modele — jeden oparty na autoryzacji firmy Microsoft Entra i jeden oparty na posiadaniu kluczy kryptograficznych zarządzanych przez klienta (nazywanym modelem izolowanym). Model izolowany umożliwia zaświadczenie platformy Azure, aby upewnić się, że zasady przesłane przez klienta nie są naruszone.
W modelu izolowanym administrator tworzy dostawcę zaświadczania określającego zestaw zaufanych certyfikatów X.509 podpisywania w pliku. Administrator może następnie dodać podpisane zasady do dostawcy zaświadczania. Zaświadczanie platformy Azure podczas przetwarzania żądania zaświadczania weryfikuje podpis zasad przy użyciu klucza publicznego reprezentowanego przez parametr "jwk" lub "x5c" w nagłówku. Zaświadczanie platformy Azure sprawdza, czy klucz publiczny w nagłówku żądania znajduje się na liście zaufanych certyfikatów podpisywania skojarzonych z dostawcą zaświadczania. W ten sposób jednostka uzależniona (zaświadczanie platformy Azure) może ufać zasadom podpisanym przy użyciu certyfikatów X.509, o których wie.
Przykłady certyfikatu podpisywania zasad można znaleźć w przykładach.
Token zaświadczania
Odpowiedź zaświadczania platformy Azure to ciąg JSON, którego wartość zawiera wartość JWT. Usługa Azure Attestation pakuje oświadczenia i generuje podpisany zestaw JWT. Operacja podpisywania jest wykonywana przy użyciu certyfikatu z podpisem własnym z nazwą podmiotu zgodną z elementem AttestUri dostawcy zaświadczania.
Interfejs API pobierania metadanych OpenID zwraca odpowiedź konfiguracji OpenID zgodnie z opisem protokołu odnajdywania OpenID Connect. Interfejs API pobiera metadane dotyczące certyfikatów podpisywania używanych przez zaświadczenie platformy Azure.
Zobacz przykłady tokenu zaświadczania.
Szyfrowanie danych w stanie spoczynku
Aby zabezpieczyć dane klientów, zaświadczenie platformy Azure utrzymuje swoje dane w usłudze Azure Storage. Usługa Azure Storage zapewnia szyfrowanie danych magazynowanych, ponieważ dane są zapisywane w centrach danych i odszyfrowuje je, aby klienci uzyskiwali do niego dostęp. To szyfrowanie odbywa się przy użyciu klucza szyfrowania zarządzanego przez firmę Microsoft.
Oprócz ochrony danych w usłudze Azure Storage zaświadczenie platformy Azure wykorzystuje również usługę Azure Disk Encryption (ADE) do szyfrowania maszyn wirtualnych usługi. W przypadku zaświadczania platformy Azure działającego w enklawie w poufnych środowiskach obliczeniowych platformy Azure rozszerzenie usługi ADE nie jest obecnie obsługiwane. W takich scenariuszach, aby zapobiec przechowywaniu danych w pamięci, plik strony jest wyłączony.
Żadne dane klienta nie są utrwalane na lokalnych dyskach twardych wystąpienia zaświadczania platformy Azure.