为什么 TLS 是 SIP 选择的链路加密?
从一篇论文来看,似乎 TLS 无法处理 UDP,而 SIP 不需要任何人单独使用 TCP!那么TLS如何保证互操作性!
如果改为使用 IPSec,会出现什么问题?
从一篇论文看来,TLS 似乎无法处理 UDP,而 SIP 并不要求任何人单独使用 TCP!那么TLS如何保证互操作性!
这曾经是真的。DTLS为基于数据报的协议(如 UDP)提供 TLS
从一篇论文看来,TLS 似乎无法处理 UDP,而 SIP 并不要求任何人单独使用 TCP!
TLS 在 TCP 级别上工作,因此 TLS 需要使用 SIP over TCP。
SIP 是在 HTTP 的影响下创建的。TLS 针对 HTTP(也针对 SIP)进行了优化。
IPSec 的一个主要缺点是增加了原始数据包的额外大小。与 IPSec 相比,TLS 需要的开销更少。
如果改为使用 IPSec,会出现什么问题?
根据 RFC 2119,RECOMMENDED 与 SHOULD 具有相同的强度。
“3. 应该这个词,或形容词“推荐”,意味着在特定情况下可能存在忽略特定项目的正当理由,但在选择不同的课程之前必须理解并仔细权衡全部含义。
您还有其他 UDP 方法,例如标头加密。
23.4.3 RFC 3261 中的隧道加密
您可以使用基于 IPSec 的 SIP。3GPP IMS SIP 甚至更喜欢这样。但是 IPsec 有一些严重的缺点。要配置 IPSec,您必须在您的机器上拥有管理员权限。
与此相比,TLS 的部署要简单得多。
在最好的情况下,基线 UDP 性能大约是 TLS(代理链模式)的 3 倍;在最坏的情况下,UDP 的性能是 TLS(具有 TLS 和相互身份验证的本地代理)的 17 倍。性能结果主要取决于是否执行 TLS 连接建立以及执行频率,因为 TLS 会话协商会产生昂贵的 RSA 公钥操作
目前,SIP 的 TLS 仅保护部分呼叫流程(邀请和注册)。用于 SIP over TCP 的 TLS 对注册有意义,因为 UAC 将传输凭据。其他 SIP 命令和媒体(音频/视频)仍将通过未加密的 UDP 发送。这是基于 SIP 的 TLS 最常见的用法,被大多数流行的基于 SIP 的 VoIP 电话(即 Skype、WhatsApp)所采用。
或者,可以通过 TCP 将 TLS 用于 SIP,并设置“内联”RTCP 流,其中所有 TLS、SIP 和媒体(音频/视频/DTMF)都通过相同的加密 TCP 流发送;但是,我不确定流行的基于 SIP 的 VoIP 电话(即 Skype、WhatsApp)是否可以支持这一点,尽管可以部署这种技术。相反,所有 RTSP 客户端(Windows Media、Apple QuickTime)都可以在单个流上支持内联 RTCP(指出这一点,因为 RTSP 和 SIP 几乎相同,减去了动词)。