专利名称:利用sim卡实现终端与网络双向鉴权的方法和装置的制作方法
技术领域:
本发明涉及到第二代GSM移动通信系统和第三代移动通信系统中的安全问题,更具体涉及到终端与网络之间相互鉴权的一种方法,以及实现该方法所需的装置。
背景技术:
GSM移动通信系统已经在世界范围内广泛使用,仅在中国就有数亿个用户。但最近研究发现,由于GSM系统使用的SIM卡没有提供很好的信息保护措施或方法,它的许多安全隐患已经暴露出来,特别是使用SIM卡的GSM系统不提供终端对网络的鉴权,导致攻击者能够通过伪造基站与终端联系,骗取终端信任,使终端用户蒙受损失。这种安全隐患在第二代移动通信系统中的危害表现并不显著,因为其业务范围很有限。但在第三代移动通信中,由于业务种类的大量增加,业务所涉及的资金力度也会大大增加,如通过手机进行电子支付等,因此如果将这样的安全隐患带入第三代通信系统中,将使消费者无法承受。
目前,在第二代GSM通信系统中,只有网络对终端进行单向鉴权,其过程如图1所示在GSM系统中,当终端(SIM/ME)需要寻找网络时,将自己的标识符IMSI通过访问基站(VLR)或交换机(MSC)传送到归属基站(HLR)。HLR根据IMSI信息检查终端是否为合法用户,如果是,HLR根据IMSI可以查到终端SIM卡中储存的密钥(Ki),然后产生一个随机数RAND,并根据该IMSI所对应的密钥和这个随机数,通过A3和A8算法产生应答(XRES)和数据加密密钥(Kc),并将三元组(RAND,XRES,Kc)传给VLR。VLR在收到该三元组后,将RAND传给终端用户,终端用户根据RAND和SIM卡中储存的密钥(Ki)产生应答RES和Kc,然后将RES传给VLR。VLR比较从终端接收到的RES是否与从HLR传来的XRES一致。如果是,则完成对该终端的鉴权,否则拒绝对该终端提供服务。
当VLR完成对终端鉴权后,将给该终端分配一个临时身份标识符TMSI,在接下来的通信中,终端身份将用该TMSI表示,直到找不到网络时再重复上述的鉴权过程。
为了简化鉴权过程,针对同一个IMSI,HLR通常一次分配多个三元组给VLR,因此在多数情况下鉴权过程中的终端身份标识为TMSI,VLR所用的三元组也是HLR所分配的多个三元组中的一个。这时当VLR需要对使用某一TMSI的终端进行鉴权时,鉴权过程可在该终端与该VLR之间进行,这时鉴权所使用的是VLR储存的三元组中的一个,因此不需要HLR的帮助。对于终端而言,VLR与HLR之间的通信是不可见的,而且VLR与HLR之间相互信任,不存在需要鉴权的问题,因此可以把VLR和HLR统一看作网络,这样一来无线端口的通信就是在终端与网络之间进行的。
在传统意义上,终端包括手机和用户卡,在GSM系统中,这种卡称为SIM卡。无论网络对终端的鉴权还是终端对网络的鉴权,在终端所发生的处理都是通过手机和SIM卡协作完成的,因此我们把手机和SIM卡统称为终端。
第三代移动通信使用的是USIM卡,采用的加密算法也比GSM系统的更安全,而且能够实现终端用户与网络的双向鉴权。从目前的分析结果看,第三代移动通信的USIM卡可以提供比较满意的安全性保护,包括对数据流的加密保护措施。但是,由于使用第二代SIM卡的用户数量庞大,而且由于种种原因,许多用户不愿意更换手机号码。但这些用户又是使用第三代移动通信所提供的业务的潜在消费群体,所以,从第二代SIM卡到第三代USIM卡的过渡需要经历很长的一段时间。因此,如何能让第二代SIM卡的用户安全地使用第三代通信网络所提供的业务是目前亟待解决的问题,这个问题的解决将具有非常现实的重大的意义。
发明内容
针对上述问题,本发明的目的在于为第三代移动网络提供一种利用第二代SIM卡实现终端与网络双向鉴权的方法,即,在现有的网络对终端鉴权的基础上,提供终端对网络鉴权的方法,从而使第二代SIM卡的用户可以安全地使用第三代移动通信网络所提供的业务。该方法的特征在于,改变GSM协议中的数据格式,使其在第三代移动通信中,在网络对终端鉴权的过程中,也完成终端对网络的鉴权。更具体地,即对HLR产生的随机数RAND进行限制RAND不再是一个128比特的随机数,而是由某一小于128比特的随机数R1扩张得到的。
该方法包括以下步骤1)网络产生一个小于128比特的随机数R1,然后扩展成128比特的信息RAND,其中,R1较佳为32~96比特大小的随机数,建议为64比特;2)网络以RAND作为挑战信息,利用网络与终端的共享密钥计算所期望的应答XRES以及数据加密密钥Kc;3)网络根据随机数R1计算R2,其中,R2是关于随机数RAND或R1、终端身份标识和数据加密密钥Kc的单向函数,然后根据R1和R2产生128比特的信息RAND’,其中,由RAND’很容易分离出R1和R2,一种简单的实现方式可以是令RAND’=R1‖R2,其中,“‖”表示数组R1和R2的连接;本领域的技术人员应当理解,通过随机数R1或由R1扩展得到的RAND来计算R2均是可实现的,属于等效手段;
4)终端接收到RAND’后,根据其中的R1,利用和网络同样的算法将R1扩展成RAND来计算应答RES,并发送给网络用于鉴权;同时,终端根据R1/RAND、身份标识和数据加密密钥Kc,使用与网络同样的算法计算R2’;5)终端比较R2与R2’是否相等,若相等则终端鉴权网络成功,否则失败;6)网络比较RES与XRES是否相等,若相等则网络对终端鉴权成功,否则失败。
其中,步骤5)和6)可以分别或同时进行,互不影响。
在上述方法中,步骤3)和4)中对于R2的计算还可以有多种方式,比如,计算R2的时候不需要终端身份标识,即R2也可以是关于R1/RAND、Kc的单向加密函数;或者,在R2的计算中还可以加入其他的变量,如时间戳等信息。本领域的技术人员可以理解,此处引入单向加密函数计算R2的目的在于只有掌握网络与终端共享密钥的合法网络和终端设备可以计算正确的R2,因此计算中用到的变量Kc;有时候为了保证通信信息的保鲜性,需要在计算中用到时间戳。
对于上述的方法,攻击者只有掌握Kc信息并截获TMSI后才可能成功,其难度相当于SIM卡内的原始密钥被破译。在攻击者没有Kc的情况下,最可能的攻击是重放攻击,即攻击者截获某个RAND,然后在以后的通信中使用。但这种重放攻击成功的概率很小,因为一旦更换TMSI,重放攻击将失去作用。在攻击者没有掌握Kc的情况下,即使偶尔成功使用重放攻击迷惑终端,也不能假扮终端攻击网络,因此所造成的损失很有限。
本发明的另一个目的在于提供一种移动终端设备,包括一接收发送模块和一辅助加密模块。其中,接收发送模块属于公知技术,用于终端和网络之间的通信;辅助加密模块可以通过软件或硬件的方式实现,该模块至少包括一个数据扩展、提取单元,用于将从网络接收到的一小于128比特的数组R1扩展为128比特数组RAND并且能从RAND’中提取R1。本领域的技术人员应当理解,所述的移动终端设备可以应用在上述的方法中,也可以应用在其他方式的移动通信中,其中的数据扩展、提取单元所使用的数据扩展、提取方法与该移动终端所在的网络相适应,其可以是一般的数据连接方法或者加密方法,总之,只要能实现数据扩展、提取的目的均可,其并非本发明的单一技术特征,本领域的技术人员可以通过任何一种方法实现。其中,该辅助加密模块的具体实现方式也随具体移动终端设备的类型及其所在的网络而异,本领域的技术人员均可通过公知技术实现。
进一步地,所述的移动终端设备还可以包括一单向加密函数模块和一比较模块。该移动终端设备可应用于本发明提供的方法中。其中,单向加密函数模块用于根据一单向函数加密算法,通过随机数R1或RAND、终端身份标识和数据加密密钥等信息计算R2,其所采用的算法及步骤与网络一致;比较模块用于比较单向加密函数模块计算的R2’与移动网络传来的R2是否一致。其中,所述的单向函数加密算法包括但不限于公知的数据加密算法和hash函数,本领域的技术人员可以通过现有技术很容易地实现。应当说明的是,所述的单向函数加密模块和比较模块的具体实现方式并非本发明的单一特征,本领域的技术人员可以根据具体移动终端的类型,结合其所应用的网络利用公知技术实现,因此本发明中就不再详述。
本发明的技术效果在于,通过本发明提供的方法和装置,终端用户不需要更换现有的第二代SIM卡,就能在第三代移动通信网络中实现终端与网络间的双向鉴权,从而可以安全地使用第三代移动通信网络所提供的业务,如浏览网页、查收电子邮件、银行支付和转账等。
图1是现有技术中GSM系统网络鉴权终端的流程示意图;图2是本发明实施例的流程图示意图;图中的SIM代表SIM卡,ME代表移动终端设备(Mobile Equipment),MSC代表移动交换中心(Mobile Switching Center),VLR代表访问基站(Visitor Location Register),HLR代表归属基站(Home Location Register),Auc代表认证中心(AuthenticationCenter),其中,MSC/VLR和HLR/AuC均属于移动网络。图中,箭头代表信息的传递方向,箭头上方的数据表示所传送的信息;图中列出的计算步骤均为在与该计算步骤所在位置相对应的设备中进行的。
具体实施例方式
以下结合附图,对本发明进行详细说明,但不构成对本发明的限制。
在图1所示的GSM系统中,终端(SIM/ME)有一个网络可以识别的永久身份标识IMSI,在网络对终端完成第一次鉴权之后,网络为终端分配了一个临时身份标识TMSI,该临时身份标识也会不断变化,但合法网络和终端都记录有该身份信息。
在GSM系统中,网络对终端的鉴权是通过网络传给终端一个随机挑战RAND来实现的。终端要使用SIM卡中的密钥信息及算法才能产生一个正确应答RES,网络根据同样的信息可以计算一个期望应答XRES,并与终端传来的应答进行比较来完成。因为在现有协议中终端没有机会向网络发出挑战,因此终端对网络的鉴权只能嵌入到网络对终端的鉴权过程中。
如图2所示,为本发明在第三代移动通信网络中利用SIM卡实现终端与网络双向鉴权的方法的一较佳实施例,具体实现过程是归属基站(HLR)选取一个64比特的随机数作为R1,令RAND为R1的两次连接,即RAND=(R1‖R1)。HLR将RAND=(R1‖R1)输入到A3和A8算法中,使用与终端SIM卡中相同的密钥分别产生XRES和Kc。然后将三元组(RAND,XRES,Kc)传给访问基站(VLR)。虽然事实上HLR不需要把整个RAND传给VLR,只需传送RAND的前半部分R1即可。但为了保留GSM的协议格式,可能传输RAND需要的改动更小。当VLR接收到来自HLR的三元组后,根据R1,Kc和用户的临时身份标识TMSI产生一个64比特的输出R2,在本实施例中使用一个hash函数作用到这三个数上产生一个输出R2,但也可以Kc为密钥通过某种加密算法如AES将R1和TMSI加密。其他的实现方式还有很多种,本领域的技术人员都能够理解,使用某种单向函数加密算法在此并非本发明的单一技术特征,总之,要求输出的结果R2是R1、Kc和TMSI的单向函数就可以达到发明目的,即,R2=f(R1,TMSI,Kc),其中,f为单向加密函数。当然,也可以是R2=f(RAND,TMSI,Kc),由于在本实施例中RAND=(R1‖R1),因此两者在本质上也是相同的。VLR将RAND中的后半部分用R2取代,得到RAND’=(R1‖R2),将RAND’传给终端。终端收到从VLR传来的RAND’后,从中提取R1,将R1‖R1输入到SIM卡中的A3和A8算法得到RES和Kc,然后将RES传回到VLR。VLR验证是否满足RES=XRES,若满足等式,则终端为合法用户。在此同时,终端根据从VLR处获得的TMSI和从RAND’中提取的R1以及用SIM卡计算出的Kc,可以计算R2’=f(R1,TMSI,Kc),并与RAND的后半部分进行比较,验证R2’=R2?若二者相等,则网络为合法网络。
从上述步骤可以看出,在本实施例中,除了HLR用的RAND只有64比特是随机的外,所有协议步骤及数据格式与GSM系统中的完全一致。在使用SIM卡中的A3和A8算法前,网络和终端都需要把64比特的随机数以相同方式扩展为128比特。在其他的实现方式中,R1不一定是64比特,只要是小于128比特的数均可,较佳为在32比特至96比特之间,太短或太长则可能影响到方案的安全性。在计算R2时使用TMSI信息的目的是增强抗重放攻击的能力。为了进一步避免重放攻击,可以在终端设备中存储一定量的旧RAND’信息,以确保接收到的RAND’信息相对自己的记忆是新的。
一种与上述方法相适应的移动终端设备,包括一接收发射模块、一辅助加密模块、一单向加密函数模块和一比较模块。其中,接收发射模块用于终端和网络之间的通信;辅助加密模块包括一数据扩展、提取单元,用于将从VLR接收到的64比特随机数R1通过两次连接扩展成为128比特的数组RAND=(R1‖R1);单向函数加密模块用于计算R2’=f(RAND,TMSI,Kc);比较模块用于比较R2’与从VLR接收到的RAND’中提取的R2是否相等。其中,接收发射模块为一般移动终端设备所具有的公知模块,本发明特有的辅助加密模块、单向加密函数模块和比较模块则是通过软件的方式实现的,本领域的技术人员都可以通过公知技术,并根据具体设备的类型和所应用的网络类型实现。
以上通过具体实施例详细描述了本发明所提供的方法,本领域的技术人员应当理解,在不脱离本发明实质的范围内,可以对上述的方法进行各种修改或变形。
权利要求
1.一种在第三代移动通信中利用SIM卡实现终端鉴权网络的方法,包括步骤1)网络产生一个小于128比特的随机数R1,然后扩展成128比特的信息RAND;2)网络以RAND作为挑战信息,利用网络与终端的共享密钥计算所期望的应答XRES和数据加密密钥Kc;3)网络利用随机数R1产生128比特的信息RAND’=R1‖R2并发送给终端,其中,R2是关于随机数R1或RAND、终端身份标识和数据加密密钥Kc的单向函数;4)终端从RAND’中提取R1,利用和网络同样的算法将R1扩展成RAND来计算应答RES,并发送给网络用于鉴权;同时,终端根据R1或RAND、身份标识和数据加密密钥Kc,使用与网络同样的算法计算R2’;5)终端比较R2与R2’是否相等,若相等则终端鉴权网络成功,否则失败;6)网络比较RES与XRES是否相等,若相等则网络对终端鉴权成功,否则失败;其中,步骤5)和6)不分先后。
2.如权利要求1所述的方法,其特征在于,所述的RAND’是由R1和R2两部分按任意方式组成的,且在给定RAND’后容易分离出R1和R2。
3.如权利要求1或2所述的方法,其特征在于,在步骤3)和4)中,用于计算R2的变量退化为两个,不再需要终端的身份标识。
4.如权利要求3所述的方法,其特征在于,在步骤3)和4)中,R2的计算还用到时间戳等信息。
5.一种移动通信终端设备,包括接收发送模块,用于终端和网络之间的通信,其特征在于,还包括辅助加密模块,该模块至少包括一数据扩展、提取单元,用于将小于128比特的数组扩展为128比特数组或反过来从128比特数组中提取出小于128比特的数组。
6.如权利要求5所述的移动通信终端设备,其特征在于,还包括一单向加密函数模块和一比较模块,所述的单向加密函数模块用于根据和移动网络相同的单向加密函数算法计算特定值,所述的比较模块用于比较终端与网络分别计算的该特定值是否一致。
7.如权利要求6所述的移动终端设备,其特征在于,所述的单向函数加密算法为hash算法。
8.如权利要求6所述的移动终端设备,其特征在于,所述的单向函数加密算法至少包括两个自变量由网络发送给终端的随机数和数据加密密钥。
全文摘要
一种利用第二代SIM卡实现终端与网络双向鉴权的方法,在现有的网络对终端鉴权的基础上,提供终端对网络鉴权的方法,该方法的特征在于,改变GSM协议中的数据格式,使其在第三代移动通信中,在网络对终端鉴权的过程中,也完成终端对网络的鉴权。更具体地,即对HLR产生的随机数RAND进行限制RAND不再是一个128比特的随机数,而是由某一小于128比特的随机数R1扩张得到的。通过该方法,终端用户不需要更换现有的第二代SIM卡,就能在第三代移动通信网络中实现终端与网络间的双向鉴权,从而可以安全地使用第三代移动通信网络所提供的业务,如浏览网页、查收电子邮件、银行支付和转账等。
文档编号H04W12/06GK1802029SQ20061001113
公开日2006年7月12日 申请日期2006年1月9日 优先权日2006年1月9日
发明者武传坤 申请人:中国科学院软件研究所