同许多互联网协议一样,SIP(会话起始协议)协议是根据简化的思路,而不是根据安全的思路设计的。虽然H.323协议的创建是为了满足更广泛的目标,但是,安全问题也影响到了这个协议。这个协议本身就存在一些安全漏洞,把这个标准转化为产品的开发人员也为这个协议增加了一些安全漏洞。下面就是一些例子:
纯文本SIP信息是微不足道的,不值得修改或者插入,特别是在宽带网媒介上。虽然SIP没有加密,但是,可以使用IPsec、SSL/TLS或者S/MIME等技术进行保护。然而,即使是这样,“to”和“via”等某些文件头字段必须保持可见性,这样就能够正确地传递SIP请求。攻击者这样就可以发送包含电话IP地址的欺骗性的“INITIATE”请求。或者,捕捉到SIP设置信息的攻击者可以使用欺骗性的“BTE”请求中断正在通话的电话。
ASN.1协议使H.323信息比较难伪造,但是,难度并不大。更糟糕的是,在2004年,英国国家基础设施安全协调中心报告称,在许多H.323设施中存在ASN.1协议安全漏洞。据美国计算机应急反应小组的VU#749342号文件(http://www.kb.cert.org/vuls/id/749342)称,向存在安全漏洞的、不能够处理这种信息的电话组件发送一个异常的ASN.1信元就可能使应用程序或者系统产生难以预测的后果。这种安全漏洞的影响包括拒绝服务攻击和可能强制执行恶意代码。在这些警告发出之后,许多受到影响的设施都使用了安全补丁。但是,这也表明这种安全漏洞有可能以复杂的新的代码形式广泛传播。这种复杂的代码还没有进行彻底的误差检查。
研究人员在许多SIP设施的“INVITE”(邀请)信息处理过程中还发现了十几个安全漏洞。据计算机应急反应小组CA-2003-06号安全公告(网址是:http://www.cert.org/advisories/CA-2003-06.html)称,利用这些安全漏洞可能导致拒绝服务攻击、服务中断或者在某些情况下允许攻击者获得访问受影响的设备的权限。
即使当一个厂商的设施受到了影响,由于VoIP端点的数量较多,影响可能是非常大的。在2004年4月,微软Windows H.323协议(微软安全公告的网址是:http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx)据称存在一个请求处理缓存溢出安全漏洞。利用这个安全漏洞,攻击者就可以在没有使用补丁的Windows计算机上执行恶意代码。受到这个安全漏洞影响的软件包括Windows 98、ME、NT、2000、XP和Server 2003等操作系统以及早期版本的NetMeeting软件。
在过去的几年里,研究人员只发现了一些SIP和H.323协议的通用漏洞。公平地说,许多其它的互联网协议都存在欺骗性安全漏洞或者缓存溢出安全漏洞。但是,考虑到与公共交换的电话网络关系密切,转向VoIP应用的企业对这些威胁可能要更敏感。而且,正如RFC 3261号标准承认的那样,SIP是一种不容易进行加密的协议。这种协议对作为中间媒介使用、多面的信赖关系、在不可信赖的要素之间的应用以及用户与用户之间的操作等因素使SIP协议的安全非常复杂。