使用 XMPP 进行 VoIP 的安全性如何?

Posted

技术标签:

【中文标题】使用 XMPP 进行 VoIP 的安全性如何?【英文标题】:What is the security of using XMPP for VoIP? 【发布时间】:2013-08-22 16:35:08 【问题描述】:

假设我使用 Jitsi 通过 XMPP 进行 VoIP 电话会议。是什么决定了安全性,它是 XMPP 协议本身的特性还是我正在使用的帐户/服务器(例如 www.jabber.org)?在他们提到使用 SSL 和 TLS 的 Jabber 网站上,这是否适用于 VoIP?

假设 XMPP 已经具备一定的安全性,使用 ZRTP 与仅通过 XMPP 进行常规语音通话相比有什么优势?

使用 SIP 和 XMPP 进行语音呼叫有没有区别,有或没有 ZRTP?

谢谢!

【问题讨论】:

【参考方案1】:

XMPP 和 SIP 被称为“信令协议”。它们旨在提供允许两个客户端相互通信小数据包的通道。 SIP 的设计主要以信令为目标,而 XMPP 的设计主要以消息传递和在线状态为目标。不过随着时间的推移,两者都逐渐扩展到彼此的领域:)

但是,SIP 和 XMPP 在技术上都没有承载实际的语音/视频数据。这留给客户端使用信令协议进行协商的其他协议,例如 RTP、ZRTP 等(例如,他们需要交换 IP 地址和端口信息以及 ZRTP 的密钥)。

这意味着通过 SSL 运行 XMPP 对安全至关重要,但它只保护信令部分(客户端协商媒体通道)。语音/视频不经过XMPP通道,必须单独使用ZRTP进行保护。

【讨论】:

SSL 是不够的,因为它不能保证端到端加密,更糟糕的是,它依赖于或某种形式的(根据定义不可信的)“权威”。 (一个逻辑谬误。)PGP/GPG 构建信任网络的方式将是这样做的正确方式。 SSL/TLS 不要求您使用公认的 CA,可以(尽管在许多情况下不切实际)创建自己的 CA,并提供等效的安全性。 XMPP 管道中有端到端加密机制,当您必须使用不受信任的服务时(遗憾的是,OTR 虽然很受欢迎,但不足以保护媒体信号)。

以上是关于使用 XMPP 进行 VoIP 的安全性如何?的主要内容,如果未能解决你的问题,请参考以下文章

在没有 VoIP iOS 的情况下保持 XMPP 套接字在后台活动

如何在 android 中编辑和删除 XMPP 中的特定消息?

请确认此 XMPP 代码不是线程安全的

XMPP Strophe.JS 应用程序安全问题

在 iOS 中同时使用两个音频单元进行 I/O 是不是安全?

思科CME9.0搭建企业VOIP电话