2016-12-07 5 views
0

サードパーティのサービスにアクセスするためにJavaアプリケーションの資格情報はどこに保存する必要がありますか?サードパーティのサービスにアクセスするには、Javaアプリケーションの資格情報をどこに保存する必要がありますか?

資格情報は、アプリケーションのユーザーごとに固有のものではありません。私のアプリケーションが消費しているWebサービスにアクセスするためのものです。私は自分のアプリケーションにそれらをハードコードしないほど十分に知っていますが、どこにどのように保管しますか?私は彼らも暗号化する必要があると仮定します。

+0

この情報はどの程度重要ですか?資格情報が侵害されるべきときに、すべてのお客様にそのアプリケーションのすべてのインストールが中断されますか?そのサードパーティの損害賠償額はいくらですか?これらの資格情報を暗号化する場合は、解読するためにキーをどこに保存しますか? ...あなたはすべてのインストールのための1つのキーか、各顧客のための新しいキーを持っていますか? – Fildor

+0

私は信任状が非常に敏感であると言います。 –

+0

@Fildor資格情報は、アプリからアプリへの通信のためのものです。彼らは顧客に相対的ではありません。あなたが言うかもしれないApplicationScoped。環境ごとに1セットあります(例えば、生産、テスト) –

答えて

0

@ Zildyanの回答、コメント、および他の回答への参照を基にする。

を格納するのためのいくつかのオプションがあります:プロパティファイル

    • データベース(離れアプリケーションから)
    • 定数(ハードコードされた)
    • ファイルシステムは

    についてはと保存するe:

    感度によって異なります。クレデンシャルはプレーンテキスト(低感度)で保存することも、暗号化する(高感度)こともできます。


    また、暗号化の組み合わせを使用して、ソースからの資格情報を分離することは、あなたが資格情報への内部アクセスを制限することに留意する必要があります。

    いくつかの例

    • 平文で格納されたパスワードは、ソースコントロールに追加し、ソースコントロールへのアクセスを誰でも読むことができます。
    • 復号化コードを持つ暗号化されたパスワードは、コードを実行できる誰でも簡単に利用できます。
    • サーバーに保存されているプレーンテキストファイルは、サーバーにアクセスできるすべてのユーザーがアクセスできます。
    • ファイルシステムに格納された暗号化ファイルは、システム管理者だけがアクセスでき、暗号化解除方法はdevsで利用できます。

    同じことがデータベースに格納され、そのデータベースにアクセスできるのは同じです。

  • 1
    • Dbの
    • .propertiesファイルは自動魔法(リソースフォルダの下).propertiesファイルから値を注入することができ@value注釈付きの素敵な機能を持つ定数

    春と

  • 設定クラスファイル与えられた鍵で

    私のケースでは、私は複数のアプリケーションインスタンスで異なるキー値を持ち、dbには少し複雑さが必要であり、さらにdbに不必要なクエリを作成しないためです。

    攻撃者がサーバー上のファイルを読み取ることができる場合は、セキュリティ上の理由から、データベースを簡単に読み取ることができるため、ここでは再生できません。システム上の任意のファイルに格納することができます。あなたは

    で設定クラスを持つことができる一方

    のpublic static final String型SECRET_KEY = "someKey"

  • +1

    私はここで、アプリケーションに資格情報をハードコーディングする以上のセキュリティ上の利点はありませんか? –

    +0

    セキュリティは、アプリ全体のグローバルな問題であり、特定のキー/値ではないため、デカップリングされた実装が得られ、キー値を簡単に管理できます。そして、これはそれを行う3つの方法です。 – Zildyan

    +1

    OPの問題は、資格情報が "プレーンテキスト"になっているということです。そのプロパティファイルを開き、資格情報を読み取るだけです。 – Fildor

    2

    .jarファイルには、すべての資格情報を格納するための最良の方法です。

    1. ビルド・パス
    2. uは資格情報を使用します。ここで、このインタフェースを実装しているjarファイルを追加し、アクセスStringオブジェクト
    3. 変換インタフェースjarファイル
    4. への最終的な文字列として資格情報を保存するインターフェイスを作成します。あなたの資格情報を保存しています。
    関連する問題