用于避免网络攻击的危害的方法和装置制造方法

文档序号:7977807阅读:88来源:国知局
用于避免网络攻击的危害的方法和装置制造方法
【专利摘要】客户端终端(400)和网络服务器(402)中用于实现所述终端与服务器之间的安全通信的方法和装置。当终端在会话中从服务器获得网页时,终端基于与所述会话和/或网页有关的一个或多个上下文参数P1、...、Pn来创建上下文特有密钥Ks_NAF’。然后,终端在注册请求中向服务器指示上下文特有密钥,并且服务器以相同的方式确定上下文特有密钥Ks_NAF’,从而如果在网络服务器中确定的上下文特有密钥与从客户端终端接收的上下文特有密钥相匹配,则验证客户端。因此,上下文特有密钥被绑定,并且仅针对当前上下文或会话是有效的,而不能在其它上下文或会话中使用。
【专利说明】用于避免网络攻击的危害的方法和装置
【技术领域】
[0001]本公开大体上涉及用于通过避免在从客户端盗取安全密钥时可能发生的危害,来实现客户端终端与网络服务器之间的安全通信的方法和装置。
【背景技术】
[0002]所谓的“通用引导程序架构”(GBA)是在第三代合作伙伴计划(3GPP)中标准化的技术,其使通信网络中的客户端能够与位于连接到网络的网络服务器中的网络应用功能(NAF)建立共享密钥(例如,表示为“Ks_NAF”)。
[0003]GBA通常用于客户端认证。由于很多当前现有的应用是基于网络的(即,在公共互联网或内联网上可用),因此当从客户端使用的浏览器执行客户端认证时,客户端认证特别令人关注。典型的场景是客户端是装备有由用户操作的浏览器的通信终端。为了允许GBA与基于超文本标记语言(HTML)表单的认证(其是在互联网上广泛使用的认证方法)一起使用,已经提出了在基于网络的应用中针对GBA在客户端处添加JavaScript应用程序接口(API)。然后,由客户端的浏览器来执行JavaScript API,并且可以将JavaScript API视为客户端的浏览器的一部分。
[0004]在客户端处,可以根据以下动作1:1_1:4来使用JavaScript API:
[0005]动作1:1。客户端处的浏览器通过“HTTPS”从网络服务器下载注册页面,“HTTPS”是指传输层安全性(TLS)或安全套接字层(SSL)承载超文本传输协议(HTTP)。注册页面是包含“ HTML表单(HTML form) ”的网页,该“ HTML表单”具有针对“用户名”和“密码”的字段。
[0006]动作1:2。下载的网页还包含一条JavaScript,此后简称为“脚本”。脚本包含称作“引导程序交易标识B-TID”的参数,其标识客户端。脚本通过调用由客户端提供的GBAJavaScript API,还获得表示为“Ks_NAF”的共享密钥:
[0007](B-TID, Ks_NAF)=window.document.getGBAKey()。
[0008]B-TID用作客户端的MSI (国际移动订户标识)的一种别名形式,并且Ks_NAF与该网络服务器相关联并且也可能与使用相同NAF的其它网络服务器相关联。因此,Ks_NAF是与网络服务器共享的密钥,其在下面动作1:4中被使用。在本动作1:2中,JavaScriptAPI向脚本返回Ks_NAF和B-TID。
[0009]动作1:3。脚本将所获得的B-TID作为用户名并且将所获得的Ks_NAF作为密码来填充HTML表单。然后,从客户端向网络服务器提交由此产生的HTML表单。
[0010]动作1:4。网络服务器(S卩,NAF)通过核实用户名和密码来认证客户端。更详细地,NAF通过向与客户端相关联的引导程序服务器功能(BSF)提供在动作1:2中从客户端接收的B-TID来从BSF取回由客户端使用的Ks_NAF。BSF根据与客户端共享的密钥(称作“主密钥Ks”)导出Ks_NAF。因此,这是客户端在动作1:2中获得的相同密钥。Ks_NAF对于每一个NAF和Ks是唯一的。
[0011]然而,在客户端处添加JavaScript API的现有提议容易受到所谓的“脚本注入攻击”。通过找出向网页注入恶意脚本的方式,攻击者可以得到对敏感页面内容、信息记录程序、和可以由浏览器代表用户维护的各种其它信息的提高的访问特权或者访问。网页是否容易受到这种方式的脚本注入的攻击取决于其内容和由网络服务器的所有者(实际上是页面所有者)执行的安全缓解。
[0012]已经发现上面的提议的问题在于由客户端处的JavaScript API在上述过程中返回的共享密钥Ks_NAF具有非常广泛的使用。攻击者通过脚本注入“盗取的”密钥可以在整个域名系统(DNS)型的域(例如,“naf.com”)上以及在与使用该NAF的服务器进行的不同HTTP会话上保持有效和有用。
[0013]为了说明这一点,将使用主机“naf.com”来考虑示例,主机“naf.com”是具有两个可访问的网页(表示为“login, html”和“vulnerable, html”)的网络服务器。已经对第一页面login, html进行了细致深入地编码,并且第一页面login, html本身不易受到任何类型的攻击。另一方面,第二页面vulnerable.html包含实际上使得其容易受到代码注入攻击的细微缺陷。认识到这一点,攻击者将下面的“恶意”脚本注入第二网页:
[0014]〈SCRIPT type=" text/javascript" >
[0015](B-TID, Ks_NAF) =window.document.getGBAKeyO ;
[0016]...upload (B-TID, Ks_NAF) to attacker (将(B-TID, Ks_NAF)上传给攻击者)...[0017]< / SCRIPT〉
[0018]访问第二网页naf.com / vulnerable, html并且根据上述过程获得共享密钥的下一个用户将不知不觉地通过注入第二网页的上述恶意脚本将其获得的密钥上传给攻击者。因此,攻击者进而可以使用该密钥来在naf.com / login, html处注册并且被正确地认证。
[0019]在另一个示例中,在客户端浏览器中呈现下载的易受攻击的HTML文档。该文档包含指示浏览器下载并执行第三方脚本的命令,该第三方脚本可以是广告、访问者计数器或其它明显无害的应用。然而,第三方脚本还包含取回客户端的Ks_NAF和B-TID的路线(line),该取回操作是在执行脚本时相应地完成的。脚本还向呈现的网页添加链接,该链接是用于将Ks_NAF和B-TID上传给“有害”第三方的命令。在相信链接有用且无害的情况下,用户点击该链接并且然后上传被执行。由此,第三方获得客户端的Ks_NAF和B-TID,以供将来非法使用。
[0020]因此,存在攻击者可以得到特定客户端的敏感信息(例如,共享密钥),并且使用该信息来在与该信息有效的网络服务器进行的未来会话中进行虚假认证和验证的问题。

