本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用戶端 5 PKCS #11 SDK 程式庫的 AWS CloudHSM 支援機制
PKCS #11 程式庫符合 PKCS #11 規格的 2.40 版。若要使用 PKCS #11 叫用密碼編譯功能,請呼叫具有指定機制的 函數。以下各節摘要了 AWS CloudHSM Client 5 SDK 支援的函數和機制組合。
PKCS #11 程式庫支援下列演算法:
-
加密和解密 – AES-CBC、AES-CTR、AES-ECB、AES-GCM、DES3-CBC、-、DES3-ECB、-OAEP、RSA- 和 RSA-PKCS
-
簽署和驗證 – RSA、 HMAC和 ECDSA;含和不含雜湊
-
雜湊/摘要 – SHA1、SHA224、SHA384、 SHA256和 SHA512
-
金鑰包裝 – AES金鑰包裝 1、 AES-AES、 GCMRSA- 和 RSA-OAEP
產生金鑰與金鑰對函數
PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您使用下列機制產生金鑰和金鑰對函數。
-
CKM_RSA_PKCS_KEY_PAIR_GEN
-
CKM_RSA_X9_31_KEY_PAIR_GEN
:此機制的功能與CKM_RSA_PKCS_KEY_PAIR_GEN
機制完全相同,但在產生p
和q
時提供更強大的保證。 -
CKM_EC_KEY_PAIR_GEN
-
CKM_GENERIC_SECRET_KEY_GEN
-
CKM_AES_KEY_GEN
-
CKM_DES3_KEY_GEN
:註腳 5 所列的即將進行的變更。
簽署和驗證函數
PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您使用下列機制來簽署和驗證函數。使用 Client SDK 5,資料會在軟體中本機雜湊。這表示 可以雜湊的資料大小沒有限制SDK。
使用 Client SDK 5 RSA和ECDSA雜湊會在本機完成,因此沒有資料限制。使用 HMAC時,會有資料限制。如需詳細咨詢,請參閱註腳 2。
RSA
CKM_RSA_X_509
CKM_RSA_PKCS
:僅限單一部分操作。CKM_RSA_PKCS_PSS
:僅限單一部分操作。CKM_SHA1_RSA_PKCS
CKM_SHA224_RSA_PKCS
CKM_SHA256_RSA_PKCS
CKM_SHA384_RSA_PKCS
CKM_SHA512_RSA_PKCS
CKM_SHA512_RSA_PKCS
CKM_SHA1_RSA_PKCS_PSS
CKM_SHA224_RSA_PKCS_PSS
CKM_SHA256_RSA_PKCS_PSS
CKM_SHA384_RSA_PKCS_PSS
CKM_SHA512_RSA_PKCS_PSS
ECDSA
CKM_ECDSA
:僅限單一部分操作。CKM_ECDSA_SHA1
CKM_ECDSA_SHA224
CKM_ECDSA_SHA256
CKM_ECDSA_SHA384
CKM_ECDSA_SHA512
CMAC
CKM_AES_CMAC
簽名恢復和驗證復原函數
用戶端 SDK 5 不支援 Sign Recover and Verify Recover 函數。
Digest 函數
適用於 PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您針對摘要函數使用下列機制。使用 Client SDK 5,資料會在軟體中本機雜湊。這表示 可以雜湊的資料大小沒有限制SDK。
-
CKM_SHA_1
-
CKM_SHA224
-
CKM_SHA256
-
CKM_SHA384
-
CKM_SHA512
加密和解密函數
PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您使用下列機制進行加密和解密函數。
衍生金鑰函數
適用於 PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您使用下列 機制進行 Derive 函數。
-
CKM_SP800_108_COUNTER_KDF
包裝和解包函數
PKCS #11 程式庫 AWS CloudHSM 的軟體程式庫可讓您使用下列機制來包裝和取消包裝函數。
如需有關AES金鑰包裝的其他資訊,請參閱AES金鑰包裝 。
每個機制的資料大小上限
下表列出每個機制設定的資料大小上限:
Mechanism | 資料大小上限 (位元組) |
---|---|
CKM_SHA_1_HMAC |
16288 |
CKM_SHA224_HMAC |
16256 |
CKM_SHA256_HMAC |
16288 |
CKM_SHA384_HMAC |
16224 |
CKM_SHA512_HMAC |
16224 |
CKM_AES_CBC |
16272 |
CKM_AES_GCM |
16224 |
CKM_CLOUDHSM_AES_GCM |
16224 |
CKM_DES3_CBC |
16280 |
機制註釋
【1】 執行 AES-GCM 加密時, HSM 不接受來自應用程式的初始化向量 (IV) 資料。請務必使用其產生的 IV。提供的 12 位元組 IV HSM會寫入您提供的
CK_GCM_PARAMS
參數結構 pIV 元素所指向的記憶體參考。為了防止使用者混淆,1.1.1 版和更新版本SDK中的 PKCS #11 可確保在初始化 AES加密GCM時 pIV 指向歸零緩衝區。[2] 當使用下列任一機制操作資料時,若資料緩衝區超過資料大小上限,該操作就會導致錯誤。對於這些機制,所有資料處理都必須在 內進行HSM。如需每個機制的最大資料大小集的資訊,請參閱 每個機制的資料大小上限。
-
[3] 廠商定義的機制。若要使用雲端HSM廠商定義的機制,PKCS#11 應用程式必須在編譯
/opt/cloudhsm/include/pkcs11t.h
期間包含 。CKM_CLOUDHSM_AES_GCM
:這個專屬機制是標準CKM_AES_GCM
程式設計更安全的替代方案。它會將 產生的 IV 附加HSM到密碼文字,而不是將其寫回密碼初始化期間提供的CK_GCM_PARAMS
結構。您可以搭配C_Encrypt
、C_WrapKey
、C_Decrypt
和C_UnwrapKey
函數搭配使用此機制。使用此機制時,CK_GCM_PARAMS
結構中的 pIV 變數必須設定為NULL
。與C_Decrypt
和C_UnwrapKey
搭配使用此機制時,IV 應至於取消包裝的加密文字之前。CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD
:具有 PKCS #5 Padding 的AES金鑰包裝。CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD
:含零填充的AES金鑰包裝。 [4] 支援下列
CK_MECHANISM_TYPE
和CK_RSA_PKCS_MGF_TYPE
,作為CKM_RSA_PKCS_OAEP
的CK_RSA_PKCS_OAEP_PARAMS
:-
CKM_SHA_1
使用CKG_MGF1_SHA1
-
CKM_SHA224
使用CKG_MGF1_SHA224
-
CKM_SHA256
使用CKG_MGF1_SHA256
-
CKM_SHA384
使用CKM_MGF1_SHA384
-
CKM_SHA512
使用CKM_MGF1_SHA512
-
【5】 根據NIST指引,在 2023 年之後,不允許在 FIPS 模式下使用叢集。對於處於非FIPS 模式的叢集,在 2023 年之後仍然允許。如需詳細資訊,請參閱 FIPS 140 合規:2024 機制棄用。