安全多uim认证与密钥交换的制作方法

文档序号:7915399阅读:280来源:国知局
专利名称:安全多uim认证与密钥交换的制作方法
技术领域
本发明通常涉及在认证通信设备时的认证与安全密钥协商,更具体地,涉及当用户使用多用户识别模块时的可扩展认证协议(EAP)-认证与密钥协商(AKA)。
背景技术
需要在电信行业提供安全的事务得到广泛地认可。如果服务提供商不能够提供支持安全事务的系统,则用户将不会使用无线设备以进行购买或执行任何其它必须被安全地执行的业务。因此,电信行业不断努力以提供安全的环境,其中用户可以安全地执行个人和商务事务。例如,已知通用移动通信系统(UMTS)标准规定了认证密钥协议(AKA)和可扩展认证协议(EAP) -AKA。在AKA和EAP-AKA中,通信设备使用共享秘密密钥来进行认证。共享秘密密钥可 驻留在作为通信设备的一部分的用户识别模块(UM)中。网络中的通信设备和服务器可以使用该秘密密钥计算其它各种密钥,以确保通信设备与接入网络之间的安全通信链路。当只有一个WM时,该方式工作得很好。然而,用户通常具有不止一个的通信设备。例如,用户可具有蜂窝电话、个人数字助理、膝上型计算机和其它通信设备。这些通信设备的每一个都需要被认证以提供安全事务。一种支持具有多个通信设备的用户的有效方法是对该用户所拥有的每个设备向用户提供一个UIM卡,其中每个UIM卡具有相同的共享秘密密钥。然而,如果用户具有多个nM,则在AKA和EAP-AKP协议中打开了安全漏洞。如果服务提供商想要提供安全的通信链路并允许用户拥有具有相同的共享秘密密钥的多个WM卡,则与具有多个MM卡相关联的安全漏洞必须得到解决。

发明内容
在一个实施例中,提供了一种装置。该装置包括通信设备组件,其通过接收第一随机数(RAND)和认证令牌来执行认证密钥协商协议,其中,通信设备组件被配置有共享秘密密钥。通信设备组件通过将伪随机函数应用于RAND和共享秘密密钥来生成派生密钥。通信设备组件基于第二随机数(RANDC)和派生密钥,生成第一组会话密钥,其中该第一组会话密钥用于加密通信。在另一个实施例中,提供了一种装置。其中,该装置被配置为接收响应和第一随机数(RANDC)。该装置还被配置为基于客户机标识符获取派生密钥,并根据该派生密钥和随机数RANDC计算期望响应。另外,该装置将响应与期望响应进行比较,如果该响应等于期望响应,则获取第一组会话密钥,其中第一组会话密钥与第二组会话密钥一起用于执行加密通f目。再一个实施例提供了一种方法。该方法包括接收认证向量,其包括第一随机数(RAND)、第一派生密钥和认证令牌。该方法还包括传送认证请求消息,其中认证请求消息包括RAND和认证令牌,以及接收第二随机数(RANDC)和响应。该方法还包括基于RANDC和第一派生密钥来获取第一组会话密钥,其中第一组会话密钥用于加密通信。


