用于安全传输的临时认证值的生成和验证的制作方法

文档序号:30709499发布日期:2022-07-10 04:16阅读:66来源:国知局

1.本公开一般涉及安全传输领域。
2.更具体地,本文描述的实施例涉及用于生成临时认证值以在例如与服务提供商系统的安全传输中使用的方法、终端和计算机程序。


背景技术:

3.当用户想要访问具有受限可用性的账户(诸如例如银行账户或用户账户)时,用户通常必须执行认证过程。对帐户的访问通常由服务提供商系统来处理,该系统另外还可以是提供该帐户的系统。认证过程验证用户是用户声称的那个用户并且用户被授权访问账户。用户可以是物理个体或非物理个体,例如计算机网络中的服务帐户。
4.通常,认证过程开始于用户提供标识数据,以通知服务提供商系统关于用户是谁并识别他自己。此后,或者在提供标识数据的同时,用户将提供与标识数据相关联的某种秘密或安全数据,以向系统证明用户确实是与标识数据相关联的用户,并且因此证明用户是用户声称的用户。服务提供商系统然后可以验证所提供的秘密确实与用户相关联,并且如果是,则可以认证用户以访问账户。用户可以提供来认证的信息的示例可以是例如用户名和密码,或者卡号和pin码。
5.通常,这些认证过程是利用位于远离用户的服务提供商系统来执行的。然后,通常通过网络或其它连接,例如通过因特网,来执行认证过程。然而,如果以明文的形式将该数据提供给服务提供商系统,则存在窃用者记录所提供的数据并随后将其用于其自己的目的的风险。


技术实现要素:

