NETWORK SECURITY / SECURE DATAGRAMS
DTLSとは?
UDP・TLS・WebRTCの暗号化を体系的に理解する
公開日:2026-10-10
スマホのビデオ通話では音声を止めずに届けたい。一方、通信内容は盗聴されたくない。この両方を考える入口になるのがUDPとDTLSです。
身近な通信 → IP・TCP・UDP → 暗号化の役割 → TLS・DTLS → パケット構造 → WebRTCとSRTP → QUIC・IPsec・PPPの整理 → 操作ラボ → 導入時の設計。
1. どこで使う? ブラウザ通信と音声通話で考える
ネット通販で注文するとき、ブラウザのHTTPSは通信の内容を守ります。一方、音声・映像のやり取りは『多少のデータが遅れたり欠けたりしても、今の声を早く再生したい』という特性があります。こうした通信で広く使われる土台がUDP(User Datagram Protocol)です。
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| ネット通販やネット銀行 | HTTPSでWebサーバーとの通信を暗号化 | 一般的なHTTP/1.1・HTTP/2はTCP上のTLS。HTTP/3はQUICを利用 |
| ブラウザ同士の音声・映像通話 | WebRTCのSRTPがメディアを保護 | DTLS-SRTPでSRTP用の鍵を確立する。音声パケット自体を常にDTLSで包むわけではない |
| WebRTCのデータチャネル | SCTP over DTLSでデータを保護 | 共同編集やリアルタイムメッセージ交換などに利用可能 |
| IoTのセンサー通信 | UDP上のアプリケーション通信の保護にDTLSを検討 | 対応製品と設計によって採用方式は異なる |
| オンラインゲーム | 低遅延目的でUDPを使用することがある | ゲームだから必ずDTLSを使うわけではない。独自の暗号や別プロトコルも存在する |
2. IP・TCP・UDP――まず何を運ぶのか
通信を住所に例えると、IP(Internet Protocol)は宛先のIPアドレスを使ってパケットを届ける仕組みです。その上のトランスポート層で、TCP(Transmission Control Protocol)は順序と到達を管理するバイトストリームを、UDP(User Datagram Protocol)はメッセージ単位のデータグラム配送を提供します。
- アプリのメッセージをTCPのバイトストリーム、またはUDPデータグラムにする。
- IPパケットとしてルーターなどを経由する。途中で遅延・欠落・入れ替わりが起き得る。
- TCPなら受信側で再送や順序制御を行う。UDPは同じ保証を標準では行わない。
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| IP | 宛先アドレスを元にパケットを配送 | 暗号化を必ず提供するわけではない |
| TCP | 接続指向、順序制御、失われたデータの再送 | WebブラウザーのHTTP/1.1・HTTP/2など |
| UDP | メッセージ境界を保つ、順序・到達保証なし | リアルタイムメディア、DNSなど |
| TLS | 一般的にはTCPなど信頼できるストリーム上で暗号化・認証・完全性を提供 | HTTPS(HTTP/1.1・HTTP/2) |
| DTLS | データグラムを前提に暗号化・認証・完全性を提供 | UDPアプリ、WebRTCの鍵確立・データチャネル |
TCPとUDPの違いは『TCPは必ず速い/UDPは必ず安全性が低い』ではありません。どんな処理をトランスポート層が引き受けるかの違いです。UDP上でも上位のプロトコルが独自に再送や混雑制御を実装できます。
3. TLSとDTLSの名前を分解する
TLSはTransport Layer Security、DTLSはDatagram Transport Layer Securityの略です。Datagram(データグラム)は、区切りのあるメッセージを単位として送る性質を示します。『Dがつくと暗号強度が高い』のではなく、不確実な配送を前提に扱える形へ設計を変えたという意味です。
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| TLS 1.3 | 暗号化・改ざん検知・通信相手の認証など | RFC 8446。通常はTCP上のHTTPSに使われる |
| DTLS 1.3 | TLSに近いセキュリティ機能をデータグラム上で提供 | RFC 9147。アプリデータの配送順序・到達は保証しない |
| DTLS 1.2 | 旧世代のDTLS仕様 | RFC 6347。バージョンごとの詳細動作は異なる |
4. 『UDPのペイロード』はパケットのどこ?
Payload(ペイロード)は、あるプロトコルが運ぶデータ部分です。UDPヘッダーには送信元ポート・宛先ポート・長さ・チェックサムなどがあり、後続のペイロードにDTLSレコードを載せられます。『UDPを暗号化する』という略した言い方より、『UDPに載るアプリケーションデータをDTLSで保護する』という表現が正確です。
概念図です。実際のレコード構造はDTLSのバージョン・保護状態で異なります。
DTLSは通常、IPヘッダーやUDPヘッダーまで暗号化する仕組みではありません。IPパケット単位の保護を担う技術としてはIPsecがあります。この『保護の範囲』の違いが重要です。
5. DTLSの開始から暗号化まで:ノード図で理解
- クライアントがDTLSのハンドシェイクを開始する。
- 暗号方式・鍵共有・必要な認証情報などを交渉し、通信に使う鍵を導出する。
- 暗号化済みDTLSレコードをUDPデータグラムに載せ、改ざん検知と必要な再送攻撃対策を行う。
- パケットが失われても、通常のアプリデータをDTLSが必ず再送するわけではない。
暗号化は『データを読めなくする』機密性、通信中の変更を検出する完全性、鍵交換時などの相手確認に関わる認証の組合せです。相手を認証する具体的な方式はプロトコルと利用環境によって異なります。
6. なぜパケットの番号や再送対策が必要?
UDPのパケットは順番が逆になったり、複製が届いたりすることがあります。DTLSはレコードに関わる番号情報などを利用して保護と再送攻撃対策を行います。ただし、攻撃によるリプレイの検出と『届いた音声を並べ直して途切れなく再生すること』は別の問題です。
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| パケット損失 | 送ったデータグラムが届かない | DTLSだけでアプリケーションデータを必ず再送するわけではない |
| 順序入れ替わり | 3番の後に2番が届く | アプリ・メディア層が順序や再生時刻を扱う |
| リプレイ攻撃 | 過去に送った保護済みレコードを再度流す | DTLSのアンチリプレイ機構で検出・拒否できる構成がある |
| ハンドシェイク途中の損失 | 鍵確立の制御メッセージが届かない | DTLS 1.3ではACKや再送を使って回復を試みる |
7. WebRTCを分解する:音声とデータではDTLSの使い方が違う
ブラウザ同士のビデオ通話に使われるWebRTCには、通信相手を探すICE、音声や映像を扱うSRTP、アプリ向けのデータチャネルなど複数の技術があります。最も重要なのは、音声・映像はSRTPが保護し、DTLSはその鍵確立に利用されることです。
- シグナリングによって相手の接続情報や証明書フィンガープリントなどを交換する。
- ICEが通信可能な候補経路を決め、DTLSハンドシェイクを行う。
- DTLS-SRTPで共有した鍵を使い、SRTPパケットとして音声・映像を保護する。
- メッセージをデータチャネルに渡す。
- SCTPがメッセージの配送特性を扱い、DTLSが保護し、その下をUDPが運ぶ。
- 受信側でDTLSの保護を検証し、SCTPを通してアプリへ届ける。
8. 似た技術を横断整理:IPsec・QUIC・PPPoE・CHAP
通信の安全性は『どの層で、どのデータを、どんな方式で守るか』で整理すると混乱しません。特にQUICはUDPの上で動きますがDTLSそのものを使うわけではない点に注意しましょう。QUICはTLS 1.3のハンドシェイクを取り込み、パケット保護はQUIC自身の仕組みで実現します。
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| IPsec | IPレイヤーのパケット通信を保護 | 拠点間VPNなど。DTLSより下の層を扱う |
| TLS | 一般にストリームを保護 | HTTP/1.1・HTTP/2のHTTPS |
| DTLS | データグラム通信を保護 | WebRTCの鍵確立・データチャネルなど |
| QUIC + TLS 1.3 | UDP上で信頼性・多重化・暗号化通信を組み合わせる | HTTP/3。DTLSで包む方式ではない |
| PPP / PPPoE | ポイントツーポイント通信を規定・イーサネット上で運用 | インターネット接続方式の例。DTLSとは目的が異なる |
| CHAP | Challenge-Handshake Authentication Protocol | PPPなどのチャレンジレスポンス認証。通信全体をDTLSで暗号化する技術ではない |
# パケットを観察するときの識別例(概念)
IP → TCP → TLS → HTTP/2
IP → UDP → QUIC(内部でTLS 1.3を使う鍵確立・保護)→ HTTP/3
IP → UDP → DTLS → アプリケーションデータ
IP → UDP → SRTP(鍵確立にDTLS-SRTPを利用)上の例は各技術の関係を整理したもので、すべての通信がこの構造になるという意味ではありません。UDPペイロードに載るメッセージが何かを見て判断します。
9. 操作ラボ:損失・逆転・再送攻撃を試す
暗号化と配達保証を混同しないため、5つのメッセージを送信する模型を操作します。DTLSを選んでも欠落が残ること、TLS over TCPと見え方が異なることを体験してください。
INTERACTIVE NETWORK LAB
パケットの欠落・順序入れ替わりを試す
この教材は暗号処理を実行しません。UDPのデータグラム特性とDTLSの保護対象を理解する概念シミュレーションです。
STEP 1|送信アプリが5個のメッセージを作成
送信する順序は 1 → 2 → 3 → 4 → 5。リアルタイム通話なら各番号が短い音声のかたまりに相当します。
10. 設計・運用で確認する項目
| 技術 | 役割・対象 | 身近な例・留意点 |
|---|---|---|
| 認証 | 通信相手が本当に正しいか | 証明書・鍵の検証方法やフィンガープリント照合を設計する |
| 欠落・順序 | アプリがどの程度の損失を許せるか | 音声・センサー・制御命令では要求が異なる |
| 再送攻撃 | 過去のレコードの再投入をどう扱うか | アンチリプレイ機構、アプリの冪等性などを確認 |
| MTUと断片化 | UDPデータグラムの大きさ | 経路MTUを超えると配送が不安定になる可能性 |
| DoS耐性 | ハンドシェイク処理や送信元偽装 | DTLSの対策とネットワークのレート制限を併用 |
| バージョン | DTLS 1.2 / 1.3の対応状況 | 運用製品と相互接続先の仕様を確認 |
DTLSを採用するだけで『通信が必ず届く』『低遅延が保証される』『通信相手の身元が無条件で証明される』わけではありません。ネットワークとアプリケーションの要件を別々に定義することが必要です。
11. よくある疑問
A. DTLS 1.3はTLS 1.3を基に設計され、概ね同等のセキュリティ保証を目指します。ただしデータグラム特有の順序や再送の性質には違いがあります。単純な強弱ではありません。
A. UDPヘッダーではなく、主にUDPペイロード上のDTLSアプリケーションデータを保護します。
A. いいえ。DNS、オンラインゲーム、HTTP/3などはそれぞれ用途と保護方式が異なります。
A. WebRTCのメディア通信では通常SRTPで映像・音声パケットを保護し、DTLS-SRTPで鍵を確立します。データチャネルではSCTP over DTLSという構成を使います。
A. 違います。QUICはUDP上の別のトランスポートプロトコルで、TLS 1.3を取り込んだ暗号化方式を持ちます。
参考仕様・公式資料
プロトコルの細部はバージョンによって異なります。実装前には対応バージョンのRFCとアプリケーション固有の仕様を確認してください。
- RFC 9147: The Datagram Transport Layer Security (DTLS) Protocol Version 1.3(IETF / RFC Editor)
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3(IETF / RFC Editor)
- RFC 9001: Using TLS to Secure QUIC(IETF / RFC Editor)
- RFC 8835: Transports for WebRTC(IETF / RFC Editor)
- RFC 5764: DTLS Extension to Establish Keys for SRTP(IETF / RFC Editor)
- DTLS (Datagram Transport Layer Security)(MDN Web Docs)
- RFC 8261: Datagram TLS Encapsulation of SCTP Packets(IETF / RFC Editor)