【发明内容】

[0021]本发明的目的是解决上文概述的问题和议题中的至少一些。可以通过使用所附独立权利要求中定义的方法和装置来实现这些目的和其它目的。
[0022]根据一个方面,提供了一种在客户端终端中用于实现与网络服务器的安全通信的方法。在该方法中,所述客户端终端在与所述网络服务器的会话中从所述网络服务器获得
网页,确定与所述会话和/或网页有关的上下文参数集合Pl.....Pn,以及基于所述上下文
参数来创建上下文特有密钥Ks_NAF’。然后,所述客户端终端使用所创建的上下文特有密钥Ks_NAF’,以便如果在所述网络服务器中确定的上下文特有密钥与所述客户端终端创建的所述上下文特有密钥相匹配,则在所述网络服务器中验证所述客户端。[0023]根据另一方面,提供了一种被配置为实现与网络服务器的安全通信的客户端终端。所述客户端终端包括:接收模块,被适配为在与所述网络服务器的会话中从所述网络服务器获得网页,密钥创建模块,被适配为确定与所述会话和/或网页有关的上下文参数集
合Pl.....Pn,并且基于所述上下文参数来创建上下文特有密钥Ks_NAF’,以及发送模块,
被适配为向所述网络服务器发送指示所创建的上下文特有密钥Ks_NAF’的注册请求。由此,如果在所述网络服务器中确定的上下文特有密钥与由所述客户端终端创建的所述上下文特有密钥相匹配,则实现了对所述客户端的验证。
[0024]在该解决方案中,因此使得上下文特有密钥成为上下文特有的,以仅针对当前上下文中的认证或验证是有用的,而针对另一上下文中的认证或验证实际上是无用的,即,无效的。由此,可以当在网络攻击等中盗取上下文特有密钥的情况下避免危害。
[0025]可以根据不同的可选择实施例来配置和实现上面的方法和客户端终端。在一个可能的实施例中,在注册请求中向所述网络服务器指示所创建的上下文特有密钥Ks_NAF’。所述上下文参数可以包括以下各项中的至少一项:所述网页的通用资源定位符URL的路径组成部分、所述会话的当前HTTP会话标识、以及所述会话的当前传输层安全性TLS /安全套接字层SSL会话标识。
[0026]在另一个可能的实施例中,可以通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数为所述网络服务器所知。在
该情况下,可以基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参数S,并且
可以通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:
[0027]Ks_NAF’ =KDF (Ks_NAF,S (PI,…Pn))。
[0028]此外,可能已经根据从引导程序服务功能获得的主密钥Ks导出了所述应用特有密钥Ks_NAF。可以通过与具有网络应用功能的所述网络服务器进行通信来确定所述上下文参数。
[0029]根据另一方面,提供了一种在网络服务器中用于实现与客户端终端的安全通信的方法。在该方法中,所述网络服务器在与所述客户端终端的会话中向所述客户端终端发送网页,以及从所述客户端终端接收注册请求,所述注册请求指示由所述客户端终端创建的上下文特有密钥Ks_NAF’。然后,所述网络服务器确定与所述会话和/或网页有关的上下文
参数集合Pl.....Pn,以及基于所述上下文参数来确定上下文特有密钥Ks_NAF’。然后,如
果在所述网络服务器中确定的所述上下文特有密钥与从所述客户端终端接收的所述上下文特有密钥相匹配,则所述网络服务器可以验证所述客户端。
[0030]根据另一方面,提供了一种被配置为实现与客户端终端的安全通信的网络服务器。所述网络服务器包括:发送模块,被适配为在与所述客户端终端的会话中向所述客户端终端发送网页,以及接收模块,被适配为从所述客户端终端接收注册请求,所述注册请求指示由所述客户端终端创建的上下文特有密钥Ks_NAF’。所述网络服务器还包括:验证模块,
被适配为确定与所述会话和/或网页有关的上下文参数集合Pl.....Pn,基于所述上下文
参数来确定上下文特有密钥Ks_NAF’,以及如果在所述网络服务器中确定的所述上下文特有密钥与从所述客户端终端接收的所述上下文特有密钥相匹配,则验证所述客户端。
[0031]可以根据不同的可选择实施例来配置和实现上面的方法和网络服务器。在一个可能的实施例中,所述上下文参数包括以下各项中的至少一项:所述网页的通用资源定位符的路径组成部分、所述会话的当前HTTP会话标识、以及所述会话的当前TLS / SSL会话标识。如在上面的客户端终端中一样,可以是通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数因此为所述客户端终端
所知。在该情况下,可以基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参
数S,并且可以通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:
[0032]Ks_NAF’ =KDF (Ks_NAF,S (PI,...Pn))。
[0033]可以从与所述客户端终端相关联的引导程序服务功能获得所述应用特有密钥Ks_NAF0
[0034]通过下面的详细描述,该解决方案的其它可能的特征和益处将变得显而易见。
【专利附图】

