使用期满标记的无线通信认证的制作方法

文档序号:7608919阅读:154来源:国知局
专利名称:使用期满标记的无线通信认证的制作方法
技术领域
本公开一般涉及无线通信,并更具体地涉及一种保护无线通信系统的方法。
背景技术
全球移动通信系统(GSM)协议定义了一种用于无线通信的蜂窝技术。GSM已由诸如为GSM网络提供因特网内容和基于分组的数据服务的通用分组无线业务(GPRS)的新服务进一步扩展。GSM用于包括语音、因特网浏览、电子邮件和多媒体数据的许多类型的无线通信。GSM结合各种安全机制来保护通过这些系统通信的内容。服务提供商和用户为了他们通信的保密性和他们数据的保护,同样地依靠这些安全机制。典型地,这些安全机制通过如下方式工作对接入网络的用户进行认证,然后用户在通过空中传送数据前对数据进行加密。这种安全机制易受第三方攻击。因此需要一种用于保护无线通信的方法和装置。


图1示出了可能由攻击者损害的典型GSM网络系统的一部分;图2示出了在认证期间可能涉及的用户站的部件;图3是示出在三元组中实现期满时间的实例的流程图;图4是示出处理具有期满时间标记的认证三元组(authenticaitontriplet)的实例的流程图;图5示出了用户单元。
具体实施例方式
加密(encryption)是为了保护数据免受未认证第三方的访问而修改数据的处理。这个技术一般利用对通过空中接口(例如,用户站和基站之间的空中接口)以及其它无线或有线链路发送到需要的远程方的数据进行加密。编密码(ciphering)一般指的是以如下方式对数据进行编码只有具有适当“密钥”的接收器才能将其解码。例如,可通过执行伪随机比特序列和通信数据的普通突发脉冲比特之间的异或操作,来实现加密。仅当接收器具有适当的密钥时,才能“解除”该操作并提取通信数据的突发脉冲。
在无线通信系统中使用的一种类型的加密是利用序列密码来执行的。序列密码(stream cipher)的加密算法采用仅对用户设备(诸如蜂窝电话或具体而言是设备内的用户识别模块(SIM)卡)已知的秘密密钥和帧号,并产生要与用于加密的输入进行异或的伪随机比特流(即,密钥流)。该信息还用于解密接收到的数据。这样,将比特彼此无关地进行有效加密。
一般用于产生用作上述的伪随机序列的两种算法是A5/1和A5/2算法。最初的GSM协议支持三种用于空中链路加密的安全级未加密;A5/2加密;和A5/1加密。A5算法可随意地用于语音或数据连接上的加密。A5是一种序列密码,其使用64比特密码密钥,但基于具有228比特的块长度的块。A5被设计成高效地实现在硬件中,仅包括异或和1比特加法运算。A5具有两个版本在欧洲使用的A5/1;和在出口系统中使用的A5/2。A5/1和A5/2都是用于加密的序列密码算法,但各自提供略微不同的安全性且引起不同的复杂度。如本领域的技术人员所公认的,A5是GSM规范的一部分。A5/1被已知为“强”出口限制版本,而A5/2是没有出口限制的标准和“弱”版本。有时使用的A5加密的另一版本的是A5/3,其基于已知为“KASUMI”的分组密码(blockcipher)通用移动通信系统(UMTS)/宽带码分多址(WCDMA)算法。Kasumi是使用真128位密钥的64位分组密码。
这些算法中的每个都使用通过认证机制(诸如根据支持标准GSM的认证机制)导出的64位会话密钥(Kc),作为秘密密钥。GSM安全性基于利用存储在SIM卡和用户归属网络认证中心(AuC)上的128位密钥(Ki)的询问应答机制。在活动会话(active session)的初始化期间,AuC产生128位随机选取的值(RAND),并对该RAND应用诸如也是GSM规范的一部分的A3或A8的认证算法。该算法产生预期响应(SRES)和会话加密密钥(Kc)二者,其中的每个都是RAND和Ki的函数。RAND、SRES和Kc集体构成GSM认证向量(认证三元组)。
在注册期间,将认证三元组发布给把RAND转发给用户站的基站。用户站中的SIM卡读取RAND,并根据相同的认证算法或密钥一致算法(key agreement algorithms)(分别为A3或A8),利用其秘密密钥Ki来计算SRES和会话密钥Kc。将计算出的SRES值发送给可将其与认证三元组中的SRES进行比较的基站,从而认证用户站的有效性。在活动会话期间,一旦认证了用户站,就可将Kc用于通信的加密,如基站指示的那样。
不幸的是,A5算法易受第三方攻击,使得数据和网络都受到损害。一般而言,对无线系统上通信的数据的加密,是在用于纠错的编码之后进行的。众所周知的是,编码会在将要被加密的比特之间引入已知的线性关系。这样,尽管攻击者可能不知道单个输入比特的实际值,但是他们能根据编码的已知线性关系,知道某些组将被异或为0。这种已知的线性关系可允许攻击者在不需要专门得知被加密数据的内容的情况下,侵入受保护的通信中。
这种攻击被称为“唯密文(ciphertext only)”攻击,且已被证明为对各种A5加密算法有效。这种攻击的一个实例是如由Biham等人公开的“中间人”攻击(MITM)。基本上,对GSM的MITM攻击包括能将其自身插入认证处理中和能截取RAND和SRES二者的假基站。该假基站迫使用户站在认证后使用较弱的A5/2算法来加密。为了让假基站从A5/2业务量中突破Kc,仅需要少量的A5/2加密通信。在该点上,假基站可充当用户站与该假基站之间的支路上的A5/2加密,和该假基站与真基站之间的支路上的真基站所要求的无论哪个加密之间的译码器。更重要的是,假基站能恢复随后可重新使用的整个认证三元组,以用于诸如劫持电话呼叫或建立假服务。此外,尽管已开发了诸如A5/3的较强的A5算法,但是由于Kc可工作于这些算法中的任何一个中,甚至较强的算法也会被首先允许截取Kc的较弱算法中的安全缺陷所破坏。
尽管为了保护免受这种类型的攻击已提出了方案,但是当前还没有不需要对标准GSM协议或装备进行显著改变的有效解决方案。而且,对SIM和所配置的用户站的改变可能是不可能实现的或不切实际的。对网络基础结构的改变也会是麻烦的、昂贵的和难以同步的。因此,当前提出的对这些攻击的威胁的解决方案可能会太昂贵或太不切实际,以致不能实际地实施。
现参照附图的图1,其示出了可能由攻击者损害的典型GSM网络系统的一部分。用户可使用可以是或可包括蜂窝电话和用户识别模块(SIM)卡104的用户站100来通过网络进行通信。当然,应理解的是,本文的内容适用于各种通信设备,且不限于蜂窝电话。SIM卡104是可置于蜂窝电话内的一小片电路。SIM卡104可存储关于用户的个人信息,诸如他的电话号码、秘密密钥(后面将进一步详细说明)、电话簿条目和其它详细资料。可使用这些信息中的一些,以便可以对提供电话服务的网络识别和认证用户。SIM卡104还可包括处理能力,以及在将语音和数据从用户站发送给网络之前为语音和数据发送进行加密的能力。可随意地将SIM卡104从一个设备移到另一个设备,并且/或者可将不同的SIM卡104插入任何GSM蜂窝电话中。例如,如果用户具有一个电话但将其同时用于个人和商务通话,则该用户能取决于他将如何使用该电话,来更换SIM卡(一个卡包含着他的个人标识和数据,第二个卡携带他的商务标识和数据)。
当用户给用户站100加电时,该用户站100试图定位一个或多个将用于通信的网络接入点(NAP)106。NAP可包括,例如,基站或其它适合于连接到GSM网络的硬件。为此,用户站100监视从不同NAP发送的导频信号。用户站可选择最强的导频信号,该最强的导频信号将识别适合于建立到网络的链路的一个NAP。在以下GSM网络系统的说明中,用户站100建立与一个NAP 106的链路。
在用户站100通过与NAP 106建立的链路108连接到网络之后,网络必须确定用户站100的位置。诸如来访者位置寄存器(VLR)112的数据库可将每个用户站的条目连同用户站的最新已知位置一起存储在其当地区域中。用户站可将他们的当前位置周期性地通知给他们的归属位置寄存器(HLR)110,允许HLR 110由此更新存储的信息和将呼入的呼叫传送给用户站。当用户站不在漫游时(即,当用户站位于由其归属运营商服务的区域中时),可组合HLR 110和VLR 112的功能。当使用VLR 112时,它可对在外地网络中漫游的用户站,和归属网络中的用户站自身的HLR 110之间的通信有所帮助。应理解的是,这里的概念可适用于具有VLR的无线系统和没有VLR的无线系统。
在网络识别出用户站100的当前位置之后,它可试图认证该用户。认证是GSM安全措施的一部分。用户秘密密钥(Ki)对GSM系统的安全很重要,并且在认证期间被使用。各个用户被分配随机数,作为存储在这些用户的SIM卡104和称为认证中心(AuC)114的数据库中的称为Ki的秘密密钥。秘密密钥被小心防止由将要破坏系统的第三方发现。Ki从来不从AuC 114发送,所以不能在传送中偷听Ki。Ki也从来不离开SIM卡104。在认证期间,NAP 106首先向AuC 114请求随机数和相关的响应。AuC 114包括可产生随机数(RAND)和可执行安全算法的处理器116,在该安全算法中,RAND和用户的Ki被用作输入。例如,安全算法可与A3/A8认证协议一致,尽管也可使用其它协议。这个算法的输出是响应(SRES)和已知为会话密钥(Kc)的特定加密密钥。SRES可用于认证用户,且Kc可由用户站和网络二者使用,以在认证发生后加密和解密通信数据。
在AuC产生和计算出RAND、SRES和Kc之后,它将这三个值一起绑在所谓的认证三元组(三元组)中,并将该三元组提供给NAP 106。然后,NAP 106从三元组中提取出RAND,并仅将RAND发送给用户站100。用户站100知道AuC使用哪个认证算法来产生SRES和Kc。这样,通过使用相同的认证算法,用户站100可采用从NAP接收的RAND,并计算相同的SRES和Kc。如上所述,这些值是Ki的函数,其中Ki是存储在SIM卡104上的秘密密钥且可由用户站100使用。
图2示出了在认证处理期间可能涉及的用户站100的附加部件。模拟前端可包括具有接收机202和发射机204二者的收发器200。用户站100还可包括处理系统206,该处理系统206包括驻留在用户蜂窝电话上的处理器208和如上所述具有自己的处理器的SIM卡104。
现在返回图1,一旦用户站100(或其SIM卡104)计算出了SRES和Kc,它就能保持Kc并将SRES发送回NAP 106。如果NAP 106能认证用户站100,则通信可继续,且每个实体能根据由NAP选择并指定给用户站100的加密算法,使用Kc来加密和解密通信数据。为了认证用户站100,NAP 106首先验证接收到的正确SRES是来自用户站100的。为此,NAP 106可通过处理器118来比较从用户站100接收到的SRES和从AuC 104接收到的SRES。如果它们不匹配,则认证失败。然而,如果它们匹配,则认证用户站,且通信可继续。
如上所述,MITM攻击是在认证过程期间进行的。当NAP 106为了认证将RAND发送给用户站100时,RAND由攻击者120截取。攻击者120将RAND转发给合法的用户的用户站100。认为这个认证请求合法地来自NAP 106的该用户站100,计算SRES作为上述正常认证程序的一部分,并将该SRES返回给NAP 106。该SRES再次由继续将其转发给网络的攻击者120截取。在这点上,攻击者120对NAP 106来说看起来“已被认证”,且攻击者120还拥有它所截取的RAND和SRES二者。攻击者120在完整的认证三元组中缺少的部分仅为Kc。然而,攻击者120能利用弱加密算法A5/2来获得这个值。
例如,在正常条件下,当NAP 106验证认证时,NAP 106向用户站100发送请求,来继续使用A5/1或A5/3加密进行通信(密码起始消息)。然而,在攻击期间,攻击者120能截取密码起始消息,并更改该密码起始消息以告诉用户站100使用弱加密算法A5/2,而不是将该密码起始消息转发给用户站100。A5/2请求对用户站100来说显得是合法的密码起始消息,所以用户站将用A5/2算法开始加密其通信数据。然后,仍在截取NAP 106和用户站100之间的通信的攻击者120,可使用A5/2的密码分析法来取回Kc。一旦它知道了Kc,攻击者120就可充当译码器,并通过A5/2与用户站100通信,且通过NAP 106在其密码起始消息中指定的无论哪个算法与NAP 106通信,因为相同的Kc工作于任何一个A5算法。更重要的是,在这点上,攻击者120具有有效认证三元组中的每一条,随后它可重新将其用于将来的会话,诸如通过装作认证的用户来劫持电话呼叫或窃取电话服务。
为了防止对截取的三元组的潜在的不受限制的重新使用,可实现期满特征。可将三元组制定成包括使其有效性在某个预定时间texp之后过期的附加信息。这种特征可包括将时间窗口或期满时间编码进RAND中,并可防止攻击者不受时间限制地重新使用所截取的认证信息。图3是示出包括具有这种被编码的期满时间的三元组的方法的实例的流程图。在方框300中,texp可由例如AuC确定。然后,在方框302,可将texp编码进随机值RANDexp内。RANDexp还可包括上述管理的加密标记。然后,在方框304,AuC可将RANDexp与相应的SRES和Kc值组合,以形成具有texp的三元组。该三元组可如上所述通过网络发送,并且最终该RANDexp可从三元组中提取出来并由用户站接收,如在方框306指示的那样。
接下来发生的可以取决于用户站包括传统装备还是升级装备,如方框308所示。如果用户站支持询问,则期满处理继续前进到步骤314。否则处理前进到步骤310。系统可能未能识别出texp如方框310所示。在方框312,用户站可通过在不说明texp或者不对处理作出其它改变的情况下使用RANDexp,来继续进行上述认证处理。然而,如果升级了用户站,则它可识别出texp并在决定方框314确定texp是否大于可从例如用户站的内部时钟确定的当前时间tcur。换言之,用户站可将tcur与三元组不再有效的时间texp进行比较。如果texp>tcur,则在方框316,用户站停止继续处理RANDexp,现在它知道该RANDexp是从过期和无效的三元组获得的。结果,在方框318,认证将失败。然而,如果tcur还没有达到texp指示的时间,则在方框320,用户站知道RANDexp来自有效的三元组,且该用户站可使用RANDexp继续进行如上所述的认证。
应理解的是,texp不限于是三元组将要期满的单个离散时间,而可选地,其可包括表示有效时段的时间窗口。时间窗口可包括上时限和下时限,在它们之外,对于编码有该时间窗口的三元组,则将认为该三元组是过期和无效的。例如,如果tcur落在时间窗口内,则三元组将是有效的,而如果tcur落在时间窗口之外,即,在定义时间窗口的上时限和下时限中的任何一侧之外,则该三元组将是过期的,因而是无效的。
图4是示出处理具有期满时间标记的认证三元组的实例的流程图。在方框400,例如作为对接收认证期间来自NAP的对三元组的请求的响应,Auc可选择三元组T,并将T发送给VLR,以便有可能在认证用户站时使用。可选地,参照图4说明的这个和其它过程,可由HLR执行。在方框402,NAP可测试T是否是具有时间窗口的三元组或其中编码有其它形式的期满标记的三元组。如果不是,则该三元组是有效的,且在方框404,VLR将该三元组发送给NAP,以用于认证。另一方面,如果T包括期满标记,则在方框406,VLR可识别随后可用于测试T的当前有效性的标记texp。
在方框408,VLR可通过将texp与例如从VLR的内部时钟可以确定的当前时间tcur进行比较以及确定texp是否超过tcur,来测试三元组是否已过期。如果确定出texp超过了tcur,则该三元组过期,且在方框410,VLR可丢弃该三元组并在方框400选择另一个。另一方面,如果texp小于tcur,则该三元组仍然有效,并可在方框404被发送给NAP以用于认证。在另一实施例中,VLR可在三元组实际期满之前丢弃它们,诸如在tcur超过texp之前的某段时间内丢弃它们。例如,可预定义容限并将其编程在VLR内,以便当tcur小于texp但是在其容限内时,VLR仍可丢弃三元组。
图5示出了根据一个实施例的用户单元,其具有用于将当前时间和与随机值RAND相关的期满时间进行比较的认证验证单元712。该用户单元具有连接到密钥和响应计算单元704的接收电路700,其中密钥和响应计算单元704将响应、SRES提供给发送电路708,并将密钥、KC提供给编码/解码单元710。微处理器控制密钥和响应计算单元704、编码/解码单元710以及存储器存储单元702的操作。用户单元将秘密密钥Ki存储在存储器存储单元702中。密钥和响应计算单元704从自网络接收的随机值RAND中提取期满时间信息。认证验证单元712接收期满时间信息并将其与当前时间作比较。如果认证验证单元712确定RAND已过期,则用户单元终止认证过程并可决定重试。如果认证验证单元712确定RAND还没有期满,则用户单元产生响应、SRES和密钥Ki。认证验证单元712接收来自时钟714的计时信息,诸如当前时间。
虽然本说明书对本发明的特定实施例进行了说明,但是普通技术人员能在不脱离本发明概念的情况下提出本发明的变形。例如,本文的内容是参照电路交换网络元件进行的,但是其等价地适用于分组交换域网络元件。而且,本文的内容不限于认证三元组对,还可适用于包括两个SRES值(一个是通常的格式,一个是本文公开的新格式)的单个三元组。
本领域的专业技术人员可以理解,可以使用多种不同的工艺和技术中的任意一种来表示信息和信号。例如,通过以上描述可以参照的数据、指令、命令、信息、信号、比特、符号以及芯片,可以由电压、电流、电磁波、磁场或磁性粒子、光场或光粒子或其任意组合来表示。
这些技术人员可以进一步理解,结合这里公开的实施方式所描述的不同的说明性的逻辑框图、模块、电路以及算法步骤可以以电子硬件、计算机软件或二者组合来实现。为了清楚地描述硬件和软件的可交换性,以上依照它们的功能对不同的示例性的组件、框图、模块、电路、方法以及算法进行了一般描述。这样的功能是以硬件还是软件来实现取决于施加于整个系统的特定的应用和设计约束条件。熟练技术人员可以以不同的方法来实现每个特定应用的所述的功能,但是这样的实现决定不应被理解为是对本发明的范围的偏离。
结合在此公开的实施方式所述的不同的说明性的逻辑方框、模块以及电路可以由设计来执行这里所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程的逻辑设备、分立的门或晶体管逻辑、分立的硬件组件或其任意组合来实现或执行。通用处理器可以是微处理器,但可选地,该处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以由计算设备的组合来实现,诸如DSP和微处理器的组合、多个微处理器的组合、一个或多个结合DSP内核的微处理器或其它这样的结构的组合。
结合在此公开的实施方式描述的方法或算法可以直接包含在硬件中、由处理器执行的软件模块中或者二者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的其它任何形式的存储介质中。可以将存储介质连接到处理器,使得处理器可以从存储介质读取信息以及向存储介质写入信息。可选地,该存储介质可以集成到处理器中。处理器和存储介质可以存在于ASIC中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点一致的最宽的范围。
权利要求
1.一种用于在用户站保护与网络的无线通信的方法,其包括接收来自所述网络的随机值,所述随机值具有表示期满时间的期满标记;将当前时间与所述期满时间进行比较;如果所述当前时间没有超过所述期满时间,则认证所述通信;和如果所述当前时间超过了所述期满时间,则拒绝所述通信的认证。
2.如权利要求1所述的方法,其特征在于,所述期满时间由时间窗口限定。
3.如权利要求1所述的方法,其特征在于,进一步包括取回存储在所述用户站中的秘密密钥;和产生作为所述秘密密钥和所述随机值的函数的响应值。
4.如权利要求3所述的方法,其特征在于,进一步包括产生作为所述秘密密钥和所述随机值的函数的加密密钥。
5.如权利要求4所述的方法,其特征在于,进一步包括发送所述响应值,以用于认证。
6.如权利要求5所述的方法,其特征在于,进一步包括使用所述加密密钥,加密用于发送的数据。
7.如权利要求6所述的方法,其特征在于,进一步包括使用所述加密密钥,解密接收到的数据。
8.如权利要求1所述的方法,其特征在于,接收所述随机值包括接收包括所述随机值、所述响应值和所述加密密钥的认证三元组,其中,所述三元组识别所述期满标记。
9.一种用于无线通信的设备,其包括用于接收来自所述网络的随机值的装置,所述随机值具有表示期满时间的期满标记;用于将当前时间与所述期满时间进行比较的装置;用于在所述当前时间没有超过所述期满时间的情况下认证所述通信的装置;和用于在所述当前时间超过了所述期满时间的情况下拒绝所述通信的认证的装置。
10.如权利要求9所述的设备,其特征在于,所述期满时间由时间窗口限定。
11.如权利要求9所述的设备,其特征在于,进一步包括用于取回存储在所述用户站中的秘密密钥的装置;和用于产生作为所述秘密密钥和所述随机值的函数的响应值的装置。
12.如权利要求11所述的设备,其特征在于,进一步包括用于产生作为所述秘密密钥和所述随机值的函数的加密密钥的装置。
13.如权利要求12所述的设备,其特征在于,进一步包括用于发送所述响应值以用于认证的装置。
14.如权利要求13所述的设备,其特征在于,进一步包括用于使用所述加密密钥来加密用于发送的数据的装置。
15.如权利要求14所述的设备,其特征在于,进一步包括用于使用所述加密密钥来解密接收到的数据的装置。
16.如权利要求9所述的设备,其特征在于,用于接收所述随机值的装置,其包括用于接收包括所述随机值、所述响应值和所述加密密钥的认证三元组的装置,其中,所述三元组识别所述期满标记。
17.一种具有认证中心和位置寄存器的网络,所述网络包括用于在所述认证中心产生具有指定期满时间的期满标记的随机值的装置;用于在所述认证中心计算作为所述随机值的函数的会话密钥和响应值的装置;用于在所述认证中心组合所述随机值、所述会话密钥和所述响应值以形成认证三元组的装置,其中,所述认证三元组包括所述期满标记;和用于将来自所述认证中心的所述认证三元组发送给所述位置寄存器的装置。
18.一种用户站,其包括被配置成接收来自网络的随机值的接收机,所述随机值具有表示期满时间的标记;被配置成报告所述当前时间的时钟;和处理器,其被配置成识别所述标记,并响应于对所述标记的识别将所述当前时间与所述期满时间进行比较。
19.如权利要求18所述的用户站,其特征在于,所述处理器进一步被配置成,当所述当前时间至少与所述期满时间同样大时,拒绝将所述随机值用于认证中。
20.如权利要求16所述的用户站,其特征在于,所述处理器被进一步配置成当所述当前时间小于所述期满时间时,将所述随机值用于认证。
全文摘要
本发明公开了保护网络和用户站之间的GSM无线通信的系统和方法。一个实施例生成认证三元组,由于在某段时间之后过期,这将使截取它们的攻击者不能无限期地使用它们。
文档编号H04W12/00GK1879445SQ200480033068
公开日2006年12月13日 申请日期2004年11月10日 优先权日2003年11月10日
发明者M·帕登, G·G·罗斯, P·M·霍克斯, J·森普尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1