videocalling
Illustration of DTLS(データグラムトランスポート層セキュリティ) in video calling

DTLS(データグラムトランスポート層セキュリティ)

プロトコル

UDPベースのアプリケーションにプライバシーとデータ完全性を提供するセキュリティプロトコル。

DTLSとは?

データグラムトランスポート層セキュリティ(DTLS)は、データグラムベースのアプリケーション(UDPで動作するものなど)にセキュリティを提供する通信プロトコルです。HTTPS Webサイトを保護するのと同じTLS(トランスポート層セキュリティ)プロトコルに基づいていますが、信頼性のないトランスポート接続に適応されています。

UDPに特別なセキュリティが必要な理由

標準のTLSは信頼性のあるデータストリーム(TCP)を必要とします。パケットが失われると、TLSは再送信を待って停止します。これはリアルタイムビデオにとって許容できない遅延を引き起こします。

DTLSはパケットロスと並べ替えを許容することでこの問題を解決します。いくつかのパケットが失われても、ハンドシェイクや暗号化コンテキストが壊れないため、リアルタイムメディアに最適です。

WebRTCでの役割

WebRTCでは、DTLSは必須です。主に2つの目的で使用されます:

  • 鍵交換(SRTP): DTLSはハンドシェイクを実行して、SRTP(セキュアリアルタイムトランスポートプロトコル)が使用する暗号化鍵を安全に交換します。鍵の交換後、実際のビデオ/音声データはSRTPを介して送信されます。
  • データチャネル: 非メディアデータ(SCTPを介して送信されるチャットメッセージやファイル転送など)は、DTLSパケット内に直接カプセル化されます。

セキュリティ機能

DTLSは盗聴(プライバシー)、改ざん(メッセージの完全性)、メッセージの偽造を防止します。通信相手が本人であること、および中間者がストリームを読み取ったり変更したりできないことを保証します。