JCE を使用したキー抽出 - AWS CloudHSM

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

JCE を使用したキー抽出

Java Cryptography Extension (JCE) は、さまざまな暗号化実装をプラグインできるアーキテクチャを使用します。 は、暗号化オペレーションを HSM にオフロードする 1 つの JCE プロバイダーを AWS CloudHSM 出荷します。他のほとんどの JCE プロバイダーが AWS CloudHSM に保存されているキーを操作するには、HSM のキーバイトをクリアテキストでマシンのメモリに抽出して使用する必要があります。HSM では通常、キーを ラップされたオブジェクト としてのみ抽出でき、クリアテキストとして抽出することはできません。ただし、プロバイダー間の統合のユースケースをサポートするために、 はオプトイン設定オプション AWS CloudHSM を許可して、クリア内のキーバイトの抽出を可能にします。

重要

JCE は、AWS CloudHSM プロバイダーが指定されるか、 AWS CloudHSM キーオブジェクトが使用される AWS CloudHSM たびに、オペレーションを にオフロードします。HSM 内でオペレーションが行われることが予想される場合は、キーを明確に抽出する必要はありません。クリアテキストでのキー抽出が必要なのは、サードパーティのライブラリや JCE プロバイダーの制限により、アプリケーションがキーのラップやアンラップなどの安全なメカニズムを使用できない場合のみです。

AWS CloudHSM JCE プロバイダーは、デフォルトで外部 JCE プロバイダーと連携するパブリックキーの抽出を許可します。以下の方法は常に許可されています。

Class 方法 Format (getEncoded)
EcPublicKey getEncoded () X.509
getW() 該当なし
RSAPublicKey getEncoded () X.509
getPublicExponent() 該当なし
CloudHsmRsaPrivateCrtKey getPublicExponent() 該当なし

AWS CloudHSM JCE プロバイダーは、デフォルトではプライベートキーまたはシークレットキーのキーバイトのクリアな抽出を許可しません。ユースケースで必要な場合は、以下の条件で プライベート または シークレット キーのキーバイトを消去して抽出できます。

  1. プライベートまたはシークレットキーの EXTRACTABLE 属性は「true」に設定されています。

    • デフォルトでは、プライベートキーとシークレットキーの EXTRACTABLE 属性は「true」に設定されています。EXTRACTABLE キーは HSM からのエクスポートが許可されているキーです。詳細については、「Client SDK 5 向けサポートされている Java 属性」を参照してください。

  2. プライベートキーとシークレットキーの WRAP_WITH_TRUSTED 属性は「false」に設定されます。

    • getEncodedgetPrivateExponentgetSおよびクリアでエクスポートできないプライベートキーでは使用できません。WRAP_WITH_TRUSTED は、プライベートキーを HSM からクリアにエクスポートすることはできません。詳細については、「信頼できるキーを使ったキーのアンラップの制御」を参照してください。

AWS CloudHSM JCE プロバイダーが からプライベートキーシークレットを抽出することを許可する AWS CloudHSM

重要

この設定変更により、HSM クラスターからすべてのクリアの EXTRACTABLE キーバイトを抽出できるようになります。セキュリティを高めるには、キーラッピング方法を使用して HSM から安全にキーを抽出することを検討してください。これにより、HSM からキーバイトが意図せず抽出されるのを防ぐことができます。

  1. 以下のコマンドを使用して、プライベート キーと シークレット キーを JCE で抽出できるようにします。

    Linux
    $ /opt/cloudhsm/bin/configure-jce --enable-clear-key-extraction-in-software
    Windows
    C:\Program Files\Amazon\CloudHSM\> .\configure-jce.exe --enable-clear-key-extraction-in-software
  2. クリアキー抽出を有効にすると、以下の方法でプライベートキーをメモリーに抽出できるようになります。

    Class 方法 Format (getEncoded)
    Key getEncoded () RAW
    ECPrivateKey getEncoded () PKCS#8
    getS() 該当なし
    RSAPrivateCrtKey getEncoded () X.509
    getPrivateExponent() 該当なし
    getPrimeP() 該当なし
    getPrimeQ() 該当なし
    getPrimeExponentP() 該当なし
    getPrimeExponentQ () 該当なし
    getCrtCoefficient() 該当なし

JCE がキーをクリアでエクスポートできないようにして、デフォルトの動作に戻したい場合は、以下のコマンドを実行します。

Linux
$ /opt/cloudhsm/bin/configure-jce --disable-clear-key-extraction-in-software
Windows
C:\Program Files\Amazon\CloudHSM\> .\configure-jce.exe --disable-clear-key-extraction-in-software