用于认证电子交易的系统和方法

文档序号:7915212阅读:259来源:国知局
专利名称:用于认证电子交易的系统和方法
技术领域
本申请一般地涉及用于对源于可能不安全的应用的电子交易进行认证的系统和方法。
背景技术
运行于客户端计算机上、然而需要安全的实时交易服务的潜在不安全的应用的数量持续增长。这样的应用的一个非限制性示例是基于FLASH的游戏应用,其需要补充虚拟货币,以购买游戏中的升级,例如级别解锁、虚拟装备、虚拟特殊武器和直接针对玩家的秘籍。在本领域中需要使这样的实时交易安全,以保护好用户和应用开发者以防被欺骗获取账户信息、身份盗窃以及其他形式的欺骗。用于使这样的交易安全的一个已知方法是使用共享秘密的概念(秘密密钥密码木)。秘密密钥密码术涉及对单个密钥的使用。给定消息和密钥,加密产生难以理解的数据,其需要密钥来进行解密。參见,例如新泽西州,上部马鞍河的普伦蒂斯-霍尔公司出版的、考夫曼的网络安全的章节2. 4,其特此以引用的方式并入。然而,共享秘密方法在应用中的ー个是不安全的情况下不起作用。例如,许多受欢迎的编程应用由FLASH播放器执行并且是不安全的。典型地,当使用共享秘密算法时,存在调用本地web服务器的远程web服务器。秘密在远程web服务器和本地web服务器上是安全的,并且不在这两个服务器之间进行通信。当应用以FLASH或下载到客户端计算机并且例如在客户端的浏览器内运行的其他程序编写时,这失败。在FLASH的情况下,当用户请求FLASH应用时,包含由FLASH播放器解释的字节码的SWF文件被下载到客户端计算机并且由在客户端的浏览器内的FLASH播放器运行(解释)。可以在客户端计算机处对SWF文件中的字节码进行检查来确定秘密。因此,不能将秘密包含在FLASH SffF文件内。给定上面的背景,本领域中需要用于对源于可能不安全的应用的电子交易进行认证的改进的系统和方法。

