Liberty: パスワード暗号化による保護の制限
Liberty では、server.xml ファイルに保管されたパスワードに関して Advanced Encryption Standard (AES) の暗号化をサポートしています。Liberty 構成でシステム・パスワードを保護するためにこのオプションを使用する場合には、提供される保護の制限を把握する必要があります。
Liberty 構成でのパスワードの暗号化は、パスワードがセキュアである、つまり保護されることを保証するものではありません。暗号化されたパスワードを見ることができても暗号鍵を知らなければ、パスワードを簡単に回復することができないということだけです。アプリケーション・サーバー・プロセスには、暗号化されたパスワードと暗号化解除鍵の両方に対するアクセス権限が必要であるため、 これらの両方のデータ項目が、サーバー・ランタイム環境からアクセス可能なファイル・システム上に保管されていなければなりません。 また、サーバー構成に入れるパスワードを暗号化する人も、この暗号鍵を必要とします。 したがって、Liberty サーバー・インスタンスと全く同じファイル・セットへのアクセス権限を持つアタッカーに対しては、パスワードに AES 暗号化を適用しても、「排他的論理和」(XOR) エンコードを超える追加のセキュリティーは提供されません。
- パスワードは機密ではないため、エンコードしても価値は少ない。
- パスワードは機密であるため、パスワードを含む構成ファイルはセキュリティー機密でありアクセスを制御する必要があるか、 あるいは、パスワードを暗号化してそのエンコード鍵をセキュリティー機密として保護する。
暗号化解除に使用される暗号鍵は、wlp.password.encryption.key プロパティーを設定することで、デフォルトをオーバーライドすることができます。 このプロパティーは、パスワードを保管する server.xml ファイルの中ではなく、 server.xml ファイルで組み込まれる別の構成ファイルに設定してください。 この別の構成ファイルには、1 つのプロパティーの宣言だけを入れて、 サーバーの通常の構成ディレクトリーの外に保管してください。 これにより、鍵を含むファイルが、server dump コマンドや package コマンドを実行したときに組み込まれることがなくなります。 暗号鍵のプロパティーは、ブートストラップ・プロパティーとして指定することも可能です。 このオプションを選択する場合は、 サーバーの bootstrap.properties ファイルに組み込まれる、別のプロパティー・ファイルに暗号鍵を入れてください。
XOR または AES を使用したパスワードの保護については、 関連のリンク (特に『Liberty: securityUtility コマンド』) を参照してください。