選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

適用於 的 JCE 開發套件的已知問題 AWS CloudHSM

焦點模式
適用於 的 JCE 開發套件的已知問題 AWS CloudHSM - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

下列問題會影響適用於 的 JCE 開發套件 AWS CloudHSM。

問題:使用非對稱金鑰對時,即使未明確建立或匯入金鑰,仍會看到已佔用的金鑰容量

  • 影響:此問題可能導致 HSM 意外用盡金鑰空間,並在您的應用程式使用標準 JCE 金鑰物件 (而非 CaviumKey 物件) 進行加密操作時發生。當您使用標準 JCE 金鑰物件時,CaviumProvider 會隱含地將該金鑰匯入 HSM 做為工作階段金鑰,且不會刪除此金鑰,直到應用程式結束為止。因此,金鑰會在應用程式執行時不斷累積,可能導致您的 HSM 用盡可用的金鑰空間,進而凍結您的應用程式。

  • 因應措施:使用 CaviumSignature 類別、 CaviumCipher 類別、 CaviumMac 類別或 CaviumKeyAgreement 類別時,您應提供金鑰做為 CaviumKey,而非標準 JCE 金鑰物件。

    您可以使用 ImportKey 類手動將普通金鑰轉換為 CaviumKey,然後在操作完成後手動刪除該金鑰。

  • 解決狀態:我們正在更新 CaviumProvider 以正確管理隱含匯入。修正可供使用時即會在版本歷史頁面中公告。

問題:JCE KeyStore 是唯讀的。

  • 影響:無法將 HSM 不支援的物件類型存放在 JCE 金鑰存放區中。特別是您無法在金鑰存放區中存放憑證。這會防止與 jarsigner 之類之工具 (其會預期在金鑰存放區中尋找憑證) 之間的互通性。

  • 因應措施:您可以重新處理程式碼,從本機檔案或從 S3 儲存貯體位置 (而不是從金鑰存放區) 載入憑證。

  • 解決狀態:我們會新增在金鑰存放區中儲存憑證的支援。此功能可供使用時,即會在版本歷史頁面中公告。

問題:AES-GCM 加密的緩衝區不能超過 16,000 位元組。

此外,也不支援分段的 AES-GCM 加密。

  • 影響:您無法使用 AES-GCM 來加密大於 16,000 位元組的資料。

  • 因應措施:您可以使用替代機制 (例如 AES-CBC),或者可以將資料切分成數段,並個別加密每一個部分。如果切分資料,您必須管理切分後的加密文字及其解密。由於 FIPS 規定 AES-GCM 的初始化向量 (IV) 要在 HSM 上產生,AES-GCM 加密之每個資料片段的 IV 都不同。

  • 解決狀態:我們正在進行修復,讓程式庫在資料緩衝區過大時明確失敗。我們正在評估支援較大緩衝區、而不需要仰賴分段加密的替代做法。更新會公告於 AWS CloudHSM 論壇和版本歷史頁面中。

問題:在 HSM 中橢圓曲線 Diffie-Hellman (ECDH) 金鑰衍生只會部分執行。

您的 EC 私有金鑰仍一律保留在 HSM 中,但金鑰衍生程序會分成多個步驟執行。因此,在用戶端會有每個步驟產生的中繼結果。您可在 Java 程式碼範例中查看 ECDH 金鑰衍生範例。

  • 影響:用戶端 SDK 3 將 ECDH 功能新增至 JCE。當您使用 KeyAgreement類別衍生 SecretKey 時,它首先可在用戶端上使用,然後匯入 HSM。然後將金鑰控制代碼傳回給到您的應用程式。

  • 解決方法:如果您在 中實作 SSL/TLS 卸載 AWS CloudHSM,則此限制可能不是問題。如果您的應用程式要求金鑰需隨時符合 FIPS,請考慮使用其他不倚賴 ECDH 金鑰衍生的通訊協定。

  • 解決狀態:我們正在開發可完全在 HSM 內執行 ECDH 金鑰衍生的選項。如果可用,我們將在版本歷史記錄頁面中公告更新的實作。

