Koncepcje podstawowe

Poniżej przedstawiono kilka podstawowych pojęć związanych z zaświadczeniem platformy Microsoft Azure.

Token internetowy JSON (JWT)

JSON Web Token (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:

  • "Quote" — wartość właściwości "Cytat" jest ciągiem zawierającym zakodowaną reprezentację zakodowaną w formacie Base64URL 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 zweryfikuje podany "Cytat", a następnie zapewni, że skrót SHA256 podanych danych enklawy 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. Podstawowym elementem zaświadczania platformy Azure jest aparat zasad, który przetwarza oświadczenia określające 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 spowoduje wystawienia tokenu JWT.

Jeśli domyślne zasady u dostawcy zaświadczania nie spełniają wymagań, klienci będą mogli tworzyć zasady niestandardowe w dowolnym z regionów obsługiwanych przez zaświadczenie platformy Azure. Zarządzanie zasadami to kluczowa funkcja udostępniana klientom przez zaświadczanie platformy Azure. Zasady będą 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 zostanie wystawiony przez zaświadczenie platformy Azure. Zasady określają również oświadczenia, które mają być generowane w tokenie zaświadczania. W związku z tym niezwykle ważne jest, aby zasady oceniane przez usługę były w rzeczywistości zasadami napisanymi przez administratora i 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żliwi zaświadczenie platformy Azure w celu zapewnienia, że zasady przesłane przez klienta nie zostaną 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. Podczas przetwarzania żądania zaświadczania usługa Azure Attestation zweryfikuje podpis zasad przy użyciu klucza publicznego reprezentowanego przez parametr "jwk" lub "x5c" w nagłówku. Zaświadczanie platformy Azure sprawdzi również, 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 będzie ciągiem JSON, którego wartość zawiera wartość JWT. Zaświadczenie platformy Azure spakuje oświadczenia i wygeneruje 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 OpenID Połączenie Discovery. 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 podczas zapisywania ich 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.

Następne kroki