2

データベース接続を作成するときに、ハッシュ化または暗号化されたパスワードを送信する必要があります。以下の詳細を参照してください。

DB2 AS400 データベースに接続する Spring アプリケーションがあります。現在、構成ファイル (.properties) を使用して接続の詳細を保存しています。Spring はコンテキスト作成フェーズでこれらのファイルを読み取り、それに応じてデータソースを作成します。

...
database.driverClassName=com.ibm.as400.access.AS400JDBCDriver
database.url=jdbc:as400:<host>:naming=sql;libraries=*LIBL,...;transaction isolation=none

database.username=<user>
database.password=<password>

database.initialPoolSize=2
database.maxPoolSize=5
...

この .properties ファイルは、アプリケーション/Web サーバーのファイル システムに存在します。

パスワードを直接保存するのではなく、ハッシュ化されたパスワードを保存する必要があります。そのため、誰かがファイルの内容を見ても、実際のパスワードが何であるかを知ることができません。

SHA を使用して次のようにします。

...
database.password=5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
...

送信されるパスワードがハッシュされていることを AS400 に伝える方法が必要です。

私の調査では、AS400 は、DES または SHA ハッシュ アルゴリズムを使用できるライブラリ QSYS 内のインデックス QSYUPTBL を使用してパスワードを保存することがわかりました。したがって、受信したパスワードを暗号化し、結果のハッシュをインデックスに保存されているものと比較します。しかし、パスワードがハッシュされていることを期待して直接比較するようにDBの認証プロセスに指示することは可能ですか?

新しい発見:

IBM のドキュメントには、リモート認証方法を設定するための RMTAUTMTH という 1 つのキーワードが記載されています。そのパラメーターで *ENCRYPTED 値を使用すると、ユーザー ID とパスワードの暗号化が有効になります。

...ユーザー ID と関連する暗号化されたパスワードは、DDM 接続要求で送信されます。この認証方法を使用するには、両方のシステムで暗号化サポートを使用できる必要があります... http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/cl/chgrdbdire.htmから抽出

そのため、AS400 側で構成できるようですが、使用されている暗号化アルゴリズムと、jdbc ドライバーがそれをサポートしているかどうかについては何も言及されていません。

4

1 に答える 1

1

IBM Toolbox for Java JDBC プロパティーには、特別なハッシュ/暗号化パスワードを受け入れるプロパティーについての言及はありません。

アプリケーション内でパスワードのハッシュ/暗号化を管理し、プレーンテキストとして JDBC 接続に提供する必要があります。

JDBC 接続のsecureプロパティを使用して AS/400 への SSL 接続を強制することができます (SSL が有効になっている場合)。これにより、アプリケーションとデータベースの間ですべてのデータが確実に暗号化されます。

于 2013-06-17T18:52:30.333 に答える