2012-10-06 21 views
7

私の状況:(!)ブラウザベースの暗号化/復号化の秘密鍵でブラウザキーストアから

  1. 医療スタッフは、いくつかのデータベースに格納するために、Webブラウザに患者の機密データを入力したいと後で再度検索します。

  2. これらのデータは、医療スタッフ以外の誰にも見られません。つまり、サーバーに転送される前に、一部のシークレットトークンを使用して暗号化する必要があります。また、ITスタッフ(サーバー/データベースへのアクセス権を持つ)も他の誰も秘密トークンなしでそれを復号化できないようにすることも意味します。

  3. 一度エクスポートしてインポートするいくつかのトークン(秘密鍵など)を除いて、クライアントマシンに追加のソフトウェアをインストールする必要はありません(トークンが失われた場合、データにアクセスできなくなります)。データアクセスを許可するすべてのブラウザに追加します。

だから私の質問は次のとおりです。

は(例えば、JavaScriptを使用して)クライアント側でデータを復号化する簡単なブラウザ間で交換することができ、いくつかの秘密のブラウザのトークンを使用して/暗号化する方法はあります(つまり、X.509証明書と同様にエクスポート/インポートされます)?

そうでない場合、どの代替ソリューションが可能でしょうか?条件1および2は必須であるため、必要に応じて条件3のみを変更することができます。しかし、クライアント側では、インストール作業をできるだけ少なくする必要があります。

EDIT:SSLは明らかにこの質問の答えの一部です!

+2

私はあなたのために3つの手紙を持っています:S、S、L. –

+1

いいえ、私の質問carefeullyをお読みください。 – Thomas

+0

私は答えはありませんが、おそらくOAuthがどのように働いているかを見てみると、あなたにシームアイデアが与えられるかもしれません。 –

答えて

5

Web-browser encryption of personal health informationをご覧ください。「抽象」セクションで同じ問題が説明されているようです。ただし、暗号鍵を生成する「パスコード」は共有する必要があります。これにより、内側のスタッフを区別することはできません。

我々は がデータを入力する 者のWebブラウザで暗号化する患者を識別するデータを可能にするリモートデータ入力のためのシステムを説明します。これらのデータは、データセンターのスタッフによってサーバ で解読することはできませんが、データまたはその代理人を入力した人 によって解読することができます。 を解決するためにこのシステムを開発しましたが、機密情報が でデータベースに格納され更新されている状況で、 が適用され、 にはなりません意図的にアクセス権を与えられた人を除き、誰でも閲覧することができます。

+0

あなたの提案をありがとう!原理的には機能します。同様の方法でhttp://code.google.com/p/memwordsに触発されて、すでに同様の実装が見つかりました。 – Thomas

+0

@トーマス1つの鍵を取得する方法は、boxcryptorが使用することがわかった方法です。いくつかのデータが作成されると、ユーザー側(この場合はブラウザ)に対称キーが作成され、そのユーザーが非対称公開キーを使用して暗号化され、サーバーに送信されます。そのユーザーがそのデータを共有したい場合、その対称鍵を取得し、その非対称公開鍵を使用して暗号化し、その対称鍵の独自の(および他の)暗号化に加えてサーバーに格納します。 ...(下に続き) –

+0

アクセス時に、ユーザーは公開鍵で暗号化された鍵をダウンロードし、解読し、対称鍵を使用して主データを解読します。これには依然として、対称鍵がアクセス権を持つすべての人に公開されている必要がありますが、すべてが異なる非対称鍵ペアを使用することができます。ユーザーがアクセスから削除された場合、データは新しいキーで再暗号化されなければなりません。 –

3

ブラウザにプレーンテキストを暗号化するAES暗号化のJavaScript実装があります。これらのツールの周りに何かを構築すると、サーバー側は暗号化されたテキストのみを保存し、パスフレーズは持たないでしょう。

http://www.fourmilab.ch/javascrypt/

は、クライアント側での余分なインストールを必要とすべきではない、おそらくユーザーエクスペリエンスの権利を取得するためのいくつかの開発努力が必要になります。

関連する問題