基于秘密共享的SIP身份认证方案

2012-08-07 08:20何文才赵菲韩妍妍孙锦慧董昊聪
网络安全技术与应用 2012年10期
关键词:发给解密攻击者

何文才 赵菲 韩妍妍 孙锦慧 董昊聪

1 北京电子科技学院 北京 100070

2 西安电子科技大学通信工程学院 陕西 710071

0 引言

SIP(Session Initiation Protocol,SIP)会话初始化协议是软交换系统中的重要协议。由于软交换中多媒体业务的会话应用需求,SIP协议制定的主要目的是如何动态、便捷地为会话参与者提供强大的、新型的服务功能,但是对于其安全性方面关注较少。SIP中关于身份认证的安全机制有以下几种:HTTP摘要认证机制、S/MIME加密认证机制、PGP认证机制等。

1 (2, 2)秘密共享方案

(2, 2)秘密共享的思想是将秘密信息以适当的方式拆分成两个分享。从单个的分享中,攻击者无法获得秘密信息的任何信息,只有同时拥有两个分享才能恢复出秘密信息。

文中需要分享的秘密信息是会话参与者的身份 ID,ID为一个32bit的字符串标识。

具体设计原理如下。

ID用一个4×8的数组表示。针对数组中的每bit元素,随机选择3种分享方案扩展成2×2的数组,随后将每bit生成的数组1和2分别串联成8×16的数组,即分享1和分享2。这样生成的分享就拥有了足够的随机性,无法通过单个分享恢复秘密信息。

解密过程是将分享1和2中的数组元素做或运算。当或运算后生成的2×2数组的元素均为1时,解密为1,否则为0。

随机生成的分享可以有效的保密 ID的信息,当分享少于两个时,无法根据单独的分享解密出ID。

即使攻击者知道加密和解密的方案,由于分享方案的随机选择,只要攻击者没有获得生成的两个分享,也无法解密出秘密信息。

本文设计的身份认证系统中对身份信息的确认是依靠KDC发送给用户的证书来认证的。此证书就是用用户的公钥加密的分享。

2 基于(2,2)秘密共享的SIP终端身份认证方案

根据对传统的SIP身份认证方式的分析,本文通过扩展SIP的相关认证算法,结合秘密共享的加密方式,借鉴HTTP的认证思想,设计了一种新的SIP身份认证措施。该措施不仅实现了通信双方的身份认证,也使得秘密信息可以保密传递,并且做到一次一密。

身份认证,对于一个通信网络中的每个SIP实体都很必要。SIP采用类似HTTP的协议风格,实体间的通信方式都是用 Client/Sever的共组模式。因此,本文所述改进的安全认证方案也可用于所有SIP实体间的安全通信。如UAC与Proxy Server之间,Proxy Server与UAS之间,Proxy Server与Redirect Server之间等等。

在本方案中,身份认证所选取的加密算法是(2,2)秘密共享加密方案。系统在初始化阶段需要一个密钥分发中心KDC(Key Distribution Center,KDC)为通信用户分发分享,每一个合法设备,在发起会话时,会主动向 KDC申请一组身份信息的分享。KDC将这组分享以证书的形式分发给需要会话的双方,并产生会话密钥分发给会话双方。

具体流程如图1:

图1 KDC、C和S交互过程

(1) C在会话发起之初,告知KDC要与S通话。

IDC,IDS表示C和S的身份信息。

C——KDC:IDC||IDS

(2) KDC根据时间戳 TK和(2,2)秘密共享加密方案随机生成IDC和IDS的分享IDC1、IDC2、IDS1和IDS2。

EKC和 EKS分别表示消息使用C和S的公钥加密,可用私钥解密。加密算法为RSA加密算法。

KDC——C:EKC[IDS2||K||EKS[IDC1||TK]]

KDC——S: EKS[IDC2||K||EKC[IDS1||TK]]

(3) C收到EKC[IDS2||K||EKS[IDC1||TK]]后,用自己的私钥解密后得到用于验证S身份的分享IDS2,会话密钥K,以及KDC分发给C用于S验证其身份的证书EKS[IDC1||TK],并将其发送给S。

C——S:EKS[IDC1||TK]

(4) S收到KDC发给其的EKS[IDC2||K||EKC[IDS1||TK]],用自己的私钥解密后得到用于验证S身份的分享IDC2,会话密钥K,以及KDC分发给S用于C验证其身份的证书EKC[IDS1||TK]。

S收到EKS[IDC1||TK]后,用自己的私钥解密出IDC1,用(2,2)秘密共享解密算法计算IDC1⊕IDC2是否等于IDC,如果一致,且TK还未过期,则验证C的身份。之后S发送认证通过的信息给 C。并且用会话密钥 K加密自己的身份证书EKC[IDS1||TK]给 C。

EK表示消息使用对称加密算法DES加密,密钥为K。

S——C:EK[EKC[IDS1||TK]]

(5) C收到EK[EKC[IDS1||TK]],用K和私钥解密出IDS1,用(2,2)秘密共享解密算法计算IDS1⊕IDS2是否等于IDS,如果一致,且 TK还未过期,则验证 S的身份。此步骤中,C也可以确认S收到了会话密钥K,之后C发送EK[TK-1]确认会话密钥可以使用,双方开始通话。

