2. Overview (概要)
RTP メディアセッションを確立する端点は SIP 上で SDP の offer/answer を交換する. 典型的には UDP 上の RTP で音声を運ぶ.
図 1 は SIP 台形における典型的なメッセージ交換を示す.
+-----------+ +-----------+
|SIP | SIP/SDP |SIP |
+------>|Proxy |----------->|Proxy |-------+
| |Server X | (+finger- |Server Y | |
| +-----------+ print, +-----------+ |
| +auth.id.) |
| SIP/SDP SIP/SDP |
| (+fingerprint) (+fingerprint,|
| +auth.id.) |
| |
| v
+-----------+ Datagram TLS +-----------+ |SIP | <-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-> |SIP | |User Agent | Media |User Agent | |Alice@X | <=================================> |Bob@Y | +-----------+ +-----------+
Legend: ------>: Signaling Traffic <-+-+->: Key Management Traffic <=====>: Data Traffic
Figure 1: DTLS Usage in the SIP Trapezoid
Alice が Bob と暗号化音声セッションを張る場合, 双方は DTLS で機密性保護チャネルを確立するために公開鍵認証を使える.
任意の二端点間の相互認証は難しいことが多いため, より展開しやすい代替を扱う. 本文書は一つのアプローチを用い, 他は第 8 節で論じる.
Alice は SIP で Bob に SDP offer を送る. 自己署名証明書のみの場合, offer/answer に fingerprint が含まれる. これがメディア面の DTLS 鍵交換をシグナリング面に束縛する.
fingerprint 単体ではメディアへの能動攻撃は防げるがシグナリングへの能動攻撃は防げない. シグナリングへの能動攻撃を防ぐには [RFC4474] 等が使える. Bob が offer を受け取ると, セッション数に応じて複数の DTLS 接続を張り相互 DTLS 認証を行う. Bob は TLS で提示された Alice の資格情報が SDP offer の fingerprint と一致することを検証し, メディア送信を開始できる. Bob が offer を受諾して answer を送ると, Alice は機密メディアを送り始められる. 双方は DTLS で受け取った証明書の fingerprint が SIP の SDP の fingerprint と一致することを検証する. これにより Alice はメディアが Bob に届いていること (逆も同様) を, 必ずしもグローバル PKI 証明書なしに知り得る (詳細は第 8 節).