本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudHSM 用戶端 SDK 3 支援的機制
PKCS #11 程式庫支援 AWS CloudHSM 用戶端 SDK 3 的下列演算法:
PKCS #11 程式庫機制功能表
PKCS #11 程式庫與 PKCS #11 規格的 2.40 版相容。若要使用 PKCS #11 叫用加密功能,請利用指定機制呼叫函數。下表總結說明 AWS CloudHSM支援的函數和機制組合。
解譯支援的 PKCS #11 機制函數表
✔ 記號表示 AWS CloudHSM 支援函數的 機制。並不是 PKCS #11 規格中所列的所有可能函數都受到支援。✖ 標記表示 AWS CloudHSM 尚未支援指定函數的機制,即使 PKCS #11 標準允許。空白儲存格表示 PKCS #11 標準不支援指定函數的機制。
Mechanism |
函數 |
||||||
---|---|---|---|---|---|---|---|
|
產生金鑰或金鑰對 |
簽署和驗證 |
SR 和 VR |
摘要 |
加密和解密 |
衍生金鑰 |
包裝和取消包裝 |
|
✔ |
|
|
|
|
|
|
|
✔2 |
|
|
|
|
|
|
|
|
✔ |
|
|
✔ |
|
|
|
✔1 | ✖ | ✔1 |
|
✔1 | ||
|
|
|
|
|
✔1 |
|
✔6 |
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔1 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
|
✔1 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
✔5 |
|
|
|
|
|
|
|
✔ |
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔3.3 |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
✔ |
|
|
|
|
|
|
|
|
|
|
|
✔3.3 |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
✔7.1 |
|
✔7.1 |
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
|
✔7.1 |
機制註釋
-
[1] 僅限單一部分操作。
-
[2] 此機制的功能與
CKM_RSA_PKCS_KEY_PAIR_GEN
機制完全相同,但在產生p
和q
時提供更強大的保證。 【3.1】根據用戶端 SDK AWS CloudHSM 以不同方式處理雜湊。對於用戶端 SDK 3,我們執行雜湊的位置取決於資料大小以及您使用的是單一部分還是多部分操作。
用戶端 SDK 3 中的單一部分操作
用戶端 SDK 3 各機制的最大資料集大小如表 3.1 所列。整個雜湊會在 HSM 內計算。不支援大於 16KB 的資料。
表 3.1,單一部分操作的資料集大小上限 Mechanism 資料大小上限 CKM_SHA_1
16296 CKM_SHA224
16264 CKM_SHA256
16296 CKM_SHA384
16232 CKM_SHA512
16232 多部分操作用戶端 SDK 3
雖支援大於 16 KB 的資料,但資料大小會決定雜湊的發生位置。小於 16 KB 的資料緩衝區會在 HSM 內進行雜湊處理。16 KB 和系統資料大小上限之間的緩衝區會在軟體本機雜湊處理。請記住:雜湊函數不需要加密密碼編譯,因此您可以在 HSM 之外安全地計算。
【3.2】根據用戶端 SDK AWS CloudHSM 以不同方式處理雜湊。對於用戶端 SDK 3,我們執行雜湊的位置取決於資料大小以及您使用的是單一部分還是多部分操作。
單一部分操作用戶端 SDK 3
用戶端 SDK 3 各機制的最大資料集大小如表 3.2 所列。不支援大於 16KB 的資料。
表 3.2,單一部分操作的資料集大小上限 Mechanism 資料大小上限 CKM_SHA1_RSA_PKCS
16296 CKM_SHA224_RSA_PKCS
16264 CKM_SHA256_RSA_PKCS
16296 CKM_SHA384_RSA_PKCS
16232 CKM_SHA512_RSA_PKCS
16232 CKM_SHA1_RSA_PKCS_PSS
16296 CKM_SHA224_RSA_PKCS_PSS
16264 CKM_SHA256_RSA_PKCS_PSS
16296 CKM_SHA384_RSA_PKCS_PSS
16232 CKM_SHA512_RSA_PKCS_PSS
16232 CKM_ECDSA_SHA1
16296 CKM_ECDSA_SHA224
16264 CKM_ECDSA_SHA256
16296 CKM_ECDSA_SHA384
16232 CKM_ECDSA_SHA512
16232 多部分操作用戶端 SDK 3
雖支援大於 16 KB 的資料,但資料大小會決定雜湊的發生位置。小於 16 KB 的資料緩衝區會在 HSM 內進行雜湊處理。16 KB 和系統資料大小上限之間的緩衝區會在軟體本機雜湊處理。請記住:雜湊函數不需要加密密碼編譯,因此您可以在 HSM 之外安全地計算。
[3.3] 當使用下列任一機制操作資料時,若資料緩衝區超過資料大小上限,該操作就會導致錯誤。對於這些機制,所有資料處理都必須在 HSM 內進行。下表列出每個機制設定的資料大小上限:
表 3.3,最大資料集大小 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 [4] 當執行 AES-GCM 加密時,HSM 不會接受來自應用程式的初始化向量 (IV) 資料。請務必使用其產生的 IV。系統會將 HSM 所提供的 12 位元組 IV 寫入記憶體參考,該記憶體參考是由您提供的
CK_GCM_PARAMS
參數結構 pIV 元素所指向。為了確保使用者不會混淆,在初始化 AES-GCM 加密時,1.1.1 版和更新版本中的 PKCS # 11 開發套件會強制將該 pIV 指向歸零的緩衝區。-
[5] 僅限於用戶端 SDK 3。此機制的實作是為了支援 SSL/TLS 卸載案例,且在 HSM 內只會部分執行。使用此機制前,請參閱 PKCS #11 程式庫的已知問題 AWS CloudHSM 中的「問題:在 HSM 中 ECDH 金鑰衍生只會部分執行」。
CKM_ECDH1_DERIVE
不支援 secp521r1 (P-521) 曲線。 [6] 支援下列
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
-
[7.1] 廠商定義的機制。為了能使用 CloudHSM 廠商定義的機制,編譯期間 PKCS #11 應用程式必須加入
/opt/cloudhsm/include/pkcs11t.h
。CKM_CLOUDHSM_AES_GCM
:這個專屬機制是標準CKM_AES_GCM
程式設計更安全的替代方案。這將 HSM 生成的 IV 加入至加密文字的開頭,而不是將它寫回加密初始化期間提供的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
:AES 金鑰包裝與 PKCS #5 填補CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD
:AES 金鑰包裝,零填補如需有關 AES 金鑰包裝的其他資訊,請參閱 AES 金鑰包裝。
【8】 根據 NIST 指引,在 2023 年之後,不允許在 FIPS 模式下使用叢集。對於處於非 FIPS 模式的叢集,在 2023 年之後仍然允許。如需詳細資訊,請參閱 FIPS 140 合規性:2024 機制棄用。