2012-02-22 2 views
2

私は、Webベースの安全なパスワード管理および共有ユーティリティを、学問的な練習として、またそれを十分に理解し、安全に使用することを試みています。「ホスト証明」パラダイムを使って情報をどのように共有できますか?

I本当に暗号化/復号化ではJavaScriptを使用してクライアント側で行われ、唯一の暗号化された情報は、これまでずっとPassPackまたはClipperzのように、ブラウザを残している「ホスト性を保証してアプリケーションのアイデアのように。私が理解できないことは、Passpackがどのように人々がパスワードを共有できるように管理しているかです。プレーンテキストや暗号鍵がサーバ経由で他のユーザに転送されることなく、どのようにしてそれを行うことができないのか、そのプロセスが本質的に「ホストプルーフ」のパラダイムを壊すことはわかりません。

誰も私にこの解決策を教えてもらえますか?

+0

パスワードをサーバに平文で保存できる場合は、各クライアントに暗号鍵の公開部分を送信させ、その暗号化されたパスワードを暗号化して転送することができます。共有者と受取人が実際の鍵交換をしなくても、あなたがうまくいくかどうかはわかりません。 – millimoose

+0

プログラミングに関する質問ではありませんが、これが[暗号](http://crypto.stackexchange.com/)用であれば100%確信しているわけではありません。暗号やその他のフォーラムも試してみることをお勧めします。 –

+0

ああ、私は暗号については知らなかった。提案をありがとう、私は間違いなくそこに投稿します。私はおそらく、これは本当にアーキテクチャ上の質問であるため、暗号が正確に正しいわけではないことに同意しますが、それは価値があります。 – Travis

答えて

1

有用で安全なシステムを作成するためには、少なくとも3つの大きな障害があります。

まず、ユーザーは自分の秘密鍵をWebインターフェイスに入力する必要があります。 RSAキーの長さは通常1024ビット以上ですので、比較的効率的なBase64エンコーディングを使用しても(使用する文字の多くが視覚的に似ているため、おそらく悪い選択です)、ユーザーは無意味な文字を171文字入力する必要があります。キーボードの場合、これは面倒でエラーが起こりやすいでしょう。

第2に、クライアントが実行するjavascriptコードは、Webサーバーからのものです。クライアントで暗号化と復号化を行うことで、攻撃者がサーバー上の平文パスワードにアクセスするリスクを回避しようとしています。しかし、攻撃者がサーバに保存されている平文のパスワードにアクセスできる場合、おそらくサーバが送信するjavascriptコードを変更することもできます。攻撃者がjavascriptコードを変更できる場合、変更されたコードを使用してユーザーの秘密をキャプチャできます。

最後に、クライアントコードを実行するハードウェアとソフトウェアのセキュリティがあります。ユーザーが使用するハードウェアとソフトウェアが侵害された場合(例えば、キーロガーを使用して)、シークレットをそこに取り込むことができます。安全のために、ユーザーは彼が制御するコンピュータしか使用できません。管理しているコンピュータのみを使用できる場合、Webベースのシステムの従来のクライアント/サーバーシステムの利点の多くは否定されます。

これらの問題に取り組むことができれば、Inerdialとして公開鍵をサーバに格納することは良い選択と思われますが、ユーザがサーバから送信された公開鍵実際には、攻撃者ではなくパスワードを与えたい人によって制御されます。

ネイトローソンは、his Google Tech Talkのjavascript暗号化について言及しています。

+0

私はこれらの問題(画面キーボードなど)を修正したり、その問題を解決しようとしました。しかし、私はJavascriptの他のいくつかの欠点を認識しています。 Adobe Flex/Airでクライアント側のコードを実行するとどう思いますか?私はFlexに関しては強くはないが、送信/ダウンロード時に検証できるコンパイルされたクライアント側コードの請求書に合っているようだ。 – Travis

+0

なぜHTTPS経由のJavascriptよりも検証可能なのか分かりません。 –

+0

@SamuelEdwinWard:これはチェックサムが可能な単一のオブジェクトで、JavaScriptはサイトのどこにでも*置くことができます。 –

関連する問題