我是 VOIP 概念的新手。我刚上了一门VOIP课程。我也对使用 TLS、IPSEC 和 Digest 实现 SIP 感兴趣。
我想看看 SIP 信令是否使用 IPSEC 而不是 TLS,它将如何影响性能,信令会更耗时吗?它会增加安全性还是降低安全性。
我正在寻找一种同时具有 TLS/IPSEC 机制的软件电话,以便我可以分析 wireshark 上的两个数据包,但我没有遇到任何数据包。关于如何做到这一点的任何建议?
提前致谢!
软电话不明确支持 IPSEC,因为它是一种网络层协议。SIP RFC 中处理的最低级别是传输层,它提供了 3 种替代方案,即 UDP、TCP 和 TLS。
SIP 信令可以在 IPSEC 上正常工作,因为它对时间不敏感。即使是 SIP 请求和响应的 1 或 2 秒延迟也几乎不会引起注意。然而,如果引入额外的延迟,承载呼叫媒体的 RTP 流量很可能会受到影响。
假设您必须保护端点(软电话或硬件)和呼叫控制引擎之间的 SIP 信令,还假设端点和呼叫控制都位于同一个园区、局域网或专用网络内。正确的选择是在端点和呼叫控制引擎之间使用 TLS,大多数端点在其实现(固件或软件)中都支持 TLS。无论如何,这同样适用于移动工作人员(他们从互联网建立 TLS,并在您公司内部的 DMZ 中放置经过身份验证的前端);TLS 非常适合那些不需要安装额外客户端的场景。
另一方面,要在 IPSec 中保护 SIP,您需要首先在笔记本电脑上安装 IPSec 客户端(sip 客户端所在的位置),IPSec 客户端通过放置在您公司中的 IPSec 网关建立安全性(更复杂且管理成本更高)。简而言之,IPSec 非常适合那些需要跨公共网络的 LAN 之间隐私的扫描(IPSec 隧道模式在 IPsec 网关之间设置)。
当您谈论带有 TLS 或 IPSec 的 SIP 时,您不能忽略 RTP。要使用 SecureRTP,选择 TLS 协议。在会话设置期间,SIP 实体在 SDP 主体内交换 TLS 参数(例如用于保护 RTP 的芯片套件),查看日志以查看 SIP 内的 SDP。在交换结束时,SIP 实体能够保护 RTP 流量,因为它们同意公共会话加密密钥(是从密钥交换协议派生的 simmetric 密钥)。
与 IPSec 不同的是,在 SDP 或 SIP 消息中没有交换 IPSec 信息。您首先设置 IPSec 隧道,然后在隧道内发送流量,该流量也可以是 SIP 和 RTP。请注意,使用 IPSec 隧道模式,原始数据包被封装在一个新的 IP 数据包上(有一个外部 IP 标头),因此需要更多的开销和处理。
总结:使用 TLS 和 IPSec 可以保护 SIP,请考虑您的环境。我会尽可能地考虑 TLS。使用 TLS 保护 RTP 是可能的,它被称为 SecureRTP(加密、消息身份验证和完整性,以及对 RTP 数据的重放攻击保护)。使用 IPSec 保护 RTP\SIP 需要更多的努力。当您需要保护的不仅仅是 SIP\RTP 时,请考虑使用 IPSec 隧道。当您决定将 IPSec 与语音\视频一起使用并遍历 NAT 设备时,请查看 NAT 遍历功能。