根据说明书、权利要求书及附图,本发明的示例性实施例的特征将变得显而易见,其中图I是描述现有技术的认证与密钥协商协议的消息流的一个实施例的表示图;图2a和2b是现有技术的认证与密钥协商协议中所涉及的计算的表示图;图3是用于安全多UM认证与密钥交换协议的示例性消息流;图4a和4b是安全多UM认证与密钥交换协议的一个实施例中所涉及的计算的表示图;
图5是描述安全多WM认证密钥交换方法的实施例的示例性流程图。
具体实施例方式参见图1,一个例子中的消息流100包括用于提供安全的接入信道的AKA/EAP-AKA消息流的示例。此后,为了简化起见,只说明AKA,但与AKA有关的所有描述同样适用于AKA/EAP。AKA认证协议是密钥交换(KE)协议,其基于协议中某些具有预共享或共享秘密密钥(PSK)的参与方。协议中的主要参与方通常是通信设备或客户机(C) 105,其请求接入服务网络(S)110。服务网络可以是归属地网络,或者服务网络可以是客户机正拜访的网络。在下面的描述中,消息被发送到服务网络110。在一个实施例中,这些消息可以去往归属地位置寄存器、拜访地位置寄存器或服务网络的某些其它组件。尽管在实现时,这些消息可以去往服务网络的特定节点,但此后的消息将通常被描述为以服务网络110为目的地。服务网络110通常与客户机(105)和密钥服务器(KS)115进行交互。密钥服务器115通常驻留在客户机(105)的归属地网络中。当客户机105接入网络110时,客户机105可向服务网络110发送接入请求120。该接入请求120可起因于客户机设备(移动通信设备)加电、对突发数据的请求或客户机105想要与服务网络110建立连接的任何其它原因。客户机105和密钥服务器115生成在通过网络安全地传递数据时使用的完整性密钥(IK)和加密密钥(CK)。IK和CK通常使用共享秘密密钥来生成。共享秘密密钥并不通过无线传送到服务网络110 ;相反,共享秘密密钥通常存储在密钥服务器115上。另外,共享秘密密钥并不从密钥服务器115传输到服务网络;相反,密钥服务器115向服务网络110传送包括各种变量的认证向量(AV)。服务网络
110使用认证向量的内容以认证客户机105,并在客户机105与服务网络110之间建立安全信道。因此,当客户机105接入服务网络110时,服务网络110确定密钥服务器115驻留在哪里,并向密钥服务器115发送认证数据请求消息122。在接收到认证数据请求122后,密钥服务器115可根据客户机105的身份,查找共享秘密密钥,并确定将要在认证向量中使用的值。在一个实施例中,认证向量可包括随机数(RAND)、期望响应(XRES)、CK、IK和认证令牌(AUTN)的级联。为了得出这些值,密钥服务器115可应用伪随机函数4至&。这些函数或者是不同的伪随机函数,或者是相同的函数,诸如AES。在后一种情况下,当进行函数调用时,函数唯一的参数必须预先考虑。因此,例如,A(X)=AESQ, X)。在此,伪随机函数是指AES、哈希函数、伪随机函数、Rijndael或任何其它伪随机函数或准伪随机函数。在获取包括AV的值时,RAND、序列号(SQN)、匿名密钥(AK)和消息认证码(MAC)可用于计算AV的其它变量。密钥服务器115可生成RAND和SQN。RAND可以使用各种参数(诸如例如SQN)生成。SQN可用于跟踪一次性AV,并帮助客户机105检测重播。匿名密钥AK是可选的参数,其使用/ 生成。继续假定AK未被使用,因此人=O。认证管理字段(AMF)也在MAC的计算中包含。正如本领域的普通技术人员容易知道的,AMF通常用于选择技术参数,诸如超时值。假定SQN、RAND和AMF ;MAC可以通过函数人获得,其中M4C = fh{SQN Il RAND || AMF)。应当指出,人中的k是共享秘密密钥(PSK)。另外,XRES可以使用/ 获得,其中双沿=/ (见4斯)。0(可以使用/ 获得,其中CK = 4 (MND)。IK可以使用人获得,其中I =八(RAND)。可选的AK可以使用4获得,其中 = fh (RAND)。并且,』= SQN AK || AMF || MAC。AV 被构建为 RAND、XRES,CK、IK和AUTN的级联;因此,AV = RAND XRES CK IK AUTN。参见图2a,其用于描述在密钥服务器115上涉及的计算。AV从密钥服务器115传送125到服务网络110。在接收到 AV 125后,服务网络可存储CK和IK,并将认证请求130传送到客户机105。认证请求130可包括RAND和由密钥服务器115计算的AUTN。在接收到认证请求130后,客户机试图获取IK和CK。客户机105接收认证请求130中的RAND和AUTN。由于在这个例子中AK是0,因此,AUTN = SQN| |AMF| |MAC。由于客户机105配置有在获取AV时使用的共享秘密密钥(k),因此,客户机105可获取响应(RES)、CK、IK和期望MAC (XMAC),如图2b所示。客户机105检查SQN的有效性,并验证MAC是否等于XMAC。如果检查通过,则客户机假定AKA成功,并且客户机在与服务网络110的安全通信中使用所获取的CK和IK。客户机105还计算并向服务网络110发送对质询的响应RES。服务网络110验证是否RES = XRES,如果是这样,则假定AKA成功,并在通信中使用CK和IK。这是AKA如何根据当前第三代伙伴计划(3GPP)标准工作的概况。正如前面所描述的,随着用户可用于连接网络的设备的数量的增加,服务提供商可能想要为用户的每一个设备提供一个nM,其中每个UIM具有相同的共享秘密密钥。应当指出,3GPP标准考虑了具有相同的共享秘密密钥的多WM情形。然而,当已知的密钥交换协议在用户具有多个设备并且每个设备具有它自己的具有相同的共享秘密密钥的WM的环境中使用时,安全漏洞出现了。讨论表示这种安全漏洞的两种攻击情形。在第一种情形中,第一客户机(Cl)和第二客户机(C2)试图连接到服务网络。应当指出,Cl和C2是由同一个用户拥有的设备,并且每个设备具有它自己的nM。因此,Cl可具有nm,而C2可具有nM2,其中WMI和nM2具有相同的共享秘密密钥。作为密钥交换协议的一部分,服务网络可向Cl发送RAND和AUTN,而Cl被攻击者(A)偷听。然后,C2试图与服务网络建立连接。然而,A可以妨碍C2与服务网络的通信,并向C2重复所偷听的RAND和AUTN。Cl和C2将获得相同的会话密钥CK和IK。Cl和C2认为它们现在正与服务网络安全地通信,但Cl和C2都使用相同的会话密钥连接。在这种情形中,A可在C的账户上创建非计划中的事务。例如,如果Cl所执行的事务涉及由Cl的UIM维护的账户上的借方,则A可以向C2重播该事务(由于C2具有与Cl相同的会话密钥,因此这是可能的)。该重播可影响到C2的UIM上的对应借方,这无疑是非计划中的事务和成功的攻击。如果A借用(或得到或远程危及)C的一个包含共享秘密密钥的设备,则第二种攻击情形会出现。秘密密钥被安全地存储在WM中。然而,UIM所产生的会话密钥被输出到C2的主存储器中。假定C2被危及。则A偷听以Cl为目的地的RAND和AUTN,并将RAND和AUTN转发到C2的WM。C2的UM生成会话密钥IK和CK,并将会话密钥放置在主存储器中。注意,这些是Cl所生成的相同的会话密钥。现在A控制了在服务网络与Cl之间建立的安全会话。一种使用具有多WM的AKA克服所描述的漏洞的方式是使客户机对所建立的会话密钥生成并贡献随机数。这可通过将已建立的CK和IK用作中间密钥并根据由UIM采样的随机数获取会话密钥来实现。与该方案有关的消息流在图3中描述。现参照图3,其描述多MM AKA协议的实施例的消息流。消息流中的主要参与方是客户机305、服务网络310和密钥服务器315。客户机305可以是移动电话、个人数字助理、膝上型计算机或任何其它类型的试图接入服务网络310的设备。服务网络310是客户机310接入的网络,但它可以是或者不是客户机305的归属地网络。密钥服务器315可驻留在客户机305的归属地网络中。
正如图I所示,客户机305首先试图通过向服务网络310发送接入请求120来建立与网络310的连接。同样正如图I所示,服务网络310向密钥服务器315发送认证数据请求122,密钥服务器开始获取多UIM密钥交换所需的信息。相对于WM AKA协议,密钥服务器不产生用于AV的CK和IK,相反,密钥服务器315根据共享秘密密钥和RAND计算派生密钥(KD)。正如图I所示,客户机305和密钥服务器315配置有共享密钥,其中客户机305的共享密钥等于密钥服务器315的共享密钥或者与其相同。CK和IK可以根据KD而获得。因此,由密钥服务器315产生的AV包括RAND、AUTN和KD的级联(S卩,AV=RAND | AUTN |KD)。伪随机函数生成器H、F、Fl和F2在计算生成AV 317所需的变量时使用。如先前所讨论的,这些函数可以是不同的函数,或者是相同的函数,诸如AES。在后一种情况下,当进行函数调用时,函数唯一的参数必须预先考虑。如先前所讨论的,在多USIMAKA中,密钥服务器315不向服务网络310发送会话密钥CK和IK。相反,密钥服务器315向服务网络310发送KD。KD可根据共享秘密密钥和由密钥服务器315生成的RAND来获取;因此,KD = Fk(RAND)。密钥服务器315如在AKA协议中一样计算MAC ;因此,
二 (SOS Il RAND Il AMF) ^ AMF通常用于选择技术参数,如参照图I所描述的。XRES被省略,因为服务网络310将根据KD和RANDC计算XRES。密钥服务器315还如在AKA协议中一样构建AUTN ;因此,AUTN = SQN AMF MAC。如上所描述的,AV = RAND AUTN KD0然后,密钥服务器315将AV 317发送到服务网络310。在接收到AV 317后,服务网络可存储AV 317,尤其是KD。服务网络可将唯一的客户机标识符与所存储的KD相关联,其中唯一的客户机标识符可以是移动识别、电子序列号或通信设备的另一种唯一标识符。服务网络310向客户机305发送认证请求320,其包括AUTN和RAND。客户机305验证在AUTN中包括的MAC和SQN,如在AKA中一样。即,客户机305可确定MAC是否等于期望MAC。如果MAC被验证,则客户机305计算KD,其中KD = Fk (RAND)。然后,客户机生成RANDC,并计算RES = Fkd(RANDC)。这些客户机的计算在图4a中示出。客户机305现在具有进行与服务网络310的安全通信会话所需要的会话密钥(CK和IK)。客户机305对认证响应330进行格式化,并将其传送给服务网络310。认证响应330可包括RANDC和RES。应当指出,这些客户机的计算可发生在客户机的WM中。共享秘密密钥和派生密钥从未离开UIM0然而,UIM可输出会话密钥(CK和IK)到UIM外部的存储器,其中会话密钥可在加密客户机与服务网络310之间的通信时使用。在接收到认证响应330后,服务网络310根据KD和RANDC计算期望响应XRES,其中XRES = Fkd (RANDC)。然后,服务网络可以验证XRES是否等于认证响应330的RES。如果XRES被验证成功,则服务网络310获取KD,并获得会话密钥CK和IK,其中CK = FIkd(RANDC),IK=FZkd (RANDC)。XRES、CK和IK的获得在图4b中示出。服务网络310现在具有会话密钥(IK和CK),其可用于进行与客户机305的安全通信会话。现在参照图5,其是描述多MM AKA协议的方法500的流程图。在步骤510,客户机(通常是包括WM的通信设备)请求接入服务网络。如参照图I和3所描述的,这可以使客户机将接入请求消息传送给服务网络,并使服务网络将认证数据请求传送给密钥服务器。密钥服务器通过生成AV并将AV传送520给服务网络来进行响应。AV 的组成以及如何计算AV的字段在参照图3的描述中公开。根据客户机的认证请求,服务网络将认证请求传送给客户机530。认证请求可包括RAND和AUTN。如参照图3所描述的,客户机可验证MAC是否等于XMAC 540。如果MAC不等于XMAC,则方法结束590。如果MAC等于XMAC,则客户机获取多USM AKA中所需的其它变量550。步骤550可进一步包括客户机生成RANDC以及计算RES、CK和IK。客户机生成RANDC以及计算RES、CK和IK的方法参照图3描述。客户机将认证响应传送给服务网络560。认证响应可包括RANDC和RES。服务网络可计算XRES,如参照图3所描述的,并确定XRES是否等于RES 570。如果RES不等于XRES,则方法500结束590。如果XRES等于RES,则获取580多USM AKA所需要的其它变量。在步骤580,服务网络如参照图3所描述地计算IK和CK。此时,服务网络和客户机具有IK和CK,其可在服务网络与客户机之间的安全通信中使用。在一个例子中与消息流500有关的装置包括多个组件,诸如一个或多个电子组件、硬件组件和计算机软件组件。许多这种组件可以在装置中结合或分开。该装置的示例性组件可应用和/或包括一组和/或一系列用多个编程语言中的任意一个撰写或实现的计算机指令,如本领域的普通技术人员可以知道的。一个例子中的装置包括任何(例如,水平的、倾斜的或垂直的)方向,在此的描述和

装置的一个示例性方向,用于说明的目的。在此描述的步骤或操作仅作为例子。在不脱离本发明的精神的情况下,可以对这些步骤或操作进行许多变化。例如,这些步骤可以不同的顺序执行,或者可以添加、删除或修改步骤。尽管在此已经详细地描述和说明了本发明的示例性实施例,但对于本领域的普通技术人员来说,显然,在不脱离本发明的精神的情况下,可以进行各种修改、添加、替换等,因此,这些都被认为是落入后面的权利要求所限定的本发明的范围内。
权利要求
1.一种装置,包括 通信设备组件,其通过接收第一随机数(RAND)和认证令牌来执行认证密钥协商协议,其中,所述通信设备组件被配置有共享秘密密钥; 所述通信设备组件通过将伪随机函数应用于所述RAND和所述共享秘密密钥来生成派生密钥; 所述通信设备组件基于第二随机数(RANDC)和所述派生密钥,生成第一组会话密钥,其中所述第一组会话密钥用于加密通信。
2.如权利要求I所述的装置,其中,所述通信设备组件是用户识别模块,其可操作地与通信设备连接; 其中,所述第一组会话密钥与第二组会话密钥一起用于执行安全通信,其中,所述第一组会话密钥和所述第二组会话密钥是相等的; 所述用户识别模块包括所述派生密钥、所述共享秘密密钥和所述第一组会话密钥,所述用户识别模块向所述通信设备输出所述第一组会话密钥; 所述共享秘密密钥和所述派生密钥不被输出到所述通信设备。
3.如权利要求2所述的装置,其中,所述认证令牌包括序列号、第一消息认证码和认证管理字段; 所述用户识别模块通过将伪随机函数应用于所述共享秘密密钥、所述序列号、所述认证管理字段和所述RAND来计算第二消息认证码; 所述用户识别模块将所述第二消息认证码与所述第一消息认证码进行比较,当所述第一消息认证码等于所述第二消息认证码时,所述用户识别模块获取所述RANDC、所述会话密钥和响应; 所述用户识别模块向所述通信设备输出所述第一组会话密钥、所述RANDC和所述响应。
4.如权利要求3所述的装置,其中,获取所述RANDC、所述第一组会话密钥和所述响应还包括 生成所述RANDC ; 通过应用伪随机函数计算所述第一组会话密钥,其中所述第一组会话密钥包括完整性密钥和加密密钥;以及 通过将伪随机函数应用于所述RANDC和所述派生密钥,计算所述响应; 其中,所述用户识别模块通过将伪随机函数应用于所述RANDC和所述派生密钥来计算所述完整性S钥; 所述用户识别模块通过将伪随机函数应用于所述RANDC和所述派生密钥来计算所述加密密钥; 其中,所述通信设备将所述RANDC和所述响应传送给服务网络,其中所述服务网络生成所述第二组会话密钥,其中所述第一组会话密钥和所述第二组会话密钥用于加密所述服务网络与所述通信设备之间的通信。
5.一种装置,其 接收响应和第一随机数(RANDC); 基于客户机标识符获取派生密钥;根据所述派生密钥和所述RANDC计算期望响应;以及 将所述响应与所述期望响应进行比较,当所述响应等于所述期望响应时,获取第一组会话密钥,其中,所述第一组会话密钥与第二组会话密钥一起用于执行加密通信。
6.如权利要求5所述的装置,其中, 所述装置包括网络节点,其可通信地与客户机连接; 所述第一组会话密钥和所述第二组会话密钥是相等的; 所述客户机包括所述第二组会话密钥; 其中,所述第一组会话密钥包括完整性密钥和加密密钥,其中所述完整性密钥通过将伪随机函数应用于所述RANDC和所述派生密钥来计算; 所述加密密钥通过将伪随机函数应用于所述RANDC和所述派生密钥来计算; 所述客户机将所述RANDC和所述响应传送给所述网络节点; 所述网络节点通过将伪随机函数应用于所述RANDC和所述派生密钥来计算所述期望响应; 当所述期望响应等于所述响应时,所述网络节点获取所述第一组会话密钥。
7.如权利要求6所述的装置,其中, 所述网络节点可通信地与密钥服务器连接; 所述网络节点从所述密钥服务器接收认证向量,其中所述认证向量包括第二随机数(RAND)、认证令牌和所述派生密钥; 所述网络节点存储所述派生密钥; 基于来自所述客户机的请求,所述网络节点将所述RAND和所述认证令牌传送给所述客户机; 所述客户机使用所述RAND和所述认证令牌以计算所述第二组会话密钥。
8.一种方法,包括以下步骤 接收认证向量,其包括第一随机数(RAND)、第一派生密钥和认证令牌; 传送认证请求消息,其中所述认证请求消息包括所述RAND和所述认证令牌; 接收第二随机数(RANDC)和响应;以及 根据所述RANDC和所述第一派生密钥,获取第一组会话密钥,其中所述第一组会话密钥用于加密通信。
9.如权利要求8所述的方法,还包括 确定所述响应是否等于期望响应,其中,所述期望响应通过将伪随机函数应用于所述第一派生密钥和所述RANDC来计算;以及 当所述期望响应等于所述响应时,获取第一组会话密钥,其中所述第一组会话密钥包括加密密钥和完整性密钥,其中所述加密密钥通过将伪随机函数应用于所述第一派生密钥和所述RANDC来计算,所述完整性密钥通过将伪随机函数应用于所述RANDC和所述第一派生密钥来计算; 其中,所述第一派生密钥通过将伪随机函数应用于第一共享秘密密钥和所述RAND来获取; 第一消息认证码通过将伪随机函数应用于所述第一共享秘密密钥、序列号、所述RAND和认证管理字段来计算;所述认证令牌还包括所述序列号、所述认证管理字段和所述第一消息认证码。
10.如权利要求9所述的方法,其中,所述RANDC和所述响应从客户机接收,其中所述客户机通过将伪随机函数应用于第二共享秘密密钥和所述RAND来计算第二派生密钥; 所述客户机验证所述第一消息认证码是否等于第二消息验证码,当所述第一消息验证码等于所述第二消息验证码时,生成RANDC,通过将伪随机函数应用所述RANDC和所述第二派生密钥来计算所述响应,并计算第二组会话密钥; 所述客户机在用户识别模块中保存所述第二派生密钥,并且不从所述用户识别模块中输出所述第二派生密钥; 其中,计算所述第二组会话密钥还包括计算完整性密钥和加密密钥,其中所述完整性密钥通过将伪随机函数应用于所述第二派生密钥和所述RANDC来计算,所述加密密钥通过将伪随机函数应用于所述第二派生密钥和所述RANDC来计算; 其中,所述第一派生密钥等于所述第二派生密钥。
全文摘要
在一个例子中,装置包括通信设备组件,其通过接收第一随机数(RAND)和认证令牌来执行认证密钥协商协议,其中通信设备组件被配置有共享秘密密钥。通信设备组件通过将伪随机函数应用于RAND和共享秘密密钥来生成派生密钥。通信设备组件基于第二随机数(RANDC)和派生密钥,生成第一组会话密钥,其中第一组会话密钥用于加密通信。
文档编号H04L29/06GK102783080SQ201080060535
公开日2012年11月14日 申请日期2010年12月14日 优先权日2010年1月6日
发明者V·Y·柯勒斯尼科夫 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1