17.4.7 ジョブ待ち行列詳細の暗号化
ジョブ待ち行列をQENC=Yパラメータで開始するだけで、この機能をオンにすることができます。起動されると、暗号化が使用されていない時とまったく同じ方法でジョブを投入できます。
免責事項
LANSAは、Open SSLライブラリ内での暗号化アルゴリズムの有効性その他を保証しません。LANSAの暗号を使用する部分を使う前には、適切な注意を払ってください。O'Reillyが発行したJohn Viega et alの本 "オープンSSLを使ったネットワーク・セキュリティ" から始められることを提案します。LANSAが提供した暗号は、以下の通りです。
AES 256, Blowfish 128, CAST5 128, DES 64, DESX 192, Triple DES 2 Key, Triple DES 3 Key, IDEA, RC2(TM) および RC4(TM)これらの暗号には、著作権があることがあります。暗号の使用が特許を侵害しないことを確認してください。LANSAはいかなる特許の侵害についても一切の責任を負いません。
技術的詳細
- 最初に、現在サポートされている唯一の対称暗号化アルゴリズムは、CBCモード (暗号ブロックチェーン) を使用するAES 256 およびシードとしても知られる初期化ベクトル (IV) です。他の暗号も使用できますが、現在LANSAでサポートされておらず、確認もされていません。ユーザー自らの責任範囲で使用してください。Open SSL API EVP_get_cipherbynameに直接引き渡されるx_runパラメータ CIPHがあります。詳細については、Open SSLのドキュメントを参照してください。
- RSAが鍵の転送をサポートする唯一のOpenSSL公開鍵アルゴリズムであるため、公開鍵はRSAでなければなりません。LANSAは、RSA_F4およびブラインドがオンになっている (タイミング攻撃を停止する) 2048ビット・モジュールを使用します。
- 通常、大量のデータに公開鍵暗号化を使用する方法としてエンベロープ暗号化が使用されます。公開鍵暗号化の速度は遅いですが、対称暗号化は速いからです。したがって、一括暗号化には対称暗号化が使用され、使用される小さいランダム対称鍵は公開鍵暗号化を使って転送されます。
- 秘密鍵は、ジョブ待ち行列モニターのメモリーに保管されます。処理のデバッグができることのみがセキュリティ上の問題です。したがって、デバッグの権限を無効にしなければなりません。
- もちろん、公開鍵はすべてのユーザーに公開されており、ジョブ待ち行列ディレクトリのファイルに書きだされます。
- ジョブ待ち行列が開始されるたびに新しい鍵ペアが生成されます。
- 各ジョブには、新しいシードがあります。各ジョブ待ち行列ファイルのデータはよく似ているため、このシードは必要不可欠です。Open SSL暗号APIの省略値のふるまいでは、ランダム・シードを提供します。
- ジョブ待ち行列モニターのみが暗号化を使用するかどうか決定します。モニターが起動されると、鍵ペアが作成され、公開鍵がDERバイナリ形式ファイルに書きだされます。クライアントは、公開鍵ファイルがあるかどうかをチェックします。ある場合、クライアントは公開鍵で暗号化される一意の対称キー (セッション・キー) の生成に使用されるランダム・シード (IV) を生成します。その後、セッション・キーを使用してジョブ待ち行列データが暗号化されます。暗号化されたセッション・キー IV および暗号化されたジョブ待ち行列は、ジョブ待ち行列ファイルに書きだされます。暗号化されたジョブ待ち行列の構造は以下の通りです。
- ジョブ待ち行列ファイルの構造:
<IVの長さ><IV><セッションキーの長さ><暗号化されたセッションキー><暗号化されたデータの長さ><暗号化されたデータ>
- RSA公開鍵には、例えば aes-256-cbc.derというように、対称暗号参照文字列の名前が付けられます。したがって、ファイル名を使用して対称暗号の検索ができます。このファイルは対称鍵ではなくRSA非対称鍵を含んでいるため、紛らわしいことがあります。
- ジョブ待ち行列が起動すると、まずすべての既存の .derファイルとすべての既存のジョブ詳細を消去してから、鍵ペアを生成し、新しい公開鍵を出力します。
|
ジョブ待ち行列モニター
|
|
|
|
1.鍵ペアを生成します。
2.<名前をつけられた対称鍵>.der e.g. aes-256-cbc.der に公開鍵を出力します。
6.データファイルを読み取ります。
7.メモリー内の秘密鍵 (RSA非対称暗号) およびクライアント・セッション・キーを使用して復号化します。
|
|
クライアント
|
|
|
|
3.公開鍵 (RSA)を読み取ります。
4.サーバーから提供される名前付き対称暗号とともに使用するセッション・キーを生成します。
5.適切なキーで暗号化したデータ・ファイルを作成します。
|
- CIPH: 暗号名の省略値は aes-256-cbcです。OpenSSLライブラリにそのまま渡されるため、大文字・小文字が区別されます。このパラメータは、組み込み関数 GET_SESSION_VALUE および SET_SESSIONとともに使用できます。
- QENC: ジョブ待ち行列モニターとともに暗号化を使用します。(これは、ジョブ待ち行列のサブミッターには無視されます。)
- ジョブが暗号化されたジョブ待ち行列に投入されると、ジョブ待ち行列モニターのインスタンスによってのみ実行されます。ジョブ待ち行列モニターが停止された後再開されると、既存のバッチ・ジョブを復号化できない新しい秘密鍵が生成されます。クライアントを再起動する必要はありませんが、ジョブ待ち行列モニターが起動し、公開鍵を生成するまでジョブを投入することができません。