发明内容
本公开解决本领域中的不足。ー个方面提供了用于对在客户端计算机和交易服务器之间的电子请求进行认证的方法。在该方法中,在适当编程的应用服务器处从客户端计算机接收对应用的电子应用请求。该电子请求包括发起该电子请求的用户的身份。使用适当编程的应用服务器并且响应于接收,作为多个參数的第一函数来构建签名密钥,所述多个參数包括(i)发起对应用的电子请求的用户的身份、(ii)第一基于时间的盐值、以及
(iii)在适当编程的应用服务器和交易服务器之间共享的秘密。在一些实施例中,所述多个參数进一歩包括识别应用的分发者或开发者的标识符。在一些实施例中,应用服务器将签名密钥嵌入应用的无标记(unbranded)版本,从而形成应用的有标记(branded)版本。在这样的实施例中,将有标记应用递送给客户端计算机。在一些实施例中,应用服务器不用签名密钥为应用加标记,而是将签名密钥传递给客户端浏览器。在这样的实施例中,客户端浏览器自身用签名密钥为应用加标记。不管如何构建应用的有标记版本,应用的有标记版本被配置成(i)用签名密钥对请求进行签名,从而形成签名的请求(例如,包括基于签名密钥生成的签名的请求),以及(ii)将签名的请求,可选地与用户的身份和识别应用的分发者或开发者的标识符一起,提交给交易服务器。在一些实施例中,第一函数是哈希函数,以及签名密钥是以下的哈希(i)发起对应用的电子请求的用户的身份、(ii)识别应用的分发者或开发者的标识符、(iii)第一基于时间的盐值、以及(iv)在适当编程的应用服务器和交易服务器之间共享的秘密。在一些实施例中,第一函数是哈希函数,以及签名密钥是以下的哈希(i)发起对应用的电子请求的用户的身份、(ii)第一基于时间的盐值、以及(iii)在适当编程的应用服务器和交易服务器之间共享的秘密。在一些实施例中,第一基于时间的盐值是(i)与接收(A)相关联的协调世界时(UTC)以及(ii)预先确定的时间增量的整数除。在一些实施例中,第一基于时间的盐值是
(i)与构建(B)相关联的协调世界时(UTC)以及(ii)预先确定的时间增量的整数除。在一些实施例中,签名的交易请求是使用在交易服务器上维护的与用户的身份相关联的账户来购买游戏中的升级的游戏中的交易。在一些实施例中,游戏中的升级是级别解锁、对虚拟装备的购买、对虚拟特殊武器的购买、对秘籍的购买或对虚拟货币的购买。在一些实施例中,应用是社交网络应用、金融服务应用、会计应用或税务筹划应用。在一些实施例中,该方法进ー步包括使用客户端计算机来执行有标记应用,其中客户端计算机被适当编程为执行该有标记应用。然后,使用已执行的有标记应用来发出用签名密钥签名的请求,以及该请求被通信到交易服务器。在一些实施例中,签名的请求包括用户的身份以及可选地,识别应用的分发者或开发者的标识符。在一些实施例中,该方法进ー步包括在交易服务器处接收签名的请求,在这之后,交易服务器通过以下来查明签名的请求的有效性(i)使用其秘密密钥的版本来生成重新构建的签名密钥,然后(ii)使用重新构建的秘密密钥来形成重新构建的签名。为了清晰起见的目的,交易服务器所生成的签名密钥在此被称为“重新构建的签名密钥”。为了清晰起见的目的,使用交易服务器从重新构建的签名密钥形成的重新构建的签名在此被称为重新构建的签名。如果重新构建的签名与请求中的签名匹配,则交易服务器“信任”该请求并且将为其服务。交易服务器使用应用服务器使用来创建签名密钥的完全相同的函数来生成重新构建的签名密钥。为清晰起见的目的,交易服务器使用来从秘密密钥生成重新构建的签名密钥的函数在此被称为“第二函数”,而应用服务器使用来从秘密密钥生成签名密钥的函数在此被称为“第一函数”。然而,应当理解的是,第一函数和第二函数不必是相互相同的,尽管其运行于不同的服务器上。带着这样的思想,并且取决于应用服务器所运行的第一函数的性质,交易服务器通过将第二函数应用到第二多个參数来形成重新构建的签名密钥。在一些实施例中,第二多个參数包括(i )发出请求的用户的身份、(ii )第ニ基于时间的盐值、以及(iii)在适当编程的应用服务器和交易服务器之间共享的秘密。在一些实施例中,第二多个參数进ー步包括识别应用的分发者或开发者的标识符。交易服务器然后从重新构建的签名密钥形成重新构建的签名。交易服务器然后通过将重新构建的签名与请求中的签名进行比较来对交易请求进行验证。
在一些实施例中,第二函数是哈希函数,以及重新构建的签名密钥是以下的哈希
(i)发起对应用的电子请求的用户的身份、(ii)可选地,识别应用的分发者或开发者的标识符、(iii)第二基于时间的盐值、以及(iv)在适当编程的应用服务器和交易服务器之间共享的秘密。在一些实施例中,第二基于时间的盐值是(i)与在交易服务器处接收请求的步骤或交易服务器采取的验证步骤相关联的协调世界时(UTC)(例如,这些步骤发生的时间)以及(ii)预先确定的时间增量的整数除。在一些实施例中,前述验证确定重新构建的签名与请求中的签名不匹配。在ー些这样的情况下,该方法进ー步包括重新尝试来形成重新构建的签名密钥,因此,新的重新构建的签名,其中第二基于时间的盐值被递增或递减。如上所述,当验证是成功的时,交易服务器为请求服务。在一些实施例中,适当编程的应用服务器是除交易服务器外的服务器。在一些实施例中,适当编程的应用服务器和 交易服务器是同一服务器。在一些实施例中,应用是FLASH应用。如在此所使用的,词语“月艮务器”被宽泛地用来指被认为足够安全来存储秘密密钥并且能够通过任何手段(例如,无线通信、因特网、数据电缆等)与另ー个计算机电子地通信的任何计算机。另ー个方面提供了用干与计算机系统协同使用的计算机程序产品,该计算机程序产品包括计算机可读存储介质和嵌入在其中的计算机程序机制。计算机程序机制用于对在客户端计算机和交易服务器之间的电子请求进行认证。计算机程序机制包括用于从客户端计算机接收对应用的电子请求的计算机可执行指令。该电子请求包括发起该电子请求的用户的身份。该计算机程序机制进ー步包括以下的计算机可执行指令响应于接收,作为多个參数的第一函数来构建签名密钥,所述多个參数包括(i)发起对应用的电子请求的用户的身份、(ii)第一基于时间的盐值、以及(iii)在计算机程序机制和交易服务器之间共享的秘密。在一些实施例中,所述多个參数进一歩包括识别应用的分发者或开发者的标识符。在一些实施例中,计算机程序机制进ー步包括用于以下的计算机可执行指令将签名密钥嵌入应用的无标记版本,从而形成应用的有标记版本,其中应用的有标记版本被配置成(i )用签名密钥对请求进行签名,从而形成签名的请求,以及(i i )将签名的请求与用户的身份和识别应用的分发者或开发者的标识符一起提交给交易服务器。在这样的实施例中,该计算机程序机制进ー步包括用于将应用的有标记版本电子地递送给客户端计算机的计算机可执行指令。在一些替选实施例中,该计算机程序机制进ー步包括用于以下的计算机可执行指令将签名密钥电子地递送给客户端计算机,该客户端计算机进而为应用的无标记版本加标记,从而形成应用的有标记版本。在这些替选实施例中,应用的有标记版本被配置成(i )用签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将签名的请求与用户的身份和可选地,识别应用的分发者或开发者的标识符一起提交给交易服务器。另ー个方面提供了系统,该系统包括用于从客户端计算机接收对应用的电子请求的装置,其中该电子请求包括发起该电子请求的用户的身份。该系统进ー步包括用于以下的装置响应于接收,作为多个參数的函数来构建签名密钥,所述多个參数包括(i)发起对应用的电子请求的用户的身份、(ii)基于时间的盐值、以及(iii)在该系统和交易服务器之间共享的秘密。在一些实施例中,所述多个參数进一歩包括识别应用的分发者或开发者的标识符。
在一些实施例中,该系统进ー步包括用于以下的装置将签名密钥嵌入应用的无标记版本,从而形成应用的有标记版本,其中应用的有标记版本被配置成(i )用签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将签名的请求与用户的身份和可选地,识别应用的分发者或开发者的标识符一起提交给交易服务器。在这样的实施例中,该系统进一歩包括用于将应用的有标记版本电子地递送给客户端计算机的装置。在一些替选实施例中,该系统进ー步包括用于以下的装置将签名密钥递送给客户端计算机,该客户端计算机使用该签名密钥来为应用的无标记版本加标记,从而形成应用的有标记版本。应用的有标记版本被配置成(i)用签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将签名的请求与用户的身份和可选地,识别应用的分发者或开发者的标识符一起提交给交易服务器。