問題:KeyGenerator 和 KeyAttribute 錯誤地將金鑰大小參數解釋為位元組數而非位元數

當使用 KeyGenerator 類別init 函數或 AWS CloudHSM KeyAttribute 列舉SIZE 屬性產生金鑰時,API 錯誤地預期引數是金鑰位元組的數目,但實際是金鑰位元的數目。

  • 影響:用戶端 SDK 版本 5.4.0 至 5.4.2 錯誤地預期金鑰大小會以位元組形式提供給指定的 API。

  • 解決方法:使用 KeyGenerator 類別或 KeyAttribute 列舉之前,先將金鑰大小從位元轉換為位元組,如果使用用戶端 SDK 版本 5.4.0 到 5.4.2,則使用 AWS CloudHSM JCE 提供者產生金鑰。

  • 解析狀態:升級您的用戶端 SDK 版本到 5.5.0 或更高版本,其中包括使用 KeyGenerator 類別或 KeyAttribute 列舉產生金鑰時正確期望金鑰大小的位元修正。

問題:用戶端 SDK 5 會發出警告「發生了非法的反射式存取作業」

當您將用戶端 SDK 5 與 Java 11 搭配使用時,CloudHSM 會擲回下列 Java 警告:

``` WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.amazonaws.cloudhsm.jce.provider.CloudHsmKeyStore (file:/opt/cloudhsm/java/cloudhsm-jce-5.6.0.jar) to field java.security .KeyStore.keyStoreSpi WARNING: Please consider reporting this to the maintainers of com.amazonaws.cloudhsm.jce.provider.CloudHsmKeyStore WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release ```

這些警告沒有任何影響。我們知道這個問題,並正在努力解決這個問題。不需要解決方案或因應措施。

問題:JCE 工作階段集區已用盡

影響:看到下列訊息後,您可能無法在 JCE 中執行作業:

com.amazonaws.cloudhsm.jce.jni.exception.InternalException: There are too many operations happening at the same time: Reached max number of sessions in session pool: 1000

因應措施:

  • 如果您遇到影響,請重新啟動 JCE 應用程式。

  • 執行作業時,您可能需要先完成 JCE 作業,才能遺失對作業的參照。

    注意

    視作業而定,可能需要完成方法。

    作業 完成方法
    加密

    在加密或解密模式下的 doFinal()

    在包裝模式下的 wrap()

    在取消包裝模式下的 unwrap()

    KeyAgreement

    generateSecret()generateSecret(String)

    KeyPairGenerator

    generateKeyPair()genKeyPair()reset()

    KeyStore 無需任何方法
    MAC

    doFinal()reset()

    MessageDigest

    digest()reset()

    SecretKeyFactory 無需任何方法
    SecureRandom 無需任何方法
    簽章

    在簽署模式下的 sign()

    在驗證模式中下的 verify()

解決狀態:我們已在用戶端 SDK 5.9.0 和更新版本中解決此問題。若要修正此問題,請將您的用戶端 SDK 升級至其中一個版本。

問題:用戶端 SDK 5 記憶體流失搭配 getKey 操作

  • 影響:API getKey操作在用戶端 SDK 5.10.0 版及更早版本中的 JCE 中存在記憶體流失。如果您在應用程式中多次使用 getKey API,這將導致記憶體增長增加,進而增加應用程式中的記憶體佔用空間。隨著時間的推移,這可能會導致調節錯誤或需要重新啟動應用程式。

  • 解決方法:我們建議您升級至用戶端 SDK 5.11.0。如果無法完成此操作,建議您不要在應用程式中多次呼叫 getKey API。反之,請盡可能重複使用先前getKey操作中傳回的金鑰。

  • 解決狀態:將您的用戶端 SDK 版本升級至 5.11.0 或更新版本,其中包含此問題的修正。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。