3

ブラウザ内のデータを暗号化したいとしましょう (JavaScript 経由、PGP を使用)。キーをブラウザー (LocalStorage) に保存するのは保存されないため、PGP 暗号化/復号化を提供するYubiKeyのような外部デバイスにキーを保持したいと考えています。

したがって、ユーザーは秘密のテキストを書き込み、YubiKey を差し込み、ボタンを押すと、秘密のテキストが YubiKey に送られ、暗号化されます (暗号化のキーは YubiKey に残り、暗号化されたテキストを返します。復号化についても同じです。 .

そのようなことは技術的に可能ですか?そうでない場合、暗号化用のキーを他にどこに保管しますか?

4

1 に答える 1

0

現在、ブラウザを使用してそのようなデバイスにアクセスする方法はありません。このような機能を追加する計画はいくつかありますが、まだ編集者の下書き段階であるため、標準としてリリースされるまでには時間がかかる可能性があります。もちろん、すべてのブラウザーが標準になったときに、その機能をサポートしているとは限りません。

あなたの質問に関しては、本当に適切な保護が必要な場合は、キーをサーバーに保存してみてください。

キーが初めて生成されるとき、ユーザーはサーバーによって生成されたパスワードとランダムな GUID を使用して一種のアカウントを作成できます (サーバー上に二重の GUID が存在しないようにするため - ほとんどチャンスがないことはわかっています)そのような状況が発生するのを防ぎますが、追加の保護の優れた層でもあります)。GUID をクライアント側 (たとえば、localStorage など) に保存して、ユーザーに毎回プロンプトが表示されないようにすることができます。localStorage がクリアされた場合に備えて、キーをディスクのどこかに保存する必要があることに注意してください。次に、アカウントが作成されると、キーは (https 経由で) サーバーに安全に送信され、キーの名前は生成された GUID になります。

アカウントが作成され、サーバーからキーを受け取りたい場合、ブラウザーは ajax リクエストを行う必要があります。localStorage に存在しない場合、ユーザーは自分のパスワードとキー ID (GUID) を提供する必要があります。サーバーが keyID とパスワードを照合すると、キーが返されます。パスワードと受け取ったキーを使用して、テキストを復号化できます。

于 2016-05-10T20:13:23.070 に答える