Sdílet prostřednictvím


Klíčové typy, algoritmy a operace

Key Vault podporuje dva typy prostředků: trezory a spravované HSM. Oba typy prostředků podporují různé šifrovací klíče. Pokud chcete zobrazit souhrn podporovaných typů klíčů, typy ochrany podle jednotlivých typů prostředků najdete v tématu Informace o klíčích.

Následující tabulka ukazuje souhrn typů klíčů a podporovaných algoritmů.

Typy klíčů, velikosti a křivky Šifrování/dešifrování
(Zabalení/rozbalení)
Podepsat/ověřit
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
128bitová, 256bitová verze AES
(Jenom spravované HSM)
AES-KW
AES-GCM
AES-CBC
NA

Algoritmy EC

Následující identifikátory algoritmů jsou podporovány s klíči EC-HSM.

Typy křivek

SIGN/VERIFY

  • ES256 – ECDSA pro algoritmy hash SHA-256 a klíče vytvořené s křivkou P-256. Tento algoritmus je popsaný v RFC7518.
  • ES256K – ECDSA pro algoritmy HASH SHA-256 vytvořené pomocí křivky P-256K. Tento algoritmus čeká na standardizaci.
  • ES384 - ECDSA pro algoritmy HASH SHA-384 a klíče vytvořené s křivkou P-384. Tento algoritmus je popsaný v RFC7518.
  • ES512 – ECDSA pro algoritmy hash SHA-512 a klíče vytvořené s křivkou P-521. Tento algoritmus je popsaný v RFC7518.

Algoritmy RSA

Následující identifikátory algoritmů jsou podporovány u klíčů RSA a RSA-HSM.

WRAPKEY/UNWRAPKEY, ENCRYPT/DECRYPT

  • RSA1_5 – šifrování klíče RSAES-PKCS1-V1_5 [RFC3447]
  • RSA-OAEP – RSAES s využitím optimálního asymetrického odsazení šifrování (OAEP) [RFC3447] s výchozími parametry zadanými rfC 3447 v oddílu A.2.1. Tyto výchozí parametry používají funkci hash SHA-1 a funkci generování masky MGF1 s SHA-1.
  • RSA-OAEP-256 – RSAES využívající optimální asymetrické odsazení šifrování s hashovou funkcí SHA-256 a funkcí generování masky MGF1 s SHA-256

SIGN/VERIFY

  • PS256 - RSASSA-PSS používající SHA-256 a MGF1 s SHA-256, jak je popsáno v RFC7518.
  • PS384 - RSASSA-PSS používající SHA-384 a MGF1 s SHA-384, jak je popsáno v RFC7518.
  • PS512 - RSASSA-PSS používající SHA-512 a MGF1 s SHA-512, jak je popsáno v RFC7518.
  • RS256 – RSASSA-PKCS-v1_5 pomocí SHA-256. Zadaná hodnota hash aplikace se musí vypočítat pomocí sha-256 a musí mít délku 32 bajtů.
  • RS384 – RSASSA-PKCS-v1_5 pomocí SHA-384. Zadaná hodnota hash aplikace se musí vypočítat pomocí sha-384 a musí mít délku 48 bajtů.
  • RS512 – RSASSA-PKCS-v1_5 pomocí SHA-512. Zadaná hodnota hash aplikace musí být vypočítávaná pomocí SHA-512 a musí mít délku 64 bajtů.
  • RSNULL – viz RFC2437, specializovaný případ použití pro povolení určitých scénářů TLS.

Poznámka:

Pro lepší výkon se doporučuje režim odsazení RSA-PSS. Hodnota DigestInfo je vytvořena na straně serveru pro operace sign, které algoritmy RS256, RS384 a RS512 vygenerují.

Algoritmy symetrických klíčů (pouze spravované HSM)

  • AES-KW – zalamování klíčů AES (RFC3394).
  • AES-GCM – Šifrování AES v režimu čítače Galois (NIST SP 800-38d)
  • AES-CBC – Šifrování AES v režimu řetězení bloků šifrování (NIST SP 800-38a)

Poznámka:

Podepisovat a ověřovat provozní algoritmy musí odpovídat typu klíče, jinak služba vrátí nesprávnou chybu velikosti klíče.

