1

私はセキュリティ資格情報(サーバーのユーザー名とパスワードなど)を保存する必要があるCMDBのようなアプリケーションに取り組んでいます。

これらの制約でそれらを安全に保存するための最良の方法を探しています:

  • ほとんどのユーザーは、すべての資格情報にアクセスできるわけではありません (ユーザーの役割によって異なります)。
  • すべてのパスワードが同じキーで暗号化されることは望ましくありません (既に試行済み: ユーザーが会社を辞めるとき、キーを変更するのは面倒です...)
  • 実際、秘密鍵をアプリのソースにハードに記述したり、どこにでも保存したりしたくありません (以前のバージョンでは、秘密鍵は私たちの耳に保存されていました...)
  • パスワード強度の監査を実現する必要があります (つまり、スクリプトから復号化されたパスワードを解析します)
  • 資格情報にアクセスできなくなった場合 (キーの紛失など) があってはなりません => 許可されていない人に見られたくないが、紛失したくない => これに対する解決策制約は、物理ロッカーへの通常のエクスポートである可能性があります...

アプリケーション(https、...)またはデータベース(パブリックアクセスなし、...)のセキュリティの問題自体については質問していませんが、ストレージ側についてのみ質問しています(データベースにあることさえできません...?暗号化されたファイルなど) ...) : アプリのコードやデータベースのコンテンツ (最悪の場合) にアクセスできたとしても、誰かが復号化された資格情報を読み取ることができないようにすることは可能ですか?

魔法の解決策を求めていることは承知していますが、それが存在するかどうか知りたいです ;o)

4

1 に答える 1

2

あなたが求めていることの一般的なケースは不可能です。すべてのタイプの最新の暗号化は、機械的な利点です。つまり、小さな秘密を使用して、より大きな秘密を保護します。小さな秘密を安全に保つことができなければ、安全はありません。パスワードごとにパスワードを誰かに与える機能が必要な場合は、問題のアイテムにアクセスするために必要な秘密 (パスワード) を効果的に与えることになります。

まさにこの問題が、フェデレーション ID システム (Kerberos/Active Directory/など) システムが存在する理由です。中央のマシンが、ユーザーに秘密を公開することなくユーザーを認証できるようにするためです。ただし、フェデレーション ID システムを使用するには、ログイン先のシステムと ID サービス間の連携が必要です。

于 2012-07-25T01:30:31.410 に答える