2. Overview (概述)
希望建立 RTP 媒体会话的端点通过 SIP 交换 SDP 消息中的 offer 与 answer. 典型用例下, 两个端点协商通过 UDP 上的 RTP 传输音频数据.
图 1 展示了 SIP 梯形 (trapezoid) 中的典型消息交换.
+-----------+ +-----------+
|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 建立加密音频会话. Alice 与 Bob 均可使用基于公钥的认证, 借助 DTLS 建立受机密性保护的信道.
由于在任意两个互联网端点之间用基于公钥的密码学实现相互认证往往存在问题, 本文考虑更易部署的替代方案. 本文档采用其中一种方法, 其他若干种在第 8 节讨论.
Alice 通过 SIP 向 Bob 发送 SDP offer. 若 Alice 在与 Bob 的通信中仅使用自签名证书, 则会在 SDP offer/answer 交换中包含指纹. 该指纹将媒体平面中的 DTLS 密钥交换绑定到信令平面.
仅靠指纹可防范针对媒体的主动攻击, 但不能防范针对信令的主动攻击. 为防范针对信令的主动攻击, 可使用《会话发起协议 (SIP) 中认证身份管理的增强》[RFC4474]. Bob 收到 offer 后, 对等方根据媒体会话数量建立若干 DTLS 连接, 并进行相互 DTLS 认证 (即双方均提供证书). 此时 Bob 可验证 Alice 在 TLS 中提供的凭据与 SDP offer 中的指纹一致, 并开始向 Alice 发送媒体. 一旦 Bob 接受 Alice 的 offer 并向 Alice 发送 SDP answer, Alice 即可在相应流上向 Bob 发送机密媒体. Alice 与 Bob 将验证 DTLS 握手中收到的证书指纹与 SIP 信令 SDP 中的指纹一致. 由此得到的安全属性是: Alice 知道媒体发往 Bob, 反之亦然, 而不一定需要为 Alice 与 Bob 使用全局公钥基础设施 (PKI) 证书. (详细安全分析见第 8 节.)