Klíčové operace

Key Vault, včetně spravovaného HSM, podporuje následující operace s klíčovými objekty:

  • Vytvoření: Umožňuje klientovi vytvořit klíč ve službě Key Vault. Hodnota klíče se vygeneruje službou Key Vault a uloží se a klientovi se nevolí. Asymetrické klíče se můžou vytvořit ve službě Key Vault.
  • Import: Umožňuje klientovi importovat existující klíč do služby Key Vault. Asymetrické klíče je možné importovat do služby Key Vault pomocí několika různých metod balení v rámci konstruktoru JWK.
  • Aktualizace: Umožňuje klientovi s dostatečnými oprávněními upravit metadata (atributy klíče) přidruženého ke klíči dříve uloženému ve službě Key Vault.
  • Odstranění: Umožňuje klientovi s dostatečnými oprávněními odstranit klíč ze služby Key Vault.
  • Seznam: Umožňuje klientovi vypsat všechny klíče v daném trezoru klíčů.
  • Verze seznamu: Umožňuje klientovi vypsat všechny verze daného klíče v dané službě Key Vault.
  • Get: Umožňuje klientovi načíst veřejné části daného klíče ve službě Key Vault.
  • Zálohování: Exportuje klíč v chráněném formuláři.
  • Obnovení: Importuje dříve zálohovaný klíč.
  • Verze: Bezpečně uvolní klíč pro autorizovaný kód spuštěný v rámci důvěrného výpočetního prostředí. Vyžaduje ověření identity, že důvěryhodné spouštěcí prostředí (TEE) splňuje požadavky release_policy klíče.
  • Otočení: Otočení existujícího klíče vygenerováním nové verze klíče (pouze Key Vault)

Další informace najdete v tématu Operace s klíči v referenčních informacích k rozhraní REST API služby Key Vault.

Po vytvoření klíče ve službě Key Vault je možné pomocí klíče provést následující kryptografické operace:

  • Podepsat a ověřit: Tato operace je výhradně "sign hash" nebo "verify hash", protože Key Vault nepodporuje hashování obsahu při vytváření podpisu. Aplikace by měly zatřiďovat data, která se mají podepsat místně, a pak požádat o podepsání hodnoty hash službou Key Vault. Ověření podepsaných hodnot hash je podporováno jako operace usnadnění pro aplikace, které nemusí mít přístup k [public] klíč materiálu. Pro zajištění nejlepšího výkonu aplikace by se měly provádět operace VERIFY místně.
  • Šifrování klíčů / zabalení: Klíč uložený ve službě Key Vault se může použít k ochraně jiného klíče, obvykle šifrovacího klíče symetrického obsahu (CEK). Pokud je klíč ve službě Key Vault asymetrický, použije se šifrování klíčů. Například operace RSA-OAEP a WRAPKEY/UNWRAPKEY jsou ekvivalentní operacím ENCRYPT/DECRYPT. Pokud je klíč ve službě Key Vault symetrický, použije se zabalení klíčů. Například AES-KW. Operace WRAPKEY je podporována jako usnadnění pro aplikace, které nemusí mít přístup k [public] klíč materiálu. Pro zajištění nejlepšího výkonu aplikace by se měly provádět operace WRAPKEY místně.
  • Šifrování a dešifrování: Klíč uložený ve službě Key Vault se může použít k šifrování nebo dešifrování jednoho bloku dat. Velikost bloku je určena typem klíče a vybraným šifrovacím algoritmem. Operace Encrypt je poskytována pro usnadnění, pro aplikace, které nemusí mít přístup k [public] klíč materiálu. Pro zajištění nejlepšího výkonu aplikace by se operace ENCRYPT měly provádět místně.

I když se funkce WRAPKEY/UNWRAPKEY pomocí asymetrických klíčů může zdát nadbytečná (protože operace je ekvivalentní funkci ENCRYPT/DECRYPT), je použití jedinečných operací důležité. Rozdíl poskytuje sémantické a autorizační oddělení těchto operací a konzistenci v případě, že služba podporuje jiné typy klíčů.

