Typy kluczy, algorytmy i operacje

Usługa Key Vault obsługuje dwa typy zasobów: magazyny i zarządzane moduły HSM. Oba typy zasobów obsługują różne klucze szyfrowania. Aby wyświetlić podsumowanie obsługiwanych typów kluczy, typy ochrony według poszczególnych typów zasobów, zobacz About keys (Informacje o kluczach).

W poniższej tabeli przedstawiono podsumowanie typów kluczy i obsługiwanych algorytmów.

Typy/rozmiary/krzywe kluczy Szyfrowanie/odszyfrowywanie
(Zawijanie/odpakowywanie)
Podpisywanie/weryfikowanie
EC-P256, EC-P256K, EC-P384, EC-P521 NA ES256
ES256K
ES384
ES512
RSA 2K, 3K, 4K RSA1_5
RSA-OAEP
RSA-OAEP-256
PS256
PS384
PS512
RS256
RS384
RS512
RSNULL
AES 128-bitowy, 256-bitowy
(Tylko zarządzany moduł HSM)
AES-KW
AES-GCM
AES-CBC
NA

Algorytmy EC

Następujące identyfikatory algorytmów są obsługiwane w przypadku kluczy EC-HSM

Typy krzywych

PODPISYWANIE/WERYFIKOWANIE

  • ES256 — ECDSA dla skrótów SHA-256 i kluczy utworzonych za pomocą krzywej P-256. Ten algorytm jest opisany w RFC7518.
  • ES256K — ECDSA dla skrótów SHA-256 i kluczy utworzonych za pomocą krzywej P-256K. Ten algorytm oczekuje na standaryzację.
  • ES384 — ECDSA dla skrótów SHA-384 i kluczy utworzonych za pomocą krzywej P-384. Ten algorytm jest opisany w RFC7518.
  • ES512 — ECDSA dla skrótów SHA-512 i kluczy utworzonych za pomocą krzywej P-521. Ten algorytm jest opisany w RFC7518.

Algorytmy RSA

Następujące identyfikatory algorytmów są obsługiwane w przypadku kluczy RSA i RSA-HSM

WRAPKEY/UNWRAPKEY, ENCRYPT/DECRYPT

  • RSA1_5 — szyfrowanie kluczy RSAES-PKCS1-V1_5 [RFC3447]
  • RSA-OAEP — RSAES przy użyciu optymalnego asymetrycznego wypełnienia szyfrowania (OAEP) [RFC3447], z domyślnymi parametrami określonymi przez RFC 3447 w sekcji A.2.1. Te parametry domyślne używają funkcji skrótu SHA-1 i funkcji generowania maski MGF1 z algorytmem SHA-1.
  • RSA-OAEP-256 — RSAES używające optymalnego dopełnienia szyfrowania asymetrycznego z funkcją skrótu SHA-256 i funkcją generowania maski MGF1 z algorytmem SHA-256

PODPISYWANIE/WERYFIKOWANIE

  • PS256 — RSASSA-PSS przy użyciu algorytmów SHA-256 i MGF1 z algorytmem SHA-256, zgodnie z opisem w RFC7518.
  • PS384 — RSASSA-PSS przy użyciu algorytmów SHA-384 i MGF1 z algorytmem SHA-384, zgodnie z opisem w RFC7518.
  • PS512 — RSASSA-PSS przy użyciu algorytmów SHA-512 i MGF1 z algorytmem SHA-512, zgodnie z opisem w RFC7518.
  • RS256 — RSASSA-PKCS-v1_5 przy użyciu algorytmu SHA-256. Podana przez aplikację wartość skrótu musi być obliczana przy użyciu algorytmu SHA-256 i musi mieć długość 32 bajtów.
  • RS384 — RSASSA-PKCS-v1_5 przy użyciu algorytmu SHA-384. Podana przez aplikację wartość skrótu musi być obliczana przy użyciu algorytmu SHA-384 i musi mieć długość 48 bajtów.
  • RS512 — RSASSA-PKCS-v1_5 przy użyciu algorytmu SHA-512. Podana przez aplikację wartość skrótu musi być obliczana przy użyciu algorytmu SHA-512 i musi mieć długość 64 bajtów.
  • RSNULL — zobacz RFC2437, wyspecjalizowany przypadek użycia umożliwiający obsługę niektórych scenariuszy protokołu TLS.

