ユーザー属性、ハッシュされたソルトパスワード、RSA公開鍵、および暗号化されたRSA秘密鍵(実際のソルト+パスワード)を管理するユーザーシステムがあります。
RSAキーは、ユーザーのサインアップ中、またはパスワードがリセットされた場合(ユーザー管理者またはパスワードを忘れた場合)に生成されます。これは、秘密キーがパスワードなしで本質的に失われるためです。
現在、RSAキーはクライアントマシンで生成され、パスワードで暗号化され(ブラウザのメモリにセキュリティで保存されます)、サーバーに返送されてデータが保存されます。
しかし、ここで、RSAキー生成のために他に2つのオプションを作成したいと思います。これらは両方とも、ローカルシステムで(cronを介して)処理されるか、システムが(対称暗号化チャネルを介して)別のサーバーにメッセージを送信してキーを作成し、それをに送り返すメッセージキューシステムで機能します。ストレージのためのシステム。
これらの方法はRSA生成のハードビットを実行するための有効な安全な方法ですが、私の現在の難問は、そのユーザーの計算された秘密鍵を保護する方法です。秘密鍵をパスワードで保護するということは、パスワードが必要であることを意味します。他のメカニズムでは、鍵をコードで使用できるようにするか、両方の当事者(ユーザーとシステム)が使用できる暗号化鍵を一時的に保存する必要があります。 。
最初は、システムRSAキーペアを使用してユーザーパスワードを保存するのがよいと考えていました。新しいキーが生成されると、ユーザーパスワードが取得され(ストアから削除され)、新しい秘密キーを暗号化して保存するために使用されます。ユーザーと。ただし、そのためには、システムが秘密鍵にアクセスできる必要があります。これにより、ハッカーはユーザーのパスワードにアクセスできるようになります。
上記の方法は、コマンドを別のセキュリティで保護されたサーバーに(物理的にも)送信する場合に機能する可能性があります。これは、内部秘密鍵を格納する唯一のサーバーである場合、そのサーバーがハッキングされた場合にのみアクセスできるためです。
ハッカーが完全なソースとデータベースにアクセスできたとしても、解読できないユーザーの秘密鍵を処理して保護する方法について誰かが提案を持っていますか?