Key Vault nepodporuje operace exportu. Jakmile se klíč zřídí v systému, nelze ho extrahovat ani upravit jeho klíčový materiál. Uživatelé služby Key Vault ale můžou vyžadovat klíč pro jiné případy použití, například po jeho odstranění. V takovém případě mohou k exportu nebo importu klíče v chráněném formuláři použít operace ZÁLOHOVÁNÍ a OBNOVENÍ. Klíče vytvořené operací BACKUP nejsou použitelné mimo službu Key Vault. Případně můžete operaci IMPORT použít pro více instancí služby Key Vault.

Uživatelé mohou omezit jakékoli kryptografické operace, které Key Vault podporuje na základě klíče pomocí vlastnosti key_ops objektu JWK.

Další informace o objektech JWK najdete v tématu JSON Web Key (JWK).

Operace zásad obměně klíčů

Automatické obměně klíčů trezoru klíčů je možné nastavit konfigurací zásad automatického obměny klíčů. Je k dispozici pouze u prostředku služby Key Vault.

  • Získat zásady obměny: Načtěte konfiguraci zásad obměny.
  • Nastavit zásady obměně: Nastavení konfigurace zásad obměně

Klíčové atributy

Vedle nastavení týkajících se klíčů samotných je možné ještě zadat následující atributy. V požadavku JSON jsou atributy klíčové slovo a složené závorky {' '}', vyžadovány i v případě, že nejsou zadány žádné atributy.

  • enabled: boolean, optional, default is true. Určuje, jestli je klíč povolený a použitelný pro kryptografické operace. Povolený atribut se používá s nbf a exp. Pokud dojde k operaci mezi nbf a exp, bude povolena pouze v případě, že je povoleno na hodnotu true. Operace mimo okno nbf / exp jsou automaticky zakázány, s výjimkou dešifrování, uvolnění, rozbalení a ověření.
  • nbf: IntDate, volitelné, výchozí je nyní. Atribut nbf (ne před) určuje čas, před kterým se klíč nesmí používat pro kryptografické operace, s výjimkou dešifrování, uvolnění, rozbalení a ověření. Zpracování atributu nbf vyžaduje, aby aktuální datum a čas bylo po nebo rovno datu a času, které není uvedeno v atributu nbf . Key Vault může poskytnout pro některé malé leeway, obvykle ne více než několik minut, aby se zohlednila nerovnoměrná distribuce hodin. Její hodnota musí být číslo obsahující hodnotu IntDate.
  • exp: IntDate, volitelné, výchozí hodnota je "navždy". Atribut exp (čas vypršení platnosti) identifikuje čas vypršení platnosti, za který se klíč NESMÍ používat pro kryptografickou operaci, s výjimkou dešifrování, uvolnění, rozbalení a ověření. Zpracování atributu exp vyžaduje, aby aktuální datum a čas musel být před datem a časem vypršení platnosti uvedeným v atributu exp . Key Vault může poskytnout pro některé malé leewaye, obvykle ne více než několik minut, aby se zohlednila nerovnoměrná distribuce hodin. Její hodnota musí být číslo obsahující hodnotu IntDate.

Existují další atributy jen pro čtení, které jsou zahrnuty v jakékoli odpovědi, která obsahuje klíčové atributy:

  • vytvořeno: IntDate, volitelné. Vytvořený atribut označuje, kdy byla vytvořena tato verze klíče. Hodnota je null pro klíče vytvořené před přidáním tohoto atributu. Její hodnota musí být číslo obsahující hodnotu IntDate.
  • aktualizováno: IntDate, volitelné. Aktualizovaný atribut označuje, kdy byla tato verze klíče aktualizována. Hodnota je null pro klíče, které byly naposledy aktualizovány před přidáním tohoto atributu. Její hodnota musí být číslo obsahující hodnotu IntDate.
  • hsmPlatform: řetězec, volitelný. Základní platforma HSM, která chrání klíč.
    • Hodnota hsmPlatform 2 znamená, že klíč je chráněný naší nejnovější platformou HSM ověřenou úrovní FIPS 140 Level 3.
    • Hodnota hsmPlatform 1 znamená, že klíč je chráněný naší předchozí ověřenou platformou HSM úrovně 140 FIPS 140 Level 2.
    • Hodnota hsmPlatform 0 znamená, že klíč je chráněný softwarovým kryptografickým modulem HSM úrovně 140 FIPS 140.
    • pokud tento fond spravovaného HSM nenastaví, chrání ho naše nejnovější ověřená platforma HSM úrovně 140 FIPS 3.

