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 開發人員指南