【附图说明】
[0035]现在将通过示例性实施例的方式并且参照附图来更详细地描述本发明,在附图中:
[0036]图1是示出了根据一些可能的实施例用于验证客户端的通信场景的框图。
[0037]图2是示出了根据其它可能的实施例的客户端终端中的过程的流程图。
[0038]图3是示出了根据其它可能的实施例的网络服务器中的过程的流程图。
[0039]图4是更详细地示出了根据其它可能的实施例的客户端终端和网络服务器的框图。
[0040]图5是示出了根据其它可能的实施例在关于实际上可以如何在网络服务器中验证客户端的示例中的动作的示意图。
【具体实施方式】
[0041]现在将提出用于即使未阻止这样的代码注入攻击如上所述地发生,通过在客户端终端处以下面的新颖方式配置诸如GBA JavaScript API等的功能来限制由此产生的攻击危害的解决方案。可以通过确保由客户端处的JavaScript API返回的密钥是上下文特有的并且对于另一上下文中的认证或验证实际上是无用的,即,无效的,来避免当例如在访问网页时以上述方式暴露密钥时可能引起的损害。这可以通过将上面的密钥Ks_NAF绑定到以下各项中的一项或多项来完成:当前网页、当前HTTP会话、当前TLS / SSL会话、或者其任意组合。由此,获得上下文特有密钥,该上下文特有密钥可以用于仅对当前上下文中而非其它上下文或会话中的客户端进行认证。
[0042]为了构造上下文特有密钥,客户端终端可以执行具有动作2:1-2:4的以下过程以与具有NAF的网络服务器进行通信:
[0043]动作2:1。在某一时刻,客户端终端在与BSF的引导程序通信中获得主密钥“Ks”。
[0044]动作2:2。客户端终端根据主密钥Ks导出应用特有NAF密钥“Ks_NAF”。
[0045]动作2:3。客户端终端联系网络服务器中的NAF,并且使用预定过程来确定具有η
个上下文参数的集合Pl.....Pr!。任意数量(H个)上下文参数可以用于该解决方案,包括
n=lo[0046]动作2:4。客户端终端通过将Ks_NAF和上下文参数P1、...、Pn作为输入来应用预定的“密钥导出函数”KDF,创建上下文特有密钥,在这里表示为Ks_NAF’。在一个可能的实施例中,该操作可以被执行使得:
[0047]Ks_NAF’ =KDF(Ks_NAF,S(PI,..Pn))
[0048]其中,S(Pl,..Pn)是基于η个上下文参数P1、...、Pn以预先确定的方式创建的参
数。例如,参数S可以是包含上下文参数Pl.....Pn的串接的八位字节字符串。在该描述
中,术语“密钥导出函数”通常用于表示通过至少将上下文参数用作输入以任意方式创建上下文特有密钥使得上下文特有密钥有效地绑定到上下文参数的任何函数。例如,密钥导出函数KDF可以是多个函数的聚合,使得来自一个函数的输出用作另一个函数的输入,以此类推。
[0049]例如,可以以与常规GBA过程相同的方式来执行动作2:1和2:2,同时执行动作2:3和2:4,以获得上下文特有密钥。然后,客户端终端可以使用该上下文特有密钥来向网络服务器进行正确认证。在该过程中,网络服务器可以以相同的方式(即,使用相同的上下文
参数Pl.....Pn和KDF)确定上下文特有密钥,从而当从客户端终端接收到密钥时对密钥
进行验证。客户端终端通过以适当的方式向网络服务器指示所创建的上下文特有密钥Ks_NAF’,来使用所创建的上下文特有密钥Ks_NAF’进行验证。例如,可以在在网络服务器中发起认证过程的注册请求中向网络服务器发送这样的Ks_NAF’、或者其表示(例如,与上下文特有密钥Ks_NAF’相关联的认证令牌)。在任意一种情况下,注册请求本质上指示所创建的上下文特有密钥Ks_NAF’。
[0050]在图1中,示出了用于在客户端的浏览器中使用GBA的架构,可以针对这里描述的解决方案使用该架构。在该图中,客户端终端100包括订户标识模块SIMlOOajP GBA客户端100b,该GBA客户端IOOb可以通过Ub接口并且使用输入/输出单元“I / 0”100c来与BSF102进行通信。BSF102有权通过Zh接口访问归属订户服务器(HSS)或归属位置寄存器(HLR)实体104中的客户端信息。
[0051]客户端终端100还包括浏览器100d,其可以通过Ua接口并且使用输入/输出单元
I/ OlOOc与网络服务器106的NAF进行通信。如图所示,客户端终端100和网络服务器106中的NAF被配置有上述KDF和参数S (P1,...Pn),因此为双方所知,其中,双方可以根据KDF和参数S (Pl,...Pn)来创建并确定相同的上下文特有密钥Ks_NAF’。此外,网络服务器106中的NAF有权通过Zn接口从BSF102访问客户端信息。根据实现,可以由浏览器IOOd或者由连接到浏览器IOOd的单独功能块(未示出)在客户端终端100中创建上下文特有密钥Ks_NAF’。在下面的描述中,术语“客户端”或“客户端终端”可以是指用于在客户端终端中执行所描述的动作和功能的任何适当的功能单元。
[0052]现在将参照图3中的流程图来描述在客户端终端中执行以实现与网络服务器的安全通信的过程。可以在上面针对图1所描述的客户端终端100中应用该过程。在第一动作200中,客户端终端例如通过公共互联网或内联网与网络服务器建立会话。在该会话中,客户端终端从服务器获得网页,如下一个动作202中所示。
[0053]然后,在另一个动作204中,客户端终端确定与进行中的会话和/或获得的网页有关的上下文参数集合PU...、Pn。例如,上下文参数可以是任意数量的参数,其包括以下各项中的至少一项:网页的通用资源定位符(URL)的路径组成部分(path component)、会话的当前HTTP会话标识、以及会话的当前TLS / SSL会话标识,稍后将在下面对此进行更详细的描述。
[0054]在下一个动作206中,客户端终端基于上文所确定的上下文参数来创建上下文特有密钥Ks_NAF’。例如,可以通过将预定的密钥导出函数KDF应用于上下文参数来创建Ks_NAF’,密钥导出函数也为网络服务器所知。如上所述,KDF可以是单个函数或者是由多个函数聚合的。此外,可以基于上下文参数PU...、Pn以预先确定的方式创建聚合参数S(P1,...Pn),并且可以通过将聚合参数S (P1,...Pn)和应用特有密钥Ks_NAF用作输入来应用密钥导出函数,使得:
[0055]Ks_NAF’ =KDF (Ks_NAF, S (PI,...Pn))。
[0056]此外,客户端终端可能已经根据从诸如图1中所示的BSF102等的BSF获得的主密钥Ks导出应用专有密钥Ks_NAF。客户端终端还可以通过与网络服务器中的NAF进行通信以例如获得将用作上下文参数的会话信息,来确定上下文参数。
[0057]最后一个动作208示出了客户端终端例如通过向网络服务器发送注册请求,来使用所创建的上下文特有密钥Ks_NAF’以在网络服务器中验证客户端,其中,注册请求通过包括所创建的上下文特有密钥Ks_NAF’或其表示来指示这种上下文特有密钥。由此,如果网络服务器中确定的上下文特有密钥与由客户端终端指示的上下文特有密钥相匹配,则网络服务器能够验证客户端,将在下一个图中对此进行描述。
[0058]现在将参照图3中的流程图来描述在网络服务器中执行以用于实现与客户端终端的安全通信的过程。可以在上面针对图1所描述的网络服务器106中和/或与图2的过程相结合地应用该过程。在第一动作300中,网络服务器与客户端终端建立会话,该动作与上面的动作200相对应。在下一个动作302中,服务器在会话期间向客户端终端发送网页,该动作与上面的动作202相对应。
[0059]在该会话中的某一时刻,在下一个动作304中,网络服务器从客户端终端接收注册请求,其中,在注册请求中指示由客户端终端创建的上下文特有密钥Ks_NAF’。因此,该动作与上面的动作208相对应。然后,在动作306,网络服务器确定与当前会话和/或上面的
网页有关的上下文参数集合Pl.....Pn,并且在另一动作308,基于上面所确定的上下文参
数来确定上下文特有密钥Ks_NAF’。
[0060]以与上文针对图2所描述的终端执行的动作204和206相同的方式来执行动作306和308,并且因此,在终端和服务器中由此产生的上下文特有密钥应当相同。在下一个动作310,网络服务器核查在动作304的注册请求中接收到的密钥是否与动作306中确定的密钥相匹配。如果不匹配,则客户端终端被视为不可靠的并且在动作312中拒绝注册请求。另一方面,如果密钥确实匹配(即,由网络服务器确定的密钥Ks_NAF’与由客户端终端创建的密钥Ks_NAF’相匹配),则客户端是可靠的并且可以在动作314中被验证。
[0061]图4是示出了根据另一个说明性而非限制性的示例的被配置为采用上述解决方案的客户端终端400和网络服务器402的框图。网络服务器402还实现有NAF。客户端终端400和网络服务器402可以被配置为按以下方式工作。
[0062]客户端终端400中的接收模块400a被适配为在会话期间从服务器402中的发送模块402a获得或下载网页。网页可以是注册网页。客户端终端400中的密钥创建模块400b被适配为确定与当前会话和/或获得的网页有关的具有η个上下文参数的集合Pl.....Pn。可以通过使用在客户端中配置的预定过程来确定上下文参数。
[0063]密钥创建模块400b被进一步适配为通过至少将KDF并且可选择地将如上所述的聚合参数S(P1,...Pn)应用于所述上下文参数集合来创建上下文特有密钥Ks_NAF’。更详
细地,基于上下文参数Pl.....Pn以预先确定的方式创建聚合参数S,并且通过将聚合参数
S (PI,...Pn)并且可选择地还将应用特有密钥Ks_NAF用作输入,来应用密钥导出函数,如上文针对图2所描述的。
[0064]客户端终端400中的发送模块400c被适配为向服务器402中的接收模块402b发送注册请求,该注册请求指示所创建的上下文特有密钥。如上所述,通过在注册请求中包括这样的Ks_NAF’或者其表示(例如,与上下文特有密钥相关联的认证令牌),来在注册请求中指示上下文特有密钥。
[0065]作为对该操作的响应,服务器402中的验证模块402c被适配为确定针对该客户端
的上下文特有密钥,这可以通过确定上下文参数Pl.....Pn并且至少将KDF并可选择地将
聚合参数S(P1,...Pn)应用于所确定的上下文参数来完成。然后,验证模块402c被适配为:如果网络服务器402中确定的上下文特有密钥与客户端终端400所创建的上下文特有密钥相匹配,则验证终端400的客户端。
[0066]应当注意的是,图4仅在逻辑的意义上示出了网络服务器402和客户端终端400中的各个功能模块或单元,但是技术人员实际上可以任意使用适合的软件和硬件装置来实现这些功能。因此,解决方案的这一方而通常不限于网络服务器402和客户端终端400的所示结构,同时它们的功能模块402a_c和400a_c可以被配置为视情况根据上文针对图1至图3中的任意一个所描述的特征进行操作。
[0067]可以在网络服务器402和客户端终端400中将上述功能模块402a_c和400a_c分别实现为包括代码装置的相应计算机程序的程序模块,当由网络服务器402和客户端终端400中的每一个中的处理器“P”运行代码装置时,该代码装置使得网络服务器402和客户端终端400执行上述动作。每一个处理器P可以是单个中央处理单元(CPU),或者可以包括两个或更多个处理单元。例如,处理器P可以包括通用微处理器、指令集处理器、和/或有关的芯片集和/或专用微处理器(例如,专用集成电路(ASIC))。处理器P还可以包括用于缓冲目的的存储设备。
[0068]可以分别由网络服务器402和客户端终端400中的任意一个中的计算机程序产品携带每一个计算机程序,其中,计算机程序产品具有连接到每一个处理器P的存储器“MIA形式。计算机程序产品或存储器M包括其上存储有计算机程序的计算机可读介质。例如,存储器M可以是闪存存储器、随机存取存储器(RAM)、只读存储器(ROM)、或电可擦除可编程ROM(EEPROM),并且在备选的实施例中,程序模块可以分布在网络服务器402和客户端终端400中的不同的计算机程序产品中,所述计算机程序产品具有存储器的形式。
[0069]现在将更详细地描述使用通信终端中的浏览器来实现客户端的解决方案的一些可能的而非限制性的示例。
[0070]根据一些可能的实施例,可以按如下方式来创建上下文特有密钥。不是如上文的动作1:2 —样将共享密钥Ks_NAF返回脚本,而是浏览器中的GBA JavaScript API返回绑定到预定的具有η个上下文参数的集合“Ρ1、...、Ρη”的上下文特有密钥Ks_NAF’。这些上下文参数的值可以由网络服务器针对当前会话和/或网页来确定。除非当创建上下文特有密钥时并且当使用上下文特有密钥时上下文参数是相同的,否则如果客户端在另一上下文中使用密钥Ks_NAF’,则网络服务器将由于密钥Ks_NAF’无效而拒绝密钥Ks_NAF’。
[0071]可以使用额外的密钥导出函数KDF按如下方式计算/创建上下文特有密钥Ks_NAF’,来完成Ks_NAF’到上下文参数的绑定:
[0072]Ks_NAF’ =KDF (Ks_NAF,S (PI,...Pn))
[0073]其中,S (PI,...Pn)是根据η个上下文参数构造的八位字节字符串,其可以被视为
聚合参数。
[0074]因此,在客户端终端处预定并配置了用于根据η个上下文参数来构造八位字节字符串S(P1,...Pn)的聚合过程S。如上所述,可以用于在该解决方案中创建上下文特有密钥的此类上下文参数Pl.....Pn的一些示例包括但不限于以下各项:
[0075].网页的URL(通用资源定位符)的路径组成部分。
[0076]?从网络服务器向客户端终端发送的会话ID (标识)信息记录程序(cookie)或者一些其它基于HTTP的信息记录程序,在本公开中,其被称作“HTTP会话标识”。
[0077].与在网络服务器与客户端终端之间建立的、通过其下载网页的TLS / SSL会话相关联的唯一值,例如,TLS / SSL “会话ID”、“master_seCret”、“完成的消息”、或者作为TLS / SSL连接建立过程的一部分生成的某一其它随机值。在本公开中,该值被称作“TLS /SSL会话标识”。
[0078]可以仅使用一个或两个上下文参数,分别为n=l或n=2。例如,可以通过使用当前用于客户端的注册页面的U.RL路径和TLS / SSL会话ID将上下文特有密钥绑定到注册页面并且绑定到进行中的TLS / SSL会话。
[0079]可以根据其它可能的实施例按如下方式来实现密钥导出函数KDF和对聚合参数S(P1,...Pn)的构造。虽然针对该解决方案存在用于选择密钥导出函数KDF和S(Pl,...Pn)的构造的多种可能的选项,但是重新使用GBA中定义的KDF和S(P1,...Pn)可能提供与实现有关的一些益处。
[0080]举例说明,3GPP通常按如下方式规定KDF和对S (P1,...Pn)的构造:
[0081 ] KDF (key, S (Pl,...Pn)) =HMAC-SHA-256 (key, S (Pl,...Pn))
[0082]在该情况下,进一步通过以下算法来规定根据η个输入参数对八位字节字符串S (Pl,...Pn)的构造:
[0083]S(P1,...Pn) =FCI Pl I |L11 |...| Pn Ln
[0084]其中,
[0085]FC是用于区分算法的不同实例的单个八位字节,
[0086]Pl,...Pn是η个输入上下文参数编码,
[0087]LI,...L2是相应的输入上下文参数编码Pl,...Pn的长度,| |表示串接。
[0088]应当注意的是,上文使用的η个输入参数的索引化与在参考文献[I]的附录Β.2中使用的η+1个输入参数的索引化不同。因此,KDF和S的以上定义可以用于该解决方案。
[0089]现在将根据其它可能的实施例描述选择上下文参数以在该解决方案中使用的一些示例。如上所述,与现有的3GPP提议有关的问题之一在于,由JavaScript API向客户端返回的共享密钥通常在整个DNS域(例如,“naf.com”)上有效。根据该解决方案,可以通过如上所述的取而代之地使用上下文特有密钥来避免该问题。[0090]现在将根据其它可能的实施例描述可以如何将上下文特有密钥绑定到网页URL的路径组成部分。通过再次使用上面关于主机“naf.com”具有两个网页“login, html”和“vulnerable, html”的示例,攻击者可以在稍后使用以传统的方式从网页naf.com /vulnerable, html获得的普通密钥来经由naf.com / vulnerable, html以上述恶意脚本的方式进行注册。可以通过将上下文特有密钥绑定到网络服务器URL的路径组成部分来减轻该威胁,其中,上下文特有密钥是根据基于网页URL的上下文参数“Pi”来计算的:
[0091]Pi=abs_path
[0092]其中,在HTTP1.1 中规定了 abs_path。
[0093]现在将根据其它可能的实施例来描述可以如何将上下文特有密钥绑定到当前用于客户端终端的HTTP会话。网络服务器通常使用会话ID来跨HTTP请求管理客户端状态。会话ID被存储在浏览器中,并且还包含在来自浏览器的对网页的每一个请求中一通常具有信息记录程序的形式。因此,可以通过将上下文参数“Pi”设置为下式,来将密钥绑定到当前HTTP会话:
[0094]Pi=HTTP 会话标识
[0095]然而,不同的网络服务器语言往往针对会话ID信息记录程序使用不同的名称。一些编程语言在对其信息记录程序进行命名时所使用的名称的示例包括JSESSIONID (JSP)、PHPSESSID (PHP)、以及ASPSESSIONID (Microsoft ASP)。可以通过在API功能调用中包括该名称来处理该操作。另一个可能的备选形式是使用携带该会话ID的副本或某一其它随机值的标准化信息记录程序。
[0096]优选地,信息记录程序可以被标记为“仅HTTP”,以防止任何客户端侧脚本修改或提取其值。可以通过将信息记录程序标记为“非持久性的”来进一步改善安全性,这是因为非持久性的信息记录程序通常被存储在浏览器的存储器中并且在退出时被删除。
[0097]现在将根据其它可能的 实施例来描述如何将上下文特有密钥绑定到TLS / SSL会话。诸如银行等的一些已知的安全站点使用TLS / SSL会话ID而不是信息记录程序来跟踪与客户端的会话。在该情况下,在单个TLS / SSL会话中发生包括浏览器与网络服务器之间的任何HTTP请求和响应的整个HTTP会话。
[0098]关于经由TLS / SSL进行网页会话跟踪很少见有几个原因,例如,包括:
[0099].一些网络浏览器不支持经由TLS / SSL的跟踪(HTTP层在很大程度上与TLS /SSL层无关)
[0100]?一些大型站点由于性能原因而使用TLS / SSL卸载。在该情况下,通过网络服务器之前的单独的服务器(具有专用硬件)来处理TLS / SSL管理。
[0101].浏览器并不总是如预期地工作。浏览器通常限制开放连接的数量(针对每一个触头,最大η个连接,总计m个连接)并且区分地处理超时功能。
[0102]对于不支持经由TLS / SSL的跟踪的网站,将密钥绑定到TLS / SSL会话ID或master_secret或者绑定到其它会话特有参数可以是限制被盗密钥的效果的有用方式。因此,用于在该解决方案中使用的上下文参数Pi可以被设置为:
[0103]Pi=TLS / SSL 会话 ID / master_secret / 其它会话特有参数
[0104]使用master_secret或其它会话特有参数替代会话ID可能甚至更安全,但是提取这些值可能需要改变TLS / SSL实现。[0105]在客户端处针对GBA使用JavaScript API的益处是实现了简化。通过准备这种API,任何网络应用可以在付出最少努力的情况下开始使用GBA。
[0106]该新颖解决方案特别地可以提供抵抗对互联网的最常见的攻击(即,上文所描述的注入恶意脚本)之一的优点。通过返回上下文特有的密钥而不是常规/传统的密钥,所盗取的上下文特有密钥在攻击者的其它上下文中对于攻击者而言实际上变得无用。
[0107]图5是由客户端终端和网络服务器采取的动作的示意图,其示出了分别在客户端和网络服务器(NAF)中采用上述解决方案的另一个示例。因此,该图示出了分别涉及客户端500和网络服务器502的不同的可能动作,其可以基于在网络服务器502处对客户端进行适当且可靠的验证来提供两个节点之间的安全通信。该示意图主要示出了可以如何在两个节点中创建相同的上下文特有密钥以作为对终端500的客户端进行验证的基础。
[0108]第一动作5:1示出了客户端终端500从网络服务器502获得包含脚本的网页。然后,在动作5:2中,终端500运彳丁在网页中提供的脚本。由此,在动作5:3,脚本例如通过调用客户端500中的GBA API来向客户端请求上下文特有密钥Ks_NAF’。作为对动作5:3的响应,在下一个动作5:4中,客户端获得有效的主密钥Ks。在该动作中,客户端可以首先核查在终端中是否存在还未到期的有效主密钥。如果没有可用的这种有效主密钥,则客户端将联系BSF并且执行引导程序过程以从BSF获得有效的主密钥。
[0109]在下一个动作5:5中,客户端根据主密钥Ks导出NAS特有密钥Ks_NAF,并且在另一个动作5:6中基本上以针对上面的示例所描述的方式来确定预定上下文参数集合。在下一个动作5:7中,客户端现在能够基于上文确定的NAF特有密钥Ks_NAF和预定的上下文参数来创建请求的上下文特有密钥Ks_NAF’。然后,可以如上文所描述地执行该过程,在这里将不再对此进行重复。
[0110]在下一个动作5:8中,客户端向脚本返回所请求的上下文特有密钥Ks_NAF’,然后,在另一个动作5:9中,脚本相应地向网络服务器502发送密钥Ks_NAF’以及B-TID参数。如上所述,B-TID参数标识客户端,在另一个动作5:10中,服务器502使用该B-TID参数来从BSF获得NAF特有密钥Ks_NAF。
[0111]现在,在另一动作5:11中,服务器502能够确定相同的预定上下文参数,并且在下一个动作5:12中,基于上文所确定的NAF特有密钥Ks_NAF和预定的上下文参数来确定相同的上下文特有密钥Ks_NAF’。服务器502基本上以与客户端执行的动作5:6和5:7相同的方式执行动作5:11和5:12,从而提供由此产生的相同的上下文特有密钥Ks_NAF’。最后,在动作5:13中,如果在动作5:12中创建的密钥Ks_NAF’与在动作5:9中接收的密钥Ks_NAF’相匹配,则服务器502可以验证或认证客户端。
[0112]根据上述实施例和示例中的任意一个的解决方案使客户端浏览器和网络服务器能够以容易且安全的方式建立共享密钥,即,上文的上下文特有密钥。安全性部分地源自密钥被绑定到特定的浏览上下文,这有效地防止了攻击者例如通过脚本注入盗取一个上下文中的密钥并且在另一个上下文中使用该密钥。因此,该解决方案可以与客户端侧的脚本处理和GBA —起使用,如上文所描述的。
[0113]此外,上下文特有密钥还可以在与终端和网络服务器的当前上下文和会话中用于其它安全性目的,例如,用于对传送的数据和消息进行加密。由于在该会话/上下文中不能使用其它密钥(例如,从另一个上下文或会话盗取的密钥),因此提供了安全性。[0114]虽然已经参照特定的示例性实施例描述了该解决方案,但是该描述通常仅旨在说明发明构思而不应当被视为限制解决方案的范围。例如,已经贯穿本描述使用了术语“客户端终端”、“网络服务器”、“上下文参数”、“上下文特有密钥”、“注册请求”、和“密钥导出函数”,但是还可以使用具有这里所描述的特征和特性的任何其它相应的节点、功能和/或参数。通过所附权利要求来定义该解决方案。
【权利要求】
1.一种在客户端终端(100、400)中用于实现与网络服务器(106、402)的安全通信的方法,所述方法包括: -在与所述网络服务器的会话中从所述网络服务器获得(202)网页, -确定(204)与所述会话和/或网页有关的上下文参数集合Pl.....Pn, -基于所述上下文参数来创建(206)上下文特有密钥Ks_NAF’,以及 -使用(208)所创建的上下文特有密钥Ks_NAF’,以便如果在所述网络服务器中确定的上下文特有密钥与所述客户端终端创建的所述上下文特有密钥相匹配,则在所述网络服务器中验证所述客户端。
2.根据权利要求1所述的方法,其中,在注册请求中向所述网络服务器指示所创建的上下文特有密钥Ks_NAF’。
3.根据权利要求1或2所述的方法,其中,所述上下文参数包括以下各项中的至少一项:所述网页的通用资源定位符(URL)的路径组成部分、所述会话的当前HTTP会话标识、以及所述会话的当前传输层安全性(TLS) /安全套接字层(SSL)会话标识。
4.根据权利要求1至3中任意一项所述的方法,其中,通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数为所述网络服务器所知。
5.根据权利要求4所述的方法,其中,基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参数S,并且通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:
Ks_NAF’ =KDF (Ks_NAF,S (Pl,...Pn))。
6.根据权利要求5所述的方法,其中,已经根据从引导程序服务功能BSF获得的主密钥Ks导出了所述应用特有密钥Ks_NAF。
7.根据权利要求1至6中任意一项所述的方法,其中,通过与具有网络应用功能NAF的所述网络服务器进行通信来确定所述上下文参数。
8.—种被配置为实现与网络服务器(402)的安全通信的客户端终端(400),所述客户端终端包括: -接收模块(400a),被适配为在与所述网络服务器的会话中从所述网络服务器获得网页, -密钥创建模块(400b),被适配为确定与所述会话和/或网页有关的上下文参数集合Pl.....Pn,并且基于所述上下文参数来创建上下文特有密钥Ks_NAF’,以及 -发送模块(400c),被适配为向所述网络服务器发送指示所创建的上下文特有密钥Ks_NAF’的注册请求,以便如果在所述网络服务器中确定的上下文特有密钥与所述客户端终端创建的所述上下文特有密钥相匹配,则实现对所述客户端的验证。
9.根据权利要求8所述的客户端终端,其中,所述密钥创建模块(400b)被进一步适配为:通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数为所述网络服务器所知。
10.根据权利要求9所述的客户端终端,其中,所述密钥创建模块(400b)被进一步适配为:基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参数S,并且通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:Ks_NAF’ =KDF (Ks_NAF,S (Pl,...Pn))。
11.根据权利要求8至10中任意一项所述的客户端终端,其中,所述密钥创建模块(400b)被进一步适配为:通过与具有网络应用功能NAF的所述网络服务器进行通信来确定所述上下文参数。
12.—种在网络服务器(106、402)中用于实现与客户端终端(100、400)的安全通信的方法,所述方法包括: -在与所述客户端终端的会话中向所述客户端终端发送(302)网页, -从所述客户端终端接收(304)注册请求,所述注册请求指示由所述客户端终端创建的上下文特有密钥Ks_NAF’, -确定(306)与所述会话和/或网页有关的上下文参数集合Pl.....Pn, -基于所述上下文参数来确定(308)上下文特有密钥Ks_NAF’,以及 -如果在所述网络服务器中确定的所述上下文特有密钥与所述客户端终端创建的所述上下文特有密钥相匹配,则验证(314)所述客户端。
13.根据权利要求12所述的方法,其中,所述上下文参数包括以下各项中的至少一项:所述网页的通用资源定位符(URL)的路径组成部分、所述会话的当前HTTP会话标识、以及所述会话的当前传输层安全性(TLS) /安全套接字层(SSL)会话标识。
14.根据权利要求12或13所述的方法,其中,通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数为所述客户端终端所知。.
15.根据权利要求14所述的方法,其中,基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参数S,并且通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:
Ks_NAF’ =KDF (Ks_NAF,S (Pl,...Pn))。
16.根据权利要求15所述的方法,其中,从与所述客户端终端相关联的引导程序服务功能BSF获得所述应用特有密钥Ks_NAF。
17.—种被配置为实现与客户端终端(400)的安全通信的网络服务器(402),所述网络服务器包括: -发送模块(402a),被适配为在与所述客户端终端的会话中向所述客户端终端发送网页, -接收模块(402b),被适配为从所述客户端终端接收注册请求,所述注册请求指示由所述客户端终端创建的上下文特有密钥Ks_NAF’,以及 -验证模块(402c),被适配为确定与所述会话和/或网页有关的上下文参数集合Pl.....Pu,基于所述上下文参数来确定上下文特有密钥Ks_NAF’,以及如果在所述网络服务器中确定的所述上下文特有密钥与所述客户端终端创建的所述上下文特有密钥相匹配,则验证所述客户端。
18.根据权利要求17所述的网络服务器,其中,所述验证模块(402c)被进一步适配为:通过将预定的密钥导出函数KDF应用于所述上下文参数来创建所述上下文特有密钥Ks_NAF’,所述密钥导出函数为所述客户端终端所知。
19.根据权利要求18所述的网络服务器,其中,所述验证模块(402c)被进一步适配为:基于所述上下文参数Pl.....Pn以预先确定的方式来创建聚合参数S,并且通过将所述聚合参数S和应用特有密钥Ks_NAF用作输入来应用所述密钥导出函数,使得:
Ks_NAF’ =KDF (Ks_NAF,S (Pl,...Pn))。
20.根据权利要求19所述的网络服务器,其中,所述验证模块(402c)被进一步适配为:从与所述客户端终端相关联的引导程`序服务功能BSF获得所述应用特有密钥Ks_NAF。
【文档编号】H04L29/06GK103444215SQ201180069660
【公开日】2013年12月11日 申请日期:2011年7月6日 优先权日:2011年4月1日
【发明者】奥斯卡·奥尔松, 韦萨·勒托威尔塔, 约翰·马特森, 卡尔·诺曼 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1