在資料加密、數位簽章等業務情境中,可根據合規要求(如國密合規)、效能需求或安全等級,選擇合適的密鑰管理類型和密鑰規格。購買國密軟模組後,軟體密鑰支援 Aliyun_SM4 規格。本文介紹不同的密鑰管理類型支援的密鑰規格等資訊。
支援的對稱金鑰規格
對稱金鑰密碼編譯是最常用的敏感性資料加密保護方式之一,加密過程和解密過程使用相同的金鑰產製原料, KMS 可以安全保管對稱金鑰的密鑰材料以防止被非法竊取或使用,確保被加密資料的安全。
密鑰規格
對稱金鑰主要用於資料的加密保護情境,不同的密鑰管理類型支援的密鑰規格等資訊請參見下表。
-
通過CreateKey介面建立密鑰時,如果未指定具體的密鑰規格( KeySpec ), KMS 預設建立“Aliyun_AES_256”密鑰規格的對稱金鑰。
-
HMAC 密鑰要求 KMS 執行個體版本 ≥ 4.1.0,否則控制台將提示「執行個體鏡像升級」。HMAC 密鑰不支援自動密鑰輪轉。
|
密鑰管理類型 |
密鑰規格 |
支援的密碼編譯演算法 |
支援的密鑰用途 |
填充模式 |
|
預設密鑰 |
Aliyun_AES_256 |
GCM(預設值) |
ENCRYPT/DECRYPT |
不涉及 |
|
軟體密鑰 |
Aliyun_AES_256 |
GCM(預設值) |
ENCRYPT/DECRYPT |
不涉及 |
|
HMAC_224 |
HMAC_SHA_224 |
SIGN/VERIFY |
不涉及 |
|
|
HMAC_256 |
HMAC_SHA_256 |
SIGN/VERIFY |
||
|
HMAC_384 |
HMAC_SHA_384 |
SIGN/VERIFY |
||
|
HMAC_512 |
HMAC_SHA_512 |
SIGN/VERIFY |
||
|
硬體密鑰 |
|
GCM(預設值)、ECB、CBC |
ENCRYPT/DECRYPT |
|
|
HMAC_224 |
HMAC_SHA_224 |
SIGN/VERIFY |
不涉及 |
|
|
HMAC_256 |
HMAC_SHA_256 |
SIGN/VERIFY |
||
|
HMAC_384 |
HMAC_SHA_384 |
SIGN/VERIFY |
||
|
HMAC_512 |
HMAC_SHA_512 |
SIGN/VERIFY |
||
|
外部金鑰 |
Aliyun_AES_256 |
GCM(預設值)、ECB、CBC |
ENCRYPT/DECRYPT |
|
遵循的技術規範
-
Aliyun_AES_256 : AES 密鑰, 256 位元。遵循技術規範《Advanced Encryption Standard (AES)》( FIPS PUB 197 )。
-
Aliyun_AES_192 : AES 密鑰, 192 位元。遵循技術規範《Advanced Encryption Standard (AES)》( FIPS PUB 197 )。
-
Aliyun_AES_128 : AES 密鑰, 128 位元。遵循技術規範《Advanced Encryption Standard (AES)》( FIPS PUB 197 )。
-
HMAC_224 :HMAC 密鑰,使用 SHA-224 雜湊演算法,MAC 輸出 224 位元。遵循技術規範《The Keyed-Hash Message Authentication Code (HMAC)》( FIPS 198-1 )。
-
HMAC_256 :HMAC 密鑰,使用 SHA-256 雜湊演算法,MAC 輸出 256 位元。遵循技術規範《The Keyed-Hash Message Authentication Code (HMAC)》( FIPS 198-1 )。
-
HMAC_384 :HMAC 密鑰,使用 SHA-384 雜湊演算法,MAC 輸出 384 位元。遵循技術規範《The Keyed-Hash Message Authentication Code (HMAC)》( FIPS 198-1 )。
-
HMAC_512 :HMAC 密鑰,使用 SHA-512 雜湊演算法,MAC 輸出 512 位元。遵循技術規範《The Keyed-Hash Message Authentication Code (HMAC)》( FIPS 198-1 )。
支援的非對稱金鑰規格
非對稱金鑰由一對公開金鑰和私密金鑰組成,它們在密碼學上互相關聯,其中的公開金鑰可以被分發給任何人,而私密金鑰必須被安全地保護起來,只有擁有者或受信任者可以使用。
在 KMS 建立的非對稱金鑰,可通過GetPublicKey介面或控制台擷取公開金鑰內容;私密金鑰內容由 KMS 確保安全性,且 KMS 不提供匯出非對稱金鑰私密金鑰的介面。
非對稱金鑰通常用於實現數位簽章驗簽或者加密傳遞對稱金鑰等資料量較小的機密資訊,可在建立非對稱金鑰時設定密鑰用途。
-
當密鑰用途為ENCRYPT/DECRYPT時:可通過 KMS 的加密( Encrypt )介面使用公開金鑰進行加密,通過解密( Decrypt )介面使用私密金鑰進行解密。
-
當密鑰用途為SIGN/VERIFY時:可通過 KMS 的數位簽章( Sign )介面使用私密金鑰進行數位簽章計算,通過數位簽章驗證( Verify )介面使用公開金鑰進行簽名驗證。
因非對稱加解密運算量比較大,使用非對稱金鑰進行加解密時,在實際應用通常用於安全分發對稱金鑰等僅需要加解密小塊資料的情境。
密鑰規格
不同的密鑰管理類型支援的密鑰規格等資訊請參見下表。
|
密鑰管理類型 |
密鑰規格 |
支援的密碼編譯演算法 |
支援的簽名演算法 |
|
軟體密鑰 |
RSA_2048 、 RSA_3072 、 RSA_4096 |
RSAES_OAEP_SHA_256 (預設值) |
RSA_PSS_SHA_256 (預設值)、 RSA_PKCS1_SHA_256 |
|
EC_P256 、 EC_P256K |
ECIES_DH_SHA_1_XOR_HMAC (預設值) |
ECDSA_SHA_256 (預設值) |
|
|
Ed25519 |
不支援 |
EdDSA |
|
|
硬體密鑰 |
RSA_2048 、 RSA_3072 、 RSA_4096 |
RSAES_OAEP_SHA_256 (預設值) |
RSA_PSS_SHA_256 (預設值)、 RSA_PKCS1_SHA_256 |
|
EC_P256 、 EC_P256K |
ECIES_DH_SHA_1_XOR_HMAC (預設值) |
ECDSA_SHA_256 (預設值) |
遵循的技術規範
-
RSA_2048 : RSA 金鑰組,模( modulus )長 2048 位元。遵循技術規範《PKCS #1: RSA Cryptography Specifications Version 2.2》。
-
RSA_3072 : RSA 金鑰組,模( modulus )長 3072 位元。遵循技術規範《PKCS #1: RSA Cryptography Specifications Version 2.2》。
-
RSA_4096 : RSA 金鑰組,模( modulus )長 4096 位元。遵循技術規範《PKCS #1: RSA Cryptography Specifications Version 2.2》。
-
EC_P256 :橢圓曲線密碼 Elliptic Curve Cryptography (ECC) 金鑰組,採用 NIST 推薦使用的曲線之一 P-256 ,該曲線在其他標準中也稱為 secp256r1 或 ANSI prime256v1 。遵循技術規範《NIST SP800-186 Recommendations for Discrete Logarithm-based Cryptography 》。
-
EC_P256K :橢圓曲線密碼 Elliptic Curve Cryptography (ECC) 金鑰組,採用 Secg 推薦的曲線之一 secp256k1 。遵循技術規範《SEC 2: Recommended Elliptic Curve Domain Parameters》。
密碼編譯演算法說明
-
RSAES_OAEP_SHA_256 : RSA 加密,按照 RFC 3447/PKCS#1 中定義的 RSAES-OAEP 模式,使用 MGF1 和 SHA-256 。
-
ECIES_DH_SHA_1_XOR_HMAC :遵循SEC 1: Elliptic Curve Cryptography, Version 2.0標準,密鑰協商演算法採用 ECDH ,密鑰派生演算法採用 KDF2 with SHA-1 , MAC 演算法採用 HMAC-SHA-1 ,對稱式加密演算法採用 XOR 。
簽名演算法說明
-
RSA_PSS_SHA_256 :對資料使用 SHA-256 演算法計算雜湊值,按照 RFC 3447/PKCS#1 中定義的 RSASSA-PSS 演算法計算簽名, MGF1 ( SHA-256 )。
-
RSA_PKCS1_SHA_256 :對資料使用 SHA-256 演算法計算雜湊值,按照 RFC 3447/PKCS#1 中定義的 RSASSA-PKCS1-v1_5 演算法計算簽名。
-
ECDSA_SHA_256 : ECDSA 數位簽章,使用 SHA-256 雜湊演算法。