SIP协议及新IP企业通信网络技术概论-关于SRTP呼叫语音加密技术架构讨论_通信加密有哪些

今天,为了确保SIP协议及新IP企业通信网络技术概论这个系列分享的完整性,笔者计划和读者分享关于笔者针对SIP端的信令和语音加密以及SIPS使用,TLS,SRTP等问题进行一个全面的讨论。在本次分享中,笔者将要讨论的核心要点包括:authentication(签权)和authorization(授权),安全证书处理机制讨论,关于SIP、RTP加密的相关技术讨论,SIP trunk加密,安全攻击和响应处理机制,测试工具使用等几个主要的章节,希望通过这些环节的讨论为读者提供一个全面的关于新IP企业通信中的关于SIP和RTP加密的完整详解。我们首先从安全机制的基本问题谈起-签权和授权的背景介绍。

关于签权(authentication)和授权(authorization)的背景介绍

Proxy 服务器第一次回复407 Proxy Auth Required,表示UA需要发送认证信息,并且对此UA发送nonce(number once) 消息。这个nonce消息会保存到Proxy中。

VoIP网络或者基于SIP架构的网络随着部署环境复杂程度的不断加强,基于IP的企业通信网络环境也更加灵活,以及SIP终端用户的普及,网络攻击等安全问题越来越严重。在针对SIP网络的安全问题上,目前存在各种针对SIP网络安全部署机制的措施,比如使用SBC来处理相对比较复杂的环境,或者针对单点服务器端使用信令加密或者RTP加密来保证其呼叫和语音的安全。关于SBC的安全机制以及商业场景,笔者在很多历史文档中有非常深入的讨论,读者可以查阅历史文档学习和了解各种应用场景。

这两个基本问题其中一个就是认证签权(authentication)。另外一个就是授权的问题(authorization)。简单来说,authentication 是负责处理身份认定的问题,比如登录系统确认身份等问题。authorization 是一个授权问题,简言之,就是系统允许用户登录以后允许干什么的问题。

以上过程中,双方密码都没有以明文的形式公开进行传输,SIP安全得到了保证。关于MD5在SIP中的运算,我以前在文章中有所介绍。这里,笔者不做过多解释。关于nonce

UA 收到了nonce 消息以后,获悉服务器需要重新发送INVITE,并且需要携带hash重新认证。因此,UA结合密码和nonce进行加密运算(MD5)。

在SIP网络中,我们仍然使用同样的机制来管理用户注册,管理呼叫和其他的业务功能。现在我们以SIP 呼叫或者INVITE举例来说明其认证的流程。以下示例中使用了SIP代理和用户验证服务器,在实际应用环境中,代理服务器可能是一个SIP 服务器端或者IPPBX支持本身自己的数据库来存储用户验证信息。

如果Proxy计算出的hash和UA发送到hash是完全一样的,则表示密码匹配成功。

UA james 首先对proxy 服务器发出INVITE请求表示需要呼叫,验证身份。

然后reINVITE 消息,告诉Proxy, UA携带了计算后的hash。

下面,最后对其UA发送200 OK,我们首先应该了解两个关于安全认证的基本问题(authentication和authorization)。笔者针对这两个基本的问题进行讨论。如果我们提到安全证书,Proxy服务器接受了这个reINVITE,确认了用户身份。