1

ユーザーがログインしてサードパーティ API にアクセスする単純な webapp があります。この API には、プレーンテキストのユーザー名とパスワード (OAuth などはありません) で個人の資格情報も必要です。これらのサードパーティのパスワードを保存する適切で安全で簡単な方法は何ですか?

ストレージ用に webapp で暗号化し、必要に応じてファイアウォールの背後にある別のマシンから復号化するために、GPG キーをハードコーディングすることを考えています。

4

1 に答える 1

2

これはGPG固有の問題ではないと思います。次のようなスキームを考えることができます(公開鍵暗号の必要はありません):

  1. ランダムなパスワードを生成して、保護するプレーンテキストのクレデンシャルを暗号化します
  2. このランダムなパスワードをユーザーのパスワードから保護するためのキーを導き出します
  3. 手順1のパスワードを手順2のパスワードで暗号化します

これで、ユーザーがログインした後、保護された資格情報にアクセスできます(ユーザーが入力したパスワードがわかっているため)。ユーザーがパスワードを変更するときは、手順1のキーを再暗号化するだけで済みます(このキーを複数の場所で使用する場合は、1つを見逃すことはありません)。

ステップ2では、PBKDF2のような(遅い)鍵導出関数を使用する必要があります。これにより、セキュリティ違反が発生した場合に、暗号化された資格情報に対する単純な辞書攻撃が不可能になります。

于 2013-03-13T07:45:09.503 に答える