第20卷第5期 201 3年1O月 JOURNAL OF DONGGUAN UNIVERSITY OF TECHNOLOGY 东莞理工学院学报 Vo1.2O No.5 Oct. 2013 基于动态密钥的8 1 P授权认证机制的设计与实现 章忠宪(漳州职业技术学院余兵顾亚丽 363000) 计算机工程系,福建漳州摘要:会话初始化协议(SIP)广泛应用在嵌入式移动终端设备中,但由于SIP协议本身特点使得其在复 杂、开放的网络应用环境中容易被攻击者模仿、篡改。虽然已经提出了很多增强SIP协议安全性的认证机制, 但由于认证过程计算性能消耗大,不适合在嵌入式设备中使用。在传统Http摘要认证的基础上,提出了一种 基于动态密钥的认证机制,以较低的计算代价改进了SIP协议的安全性,对SIP协议在嵌入式设备中普及有一 定的实用价值。 关键词:会话初始化协议;认证;动态密钥 中图分类号:TP393 文献标识码:A 文章编号:1009—0312(2013)05—0067—05 会话初始化协议(SIP)是一种应用层上的信令控制协议,用来实现多媒体会话过程的建立、修改 和终止 J。SIP协议在设计上参考了互联网上流行的H1TI1P等协议,以文本的形式表示消息的语法、语 义和编码。采用文本的方式让SIP协议的实现变得简单,但在复杂、开放的网络应用环境中,SIP协议 容易被攻击者模仿、篡改。身份认证是SIP应用系统中的第一条防线,在rfc3261中规定SIP使用Http 摘要认证进行身份认证 儿 。该认证机制简单方便,也能够解决注册劫持等安全问题,但也存在很多弊 端。如它只能单向认证,客户端没有办法验证服务器的身份,容易受到伪装服务器攻击;没有对SIP消 息的头域行加密,会造成信息泄露。 针对Http摘要认证所存在的缺陷,目前已经有几种安全改进方案:基于Difie—Hellman密钥交换 协议的安全认证机制 J、基于椭圆曲线密码(ECDH)安全认证机制 。这些改进方案可以在很大 程度上提高SIP协议的安全性,但由于Difie—Hellman密钥交换协议和椭圆曲线密码这两种密码机 制本身比较复杂,应用在服务器和高新能的Pc机上效果不错。但SIP协议经常应用在嵌入式终端设备 中,嵌入式设备系统资源相对有限,如果在SIP协议中使用前面两种认证机制,则资源消耗过大。 本文首先指出SIP协议传统认证机制(Http摘要认证机制)的缺陷,然后在Http摘要认证机制的 基础上,利用动态密钥的原理,提出了一种适合嵌入式移动终端中SIP协议的安全认证机制,在不增加 太多额外计算资源的情况下,可以防止SIP应用系统受到密码离线猜测、服务器伪装等方式的攻击。 1 基于动态密钥的SIP认证机制的实现 1.1 一些约定 本文只是讨论SIP用户登录过程中的身份验证,在用户登录之前已经注册成功,并且与服务器共享 一个密码。为了把本文提出的基于动态密钥的认证机制解释清楚,首先定义了一些标识符号,符号的说 明如表1所示: 1.2基于动态密钥机制的认证流程 基于动态密钥机制的认证流程如图1所示: 收稿日期:2013—06—13 作者简介:章忠宪(1963一),男,安徽安庆人,副教授,硕士,主要从事网络体系结构、人工智能研究。 68 东莞理工学院学报 表1符号说明 2013缸 符 H() 号 单向哈希函数 说 明 Xor、① 异或操作 字符串连接符 KevA 客户端随机生成的密钥 服务器随机生成的密钥 用户与服务器之间共享的密码 登录的用户名 KevB Pwd noncel nonce2 用于验证服务器身份的随机数 用于验证服务器身份的随机数 UAC(客户端) 客户端生成动态密钥KeyA 1.服务器生成动态密钥KeyB 2.使用哈希算法计算出 noncel=KeyB Xor H(PwdlKeyA)和 nonce2=H(PwdlKeyAIKeyB) 1.计算H(PwdlIKey A1 Xor nonaet 得到KeyB 2.计箅H(PwdllKeyAIIKeyB),判 断是否与IlOIlCe2相等 3.如果不相等,则断开与服务器 连接,相等则发送响应给服务 器 1.计算H(KeyAIIPwdllKeyB) 2.比较是否与响应消息中的一致 3.如果相同则用户验证成功 4.使用KeyB作为双方的会话密钥 图1 基于动态密钥机制的认证流程 具体的实现步骤如下: 1)UAC要使用SIP协议通话时,首先需要登录到UAS中进行身份认证。UAC随机生成一个密钥 KeyA(可以使用时间戳,这样可以保证密钥不重复),然后发送身份验证请求request(username, KeyA)到服务器; 2)服务器接收到身份验证请求后,不会立即去验证该用户是否合法,而是和客户端一样,先随机 生成一个密钥KeyB,然后从数据库中取出用户的登录密码,按照noncel= o H(Pwd l l yA)和 nonce2=H(Pwd I l l l )两种算法分别计算出noncel和nonce2,最后把noncel和nonce2通过 质询消息发送给客户端; 3)UAC接收到服务器发送的质询消息后,先利用算法KeyB=H(Pwd l l yA)o noncel计算出 KeyB,然后计算出H(Pwd l l l I KeyB)的值,如果该值和nonce2相同,那么说明发送质询消息的 服务器是合法的,UAC给服务器发送一个响应消息response(username, ( 不相同则说明服务器是非法的,UAC马上断开与服务器的连接; l l PwdI l yB)),如果 第5期 章忠宪,等:基于动态密钥的SIP授权认证机制的设计与实现 69 4)服务器接收到响应消息后,计算日( Il Pwd I l KeyB)的值,如果该值和响应消息中UAC计 算的值相同,则该用户验证成功,并且使用KeyB作为接下来客户端和服务器的会话密钥。 1.3基于动态密钥的认证机制的实现 SIP协议采用SIP消息来建立、修改以及释放会话连接,SIP消息采用UTF一8字符集进行编码,消 息可分为请求与响应两种类型,每个消息由一个起始行、若干个头部以及可选的消息体组成,具体如图 2所示。 图2 SIP消息结构 本文所研究的身份验证过程所使用到的SIP消息有请求和响应两种类型的消息,每条消息都不含有 消息体,客户端与服务器之间相互认证的机制是通过SIP消息中Authorization头域与www—Authentic- ate头域来实现的。为了实现动态密钥的身份认证,必须对SIP消息中的www—Authenticate头域进行 参数修改,在www—Authenticate头域中定义noncel和nonce2两个新的参数字段,另外需要在2000k 应答消息中添加一个新的头域SessionKey。客户端与服务器端认证的算法如图3和图4所示。 图3客户端伪代码 图4服务器端伪代码 2安全性与效率分析 2.1 认证机制的安全性分析 本文提出的认证机制的安全性是以哈希函数的单向性特点为前提条件,也就是在哈希函数中只能从 输入推导出输出,而不能从输出计算出输入。在此前提条件下,本文提出的认证机制可以防止重放攻 70 东莞理工学院学报 2013正 击、服务器伪装攻击、离线密码猜测攻击。_6 J 2.1.1 重放攻击 在方案中,可以利用随机值避免重复攻击。从图1基于动态密钥机制的认证流程中可知,在客户端 与服务器交互过程中授权消息noncel:KeyB①H(PwdI I ya)和nonce2=H(PwdI I 因为KeyA和KeyB只在一次会话过程中有效。 2.1.2服务器伪装攻击 l l )都 包含了随机参数KeyA和KeyB,假如在通信过程中,攻击者截获到该消息后也不可能成功登陆服务器, 在认证流程的第3步中,客户端通过比较H(Pwdll 2.1.3离线密码猜测攻击 l l )与nonce2的值是否相等来验证服 务器的合法性,因此攻击者无法通过伪装服务器来欺骗客户。 在认证机制中,攻击者不可能通过离线猜测来破解用户的密码。从认证流程中可以知道,认证过程 不是直接把用户密码发送给服务器,而是用随机数KeyA和KeyB对用户密码进行异或和哈希运算后才 在网络上进行传递,因此可以保护用户密码受到离线猜测攻击。 2.2认证机制的效率分析 从算法的计算复杂度与通信复杂度两方面来分析本文提出的认证机制的效率。 2.2.1计算复杂度 基于Difife—Hellman密钥交换协议的安全认证机制和基于椭圆曲线密码(ECDH)安全认证机 制,使用了复杂度高的非对称加密运算方法,会造成较大的运算负担。本文提出的认证机制,拥有低运 算成本的优点,因为在认证机制中只是采用了哈希函数和异或等低复杂度的计算。表2是三种认证机制 算法的计算复杂度,从表中可知本文提出的认证机制在保证安全性的前提下,具有较低的计算成本。 表2计算复杂度比较表 2.2.2通信复杂度 本文提出的认证机制中,服务器与客户端共通信三次,第一次通信中,客户端发送{Usemame, KeyA}到服务器,通信成本为I u I+I K I;第二次通信中服务器发送{noncel,nonce2}给客户端, noncel和nonce2都是通过Hash函数计算得到,其通信成本记为2 l H I;第三次通信客户端发送 {Username,H(KeyA I l Pwd l I KeyB)}给服务器,通信成本为I U I十l H l,因此在一次完整的 认证过程中,总的通信成本为2 l u f+l K l+3 l H I。与其他两种认证机制相比,本文提出的认证 机制在通信成本上稍优,具体数据如表3所示。 表3通信复杂度比较表 3 结语 SIP协议由于简单易扩展的特点,在嵌入式终端产品中应用越来越广泛,但其安全性是当前面临的 重要课题。考虑到嵌入式设备的特殊性,本文在SIP协议的HTTP摘要认证的基础上,以哈希函数和异 或等低复杂度的运算为基础,设计出一个安全的轻量级的认证机制,在该机制中,以较低的运算成本可 1i 1J 第5期 章忠宪,等:基于动态密钥的SIP授权认证机制的设计与实现 71 以获得较高的安全性,对SIP协议在嵌入式设备中普及有一定的实用价值。 参考文献 Franks J.HTI'P authentication:basic and digest access authentication[S].IETF RFC2617,June 1999. Handley M.SIP:session initiation protocol[S].IETF RFC2543,March 1999. Yang C C,Wang R C,Liu W T.Secure authentication scheme for session initiation protocol[J]_ComputersandSecurity,2005,124:381—386. Dudanik A.Sogukpinar J.SIP authentication scheme using ECDH[J].World Enformatika socity Trnsaaction on Engineering computing and technology,2005,18:350—353. zrinneH,camarill0 G,et a1.SIP:SessionInitiation Protocol[S].RFC 3261,2002. [5] R0senberg J.Schul46(5):96—99. [6] 周计成,徐开勇,赵彬,等.一种基于身份的SIP认证与密钥协商机制[J].计算机工程与应用,2010,The Design and Implementation of Authentication Mechanism of SiP Based on Dynamic Key ZHANG Zhong-xian YU Bing GU Ya—Ii (The Department of Computer Engineering,Zhangzhou Institute of Technology,Zhangzhou 363000,China) Abstract The session initiation protocol(SIP)is widely used in the embedded equipment.Due to the characteristics of SIP protocol and complicated environment.there are many security problems in it and SIP faces a lot of attacks.At present there are a varietv of security mechanisms be proposed. But the computation cost of these security mechanisms is SO high that they are not suitable for use in embedded devices.In this paper,we propose a dynamic key—based authentication mechanism on the basis of the traditional Http digest authentication to improve the security of SIP and its computation cost is relatively lower.Conclusion shows the authentication mechanism can be used in the embedded equipment and there are some practical value. Key words Session Initiation Protocol;authentication;dynamic key