C——S:EK[TK-1]

以上过程从双方信息交互的角度来说明认证、密钥分发和密钥确认的流程。下面,从SIP消息体的角度说明这个过程。

图2 双向身份认证通信过程

C与S的SIP交互过程如图2。

(1) 首先 Client向 Sever 发起请求。由Client呼叫方发起一次INVITE请求。该请求以纯SIP消息模式发出。该消息可以是USC发给代理服务器,或代理服务器转发给目的服务器,或USC或代理服务器发给注册服务器的都有可能。该消息携带身份证书CNONCE=EKS[IDC1||TK]。

(2) Sever收到请求后,基于挑战和响应的认证方式,Sever会发送一个错误的响应消息挑战请求。S发送407/401错误信号。其中携带 CNONCE的相关认证信息,以及自己的身份证书NONCE= EK[EKC[IDS1||TK]]。

(3) C收到挑战信息后,再次发送INVITE请求,说明收到挑战。其中携带NONCE的相关认证信息。

(4) S收到NONCE的相关认证信息EK[TK-1]后,确认可以通话。发送180、200信息。

(5) 之后C发送ACK消息,开始会话。

由上述认证过程可以看出,第一、二步中通过将 RSA、DES和(2,2)秘密共享加密算法结合实现了双向认证。

3 安全性分析

3.1 身份伪装攻击

SIP原本的认证机制中,仅实现了服务器对用户的单向身份认证,本方案中,加入了客户端对服务器的身份认证,可以有效防止服务器伪装攻击。

在实际系统中,如果攻击者拦截到上述认证中(4)C发给S的身份认证信息EKS[IDC1||TK],攻击者可以冒充C将其发送给S。此时攻击者可以通过S的身份认证,但当S返回给其S的身份信息和确认密钥是否可用的信息时,攻击者因无法得知会话密钥K,所以无法正常通话。

如果攻击者截获认证中(2)KDC发给 C的信息EKC[IDS2||K||EKS[IDC1||TK]]。并破解了RSA算法,此时攻击者就既有了C的身份证书和会话密钥,可以完全伪装成C。但是由于时间戳TK的存在,如果攻击者没有在时间戳TK的时间内完成破译,那也不能成功攻击。所以本方案在抵御身份伪装攻击上,安全性较高。

3.2 身份认证的安全性

本方案中 KDC每次根据时间戳随机生成用户的身份证书,每次用于身份认证的证书都带有随机性,只有合法用户才能获得证书。如果有攻击者截获证书,必须要破解RSA才能使用证书,安全性比较高。身份认证的算法简单,认证速率高。

4 方案性能分析

本文主要从通信量、计算量和存储量三个方面来分析认证协议的性能。

(1) 通信量

本文所设计的认证协议将身份认证方案和密钥确认方案在一个通信过程中完成,通信双方通过3次交互便可完成通信双方身份认证和共享会话密钥,并且还能确认会话密钥是否可用。而传统的基于证书的PKI体制,仅仅完成通信双方的身份认证就至少3次交互;此方案很大程度上减少了通信量。

(2) 计算量

本文所设计的身份认证算法,只用到了或运算,在数学算法支持上要求较低,计算量小。

但是由于使用了RSA和DES加密,所以在消息解密方面需要一定的开销。

(3) 存储量

本文所设计的认证协议与传统的基于证书的PKI体制相比,KDC不需要存储证书,每个用户只需在本次通信中存储自己的身份证书(分享),很大程度上减少了存储量,也便于系统增加新用户扩容。

5 结束语

本文方案实现了通信双方的双向身份认证,身份认证的基础在于秘密共享加密方案。会话密钥使用公钥加密,保证了会话密钥的安全性。

实际上本系统的身份认证过程有两次,一次是基于公钥体制的KDC对C、S的身份认证,因为只有用户用私钥才能解密和使用身份证书。另一次就是秘密共享加密方案的身份认证。

此系统不能抵御DoS攻击,攻击者可以发送大量无意义的SIP消息,来浪费资源。所以,如需抵御DoS攻击,还需建立SIP的防火墙机制。

其次,此方案的安全性也严格依赖于RSA和DES的安全性。

[1] M.Girault. Self-certified public keys. Advances in Cryptology-EUROCRYPT’91.LNCS547,Berlin:Springer-Verlag.1991.

[2] 王伟志.IP视频电话的安全策略研究与实现.西安:西安电子科技大学.2011.

[3] Law L,Menezes A,Qu M,etal.An efficient Protocol for AuthenticatedKeyAgreement.Designs,Codes and Cryptography. 2003.

猜你喜欢
发给解密攻击者
中共中央文委发给郭沫器的特殊信件
机动能力受限的目标-攻击-防御定性微分对策
好人卡别再发给我
炫词解密
解密“一包三改”
炫词解密
发给老公看看 他会对你更好
正面迎接批判
当不被人理解的时候……
有限次重复博弈下的网络攻击行为研究