• P-256 - NIST 曲線 P-256,定義於 DSS FIPS PUB 186-4 。
  • P-256K - SEC 曲線 SECP256K1,其定義在 SEC 2:建議使用的橢圓曲線網域參數 。
  • P-384 - NIST 曲線 P-384,定義於 DSS FIPS PUB 186-4 。
  • P-521 - NIST 曲線 P-521,定義於 DSS FIPS PUB 186-4 。
  • SIGN/VERIFY

  • ES256 - 適用於 SHA-256 摘要的 ECDSA 與使用曲線 P-256 建立的金鑰。 此演算法說明於 RFC7518 。
  • ES256K - 適用於 SHA-256 摘要的 ECDSA 與使用曲線 P-256K 建立的金鑰。 此演算法尚待標準化。
  • ES384 - 適用於 SHA-384 摘要的 ECDSA 與使用曲線 P-384 建立的金鑰。 此演算法說明於 RFC7518 。
  • ES512 - 適用於 SHA-512 摘要的 ECDSA 與使用曲線 P-521 建立的金鑰。 此演算法說明於 RFC7518 。
  • RSA 演算法

    RSA 與 RSA-HSM 金鑰支援下列演算法識別碼

    包裝金鑰/解除包裝金鑰、加密/解密

  • RSA1_5 - RSAES-PKCS1-V1_5 [RFC3447] 金鑰加密
  • RSA-OAEP - RSAES 使用「最佳非對稱加密填補 (OAEP)」[RFC3447],並利用 A.2.1 節中 RFC 3447 所指定的預設參數。 這些預設參數會使用 SHA-1 的雜湊函數及搭配 SHA-1 的 MGF1 遮罩產生函數。
  • RSA-OAEP-256 – RSAES 使用最佳非對稱加密填補,具有 SHA-256 的雜湊函式及搭配 SHA-256 的 MGF1 遮罩產生函式
  • SIGN/VERIFY

  • PS256 - RSASSA-PSS 使用 SHA-256 及搭配 SHA-256 的 MGF1,如 RFC7518 中所述。
  • PS384 - RSASSA-PSS 使用 SHA-384 及搭配 SHA-384 的 MGF1,如 RFC7518 中所述。
  • PS512 - RSASSA-PSS 使用 SHA-512 及搭配 SHA-512 的 MGF1,如 RFC7518 中所述。
  • RS256 - 使用 SHA-256 的 RSASSA-PKCS-v1_5。 提供摘要值的應用程式必須使用 SHA-256 計算,而且長度必須是 32 個位元組。
  • RS384 - 使用 SHA-384 的 RSASSA-PKCS-v1_5。 提供摘要值的應用程式必須使用 SHA-384 計算,而且長度必須是 48 個位元組。
  • RS512 - 使用 SHA-512 的 RSASSA-PKCS-v1_5。 提供摘要值的應用程式必須使用 SHA-512 計算,而且長度必須是 64 個位元組。
  • RSNULL - 請參閱啟用特定 TLS 案例的特殊使用案例 RFC2437 。
  • DigestInfo 是在伺服器端上針對演算法 RS256、RS384 和 RS512 產生的簽署作業所建構的。

    對稱金鑰演算法 (僅限受控 HSM)

  • AES-KW - AES 金鑰包裝 ( RFC3394 )。
  • AES-GCM - Galois 計數器模式中的 AES 加密 ( NIST SP 800-38d )
  • AES-CBC - Cipher 區塊鏈結模式中的 AES 加密 ( NIST SP 800-38a )
  • 簽署和驗證作業演算法必須符合金鑰類型,否則服務會傳回「金鑰大小不正確」錯誤。

    Key Vault (包括受控 HSM) 支援下列金鑰物件作業:

  • 建立 :可讓用戶端在 Key Vault 中建立金鑰。 金鑰值會由 Key Vault 產生並儲存,但不會發行給用戶端。 在 Key Vault 中可建立非對稱金鑰。
  • Import :可讓用戶端將現有金鑰匯入至 Key Vault。 非對稱金鑰可以使用 JWK 建構內的數種不同封裝方法,匯入至金鑰保存庫。
  • 更新 :可讓具有足夠權限的用戶端,修改與先前儲存在 Key Vault 內之金鑰相關的中繼資料 (金鑰屬性)。
  • 刪除 :可讓具有足夠權限的用戶端從 Key Vault 中刪除金鑰。
  • 列出 :可讓用戶端列出所指定 Key Vault 中的所有金鑰。
  • 列出版本 :可讓用戶端列出指定的 Key Vault 中,所指定金鑰的所有版本。
  • 取得 :可讓用戶端擷取 Key Vault 中所指定金鑰的公開部分。
  • 備份 :以受保護的形式匯出金鑰。
  • 還原 :匯入先前備份的金鑰。
  • 釋出 :它會安全地將金鑰釋出給在機密計算環境中執行的授權程式碼。 它需要證明受信任的執行環境 (TEE) 符合金鑰的 release_policy 的需求。
  • 輪替 :藉由產生新版本的金鑰來輪替現有的金鑰 (僅限 Key Vault)。
  • 如需詳細資訊,請參閱 Key Vault REST API 參考中的金鑰作業 。

    一旦在 Key Vault 中建立金鑰之後,即可使用該金鑰執行下列加密編譯作業:

  • 簽署並驗證 :嚴格來說,這項作業是「簽署雜湊」或「驗證雜湊」,因為 Key Vault 不支援在建立簽章時進行內容雜湊。 應用程式應對要在本機上簽署的資料進行雜湊,然後要求 Key Vault 簽署此雜湊資料。 驗證已簽署的雜湊是針對無法存取 [公開] 金鑰內容的應用程式而支援的便利作業。 為達到最佳應用程式效能,驗證作業應在本機上執行。
  • 金鑰加密/包裝 :儲存在 Key Vault 中的金鑰可用來保護另一個金鑰,通常是對稱內容加密金鑰 (CEK)。 如果 Key Vault 中的金鑰是非對稱的,則會使用金鑰加密。 例如 RSA-OAEP 和包裝金鑰/解除包裝金鑰作業等同於加密/解密。 如果 Key Vault 中的金鑰是對稱的,則使用金鑰包裝。 例如 AES-KW。 包裝金鑰作業是針對無法存取 [公開] 金鑰內容的應用程式而支援的便利機制。 為達到最佳應用程式效能,包裝金鑰作業應在本機上執行。
  • 加密和解密 :儲存在 Key Vault 中的金鑰可用來加密或解密單一資料區塊。 區塊的大小取決於金鑰類型和選取的加密演算法。 加密作業是針對無法存取 [公開] 金鑰內容的應用程式而提供的便利機制。 為達到最佳應用程式效能,加密作業應在本機上執行。
  • 儘管使用非對稱金鑰的包裝金鑰/解除包裝金鑰顯得有點多餘 (因為此作業相當於加密/解密),但使用相異的作業是相當重要的。 這樣的差異性可讓這些作業的語意和授權有所區隔,並且在服務支援其他金鑰類型時帶來一致性。

    Key Vault 不支援匯出作業。 在系統中佈建金鑰後,即無法加以擷取或修改其金鑰內容。 不過,Key Vault 的使用者在其他使用案例中有可能需要其金鑰,例如在金鑰遭刪除後。 在此情況下,他們可以使用備份和還原作業來匯出/匯入受保護的金鑰。 備份作業所建立的金鑰無法在 Key Vault 以外的地方使用。 但是,可以對多個 Key Vault 執行個體使用匯入作業。

    使用者可以使用 JWK 物件的 key_ops 屬性,來對 Key Vault 支援的密碼編譯作業 (以每個金鑰為基礎) 設定限制。

    如需 JWK 物件的詳細資訊,請參閱 JSON Web 金鑰 (JWK) 。

    金鑰輪替原則作業

    金鑰保存庫金鑰自動輪替可透過設定金鑰自動輪替原則來設定。 僅適用於 Key Vault 資源。

  • 取得輪替原則 :擷取輪替原則組態
  • 設定輪替原則 :設定輪替原則組態
  • 除了金鑰內容,您可以指定下列屬性。 在 JSON 要求中,屬性關鍵字和括弧「{」「}」是必要的,即使沒有指定任何屬性。

  • enabled :選擇性的布林值,預設值是 true 。 指定金鑰是否已啟用,並可用於密碼編譯作業。 enabled 屬性會與 nbf 和 exp 搭配使用。當 nbf 與 exp 之間發生作業時,只有在 enabled 設定為 true 時,才會允許它。 nbf / exp 視窗以外的作業會自動遭到允許,但 解密、解除包裝和驗證 除外。
  • nbf :選擇性的 IntDate,預設值為現在 (now)。 nbf (不在) 屬性之前,會識別金鑰不得用於密碼編譯作業的時間,但 解密、解除包裝和驗證 除外。 若要處理 nbf 屬性,目前的日期/時間「必須」晚於或等同 nbf 屬性中所列的「不早於」日期/時間。 考慮到時鐘誤差,Key Vault 可能會多提供一點時間 (通常都在幾分鐘內)。 其值必須是包含 IntDate 值的數字。
  • exp :選擇性的 IntDate,預設值為永久 (forever)。 exp (到期時間) 屬性可識別金鑰不得用於密碼編譯作業的到期時間,但 解密、解除包裝和驗證 除外。 若要處理 exp 屬性,目前的日期/時間「必須」早於 exp 屬性中所列的到期日期/時間。 考慮到時鐘誤差,Key Vault 可能會多提供一點時間 (通常都在幾分鐘內)。 其值必須是包含 IntDate 值的數字。
  • 任何包含索引鍵屬性的回應中,都有更多唯讀屬性:

  • created :選擇性的 IntDate。 created 屬性會指出建立此金鑰版本的時間。 若金鑰是在新增此屬性之前建立的,則此值為 Null。 其值必須是包含 IntDate 值的數字。
  • updated :選擇性的 IntDate。 updated 屬性會指出更新此金鑰版本的時間。 若金鑰是在新增此屬性之前進行最後一次更新,則此值為 Null。 其值必須是包含 IntDate 值的數字。
  • 如需有關 IntDate 和其他資料類型的詳細資訊,請參閱 [關於金鑰、祕密與憑證: 資料類型 。

    受到日期時間控制的作業

    nbf / exp 範圍外尚未生效和過期的金鑰,將會用於 解密 、 解除包裝 和 驗證 作業 (不會傳回 403 禁止)。 使用尚未生效狀態的基本原理是,允許金鑰先經過測試,然後才在生產環境使用。 使用過期狀態的基本原理是,允許對在金鑰有效時建立的資料執行復原作業。 此外,您可以使用 Key Vault 原則,或藉由將 enabled 金鑰屬性更新為 false ,來停用金鑰的存取權。

    如需資料類型的詳細資訊,請參閱 資料類型 。

    如需其他可能屬性的詳細資訊,請參閱 JSON Web 金鑰 (JWK) 。

    您可以以標記形式指定更多應用程式特定的中繼資料。 Key Vault 支援最多 15 個標記,各標記可以有 256 個字元的名稱和 256 個字元的值。

    如果呼叫者具有該金鑰的 列出 或 取得 權限,其便可讀取標籤。

    金鑰存取控制

    對於由 Key Vault 管理的金鑰,其存取控制是在 Key Vault 層級上提供的,Key Vault 則是用來作為金鑰的容器。 您可以使用金鑰保存庫 角色型存取控制 來控制金鑰的存取, (建議) 或舊的 保存庫存取原則 許可權模型。 角色型許可權模型有三個預先定義的角色來管理金鑰:'金鑰保存庫 Crypto Officer'、'金鑰保存庫 Crypto User'、'金鑰保存庫服務加密使用者',而且可以限定為訂用帳戶、資源群組或保存庫層級。

    保存庫存取原則許可權模型許可權:

  • 金鑰管理作業的權限

  • get :讀取金鑰的公開部分及其屬性
  • list :列出儲存在金鑰保存庫中的金鑰或金鑰版本
  • update :更新金鑰的屬性
  • create :建立新的金鑰
  • import :將金鑰匯入至金鑰保存庫
  • delete :刪除金鑰物件
  • recover :復原已刪除的金鑰
  • backup :備份金鑰保存庫中的金鑰
  • restore :將備份的金鑰還原至金鑰保存庫
  • 密碼編譯作業的權限

  • decrypt :使用金鑰來解除對位元組序列的保護
  • encrypt :使用金鑰來保護任意的位元組序列
  • unwrapKey :使用金鑰來解除對已包裝對稱金鑰的保護
  • wrapKey :使用金鑰來保護對稱金鑰
  • verify :使用金鑰來驗證摘要
  • sign :使用金鑰來簽署摘要
  • 特殊權限作業的權限

  • purge :清除 (永久刪除) 已刪除的金鑰
  • release :將金鑰發行至機密計算環境,其符合金鑰的release_policy
  • 輪替原則作業的權限

  • 輪替 :藉由產生新版本的金鑰來輪替現有的金鑰 (僅限 Key Vault)
  • 取得輪替原則 :擷取輪替原則組態
  • 設定輪替原則 :設定輪替原則組態
  • 如需使用金鑰的詳細資訊,請參閱 Key Vault REST API 參考中的金鑰作業 。

  • 關於 Key Vault
  • 關於受控 HSM
  • Key Vault REST API 概觀
  • 驗證、要求和回應
  • Key Vault 開發人員指南
  •