2017-06-28 4 views
1

私はバックグラウンドで実行されるべきJavaアプリケーションに取り組んでおり、変更が必要な場合に備えて、いくつかの機密情報(他の中ではDB資格情報)を外部化することを考えていました。これらの情報は、アプリケーションを開始するために必要です。しかし、私はこれを行う正しい方法は何ですか?開始するバックグラウンドアプリケーションに機密情報(パスワードなど)を安全に提供するにはどうすればよいですか?

私は以下を考えていましたが、セキュリティの観点からアドバイスが必要です。

  1. 暗号化されたパスワードは、アプリケーションの起動時に主な引数として渡されます。しかし、OSのプロセスの一覧を見ると、どのユーザーも引数を見ることができます。

  2. 外部ファイルを生成し、すなわちJavaプロパティは、ビューの制限付きで(暗号化された資格情報を使用して)ファイル、およびアプリケーション

  3. にファイルパスを渡すのアクセスに適用するために、ユーザーの環境変数で暗号化された資格情報を入れてそれ

注:我々はすでに我々が個人的に

を使用して暗号化ツールを持って、私は2番目のオプションに傾いたが、私は提案を知りたいのですが、COMMEこのような場合には、nts、またはベストプラクティスを使用します。

ありがとうございます!

+0

暗号化が必要なものを暗号化するための[ZooKeeper](https://zookeeper.apache.org/)と[Jasypt](http://www.jasypt.org/)。 –

+0

こんにちは、私たちはすでに使用している暗号化ツールを持っており、この情報を含めるように投稿を編集します – byuu

答えて

0

2が最も分かりやすいオプションです。 1と3の問題は、「暗号化された」文字列にアクセスすると、どのように解読しているのかを把握する必要があります(それを利用するには、どうにかする必要があります)。

あなたはSpring Cloud Configを見ましたか?これがあなたのためのオプションかどうかはわかりません。

+0

アドバイスをいただきありがとうございます。私はSpring Cloud Configをチェックしましたが、単純なアプリケーションに使用するには余計に使いすぎるようです。 (私はプレーンJavaを使用しています) – byuu

0

オプション2が最も一般的です。 個人的には、オプション1と3はお勧めしません。

他のオプションもあります。

例として、PicketBox Vaultを見ることができます。 カスタム実装をデフォルトよりも安全にすることができます。

実際にはオプション2が拡張されています - キーストアに格納された鍵で保護されたVaultファイルがあります。

そのキーストア(エイリアス)へのパスワードは保護されている必要がありますが、1つだけです(2つ)。多くのプロパティが確保される必要があるときに便利です。すべてのプロパティが同じ方法と場所で確保されているため、管理も容易です。

関連する問題