Uwaga

SkrótInfo jest tworzony po stronie serwera dla operacji podpisywania, które generują algorytmy RS256, RS384 i RS512.

Algorytmy kluczy symetrycznych (tylko zarządzany moduł HSM)

  • AES-KW — zawijanie klucza AES (RFC3394).
  • AES-GCM — szyfrowanie AES w trybie licznika Galois (NIST SP 800-38d)
  • AES-CBC — szyfrowanie AES w trybie łańcucha bloków szyfrowania (NIST SP 800-38a)

Uwaga

Podpisywanie i weryfikowanie algorytmów operacji musi być zgodne z typem klucza. W przeciwnym razie usługa zwróci nieprawidłowy rozmiar klucza.

Kluczowe operacje

Usługa Key Vault, w tym zarządzany moduł HSM, obsługuje następujące operacje na obiektach kluczy:

  • Tworzenie: umożliwia klientowi utworzenie klucza w usłudze Key Vault. Wartość klucza jest generowana przez usługę Key Vault i przechowywana i nie jest zwalniana do klienta. Klucze asymetryczne mogą być tworzone w usłudze Key Vault.
  • Importowanie: umożliwia klientowi importowanie istniejącego klucza do usługi Key Vault. Klucze asymetryczne mogą być importowane do usługi Key Vault przy użyciu kilku różnych metod pakowania w konstrukcji zestawu JWK.
  • Aktualizacja: umożliwia klientowi wystarczające uprawnienia do modyfikowania metadanych (atrybutów klucza) skojarzonych z kluczem wcześniej przechowywanym w usłudze Key Vault.
  • Usuń: umożliwia klientowi wystarczające uprawnienia do usuwania klucza z usługi Key Vault.
  • Lista: umożliwia klientowi wyświetlanie listy wszystkich kluczy w danym magazynie kluczy.
  • Wersje listy: umożliwia klientowi wyświetlanie listy wszystkich wersji danego klucza w danym magazynie kluczy.
  • Get: umożliwia klientowi pobranie publicznych części danego klucza w usłudze Key Vault.
  • Kopia zapasowa: eksportuje klucz w postaci chronionej.
  • Przywracanie: importuje wcześniej utworzoną kopię zapasową klucza.
  • Wydanie: bezpiecznie zwalnia klucz do autoryzowanego kodu działającego w poufnym środowisku obliczeniowym. Wymaga zaświadczania, że zaufane środowisko wykonawcze spełnia wymagania release_policy klucza.
  • Obracanie: obracanie istniejącego klucza przez wygenerowanie nowej wersji klucza (tylko usługa Key Vault).

Aby uzyskać więcej informacji, zobacz Operacje klucza w dokumentacji interfejsu API REST usługi Key Vault.

