2017-06-19 10 views
1

DTLSを使用するアプリケーションを作成しようとしていますが、音声チャットなどを考えてみましょう。
生のサウンドデータパケットが失われている間にDTLSを動作させることはできますか?
特定のパケットが失われ、DTLSセッションが正常に機能している可能性があります。これは、UDP(輻輳が発生した場合のTCP遅延)を使用するポイントを奪った損失パケットを再送信することなく行われます。
サウンドデータの一部が失われても、サウンドはまだ聞こえます。
通信はリプレイ攻撃に対して安全ですか?パケットが失われてもDTLSは機能し、安全ですか?

答えて

3

はい、アプリケーションデータパケットがネットワークによって失われたり並べ替えられても、DTLSは引き続き機能します。その場合、それらのパケットの平文データも失われ/並べ替えられ、平文UDPで見られる動作に正確に一致します。

DTLSは、ハンドシェイクフェーズ中に再送を実行します。これは、暗号演算に失われたパケットが必要ないためです。しかし、これは交換機の最初の数パケットにのみ影響します。

DTLSは、重複したパケットの到着を引き起こす攻撃者(またはルーティングエラー)が単一の平文パケットを生成するように、重複が破棄されるようにリプレイ保護を提供します(https://tools.ietf.org/html/rfc6347の3.3節を参照)。リプレイの保護は、その仕様に応じてオプションですが、私が知っているすべての実装はそれを提供します。

+0

したがって、DTLSセッション内のパケットが失われた場合、別のパケットが遅れて到着し、問題なく処理できますか?セッション中に1つのパケットが失われた場合は、新しいセッションを作成する必要がありますか?私は、多くのtls暗号はcbcやgcmのようなカウンタに依存しているため、そう言います。 –

+0

新しいセッションは必要ありません。単一のアプリケーションデータグラムだけが失われます。 –