Je důležité si uvědomit, že klíče jsou vázané na HSM, ve kterém byly vytvořeny. Nové klíče se bezproblémově vytvářejí a ukládají v nových modulech HSM. I když neexistuje způsob, jak migrovat nebo přenášet klíče, nové verze klíčů se automaticky nacházejí v nových modulech HSM. Další informace o migraci na nový klíč najdete v tématu Postup migrace klíčových úloh.

Další informace o intDate a dalších datových typech najdete v tématu [O klíčích, tajných klíčích a certifikátech: Datové typy.

Operace řízené datem a časem

Neplatné a prošlé klíče mimo okno nbf / exp budou fungovat pro dešifrování, uvolnění, rozbalení a ověření operací (nevrátí se 403, Zakázáno). Odůvodněním použití dosud neplatného stavu je umožnit testování klíče před použitím produkčního prostředí. Důvodem použití stavu vypršení platnosti je povolení operací obnovení u dat vytvořených v případě platnosti klíče. Můžete také zakázat přístup ke klíči pomocí zásad služby Key Vault nebo aktualizací atributu povoleného klíče na false.

Další informace o datovýchtypech

Další informace o dalších možných atributech najdete ve webovém klíči JSON (JWK).

Klíčové značky

Ve formě značek můžete zadat další metadata specifická pro aplikaci. Key Vault podporuje až 15 značek, z nichž každý může mít 256 znaků a hodnotu 256 znaků.

Poznámka:

Značky jsou čitelné volajícím, pokud mají seznam nebo získají oprávnění k danému klíči.

Řízení přístupu ke klíčům

Řízení přístupu ke klíčům spravovaným službou Key Vault se poskytuje na úrovni služby Key Vault, která funguje jako kontejner klíčů. Přístup ke klíčům můžete řídit pomocí řízení přístupu na základě role služby Key Vault (doporučeno) nebo starého modelu oprávnění zásad přístupu trezoru. Model oprávnění na základě role má tři předdefinované role pro správu klíčů: Kryptografický důstojník služby Key Vault, Crypto User služby Key Vault, Uživatel šifrování služby Key Vault a může být vymezený na úroveň předplatného, skupiny prostředků nebo trezoru.

Oprávnění modelu oprávnění zásad přístupu trezoru:

  • Oprávnění pro operace správy klíčů

    • get: Čtení veřejné části klíče a jeho atributů
    • list: Výpis klíčů nebo verzí klíče uloženého v trezoru klíčů
    • update: Aktualizace atributů pro klíč
    • create: Create new keys
    • import: Import klíče do trezoru klíčů
    • delete: Odstranění objektu klíče
    • obnovení: Obnovení odstraněného klíče
    • zálohování: Zálohování klíče v trezoru klíčů
    • obnovení: Obnovení zálohovaného klíče do trezoru klíčů
  • Oprávnění pro kryptografické operace

    • dešifrování: Použití klíče k odemknutí posloupnosti bajtů
    • encrypt: Použití klíče k ochraně libovolné posloupnosti bajtů
    • unwrapKey: Použití klíče k odemknutí zabalených symetrických klíčů
    • wrapKey: Použití klíče k ochraně symetrického klíče
    • verify: Ověření digests pomocí klíče
    • sign: Use the key to sign digests
  • Oprávnění pro privilegované operace

    • vyprázdnění: Vyprázdnění (trvalé odstranění) odstraněného klíče
    • release: Uvolnění klíče do důvěrného výpočetního prostředí, které odpovídá release_policy klíče
  • Oprávnění pro operace zásad obměně

    • rotate: Otočení existujícího klíče vygenerováním nové verze klíče (pouze Key Vault)
    • získání zásad obměny: Načtení konfigurace zásad obměny
    • nastavit zásadu obměně: Nastavení konfigurace zásad obměně

Další informace o práci s klíči najdete v tématu Operace s klíči v referenčních informacích k rozhraní REST API služby Key Vault.

Další kroky