Websockets-security

提供:Dev Guides
移動先:案内検索

WebSockets-セキュリティ

プロトコルは、セキュリティ上の理由から設計する必要があります。 WebSocketは最新のプロトコルであり、すべてのWebブラウザーで正しく実装されているわけではありません。 たとえば、それらのいくつかはHTTPとWSの混在をまだ許可していますが、仕様ではその反対を示唆しています。 この章では、ユーザーが知っておくべきいくつかの一般的なセキュリティ攻撃について説明します。

サービス拒否

サービス拒否(DoS)攻撃は、マシンまたはネットワークリソースを要求したユーザーが使用できないようにします。 誰かがWebサーバーに無制限またはわずかな時間間隔で無限数のリクエストを行ったとします。 サーバーは各接続を処理できず、応答を停止するか、応答が遅くなりすぎます。 これは、サービス拒否攻撃と呼ばれます。

サービス拒否は、Webページをロードすることさえできなかったエンドユーザーにとって非常にイライラさせられます。

DoS攻撃はピアツーピア通信にも適用され、P2Pネットワークのクライアントが被害者のWebサーバーに同時に接続するように強制できます。

真ん中の男

例の助けを借りてこれを理解しましょう。

A がIMクライアントを介して友人 B とチャットしているとします。 第三者が、あなたが交換したメッセージを見たいと思っています。 だから、彼は両方の人と独立した関係を作ります。 彼はまた、あなたのコミュニケーションの見えない中間体として、人 A と彼の友人 B にメッセージを送信します。 これは、中間者攻撃として知られています。

中間者攻撃は、侵入者がパッケージを直接読み取ることができるため、暗号化されていない接続では簡単です。 接続が暗号化されると、攻撃者が情報を解読する必要がありますが、これは非常に困難です。

技術的な観点から、攻撃者は公開キーメッセージ交換を傍受し、要求されたキーを自分のキーに置き換えながらメッセージを送信します。 明らかに、攻撃者の仕事を難しくする堅実な戦略は、SSHをWebSocketで使用することです。

ほとんどの場合、重要なデータを交換するときは、暗号化されていないWSではなく、WSSの安全な接続を選択します。

XSS

クロスサイトスクリプティング(XSS)は、攻撃者がクライアント側のスクリプトをWebページまたはアプリケーションに挿入できる脆弱性です。 攻撃者は、アプリケーションハブを使用してHTMLまたはJavascriptコードを送信し、クライアントのマシンでこのコードを実行させることができます。

WebSocketネイティブ防御メカニズム

デフォルトでは、WebSocketプロトコルは安全であるように設計されています。 現実の世界では、ユーザーはブラウザの実装が不十分なために発生する可能性のあるさまざまな問題に遭遇する可能性があります。 時間が経つにつれて、ブラウザベンダーは問題をすぐに修正します。

SSH(またはTLS)を介した安全なWebSocket接続が使用される場合、追加のセキュリティ層が追加されます。

WebSocketの世界では、主な懸念事項は安全な接続のパフォーマンスです。 最上部にはまだ追加のTLSレイヤーがありますが、プロトコル自体にはこの種の使用のための最適化が含まれており、さらにWSSはプロキシを介してよりスムーズに動作します。

クライアントからサーバーへのマスキング

WebSocketサーバーとWebSocketクライアント間で送信されるすべてのメッセージには、マスキングキーという名前の特定のキーが含まれています。 仲介者がWebSocketに準拠していない場合、メッセージは影響を受けません。 WebSocketプロトコルを実装するブラウザは、マスキングを処理します。

セキュリティツールボックス

最後に、WebSocketクライアントとサーバー間の情報の流れを調査し、交換されたデータを分析し、起こりうるリスクを特定するための便利なツールを提供できます。

ブラウザ開発ツール

Chrome、Firefox、およびOperaは、開発者のサポートという点で優れたブラウザーです。 それらの組み込みツールは、クライアント側のやり取りとリソースのほぼすべての側面を判断するのに役立ちます。 セキュリティの目的で大きな役割を果たします。