次の例を想定します。
ユーザーが個人データを登録して入力できるオンライン サービスを利用しています。今、これらのデータを暗号化したい。私は秘密鍵 Pr1 と公開鍵 Pu1 を持っています。
- ユーザーがオンライン サービスでパスワードを使用してログインする
- ログインパスワードを秘密鍵の形式に合わせて変換 = Pr2
- Pr2から公開鍵Pu2を取得
- ユーザーがデータを入力して、データベースにオンラインで保存します
- ユーザーが入力したデータを Pu1 で暗号化し、 --recipient Pu2を複数の異なるキーで暗号化するように追加しますか?
- これで、暗号化されたデータをオンライン データベースからローカル マシンにコピーし、ローカル Pr1 でデータを復号化できます。
- ユーザーは、ログインするたびに Pr2 に変換される通常のパスワードを使用して、既に入力したデータをオンラインで復号化できますが (ステップ 2a)、セッション全体で有効です。
そのアプローチでは、攻撃者がすべてのファイルとデータベースを使用してサーバーにアクセスできたとしても、データを復号化することはできませんよね? 確かに、ブルート フォース攻撃は可能ですが、試行ごとに秘密鍵を計算する必要があるため、時間がかかるはずです。ただし、秘密鍵がオンラインで保存されたり、交換する必要があったりすることはありません。したがって、これはかなり節約できるはずです。
ここで質問:このアプローチが安全で実用的である場合、これらの機能を持ち、いくつかの優れたセキュリティ標準を使用する類似またはより優れたものが既に存在するはずです。それは何ですか?