随着移动通信提供的业务越来越广泛,用户对通信中的安全和其隐私的要求也越来越高。第三代移动通信系统虽然较第二代移动通信系统在安全方面有了较大的改善,但是它仍然采用的是私钥认证体制的用户认证方案。那么我今天就给大家介绍一个适用于移动通信系统的公钥加密认证方案。

一、认证和密钥交换协议

在通信系统中,为实现安全通信,用户和网络运营商在初始化时就先得到权威机构分配的、经过认证的密钥。公钥加密就是得到一对基于某种公钥密码体制的公私密钥对,其中公钥以证书的形式对外发布,以供使用者相互之间验证彼此的身份。而在验证身份后,通话过程中使用的会话密钥通常按照会话密钥产生方案由双方协商决定,因此会话密钥也需要双方的认证确认。为了简化过程,提高运行效率,可以把它与双方身份的认证合并进行。

1、_协议的设计原则

由于移动通信的终端设备多以运算能力相对较弱、存储量小的智能卡为主,因此设计移动通信系统中的认证协议应遵循原则:

(1) 尽量减少移动台的运算量

采用计算简单的加密算法,将执行协议所需要的计算尽可能多的转移到网络服务器端在认证协议中使用的安全密码算法有两种:Hash 函数和签名算法。Hash函数可以选择信息—摘要算法(Message-Digest Algorithm5, MD5)、安全杂凑算法(Secure Hash Algorithm, SHA)等;签名函数则应该选择椭圆曲线体制的签名算法,因为它在同等安全条件下,较通用关键子密码算法(Rivest-Shamir-Adleman algorithm,RSA)等加密算法运算量要小得多。

(2)使传送的消息简短

由于无线通信的带宽比较窄,信道差错率比较高,因此尽可能使传送的消息简短,减少相互传递的认证信息的个数。

2、基本标识符

采用如下的标识符来描述协议:CA为证书权威,caid为证书权威的身份;r是网络运营商NO产生的随机数,它属于基于大素数p的一个循环群Zp*,CertN和CertU分别是证书权威颁发给NO和U的证书;K是用户产生的随机数,它也属于基于大素数p的一个循环群Zp*,同时它也作为双方的会话密钥;IMSI是用户U的永久身份,Sigu和Signo分别是U和NO拥有的一种签名算法。PK_N,PR_N分别是NO的公钥和私钥;PK_U,PR_U分别是U的公钥和私钥;EPK_X(Y)就是用X的公钥对Y进行加密(X为U或NO);)DPR_X(Y)就是用X的私钥对Y进行解密(X为U或NO);X′是接收方为了验证收到的信息X,而从本地检索出的与X对应的那个值,X′直接从本地检索出,原则上X=X′,在本协议中X为K或者r。

3、协议描述

协议设计的前提是用户U和网络运营商NO双方彼此都不知道对方的公钥,但他们都已经拥有了由CA颁发的证书CertU和CertN。各自都可以获得自己的证书,但并没有获得对方的证书。U和NO双方都拥有一个CA的公钥PK来检验他们的证书。本协议在U和NO之间展开,不需要与权威的认证机构进行通信。U与NO之间执行如图所示的协议。

适用于移动通信系统的公钥加密认证方案

具体步骤为:

(1) U发送CA的身份信息caid给NO。

(2) NO收到caid后,可以据此识别CA的身份,然后产生一个随机数r∈ZP*,并把证书CertN和r一起发送给U。

(3) U收到NO发来的消息后,从CertN中检索出NO的公钥PK_N,产生随机数K∈ZP*作为会话密钥,这同时也是一个挑战信息,然后用自己的私钥对K、IMSI、CertU和随机数r作签名运算得us,再用NO的公钥对K、IMSI、CertU、r和us进行加密运算得a,U把a发送给NO。

(4) NO收到a后,首先用自己的私钥解密a得(K,IMSI,CertU,r,Su)检查r=r′是否成立,若成立,从CertU中检索出用户的公钥PK_U,并用该公钥通过U的验证签名算法检验签名su=Siguh(K||IMSI||CertU||r)=是否成立,若成立,则会话密钥K得到确认,再检查用户身份IMSI;用自己的私钥计算签名sn=Sigon h(k),然后用U的公钥加密计算,b=Epk_u(k,sn),NO发送b给U。

(5) U收到b后,用私钥解密得(K,Sn),检查K=K′是否成立,若成立,则NO的身份得到验证;然后U从CertN中检索出NO的公钥和其验证签名算法来验证它的签名sn=Sigon h(k)是否成立,若成立,会话密钥K得到确认。