Po utworzeniu klucza w usłudze Key Vault można wykonać następujące operacje kryptograficzne przy użyciu klucza:

  • Podpisywanie i weryfikowanie: Ściśle ta operacja to "skrót znaku" lub "weryfikuj skrót", ponieważ usługa Key Vault nie obsługuje tworzenia skrótów zawartości. Aplikacje powinny określić skrót danych, które mają być podpisane lokalnie, a następnie zażądać podpisania skrótu przez usługę Key Vault. Weryfikacja podpisanych skrótów jest obsługiwana jako wygodna operacja dla aplikacji, które mogą nie mieć dostępu do materiału klucza [public]. Aby uzyskać najlepszą wydajność aplikacji, operacje VERIFY powinny być wykonywane lokalnie.
  • Szyfrowanie/zawijanie kluczy: klucz przechowywany w usłudze Key Vault może służyć do ochrony innego klucza, zazwyczaj symetrycznego klucza szyfrowania zawartości (CEK). Gdy klucz w usłudze Key Vault jest asymetryczny, używane jest szyfrowanie kluczy. Na przykład RSA-OAEP i operacje WRAPKEY/UNWRAPKEY są równoważne szyfrowaniu/odszyfrowaniu. Gdy klucz w usłudze Key Vault jest symetryczny, używane jest zawijanie kluczy. Na przykład AES-KW. Operacja WRAPKEY jest obsługiwana jako wygoda dla aplikacji, które mogą nie mieć dostępu do [publicznego] materiału klucza. Aby uzyskać najlepszą wydajność aplikacji, operacje WRAPKEY powinny być wykonywane lokalnie.
  • Szyfrowanie i odszyfrowywanie: klucz przechowywany w usłudze Key Vault może służyć do szyfrowania lub odszyfrowania pojedynczego bloku danych. Rozmiar bloku zależy od typu klucza i wybranego algorytmu szyfrowania. Operacja Szyfruj jest udostępniana dla wygody w przypadku aplikacji, które mogą nie mieć dostępu do materiału klucza [public]. Aby uzyskać najlepszą wydajność aplikacji, operacje szyfrowania powinny być wykonywane lokalnie.

Chociaż WRAPKEY/UNWRAPKEY przy użyciu kluczy asymetrycznych może wydawać się zbędne (ponieważ operacja jest równoważna szyfrowaniu/odszyfrowaniu), użycie odrębnych operacji jest ważne. Rozróżnienie zapewnia semantyczne i autoryzacje separacji tych operacji oraz spójność, gdy inne typy kluczy są obsługiwane przez usługę.

Usługa Key Vault nie obsługuje operacji EKSPORTOWANIa. Po zainicjowaniu obsługi administracyjnej klucza w systemie nie można go wyodrębnić ani zmodyfikować jego klucza. Jednak użytkownicy usługi Key Vault mogą wymagać klucza dla innych przypadków użycia, takich jak po jego usunięciu. W takim przypadku mogą używać operacji BACKUP i RESTORE do eksportowania/importowania klucza w postaci chronionej. Klucze utworzone przez operację BACKUP nie mogą być używane poza usługą Key Vault. Alternatywnie można użyć operacji IMPORT dla wielu wystąpień usługi Key Vault.

Użytkownicy mogą ograniczyć dowolną operację kryptograficzną obsługiwaną przez usługę Key Vault dla poszczególnych kluczy przy użyciu właściwości key_ops obiektu JWK.

Aby uzyskać więcej informacji na temat obiektów JWK, zobacz Klucz internetowy JSON (JWK).

Operacje zasad rotacji kluczy

Automatyczne obracanie kluczy magazynu kluczy można ustawić, konfigurując zasady automatycznego obracania kluczy. Jest on dostępny tylko w zasobie usługi Key Vault.

  • Pobieranie zasad rotacji: pobieranie konfiguracji zasad rotacji.
  • Ustaw zasady rotacji: ustaw konfigurację zasad rotacji.

Atrybuty klucza

