AWS CloudHSM 用戶端 SDK 3 支援的機制 - AWS CloudHSM

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

AWS CloudHSM 用戶端 SDK 3 支援的機制

PKCS #11 程式庫支援 AWS CloudHSM 用戶端 SDK 3 的下列演算法:

  • 加密和解密:AES-CBC、AES-CTR、AES-ECB、AES-GCM、DES3-CBC、DES3-ECB、RSA-OAEP 和 RSA-PKCS

  • 簽署和驗證:RSA、HMAC 和 ECDSA;無論是否使用雜湊皆不影響

  • 雜湊/摘要:SHA1、SHA224、SHA256、SHA384 和 SHA512

  • 金鑰包裝:AES 金鑰包裝、4 AES-GCM、RSA-AES 和 RSA-OAEP

  • 金鑰派生:ECDH、5 SP800-108 CTR KDF

PKCS #11 程式庫機制功能表

PKCS #11 程式庫與 PKCS #11 規格的 2.40 版相容。若要使用 PKCS #11 叫用加密功能,請利用指定機制呼叫函數。下表總結說明 AWS CloudHSM支援的函數和機制組合。

解譯支援的 PKCS #11 機制函數表

✔ 記號表示 AWS CloudHSM 支援函數的 機制。並不是 PKCS #11 規格中所列的所有可能函數都受到支援。✖ 標記表示 AWS CloudHSM 尚未支援指定函數的機制,即使 PKCS #11 標準允許。空白儲存格表示 PKCS #11 標準不支援指定函數的機制。

支援的 PKCS #11 程式庫機制和函數

Mechanism

函數

 

產生金鑰金鑰對

簽署和驗證

SR 和 VR

摘要

加密和解密

衍生金鑰

包裝和取消包裝

CKM_RSA_PKCS_KEY_PAIR_GEN

 

 

 

 

 

 

CKM_RSA_X9_31_KEY_PAIR_GEN

2

 

 

 

 

 

 

CKM_RSA_X_509

 

 

 

 

 

CKM_RSA_PKCS 請參閱備註 8

  1   1

 

1

CKM_RSA_PKCS_OAEP

 

 

 

 

1

 

6

CKM_SHA1_RSA_PKCS

 

3.2

 

 

 

 

 

CKM_SHA224_RSA_PKCS

 

3.2

 

 

 

 

 

CKM_SHA256_RSA_PKCS

 

3.2

 

 

 

 

 

CKM_SHA384_RSA_PKCS

 

2,3.2

 

 

 

 

 

CKM_SHA512_RSA_PKCS

 

3.2

 

 

 

 

 

CKM_RSA_PKCS_PSS

 

1

 

 

 

 

 

CKM_SHA1_RSA_PKCS_PSS

 

3.2

 

 

 

 

 

CKM_SHA224_RSA_PKCS_PSS

 

3.2

 

 

 

 

 

CKM_SHA256_RSA_PKCS_PSS

 

3.2

 

 

 

 

 

CKM_SHA384_RSA_PKCS_PSS

 

2,3.2

 

 

 

 

 

CKM_SHA512_RSA_PKCS_PSS

 

3.2

 

 

 

 

 

CKM_EC_KEY_PAIR_GEN

 

 

 

 

 

 

CKM_ECDSA

 

1

 

 

 

 

 

CKM_ECDSA_SHA1

 

3.2

 

 

 

 

 

CKM_ECDSA_SHA224

 

3.2

 

 

 

 

 

CKM_ECDSA_SHA256

 

3.2

 

 

 

 

 

CKM_ECDSA_SHA384

 

3.2

 

 

 

 

 

CKM_ECDSA_SHA512

 

3.2

 

 

 

 

 

CKM_ECDH1_DERIVE

 

 

 

 

 

5

 

CKM_SP800_108_COUNTER_KDF

 

 

 

 

 

 

CKM_GENERIC_SECRET_KEY_GEN

 

 

 

 

 

 

CKM_AES_KEY_GEN

 

 

 

 

 

 

CKM_AES_ECB

 

 

 

 

 

CKM_AES_CTR

 

 

 

 

 

CKM_AES_CBC

 

 

 

 

3.3

 

CKM_AES_CBC_PAD

 

 

 

 

 

CKM_DES3_KEY_GEN 請參閱備註 8

 

 

 

 

 

 

CKM_DES3_CBC 請參閱備註 8

 

 

 

 

3.3

 

CKM_DES3_CBC_PAD 請參閱備註 8

 

 

 

 

 

CKM_DES3_ECB 請參閱備註 8

 

 

 

 

 

CKM_AES_GCM

 

 

 

 

3.3, 4

 

7.1

CKM_CLOUDHSM_AES_GCM

 

 

 

 

7.1

 

7.1

CKM_SHA_1

 

 

 

3.1

 

 

 

CKM_SHA_1_HMAC

 

3.3

 

 

 

 

 

CKM_SHA224

 

 

 

3.1

 

 

 

CKM_SHA224_HMAC

 

3.3

 

 

 

 

 

CKM_SHA256

 

 

 

3.1

 

 

 

CKM_SHA256_HMAC

 

3.3

 

 

 

 

 

CKM_SHA384

 

 

 

3.1

 

 

 

CKM_SHA384_HMAC

 

3.3

 

 

 

 

 

CKM_SHA512

 

 

 

3.1

 

 

 

CKM_SHA512_HMAC

 

3.3

 

 

 

 

 

CKM_RSA_AES_KEY_WRAP

 

 

 

 

 

 

CKM_AES_KEY_WRAP

 

 

 

 

 

 

CKM_AES_KEY_WRAP_PAD

 

 

 

 

 

 

CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD

 

 

 

 

 

 

7.1

CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD

 

 

 

 

 

 

7.1

CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD

 

 

 

 

 

 

7.1

機制註釋

  • [1] 僅限單一部分操作。

  • [2] 此機制的功能與 CKM_RSA_PKCS_KEY_PAIR_GEN 機制完全相同,但在產生 pq 時提供更強大的保證。

  • 【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_TYPECK_RSA_PKCS_MGF_TYPE,作為 CKM_RSA_PKCS_OAEPCK_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_EncryptC_WrapKeyC_DecryptC_UnwrapKey 函數搭配使用此機制。使用此機制時,CK_GCM_PARAMS 結構中的 pIV 變數必須設定為 NULL。與 C_DecryptC_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 機制棄用