2017-01-09 10 views
0

私たちの内部セキュリティ要件を満たすために、証明書を使用してサーバーと相互認証するJavaクライアントを作成しました。しかし、証明書をSSLContextに入れるには、キーストアとtrustoreにパスワードを提供する必要があります。パスワードはコード内にプレーンテキストで表示されています。コードベースでkeystore/trustoreプレーンテキストパスワードを使用しないようにするにはどうすればよいですか?

キーストア/トラストストアのパスワードをコード内のプレーンテキストで使用しないようにする方法はありますか?私はスタックオーバーフローに関する答えを試しました。これは、パスワードなしでストアを作成したり、SSLContextに直接証明書をロードすることを提案していますが、これらのメソッドを試しても認証が失敗します。

+1

トラストストアにパスワードを入力する必要はありません。ある時点でオペレータを信頼する必要があります。これに対する通常の解決策は、アクセスカードを介した物理的なセキュリティです。 – EJP

答えて

1

通常、証明書とトラストストアには、秘密にしておかなければならない情報は含まれていません。秘密にしておかなければならないことの1つは、キーストアに含まれているプラ​​イベートキーです。キーストアをパスワードで保護することは、キーを安全に置いてその安全を第2のキーでロックするようなものです。実際には役に立ちません。

とにかく、あなたのVCSにチェックインしていない(リソース)ファイルからパスワードを読み込んで、そのファイルを提供するために配置しておくことができます(適切なユーザーへの読み取りアクセスを制限することによって保護することができます)オペレーティングシステムレベルで)。

もちろん、パスワードを使わずにキーストアで直接行うこともできます。

要件が高い場合は、Trusted Platform Moduleをご覧ください。

キーストアとトラストストアは、システムプロパティによって設定できるため、ソースコードからキーストアとトラストストアを全く扱うことはできません。

関連する問題