会话初始会话初始协议安全认证机制的协议安全认证机制的协议安全认证机制的分析分析分析与改进与改进
赵跃华赵跃华,,刘申君
(江苏大学计算机科学与通信工程学院,江苏 镇江 212013)
摘 要:通过分析会话初始协议相关认证机制,指出认证中可能存在的安全威胁,如离线密钥猜测攻击和Denning-Sacco 攻击。针对安全漏洞提出一种结合椭圆曲线密码的改进认证机制。安全性分析表明,改进的认证机制在提供客户端和服务器间双向认证的同时,能够完成会话密钥传递,确保认证的时效性,有效抵御离线密钥猜测攻击和Denning-Sacco 攻击。 关键词关键词::会话初始协议;认证;安全性;椭圆曲线密码;椭圆曲线离散对数问题
Analysis and Improvement of Secure Authentication Mechanism
for Session Initiation Protocol
ZHAO Yue-hua, LIU Shen-jun
(School of Computer Science & Telecommunications Engineering, Jiangsu University, Zhenjiang 212013, China)
【Abstract 】Through analyzing the Session Initiation Protocol(SIP) authentication mechanism, this paper describes the vulnerability and possible attacks, such as off-line password guessing attacks and Denning-Sacco attacks. Aiming at such security problems, an improved SIP authentication scheme based on Elliptic Curve Cryptography(ECC) is proposed. Security analysis demonstrates that the improved scheme can provide mutual authentication, share the session key, guarantee the validity of authentication, effectively resist against off-line password guessing attacks and Denning-Sacco attacks.
【Key words 】Session Initiation Protocol(SIP); authentication; security; Elliptic Curve Cryptography(ECC); Elliptic Curve Discrete Logarithm Problem(ECDLP)
DOI: 10.3969/j.issn.1000-3428.2011.20.040
计 算 机 工 程 Computer Engineering 第37卷 第20期
V ol.37 No.20 2011年10月
October 2011
·安全技术安全技术·· 文章编号文章编号::1000—3428(2011)20—0114—03 文献标识码文献标识码::A
中图分类号中图分类号::TP309
1 概述
会话初始协议(Session Initiation Protocol, SIP)[1]是由Internet 工程任务组(Internet Engineering Task Force, IETF)开发的协议,是用于建立、修改和终止包括视频、语音等多种多媒体元素在内的交互式用户会话的应用层控制协议。由于SIP 采用文本形式表示消息,因此更容易受到消息模仿、篡改等多种安全威胁。在复杂、开放的因特网环境下,更有必要研究SIP 协议的安全机制。
本文首先分析了超文本传输协议(Hyper Text Transfer Protocol, HTTP)摘要认证和Durlanik 等提出的认证的具体流程,然后指出其各自在身份认证方面可能存在的安全隐患,并针对这些隐患对SIP 协议的认证机制进行改进。通过安全性分析证明认证机制抵御安全隐患的效能。
2 SIP 认证机制及存在的问题
2.1 HTTP 摘要认证
HTTP 摘要认证[2]在RFC3261中被建议用来完成SIP 的认证工作。它采用基于挑战-响应结构的认证机制。当服务器收到客户端的连接请求后,对客户端发起挑战,根据客户端对挑战信息的响应认证其身份。 2.1.1 认证流程
服务器和客户端双方预先共享一个密钥password(为了方便表示,下文中客户端用U 表示,服务器用S 表示)。
(1)U→S :客户端发送一个请求到服务器。
(2)S→U :服务器验证客户端身份的合法性,向客户端发送一个摘要挑战消息challenge ,该消息一般保护只用于本次挑战消息的随机数nonce 和作用域realm 等信息。
(3)U→S :客户端根据收到的挑战消息challenge 中的nonce 、realm ,结合自己的用户名username 和共享密钥password ,通过一个单向哈希函数F 计算响应消息response : F(nonce, username, realm, password)。通常,F 用于产生一个摘要认证信息,多数情况下是用MD5算法。然后,客户端将response 值发送给服务器。
(4)通过用户名,服务器在数据库中提取密钥,然后检验nonce 是否正确。如果正确,服务器计算F(nonce, username, realm, password),将结果与收到的response 进行比较,如果匹配,服务器就认为客户端是合法用户。 2.1.2 HTTP 摘要认证协议的缺陷[3]
(1)服务器伪装攻击
如果用户无法验证服务器的身份是否合法,则容易受到伪装服务器攻击。当客户端收到服务器发来的challenge 消息时,随即回复response 。这样,一个伪装成服务器的攻击者便可轻易获得response ,并通过对伪装服务器收到的多个response 值进行分析,以离线猜测出用户的正确密码。
(2)离线密码猜测攻击
在HTTP 摘要认证的步骤(2)和步骤(3)中,若攻击者截获消息,可以很容易地得知nonce 、username 、realm 及response 的值,接着攻击者通过密码字典假设该密钥为password*,并计算F(nonce, username, realm, password*),将结果与response 值进行比较,若不匹配,则重复猜测password*直到匹配。认
作者简介作者简介::赵跃华(1958-),男,教授、博士,主研方向:协议安全认证,信息安全;刘申君,硕士研究生
收稿日期收稿日期::2011-03-10 E-mail :zhaoyh@