图I图示与本公开的方面一致的系统。图2图示与本公开的方面一致的方法。遍及附图的数个视图,相同的參考数字指代对应的部分。
具体实施例方式本公开详述了相对于用于对由潜在不安全的应用所通信的电子交易进行认证的已知系统和方法的有新颖性的改进。本公开使用临时签名密钥。签名密钥在潜在不安全的应用,诸如运行于客户端计算机上的FLASH应用,和安全的交易服务器之间传递。由于签名密钥是临时的,欺骗使用密钥的机会窗ロ是微不足道的。换句话说,假如某人能够构建签名密钥,他们能够用该签名密钥来做的事情将是非常有限的。在一些实施例中,从多个參数生成签名密钥,所述多个參数包括(i )在应用开发者和交易服务器之间共享的实际共享秘密、(ii)与不安全的应用的用户相关联的应用用户标识符(例如,对运行于客户端上的FLASH游戏的实例特有,换句话说,请求游戏的实例的用户为FLASH游戏的该实例被授予特有应用用户标识符,该实例在游戏会话结束时终止)、以及(iii)诸如当创建签名密钥时,基于基准时间的盐值(例如,UTC除以某个时段,比方说ー天,的整数值)。在一些实施例中,多个參数进ー步包括给予不安全应用的开发者(由该开发者创建)的应用开发者标识符。当给定的应用开发者使用多个独立的货币平台或交易配置时,该另外的參数是有用的。因此,为了阻止开发者提供的仅仅ー个这样的货币平台或配置的用户发出该应用开发者提供的其他货币平台或配置的未经授权的请求,该应用开发者能够有益地提供识别特定货币平台或配置的应用开发者标识符。因此,可能的是,应用开发者具有任何数量的应用开发者标识符(例如,一个或多个应用开发者标识符、两个或更多个应用开发者标识符、五个或更多个应用开发者标识符等),每ー个对应于应用开发者在ー个或多个应用中使用的不同货币平台或配置。在一些实施例中,可以使用另外的组分(參数)来形成签名密钥,并且所有这样的实施例均被包括在本公开内。上面识别的组分被拿到一起并且被哈希,来形成潜在不安全的应用使用来为与交易服务器的通信进行签名的特有临时密钥。由于上面指定的应用开发者标识符、时段标识符、可选的应用用户标识符密钥以及秘密密钥需求,该特有密钥(哈希值)仅仅对指定用户以及指定应用开发者在指定时段(例如,特定24小时时期)期间有效。截获签名密钥或使用签名密钥来产生的签名的任何人将无法使用其来访问其他用户的数据或其他商人的数据。此外,由于特有签名密钥基于仅仅应用开发者和交易服务器具有的共享秘密,甚至仅仅应用开发者和交易服务器能够在第一实例中生成特有哈希密钥。潜在不安全应用用签名密钥对各交易请求进行签名。这意味着,签名密钥被用作用于使用本领域技术人员所知道的方法来形成被包括在交易中的签名的基础。当交易服务器接收签名的请求时,执行检查以确保该请求用从指定标准生成的密钥进行了签名。所做的是,交易服务器试图对用来(在应用服务器上)在第一实例中构建签名密钥的相同參数进行哈希。这导致重新构建的签名密钥的形成。然后,交易服务器使用重新构建的签名密钥来形成重新构建的签名。然后,将重新构建的签名与请求中的签名进行比较。然而,在一些实施例中,为了考虑在创建签名密钥的时间(因此,当创建签名密钥时,基于时间的盐值)和交易服务器接收签名的交易请求的时间之间的时间差,如果必要的话交易服务器将试图用以下三个不同的时间来形成重新构建的签名密钥(i)目前时间、(ii)到未来的一个时间増量(例如,下一 8小时时间间隔)、以及
(iii)到过去的一个时间増量(例如,上一8小时时间间隔)。当然,在进ー步时间间隔探究是 适当的实施例中,可以尝试更多时间间隔。在上面的示例中,完成基于目前时间的哈希(重新构建的签名密钥的形成),因为这是用来使用的最可能正确的值,完成使用在前时间增量的哈希(重新构建的签名密钥的形成)以允许用户在先前时间增量开始使用潜在不安全应用的实例(例如,如果某人在比如说IlPM开始潜在不安全应用的实例,不期望的是,一小时后,他们被踢出应用),以及完成使用未来时间增量的哈希(重新构建的签名密钥的形成)以考虑在运行潜在不安全应用的计算机和交易服务器之间存在时钟偏移的可能性。现在,已公开了用于从潜在不安全应用进行安全请求的有新颖性的过程方法的概述,并且已提供了其优势,将结合图I描述与本申请一致的系统的更详细描述。图I图示与本公开一致的环境的拓扑结构。在该拓扑结构中,有应用服务器180、客户端计算机100和交易计算机200。当然,其他拓扑结构是可能的,例如,应用服务器180实际上可以包括数个服务器。此外,典型地,存在数百、数千、成千上万的客户端计算机100或更多。图I中所示的示例性拓扑结构仅仅用来以对本领域技术人员容易理解的方式最大程度描述本发明的特征。应用服务器180典型地将具有ー个或多个处理单元(CPU) 102、网络或其他通信接ロ 110、存储器114、由一个或多个控制器118进行访问的ー个或多个磁盘存储设备120、用于使前述组件互连的ー个或多个通信总线112、以及用于对前述组件供电的电源124。使用诸如缓存的已知计算技术,可以与非易失性存储器120无缝共享存储器114中的数据。存储器114和/或存储器120可以包括关于中央处理单元102远程定位的海量存储。换句话说,存储在存储器114和/或存储器120中的一些数据实际上可以被托管在以下计算机上对应用服务器180是外部的,但是能够由应用服务器180使用网络接ロ 110通过因特网、内联网或其他形式的网络或电子电缆(如图I中的元件126所图示)电子地访问。存储器114优选地存储 操作系统130,其包括用于处理各种基本系统服务和用于执行依赖硬件的任务的程序;
应用服务模块132,其用于经由ー个或多个通信网络,诸如因特网、其他广域网、局域网(例如,局部无线网络能够将客户端计算机100连接到应用服务器180)、城域网等,将应用服务器180连接到诸如客户端计算机100 (图I)的各种客户端计算机,以及可能地连接到其他服务器或计算机(诸如交易服务器200); 无标记应用134,用于当用户请求时,分发给客户端计算机100 ;以及 与本公开一致的签名密钥生成模块140,其用于帮助为无标记应用134加标记。应用服务器180经由因特网/网络126连接到一个或多个客户端设备100。图I图示到仅仅ー个这样的客户端设备100的连接。可能的是,客户端设备是个人计算机(例如,台式或膝上型计算机)或任何形式的移动计算设备(例如,I-phone、黑莓等)。在典型实施例中,客户端设备100包括 ー个或多个处理单元(CPU) 2 ; 网络或其他通信接ロ 10 ; 存储器 14; 可选地,由一个或多个可选控制器18访问的ー个或多个磁盘存储设备20 ; 用户接ロ 4,用户接ロ 4包括显示器6和键盘或键区8 ; ー个或多个通信总线12,其用于使前述组件互连;以及 电源24,其用于对前述组件供电,该电源可以是例如电池。在一些实施例中,使用诸如缓存的已知计算技术,可以与可选非易失性存储器20无缝共享存储器14中的数据。在一些实施例中,客户端设备100没有磁盘存储设备。例如,在一些实施例中,客户端设备100是便携式手持式计算设备,以及网络接ロ 10通过无线手段与因特网/网络126通信。存储器14优选地存储 操作系统30,其包括用于处理各种基本系统服务和用于执行依赖硬件的任务的程序; 网络通信模块32,其用于将客户端设备100连接到诸如应用服务器180和交易服务器200的其他计算机; 可选的web浏览器34,诸如微软Internet Explorer版本6. 0或更后的、Firefox
2.x、Firefox 3. x、A0L 9>Opera 9. 5 或更后的、Safari 3. x>Chrome 2.0 或更高的,其用于运行有标记应用(在一些实施例中,可选的web浏览器34包括诸如FLASH播放器的模块);以及 与本公开一致的有标记应用36,其能够使用签名密钥138来发出签名的请求。交易服务器200典型地将具有ー个或多个处理单元(CPU) 202、网络或其他通信接ロ 210、存储器214、由一个或多个控制器218进行访问的ー个或多个磁盘存储设备220、用于使前述组件互连的ー个或多个通信总线212、以及用于对前述组件供电的电源224。使用诸如缓存的已知计算技术,可以与非易失性存储器220无缝共享存储器214中的数据。存储器214和/或存储器220可以包括关于中央处理单元202远程定位的海量存储。换句话说,存储在存储器214和/或存储器220中的一些数据实际上可以被托管在以下计算机上对交易服务器200是外部的,但是能够由交易服务器200使用网络接ロ 210通过因特网、内联网或其他形式的网络或电子电缆(如图I中的元件126所图示)电子地访问。
存储器214优选地存储 操作系统230,其包括用于处理各种基本系统服务和用于执行依赖硬件的任务的程序; 网络通信模块232,其用于经由ー个或多个通信网络,诸如因特网、其他广域网、局域网(例如,局部无线网络能够将客户端计算机100连接到应用服务器180)、城域网等,将交易服务器200连接到诸如客户端计算机100 (图I)的各种客户端计算机,以及可能地连接到其他服务器或计算机(诸如应用服务器180); 交易模块234,其用于进行与运行于各个客户端100上的有标记应用36的交易;以及 签名密钥验证模块236,其用于形成重新构建的签名密钥、从重新构建的签名密钥形成重新构建的签名、以及将重新构建的签名与交易模块234所服务的签名的交易请求中的签名进行比较;以及 与应用服务器180共享的秘密148。參考图2,描述了与本公开的ー个实施例一致的不例性方法。该方法详述了与本公开一致的应用服务器180、客户端计算机100和交易服务器200采用来为交易交互服务的步骤。步骤202。在步骤202中,客户端100请求应用。例如,希望玩在线游戏的用户可以使用其web浏览器34来选择游戏。将该请求发送给应用服务器180,应用服务器180负责以无缝方式对应用进行授权。在一些实施例中,应用可能已以无标记形式存在于客户端100上,以及在这样的实施例中,所需要的是,应用服务器180为应用加标记,使得应用能够发出交易请求。在一些实施例中,应用尚未存在于客户端100上,以及在这样的实施例中,所需要的是,应用服务器180向客户端提供(i)以有标记形式的应用或(ii)以无标记形式的应用以及签名密钥。在典型实施例中,将请求与用户的身份(例如,应用用户标识符密钥144) 一起发送。在一些实施例中,用户具有与操作应用服务器180的应用开发者的账户,以及应用用户标识符密钥144是与该账户相关联的特有标识符。步骤204。在步骤204中,签名密钥生成模块140生成临时签名密钥。在一些实施例中,需要至少四个不同的參数来完成该任务。在一些实施例中,需要至少三个不同的參数来完成该任务。可以由签名密钥生成模块140使用来生成临时签名密钥的可选參数是应用开发者标识符142。在一些实施例中,标识符142唯一识别待被派发给发出请求的客户端100的应用的开发者。在一些实施例中,开发者标识符142由控制交易服务器200的实体进行分配。在一些实施例中,开发者标识符142由开发者创建并且向交易服务器200注埘。在一些实施例中,给定的应用开发者使用多个独立货币平台或交易配置。在这样的实施例中,为了防止开发者提供的仅仅ー个这样的货币平台或配置的用户发出该应用开发者提供的其他货币平台或配置的未经授权的请求,该应用开发者能够有益地提供识别特定货币平台或配置的应用开发者标识符144。因此,可能的是,应用开发者具有任何数量的应用开发者标识符144 (例如,一个或多个应用开发者标识符、两个或更多个应用开发者标识符、五个或更多个应用开发者标识符等),每ー个对应于应用开发者在一个或多个应用中使用的不同货币平台或配置。因此,在一些实施例中,可选的第一參数指定应用开发者已与步骤202的交易请求关联的货币平台或配置。由签名密钥生成模块140使用来生成签名密钥的第一所需參数是用户标识符密钥(应用用户标识符密钥)144。在一些实施例中,如在上面结合在上面的步骤202论述的,将应用用户标识符密钥144与源于客户端100的步骤202的请求一起提供。在一些实施例中,应用用户标识符密钥144与用户与应用开发者具有的账户相关联,以及交易服务器214的交易模块234为该账户服务。在一些实施例中,必要的是,在步骤204中生成新的应用用户标识符密钥,因为请求与这样的标识符不相关联。这可以是例如用户是所请求的应用的新用户,并且与应用开发者没有账户的情况。在一些实施例中,应用用户标识符密钥由诸如FACEB00K的第三方提供。由签名密钥生成模块140使用来生成签名密钥的第二所需參数是基于基准时间的盐值146。在一些实施例中,该盐值是与请求202相关联的协调世界时(UTC)。例如,盐值
146可以是客户端100发起步骤202的请求时的UTC、应用服务器180接收步骤202的请求时的UTC、在步骤204中对请求进行处理时的UTC、或客户端100发起或应用服务器180接收步骤202的请求时的时间的ー些其他预先确定的函数。UTC是基于国际原子时(TAI)的时间标准,其中闰秒以不定期时间间隔被添加以补偿地球的放缓旋转。使用闰秒来允许UTC密切追踪UTl,其意为在格林威治皇家天文台处的太阳时。在一些实施例中,盐值146是UTC和一些时间増量,诸如ー小时、八小时、十二小时等的整数除。由签名密钥生成模块140使用来生成签名密钥的第三所需參数是由应用服务器180和交易服务器200共享的秘密密钥148。秘密密钥148的特征是不跨因特网/网络126对其进行通信,并且仅仅应用开发者和交易服务器200的主机知道其身份。參见,例如新泽西州,上部马鞍河的普伦蒂斯-霍尔公司出版的、考夫曼的网络安全的章节2. 4,其特此以引用的方式并入。在步骤204的一些实施例中,使用(i)可选的应用开发者标识符142、(ii)请求应用的客户端的应用用户标识符144、(iii)基于时间的盐值146、以及(iv)秘密密钥148来生成临时签名密钥138。例如,在一些实施例中,这四个值被截短在一起、或另外组合,然后被单向哈希来生成签名密钥138。在步骤204的一些实施例中,使用(i)请求应用的客户端的应用用户标识符144、
(ii)基于时间的盐值146、以及(iii)秘密密钥148来生成临时签名密钥138。例如,在一些实施例中,这三个值被截短在一起、或另外组合,然后被单向哈希来生成签名密钥138。在一些实施例中,使用另外的值来生成签名密钥138。随后的内容是,对在应用服务器180为应用加标记并且将该应用发送给客户端100的那些实施例中,在步骤206至210中发生的事情的描述。在替选实施例中,应用服务器180不为应用加标记,而是将签名密钥发送给客户端100,客户端100进而为应用加标记。步骤206。在步骤206中,将临时签名密钥138嵌入无标记应用134的实例(与无标记应用134的实例进行关联),从而形成有标记应用36。在一些实施例中,有标记应用34是当可用时,从AD0BEACTI0NSCRIPT (动作脚本)版本1、2、3或更后版本编制的包括字节码的SWF文件。如图I中所描绘的,无标记应用134包括请求模块136。一旦被加标记,应用进ー步包括有效签名密钥138,因此变成有标记应用36。如此,尽管未示出,有标记应用36包括用于发起交易请求的请求模块和签名密钥138。步骤208。在步骤208中,将有标记应用36发送给客户端计算机100。有益地,在各个实施例中,签名密钥36仅仅在预先确定的时间段有效,诸如可达在盐值146被创建之后的两、三、四、五、六、七、八小时、可达在盐值146被创建之后的十二小时、可达在盐值146被创建之后的一天、两天、三天、四天、或可达在盐值146被创建之后的一周、两周或三周。步骤210。在步骤210中,客户端运行有标记应用36。例如,在一些实施例中,有标记应用是从ACTI0NSCRIPT版本1、2或3编制的FLASH SffF文件。在这样的实施例中,web浏览器34使用(执行)客户端100上的FLASH播放器(未示出)来解释SWF字节码。以这种方式,应用运行。不考虑实现其的编程语言,有标记应用36可以是例如游戏、社交网络应用、金融服务软件、会计软件、税务筹划软件或可能需要发出安全的交易请求的任何其他类型的应用。步骤212。在步骤212,客户端发出安全的交易请求。这由有标记应用36的请求模块136来完成。具体地,有标记应用36制定请求,然后使用签名密钥138对请求进行签名,从而将签名合并入请求。由于签名仅仅对给定时间段、以及仅仅对发出请求的应用并且仅仅对请求应用的特定用户有效,即使签名的交易请求被恶意截获并解释,交易请求内的签名也不能被用来访问交易服务器216把门的账户,因为签名的有效性由至少时间146、用户标识符144、与特定应用开发者相关联的秘密密钥148、以及可选地由应用开发者标识符142 (应用配置)严格把门。步骤214和216。在一些实施例中,将步骤212的请求发送给应用服务器180,应用服务器180然后将该请求发送给交易服务器200。这可以发生,例如以将签名的请求与应用用户标识符密钥144进行关联,以供验证目的。在其他实施例中,可以将签名的请求直接发送给交易服务器200。当交易服务器180接收了签名的请求时,签名密钥验证模块236试图重新构建与交易请求中的签名匹配的签名。这是必要的,以确保相对于未经授权的源发送的请求,该请求是合法的请求。为了重新构建包含在请求中的签名,签名密钥验证模块236需要签名密钥生成模块140使用来在第一实例中构造签名密钥138的相同信息(i)应用开发者标识符142 (如果签名密钥生成模块140曾使用了这个)、(ii)应用用户标识符144、(iii)盐值146、以及(iv)秘密密钥148。为了安全目的,在优选实施例中,不通过因特网对盐值146和秘密密钥148进行通信。如在图I中所公开的,交易服务器200已经知道秘密148。交易服务器200基于当前时间来重新构建盐值146。例如,如果签名密钥生成模块140采用了 UTC和诸如ー小时的某个时间增量的整数除,则签名密钥验证模块236也采用。然而,在此的差异是交易服务器200不知道签名密钥生成模块140采用整数除的时间。因此,在ー些实施例中,为了考虑在签名密钥生成模块140采用整数除的时间和签名密钥验证模块236采用整数除的时间之间的时间差,签名密钥验证模块将尝试三个不同的时间(i)目前时间、
(ii)到未来的一个时间増量(例如,下一 8小时时间间隔)、以及(iii)到过去的ー个时间增量(例如,上一 8小时时间间隔)。在这样的实施例中,签名密钥验证模块236将创建三个不同的重新构建的签名密钥,每ー个基于不同的时间。从三个不同的重新构建的签名密钥,签名密钥验证模块236将创建三个不同的重新构建的签名。在其他实施例中,在适当的情况下,可以探究甚至更多时间增量,导致甚至更多重新构建的签名密钥和重新构建的签名。
在一些实施例中,签名密钥验证模块236直接从签名的交易请求以非签名的方式获取应用开发者标识符142和应用用户标识符密钥144。在一些实施例中,签名密钥验证模块236从请求模块136获取应用开发者标识符142和应用用户标识符密钥144连同识别签名的交易请求的标识符。本领域技术人员将认识到,存在签名密钥验证模块236可以获取这两个参数的任何数量的方式,以及本公开包括所有这样的方法。步骤218。如上所公开的,一旦签名密钥验证模块236具有必需参数,其就能够重新产生签名密钥138、基于签名密钥来生成签名,并且将该生成的签名与交易请求中的签名进行比较。如果签名密钥验证模块236所生成的重新构建的签名与请求中的签名匹配,则交易模块234为交易服务。例如,交易可以是出售游戏中的升级,如同级别解锁、虚拟装备、虚拟特殊武器、秘籍、点数或诸如虚拟货币的其他游戏中的价值的游戏中的交易。然而,如果签名密钥验证模块236不能使模块236所生成的重新构建的签名与交易请求中的签名匹配,则拒绝该交易请求,并且在不向客户端100公开任何账户信息的情况下,终止所公开的过程。

