本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 PKCS #11 程式庫已知問題 AWS CloudHSM
下列問題會影響 的 PKCS #11 程式庫 AWS CloudHSM。
主題
- 問題:PKCS#11 程式庫 3.0.0 版中的AES金鑰包裝在使用IVs之前不會驗證
- 問題:PKCS#11 SDK 2.0.4 和舊版一律使用 的預設 IV 0xA6A6A6A6A6A6A6A6 進行AES金鑰包裝和解包裝
- 問題:既未支援也未處理 CKA_DERIVE 屬性。
- 問題:既未支援也未處理 CKA_SENSITIVE 屬性。
- 問題:不支援分段雜湊和簽署。
- 問題:C_GenerateKeyPair 不是以符合標準的方式處理私有範本中的 CKA_MODULUS_BITS 或 CKA_PUBLIC_EXPONENT。
- 問題:使用 CKM_AES_GCM機制時, C_Encrypt和 C_DecryptAPI操作的緩衝區不得超過 16 KB
- 問題:橢圓曲線 Diffie-Hellman (ECDH) 金鑰衍生部分在 內執行 HSM
- 問題:驗證 secp256k1 簽章會在 CentOS6 和 RHEL 6 等EL6平台上失敗
- 問題:不正確的函數調用序列會給出未定義的結果而不是失敗
- 問題:5 SDK 不支援唯讀工作階段
- 問題:cryptoki.h 標頭檔案僅限 Windows
問題:PKCS#11 程式庫 3.0.0 版中的AES金鑰包裝在使用IVs之前不會驗證
如果您指定的 IV 長度小於 8 個位元組,便會在使用之前利用無法預測的位元組進行填補。
注意
這只會影響包含 CKM_AES_KEY_WRAP
機制的 C_WrapKey
。
影響:如果您在 PKCS #11 程式庫的 3.0.0 版中提供小於 8 個位元組的 IV,則可能無法解壓縮金鑰。
因應措施:
我們強烈建議您升級至 3.0.1 版或更新版本的 PKCS #11 程式庫,該程式庫在AES金鑰包裝期間正確強制執行 IV 長度。修改包裝程式碼以傳遞 NULL IV,或指定 的預設 IV
0xA6A6A6A6A6A6A6A6
。如需詳細資訊,請參閱使用IVs不符合AES金鑰包裝長度自訂 。如果您使用少於 8 個位元組的 IV 包裝任何 3.0.0 版 PKCS #11 程式庫的金鑰,請聯絡我們以取得支援
。
解決狀態:此問題已在 PKCS #11 程式庫的 3.0.1 版中解決。若要使用AES金鑰包裝來包裝金鑰,請指定長度為 NULL或 8 個位元組的 IV。
問題:PKCS#11 SDK 2.0.4 和舊版一律使用 的預設 IV 0xA6A6A6A6A6A6A6A6
進行AES金鑰包裝和解包裝
使用者提供的 IVs被無訊息忽略。
注意
這只會影響包含 CKM_AES_KEY_WRAP
機制的 C_WrapKey
。
Impact: (影響:)
如果您使用 PKCS#11 SDK 2.0.4 或更舊版本,以及使用者提供的 IV,您的金鑰會包裝為預設 IV 為
0xA6A6A6A6A6A6A6A6
。如果您使用 PKCS#11 SDK 3.0.0 或更新版本,以及使用者提供的 IV,您的金鑰會包裝在使用者提供的 IV 中。
Workarounds: (因應措施:)
若要展開以 PKCS#11 SDK 2.0.4 或更早版本包裝的金鑰,請使用 的預設 IV
0xA6A6A6A6A6A6A6A6
。若要展開包裝 PKCS#11 SDK 3.0.0 或更新版本的金鑰,請使用使用者提供的 IV。
解決狀態:強烈建議您修改包裝和取消包裝程式碼以傳遞 NULL IV,或指定 的預設 IV
0xA6A6A6A6A6A6A6A6
。
問題:既未支援也未處理 CKA_DERIVE
屬性。
-
解決狀態:我們已實作修正接受金鑰
CKA_DERIVE
(如果設定為FALSE
)。在我們開始將金鑰衍生函數支援新增至 AWS CloudHSM前,不支援將CKA_DERIVE
設定為TRUE
。您必須將用戶端和 SDK(s) 更新至 1.1.1 版或更新版本,才能從修正中獲益。
問題:既未支援也未處理 CKA_SENSITIVE
屬性。
-
解決狀態:我們已實作可以接受和正確遵守
CKA_SENSITIVE
屬性的修正。您必須將用戶端和 SDK(s) 更新至 1.1.1 版或更高版本,才能從修正中獲益。
問題:不支援分段雜湊和簽署。
-
影響:不會實作
C_DigestUpdate
和C_DigestFinal
。C_SignFinal
也不會實作,非NULL
緩衝區會失敗並發生CKR_ARGUMENTS_BAD
錯誤。 -
解決方法:在應用程式中雜湊您的資料,並 AWS CloudHSM 僅用於簽署雜湊。
-
解決狀態:我們正在修正用戶端和 ,SDKs以正確實作分段雜湊。更新會公告於 AWS CloudHSM 論壇和版本歷史頁面中。
問題:C_GenerateKeyPair
不是以符合標準的方式處理私有範本中的 CKA_MODULUS_BITS
或 CKA_PUBLIC_EXPONENT
。
-
影響:當私有範本包含
CKA_MODULUS_BITS
或CKA_PUBLIC_EXPONENT
,C_GenerateKeyPair
應該傳回CKA_TEMPLATE_INCONSISTENT
。但它反而產生私有金鑰,將所有使用欄位設為FALSE
。無法使用金鑰。 -
因應措施:建議您的應用程式除了錯誤碼,也檢查使用欄位值。
-
解決狀態:我們正在實作修正,讓系統在使用錯誤的私有金鑰範本時傳回適當的錯誤訊息。更新的 PKCS #11 程式庫將在版本歷史記錄頁面上發佈。
問題:使用 CKM_AES_GCM
機制時, C_Encrypt
和 C_Decrypt
API操作的緩衝區不得超過 16 KB
AWS CloudHSM 不支援分段 AES-GCM 加密。
-
影響:您不能使用
CKM_AES_GCM
機制來加密大於 16 KB 的資料。 -
因應措施:您可以使用替代機制,例如
CKM_AES_CBC
、CKM_AES_CBC_PAD
或 ,將資料分割為片段,並使用AES_GCM
個別方式加密每個片段。如果您使用的是AES_GCM
,則必須管理資料分割和後續加密。 AWS CloudHSM 不會為您執行分段AESGCM加密。請注意, FIPS要求AES-GCM
在 上產生 的初始化向量 (IV)HSM。因此,每個 AES加密GCM資料的 IV 將不同。 -
解析狀態:如果資料緩衝區太大,我們會明確將 修正SDK為失敗。我們會
CKR_MECHANISM_INVALID
傳回C_EncryptUpdate
和C_DecryptUpdate
API操作。我們正在評估支援較大緩衝區、而不需要仰賴分段加密的替代做法。更新將在 AWS CloudHSM 論壇和版本歷史記錄頁面上公告。
問題:橢圓曲線 Diffie-Hellman (ECDH) 金鑰衍生部分在 內執行 HSM
您的 EC 私有金鑰HSM隨時保持在 內,但金鑰衍生程序會以多個步驟執行。因此,在用戶端會有每個步驟產生的中繼結果。
-
影響:在用戶端 SDK 3 中,使用
CKM_ECDH1_DERIVE
機制衍生的金鑰首先可在用戶端上使用,然後匯入 HSM。然後將金鑰控制代碼傳回給到您的應用程式。 -
因應措施:如果您在 中實作SSL/TLS卸載 AWS CloudHSM,則此限制可能不是問題。如果您的應用程式需要您的金鑰隨時保持在FIPS邊界內,請考慮使用不依賴ECDH金鑰衍生的替代通訊協定。
-
解決狀態:我們正在開發完全在 內執行ECDH金鑰衍生的選項HSM。當更新的實作可供使用時,即會在版本歷史記錄頁面中公告。
問題:驗證 secp256k1 簽章會在 CentOS6 和 RHEL 6 等EL6平台上失敗
這是因為 CloudHSM PKCS#11 程式庫會在驗證操作初始化期間,使用 OpenSSL 來驗證 EC 曲線資料,以避免網路呼叫。由於 EL6平台上的預設 OpenSSL 套件不支援 Secp256k1,因此初始化失敗。
-
影響:Secp256k1 簽章驗證會在EL6平台上失敗。驗證呼叫會失敗並出現
CKR_HOST_MEMORY
錯誤。 -
解決方法:如果您的 PKCS#11 應用程式需要驗證 secp256k1 簽章,建議您使用 Amazon Linux 1 或任何EL7平台。或者,升級至支援 secp256k1 曲線的 OpenSSL 套件版本。
-
解決狀態:HSM如果無法使用本機曲線驗證,我們將實作修正,以回到 。更新的 PKCS#11 程式庫將在版本歷史記錄頁面上發佈。
問題:不正確的函數調用序列會給出未定義的結果而不是失敗
-
影響:如果您調用不正確的函數序列,即使個別函數調用傳回成功,最終結果也不正確。例如,解密的資料可能與原始純文本不匹配,否則簽名可能無法驗證。此問題會影響單一和多部分作業。
函數序列不正確的範例:
C_EncryptInit
/C_EncryptUpdate
後跟C_Encrypt
C_DecryptInit
/C_DecryptUpdate
後跟C_Decrypt
C_SignInit
/C_SignUpdate
後跟C_Sign
C_VerifyInit
/C_VerifyUpdate
後跟C_Verify
C_FindObjectsInit
後跟C_FindObjectsInit
因應措施 :您的應用程式應遵循 PKCS #11 規格,針對單一和分段操作使用正確的函數呼叫順序。在此情況下,您的應用程式不應依賴 CloudHSM PKCS #11 程式庫傳回錯誤。
問題:5 SDK 不支援唯讀工作階段
-
問題:SDK5 不支援使用 開啟唯讀工作階段
C_OpenSession
。 -
影響:如果您嘗試在未提供的
CKF_RW_SESSION
情況下調用C_OpenSession
,調用將失敗並顯示錯誤CKR_FUNCTION_FAILED
。 -
因應措施:開啟工作階段時,您必須將
CKF_SERIAL_SESSION | CKF_RW_SESSION
旗標傳遞至C_OpenSession
函數調用。
問題:cryptoki.h
標頭檔案僅限 Windows
-
問題:在 Linux SDK 的 AWS CloudHSM 用戶端 5 版本 5.0.0 到 5.4.0 中,標頭檔案
/opt/cloudhsm/include/pkcs11/cryptoki.h
僅與 Windows 作業系統相容。 -
影響:嘗試在 Linux 作業系統的應用程式中包含此標頭檔案時,可能會遇到問題。
-
解決狀態:升級至 AWS CloudHSM Client SDK 5 5.4.1 版或更新版本,其中包含此標頭檔案的 Linux 相容版本。