アットウィキロゴ

DTLS (Datagram Transport Layer Security) プロトコル詳細解説


概要

DTLSは、UDPなどの信頼性のないデータグラムプロトコル上でTLSと同等のセキュリティを提供するプロトコルです。2006年にRFC 4347として標準化され、現在はRFC 6347(DTLS 1.2)とRFC 9147(DTLS 1.3)が最新版として定義されています。

TLSとの主な違い

  1. パケットロス対策
    • メッセージの再送メカニズムを実装
    • タイムアウト処理の導入
    • メッセージシーケンス番号の追加

  1. リプレイ攻撃対策
    • シーケンス番号による重複パケットの検出
    • スライディングウィンドウによる受信パケット管理

  1. メッセージフラグメンテーション
    • 大きなメッセージを適切なサイズに分割
    • 再構築メカニズムの実装

セキュリティ機能


1. ハンドシェイクプロセス

Client                                   Server
ClientHello             ------>
                       <------     HelloVerifyRequest
ClientHello             ------>
                                          ServerHello
                                         Certificate*
                                   ServerKeyExchange*
                                  CertificateRequest*
                       <------      ServerHelloDone
Certificate*           ------>
ClientKeyExchange
CertificateVerify*
[ChangeCipherSpec]
Finished               ------>
                                   [ChangeCipherSpec]
                       <------             Finished

2. 提供される保護機能

  • 機密性: AES-GCM、ChaCha20-Poly1305などの暗号化
  • 完全性: HMAC、AEAD
  • 認証: 証明書ベース、PSK
  • 前方秘匿性: (EC)DHE、X25519

一般的なユースケース

  1. WebRTC
    • ブラウザ間のP2P通信
    • ビデオ/音声ストリーミング

  1. IoTデバイス
    • センサーデータの送信
    • リアルタイム制御通信

  1. オンラインゲーム
    • リアルタイムゲームデータ
    • UDP based通信の保護

セキュリティ上の考慮事項

  1. 設定推奨事項
    • 最新のDTLS 1.3の使用を推奨
    • 強力な暗号スイートの選択
    • 適切な証明書管理

  1. 既知の脆弱性対策
    • リプレイ攻撃対策の確認
    • DoS攻撃対策の実装
    • Cookie検証の適切な実装

  1. パフォーマンス最適化
    • MTU サイズの適切な設定
    • タイムアウト値の調整
    • 再送パラメータの最適化
最終更新:2026年10月14日 15:09