步骤220。在步骤220中,报告交易的状态。例如,在一些实施例中,交易状态可以是二进制“成功”或“失败”指示。在一些实施例中,在步骤220中报告账户信息,诸如虚拟货币、实际货币(例如,账户余额)或对交易可以是有适用性的任何其他参数度量。步骤222。在步骤222中,向有标记应用36以及在一些实施例中,应用服务模块132通知交易的状态。例如,在一些实施例中,如果交易是被调用来以使用户保持在游戏中的游戏中的交易,则向应用服务模块132通知交易是否成功,以及如果交易不成功,则应用服务模块132阻止有标记应用36继续该游戏。步骤224。在步骤224中,与应用用户标识符密钥144相关联的用户停止使用有标记应用36,以及有标记应用被终止。引用的参考文献和替选实施例在本文中弓丨用的所有参考文献以全文引用的方式并且为了所有目的并入本文中,该引用的程度就如同为了所有目的,将各个公开、或专利或专利申请特定及单独地以全文引用的方式并入一般。本发明可以被实现为包括嵌入在计算机可读存储介质中的计算机程序机制的计算机程序产品。例如,计算机程序产品可以包含图I中所示的程序模块。这些程序模块可以被存储在CD-ROM、DVD、磁盘存储产品或任何其他有形计算机可读数据或程序存储产品上。如对本领域技术人员将显而易见的,在不背离本发明的精神和范围的情况下,可以作出对本发明的许多修改和变化。仅以示例方式提供了在此描述的特定实施例。选择并描述了实施例,以最佳解释本发明的原理和其实际应用,从而使本领域技术人员能够凭借适于预期的特定用途的各种修改,最佳利用本发明和各种实施例。本发明仅受所附权利要求,以及这样的权利要求对其享有权利的等同物的所有范围限制。
权利要求
1.一种用于对在客户端计算机和交易服务器之间的电子请求进行认证的方法,所述方法包括 (A)在适当编程的应用服务器处从所述客户端计算机接收对应用的电子应用请求,其中所述电子请求包括发起所述电子请求的用户的身份; (B)使用所述适当编程的应用服务器并且响应于所述接收(A),作为第一多个参数的第一函数来构建签名密钥,其中所述多个参数包括(i)发起对所述应用的所述电子请求的用户的身份、(ii)第一基于时间的盐值、以及(iii)在所述适当编程的应用服务器和所述交易服务器之间共享的秘密;以及 (C)将所述签名密钥嵌入所述应用的无标记版本,从而形成所述应用的有标记版本,其中所述应用的所述有标记版本被配置成(i)用所述签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将所述签名的请求与所述用户的所述身份和识别所述应用的分发者或开发者的标识符一起提交给所述交易服务器。
2.根据权利要求I所述的方法,其中所述第一多个参数进一步包括识别所述应用的所述分发者或开发者的标识符。
3.根据权利要求I所述的方法,其中所述嵌入(C)由所述适当编程的应用服务器执行,以及所述方法进一步包括 (D )将所述应用的所述有标记版本电子地递送给所述客户端计算机。
4.根据权利要求I所述的方法,其中所述嵌入(C)由所述客户端计算机执行,以及所述方法进一步包括在所述嵌入(C)之前 将所述签名密钥电子地递送给所述客户端计算机。
5.根据权利要求I所述的方法,其中所述第一函数是哈希函数,以及其中所述签名密钥是以下的哈希(i)发起对所述应用的所述电子请求的所述用户的所述身份、(ii)识别所述应用的所述分发者或开发者的所述标识符、(iii )所述第一基于时间的盐值、以及(iv)在所述适当编程的应用服务器和所述交易服务器之间共享的所述秘密。
6.根据权利要求I所述的方法,其中所述第一函数是哈希函数,以及其中所述签名密钥是以下的哈希(i )发起对所述应用的所述电子请求的所述用户的所述身份、(ii )所述第一基于时间的盐值、以及(iii)在所述适当编程的应用服务器和所述交易服务器之间共享的所述秘密。
7.根据权利要求I所述的方法,其中所述第一基于时间的盐值是(i)与所述接收(A)相关联的协调世界时(UTC)以及(ii)预先确定的时间增量的整数除。
8.根据权利要求I所述的方法,其中所述第一基于时间的盐值是(i)与所述构建(B)相关联的协调世界时(UTC)以及(ii)预先确定的时间增量的整数除。
9.根据权利要求I所述的方法,其中所述签名的交易请求是使用在所述交易服务器上维护的与所述用户的所述身份相关联的账户来购买游戏中的升级的游戏中的交易。
10.根据权利要求9所述的方法,其中所述游戏中的升级是级别解锁、对虚拟装备的购买、对虚拟特殊武器的购买、对秘籍的购买或对虚拟货币的购买。
11.根据权利要求I所述的方法,其中所述应用的所述有标记版本是社交网络应用、金融服务应用、会计应用或税务筹划应用。
12.根据权利要求I所述的方法,所述方法进一步包括使用所述客户端计算机来执行所述有标记应用,其中所述客户端计算机被适当编程来执行所述有标记应用; 使用所述执行的有标记应用来基于所述签名密钥,发出包括签名的请求;以及 将所述签名的请求通信给所述交易服务器。
13.根据权利要求12所述的方法,其中所述签名的请求包括所述用户的所述身份和识别所述应用的所述分发者或开发者的所述标识符。
14.根据权利要求12所述的方法,所述方法进一步包括 (i )在所述交易服务器处接收所述签名的请求; ( )形成重新构建的签名密钥;其中所述交易服务器被适当编程来执行所述形成,以及其中所述形成包括将第二函数应用到第二多个参数,其中所述第二多个参数包括(i)发出所述请求的所述用户的所述身份、(ii)第二基于时间的盐值、以及(iii)在所述适当编程的应用服务器和所述交易服务器之间共享的所述秘密; (iii)从所述重新构建的签名密钥形成签名;以及 (iv)评估所述签名的请求,其中所述评估 (a)当从所述重新构建的签名密钥形成的所述签名与所述交易请求中的所述签名匹配时,获得已验证状态,或 (b)当从所述重新构建的签名密钥形成的所述签名与所述交易请求中的所述签名不匹配时,获得已失败状态。
15.根据权利要求14所述的方法,其中所述第二多个参数进一步包括识别所述应用的所述分发者或开发者的标识符。
16.根据权利要求14所述的方法,其中所述第二函数是哈希函数,以及其中所述重新构建的签名密钥是以下的哈希(i)发起对所述应用的所述电子请求的所述用户的所述身份、(ii)识别所述应用的所述分发者或开发者的所述标识符、(iii)所述第二基于时间的盐值、以及(iv)在所述适当编程的应用服务器和所述交易服务器之间共享的所述秘密。
17.根据权利要求14所述的方法,其中所述第二函数是哈希函数,以及其中所述重新构建的签名密钥是以下的哈希(i)发起对所述应用的所述电子请求的所述用户的所述身份、(ii)所述第二基于时间的盐值、以及(iii)在所述适当编程的应用服务器和所述交易服务器之间共享的所述秘密。
18.根据权利要求14所述的方法,其中所述第二基于时间的盐值是(i)与所述接收(H)、形成(I)或验证(J)相关联的协调世界时(UTC)以及(ii)所述预先确定的时间增量的整数除。
19.根据权利要求14所述的方法,其中当获得所述已失败状态时,所述方法进一步包括重复所述形成(i)、形成(ii)和评估(iii),其中所述第二基于时间的盐值被递增或递减。
20.根据权利要求14所述的方法,其中当获得所述已验证状态时,所述方法进一步包括使用所述交易服务器为所述请求服务,其中所述交易服务器被适当编程来当获得所述已验证状态时为所述请求服务。
21.根据权利要求I所述的方法,其中所述适当编程的应用服务器是除所述交易服务器外的服务器。
22.根据权利要求I所述的方法,其中所述适当编程的应用服务器和所述交易服务器是同一服务器。
23.根据权利要求I所述的方法,其中所述应用是FLASH应用。
24.一种用于与计算机系统协同使用的计算机程序产品,所述计算机程序产品包括计算机可读存储介质和嵌入在其中的计算机程序机制,所述计算机程序机制用于对在客户端计算机和交易服务器之间的电子请求进行认证,所述计算机程序机制包括用于以下的计算机可执行指令 (A)在适当编程的应用服务器处从所述客户端计算机接收对应用的电子应用请求,其中所述电子请求包括发起所述电子请求的用户的身份; (B)使用所述适当编程的应用服务器并且响应于所述接收(A),作为多个参数的函数来构建签名密钥,其中所述多个参数包括(i)发起对所述应用的所述电子请求的用户的身份、(ii)第一基于时间的盐值、以及(iii)在所述适当编程的应用服务器和所述交易服务器之间共享的秘密;以及 (Cl)将所述签名密钥嵌入所述应用的无标记版本,从而形成所述应用的有标记版本,其中所述应用的所述有标记版本被配置成(i)用所述签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将所述签名的请求与所述用户的所述身份和识别所述应用的分发者或开发者的标识符一起提交给所述交易服务器,或 (C2)将所述签名密钥递送给所述客户端计算机。
25.根据权利要求24所述的计算机程序产品,其中所述多个参数进一步包括识别所述应用的所述分发者或开发者的标识符。
26.—种系统,包括 (A)用于在适当编程的应用服务器处从客户端计算机接收对应用的电子应用请求的装置,其中所述电子请求包括发起所述电子请求的用户的身份; (B)用于使用所述适当编程的应用服务器并且响应于所述接收(A),作为多个参数的函数来构建签名密钥的装置,其中所述多个参数包括(i)发起对所述应用的所述电子请求的用户的身份、(ii )第一基于时间的盐值、以及(iii )在所述适当编程的应用服务器和所述交易服务器之间共享的秘密;以及 (Cl)用于将所述签名密钥嵌入所述应用的无标记版本,从而形成所述应用的有标记版本的装置,其中所述应用的所述有标记版本被配置成(i )用所述签名密钥对请求进行签名,从而形成签名的请求,以及(ii )将所述签名的请求与所述用户的所述身份和识别所述应用的分发者或开发者的标识符一起提交给所述交易服务器,或 (C2 )用于将所述签名密钥递送给所述客户端计算机的装置。
27.根据权利要求26所述的系统,其中所述多个参数进一步包括识别所述应用的所述分发者或开发者的标识符。
全文摘要
提供了用于对在客户端计算机和交易服务器之间的请求进行认证的系统和方法。在应用服务器处从客户端接收应用请求,包括发起请求的用户的身份。应用服务器基于以下来构建签名密钥(i)发出请求的用户的身份、(ii)基于时间的盐值、(iii)在应用和交易服务器之间共享的秘密、以及可选地(iv)应用的分发者或开发者的标识符。将签名密钥嵌入应用的无标记版本中,从而为应用加标记。有标记应用能够用签名密钥对请求进行签名,并且将签名的请求与用户的身份和应用的分发者或开发者的标识符一起提交给交易服务器。
文档编号H04L9/32GK102792630SQ201080058159
公开日2012年11月21日 申请日期2010年10月27日 优先权日2009年10月27日
发明者卢克·巴耶斯, 米克海尔·舍雷吉内, 维卡斯·古普塔, 艾伦·米尔斯, 赫曼特·马达夫·巴努 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1