Oprócz materiału kluczowego można określić następujące atrybuty. W żądaniu JSON atrybuty słowa kluczowego i nawiasy klamrowe "{" "}" są wymagane, nawet jeśli nie określono atrybutów.

  • włączone: wartość logiczna, opcjonalna, wartość domyślna to true. Określa, czy klucz jest włączony i możliwy do użycia dla operacji kryptograficznych. Włączony atrybut jest używany z nbf i exp. Gdy operacja występuje między nbf i exp, będzie dozwolona tylko wtedy, gdy włączono wartość true. Operacje poza oknem exp nbf / są automatycznie niedozwolone, z wyjątkiem odszyfrowywania, wydawania, odpakowywania i weryfikowania.
  • nbf: IntDate, opcjonalnie, wartość domyślna to teraz. Atrybut nbf (nie wcześniej) identyfikuje czas, przed którym klucz NIE MOŻE być używany do operacji kryptograficznych, z wyjątkiem odszyfrowywania, zwalniania, odpakowywania i weryfikowania. Przetwarzanie atrybutu nbf wymaga, aby bieżąca data/godzina musi być późniejsza lub równa innej niż data/godzina wymieniona w atrybucie nbf . Usługa Key Vault MOŻE zapewnić niewielkie pole, zwykle nie więcej niż kilka minut, aby uwzględnić niesymetryczność zegara. Jego wartość MUSI być liczbą zawierającą wartość IntDate.
  • exp: IntDate, opcjonalnie, wartość domyślna to "forever". Atrybut exp (time time) identyfikuje czas wygaśnięcia dla lub po upływie którego klucz NIE MOŻE być używany do operacji kryptograficznych, z wyjątkiem odszyfrowywania, zwolnienia, odpakowywania i weryfikowania. Przetwarzanie atrybutu exp wymaga, aby bieżąca data/godzina musi być przed datą/godziną wygaśnięcia wymienioną w atrybucie exp . Usługa Key Vault MOŻE zapewnić niewielką swobodę, zwykle nie więcej niż kilka minut, aby uwzględnić niesymetryczność zegara. Jego wartość MUSI być liczbą zawierającą wartość IntDate.

Istnieje więcej atrybutów tylko do odczytu, które są zawarte w dowolnej odpowiedzi, która zawiera kluczowe atrybuty:

  • created: IntDate, opcjonalnie. Utworzony atrybut wskazuje, kiedy ta wersja klucza została utworzona. Wartość ma wartość null dla kluczy utworzonych przed dodaniu tego atrybutu. Jego wartość MUSI być liczbą zawierającą wartość IntDate.
  • zaktualizowano: Data intDate, opcjonalnie. Zaktualizowany atrybut wskazuje, kiedy ta wersja klucza została zaktualizowana. Wartość ma wartość null dla kluczy, które zostały ostatnio zaktualizowane przed dodaniu tego atrybutu. Jego wartość MUSI być liczbą zawierającą wartość IntDate.
  • hsmPlatform: ciąg, opcjonalny. Podstawowa platforma HSM, która chroni klucz.
    • Wartość hsmPlatform 2 oznacza, że klucz jest chroniony przez naszą najnowszą platformę HSM zweryfikowaną przez standard FIPS 140 Level 3.
    • Wartość hsmPlatform 1 oznacza, że klucz jest chroniony przez naszą poprzednią platformę HSM zweryfikowaną przez standard FIPS 140 Level 2.
    • Wartość hsmPlatform 0 oznacza, że klucz jest chroniony przez moduł kryptograficzny sprzętu HSM na poziomie 140 FIPS 1.
    • Jeśli ta wartość nie jest ustawiona przez zarządzaną pulę modułów HSM, jest ona chroniona przez najnowszą zweryfikowaną platformę HSM standardu FIPS 140 Level 3.

Należy pamiętać, że klucze są powiązane z modułem HSM, w którym zostały utworzone. Nowe klucze są bezproblemowo tworzone i przechowywane w nowych modułach HSM. Chociaż nie ma możliwości migracji ani transferu kluczy, nowe wersje kluczy są automatycznie dostępne w nowych modułach HSM. Aby uzyskać więcej informacji na temat migrowania do nowego klucza, zobacz Jak migrować kluczowe obciążenia.

