14

現在、WebSocket を使用するブラウザベースのマルチプレイヤー ゲームを開発しています。私の最優先事項は、低遅延と、幅広いプラットフォームおよびネットワーク設定との互換性です。

しかし、私はパスワード認証を行っています。チャット機能もあり、プレイヤーのプライバシーを重視しています。そこで、TLS 経由の WebSocket に切り替えることで、セキュリティとプライバシーを改善できるのではないかと考えました。私の質問は次のとおりです。

  1. Web ソケット接続の TLS 暗号化はパフォーマンスにどのように影響しますか? 非常に小さいが非常に重要なメッセージを頻繁に送信していることに注意してください。
  2. wss:// は、ws:// が動作する環境で動作しますか? または、フォールバック メカニズムが必要ですか?

それとも、私のユースケースでは、アプリケーション レベルで暗号化を実装する方が賢明でしょうか?

4

2 に答える 2

15

WSS は、プロキシやその他の仲介者が WebSocket を理解していないか積極的にブロックしていないため、WS よりもはるかに広いネットワーク環境で動作します。

TLS によって生じる追加の遅延については、とにかく WAN 接続から得られる遅延 (約 10 ~ 250 ミリ秒の RTT) に比べれば、取るに足らないものだと思います。

帯域幅に関しては、TLS はペイロードの暗号化に対称暗号を使用するため、オーバーヘッドはないと予想されます。

TLS は明らかに CPU サイクルを消費しますが、今日の CPU パワーを考えると、多くの場合問題にはなりません。

独自の暗号化を実装しても意味がありません..エンドツーエンドのプライバシーを気にしない限り..しかし、サーバー側では(他のクライアントへのディスパッチ以外に)何もできません。

要するに、WSS を使用します。

WebSocket のオーバーヘッドに関するブログ記事を書きました (TLS と非 TLS との比較を含む): http://tavendo.com/blog/post/dissecting-websocket-overhead/

于 2012-09-11T10:21:24.280 に答える
1

私が数年前にパフォーマンス調査を行ったところ、インターネット上の SSL はプレーンテキストよりも 3 倍しか遅いことがわかりませんでした。ハードウェアの速度が向上したため、それ以降はギャップが狭くなっていると思います。

SSL が既に存在する場合に独自の暗号化を実装することはお勧めしませんSSL よりも高速であると信じる理由はなく、SSL には存在しないセキュリティ上の欠陥が導入されることはほぼ確実です。

于 2012-09-11T07:40:01.960 に答える