JCE 暗号化

JCE 戦略では、Java Cryptography Extension によって提供される広範な暗号化機能を使用できます。

暗号化機能は、次の 2 つの方法で使用できます。

  • パスワードベースの暗号化 (PBE):
    この方法を使用すると、暗号化パスワードのみを指定してコンテンツの暗号化と署名ができます。

  • キーベースの暗号化:
    PGP および XML 暗号化のしくみと似ていますが、この方法では、対称キーまたは非対称キーを設定して、暗号化および署名操作を実行できます。

これらの 2 つの方法を使用して、メッセージのすべて、または一部を暗号化できます。

PBE

この方法では、指定されたパスワードにハッシュ関数を適用して、標準暗号化アルゴリズムと互換性のある対称キーを生成します。PBE で必要なのはパスワードのみであるため、PBE 操作にはグローバル設定要素は必要ありません。

Anypoint Studio からのパスワードベースの暗号化の設定

Anypoint Studio から PBE を設定するには、次の手順に従います。

  1. [Mule Palette (Mule パレット)] から、​[Crypto (暗号化)]​ をプロジェクトに追加します。

    手順は、​「拡張機能のインストール」​を参照してください。

  2. 目的の操作を選択し、コンポーネントをフローにドラッグします。

    crypto-pbe-add
  3. コンポーネントビューで、​[Algorithm (アルゴリズム)]​ および ​[Password (パスワード)]​ プロパティを設定します。

    crypto-pbe-config

XML の例

以下は、各 PBE 操作の XML の例です。

  • PBE 暗号化

    <crypto:jce-encrypt-pbe password="a-Sup3r_Secure-Passw0rd"/>

    アルゴリズムを指定しない場合、​PBEWithHmacSHA256AndAES_128​ が使用されます。

  • PBE 復号化

    <crypto:jce-decrypt-pbe algorithm="PBEWithHmacSHA256AndAES_128" password="a-Sup3r_Secure-Passw0rd"/>
  • PBE 署名

    <crypto:jce-sign-pbe password="a-Sup3r_Secure-Passw0rd"/>

    アルゴリズムを指定しない場合、​PBEWithHmacSHA256​ が使用されます。

  • PBE 署名検証

    <crypto:jce-validate-pbe password="a-Sup3r_Secure-Passw0rd" algorithm="PBEWithHmacSHA256" expected="#[vars.expectedSignature]"/>

    expected​ パラメーターでは、メッセージを検証するために使用される署名を定義します。

キーベースの暗号化

対称キーまたは非対称キーを設定して、暗号化および署名操作を実行します。

Anypoint Studio からのキーベースの暗号化の設定

Anypoint Studio からキーベースの暗号化操作を設定するには、次の手順に従います。

  1. [Mule Palette (Mule パレット)] から、​[Crypto (暗号化)]​ をプロジェクトに追加します。

    手順は、​「拡張機能のインストール」​を参照してください。

  2. 目的の操作を選択し、コンポーネントをフローにドラッグします。

    crypto-jce-add
  3. コンポーネントプロパティを開いて、既存のモジュール設定を選択するか、​[Keystore (キーストア)]​、​[Type (種別)]​ (JKS、JCEKS、PKCS12)、および ​[Password (パスワード)]​ の値を指定して新しいモジュール設定を作成します。

    署名操作で使用する対称キーまたは非対称キーの情報を追加することもできます。

    crypto-jce-global-config
  4. モジュール設定で以前定義した ​[Key id (キー ID)]​ 値を使用して ​[Key selection (キー選択)]​ を設定するか、この操作用に新しく定義します。

    crypto-jce-config
  5. 操作中に使用するアルゴリズムを選択します。

XML の例