Aby uzyskać więcej informacji na temat funkcji IntDate i innych typów danych, zobacz [Informacje o kluczach, wpisach tajnych i certyfikatach: typy danych.

Operacje kontrolowane przez datę i godzinę

Nieważne i wygasłe klucze poza oknem exp systemu nbf / będą działać w przypadku operacji odszyfrowywania, wydawania, odpakowywania i weryfikowania (nie zostanie zwrócony błąd 403, Zabronione). Uzasadnieniem używania nieprawidłowego stanu jest zezwolenie na przetestowanie klucza przed użyciem produkcyjnym. Uzasadnieniem użycia wygasłego stanu jest zezwolenie na operacje odzyskiwania na danych utworzonych, gdy klucz był prawidłowy. Ponadto możesz wyłączyć dostęp do klucza przy użyciu zasad usługi Key Vault lub zaktualizować atrybut włączonego klucza na wartość false.

Aby uzyskać więcej informacji na temat typów danych, zobacz Typy danych.

Aby uzyskać więcej informacji na temat innych możliwych atrybutów, zobacz JSON Web Key (JWK).

Tagi kluczy

Można określić więcej metadanych specyficznych dla aplikacji w postaci tagów. Usługa Key Vault obsługuje maksymalnie 15 tagów, z których każda może mieć 256 znaków i 256 znaków.

Uwaga

Tagi są czytelne przez obiekt wywołujący, jeśli mają listę lub uzyskają uprawnienia do tego klucza.

Kontrola dostępu do kluczy

Kontrola dostępu dla kluczy zarządzanych przez usługę Key Vault jest dostępna na poziomie usługi Key Vault, która działa jako kontener kluczy. Dostęp do kluczy można kontrolować przy użyciu kontroli dostępu opartej na rolach usługi Key Vault (zalecane) lub starego modelu uprawnień zasad dostępu do magazynu. Model uprawnień oparty na rolach ma trzy wstępnie zdefiniowane role do zarządzania kluczami: "Key Vault Crypto Officer", "Użytkownik kryptograficzny usługi Key Vault", "Użytkownik szyfrowania usługi Key Vault" i może mieć zakres subskrypcji, grupy zasobów lub poziomu magazynu.

Uprawnienia modelu uprawnień zasad dostępu do magazynu:

  • Uprawnienia do operacji zarządzania kluczami

    • get: Odczytywanie publicznej części klucza oraz jego atrybutów
    • lista: Wyświetlanie listy kluczy lub wersji klucza przechowywanego w magazynie kluczy
    • update: Aktualizowanie atrybutów klucza
    • create: Create new keys (tworzenie nowych kluczy)
    • import: importowanie klucza do magazynu kluczy
    • delete: Usuwanie obiektu klucza
    • odzyskiwanie: odzyskiwanie usuniętego klucza
    • kopia zapasowa: tworzenie kopii zapasowej klucza w magazynie kluczy
    • przywracanie: Przywracanie klucza kopii zapasowej do magazynu kluczy
  • Uprawnienia do operacji kryptograficznych

    • odszyfrowywanie: użyj klucza, aby wyłączyć ochronę sekwencji bajtów
    • szyfruj: użyj klucza, aby chronić dowolną sekwencję bajtów
    • unwrapKey: użyj klucza, aby wyłączyć ochronę opakowanych kluczy symetrycznych
    • wrapKey: użyj klucza, aby chronić klucz symetryczny
    • verify: użyj klucza, aby zweryfikować skróty
    • znak: użyj klucza, aby podpisać skróty
  • Uprawnienia do operacji uprzywilejowanych

    • przeczyszczanie: Przeczyszczanie (trwałe usuwanie) usuniętego klucza
    • release: Zwolnij klucz do poufnego środowiska obliczeniowego, który jest zgodny z release_policy klucza
  • Uprawnienia do operacji zasad rotacji

    • obracanie: Obracanie istniejącego klucza przez wygenerowanie nowej wersji klucza (tylko usługa Key Vault)
    • pobieranie zasad rotacji: pobieranie konfiguracji zasad rotacji
    • ustaw zasady rotacji: Ustawianie konfiguracji zasad rotacji

Aby uzyskać więcej informacji na temat pracy z kluczami, zobacz Operacje klucza w dokumentacji interfejsu API REST usługi Key Vault.

Następne kroki