2017-12-05 13 views
1

私は、ユーザーパスワードを使用してユーザーの秘密キーを暗号化し、それをデータベースに保存するセキュリティシステムを作成しました。したがって、ユーザは、正しいパスワードを入力した後で、データベースに格納されている秘密鍵を復号化するために使用される場合にのみ、秘密鍵を取得することができます。説明したシステムのセキュリティを損なうことなく、パスワードを忘れた機能を追加するにはどうすればよいですか?

このシステムにはいくつかの優れたセキュリティ機能がありますが、「パスワードを忘れた」オプションは難しいという欠点があります。私が想像できる唯一の方法は、すべての秘密鍵のコピーをどこか別の場所に保管し、マスターサーバーのパスワードで暗号化することです。ユーザーがパスワードを忘れた場合、サーバーは秘密鍵を新しいパスワードで再暗号化できます。

この方法の問題は、何らかの形ですべてのアカウント情報を危険にさらしたマスターサーバーのパスワードがそのアカウントと妥協する場合です。システムを大幅に変更したり、セキュリティを損なうことなく、リセットパスワード方式を追加する方法はありますか?

+0

パスワード回復をサポートしていない、それは巨大なヘビの穴です。まず最初に、ユーザーを安全に確認する方法は?次に、保存された秘密鍵のセキュリティが攻撃者にとって大きな魅力であり、攻撃者がサーバーへの管理アクセス権を得ることを期待しています。 – zaph

+0

@zaph - 私はOPがパスワードのリセットとは対照的に、パスワード復旧について話しているかどうかはわかりません。 –

+0

はい、申し訳ありませんが、私が間違って言いました。パスワード回復は悪い習慣であり、ユーザーのパスワードを保存しないので、XDを実行できませんでした。XD – Luis

答えて

1

秘密鍵をエスクローする場合は、インターネットに直接接続されていない別のサーバーに秘密鍵を置く必要があります。次にエスクローされたキーへのすべてのアクセスをレート制限し、アラームします。 HSMも考えてみてください。

+0

私はエスクローが何であるか分かりませんが、別の方法がないと別のサーバーのアイデアがうまくいくと思います – Luis

+0

ここでは、別のパーティーが暗号化キーのコピーを管理しているということです。 – zaph

+0

これは私が見ることができる最高の解決策ですので、パスワードを忘れた場合でもシステムを再設計しなければならないかもしれません。良い解決策を見つけたら更新します – Luis

関連する問題