2012-09-11 27 views
12

私は現在、WebSocketを使用しているブラウザベースのマルチプレイヤーゲームを開発中です。私の最優先事項は待ち時間が少なく、幅広いプラットフォームとネットワーク設定との互換性です。安全なwebsocketと安全でないwebsocketのコスト

しかし、私はパスワード認証を行っています。私はチャット機能も持っているので、私のプレーヤーのプライバシーは重要だと思っています。だから、TLS経由でWebSocketに切り替えることで、セキュリティとプライバシーを向上させることができると考えました。私の質問は次のとおりです:

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

または、アプリケーションレベルで暗号化を実装するのが賢明でしょうか?

答えて

11

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

TLSで導入されるレイテンシについては、とにかくWAN接続からのレイテンシ(およそ10-250ms RTT)と比較して重要ではないと思います。

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

TLSは明らかにCPUサイクルを消費しますが、今日のCPUパワーでは問題にならないことがよくあります。

エンドツーエンドのプライバシーを気にしない限り、独自の暗号化を実装することは理にかなっていませんが、(他のクライアントへのディスパッチに加えて)サーバー側では何もできません。

要するに、WSSに行ってください。 http://tavendo.com/blog/post/dissecting-websocket-overhead/

1

インターネットでのSSLが平文よりわずか3倍遅かったことを数年前に知りました。それ以来、ハードウェアの速度の向上により、このギャップが狭まったと私は思う。

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

+3

3倍遅く、帯域幅に関するやレイテンシについて:

私はWebSocketのオーバーヘッド(税込非TLS対TLSとの比較)についてのブログ記事を書かれていますか?帯域幅はそれほど重要ではありませんが、遅延はあります。最初のSSLハンドシェイクは測定の一部でしたか?その時は、ログイン時に一度しか行われないので、私にとっては問題ではありません。 – Philipp

+0

@Philippスループット(単位:バイト/秒)。ハンドシェイクが含まれ、転送中にランダムな間隔で繰り返されました。 – EJP