次の XML の例は、対称キーと非対称キー、およびそれらのキーを使用するさまざまな操作を定義する JCE 設定を示しています。

  • Configuration (設定)

    この例では、JCE 設定で異なる種別のキーがあるキーストアが定義されています。

    <crypto:jce-config name="jceConfig" keystore="jce/keys.jceks" password="123456" type="JCEKS">
        <crypto:jce-key-infos>
            <crypto:jce-symmetric-key-info keyId="aes128" alias="aes128" password="123456"/>
            <crypto:jce-symmetric-key-info keyId="blowfish" alias="blowfish" password="123456"/>
            <crypto:jce-symmetric-key-info keyId="hmacsha256" alias="hmacsha256" password="123456"/>
            <crypto:jce-asymmetric-key-info keyId="rsa" alias="myrsakey" password="123456"/>
            <crypto:jce-asymmetric-key-info keyId="dsa" alias="mydsakey" password="123456"/>
        </crypto:jce-key-infos>
    </crypto:jce-config>
  • 非対称暗号化

    次の操作の例では、前の設定で定義した非対称キーを使用します。

    メッセージの暗号化
    <crypto:jce-encrypt config-ref="jceConfig" keyId="rsa" algorithm="RSA"/>
    メッセージの復号化
    <crypto:jce-decrypt config-ref="jceConfig" keyId="rsa" algorithm="RSA"/>
  • 対称暗号化

    次の操作の例では、前の設定で定義した対称キーを使用します。

    メッセージの暗号化
    <crypto:jce-encrypt config-ref="jceConfig" keyId="aes128" algorithm="AES"/>
    メッセージの復号化
    <crypto:jce-decrypt config-ref="jceConfig" keyId="aes128" algorithm="AES"/>
  • 署名および検証

    次の署名および検証操作の例では、前の設定で定義したキーを使用します。

    メッセージの署名
    <crypto:jce-sign config-ref="jceConfig" keyId="dsa" algorithm="SHA256withDSA"/>
    署名の検証
    <crypto:jce-validate config-ref="jceConfig" keyId="dsa" algorithm="SHA256withDSA" expected="#[vars.expectedSignature]"/>

    expected​ パラメーターでは、メッセージを検証するために使用される署名を定義します。

参照

モジュール設定

Java キーストアのインラインキーの JCE 設定。

パラメーター

名前 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x​ 

Keystore (キーストア)

String (文字列)

キーストアファイルへのパス。

 

Type (種別)

Enumeration (列挙)。次のいずれかになります。

  • JKS

  • JCEKS

  • PKCS12

キーストアの種別。

JKS

 

Password (パスワード)

String (文字列)

キーストアのロックを解除するパスワード。

 

Jce Key Infos (JCE キー情報)

対象となるキーのリスト。これらの参照には内部 ID が使用されます。

 

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

 

Jce Decrypt 操作

<crypto:jce-decrypt>

JCE を使用してキーでストリームを復号化します。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x​ 

Content (コンテンツ)

Binary (バイナリ)

DataWeave 式を使用して、すべて、または一部のメッセージを復号化できます。
たとえば、[Content (コンテンツ)] を ​#[payload.name]​ に設定して、ペイロードの暗号化された ​name​ という変数のみ復号化できます。

#[payload]

 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

 

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

 

Cipher (暗号化)

String (文字列)

Java 暗号化ドキュメントに準拠する「アルゴリズム/モード/パディング」形式の未加工の暗号化文字列 (​AES/CBC/PKCS5Padding​ など)。一部の組み合わせは無効です。

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • AES

  • AESWrap

  • ARCFOUR

  • Blowfish

  • DES

  • DESede

  • RC2

  • DESedeWrap

  • RSA

一連の有効な定義のアルゴリズム。この項目を指定すると、次のリストに従って使用するモードとパディングが自動的に選択されます。

  • AES/CBC/PKCS5Padding

  • AESWrap/ECB/NoPadding

  • ARCFOUR/ECB/NoPadding

  • Blowfish/CBC/PKCS5Padding

  • DES/CBC/PKCS5Padding

  • DESede/CBC/PKCS5Padding

  • RC2/CBC/PKCS5Padding

  • DESedeWrap/CBC/NoPadding

  • RSA/ECB/OAEPWithSHA-256AndMGF1Padding

 

Key Id (キー ID)

String (文字列)

JCE 設定で定義されるキー ID。

 

Jce Key Info (JCE キー情報)

インラインキー定義。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

Binary (バイナリ)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:KEY​  

  • CRYPTO:PASSPHRASE​  

  • CRYPTO:PARAMETERS​  

  • CRYPTO:DECRYPTION​  

Jce Encrypt 操作

<crypto:jce-encrypt>

JCE を使用してキーでストリームを暗号化します。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x​ 

Content (コンテンツ)

Binary (バイナリ)

DataWeave 式を使用して、すべて、または一部のメッセージを暗号化できます。
たとえば、[Content (コンテンツ)] を ​#[payload.name]​ に設定して、ペイロードの ​name​ という変数のみ暗号化できます。

#[payload]

 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

 

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

 

Cipher (暗号化)

String (文字列)

Java 暗号化ドキュメントに準拠する「アルゴリズム/モード/パディング」形式の未加工の暗号化文字列 (​AES/CBC/PKCS5Padding​ など)。一部の組み合わせは無効です。

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • AES

  • AESWrap

  • ARCFOUR

  • Blowfish

  • DES

  • DESede

  • RC2

  • DESedeWrap

  • RSA

