1

私たちのサーバーには、API を介して外部アカウントにログインする定期的なジョブがいくつかあります。現在、これらのパスワードは (平文で) ハードコーディングされています。それらをデータベースに保存し、パスワードを暗号化したいのですが、外部サイトにログインするにはパスワードを復号化できる必要があります。暗号化/復号化のために別のパスワードを平文で保存せずに、これらのパスワードを安全に保存する方法はありますか? (これはよくある問題のようですが、私はそれを分類するためのセキュリティ用語に精通していません)。ありがとう!

4

1 に答える 1

2

あなたが達成しようとしていることは、この質問と非常に似ています。理想的には、これらのシークレットをデータベースに保持するのではなく、できるだけアプリケーションから遠ざける必要があります。なんで?このようにして、少なくともアプリケーション自体を攻撃面として除外することができ、それらのパスワードへのアクセスを取得するのがはるかに難しくなるからです.

あなたのケースでは、暗号化キーをパスワードで保護したいと考えています。これは、パスワードをどこかに保存する必要があることを意味します。そのパスワードをもう一度暗号化する必要がありますか? これは悪循環につながります-それは、回答のこのセクションで私が意味したことです:

...そのリソースに私たちをもたらすもの。これは、キー ストアとパスワードに関する鶏と卵の問題です。これに対する唯一の本当にクリーンな解決策は、アプリ/データベースを起動するたびにパスワードを手動で入力することです。しかし、これは実際の問題になる傾向があるため (真夜中のクラッシュを考えてみてください)、パスワードをファイル システム上のテキスト ファイルに保存する傾向があります。いくつかのガイドラインに従う限り、それは許容されます:...

何かを暗号化すると、関連する鍵である秘密のリソースが存在します。それを秘密にしておく理想的な方法は、引用で概説されているように、それを記憶し、手で入力して、その痕跡が残らないようにすることです. 多くの場合、これは管理しにくいため、暗記よりも安全性は劣りますが、シークレットをプレーン テキストで保存するよりは安全な方法で対処する必要があります。

秘密のパスワードをファイルに保存することに関して、その投稿と同じ推奨事項がケースに適用されます。別の方法として、 Windows Data Protectionなどの OS Secure Storage 機能を利用することもできます。

于 2011-08-12T18:14:09.163 に答える