web-dev-qa-db-ja.com

DTLSとTLSの違い

  1. TLSとDTLSの機能的な違いは何ですか?
  2. TLSとDTLSを使用する場合、アプリケーションのフロー/ネゴシエーションはどのように異なりますか?
30
Pranav

基本的にDTLSは、データグラム(UDP、DCCPなど)でTLSを構築することです

DTLSは、DTLSが2つの問題を解決する必要があることを除いて、意図的にTLSに似ています:パケットの損失と並べ替え。 DTLSの実装

  1. パケット再送信
  2. ハンドシェイク内のシーケンス番号の割り当て
  3. リプレイ検出。

詳細については、 RFC 6347 を参照してください。

29
Yu Hao

DTLSは、TLS over UDP(データグラムプロトコル)の実装です。ウィキペディアごとに、TLSはTCPを使用し、DTLSはUDPを使用するため、すべての古典的な違いが適用されます。 UDP通信は、順序付け、配信の信頼性、またはフロー制御のないパケットのストリームとして存在します。データグラムプロトコルを使用するアプリケーションは、これらの懸念を内部で処理できることを確認する必要があります。

https://en.wikipedia.org/wiki/Transport_Layer_Security#Applications_and_adoption

http://www.diffen.com/difference/TCP_vs_UDP

9
Frank Thomas

DTLSとトランスポート層セキュリティ(TLS)プロトコルには重要な違いがあります。アプリケーションプログラマは、他の回答が存在しない/存在しないことを認識する必要があります。

DTLSプロトコルは、データグラムプロトコルの通信プライバシーを提供します。この執筆時点の現存するトップ評価の回答とは反対に、 (archive) 、DTLSはnotan TLS over UDP(または一般的なデータグラムプロトコル)の実装。これには、非常にTLSに似たhandshakeの実装が含まれており、データグラムプロトコルで動作するように変更されています。実装は、パケットの並べ替えと損失の問題を処理しますが、DTLSハンドシェイク(および暗号選択)に使用されるパケットの場合はonlyです。言い換えれば、これらパケットが配信する "フライト" areは確実に配信されます。ただし、ペイロード(アプリケーションデータ)を含むDTLSパケットは、それらをカプセル化するDTLSパケット(通常はUDP)よりも確実にペイロードを配信しません。

さらに、DTLSプロトコル(v1.2)はTLSプロトコル(v1.2)から派生し、claimsは「同等のセキュリティ保証を提供」しますが、it notです。 2 2013年に、研究者はDTLS実装とDTLSプロトコル自体の両方で、少なくともGnuTLSとOpenSSL実装で修正された主要なセキュリティ上の欠点を特定しました。 2

最後に、OPは、TLSとDTLSを使用しているときのアプリケーションフローの違いを尋ねます。 TLSは、エンドツーエンドで認証された暗号化を使用して、データストリームを確実に配信することを目的としています。 DTLSは、エンドツーエンドで認証および暗号化されたアプリケーションデータの配信を目的としていますが、すべてのアプリケーションデータの配信が保証されている場合に達成できるよりも低いレイテンシを備えています。これが、遅延よりも損失が重要でないストリーミングアプリケーションを保護するためにDTLSが使用される理由です。 VoIP、ライブビデオフィード、およびMMOゲーム。

PS:DTLS 1.3は開発中です。 3

2
Matthew Elvey

1つの違いは、UDPを介しているため、ストリーム暗号が許可されないことです。

4.1.2.2。ヌルまたは標準ストリーム暗号

DTLS NULL暗号は、TLS 1.2 NULL暗号とまったく同じように実行されます。

TLS 1.2で説明されている唯一のストリーム暗号は、ランダムにアクセスできないRC4です。 RC4はDTLSと共に使用してはなりません。

1
AnilRedshift