一連の有効な定義のアルゴリズム。この項目を指定すると、次のリストに従って使用するモードとパディングが自動的に選択されます。

  • AES/CBC/PKCS5Padding

  • AESWrap/ECB/NoPadding

  • ARCFOUR/ECB/NoPadding

  • Blowfish/CBC/PKCS5Padding

  • DES/CBC/PKCS5Padding

  • DESede/CBC/PKCS5Padding

  • RC2/CBC/PKCS5Padding

  • DESedeWrap/CBC/NoPadding

  • RSA/ECB/OAEPWithSHA-256AndMGF1Padding

 

Key Id (キー ID)

String (文字列)

JCE 設定で定義されるキー ID。

 

Jce Key Info (JCE キー情報)

インラインキー定義。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

Binary (バイナリ)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:ENCRYPTION​  

  • CRYPTO:KEY​  

  • CRYPTO:PARAMETERS​  

Jce Sign 操作

<crypto:jce-sign>

JCE を使用してキーでストリームに署名します。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x​ 

Content (コンテンツ)

Binary (バイナリ)

署名するコンテンツ

#[payload]

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • MD2withRSA

  • MD5withRSA

  • SHA1withRSA

  • SHA224withRSA

  • SHA256withRSA

  • SHA384withRSA

  • SHA512withRSA

  • NONEwithDSA

  • SHA1withDSA

  • SHA224withDSA

  • SHA256withDSA

  • HmacMD5

  • HmacSHA1

  • HmacSHA224

  • HmacSHA256

  • HmacSHA384

  • HmacSHA512

署名に使用されるアルゴリズム

HmacSHA256

 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Key Id (キー ID)

String (文字列)

JCE 設定で定義されるキー ID。

 

Jce Key Info (JCE キー情報)

インラインキー定義。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

String (文字列)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:KEY​  

  • CRYPTO:PASSPHRASE​  

  • CRYPTO:SIGNATURE​  

Jce Validate 操作

<crypto:jce-validate>

キーを使用して署名に対してストリームを検証します。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x​ 

Value (値)

Binary (バイナリ)

認証するメッセージ

#[payload]

 

Expected (想定)

String (文字列)

検証する署名

x​ 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • MD2withRSA

  • MD5withRSA

  • SHA1withRSA

  • SHA224withRSA

  • SHA256withRSA

  • SHA384withRSA

  • SHA512withRSA

  • NONEwithDSA

  • SHA1withDSA

  • SHA224withDSA

  • SHA256withDSA

  • HmacMD5

  • HmacSHA1

  • HmacSHA224

  • HmacSHA256

  • HmacSHA384

  • HmacSHA512

署名に使用されるアルゴリズム

HmacSHA256

 

Key Id (キー ID)

String (文字列)

JCE 設定で定義されるキー ID。

 

Jce Key Info (JCE キー情報)

インラインキー定義。

 

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:VALIDATION​  

Jce Decrypt Pbe 操作

<crypto:jce-decrypt-pbe>

JCE を使用してパスワードでストリームを復号化します。

パラメーター

名前 説明 デフォルト値 必須

Content (コンテンツ)

Binary (バイナリ)

DataWeave 式を使用して、すべて、または一部のメッセージを復号化できます。
たとえば、[Content (コンテンツ)] を ​#[payload.name]​ に設定して、ペイロードの暗号化された ​name​ という変数のみ復号化できます。

#[payload]

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • PBEWithMD5AndDES

  • PBEWithMD5AndTripleDES

  • PBEWithSHA1AndDESede

  • PBEWithSHA1AndRC2_40

  • PBEWithSHA1AndRC2_128

  • PBEWithSHA1AndRC4_40

  • PBEWithSHA1AndRC4_128

  • PBEWithHmacSHA1AndAES_128

  • PBEWithHmacSHA224AndAES_128

  • PBEWithHmacSHA256AndAES_128

  • PBEWithHmacSHA384AndAES_128

  • PBEWithHmacSHA512AndAES_128

  • PBEWithHmacSHA1AndAES_256

  • PBEWithHmacSHA224AndAES_256

  • PBEWithHmacSHA256AndAES_256

  • PBEWithHmacSHA384AndAES_256

  • PBEWithHmacSHA512AndAES_256

パスワードからキーを生成するためのアルゴリズム

PBEWithHmacSHA256AndAES_128

 

Password (パスワード)

String (文字列)

復号化のパスワード

x​ 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

 

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

Binary (バイナリ)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:KEY​  

  • CRYPTO:PASSPHRASE​  

  • CRYPTO:PARAMETERS​  

  • CRYPTO:DECRYPTION​  

