翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PKCS #11 ライブラリの既知の問題
トピック
- 問題: PKCS #11 ライブラリのバージョン 3.0.0 のAESキーラップが使用IVs前に検証されない
- 問題: PKCS#11 SDK 2.0.4 以前のバージョンでは、AESキーのラップとアンラップ0xA6A6A6A6A6A6A6A6に常に のデフォルト IV が使用されていました
- 問題: 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
- 問題: CentOS6 や 6 などのEL6プラットフォームで secp256k1 RHEL 署名の検証が失敗する
- 問題 : 関数呼び出しの順序が正しくないと、失敗する代わりに未定義の結果が得られる。
- 問題: 読み取り専用セッションが 5 SDK でサポートされていない
- 問題: cryptoki.hヘッダーファイルは Windows 専用です
問題: PKCS #11 ライブラリのバージョン 3.0.0 のAESキーラップが使用IVs前に検証されない
長さが 8 バイトより短い IV を指定すると、使用前に予測不可能なバイトが埋め込まれます。
注記
これは CKM_AES_KEY_WRAP
メカニズムがある C_WrapKey
にのみ影響します。
影響: PKCS #11 ライブラリのバージョン 3.0.0 で 8 バイト未満の IV を指定すると、キーをアンラップできない場合があります。
回避方法:
PKCS #11 ライブラリのバージョン 3.0.1 以降にアップグレードすることを強くお勧めします。これにより、AESキーラップ中に IV の長さが適切に適用されます。IV を渡すようにラッピングコードを変更するかNULL、 のデフォルトの IV を指定します
0xA6A6A6A6A6A6A6A6
。詳細については、AES「キーラップ の非準拠の長さIVsのカスタム」を参照してください。8 バイト未満の IV を使用して PKCS #11 ライブラリのバージョン 3.0.0 のキーをラップした場合は、 のサポート
についてお問い合わせください。
解決ステータス: この問題はPKCS、#11 ライブラリのバージョン 3.0.1 で解決されています。キーラップを使用してAESキーをラップするには、 NULLまたは 8 バイト長の IV を指定します。
問題: PKCS#11 SDK 2.0.4 以前のバージョンでは、AESキーのラップとアンラップ0xA6A6A6A6A6A6A6A6
に常に のデフォルト IV が使用されていました
ユーザー提供の IVsはサイレントに無視されました。
注記
これは CKM_AES_KEY_WRAP
メカニズムがある C_WrapKey
にのみ影響します。
影響:
PKCS#11 2SDK.0.4 以前のバージョンとユーザー提供の IV を使用した場合、キーはデフォルトの IV である でラップされます
0xA6A6A6A6A6A6A6A6
。PKCS#11 3SDK.0.0 以降とユーザー提供の IV を使用した場合、キーはユーザー提供の IV でラップされます。
回避方法:
PKCS#11 2.0.4 SDK 以前でラップされたキーをアンラップするには、 のデフォルト IV を使用します
0xA6A6A6A6A6A6A6A6
。PKCS#11 3.0.0 SDK 以降でラップされたキーをアンラップするには、ユーザー提供の IV を使用します。
解決ステータス: NULL IV を渡すようにラップコードとアンラップコードを修正するか、デフォルトの IV を に指定することを強くお勧めします
0xA6A6A6A6A6A6A6A6
。
問題: CKA_DERIVE
属性はサポート外だったため、処理されませんでした
-
解決策のステータス:
FALSE
が設定されている場合は、CKA_DERIVE
を受け付けるように修正を実装し ます。 AWS CloudHSMにキー取得関数サポートが追加されるまで、TRUE
に設定されたCKA_DERIVE
はサポートされません。修正を利用するには、クライアントと 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
を処理しません
-
影響: プライベートテンプレートに または
C_GenerateKeyPair
が含まれている場合、CKA_TEMPLATE_INCONSISTENT
CKA_MODULUS_BITS
はCKA_PUBLIC_EXPONENT
を返します。代わりに、すべてのフィールドが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 はマルチパート AES-GCM 暗号化を実行しません。FIPS では、 の初期化ベクトル (IV) を で生成AES-GCM
する必要があることに注意してくださいHSM。したがって、 AESGCMで暗号化されたデータの各部分の IV は異なります。 -
解決ステータス: データバッファが大きすぎる場合、 が明示的に失敗SDKするように修正されています。
C_EncryptUpdate
およびC_DecryptUpdate
APIオペレーションCKR_MECHANISM_INVALID
に対して を返します。マルチパート暗号化を使用しなくても大きいバッファをサポートできる代替方法を評価しています。更新は、 AWS CloudHSM フォーラムとバージョン履歴ページで発表されます。
問題: 楕円曲線 Diffie-Hellman (ECDH) キー取得が 内で部分的に実行される HSM
EC プライベートキーHSMは常に 内に残りますが、キー取得プロセスは複数のステップで実行されます。その結果、各ステップの中間結果がクライアントに存在します。
-
影響: クライアント SDK3 では、
CKM_ECDH1_DERIVE
メカニズムを使用して派生したキーが最初にクライアントで使用でき、次に にインポートされますHSM。その後、キーのハンドルがアプリケーションに返されます。 -
回避策: で SSL/TLS オフロードを実装している場合 AWS CloudHSM、この制限は問題にならない可能性があります。アプリケーションが常に FIPS境界内にキーを保持する必要がある場合は、ECDHキー取得に依存しない代替プロトコルを使用することを検討してください。
-
解決ステータス: 内でECDHキー取得を完全に実行するオプションを開発していますHSM。更新の実装は、利用可能になり次第バージョン履歴ページで告知されます。
問題: CentOS6 や 6 などのEL6プラットフォームで secp256k1 RHEL 署名の検証が失敗する
これは、CloudHSM PKCS#11 ライブラリが Open を使用して EC SSL曲線データを検証することで、検証オペレーションの初期化中にネットワーク呼び出しを回避するためです。Secp256k1 はEL6プラットフォームのデフォルトの Open SSLパッケージではサポートされていないため、初期化は失敗します。
-
影響: EL6プラットフォームでは Secp256k1 署名の検証が失敗します。検証呼び出しは、
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 でサポートされていない
-
問題: SDK 5 は、 での読み取り専用セッションのオープンをサポートしていません
C_OpenSession
。 -
影響:
C_OpenSession
未対応でCKF_RW_SESSION
を呼び出ししようとした場合、呼び出しは失敗し、エラー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 では、 ヘッダーファイルは Windows オペレーティングシステムとのみ互換性
/opt/cloudhsm/include/pkcs11/cryptoki.h
があります。 -
影響: Linux ベースのオペレーティングシステム上のアプリケーションにこのヘッダーファイルを含めようとすると、問題が発生する可能性があります。
-
解決ステータス: このヘッダーファイルの Linux SDK 互換バージョンを含む AWS CloudHSM クライアント 5 バージョン 5.4.1 以降にアップグレードします。