2016-05-10 4 views
0

ブラウザ内で(PGPを使用してJavaScriptを使用して)データを暗号化したいとします。ブラウザ(LocalStorage)に鍵を保存するのではなく、PGP暗号化/復号化を提供するYubiKeyのような外部デバイスに鍵を保存したいと考えています。Javascript/Browser enryption:Yubikeyを使用

ユーザが秘密のテキストを書き、YubiKeyのプラグを差し込み、何らかのボタンを押すと、秘密のテキストがYubiKeyに送られ、暗号化されます(暗号化キーはYubiKeyに留まり、 。復号化に同じ。

その技術的には可能のようなものですか?ない場合は、他にどこ私は、暗号化のための鍵を続けるだろう?

答えて

0

現在のブラウザを使用して、このようなデバイスにアクセスする方法はありません。がありますそのような機能を追加するには、plansを編集してもまだエディタのドラフト段階にあるため、標準としてリリースするまでには時間がかかることがあります。その機能が標準になるとその機能を有効にします。

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

鍵が初めて生成されたとき、ユーザはサーバによって生成されたパスワードとランダムなGUIDを持つアカウントの種類を作成することができます(サーバに重複GUIDが存在しないことを確認する - そのような状況が発生する可能性はほとんどありませんが、追加の保護の良い層でもあります)。クライアント側(たとえばlocalStorage)にGUIDを格納することができます。そのため、ユーザーに毎回メッセージが表示されることはありません。 localStorageがクリアされた場合、鍵はディスク上のどこかに保存する必要がありますが、ユーザに注意する必要があります。その後、アカウントが作成されると、鍵は安全に(https経由で)サーバーに送信され、鍵の名前は生成されたGUIDになります。

アカウントが作成され、サーバーからキーを受け取りたい場合、ブラウザはajaxリクエストを行う必要があります。ユーザーはパスワードとkeyID(GUID)を入力する必要がありますlocalStorageサーバーがkeyIDとパスワードを一致させると、キーを返します。パスワードと受信したキーを使用してテキストを復号化することができます。

関連する問題