专利名称:一种面向会话初始化协议的鉴权方法
技术领域:
本发明涉及一种鉴权机制实现方法,尤其涉及一种在互联网电话
的通讯过程中,通过改进会话初始化协议(Session Initiation Protocol, 简写为SIP协议),有效改善其安全性的方法,属于互联网电话(Voice overIP,简写为VoIP)技术领域。
背景技术:
VoIP技术是一种在传统电路交换网络和IP网络之间传输语音,或 直接在IP网络上传输语音的技术。其工作过程分为以下几个步骤语 音的数字化,数据压縮,数据打包,解包及解压縮,语音恢复。其技 术结构由信令技术、语音编解码技术、实时传输技术、服务质量(QoS) 保障技术和网络传输技术等组成。
SIP协议与H.323协议是目前在互联网电话中应用最广的两大信 令协议标准。SIP协议被描述为用来生成、修改和终结一个或多个参与 者之间的会话。对于使用者来说,由于SIP协议与互联网结合紧密, 并且对多媒体接入支持、移动通讯的支持都有着明显的优势,因此更 符合未来通讯的要求。
SIP 认证过程源自 HTTP 摘要式认证(HTTP Digest Authentication),它是 一 种基于质询的安全机制当服务器收到一个请 求,将质询请求的发起者,要求提供相应的身份信息。服务器发出的 质询中会包含生成的唯一字符串序列,仅可用于本次质询。请求者和 服务器共享同一密码,请求者使甩该密码和临时生成的字符串序列得 到一个响应值。当请求者再次发送包含这个响应值的请求时,服务器 就可以用来对请求进行认证。
但是,现有的SIP协议中,分类鉴权机制仍然存在以下一些缺点 和隐患
(1) SIP分类鉴权机制对用户名信息没有保密,用户名在SIP消 息中是以明文方式传输的,因此,任何人都可以通过截获报文得知SIP 用户名。
5(2) SIP分类鉴权机制只能提供服务器对客户端的单向鉴权,容 易遭受伪装服务器攻击。
(3) SIP分类鉴权机制缺乏消息保密性和完整性的考虑,不能有 效防止数据不被査看或窜改。
发明内容
鉴于现有SIP分类鉴权机制的不足,本发明的目的在于提供一种 面向会话初始化协议的新型鉴权方法。该方法通过对SIP协议鉴权机制 的进一步改进,有效提高了 SIP网络的安全性。
为实现上述的发明目的,本发明采用下述的技术方案
一种面向会话初始化协议的鉴权方法,用在使用会话初始化协议进 行通信的网络系统中,所述网络系统至少包括多个SIP终端、SIP注册 服务器、Diameter服务器和认证中心,其特征在于
在接入侧进行认证时,所述SIP终端首先注册唯一的永久用户名; 在每次注册成功后,所述SIP注册服务器向所述SIP终端分配一个新 的临时用户标识,作为下一次注册时的临时用户名;用户的密码作为 与认证中心间共享的密钥参与计算;
在网络侧进行认证时,由所述SIP注册服务器完成SIP注册消息 到Diameter请求认证消息的转换,由所述Diameter服务器完成对所述 SIP终端的认证。
其中,所述网络系统还包括SIP边缘服务器,所述SIP终端将注册 请求消息发往所述SIP边缘服务器,由所述SIP边缘服务器转发至所 述SIP注册服务器。
在所述SIP终端启动后的初次注册和注册失败后的再次注册中, 所述注册请求消息中包含所述SIP终端的永久用户名;其他情况下, 所述注册请求消息中包含所述SIP终端的临时用户名。
所述SIP边缘服务器每次接到所述注册请求消息后,提取临时用 户名,作为User-Name AVP中的值,然后向Diameter服务器发UAR 消息以询问SIP注册服务器的地址;
所述Diameter服务器接收到所述UAR消息后,在User-Name AVP 存在且其中的用户属于该域时,回复UAA消息;所述UAA消息包含 有SIP注册服务器地址或SIP注册服务器列表,供所述SIP边缘服务 器选择。所述SIP注册服务器接收到所述注册请求消息后,向所述Diameter 服务器发MAR消息,请求Diameter服务器认证。
所述Diameter服务器接收到所述MAR消息后,向所述认证中心 申请认证向量,所述认证中心根据与用户共享的密钥计算出认证向量, 传给所述Diameter服务器。
所述Diameter服务器接收到所述认证向量后,回复MAA消息, 所述SIP注册服务器收到所述MAA消息后,将Digest-Nonce值作为 WWW-Authenticate头字段中nonce值,然后发401 Unauthorized消息 给SIP边缘服务器,所述SIP边缘服务器将401 Unauthorized消息转 发至所述SIP终端,所述SIP终端利用与所述认证中心共享的密钥和 算法,计算XMAC,与从nonce的AUTN中解析出的MAC比较,若 两者一致表明网络是安全的,接着计算RES,作为密码值参与Digest 运算,最后得到的结果作为Authorization头字段中的response值,重 新发送所述注册请求消息到所述SIP边缘服务器。
所述SIP边缘服务器将所述注册请求消息转发至所述SIP注册服 务器,所述SIP注册服务器接收到所述注册请求消息后,将 Authorization头字段中的response值作为SIP-Auth画Data-Item AVP中 的SIP-Authorization AVP的Digest-Response值,然后发送MAR消息 给Diameter服务器请求认证。
所述Diameter服务器将所述认证向量中的XRES作为密码值参与 摘要运算,将计算得到的结果与接收到的MAR消息中的 Digest-Response比较,若两者一致,则完成对所述SIP终端的认证。
所述Diameter服务器对Digest-Username做MD5运算,得到 一 个 新的临时用户名,作为MAA消息的一部分发送给所述SIP注册服务器, 并通过所述SIP边缘服务器转换为200 OK消息的一部分,转发至所述 SIP终端,所述SIP终端将所述200 OK消息中的临时用户名信息保存 下来,用于下一次注册。
本发明所提供的SIP协议鉴权方法有效增强了 SIP网络的安全性, 具体表现在
(1)引入SIP边缘服务器和验证临时用户名的机制,可以将遭受 到DoS攻击时的损失降到最低。因为当收到非法用户使用非法用户名
7的注册消息请求注册时,由Diameter服务器判断临时用户名非法后即 可拒绝该请求,不需要SIP注册服务器的参与。
(2) 引入使用临时用户名申请注册且在每次成功注册后更新下次 注册使用的临时用户名,将降低受到欺骗攻击的概率。因为提交 Diameter服务器验证的用户名是临时的,所以攻击者除了破解用户密 码外,还需要跟踪临时用户名的变化。
(3) 在Diameter服务器向SIP终端发送的质询消息中除了 RAND 之外,还有利用SIP终端与认证中心之间共享的密钥和算法计算得到 的AUTN,用于SIP终端验证网络的安全性,因此杜绝了冒充服务器 的现象。
(4) 在网络域内,Diameter协议保证了认证信息的安全可靠传输。
下面结合附图和具体实施方式
对本发明作进一步的说明。 图1显示了用于实施本SIP协议鉴权方法所需的网络结构; 图2为本SIP协议鉴权方法中, 一次SIP终端成功注册的流程示 意图。
具体实施例方式
本发明的核心技术思想在于在现有的SIP鉴权机制中引入AKA机 制和Diameter协议,以便针对现有鉴权机制的不足,有效提高SIP网 络的安全性。
具体而言,在接入侧认证方面,本发明借鉴AKA机制的特点,要 求每个SIP终端注册的用户名都是唯一的,将这唯一的用户名作为永 久用户标识,只有在终端启动后第一次注册时或注册出错时使用。每 次注册成功后,SIP注册服务器都会向SIP终端分配一个新的临时用户 标识,作为下一次注册时的用户名。SIP终端的用户密码作为与认证中 心间共享的密钥参与RES (对随机数的响应)与XMAC (期待的鉴权 值)的计算。在收到网络要求认证的消息后,先提取其中的信息验证 网络,验证成功后发送包含有对随机数响应的注册请求。此处需要说 明的是,在第一次的注册请求中并没有对随机数的响应。
在网络侧认证方面,本发明采用Diameter-SIP应用协议,由SIP 服务器(同时也是Diameter客户端)完成SIP注册消息到Diameter请 求认证消息的转换,最终由Diameter服务器完成对终端的认证。
8图1显示了用于实施本SIP协议鉴权方法所需的网络结构。该网 络中包括多个SIP终端、SIP边缘服务器、SIP注册服务器、Diameter 服务器和认证中心。其中,SIP终端与SIP边缘服务器进行连接。SIP 边缘服务器分别连接SIP注册服务器和Diameter服务器。Diameter服 务器与认证中心进行连接,同时也与SIP注册服务器实现连接。SIP 终端、SIP边缘服务器和SIP注册服务器组成了上述的接入侧,Diameter 服务器和认证中心为上述的网络侧。SIP边缘服务器和SIP注册服务器 负责接收请求,转换消息类型,然后发往Diameter服务器,由Diameter 服务器根据自身保存的临时用户名和认证中心的认证向量AV完成对 SIP终端的认证。最后,认证结果经过SIP注册服务器转换后,经由 SIP边缘服务器发回到SIP终端。
SIP边缘服务器位于SIP网络的边缘,既是SIP服务器,同时也是 Diameter客户端,其任务是定位处理SIP请求的服务器地址。SIP边缘 服务器接收SIP终端的请求消息,然后向Diameter服务器询问真正处 理该请求消息的SIP服务器的地址,最后将SIP终端的请求消息转发 至该SIP服务器。
SIP注册服务器既是SIP服务器,同时也是Diameter客户端。它 接收SIP终端的注册请求消息,提取适当信息后以Diameter协议报文 发往Diameter服务器。接收到Diameter服务器的响应消息后再以相应 的SIP消息回应SIP终端。 一个SIP网络管理域中可以有多台SIP注 册服务器,当SIP终端第一次注册时,由Diameter服务器选择其中一 台与该终端完成以后的所有注册请求。
Diameter服务器接收到注册请求后,向认证中心请求认证向量AV (RAND、 XRES、 CK、 IK、 AK),计算得AUTN,然后用RAND、 AUTN 发出挑战消息。在接收到响应消息后,比较XRES与RES,决定是否 授权该用户。Diameter服务器也可将最终的决定权交给SIP注册服务 器,将认证向量AV传给SIP注册服务器,由SIP注册服务器比较XRES 与RES,决定是否授权该用户。
认证中心储存用户信息,根据与终端共享的密钥K和一个随机数 RAND,利用各种算法计算得认证向量AV,发给Diameter服务器认证 用户。
下面以一次SIP终端成功注册的流程为例,结合图2详细描述本鉴权方法的具体实施方式
。
(1) 首先,SIP终端将注册请求消息SIP REGISTER发往SIP边 缘服务器,由SIP边缘服务器转发至SIP注册服务器。在SIP终端启 动后的初次注册和注册失败后的再次注册中,SIP REGISTER消息中需 包含该SIP终端的永久用户名,其他情况下,SIP REGISTER消息中需 包含该SIP终端的临时用户名,临时用户名为上次成功注册后SIP注 册服务器生成、传送给SIP终端并存在SIP终端中的,唯一标识该SIP 终端。
(2) SIP边缘服务器不保存SIP注册服务器的地址,即使在同一 次注册过程中,也不需要保存SIP注册服务器的地址。因此,SIP边缘 服务器每次接收到SIP REGISTER后,提取临时用户名,作为 User-Name AVP 中的值,然后向 Diameter月艮务器发 UAR
(User-Authorization-Request)消息询问SIP注册服务器的地址。
(3) Diameter服务器接收到UAR后,首先验证UAR消息中的 User-Name AVP,若User-Name AVP不存在,则返回结果码AVP为 DIAMETER—USER—NAME—REQUIRED的UAA;若User-Name AVP存 在,但该用户不在这个域内,则返回结果码 AVP 为 DIAMETER—ERROR—USER—UNKNOWN的UAA;只有在User-Name AVP存在且其中的用户属于该域,才会回复正确的UAA消息,包含有 SIP注册服务器地址或SIP注册服务器列表,供边缘服务器选择。
(4 ) 边缘服务器若接收到结果码 AVP 为 DIAMETER—USER—NAME—REQUIRED或DIAMETER—ERROR_USER —UNKNOWN的UAA,则返回403 Forbidden消息,停止此次注册请求。 只有在接收到正确的UAA消息后,才将SIP REGISTER请求转发至 SIP注册服务器。
(5) SIP注册服务器接收到SIP REGISTER请求后,向Diameter 服务器发MAR ( Multimedia-Auth-Request)消息,i青求Diameter服务 器认证。
(6) Diameter服务器接收到MAR后,向认证中心申请认证向量 AV,以向终端发起挑战。
(7) 认证中心根据该用户的密钥,计算出认证向量,传给Diameter 服务器。(8) Diameter服务器接收到认证向量AV后,才会回复正确的 MAA消息,包含值为DIAMETER—SUCCESS的结果码AVP和 SIP-Auth-Data-Item AVP , SIP-Auth-Data-Item AVP 中含有 SIP-Authenticate AVP, SIP-Authenticate AVP中的Digest-Nonce就是由 RAND和AUTN串连后经过Base64编码的值,用来对终端发起挑战。
(9) SIP注册服务器收到MAA消息后,将Digest-Nonce值作为 WWW-Authenticate头字段中廳ce值,然后发401 Unauthorized消息 给SIP边缘服务器。
(10) SIP边缘服务器将401 Unauthorized消息转发至SIP终端。
(11) SIP终端利用与认证中心共享的密钥和算法,计算XMAC, 与从nonce的AUTN中解析出的MAC比较,若两者一致表明网络是 安全的,接着计算RES,作为password参与Digest运算,最后得到的 结果作为Authorization头字段中的response值,重新发送SIP REGISTER请求到SIP边缘服务器。
(13) 如前所述,SIP边缘服务器并不保存任何SIP注册服务器的 地址,因此需要同之前一样的操作向Diameter服务器发送UAR消 息询问SIP注册服务器的地址,接收到应答消息UAA后,将SIP REGISTER消息转发至SIP注册服务器。
(14) SIP注册服务器接收到SIP REGISTER消息后,将 Authorization头字段中的response值作为SIP-Auth-Data-Item AVP中 的SIP-Authorization AVP的Digest-Response值。然后发送MAR消息 给Diameter服务器请求认证。
(15) Diameter服务器将认证向量AV中的的XRES作为password 参与Digest运算,将计算得到的结果与接收到的MAR消息中的 Digest-Response比较,若两者一致,则完成对SIP终端的认证。同时 Diameter服务器还会对Digest-Username做MD5运算,得到 一 个新的 临时用户名,更新原临时用户名,作为MAA的SIP-Auth-Data-Item AVP 的SIP-Authentication-Info AVP中的Digest-Nextusername,置结果码 AVP为DIAMETER—SUCCESS,然后将MAA消息发送到SIP注册服 务器。
(16) SIP注册服务器接收到结果码AVP为DIAMETER—SUCCESS 且SIP-Auth-Data-Item AVP中没有SIP-Authenticate AVP的MAA后,表明认证通过, SIP边缘服务器将SIP-Auth-Data-Item AVP的 SIP-Authentication-Info AVP中的Digest-Nextusername作为200 OK消 息Authentication-Info头字段中的nextusername值,然后将200 OK消
息发往SIP边缘服务器。
(17) SIP边缘服务器将200 OK消息转发至SIP终端。
(18) SIP终端将200 OK消息Authentication-Info头字段中的 nextusername值保存下来,用于下一次注册。至此,SIP终端注册成功。
以上对本发明所提供的面向会话初始化协议的鉴权方法进行了详 细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神 的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权 的侵犯,将承担相应的法律责任。
1权利要求
1. 一种面向会话初始化协议的鉴权方法,用在使用会话初始化协议进行通信的网络系统中,所述网络系统至少包括多个SIP终端、SIP注册服务器、Diameter服务器和认证中心,其特征在于在接入侧进行认证时,所述SIP终端首先注册唯一的永久用户名;在每次注册成功后,所述SIP注册服务器向所述SIP终端分配一个新的临时用户标识,作为下一次注册时的临时用户名;用户的密码作为与认证中心间共享的密钥参与计算;在网络侧进行认证时,由所述SIP注册服务器完成SIP注册消息到Diameter请求认证消息的转换,由所述Diameter服务器完成对所述SIP终端的认证。
2. 如权利要求I所述的面向会话初始化协议的鉴权方法,其特征在于所述网络系统还包括SIP边缘服务器,所述SIP终端将注册请求消 息发往所述SIP边缘服务器,由所述SIP边缘服务器转发至所述SIP 注册服务器。
3. 如权利要求2所述的面向会话初始化协议的鉴权方法,其特征在于在所述SIP终端启动后的初次注册和注册失败后的再次注册中, 所述注册请求消息中包含所述SIP终端的永久用户名;其他情况下, 所述注册请求消息中包含所述SIP终端的临时用户名。
4. 如权利要求2所述的面向会话初始化协议的鉴权方法,其特征在于所述SIP边缘服务器每次接到所述注册请求消息后,提取临时用 户名,作为User-Name AVP中的值,然后向Diameter月艮务器发UAR 消息以询问SIP注册服务器的地址;所述Diameter服务器接收到所述UAR消息后,在User-Name AVP 存在且其中的用户属于该域时,回复UAA消息;所述UAA消息包含 有SIP注册服务器地址或SIP注册服务器列表,供所述SIP边缘服务 器选择。
5. 如权利要求1所述的面向会话初始化协议的鉴权方法,其特征在于所述SIP注册服务器接收到所述注册请求消息后,向所述Diameter 服务器发MAR消息,请求Diameter服务器认证。
6. 如权利要求5所述的面向会话初始化协议的鉴权方法,其特征在于所述Diameter服务器接收到所述MAR消息后,向所述认证中心 申请认证向量,所述认证中心根据与用户共享的密钥计算出认证向量, 传给所述Diameter服务器。
7. 如权利要求6所述的面向会话初始化协议的鉴权方法,其特征在于所述Diameter服务器接收到所述认证向量后,回复MAA消息, 所述SIP注册服务器收到所述MAA消息后,将Digest-Nonce值作为 WWW-Authenticate头字段中nonce值,然后发401 Unauthorized消息 给SIP边缘服务器,所述SIP边缘服务器将401 Unauthorized消息转 发至所述SIP终端,所述SIP终端利用与所述认证中心共享的密钥和 算法,计算XMAC,与从nonce的AUTN中解析出的MAC比较,若 两者一致表明网络是安全的,接着计算RES,作为密码值参与Digest 运算,最后得到的结果作为Authorization头字段中的response值,重 新发送所述注册请求消息到所述SIP边缘服务器。
8. 如权利要求7所述的面向会话初始化协议的鉴权方法,其特征在于所述SIP边缘服务器将所述注册请求消息转发至所述SIP注册服 务器,所述SIP注册服务器接收到所述注册请求消息后,将 Authorization头字段中的response值作为SIP-Auth-Data-Item AVP中 的SIP-Authorization AVP的Digest-Response值,然后发送MAR消息 给Diameter服务器请求认证。
9. 如权利要求8所述的面向会话初始化协议的鉴权方法,其特征在于所述Diameter服务器将所述认证向量中的XRES作为密码值参与 摘要运算,将计算得到的结果与接收到的MAR消息中的 Digest-Response比较,若两者一致,则完成对所述SIP终端的认证。
10.如权利要求8所述的面向会话初始化协议的鉴权方法,其特征 在于所述Diameter服务器对Digest-Username做MD5运算,得到 一 个 新的临时用户名,作为MAA消息的一部分发送给所述SIP注册服务器, 并通过所述SIP边缘服务器转换为200 OK消息的一部分,转发至所述 SIP终端,所述SIP终端将所述200 OK消息中的临时用户名信息保存 下来,用于下一次注册。
全文摘要
本发明公开了一种面向SIP协议的鉴权方法,用在使用SIP协议进行通信的网络系统中。在接入侧进行认证时,SIP终端首先注册唯一的永久用户名;在每次注册成功后,SIP注册服务器向SIP终端分配一个新的临时用户标识,作为下一次注册时的临时用户名;用户的密码作为与认证中心间共享的密钥参与计算;在网络侧进行认证时,由SIP注册服务器完成SIP注册消息到Diameter请求认证消息的转换,由Diameter服务器完成对SIP终端的认证。本发明所提供的鉴权方法可以有效增强SIP网络的安全性。
文档编号H04L29/06GK101488945SQ20081005616
公开日2009年7月22日 申请日期2008年1月14日 优先权日2008年1月14日
发明者松 李, 陈山枝 申请人:北京大唐高鸿数据网络技术有限公司