現在、Java EE(より正確にはWebLogicサーバー)に基づくシステムの開発に参加しており、管理者から一部のプライベートデータを保護する方法を考えています。たとえば、システムの一部では、レガシーシステムの資格情報がプレーンテキストとして展開記述子に保存されますが、展開者はアプリケーション構成ファイル(ejb-jar.xml
たとえば)を読み取り、強力なアカウントのユーザー名とパスワードを盗むことができるため、これは不適切です。このセキュリティホールを閉じたいのですが、方法がわかりません。
今、私はこの種のデータを保護することに興味があります:
- ログイン
- パスワード
- 対称暗号化用の秘密鍵
ここから、JCEKSキーストアを使用してこの種の情報を保護できることを発見しましたが、その使用方法がわかりません。私のアプリケーションには、kestoreパスワードとそれにアクセスするためのキーパスワードが含まれている必要があります。したがって、デポイヤーはキーストアとキーのパスワードを盗み、私の安全なストレージを見つけ、資格情報を盗むことができます。明らかにread
、デプロイヤーアカウントから特権を取り消すことができますが、その後、彼は私のアプリケーションを逆コンパイルして、安全なデータをファイルに印刷したり、電子メールで送信したりするだけの独自の同様のアプリを開発(または編集)できます...そして今、私は立ち往生しています...
管理者からシステムを保護する方法を説明できるリンクを誰かに教えてもらえますか?Weblogic関連のリンクが望ましいでしょう。すべての管理者から保護することは不可能でありsecurity administrator
、キーストアの管理などを担当する管理者もいるはずですが、他のすべての人からすべての機密データを保護したいと思います。
結果
jtahlbornとslimの両方の答えは正しいですが、slimの答えはもっと興味深いものです。私の場合、サーバーにインストールするために署名されたアプリケーションのみを受け入れることが適切だと思います。この決定により、管理者が行うアプリケーションの変更に関する問題を解決できます。管理者は、キーストアとすべてのキーのパスワードを使用できますが、キーストアファイルにアクセスすることはできません。キーストアファイルへのアクセスには、特別なセキュリティ管理者('rw')とサーバー('r')のみが含まれます。したがって、誰もがキーを持っていますが、誰も(セキュリティ管理者を除いて)ボックスにアクセスできません。