6.已经提供了如何从用户向验证用户的系统发送认证用户的信息的许多解决方案。然而,如在背景技术中也讨论的,本公开认识到这些解决方案中的许多方案都有缺点。这些解决方案中的一些没有提供足够的安全性,例如,信息以明文传输并且对于中间人来说就容易被窃用。其它解决方案足够安全,但是实现起来太复杂和/或昂贵,例如必须预先交换密钥的高级加密方案。因此,本文所述的实施例的一般目的是进一步开发现有技术中已知的技术。
7.因此,鉴于上述背景,已经做出了在此公开的各种实施例。
8.这里描述的实施例的一般目的是提供一种用于以不复杂但仍然安全的方式认证用户的解决方案。
9.该一般目的已经通过所附的独立权利要求来解决了。在所附从属权利要求中定义了有利的实施例。
10.在其第一方面,本公开涉及一种生成临时认证值的方法,用于到具有一个或若干个计算机服务器的服务提供商系统的安全传输。该方法包括接收第一标识数据和接收与第一标识数据相关联的安全数据。该方法还包括将散列函数应用于第一标识数据和安全数据
以生成临时认证值,并将所生成的临时认证值划分成第一和第二部分。该方法还包括仅将所划分的临时认证值的第二部分传输到服务提供商系统。
11.在一些实施例中,该散列函数是最小完美散列(mph)函数。
12.在一些实施例中,第一标识数据是卡号。然后,安全数据可以是pin码。在其他实施例中,第一标识数据是用户名。安全数据则可以是密码。
13.在一些实施例中,所划分的临时认证值的第一和第二部分具有相等的大小。在其他实施例中,所划分的临时认证值的第一和第二部分具有不同的大小。第二部分可以小于所划分的临时认证值的第一部分。替代地,所划分的临时认证值的第一部分可以小于第二部分。
14.在一些实施例中,该方法由终端来执行,并且该终端是从由以下各项组成的组中选择的设备:移动电话、平板计算机、膝上型计算机、台式计算机、卡终端和自动柜员机(atm)。
15.在其第二方面,本公开涉及一种验证在安全传输中使用的临时认证值的第二部分的方法。该方法包括接收临时认证值的第二部分。通过先前将散列函数应用于第一标识数据和安全数据以生成临时认证值,已经生成了所划分的临时认证值的第二部分。临时认证值已经被划分成第一和第二部分。该方法还包括将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分与一个认证值之间找到匹配。
16.在一些实施例中,至少一个认证值存储在可用认证值的列表中。
17.在一些实施例中,该方法还包括获得第二标识数据。该第二标识数据是与第一标识数据相同的标识数据。该方法还包括将相同的散列函数应用于所获得的第二标识数据连同来自存储的可用安全数据列表的多个安全数据中的每一个,以生成初始认证值。该方法还包括将每个生成的初始认证值划分成第一和第二部分。所生成的初始认证值的每个第二部分对应于可用认证值。在一些实施例中,该方法还包括将可用认证值作为认证值存储在可用认证值的列表中。
18.在一些实施例中,该方法还包括响应于已经发现了匹配,继续由经验证的安全传输发起的动作。
19.在一些实施例中,该散列函数是最小完美散列(mph)函数。
20.在有利的实施例中,该方法由具有一个或若干个计算机服务器的服务提供商系统来执行。
21.在其第三方面,本公开涉及一种包括指令的计算机程序,当在处理器上执行所述指令时,所述指令使所述处理器执行根据第一方面或第二方面的方法。还可以提供包括根据第三方面的计算机程序的载体。该载体可以是电信号、光信号、无线电信号或计算机可读存储介质中的一种。
22.在其第四方面,本公开涉及一种终端,包括用户接口;通信接口;一个或多个处理器;以及存储器,存储可由所述一个或多个处理器执行的指令,由此所述终端可操作以执行根据第一方面的方法。所述终端可以是从由以下各项组成的组中选择的设备:移动电话、平板计算机、膝上型计算机、台式计算机、卡终端和atm。
23.在其第五方面,本公开涉及具有一个或若干个计算机服务器的服务提供商系统。
所述服务提供商系统包括通信接口;一个或多个处理器;以及存储器,其存储可由所述一个或多个处理器执行的指令,由此所述服务提供商系统可操作以执行根据所述第三方面的方法。
24.在其第六方面,本公开涉及一种用于在终端和具有一个或若干个计算机服务器的服务提供商系统之间进行安全传输的方法。所述方法包括:所述终端接收第一标识数据;以及所述终端接收与标识数据相关联的安全数据。该方法还包括:所述终端将散列函数应用于标识数据和安全数据,以生成临时认证值;以及所述终端将生成的临时认证值划分成第一部分和第二部分。此后,该方法包括所述终端将所划分的临时认证值的第二部分发送到服务提供商系统。该方法还包括所述服务提供商系统接收所划分的临时认证值的所述第二部分;以及所述服务提供商系统将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分与一个认证值之间发现匹配。
25.在其第七方面,本公开涉及一种用于安全交易的系统。该系统包括终端和具有一个或若干个计算机服务器的服务提供商系统。该终端适于接收第一标识数据;接收与第一标识数据相关联的安全数据;以及将散列函数应用于第一标识数据和安全数据以生成临时认证值。所述终端还适于将所生成的临时认证值划分成第一部分和第二部分;以及将所划分的临时认证值的第二部分发送到服务提供商系统。所述服务提供商系统适于接收所述临时认证值的第二部分;以及将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分和一个认证值之间找到匹配。
26.如应当理解的,本文描述的一些实施例通过将临时认证值的第二半从终端传输到具有一个或若干个计算机服务器的服务提供商系统来实现认证值的安全传输和验证。本公开足够安全,但不需要复杂的加密算法或安全系统。
附图说明
27.参考附图,根据各种实施例的以下描述,这些和其他方面、特征和优点应是显而易见的,并且得到了阐明,其中:图1是示出根据用于生成临时认证值的方法的一个实施例的方法步骤或动作的流程图;图2a-2b示意性地示出最小完美散列(mph)函数的一个示例;图3是示出根据用于验证临时认证值的第二部分的方法的一个实施例的方法步骤或动作的流程图;图4a是示意性地示出本文描述的实施例的一个系统的框图;图4b是示意性地示出根据一些实施例的在图4a的系统中执行的动作的信令图;图5示出终端的实施例的一个示例性实现方式;图6示出诸如服务提供商系统之类的服务器系统的一个实施例的一个示例性实现方式;图7-8示出根据一些实施例的包括计算机程序的载体。
具体实施方式
28.现在将在下文中更全面地描述本发明。然而,本发明也可以以许多不同的形式来实施,并且不应被解释为限于本文阐述的实施例;相反,这些实施例是通过示例的方式提供的,从而本公开将是彻底和完整的,并且将向本领域技术人员充分地传达了本发明的范围。在整个说明书中,相同的附图标记表示相同的要素或方法步骤。
29.如前所述,用于认证数据的安全传输的一些现有解决方案可能不够安全,或者可能实现起来复杂和/或昂贵。这里描述的实施例的一般目的是允许更安全的信息传输,其通过对未授权的实体、过程和/或个人限制对帐户的访问来防止对帐户的未授权的使用或至少使其复杂化。
30.为了解决这个问题,根据一个示例性实施例,本文描述了用于终端和服务提供商系统之间的认证值的安全传输和验证的方法和系统。例如,终端可以接收第一标识数据,并且接收与第一标识数据相关联的安全数据。此外,终端可以将散列函数应用于第一标识数据和安全数据以生成临时认证值,并且终端可以将所生成的临时认证值划分成第一部分和第二部分。此后,终端可以仅将所划分的临时认证值的第二部分发送到服务提供商系统。此外,服务提供商系统可以接收临时认证值的第二部分,并且将接收到的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在接收到的临时认证值的第二部分与一个认证值之间找到匹配。
31.响应于已经找到了匹配,服务提供商系统然后可以提供对与第一标识数据相关联的账户的终端访问。
32.这可以使得能够生成临时认证值的第二半,其认证与第一标识数据相关联的终端。所生成的临时认证值通常唯一地与原始安全数据相关联,原始安全数据继而与第一标识数据相关联。因此,与原始安全数据相比,临时认证值相对更难以欺诈性地获得。例如,如果在终端和服务提供商之间未加密地执行安全数据的传输,则窃用者可以容易地获得安全数据并将其用于其自己的目的。
33.然而,根据本公开的所生成的临时认证值被划分成两个部分,并且仅生成的认证值的第二部分从终端发送到服务器系统。临时认证值的一部分不唯一地与原始安全数据相关联。事实上,若干个安全数据可以与临时认证值的第二部分相关联。然而,即使多于一个安全数据可以与临时认证值的第二部分相关联,所提供的安全性仍然足够高。与临时认证值的第二部分相关联的安全数据的数目仍然低于可能的安全数据的总量。例如,如果安全数据包括四个数字,则会有10,000个可能的数字组合。当临时认证值被划分成两个部分时,第二部分可以包括例如两个数字。因此,临时认证值的10,000个可能组合中的100个的最后两位可以匹配临时认证值的第二部分。匹配安全数据的百分比当然将取决于认证值的第二部分的大小与整个临时认证值的大小相比。与总大小相比,认证值的第二部分越小,匹配值越多。
34.将临时认证值划分成两部分并且仅发送第二部分具有若干优点。首先,通过将临时认证值分成两部分,中间人是否在窃用就是无关紧要的。即使中间人是对所接收的临时认证值的第二部分进行未加密访问的网络所有者,或者中间人是负责验证用户被授权访问他的账户、使用pin码验证进行信用卡支付等的第三方,中间人是否在窃用也是无关紧要的。即使中间人知道散列函数及其参数以及用户标识数据,中间人也将不能提取作为所发
送的临时认证值的第二半的来源的安全数据。在典型的四位数pin码的情况下,通常并且从字面上讲,将会有一百个可能的安全数据值,即pin码,以供在其间进行选择。
35.其次,由于存在较少的第三方滥用认证值列表和对应算法的风险,所以,本公开使得能够实现更安全的离线验证。这样,使用pin码验证的离线信用卡支付可以更安全。例如,暂时离线的atm仍然可以以足够安全的水平验证用户。
36.第三,在服务提供商系统处的验证更容易执行。例如,验证包括两个数字的串可能比验证包括四个数字的串更简单。此外,通过发送和验证比整个临时认证值小的部分,需要处理的数据就更少,并且安全值比较列表可以显著缩短,通常缩短到原始长度的平方根(例如,具有100而不是10,000个值)。这可以使得验证更快地执行。
37.可能争论的是,根据本公开的验证比如果传输整个临时认证值更少安全。代替10,000个可能的pin码组合,可能代替地仅有100个可能的组合。然而,尤其是如果存在非永久性的情况,如atm临时离线,或者如果中间人不敢暴露他自己,在找到正确的信用卡pin码之前测试50个错误的信用卡pin码,则可以认为风险是中等的。
38.因此,将临时认证值划分成两部分的优点超过了将临时认证值与多个安全数据相关联的缺点。
39.在更详细地描述本发明的实施例之前,且为了给出这些实施例的上下文,将简要描述散列函数。散列函数是可以用于将任意大小的数据映射到固定大小的数据的任何函数。由散列函数返回的值通常被称为散列值、散列码、散列和、或简单地被称为散列。因此,先前提到的“临时认证值”可以被看作是散列值。一种用途是被称为散列表的数据结构,其广泛地用于计算机技术中以用于快速数据查找。散列函数通常通过检测大文件中的重复记录来加速表或数据库查找。散列函数可以使人们容易地验证某些输入数据映射到给定的散列值,但是如果输入数据是未知的,则会故意难以通过知道所存储的散列值来重构它(或等效的替换)。这可以用于确保所传输的数据的完整性。
40.在本公开的一些实施例中,可以使用完美散列函数。完美散列函数可以例如是最小的完美散列函数。用于集合s的完美散列函数是将s中的不同元素映射到整数集合而没有冲突的散列函数。完美散列函数具有许多与其它散列函数相同的应用,但是具有不必实现冲突解决的优点。在数学术语中,它是总单射函数。此外,如果按某一给定顺序排列密钥集中的密钥,则完美散列函数通常是保持顺序的,并且散列函数通常会在散列表中保持该顺序。可以通过随机算法在与s的大小成比例的操作的数目中找到对于特定集合s的完美散列函数,其可以在恒定时间内评估,并且具有小范围内的值。适合于供散列表使用的任何完美散列函数通常至少使用与s的大小成比例的位的数量。通过将来自s的密钥(或其它相关联的值)放置在由函数的输出索引的表中,具有有限范围内的值的完美散列函数就可以用于高效的查找操作。在存在很少更新的频繁查询的大集合s的情况下,使用完美散列函数是最佳的。这是因为对该集合的任何修改都会产生非完美散列函数。如本领域技术人员所知,最小完美散列函数(mph函数)是将n个密钥映射到n个连续整数(通常为[0.. n-1]或[1.. n])的完美散列函数。或者换句话说:令j和k是某个有限集k的元素。f是最小完美散列函数,当且仅当f(j)=f(k)暗示j=k(即,单射函数),并且存在整数a使得f的范围是a..a+|k|-1。已经证明,通用的最小完美散列方案通常需要至少1.44位/密钥。目前最著名的最小完美散列方案似乎使用约2.6位/密钥。
[0041]
除了安全性之外,在这个上下文中使用mph函数作为所选散列函数的一个很大的优点是它提供了均匀分布,从而临时认证值的第二部分的填充不会在大小上发生变化,并且因此具有可预测的安全级别。
[0042]
图1是示意性地示出了生成临时认证值的一个方法的流程图,该临时认证值用于到具有一个或若干个计算机服务器的服务提供商系统的安全传输。在图1中详细示出的示例中,该方法是通过终端来执行的。终端可以是例如移动电话、平板计算机、膝上型计算机、台式计算机、卡终端或自动柜员机(atm)。
[0043]
方法100在步骤110以接收第一标识数据开始。第一标识数据可以标识终端、操作终端的用户或者与操作终端的用户相关联的项目。第一标识数据可以是例如卡号或用户名。如应当理解的,在一些情况下,第一标识数据可以包括字母和数字两者,以及其它字符。方法100随后继续到步骤120,接收与第一标识数据相关联的安全数据。例如,如果第一标识数据是卡号,则安全数据可以是pin码。在另一示例中,如果第一标识数据是用户名,则安全数据可以是密码。因此,安全数据是链接到第一标识数据的某种数据,其可以被提供以验证具有对第一标识数据的访问的用户确实是用户声称的那个并且认证该用户。应当理解,安全数据还可以包括字母和数字以及其它字符。
[0044]
此后,方法100继续步骤130,将散列函数应用于第一标识数据和安全数据,以生成临时认证值。所生成的临时认证值在它不是原始安全数据的意义上是临时的;它是不同的值,并且它可以替换地称为替换认证值。临时认证值临时(即在认证过程期间)替换安全数据。
[0045]
在步骤140中,将所生成的临时认证值划分成第一部分和第二部分。所划分的临时认证值的第一和第二部分可以具有相等的大小。替代地,所划分的临时认证值的第一和第二部分可以具有不同的大小。例如,第二部分可以小于所划分的临时认证值的第一部分。替代地,所划分的临时认证值的第一部分可以小于第二部分。因此,只要所划分的临时认证值的第二部分小于临时认证值的总大小,就可以以任何方式将生成的临时认证值划分成两个不同的部分。如从上文所理解的,第二部分的大小将决定匹配认证值的百分比。与临时认证值的整个大小相比,第二部分越小,匹配认证值的百分比就越高。对于较大的第二部分,匹配认证值的百分比将较低。例如,如果第二部分将具有与整个临时认证数据相同的大小,则就仅存在一个可能的匹配。然而,随着第二部分的大小在减小,可能匹配的数量将会增加。
[0046]
在步骤150中,将所划分的临时认证值的第二部分发送到服务提供商系统。
[0047]
如上所述,在一些实施例中,散列函数可以是mph函数。现在将更详细地描述将mph函数应用于第一标识数据和安全数据的一个示例,即步骤130。图2a示意性地示出了示例性最小完美散列函数。mph函数可以避免浪费空间和时间的挑战,如有时会在其他散列函数中涉及的。或者换句话说,密钥集中的每个密钥在散列表中具有一个且仅一个对应的散列密钥。例如,假设应用使用3位安全数据,则在密钥集中将有999个数字,并且在散列表中有999个对应数字。图2b中给出了一个示例。在该示例中,存在999个安全数据和999个对应的散列安全数据。如可以看到的,在这个说明性的示例中,0个可以得到998个、1个可以得到77个、2个可以得到31个等等。
[0048]
在应用散列函数的步骤130中使用的确切的散列函数或散列算法可以任意地或随机地确定或选择。更具体地说,可以任意地确定或选择在特定实施方式中使用的确切散列
函数或散列算法,只要其满足优选地非顺序保留mph函数的要求。如应当理解的,还应当根据用户需要和预期安全传输的系统要求来测试和评估要使用的确切散列函数或散列算法。例如,以下网页http://cmph.sourceforge.net/呈现各种公开可用的散列函数,其可以根据例如用户需要和系统要求(例如,中央处理单元(cpu)容量和存储器要求)来使用。在一些实现、应用或场景中,已经证明chd函数(压缩、散列和位移的缩写)可能是有利的。chd函数在djamal belazzougui,fabiano c.botelho和martin dietzfelbinger的论文“hash,displace,and compress”中有详细描述,其可以在http://cmph.sourceforge.net/papers/esa09.pdf处下载。替代地,已经证明在网页http://cmph.sourceforge.net/描述的bdz或bmz函数可能适于应用。
[0049]
在一些实施例中,应用散列函数的步骤130可以另外包括将散列函数应用于数据种子。数据种子可以包括时间戳和/或诸如移动终端标识符(例如imsi)的标识符。通过使用时间戳,该方法可以提供临时认证值,其仅在有限的时间段内有效,例如,当生成时间戳时使用包含时间戳的数据种子。通过还包括数据种子,所生成的临时认证值可能甚至更加动态,并且变得更难以欺诈性地获得。然而,这些实施例可能难以与永久验证列表组合使用。
[0050]
在替选实施例中,方法步骤(或动作)110-140和方法步骤(或动作)150可以由不同的设备以分布式方式执行或以其他方式执行。例如,第一设备或终端可以初始地生成所划分的临时认证值,并且将其划分成第一和第二部分。此后,第二(即,不同的)设备或终端可以将所生成的划分的临时认证值发送到服务提供商系统。在一个示例性实施例中,第一设备可以例如是临时认证值生成设备,其被特别设计用于生成所划分的临时认证值。一旦知道,由第一设备生成的所划分的临时认证值可以由第二设备用于被发送到服务提供商系统,以例如发起授权过程或基于卡的交易。
[0051]
现在参考图3,其示出了示意性地示出验证在安全传输中使用的临时认证值的第二部分的方法的流程图。在图3中详细示出的示例中,该方法通过包括一个或若干个计算机服务器的服务提供商系统来执行。在替选实施例中,该方法可以例如替代地借助于包括一个或若干个计算机服务器的信贷发行者系统来执行。
[0052]
如应当理解的,服务提供商系统可以包括一个单个服务提供商服务器或若干个服务提供商服务器。为此,表述服务提供商服务器用于表示由服务提供商托管的计算机服务器。
[0053]
方法300在步骤310处开始于接收临时认证值的第二部分。如先前参考图1所描述的,通过先前将散列函数应用于第一标识数据和安全数据来生成临时认证值,已经生成了所划分的临时认证值的第二部分。如前所述,所应用的散列函数可以是任何合适的散列函数,但是在一个优选实施例中,散列函数可以是mph函数。此后,临时认证值被划分成第一和第二部分。例如,可以从已经向服务提供商系统发送临时认证值的第二部分的终端(例如移动终端)接收临时认证值的第二部分。例如,终端可能已经发送了临时认证值的第二部分以发起与服务提供商系统的认证过程或基于卡的交易。
[0054]
此外,方法300包括步骤360,其将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分和一个认证值之间找到匹配。
[0055]
因此,如果在服务提供商系统处,接收到的临时认证值的第二部分与可用的认证
值匹配,则认证第一标识数据。在一个实施例中,服务提供商系统仅具有一个可用的认证值。因此,所接收的临时认证值的第二部分必须匹配该值,以便认证第一标识数据。
[0056]
在一些实施例中,至少一个认证值可以存储在可用认证值的列表中。这可以应用于散列函数已经仅被用在静态值(例如第一标识数据和安全数据)时的情况,或者当临时认证值的第二部分大于第一部分时的情况。可用认证值的列表包括至少一个可用认证值。如应当理解的,存储在列表中的认证值的数量可以是单个值或可以是多个值。
[0057]
在一些其它实施例中,方法300还可以包括步骤320,获得第二标识数据。所获得的第二标识数据是与第一标识数据相同的标识数据。方法300还可以包括步骤330,即,将相同的散列函数与来自存储的可用安全数据列表的若干个安全数据中的每一个一起应用于所获得的第二标识数据,以生成初始认证值。此后,方法300继续步骤340,将每个生成的初始认证值划分成第一和第二部分。所生成的初始认证值的每个第二部分可以对应于可用认证值。因此,方法300包括将接收到的认证值的第二部分与生成的所划分的初始认证值进行连续比较,直到找到匹配。这可以提供安全数据的安全传输,其将以较不复杂但仍安全的方式被认证。欺诈者创建“假的”有效临时认证值即使不是不可能的,也是非常困难的。
[0058]
在之前描述的实施例中,所应用的散列函数可以另外应用于数据种子。在这样的实施例中,散列函数将在终端和服务提供商系统处被用在相同的数据种子上。数据种子可以包括时间戳和/或诸如移动终端标识符(例如imsi)的标识符。通过使用时间戳,该方法将提供临时认证值,其仅在有限的时间段内有效,例如,当生成时间戳时使用包含时间戳的数据种子。通过还包括数据种子,方法300可能变得甚至更难以欺诈性地获得。
[0059]
在一个实施例中,方法300还可以包括将分出的初始认证值的第二部分作为认证值存储在可用认证值的列表中的步骤350。因此,具有分出的认证值的列表被存储在检验方即服务提供商系统处的列表中。当服务提供商系统接收到所发送的临时认证值的第二部分时,它可以将该值与服务提供商系统处的列表中存储的认证值进行比较。如果存在匹配,则可以认证第一标识数据,如果没有发现匹配,则第一标识数据不被认证。
[0060]
在一些有利的实施例中,响应于已经发现匹配,方法300还可以包括步骤370,继续由经验证的安全传输发起的动作。所发起的动作可以是例如认证过程或基于卡的交易。
[0061]
图4a示意性地示出了一种系统,其中,可以应用迄今为止描述的实施例。在该示例性场景中,系统400包括终端410(这里示出为移动电话)和服务提供商系统420(诸如,由服务提供商托管的计算机服务器)。图4b是示出了可以执行的各种动作以及图4a所示的移动终端410和服务提供商系统420之间的信令的信令图。
[0062]
终端410可以通过网络或其他连接430连接起来,在一个示例中,经由因特网。终端410可以通过有线连接、无线连接或已知连接方法的任何组合,例如通过专用网络或连接来连接。应当注意,任何终端可以连接到网络430,并且图4a中的终端410的数量和类型不应当被解释为限制。系统400还包括至少一个服务器420。在图4a中,仅示出了一个服务器420,但是应当注意,可以在计算机网络中实现任何数量的服务器420。通常,服务器是专用于运行一个或多个服务(作为主机)的物理计算机(硬件系统),以服务于网络430上的其他计算机或终端410的用户的需要。在一个实施例中,服务器420是服务提供商服务器。通常,服务提供商服务器420可以指帮助传递可以通过诸如因特网430的相互通信网络访问的内容的硬件(计算机)或软件(计算机应用)。
[0063]
图4b示出了可以在终端410和服务提供商系统420之间用信号通知以执行认证值的安全传输的示例性动作和示例性消息。如前所述,这里以移动电话为例的终端接收110第一标识数据。终端410还接收120与第一标识数据相关联的安全数据。终端410将散列函数(例如最小完美散列)应用130到第一标识数据和安全数据,以生成临时认证值。将所生成的临时认证值划分成140第一部分和第二部分。终端410将所划分的临时认证值的第二部分发送150到服务提供商系统。服务提供商系统420接收310临时认证值的所述第二部分。例如,服务提供商系统420可以从终端410接收临时认证值的第二部分。响应于接收310临时认证值的第二部分,服务提供商服务器420还可以将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分与一个认证值之间找到匹配。
[0064]
如应当理解的,可以在移动终端410处生成临时认证值。根据一些实施例,临时认证值可以仅在有限的时间段内有效。通过还将散列函数用到第一标识数据和安全数据以及数据种子,可以生成瞬时临时认证值。数据种子可以包括例如时间戳和/或标识符,诸如imsi。可以以不同的方式获得数据种子,例如,取决于要由第一标识数据的认证发起的预期动作的特性。在一些实施例中,可以以用户向执行该方法的终端提供数据种子的方式来获得数据种子。另外或作为替选,获得数据种子可以包括从具有一个或若干个计算机服务器的服务提供商系统接收包括数据种子的信号。例如,安装id可以被包括在从服务提供商系统接收的信号中。另外或作为替选,获得数据种子包括从具有一个或若干个计算机服务器的发卡方系统接收包括数据种子的信号。例如,银行账号可以被包括在从发卡方系统接收的信号中。另外或作为替选,获得数据种子可以包括从与移动终端相关联的sim检索数据种子。例如,可以从所述sim检索imsi。瞬时临时认证值通常甚至更难以欺诈性地获得。
[0065]
现在参考图5,其示意性地示出了终端410的一个实施例的一个示例性实现(例如,也参见图4a-4b)。终端410可以是例如移动电话、平板计算机、膝上型计算机、台式计算机或卡终端。终端410可以被配置成执行或以其他方式执行根据本文描述的实施例(例如图1或图4a-4b)中的任何一个的方法。为此,终端410包括用户接口(ui)411。移动终端410还包括硬件资源。例如,移动终端410可以包括一个或多个处理器412和一个或多个存储器413。此外,可以提供通信接口414或通信电路,以便允许移动终端与诸如服务提供商系统420之类的其他设备进行通信。为此,通信接口414可以包括发送器(tx)和接收器(rx)。作为替选,通信接口414可以包括组合了发送和接收能力二者的收发器(tx/rx)。通信接口414可以包括射频(rf)接口,其允许移动终端410通过使用不同的射频技术(诸如lte(长期演进)、wcdma(宽带码分多址接入)、由第3代合作伙伴计划(3gpp)标准化的任何其他蜂窝网络、或者任何其他无线技术(诸如wi-fi、bluetooth
®
等))通过射频频带与其他移动终端和/或设备(诸如服务提供商系统420)进行通信。
[0066]
如应当理解的,终端410因此可以包括ui 411、通信接口i/f 414、一个或多个处理器412;以及存储器413,其存储可由一个或多个处理器412执行的指令,由此终端410可操作以接收第一标识数据,接收与第一标识数据相关联的安全数据,将散列函数应用于第一标识数据和安全数据以生成临时认证值,将所生成的临时认证值划分成第一部分和第二部分,并且将所划分的临时认证值的第二部分传送到服务提供商系统420。
[0067]
在一些实施例中,散列函数可以是mph函数。
[0068]
在一些实施例中,第一标识数据可以是卡号。然后,安全数据可以是pin码。
[0069]
在一些实施例中,第一标识数据可以是用户名。然后,安全数据可以是密码。
[0070]
在一些实施例中,所划分的临时认证值的第一和第二部分可以具有相等的大小。在其他实施例中,所划分的临时认证值的第一和第二部分可以具有不同的大小。例如,第二部分可以小于所划分的临时认证值的第一部分。替代地,所划分的临时认证值的第一部分可以小于第二部分。
[0071]
现在参考图6,其示意性地示出了服务提供商系统420的一个实施例的一个示例性实现方式(例如,也参见图4a-4b)。服务提供商系统420可以例如是如前所述由服务提供商托管的计算机服务器。服务提供商系统420可以被配置成执行或以其他方式执行根据本文描述的实施例中任一个的方法,例如图3或图4,为此,服务提供商系统420可以可选地包括ui 421。此外,服务提供商系统420包括硬件资源。例如,服务提供商系统420可以包括一个或多个处理器422和一个或多个存储器423。此外,可以提供通信接口424或通信电路,以便允许服务提供商系统420与诸如移动终端410之类的其他设备进行通信。为此,通信接口424可以包括发送器(tx)和接收器(rx)。作为替选,通信接口424可以包括组合了发送和接收能力二者的收发器(tx/rx)。通信接口424可以包括射频(rf)接口,其允许服务提供商系统420通过使用不同的射频技术(诸如lte(长期演进)、wcdma(宽带码分多址)、由第3代合作伙伴计划(3gpp)标准化的任何其他蜂窝网络、或者任何其他无线技术(诸如wi-fi、bluetooth
®
等))通过射频频带与其他计算机服务器和/或设备(诸如移动终端410)进行通信。
[0072]
如应当理解的,服务提供商系统420因此可以包括通信接口424、一个或多个处理器422和存储可由一个或多个处理器执行的指令的存储器423,由此服务提供商服务器420操作以接收临时认证值的第二部分。通过先前将散列函数应用于第一标识数据和安全数据以生成临时认证值,然后将临时认证值划分成第一和第二部分,生成所划分的临时认证值的第二部分。服务证实者服务器420还可操作以将所接收的临时认证值的第二部分与至少一个可用认证值中的每一个进行比较,直到在所接收的临时认证值的第二部分和一个认证值之间找到匹配。
[0073]
在一些实施例中,至少一个认证值可以存储在可用认证值的列表中。
[0074]
在一些其他实施例中,服务提供商服务器还可以操作用于获得第二标识数据,第二标识数据是与第一标识数据相同的标识数据;以及将相同的散列函数应用于所获得的第二标识数据连同来自存储的可用安全数据列表的若干个安全数据中的每一个,以生成初始认证值。此后,服务提供商系统可以操作用于将每个生成的初始认证值划分成第一和第二部分;以及将所划分的初始认证值的第二部分作为认证值存储在可用认证值的列表中。
[0075]
在有利的实施例中,服务提供商系统还可以操作用于响应于已经找到匹配,继续由经验证的安全传输发起的动作。
[0076]
在一些实施例中,散列函数可以是mph函数。
[0077]
现在转到图7,将简要地讨论另一实施例。图7示出了计算机可读介质的一个示例,在该示例中,其形式为数据盘1000。在一个实施例中,数据盘1000是磁性数据存储盘。数据盘1000被配置成承载可以被加载到例如移动终端410的装置的存储器中的指令1010。在由该装置的处理器执行所述指令时,使该装置执行根据这里结合图1和4描述的实施例中任何一个的方法或过程。数据盘1000被设置成连接到读取设备(未示出)或在其中并由其读取,
以便将指令加载到处理器中。与一个(或若干个)数据盘1000结合的读取设备的一个这样的示例是硬盘驱动器。应当注意,计算机可读介质也可以是其他介质,诸如光盘、闪速存储器或其他常用的存储技术。在这样的实施例中,数据盘1000是一种类型的有形计算机可读介质。通过将指令包括在计算机可读信号(未示出)中,指令可以替代地下载到计算机数据读取设备,诸如能够读取计算机可读介质上的计算机编码数据的装置,该计算机可读信号经由无线(或有线)接口(例如经由因特网)传输到计算机数据读取设备,用于将指令加载到装置的处理器中。在这样的一个实施例中,计算机可读信号是一种类型的非有形计算机可读介质。
[0078]
现在转到图8,将简要地讨论另一实施例。图8示出了计算机可读介质的一个示例,在该示例中,其形式为数据盘1100。在一个实施例中,数据盘1100是磁性数据存储盘。数据盘1100被配置成承载可以被加载到装置的存储器中的指令1110,所述装置例如包括一个或若干个计算机服务器的服务提供商系统420。在由该装置的处理器执行所述指令时,使该装置执行根据这里结合图3和4描述的实施例中任何一个的方法或过程,数据盘1100被设置成连接到读取设备(未示出)或在其中并由其读取,以便将指令加载到处理器中。与一个(或果敢个)数据盘1100结合的读取设备的一个这样的示例是硬盘驱动器。应当注意,计算机可读介质也可以是其他介质,诸如光盘、闪速存储器或其他常用的存储技术。在这样的实施例中,数据盘1100是一种类型的有形计算机可读介质。通过将指令包括在计算机可读信号(未示出)中,指令可以替代地下载到计算机数据读取设备,诸如能够读取计算机可读介质上的计算机编码数据的装置,该计算机可读信号经由无线(或有线)接口(例如经由因特网)传输到计算机数据读取设备,用于将指令加载到装置的处理器中。在这样的一个实施例中,计算机可读信号是一种类型的非有形计算机可读介质。
[0079]
在以上的详细描述中,出于解释而非限制的目的,阐述了具体细节以便提供对本公开中描述的各种实施例的透彻理解。在一些情况下,省略了对公知的设备、组件、电路和方法的详细描述,以免使不必要的细节模糊了对本文所公开的实施例的描述。这里叙述这里公开的原理、方面和实施例的所有陈述及其具体示例旨在包括其结构和功能等同物二者。另外,这些等同物旨在包括当前已知的等同物以及将来开发的等同物二者,即,开发的执行相同功能的任何元件,而不管结构如何。因此,例如,应当理解,本文的框图可以表示体现所描述的实施例的原理的说明性电路或其他功能单元的概念视图。类似地,应当理解,任何流程图等表示各种过程,这些过程可基本上在计算机可读介质中表示并因此由计算机或处理器执行,而不管是否明确示出了这样的计算机或处理器。包括功能块的各种元件的功能可以提供有硬件,诸如电路硬件和/或能够执行存储在上述计算机可读介质上的编码指令形式的软件的硬件。因此,这样的功能和所图示的功能块应被理解为是以硬件实现的和/或计算机实现的,并且因此是机器实现的。在硬件实现方面,功能块可以包括或包含但不限于数字信号处理器(dsp)硬件、精简指令集处理器、硬件(例如数字或模拟)电路(包括但不限于(多个)专用集成电路[asic]和/或(多个)现场可编程门阵列)以及(在适当的情况下)能够执行这些功能的状态机。在计算机实现方面,计算机通常被理解为包括一个或多个处理器或一个或多个控制器。当由计算机、处理器或控制器提供时,功能可以由单个专用计算机、处理器或控制器来提供,由单个共享计算机、处理器或控制器来提供,或者由多个单独的计算机、处理器或控制器来提供,其中,一些可以是共享的或分布式的。此外,术语“处理
器”或“控制器”的使用也可被解释为指代能够执行此类功能和/或执行软件的其它硬件,诸如上文叙述的示例性硬件。
[0080]
受益于在以上描述和相关附图中呈现的教导,本领域技术人员应当想到所描述的实施例的修改和其它变型。因此,应当理解,实施例不限于本发明中描述的特定示例实施例,且修改和其它变化旨在包含在本发明的范围内。例如,虽然这里描述的实施例已经被示例为应用或利用最小完美散列函数,但是本领域技术人员应当理解,并不必须应用或利用最小完美散列函数。可以设想,在一些应用或场景中,可以替换地应用其他散列函数。更进一步地,尽管这里可以使用特定术语,但是它们仅在一般和描述性意义上使用,而不是为了限制的目的。因此,本领域技术人员应当认识到对所描述的实施例的许多变化,其将仍然落入所附权利要求的范围内。如本文所使用的,术语“包含”或“包括”不排除存在其它要素或步骤。此外,尽管各个特征可以包括在不同的权利要求中,但是这些特征可以有利地组合,并且包括不同的权利要求并不意味着特征的组合是不可行的和/或不利的。此外,单数的引用并不排除复数。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1