Jce Encrypt Pbe 操作

<crypto:jce-encrypt-pbe>

JCE を使用してパスワードでストリームを暗号化します。

パラメーター

名前 説明 デフォルト値 必須

Content (コンテンツ)

Binary (バイナリ)

DataWeave 式を使用して、すべて、または一部のメッセージを暗号化できます。
たとえば、[Content (コンテンツ)] を ​#[payload.name]​ に設定して、ペイロードの ​name​ という変数のみ暗号化できます。

#[payload]

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • PBEWithMD5AndDES

  • PBEWithMD5AndTripleDES

  • PBEWithSHA1AndDESede

  • PBEWithSHA1AndRC2_40

  • PBEWithSHA1AndRC2_128

  • PBEWithSHA1AndRC4_40

  • PBEWithSHA1AndRC4_128

  • PBEWithHmacSHA1AndAES_128

  • PBEWithHmacSHA224AndAES_128

  • PBEWithHmacSHA256AndAES_128

  • PBEWithHmacSHA384AndAES_128

  • PBEWithHmacSHA512AndAES_128

  • PBEWithHmacSHA1AndAES_256

  • PBEWithHmacSHA224AndAES_256

  • PBEWithHmacSHA256AndAES_256

  • PBEWithHmacSHA384AndAES_256

  • PBEWithHmacSHA512AndAES_256

パスワードからキーを生成するためのアルゴリズム

PBEWithHmacSHA256AndAES_128

 

Password (パスワード)

String (文字列)

暗号化のパスワード

x​ 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

 

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

Binary (バイナリ)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:ENCRYPTION​  

  • CRYPTO:KEY​  

  • CRYPTO:PARAMETERS​  

Jce Sign Pbe 操作

<crypto:jce-sign-pbe>

JCE を使用してキーでストリームに署名します。

パラメーター

名前 説明 デフォルト値 必須

Content (コンテンツ)

Binary (バイナリ)

署名するコンテンツ

#[payload]

 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • HmacPBESHA1

  • PBEWithHmacSHA1

  • PBEWithHmacSHA224

  • PBEWithHmacSHA256

  • PBEWithHmacSHA384

  • PBEWithHmacSHA512

署名に使用されるアルゴリズム

PBEWithHmacSHA256

 

Password (パスワード)

String (文字列)

署名に使用されるパスワード

x​ 

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

 

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

 

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

 

出力型

String (文字列)

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:KEY​  

  • CRYPTO:PASSPHRASE​  

  • CRYPTO:SIGNATURE​  

Jce Validate Pbe 操作

<crypto:jce-validate-pbe>

キーを使用して署名に対してストリームを検証します。

パラメーター

名前 説明 デフォルト値 必須

Binary (バイナリ)

認証するメッセージ

#[payload]

 

Expected (想定)

String (文字列)

検証する署名

x​ 

Algorithm (アルゴリズム)

Enumeration (列挙)。次のいずれかになります。

  • HmacPBESHA1

  • PBEWithHmacSHA1

  • PBEWithHmacSHA224

  • PBEWithHmacSHA256

  • PBEWithHmacSHA384

  • PBEWithHmacSHA512

署名に使用されるアルゴリズム

PBEWithHmacSHA256

 

Password (パスワード)

String (文字列)

署名に使用されるパスワード

x​ 

スロー

  • CRYPTO:MISSING_KEY​  

  • CRYPTO:VALIDATION​  

型の定義

Expiration Policy (有効期限ポリシー)

項目 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

Repeatable In Memory Stream (反復可能なメモリ内ストリーム)

項目 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、​bufferSizeIncrement​ 属性に従って拡張され、上限は ​maxInMemorySize​ となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれくらい拡張されるか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE

  • KB

  • MB

  • GB

これらのすべての属性の単位

Repeatable File Store Stream (反復可能なファイルストアストリーム)

項目 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクへのコンテンツのバッファが開始されます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

Jce Asymmetric Key Info (JCE 非対称キー情報)

項目 説明 デフォルト値 必須

Key Id (キー ID)

String (文字列)

操作から参照される内部キー ID。

x

Alias (別名)

String (文字列)

キーストア内のキーの別名。

x

Password (パスワード)

String (文字列)

キーの非公開部分のロック解除に使用されるパスワード。

Jce Symmetric Key Info (JCE 対称キー情報)

項目 説明 デフォルト値 必須

Key Id (キー ID)

String (文字列)

操作から参照される内部キー ID。

x

Alias (別名)

String (文字列)

キーストア内のキーの別名。

x

Password (パスワード)

String (文字列)

キーのロック解除に使用されるパスワード。

x