web-dev-qa-db-ja.com

HTML5 Webソケットに依存する安全なチャットWebアプリケーションを作成することは可能ですか?

HTML5とJavaScriptだけを使用して安全なチャットWebアプリケーションを作成することはできますか?

サーバーがメッセージを保存せず、Webソケットを使用してメッセージをリレーするだけで、SSLを介して送信が行われる場合、どのようなセキュリティホールが存在する可能性がありますか?

これを尋ねるきっかけとなったのは、なぜCryptocatがブラウザプラグインとして実装されたのか疑問に思っていたからです。純粋なHTML5ソリューションよりも安全であると思われますが、なぜですか?

5
John

実際、これはCryptoCatをブラウザのプラグイン/拡張機能に移動することとは関係ありません。 SSLとはevenとはまったく関係ありません。それを念頭に置いて、スティーブンの答えはやや誤解を招くものです。私はそれに対処しようとします。 CryptoCatはJavaScriptとHTMLです

十分に注意してください、SSLがその仕事をしていて、正規のCryptoCatサーバーに接続していることを100%確信していると仮定します。 Nadim(CryptoCatの背後にいる男)が法律によって将来の会話を明らかにすることを余儀なくされた場合、彼は単に(IPから)接続したことを検出し、ブラウザーにカスタムキーを使用させ、そのために自分に与える不正なJavaScriptを送信します会話を解読してFBI、NSA、CIAなどに提供する機能.

この形式のセキュリティはホストベースのセキュリティと呼ばれ、サービスプロバイダーに完全な信頼を与えます。はい、あなたのものは暗号化されていますが、暗号化/復号化ロジックはサービスプロバイダーからのものであり、彼らはあなたが望むものは何でもあなたに送ることができます。 CryptoCat Schneierから批判されました と他のセキュリティ研究者。

コードをブラウザープラグインに移動することで、コードを初めてダウンロードするときにのみソースを信頼する必要があります。通信は引き続きユーザーとサーバーの間で行われ、暗号化と復号化は引き続きブラウザーで行われ、コードはJavaScriptとHTML5のままです。 ここでの唯一の違いは、次にCryptoCatサーバーに接続するときに、サーバーが送信するコードを信頼する必要がないことです。ブラウザーのコードはいつでも監査でき、いつでも確認できます。

Patrick Ballは次のように書いています この件に関する非常に興味深い記事 ;ホストベースのセキュリティの概念とその他の関連する問題について説明します。この問題の全体像を理解するのに役立ちます。

あなたの質問に直接答えるために、はいそれは可能です。 CryptoCatは良い例です。

11
Adi

基本的に、この種のことを実現する唯一の方法は、JavaScriptとHTMLをブラウザーに送信することです。

しかし、固有の問題は、システム全体のセキュリティがブラウザへのserving HTMLとJavascriptに完全に依存していることです。これは、SSLと認証局システムに要約されます。せいぜい、純粋にHTMLおよびJavascriptアプリケーションのセキュリティは、私たちが持っているCAシステムのセキュリティよりも優れていません。CAシステムを利用できれば(これが行われています)、そのようなチャットのセキュリティを破ることができます。応用。

1
Stephen Touset