二、协议的性能分析

协议满足第三代移动通信的安全要求,应用公钥加密,提高了协议安全性,同时双方通过使用数字签名,可提供业务的不可否认性;虽然使用了公钥加密,但计算量并不太大,可满足移动通信终端的要求。

1、协议实现的基本功能

(1)U对NO的身份验证:

通过检验(K,Sn),用户知道K是他原来发送的,确信与其通信的NO知道对应的私钥,并且通过NO公钥验证签名sn=Sigon h(k)进一步验证了NO的身份。

(2) NO对U的身份验证:

NO通过检验它产生的随机数r,可以知道r是他原来产生的,确信与其通信的U是这个IMSI对应的U,而通过用户的公钥验证签名su=Siguh(K||IMSI||CertU||r),进一步验证了U的身份。

(3) 协议产生的会话密钥:

协议产生的会话密钥K是由U产生的,因此对U来说是新鲜的,而对NO来说,K是由其公钥加密得来的,只有它本身用私钥解密才能得到相应的K,因此可以保证K是新鲜的,而通过验证用户的签名us进一步确认了会话密钥K的新鲜属性。

(4) 会话密钥K得到了U和NO的确认:

U用自己的私钥解密得到K和ns,通过验证KK′=的成立及NO的签名ns可以确认NO已经拥有了会话密钥;而NO通过验证r=r′及U的签名us可以确认,K就是U所要用的会话密钥。

5) U和NO双方所发数据都不可抵赖:

NO通过验证U的签名su=Siguh(K||IMSI||CertU||r),从而使U所发的数据不可抵赖;U通过验证NO的签名sn=Sigon h(k),从而使NO发的数据不可抵赖。

2、协议的抗攻击性

本协议安全的前提是假定协议中所采用的各种密码算法是安全的。

(1) 协议产生的会话密钥是安全的:

即使非法攻击者能够截获传递的信息a、b,然而他们都是用公钥加密的,由于计算离散对数的困难性,他无法得到会话密钥。

(2) 协议能抗中间人攻击:

攻击者作为中间人,虽然可以得到未加密的caid、CertN和r,但由于caid和CertN本来就是公开的,即使得到也没有实际的意义;而对于随机数r,攻击者虽然可以得到这一新鲜信息,但它无法得到已被公钥加密了的K、IMSI及CertU等信息,因此它无法通过NO的签名验证,而且它也得不到双方的会话密钥K。而对于加密信息a和b,攻击者冒充任一方得到这两个信息,都由于不知道相应的私钥而无法完成协议的认证功能。

(3) 协议能抗重放攻击:

为了防止重放攻击,协议里的信息包含一些“新鲜”属性。在认证过程中,U和NO各自产生一个会话密钥K和随机数r作为新鲜信息,在5)中,U根据),(nsK检查K是否新鲜;在4)中,NO检查r和us来确知信息的新鲜属性。只要认证双方有一方是合法的,并按协议的规则执行,则攻击者重放已截获的信息无法得到有效的会话密钥,同时其身份认证也无法通过。

(4) 协议能抗穷举密钥攻击:

许多业务的安全系统广泛使用密码认证,但是密码在穷举攻击下是很脆弱的,攻击者可以成功的猜出密码,然而用公钥加密提供了一种阻止穷举攻击的方法。因此,使用公钥加密信息,穷举攻击行不通。

(5) 用户身份得到了保护:

用户的身份信息发送到网络时,使用网络的公钥加密,攻击者无法获取用户的身份信息。

3、协议的效率

(1) 协议的执行不涉及第三方:身份认证和会话密钥的建立由通信双方完成,不需要密钥生成中心或其他第三方的协助,因而协议结构简单,通信次数少。

(2) 用户端计算量少:用户端涉及的公钥密码体制的算法简单,运算量少,达到了协议设计所要求的目标,适合移动通信终端。

本文基于公钥密码体制设计了一个有效的适用于移动通信系统的身份认证和会话密钥分配方案,该方案能够满足通信双方进行相互身份认证的要求,也能为通信双方分配一个经过双方确认的会话密钥,而且可以提供业务的不可抵赖性。同时这个协议计算复杂程度低,简单而又足够安全,高效实用,可以为未来移动通信中的诸多业务需要不同水平的安全考虑提供技术支持。

小知识之公钥加密

由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。