我们曾经讨论过如何保护一个VoIP网络免受黑客攻击和侦听——这需要一个多层安全策略。而这么一个策略的重要部件,则是对提供呼叫信号的协议进行保护。
SIP协议已经作为一个非常流行的呼叫信号协议而日益得到普及,选择它的理由也很多,比如相对于传统的H.323协议,它更具简单性,以及设计上的轻巧性。因此,对一家选择了基于SIP协议部署VoIP的公司来说,好好考虑一下,应当如何以一种安全的方式来实施SIP就显得非常重要了。不过,SIP协议的开发者们当初在设计时并没有考虑到安全方面的问题,所以如果直接将SIP设备加入你的IP网络,往往会带来额外的安全问题。下面就让我们看一下,如何做才能让SIP通信更加安全。
了解风险
由于某些安全机制的原因,SIP的呼叫信号信息及通话非常容易被人窃听和侦听(也就是说,数据被劫持),或者很容易受到中间人攻击,呼叫篡改攻击,语音重播攻击,以及拒绝服务等攻击。
下面是这些攻击所能造成的安全风险:
*攻击者可能获取对VoIP的访问权限,并使用该权限随意拨打电话。
*攻击者可能听取VoIP网络上的私人谈话内容,并从中获取可用于身份诈骗或达到其他不法目的相关信息。
*攻击者可能模仿某人的声音,并假造其语音留言以欺骗他人。
*攻击者可能会导致IP电话或整个VoIP网络陷入瘫痪状态。
幸运的是,我们还有些安全机制可用于保护SIP网络免受上述这些风险的威胁。
使用TLS保护SIP网络
一般情况下,SIP数据包通过TCP或UDP连接,以纯文本的方式进行传输,所以非常容易受到黑客的伪造和攻击。为此,RFC3261定义了SIPS(安全SIP,SecureSIP),一种使用TLS(传输层安全,Transport Layer Security)的安全传输方法,而TLS则是SSL(安全端口层,Secure Sockets Layer)的新式改进版本。
Netscape最初开发SSL是用于基于网页的安全传输。TLS提供了一个加密信道,以便你用于传输SIP信息。不过,要想使用SIPS,你的VoIP设备必须首先支持该协议才可以。
SIPS要求来自SIP用户以及代理的认证信息,该认证使用MD5校验机制。该RFC标准同时还定义了一个SIP统一资源标识符URI(UniformResourceIdentifier),可用于从一个端点到另一个端点提供安全连接。
根据公钥加密技术,TLS依赖于数字证书进行加密。这里是它的工作模式:
1.SIP客户端连上SIP代理。
2.SIP客户端向代理请求一个TLS会话。
3.代理返回一个有效的公共证书。
4.客户端验证该证书。
5.客户端和代理交换会话密钥
6.以后会话中的所有数据均使用该会话密钥进行加密和解密。
SIPS需要端到端(也就是说,电话到电话)的TLS保护。而在对话机基础上使用TLS也是可以的。另外,你也可以配置那些可使用SIPS的设备仅接收TLS加密过的呼叫。
你的防火墙支持SIP软件么?
对一个连到互联网(或其他任何不能让人放心的网络)上的企业来说,防火墙是安全策略中绝对必要的部分。不过,像其他VoIP协议一样,SIP也常会在穿越防火墙或NAT(网络地址解析,NetworkAddressTranslation的简称)设备时发生问题。