当前位置:文档之家› 会话初始协议安全认证机制的分析与改进

会话初始协议安全认证机制的分析与改进

会话初始会话初始协议安全认证机制的协议安全认证机制的协议安全认证机制的分析分析分析与改进与改进 赵跃华赵跃华,,刘申君 (江苏大学计算机科学与通信工程学院,江苏 镇江 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期

Vol.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@ujs.edu.cn 第37卷 第20期 115 赵跃华,刘申君:会话初始协议安全认证机制的分析与改进 为该password*是正确的密钥,成功破译密码。 HTTP摘要认证的具体流程如图1所示。 计算响应值request= F(nonce, username,password,realm)生成nonce计算F(nonce,username,password,realm)与requset是否一致服务器客户端请求挑战407/407(nonce, realm)请求(request)200 OK 图1 HTTP摘要认证流程 2.2 Durlanik’s SIP认证机制 Durlanik等提出了一种基于椭圆曲线密码(Elliptic Curve Cryptography, ECC)的SIP协议的认证机制,利用椭圆曲线上的离散对数问题(Elliptic Curve Discrete Logarithm Problem, ECDLP)确保认证的安全性[4]。认证的具体流程如图2所示。 选择随机整数 c∈R[1,n-1]计算cP请求request(username,cP⊕F(pw))挑战challenge(realm, sP⊕F(pw),F(cP,SK))提取sP:sP⊕F(pw)⊕F(pw)计算SK:SK=csP验证F(cP,SK)响应RESPONSE(username,realm,F(username,realm,SK))共享会话密钥SK=scP提取cP:cP⊕F(pw)⊕F(pw)选择随机整数s∈R[1,n-1]计算sP计算SK:SK=scP验证F(username,realm,SK)服务器客户端图2 Durlanik’s SIP认证流程 2.2.1 认证流程 服务器和客户端之间共享一个参数P,该参数是椭圆曲线产生的。 (1)U→S:U产生一个随机整数c,计算cP⊕F(pw),并以请求信息request(username, cP⊕F(pw))的形式发送给S。 (2)S→U:S接收到请求消息后,通过cP⊕F(pw)⊕F(pw)计算出cP。S产生一个随机整数s并计算会话密钥SK=scP。发送挑战信息challenge(ream, sP⊕F(pw), F(cP, SK))。 (3)U→S:接收到挑战消息后,U通过sP⊕F(pw)⊕F(pw)计算出sP和会话密钥SK=scP。U验证F(cP, SK)。若不等,

U拒绝服务器的挑战信息;若相等,则对S的身份进行认证。U计算F(username, realm, SK),并以响应消息response (username, realm, F(username, realm, SK))发送给S。 (4)S接收到响应消息,计算F(username, realm, SK)并验证是否与接收到的F(username, realm, SK)相等。若不等,S拒绝U的响应消息;若相等,则认为U是合法的并接受U的登录请求。 U和S完成相互认证后,SK就作为其共享的会话密钥。 2.2.2 Durlanik’s认证协议面临的安全威胁 当SIP的客户端/服务器协商一个旧的会话密钥SK后,攻击者就能设法找到长效私人密码pw或者其他会话密钥。在Durlanik’s SIP认证机制中,存在遭受Denning-Sacco攻击的可能性[5]。 攻击者记录Durlanik’s认证协议某运行信息,并通过某种方式获得了SIP客户端和服务器之间的共享会话密钥SK= csP。 由于cp⊕F(pw)和F(cP, SK)是在Durlanik’s认证步骤(1)和步骤(2)中的公开值,因此攻击者可以通过以下离线密钥猜测方式在cp⊕F(pw)中获得长效私人密码pw: (1)攻击者在密码字典D中猜测一个密码pw*。 (2)检查F(cP, SK)与F(cp⊕F(pw)⊕F(pw*),SK)是否相等。 (3)如果相等,说明pw*=pw,成功破译密码。 (4)如果不等,继续步骤(1)和步骤(2),直到相等为止。 从以上分析可知,这2种SIP安全认证协议都存在不同程度的安全隐患,为了解决这些安全隐患,本文提出一种改进的SIP认证机制。

相关主题