用于在认证交易中保护身份的高效方法

文档序号:10541121阅读:237来源:国知局
用于在认证交易中保护身份的高效方法
【专利摘要】本发明提供了用于在认证数据传输中保护身份的系统和方法。例如,可以在便携式用户设备与访问设备之间进行非接触式交易而不会以明文暴露便携式用户设备的公钥。在一个实施例中,访问设备可以向便携式用户设备发送访问设备公钥。用户设备可以返回用户设备盲公钥和加密的用户设备数据。访问设备可以使用用户设备盲公钥和访问设备私钥确定共享秘密。访问设备则可以使用共享秘密对加密的用户设备数据进行解密。
【专利说明】用于在认证交易中保护身份的高效方法 相关申请的交叉引用
[00011本申请是2014年1月13日提交的美国临时申请号61/926,908(代理人案卷号 79900-897598)的非临时申请并要求保护其优先权,其全部内容出于所有目的通过援引并 入本文。 背景
[0002] 随着非接触式支付设备(如NFC使能移动电话和非接触式卡)越来越流行,维护支 付交易的安全性仍然是关注问题。例如,在一个情景下,攻击者可能试图窃听非接触式交易 (例如,通过使用隐蔽的无线电接收机)。即使支付信息被加密或以其他方式受保护,但攻击 者可能尝试确定进行交易的用户的身份。如果被确定了,则用户的身份可能被用于不正当 目的。
[0003] 本发明的实施例单独和共同地解决了这些问题和其他问题。 简要概述
[0004] 本发明的实施例涉及用于在认证数据传输中保护身份的高效方法。例如,可以在 便携式用户设备与访问设备之间进行非接触式交易而不会以明文暴露便携式用户设备的 公钥。
[0005] 在一个实施例中,可以由便携式用户设备从访问设备接收访问设备公钥。可以从 存储在便携式用户设备上的用户设备公钥、以及密码随机数(nonce)(例如,随机值)生成用 户设备盲公钥。类似地,可以从与用户设备公钥和密码随机数相对应的用户设备私钥生成 用户设备盲私钥。接下来,可以使用用户设备盲私钥和暂时性公钥生成共享秘密。共享秘密 可以用于派生出会话密钥,并且会话密钥可以用于加密用户设备数据,如用户设备证书。可 以将加密的用户设备数据和用户设备盲公钥发送至访问设备。访问设备可以使用用户设备 盲公钥和访问设备私钥重新生成共享秘密。然后共享秘密用于重新生成会话密钥并对加密 的用户设备数据进行解密。因而,访问设备可以在不以明文传输证书的情况下获得并验证 用户设备证书。 附图简要说明
[0006] 图1示出了本发明的实施例可以使用的系统的示例。
[0007] 图2示出了根据本发明的一些实施例的访问设备与用户设备之间的通信图。
[0008] 图3示出了从用户设备安全地获得用户设备数据的方法。
[0009] 图4示出了将用户设备数据安全地传输至访问设备的方法。
[0010] 图5示出了数据流程图,展示了根据一些实施例在建立共享秘密时所执行的操作。
[0011] 图6示出了更详细的数据流程图,展示了根据一些实施例的在数据传输方法中执 行的操作。
[0012] 图7示出了从用户设备安全地获得用户设备数据的最优方法。
[0013] 图8示出了将用户设备数据安全地传输至访问设备的最优方法。
[0014] 图9示出了根据一些实施例的用户设备的示例。
[0015] 图10示出了示例性计算机装置的框图。 术语
[0016] 在讨论本发明的一些实施例之前,对一些术语的说明可能有助于理解本发明的实 施例。
[0017] 术语"服务器计算机"可以包括强大的计算机或计算机集群。例如,服务器计算机 可以是大型主机、微型计算机集群、或起到单元作用的一组服务器。在一个示例中,服务器 计算机可以是联接至Web服务器的数据库服务器。服务器计算机可以联接至数据库并且可 以包括用于服务于来自一个或多个客户机计算机的请求的任何硬件、软件、其他逻辑、或以 上内容的组合。服务器计算机可以包括一个或多个计算装置并且可以使用各种计算结构、 安排、和编译中的任一者来服务于来自一个或多个客户机计算机的请求。
[0018] 术语"公/私钥对"可以包括由实体生成的一对关联加密密钥。所述公钥可以用于 公共功能,如对要发送给实体的消息进行加密,或用于对应该由实体做出的数字签名进行 验证。另一方面,私钥可以用于私用功能,如对接收到的消息解密或应用数字签名。公钥通 常将由被称为证书授权中心(CA)的主体进行授权,所述证书授权中心将公钥存储在数据库 中并将其分配给请求它的任何其他实体。私钥一般将被保持在安全存储介质中并且通常将 是只有实体知道。然而,在此所描述的密码系统可以以用于恢复丢失的密钥并避免数据损 失的密钥恢复机构为特征。公钥和私钥可以是任何适当格式,包括基于RSA或椭圆曲线密码 学(ECC)的格式。
[0019] "数字签名"可以指基于公/私钥对应用算法的结果,这种算法允许签名方显露,并 且验证方验证文件的真实性和完整性。签名方借助于私钥起作用,并且验证方借助于公钥 起作用。这个过程证明发送者的真实性、已签名文件的完整性和所谓的不可否认性原则,所 述原则不允许否认已经签署的内容。证书或其他包括签名方的数字签名的数据据称是签名 方所"签署的"。
[0020] "证书"或"数字证书"可以包括使用数字签名将公钥与关联于身份的数据绑定的 电子文件或数据文件。所述证书可以包括一个或多个数据字段,如身份的合法姓名、证书的 序列号、证书的有效起止日期、证书相关的权限等。证书可以包括指示证书有效的第一天的 "有效起始"日期,以及指示证书有效的最后一天的"有效截止"日期。证书还可以包含包括 这些数据字段的证书中的数据的拼凑。除非另外说明,每个证书都由证书授权机构签名。
[0021] "证书授权机构"(CA)可以包括一个或多个操作性联接以向实体发行证书的服务 器计算机。所述CA可以使用CA证书证明其身份,其证书包括CA的公钥。可以用另一个CA密钥 签名、或可以用同一个CA密钥签署CA证书。后者被称为自签名证书。CA可以维护CA所发行的 所有证书的数据库,并且还可以维护被撤销的证书的列表。
[0022]在典型的过程中,证书授权机构从其身份已知的实体接收未签名的证书。未签名 的证书包括公钥、一个或多个数据字段、以及所述证书中的数据的拼凑。CA用与CA证书上所 包括的公钥相对应的私钥对证书进行签名。CA然后可以将签名的证书存储在数据库中,并 将签名的证书发行给实体。
[0023] "密码随机数"可以包括任何数字、字符串、位序列、或其他旨在联合单个通信会话 使用的数据值。在一些情况下,密码随机数可以是随机或伪随机生成的。通常,密码随机数 具有足够的长度以使多次独立生成同一随机数值的可能性不大。
[0024] "盲密钥"(如"盲公钥")可以包括已经通过与另一数据元素(如密码随机数)组合 而混乱或以其他方式修改了其原始值的密钥。例如,在椭圆曲线密码学中,公钥可以乘以随 机数从而生成"盲公钥"。类似地,私钥可以乘以随机数从而生成"盲私钥"。
[0025] "暂时性密钥对"可以包括被生成以供单次交易或其他通信会话使用的公钥(即, "暂时性公钥")和私钥(即,暂时性私钥)。所述暂时性密钥对可以具有任何适当格式,如ECC 或RSA。通常,一旦交易或通信会话已经结束,就可以删除暂时性密钥对。
[0026] "加密密钥"可以包括任何数据值或其他适用于用密码加密数据的信息。"解密密 钥"可以包括任何数据值或其他适用于对已加密的数据进行解密的信息。在一些情况下,用 于加密数据的同一密钥可以可操作用于解密数据。这种密钥可以被称为对称加密密钥。
[0027] 术语"用户设备数据"可以包括任何数据或与用户设备相关联的信息。用户设备数 据的示例可以包括与用户设备相关联的用户姓名、与用户设备相关联的组织、与用户设备 相关联的支付信息(如主账号(PAN))、用户设备的失效日期、与用户设备相关联的证书等。 详细说明
[0028] 本发明的实施例涉及用于在认证数据传输中保护身份的高效方法。例如,可以在 便携式用户设备与访问设备之间进行非接触式交易而不会以明文暴露便携式用户设备的 公钥。
[0029]在一个实施例中,可以由便携式用户设备从访问设备接收访问设备公钥。可以从 存储在便携式用户设备上的用户设备公钥、以及密码随机数(例如,随机值)生成用户设备 盲公钥。类似地,可以从与用户设备公钥和密码随机数相对应的用户设备私钥生成用户设 备盲私钥。接下来,可以使用用户设备盲私钥和暂时性公钥生成共享秘密。共享秘密可以用 于派生出会话密钥,并且会话密钥可以用于加密用户设备数据,如用户设备证书。可以将加 密的用户设备数据和用户设备盲公钥发送至访问设备。访问设备可以使用用户设备盲公钥 和访问设备私钥重新生成共享秘密。然后共享秘密用于重新生成会话密钥并对加密的用户 设备数据进行解密。因而,访问设备可以在不以明文传输证书的情况下获得并验证用户设 备证书。
[0030] 实施例可以在安全通信中保护便携式用户设备的身份或其他实体。在一些情况 下,攻击者可能监听或另外监视在访问设备与便携式用户设备之间传递的数据。由于本发 明的实施例可以避免以明文传输任何可识别的信息(如用户设备的公钥),所以从未授权实 体保护了便携式用户设备的身份。
[0031] 实施例还可以仅使用单个请求和单个响应实现认证通信。这允许减小延迟来快速 认证,并且允许将实施例的安全特性整合至其他现有的请求/响应流中,而不需要附加请 求。例如,在一些实施例中,可以将所公开的协议数据附于现有请求/响应上。
[0032] 另外,在之前已经通信的便携式用户设备和访问设备的情况下,实施例可以提供 更快且更高效的通信。在一些实施例中,便携式用户设备处的注册表可以用于存储用于一 个或多个访问设备的将来的共享秘密和将来的盲公钥值。访问设备处的模拟注册表可以用 于存储用于一个或多个用户设备的将来的共享秘密和将来的用户设备标识符值。从而,如 果用户设备和访问设备多次通信,则可以使用所存储的数据。这可以避免某些可能相对太 占时间和功率的操作,如椭圆曲线Diffie-Hellman(ECDH)算法。这还可以为非接触式设备 的用户提供改善的体验,因为便携式用户设备和访问设备可能不需要长时间保持在一起。 例如,根据一些实施例,两个设备之间的安全且私密的通信可以在不到50ms时间内进行。
[0033] 实施例对于不使用对窃听者而言的盲密钥的系统可能看起来一样,因为窃听者将 不会知道从便携式用户设备传输至访问设备(或反之)的公钥是盲公钥还是非盲公钥。因 为,实施例可以提供针对协议逆向工程的保护。 I.系统
[0034] 图1示出了根据本发明的实施例的系统。所述系统包括可能操作便携式用户设备 101的用户(未示出)。用户可以使用便携式用户设备101与访问设备102通信进行支付交易。 如在此所使用的,"便携式用户设备"可以包括移动电话、平板、信用卡、借记卡、或任何其他 合适的设备。如在此所使用的,"访问设备"可以包括任何适用于与便携式用户设备通信的 计算设备。在一些实施例中,访问设备102可以直接与便携式用户设备101通信。在其他实施 例中,访问设备102可以经由接口设备与便携式用户设备101通信,如智能手表、智能眼镜、 或任何其他合适的设备。访问设备102可以与商户计算机103连接,所述商户计算机可以与 收单行计算机104连接。收单行计算机104可以经由支付处理网络105与发卡行计算机106连 接。
[0035] 如在此所使用的,"发卡行"通常可以指为用户维护金融账户并且经常向用户发行 便携式用户设备1〇1(如信用卡或借记卡)的企业实体(例如,银行)。"商户"通常是参与交易 和可以销售商品或服务的实体。"收单行"通常是与具体商户或其他实体具有业务关系的业 务实体(例如,商业银行)。一些实体可以执行发卡行和收单行两者的功能。一些实施例可以 包含这样的单个实体发卡行-收单行。这些实体中的每一者可以包括一个或多个计算机装 置(例如,商户计算机103、收单行计算机、支付处理网络105、以及发卡行计算机106)从而使 能通信,或执行在此所描述的功能中的一项或多项功能。
[0036] 支付处理网络105可以包括数据处理子系统、网络、和用于支持和递送证书权限服 务、授权服务、异常文件服务、交易评分服务、和清算与结算服务的操作。示例性支付处理网 络可以包括VisaNet?。支付处理网络(如VisaNet?)能够处理信用卡交易、借记卡交易、和 其他类型的商业交易。VisaNet?具体地包括处理授权请求的VIP系统(Visa综合支付系统) 和执行清算和结算服务的Base II系统。
[0037]支付处理网络105可以包括一个或多个服务器计算机。"服务器计算机"通常是强 大的计算机或计算机集群。例如,服务器计算机可以是大型主机、微型计算机集群、或起到 单元作用的一组服务器。在一个示例中,服务器计算机可以是联接至Web服务器的数据库服 务器。支付处理网络105可以使用任何合适的有线或无线网络,包括互联网。
[0038] 在一些支付交易中,用户使用便携式用户设备101在商户处购买商品或服务。用户 的便携式用户设备101可以与商户处与商户计算机103相关联的访问设备102交互。例如,用 户可以将便携式用户设备101轻按在访问设备103中的NFC读卡器上。可替代地,用户可以通 过计算机网络向商户指示支付细节,如网上交易。
[0039] 用于交易的授权请求消息可以由访问设备102或商户计算机103生成然后被转发 至收单行计算机104。在接收所述授权请求消息之后,授权请求消息则被发送至支付处理网 络105。支付处理网络105则将授权请求消息转发至相对应的发卡行计算机106,发卡行计算 机与关联于便携式用户设备101的发卡行相关联。
[0040] "授权请求消息"可以是被发送至支付处理网络和/或用于请求授权交易的支付卡 的发卡行的电子消息。根据一些实施例的授权请求消息可以符合ISO 8583,其是交换与用 户使用支付设备或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消 息可以包括发卡行账户标识符,所述发卡行账户标识符与支付设备或支付账户相关联。授 权请求消息还可以包括对应于"识别信息"的附加数据元素,包括(仅举例来讲):服务代码、 CW(卡验证值)、dCVV(动态卡验证值)、失效日期等。授权请求消息还可以包括"交易信息", 如与当前交易相关联的任何信息,如交易金额、商户标识符、商户位置等、以及可以用于确 定是否识别和/或授权交易的任何其他信息。授权请求消息还可以包括其他信息,如对生成 授权请求消息的访问设备进行识别的信息、关于访问设备的位置的信息等。
[0041]在发卡行计算机106接收到授权请求消息之后,发卡行计算机106将授权响应消息 发送回到支付处理网络105从而指示当前交易被授权(或未被授权)。然后,支付处理网络 105将授权请求消息转发回收单行计算机104。在一些实施例中,根据欺诈风险分数值,即使 发卡行计算机106已经授权交易,支付处理网络105也可以拒绝交易。收单行计算机104然后 将响应消息转发回商户计算机103。
[0042] "授权响应消息"可以是由发卡金融机构106或支付处理网络105所生成的对授权 请求消息的电子消息回复。授权响应消息可以包括(仅举例来讲)以下状态指示符中的一项 或多项:同意一同意交易;拒绝一不同意交易;或呼叫中心一响应未决的更多信息,商户必 须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,该授权代码可以是信用卡 发行银行响应于电子消息中的授权请求消息而返回(直接地或通过支付处理网络105)至指 示同意交易的商户计算机103的代码。该代码可以用作授权的证明。如以上指出的,在一些 实施例中,支付处理网络105可以生成或转发授权响应消息至商户。
[0043]商户计算机103收到授权响应消息之后,商户计算机103则可以为用户提供授权响 应消息。响应消息可以由访问设备102显示、或可以在物理收据上打印出来。可替代地,如果 所述交易是网上交易,商户可以提供网页或授权响应消息的其他指示作为虚拟收据。所述 收据可以包括交易的交易数据。
[0044]在一天结束时,支付处理网络105可以进行正常的清算和结算过程。清算过程是收 单行与发卡行之间交换金融详情的过程以促成过账到顾客的支付账户和用户的结算位置 的对账。 II.认证通信方法
[0045] 图2示出了根据本发明的一些实施例的便携式用户设备101和访问设备102之间的 通信图。在一些实施例中,图2中所示的交互可以作为支付交易的一部分发生。例如,如果便 携式用户设备101是非接触式芯片卡,用户则可以在由商户操作的访问设备102上轻按或刷 芯片卡。
[0046] 在步骤201,访问设备102生成暂时性公/私钥对。可以用任何适当方式生成公/私 钥对,如通过使用随机或伪随机数发生器。此外,密钥对可以被生成为任何合适的密钥格 式,如RSA或椭圆曲线密码学(ECC)。在一些实施例中,可以在便携式用户设备101进入访问 设备102的非接触域之前生成暂时性密钥对。
[0047] 在步骤202,在生成用于便携式用户设备101进入访问设备102的非接触域的暂时 性密钥对之后,访问设备102等待一段时间。
[0048]在步骤203,一旦便携式用户设备101进入访问设备102的非接触域,访问设备102 将在步骤201生成的密钥对中的暂时性公钥传输给便携式用户设备101。
[0049] 在步骤204(a),便携式用户设备101使用所接收到的暂时性公钥与访问设备101建 立共享秘密。然后,便携式用户设备101使用共享秘密派生出会话密钥,并使用会话密钥加 密响应数据。在一些实施例中,可以通过将接收到的暂时性公钥与用户设备私钥和密码随 机数结合来确定共享秘密。
[0050] 在步骤204(b),访问设备102等待便携式用户设备101的响应。
[00511在步骤205,便携式用户设备101向访问设备101发送响应消息。所述响应消息可以 包括加密的响应数据或其他数据。例如,在一些实施例中,所述响应消息可以包括用户设备 盲公钥,访问设备102可以使用用户设备盲公钥来确定用户设备101在步骤204(a)所建立的 同一共享秘密。在一些实施例中,加密的响应数据可以包括支付信息,如主账号(PAN)、账户 失效日期等。在一些实施例中,支付信息可以被包括作为用户设备证书的一部分。
[0052] 在步骤206,访问设备102建立与便携式用户设备101在步骤204(a)建立的相同的 共享秘密。然后,访问设备102使用共享秘密生成会话密钥,并且使用会话密钥对加密的响 应数据进行解密。解密后的响应数据可以被访问设备102用于认证便携式用户设备101。例 如,在响应数据包括用户设备证书的实施例中,可以使用数字签名算法对证书的签名进行 验证。
[0053] 在步骤207-210,在一些实施例中,访问设备102和便携式用户设备101可以交换命 令和响应。例如,访问设备101可以从便携式用户设备101请求额外数据,或者便携式用户设 备101可以从访问设备102请求交易信息。通常,可以使用从之前在便携式用户设备101与访 问设备102之间建立的共享秘密派生出的会话密钥对这些命令和响应进行加密。此外,应当 注意的是,虽然图2中示出了四条消息207-210,设备101与102之间可以交换任何数量的消 息。
[0054]在步骤211,访问设备102使用便携式用户设备101所提供的响应数据对交易进行 授权。例如,在一些实施例中,访问设备101可以如参照图1所描述的生成授权请求消息,并 且在所述授权请求消息中包括与便携式用户设备101相关联的支付信息。通常,便携式用户 设备101可以在交易被授权之前离开访问设备101的非接触域。在一些实施例中,一旦接收 到授权响应消息,访问设备101可以向用户提供交易是否被授权的指示。
[0055] 虽然图2描述了便携式用户设备101与访问设备102之间的通信的示例,但实施例 不限于以上说明。例如,一些实施例可以跳过命令和响应步骤207-210。在一些实施例中,便 携式用户设备101可以在步骤205之后离开访问设备101的非接触域。
[0056] 可替代地,在一些实施例中,在响应消息在步骤205被接收之后,但在向便携式用 户设备101发送一条或多条消息之前,访问设备102可以对交易进行授权。例如,在一个实施 例中,在访问设备102确定交易已经被便携式用户设备101的发出方授权之后可以更新便携 式用户设备101上存储的账户余额。 A.访问设备
[0057]图3示出了安全地获得用户设备数据的方法300。在一些实施例中,可以结合图4的 方法400执行方法300,其中,方法300由访问设备102执行,而方法400由用户设备101执行。 [0058]在一些实施例中,方法300可以作为支付交易的一部分发生。例如,如果用户设备 101是非接触式芯片卡,用户则可以在由商户操作的访问设备102上轻按或刷芯片卡。
[0059]通常,在所述方法之前,便携式用户设备101可以生成或加载用户设备密钥对。"用 户设备密钥对"可以包括公钥(即,"用户设备公钥")和私钥(即,"用户设备私钥")。用户设 备101还可以包括"用户设备证书",所述用户设备证书包括用户设备公钥。用户设备证书可 以由证书授权机构签名,如支付处理网络105或发卡行计算机106。
[0060] 在步骤301,生成暂时性密钥对。"暂时性密钥对"可以包括被生成以供单次交易或 其他通信会话使用的公钥(即,"暂时性公钥")和私钥(即,暂时性私钥)。所述暂时性密钥对 可以具有任何适当格式,如ECC或RSA。通常,一旦访问设备102与便携式用户设备101之间的 通信会话已经结束,就可以删除暂时性密钥对。
[0061] 在步骤302,将认证请求发送至便携式用户设备101,包括暂时性公钥。在一些实施 例中,认证请求还可以包括与访问设备102相关联的访问设备标识符。"访问设备标识符"可 以包括任何适用于识别访问设备的数据。例如,访问设备标识符可以是序列号、全局唯一标 识符(GUID)、网络地址、或任何其他合适的标识符。在一些实施例中,当访问设备102检测到 便携式用户设备101时,比如如果它靠近非接触式收发器的话,可以发送认证请求。
[0062]在步骤303,从便携式用户设备101接收加密的用户设备数据和用户设备盲公钥。 可以从用户设备公钥生成"用户设备盲公钥"。例如,用户设备盲公钥可以是用户设备公钥 和密码随机数的组合。"加密的用户设备数据"可以包括任何数据或与用户设备相关联的信 息。例如,在一些实施例中,加密的用户设备数据可以包括用于生成用户设备盲公钥的加密 的用户设备证书和密码随机数。
[0063]在步骤304,使用在步骤301生成的暂时性私钥和在步骤303接收到的用户设备盲 公钥生成共享秘密。可以使用任何合适的方法生成共享秘密。例如,在使用椭圆曲线密码学 的实施例中,可以使用椭圆曲线Diffie-Hellman协议(E⑶H)确定共享秘密。
[0064]在步骤305,使用在步骤304所生成的共享秘密生成会话密钥。会话密钥可以具有 任何合适的格式(例如,AES、DES、Bl0WfiSh等)、具有任何合适的长度、使用任何合适的密钥 派生函数生成的。例如,在一个实施例中,可以使用基于密码的密钥派生函数2 (PBKDF2)算 法生成会话密钥。在一些实施例中,其他数据(如访问设备标识符)可以用作密钥派生函数 的额外输入。
[0065]在步骤306,使用会话密钥对加密的用户设备数据进行解密,从而确定用户设备证 书。用户设备证书可以包括任何证实用户设备101的身份的数字证书。在一些实施例中,用 户设备证书可以包括与用户设备101和/或与用户设备101相关联的用户有关的信息,如存 储在用户设备上的用户设备密钥对的公钥、用户姓名、与用户设备101相关联的主账号 (PAN)、账户的失效日期等。用户设备证书可以由证书授权机构(CA)签名。在一些情况下,经 解密的用户设备数据还可以包括用于生成用户设备盲公钥的密码随机数。
[0066] 在步骤307,对用户设备证书和用户设备盲公钥进行验证。
[0067] 对用户设备证书进行验证可以包括基于已知的CA公钥保证用户设备证书的签名 与期望值匹配。例如,在一些实施例中,数字签名算法(如椭圆曲线数字签名算法(ECDSA)) 可以用于验证用户设备证书。
[0068]验证用户设备盲公钥可以包括确保用户设备盲公钥与预期值匹配。例如,在一些 情况下,可以使用用户设备证书上所包括的用户设备公钥、以及在步骤306解密的密码随机 数生成第二用户设备盲公钥。然后,可以将第二用户设备盲公钥与在步骤303接收的用户设 备盲公钥进行比较从而确保这些密钥匹配。可替代地,在一些情况下,可以通过将在步骤 303接收的用户设备盲公钥与存储的用户设备盲公钥进行比较来对前者进行验证。
[0069]在步骤308,如果用户设备证书和用户设备盲公钥被验证,则使用用户设备数据进 行交易。例如,在一些实施例中,可以如参照图1所描述的生成授权请求消息。在一些实施例 中,一旦接收到授权响应消息,可以向用户提供交易是否成功的指示。
[0070] 应当注意的是,虽然参照暂时性密钥对对图3的方法进行了描述,但实施例不限于 使用暂时性密钥。例如,在一些实施例中,访问设备102可以维护持久性密钥对(即,"访问设 备公/私钥对"),并代替暂时性公钥和私钥分别使用访问设备公钥和私钥。 B.用户设备
[0071] 图4示出了从用户设备101的角度将用户设备数据安全地传输至访问设备102的方 法400。在一些实施例中,可以结合方法400执行图3的方法300,其中,方法300由访问设备 102执行,而方法400由用户设备101执行。
[0072]在一些实施例中,方法400可以作为支付交易的一部分发生。例如,如果用户设备 101是非接触式芯片卡,用户则可以在由商户操作的访问设备102上轻按或刷芯片卡。
[0073]通常,在所述方法之前,便携式用户设备101可以生成或加载用户设备密钥对。"用 户设备密钥对"可以包括公钥(即,"用户设备公钥")和私钥(即,"用户设备私钥")。用户设 备102还可以包括"用户设备证书",所述用户设备证书包括用户设备公钥。用户设备证书可 以由证书授权机构签名,如支付处理网络105或发卡行计算机106。
[0074]在步骤401,接收认证请求,包括暂时性公钥。暂时性公钥可以具有任何合适的格 式的,如ECC或RSA。通常,一旦访问设备102与便携式用户设备101之间的通信会话已经结 束,就可以删除暂时性公钥。
[0075]在步骤402,生成密码随机数。密码随机数可以是使用任何合适的方法生成的随机 或伪随机数据值。
[0076]在步骤403,使用用户设备私钥和密码随机数生成用户设备盲私钥。例如,在一些 实施例中,可以通过将用户设备私钥乘以密码随机数来生成用户设备盲私钥。
[0077]在步骤404,使用用户设备公钥和密码随机数生成用户设备盲公钥。例如,在一些 实施例中,可以通过将用户设备公钥乘以密码随机数来生成用户设备盲公钥。
[0078]在步骤405,使用在步骤403生成的用户设备盲私钥和在步骤401接收到的暂时性 公钥生成共享秘密。可以使用任何合适的方法生成共享秘密。例如,在使用椭圆曲线密码学 的实施例中,可以使用椭圆曲线Diffie-Hellman协议(E⑶H)确定共享秘密。通常,用于生成 共享秘密的方法是与访问设备102在图3的步骤304所使用的相同的过程。
[0079]在步骤406,使用在步骤405所生成的共享秘密生成会话密钥。会话密钥可以具有 任何合适的格式(例如,AES、DES、Bl0WfiSh等)、具有任何合适的长度、使用任何合适的密钥 派生函数生成的。例如,在一个实施例中,可以使用基于密码的密钥派生函数2 (PBKDF2)算 法生成会话密钥。在一些实施例中,其他数据(如访问设备标识符)可以用作密钥派生函数 的额外输入。通常,用于生成共享秘密的算法是与访问设备102在图3的步骤304所使用的相 同的协议。通常,用于派生出会话密钥的方法是与访问设备102在图3的步骤305所使用的相 同的过程。
[0080]在步骤407,使用会话密钥对用户设备数据进行加密,从而生成加密的用户设备数 据。通常,用户设备数据可以包括用户设备证书。在一些实施例中,用户设备数据可以包括 其他数据,如用于生成用户设备盲公钥的用户设备标识符和/或密码随机数。
[0081]在一些实施例中,第二共享秘密还可以用于对在响应中返回的另外的用户设备数 据(如用户设备公钥)进行解密(除了使用在步骤405生成的第一共享秘密进行加密之外)。 此类实施例可以提供的优点是,当使用第一共享秘密时不需要对用户设备数据进行解密。 可以在第二共享秘密被建立的时候或地点对密钥进行解密,例如,在远程连接至访问设备 102的单独设备(例如,硬件安全模块(HSM))中。
[0082]在步骤408,发送包括加密的用户设备数据和用户设备盲公钥的认证响应。
[0083] 类似于图3的方法,应当注意的是,虽然参照暂时性公钥(通常是从访问设备102接 收的)对图4的方法进行了描述,但实施例不限于使用暂时性密钥。例如,在一些实施例中, 访问设备102可以维护持久性密钥对(即,"访问设备公/私钥对"),并代替暂时性公钥和私 钥分别使用访问设备公钥和私钥。 III.认证通信流程 A. 派生共享秘密
[0084] 图5示出了数据流程图,展示了根据本发明的一些实施例的在访问设备102与便携 式用户设备101之间建立共享秘密时执行的操作。
[0085] 如图5中所示,访问设备102使用公/私钥对发生器("KeyGen")生成暂时性公钥 ("ePubA")和暂时性私钥("ePrivA")。访问设备101将暂时性公钥("ePubT")在请求消息中 发送给便携式用户设备101。便携式用户设备101生成密码随机数("NonceC"),并结合 ("MUL")密码随机数("NonceU")与用户设备私钥("PrivU")从而生成用户设备盲私钥 ("PrivU*")。然后,将用户设备盲私钥("PrivC*")和暂时性公钥("ePubT")用作椭圆曲线 Diff ie-Hellman( "ECDH")函数的输入从而生成共享秘密("Z")。
[0086] 便携式用户设备101还结合("MUL")密码随机数("NonceU")与用户设备公钥 ("PubU")从而生成用户设备盲公钥("PubU*")。用户设备盲公钥("PubU*")在响应消息中传 输至访问设备102。访问设备102将用户设备盲公钥("PubU*")和暂时性私钥("ePrivA")用 作椭圆曲线Diff ie-Hellman( "ECDH")函数的输入从而生成相同的共享秘密("Z")。
[0087] 以这种方式,实施例可以在访问设备102和便携式用户设备101之间建立共享秘 您 I_L| 〇 B. 认证用户设备
[0088]图6示出了数据流程图,展示了根据一些实施例在向访问设备102安全地认证用户 设备101时执行的操作。
[0089] 如图6中所示,访问设备102使用公/私钥对发生器("KeyGen")生成暂时性公钥 ("ePubA")和暂时性私钥("ePrivA")。访问设备101将暂时性公钥("ePubT")在请求消息中 发送给便携式用户设备101。便携式用户设备101生成密码随机数("NonceC"),并结合 ("MUL")密码随机数("NonceU")与用户设备私钥("PrivU")从而生成用户设备盲私钥 ("PrivU*")。然后,将用户设备盲私钥("PrivC*")和暂时性公钥("ePubT")用作椭圆曲线 Diff ie-Hellman( "ECDH")函数的输入从而生成共享秘密("Z")。
[0090] 便携式用户设备101使用共享秘密("Z")作为密钥派生函数("KDF")的输入从而生 成会话密钥("SK")。经认证的加密密文("AE")使用会话密钥("SK")对用户设备证书 ("CertU")和密码随机数("NonceU")进行加密,从而生成加密的用户设备证书("Certlf") 和加密的密码随机数(%〇11(^1](3")。便携式用户设备101还结合("11]1;')密码随机数 ("NonceU")与用户设备公钥("PubU")从而生成用户设备盲公钥("PubU*")。然后,将用户设 备盲公钥("PubU*")、加密的用户设备证书("Certlf")、和加密的密码随机数("Noncelf")在 响应消息中传输至访问设备102。
[0091]访问设备102使用用户设备盲公钥("PubU*")和暂时性私钥("ePrivA")作为椭圆 曲线0丨€^6-此11111&1^加0矿)函数的输入从而生成相同的共享秘密("2")。将共享秘密 ("Z")用作密钥派生函数("KDF")的输入从而生成相同的会话密钥("SK")。经认证的解密函 数("AE+ )对密码随机数("NonceU")、用户设备证书("CertU")、和包括在用户设备证书 ("CertU")中的用户设备公钥("PubU")进行解密。椭圆曲线数字签名算法("ECDSA")用来使 用证书授权机构的公钥("PubCA")来验证用户设备证书("CertU")。通过将接收到的用户设 备盲公钥("PubU*)与从已解密的用户设备公钥("PubU")和已解密的密码随机数 ("NonceU")生成的用户设备盲公钥("PubU* 2")进行比较来验证接收到的用户设备盲公钥。 [0092] 如果用户设备证书和用户设备盲公钥都被验证,则用户设备101通过认证。 IV.最优认证通信方法
[0093]图7和图8、表1和表2描述了根据本发明的一些实施例的用于安全通信的最优方 法。确切地,在一些实施例中,用户设备101和访问设备102可以各自维护过去发生通信的设 备的注册表。每个注册的设备可以与下一个共享秘密和/或有待用于与设备的将来通信会 话的其他数据相关联。以这种方式,实施例可以避免两个设备之间的任何后续通信中的某 些操作,如Diffie-Hellman密钥交换。因而,实施例可以减少建立通信会话所需的时间量和 处理量。此外,在保护用户设备101的身份的同时,实施例可以实现这些益处,如下面将进一 步详细描述的。 A.访问设备
[0094]图7示出了安全地获得用户设备数据的最优方法700。在一些实施例中,方法700可 以包括图3的方法300中的一些或所有步骤。此外,在一些实施例中,可以结合图8的方法800 执行方法700,其中,方法700由访问设备102执行,而方法800由用户设备101执行。
[0095] 通常,在所述方法之前,便携式用户设备101可以生成或加载用户设备密钥对。"用 户设备密钥对"可以包括公钥(即,"用户设备公钥")和私钥(即,"用户设备私钥")。用户设 备101还可以包括"用户设备证书",所述用户设备证书包括用户设备公钥。用户设备证书可 以由证书授权机构签名,如支付处理网络105或发卡行计算机106。
[0096] 此外,用户设备101和访问设备102都可以维护发生之前的通信的设备的注册表。 "注册表"可以包括任何适合于存储数据的电子介质。例如,注册表可以包括数据库、文本文 件、或任何其他合适的介质。
[0097] 在步骤701,生成暂时性密钥对。"暂时性密钥对"可以包括被生成以供单次交易或 其他通信会话使用的公钥(即,"暂时性公钥")和私钥(即,暂时性私钥)。所述暂时性密钥对 可以具有任何适当格式,如ECC或RSA。通常,一旦访问设备102与便携式用户设备101之间的 通信会话已经结束,就可以删除暂时性密钥对。
[0098]在步骤702,将认证请求发送至便携式用户设备101,包括暂时性公钥和与访问设 备102相关联的访问设备标识符。"访问设备标识符"可以包括任何适用于识别访问设备的 数据。在一些实施例中,当访问设备102检测到便携式用户设备101时,比如如果它靠近非接 触式收发器的话,可以发送认证请求。
[0099]在步骤703,从便携式用户设备101接收加密的用户设备数据、用户设备盲公钥、以 及用户设备盲标识符。"加密的用户设备数据"可以包括任何数据或与用户设备相关联的信 息。例如,在一些实施例中,加密的用户设备数据可以包括用于生成用户设备盲公钥的加密 的用户设备证书和密码随机数。可以从用户设备公钥生成"用户设备盲公钥"。例如,用户设 备盲公钥可以是用户设备公钥和密码随机数的组合。可以从用户设备101的用户设备标识 符生成"用户设备盲标识符"。在一些实施例中,用户设备标识符可以是用户设备公钥。在一 些此类实施例中,用户设备盲标识符可以是用户设备公钥的缩短版本。在其他实施例中,用 户设备标识符可以是序列号、全局唯一标识符(GUID)、或其他数据。在一些此类实施例中, 用户设备标识符可以是用户设备标识符与密码随机数的组合。
[0100]在步骤704,判定用户设备盲标识符是否已注册。例如,在一些实施例中,可以在注 册表中查找用户设备盲标识符。
[0101]如果用户设备盲标识符已经注册,则在步骤705获得与用户设备盲标识符相关联 的共享秘密。例如,在一些实施例中,可以从注册表中的与用户设备盲标识符相关联的记录 中检索共享秘密。然后,所述方法前进至步骤707。
[0102] 如果用户设备盲标识符未注册,则在步骤706,执行图3的步骤304。确切地,使用在 步骤701生成的暂时性私钥和在步骤703接收到的用户设备盲公钥生成共享秘密。可以使用 任何合适的方法生成共享秘密。例如,在使用椭圆曲线密码学的实施例中,可以使用椭圆曲 线Diffie-Hel lman协议(ECDH)确定共享秘密。然后,所述方法前进至步骤707。
[0103] 在方法700的步骤707,执行方法300的步骤305-308。确切地,在一些实施例中,共 享秘密用于生成会话密钥。会话密钥用于对加密的用户设备数据进行解密从而确定用户设 备证书。然后对用户设备证书和用户设备盲公钥进行验证。然后使用已解密的用户设备数 据进行交易。参照图3中的相应步骤可以发现对这些步骤的进一步描述。
[0104] 在步骤708,使用共享秘密生成下一个共享秘密和下一个用户设备盲标识符。可以 从共享秘密以任何合适的方式生成下一个共享秘密和下一个用户设备盲标识符。例如,在 一些实施例中,可以使用密钥派生函数确定下一个共享秘密。例如,用于在步骤707生成会 话密钥的密钥派生函数还可以生成下一个共享秘密。
[0105] 还可以使用密钥派生函数生成下一个用户设备盲标识符。例如,在一些实施例中, 用于在步骤707生成会话密钥的密钥派生函数可以用于生成下一个密码随机数。下一个密 码随机数和用户设备公钥则于是可以用于生成下一个用户设备盲公钥。在一些实施例中, 下一个用户设备盲标识符可以是下一个用户设备盲公钥的子集。在其他实施例中,密码随 机数可以与用户设备盲标识符结合,从而确定下一个用户设备盲标识符。通常,用于在步骤 708确定下一个用户设备盲标识符的过程还可以在方法800的步骤807被用户设备101使用。
[0106] 在步骤709,注册下一个用户设备盲标识符,并将其与下一个共享秘密相关联。例 如,在一些实施例中,可以将下一个用户设备盲标识符和下一个共享秘密存储在注册表或 数据库中。 A.用户设备
[0107] 图8示出了将用户设备数据安全地传输至访问设备的最优方法。通常,在所述方法 之前,便携式用户设备101可以生成或加载用户设备密钥对。"用户设备密钥对"可以包括公 钥(即,"用户设备公钥")和私钥(即,"用户设备私钥")。用户设备101还可以包括"用户设备 证书",所述用户设备证书包括用户设备公钥。用户设备证书可以由证书授权机构签名,如 支付处理网络105或发卡行计算机106。
[0108] 此外,用户设备101和访问设备102都可以维护发生之前的通信的设备的注册表。 "注册表"可以包括任何适合于存储数据的电子介质。例如,注册表可以包括数据库、文本文 件、或任何其他合适的介质。
[0109] 在步骤801,从访问设备102接收认证请求,包括暂时性公钥和访问设备标识符。暂 时性公钥可以具有任何合适的格式的,如ECC或RSA。通常,一旦暂时性公钥已经被使用(例 如,在访问设备102与便携式用户设备101之间的通信会话已经结束之后),就可以删除暂时 性公钥。"访问设备标识符"可以包括任何适用于识别访问设备的数据。
[0110]在步骤802,判定访问设备标识符是否已注册。例如,在一些实施例中,可以在注册 表中查找访问设备标识符。
[0111]如果访问设备标识符已注册,则在步骤803获得共享秘密、用户设备盲公钥、以及 与访问设备标识符相关联的用户设备盲标识符。例如,在一些实施例中,可以从注册表中的 与用户设备盲标识符相关联的记录中检索共享秘密、用户设备盲公钥、以及用户设备盲标 识符。在一些实施例中,共享秘密、用户设备盲公钥、以及用户设备盲标识符中的一些或全 部可以重叠。例如,用户设备盲标识符可以是用户设备盲公钥的子集(例如,最后4位或8 位)。方法800前进至步骤805。
[0112] 如果访问设备未注册,则在步骤803,执行方法400的步骤402-405。确切地,在一些 实施例中,生成密码随机数。使用密码随机数和用户设备私钥生成用户设备盲私钥,并且使 用随机数和用户设备公钥生成用户设备盲公钥。使用用户设备盲私钥和在步骤801接收的 暂时性公钥生成共享秘密。参照图4中的相应步骤可以发现对这些步骤的进一步描述。方法 800前进至步骤805。
[0113] 在步骤805,执行方法400的步骤406-408。确切地,在一些实施例中,使用共享秘密 生成会话密钥。会话密钥用于对用户设备数据进行加密,如用户设备证书。然后向访问设备 102发送认证响应消息,所述响应包括加密的用户设备和用户设备盲公钥。参照图4中的相 应步骤还可以发现对这些步骤的进一步描述。
[0114] 在步骤806,使用共享秘密生成下一个共享秘密、下一个用户设备盲标识符、和下 一个用户设备盲公钥。可以从共享秘密以任何合适的方式生成下一个共享秘密、下一个用 户设备盲标识符、和下一个用户设备盲公钥。例如,在一些实施例中,可以使用密钥派生函 数确定下一个共享秘密。例如,用于在步骤805生成会话密钥的密钥派生函数还可以生成下 一个共享秘密。
[0115] 还可以使用密钥派生函数生成下一个用户设备盲标识符。例如,在一些实施例中, 用于在步骤805生成会话密钥的密钥派生函数可以用于生成密码随机数。密码随机数和用 户设备公钥则可以用于生成下一个用户设备盲公钥。在一些实施例中,下一个用户设备盲 标识符可以是下一个用户设备盲公钥的子集。在其他实施例中,密码随机数可以与用户设 备盲标识符结合,从而确定下一个用户设备盲标识符。通常,用于在步骤806确定下一个用 户设备盲标识符的过程还可以在方法700的步骤708被访问设备102使用。
[0116] 在步骤807,注册下一个用户设备盲标识符,并将其与下一个共享秘密相关联。例 如,在一些实施例中,可以将下一个用户设备盲公钥和下一个共享秘密存储在注册表或数 据库中。 B.伪代码清单
[0117]以下表1和表2根据本发明的某些实施例示出了用于认证数据传输的安全方法的 伪代码列表。
表1
[0118] 表1示出了用于实现从用户设备安全地获得用户设备数据的方法的伪代码清单。 如下面所描述的,通过与用户设备101通信的访问设备102来执行表1的方法。然而,在其他 实施例中,可以由任何其他适当实体来执行所述方法。
[0119] 在步骤A1,生成暂时性密钥对。暂时性密钥对包括暂时性私钥(cU)和暂时性公钥 (QeA ) 〇
[0120] 在步骤A2,将认证请求发送至用户设备101,包括访问设备标识符(IDsA)、暂时性公 钥(QeA)、以及指示关于访问设备102的各种信息的访问设备协议控制字节(CBa)。
[0121] 在发送认证请求之后,进行等待,直到从用户设备101接收到认证响应。认证响应 包括用户设备盲公钥(BDatau)和加密的用户设备数据(EncDatau)。
[0122] 在步骤A3,通过取用户设备盲公钥(BDatau)的最左侧8个字节(T8),确定用户设备 盲标识符(IDsii)。
[0123] 在步骤A4,进行检查以确保用户设备盲公钥(BDatau)属于期望的椭圆曲线(EC) 域。
[0124] 在步骤A5,进行检查从而确定用户设备盲标识符(IDsU)是否之前被访问设备102注 册过。如果用户设备盲标识符(ID sU)未被注册,则在步骤A6,通过结合暂时性私钥(deA)和接 收到的用户设备盲公钥(Bdatau)计算共享秘密(Z)。一旦计算了共享秘密,在步骤A7,将暂 时性私钥擦除。
[0125] 在步骤A8,如果用户设备盲标识符(IDsU)注册过,则在步骤A9,使用用户设备盲标 识符(ID sU)从持久绑定(PB)注册表获得共享秘密(Z)。
[0126] 在步骤A10,使用密钥派生函数(KDF)派生出若干会话密钥(SKcfrm、SKmac、SKenc、以 及SKrmac)、下一个共享秘密(NextZ)、以及下一个密码随机数(NextBlind)。密钥派生函数的 输入是共享秘密(Z)、期望的输出长度(len)、以及用户设备盲标识符(ID sU)与访问设备标识 符(IDsA)的组合、以及暂时性公钥(QeA)的左16个字节。一旦完成密钥派生函数,在步骤All 擦除共享秘密。
[0127] 在步骤A12,派生出的会话密钥(SKcfrm)用于使用认证的解密算法(AE<)对加密的 用户设备数据(EncDatau)进行解密。从解密的用户设备数据确定报头(Header)、用户设备 证书(Cu)、密码随机数(Nu)、以及用户设备协议控制字节(CBu)。
[0128] 在步骤A13,将报头与预期值进行比较。在一些实施例中,如果报头与预期值不匹 配,则对用户设备101的认证会失败。
[0129] 在步骤A14,对用户设备协议控制字节(CBu)进行检验,从而判定用户设备101是否 打算计算和注册新的共享秘密。如果这样,则在步骤A1 5,使用下一个密码随机数 (NextBind)和用户设备公钥(QsU)确定下一用户设备盲标识符(NextIDsu)。在步骤A16,注册 下一个共享秘密(NextZ)和下一个用户设备盲标识符(NextID sU)。
[0130] 在步骤A17,对用户设备协议控制字节(CBu)进行检验,从而判定用户设备101是否 打算计算并注册新的共享秘密,或者用户设备101是否不支持持久绑定。如果是任一种情 况,则在步骤A18,使用椭圆曲线数字签名算法(ECDSA)对用户设备证书(Cu)进行验证。此 外,在步骤A19,从用户设备证书(Cu)确定用户设备公钥。将用户设备公钥(Q sU)与随机数 (Nu)的左侧四个字节组合,从而验证所接收的用户设备盲公钥与用户设备证书一致。如果 证书和用户设备盲公钥都被验证,则用户设备101可以被认证。
[0131] 在步骤A21,可以使用派生出的会话密钥中的一个或多个密钥进行进一步的通信。 衣2:
[0132] 表2示出了用于实现将用户设备数据安全地传输至访问设备的方法的伪代码清 单。如下面所描述的,通过与访问设备102通信的用户设备101来执行表2的方法。然而,在其 他实施例中,可以由任何其他适当实体来执行所述方法。
[0133] 在表2的方法之前,可以从访问设备102接收认证请求消息。认证请求可以包括访 问设备标识符(IDsA)、暂时性公钥(Q eA)、以及指示关于访问设备102的各种信息的访问设备 协议控制字节(CBa)。
[0134] 在步骤U1,使用所接收到的访问设备协议控制字节(CBa)准备用户设备协议控制 字节(CBu)。
[0135] 在步骤U2,生成密码随机数(Nu)。
[0136] 在步骤U3,在用户设备101处的注册表查找接收到的访问设备标识符(IDsA)。
[0137] 在步骤U4,如果访问设备标识符(IDsA)未注册,或如果访问设备协议控制字节 (CBa)指示访问设备101不支持持久绑定,则执行步骤U5-U7。在步骤U5,进行检查从而确保 暂时性公钥(Q eA)属于正确的椭圆曲线(EC)域。在步骤U6,通过结合暂时性公钥(QeA)以及被 随机数(Nu)遮掩的用户设备私钥(d sU)计算共享秘密(Z)。此外,在步骤U7,使用用户设备公 钥(Qsii)和随机数的左四个字节(T4(Nu))生成用户设备盲公钥(BDatau)。
[0138] 在步骤U8,如果在步骤U4所检查的条件非真,则执行步骤U9和U10。在步骤U9,使用 访问设备标识符(IDsA)从注册表检索共享秘密(Z)和用户设备盲公钥(BDatau)。在步骤U10, 更新用户设备协议控制字节,以指示支持持久绑定。
[0139] 在步骤U11,通过取用户设备盲公钥(BDatau)的最左侧8个字节,确定用户设备盲 标识符(IDsu)。
[0140] 在步骤U12,使用密钥派生函数(KDF)派生出若干会话密钥(SKcfrm、SKmac、SK ENC、以 及SKrmac)、下一个共享秘密(NextZ)、以及下一个密码随机数(NextBlind)。密钥派生函数的 输入是共享秘密(Z)、期望的输出长度(len)、以及用户设备盲标识符(ID sU)与访问设备标识 符(IDsA)的组合、以及暂时性公钥(QeA)的左16个字节。一旦完成密钥派生函数,在步骤U13, 擦除共享秘密。
[0141] 在步骤U14,经认证的加密函数(AE)对预先定义的报头("1((:_1_¥")、用户设备证书 (Cu)、密码随机数(Nu)、以及用户协议控制字节(CBu)进行加密。加密函数的结果是加密的用 户设备数据(EncDatau)。
[0142] 在步骤U15,如果用户设备101和访问设备102支持持久绑定(如其相应的协议控制 字节所指示的),并且或者访问设备标识符(ID sA)未注册或请求重新册(如访问控制协议控 制字节所指示的),则执行步骤U16-U17。在步骤U16,对下一个共享秘密(NextZ)、和下一个 用户设备盲公钥(NextBDatau)进行注册并将其与访问设备标识符(ID sA)相关联。在步骤 U17,更新用户设备协议控制字节(CBu),从而指示用户设备101计算了与访问设备102相关 联的下一个新的共享秘密。
[0143] 在步骤U18,如果在步骤U15的条件非真并且用户设备101不支持持久绑定,则在步 骤U19更新用户设备协议控制字节(CBu)以指示不支持持久绑定。
[0144] 在步骤U20,向访问设备102发送认证响应消息,包括用户设备盲公钥(BDatau)和 加密的用户设备数据(EncDatau)。 V.装置
[0145] 图9示出了卡形式的支付设备101"的示例。如所示,支付设备101"包括塑料基板 101(m)。在一些实施例中,用于与访问设备102接口连接的非接触式元件101(〇)可以存在于 塑料基板l〇l(m)上或嵌入其中。可以将用户信息101(p),如账号、失效日期、和/或用户姓名 打印或浮雕在卡上。塑料基板101 (m)上还可以存在磁条101 (η)。在一些实施例中,支付设备 101"可以包括微处理器和/或存储器芯片,其中存储着用户数据。
[0146] 如上文指出及图9中所示的,支付设备101"可以包括磁条101(η)和非接触式元件 101(〇)。在一些实施例中,磁条101(n)和非接触式元件101(〇)都在支付设备101"中。在一些 实施例中,磁条l〇l(n)或者非接触式元件101(〇)可以存在于支付设备101"中。
[0147] 图10是可以用于实现上述任何实体或部件的计算机系统的高级框图。图10中所示 的子系统经由系统总线1075互连。附加子系统包括打印机1003、键盘1006、固定磁盘1007、 以及联接至显示器适配器1004的监视器1009。联接至I/O控制器1000的外围设备和输入/输 出(I/O)设备可以通过本领域中已知的任何数量的装置(如串行端口)连接至计算机系统。 例如,串行端口 1005或外部接口 1008可以用于将计算机装置连接至广域网(如互联网)、鼠 标输入设备、或扫描仪。经由系统总线1075的互连允许中央处理器1002与每个子系统通信 和控制来自系统存储器1001或固定磁盘1007的指令的执行、以及子系统之间信息的交换。 系统存储器1001和/或固定磁盘可以实施计算机可读介质。
[0148] 如所描述的,发明服务可以涉及实现一个或多个功能、过程、操作或方法步骤。在 一些实施例中,这些功能、过程、操作或方法步骤可以实现为由适当编程的计算设备、微处 理器、数据处理器等执行指令集或软件代码的结果。可以将指令集或软件代码存储在存储 器或由计算设备、微处理器等访问的其他形式的数据存储元件中。在其他实施例中,这些功 能、过程、操作或方法步骤可以由固件或专用处理器、集成电路等实现。
[0149] 应理解到,上述本发明可以用模块化方式或集成方式呈使用计算机软件的控制逻 辑的形式实现。基于本文中提供的披露内容和教导,本领域的普通技术人员将了解和认识 到使用硬件和硬件与软件的组合实现本发明的其他方式和/或方法。
[0150] 本说明书中所描述的任何软件部件或功能可以实现为有待由处理器使用任何合 适的计算机语言(例如,像使用例如常规的或面向对象的技术的Java、C++或Per 1)执行的软 件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上,如随机存取存储 器(RAM)、只读存储器(ROM)、磁介质(如硬盘驱动器或软盘)、或光介质(如⑶-ROM)。任何这 种计算机可读介质可以驻留在单个计算装置上或内,并且可以是存在于系统或网络内的不 同计算装置上或内。
[0151] 虽然已经详细描述并在附图中示出了某些示例性实施例,但应当理解的是,此类 实施例仅是示意性的并且不旨在限制宽泛的发明,并且本发明不限于所示和所描述的特定 安排和构造,因为本领域的普通技术人员可以对这些实施例进行各种其他修改。
[0152] 除非明确指示有相反的意思,在此所使用的"一个(a)"、"一个(an)"或"所述"旨在 指"至少一个"。
【主权项】
1. 一种访问设备,包括: 处理器;以及 包括代码的非瞬态计算机可读存储介质,所述代码可由所述处理器执行以用于实现包 括以下步骤的方法: 向用户设备发送访问设备公钥,其中,所述访问设备公钥与访问设备私钥相关联; 从所述用户设备接收用户设备盲公钥和加密的用户设备数据,其中,所述用户设备盲 公钥是使用用户设备公钥和密码随机数生成的;以及 使用所述访问设备私钥和所述用户设备盲公钥生成共享秘密;以及 使用所述共享秘密对所述加密的用户设备数据进行解密。2. 如权利要求1所述的访问设备,其中,所述访问设备密钥对是暂时性密钥对,其中,在 确定了所述共享秘密之后删除所述暂时性密钥对。3. 如权利要求1所述的访问设备,其中,使用所述共享秘密对所述加密的用户设备数据 进行解密包括使用所述共享秘密生成会话密钥。4. 如权利要求1所述的访问设备,其中,所述用户设备数据包括用于生成所述用户设备 盲公钥的用户设备证书和所述密码随机数,所述用户设备证书包括用户设备公钥,并且其 中,所述方法进一步包括: 验证所述用户设备证书; 使用所述用户设备公钥和所述密码随机数生成第二用户设备盲公钥;以及 将所述第二用户设备盲公钥与所接收的用户设备盲公钥进行比较,其中,如果所述第 二用户设备盲公钥与所接收的用户设备盲公钥匹配,则所述用户设备通过认证。5. 如权利要求1所述的访问设备,其中,所述共享秘密是第一共享秘密,并且其中,所述 方法进一步包括: 使用所述第一共享秘密生成第二共享秘密;以及 将所述第二共享秘密与所述用户设备相关联,其中,所述第二共享秘密用于对从所述 用户设备接收的后续用户设备数据进行解密。6. 如权利要求1所述的访问设备,所述方法进一步包括: 使用所述用户设备数据进行交易。7. 一种系统,包括: 如权利要求1所述的访问设备;以及 所述用户设备,其中,所述用户设备被配置成: 接收访问设备公钥; 使用所述访问设备公钥、用户设备私钥、以及所述密码随机数生成共享秘密; 使用所述共享秘密对用户设备数据进行加密;以及 将所述加密的用户设备数据和所述用户设备盲公钥发送至所述访问设备。8. -种计算机实现的方法,包括: 由具有一个或多个处理器的访问设备向用户设备发送访问设备公钥,其中,所述访问 设备公钥与访问设备私钥相关联; 由所述访问设备从所述用户设备接收用户设备盲公钥,其中,所述用户设备盲公钥是 使用用户设备公钥和密码随机数生成的;以及 由所述访问设备使用所述访问设备私钥和所述用户设备盲公钥生成共享秘密,其中, 所述共享秘密对于所述用户设备而言是已知的。9. 如权利要求8所述的计算机实现的方法,其中,所述访问设备密钥对是暂时性密钥 对,其中,在生成了共享秘密之后删除所述暂时性密钥对。10. 如权利要求8所述的计算机实现的方法,进一步包括: 由所述访问设备使用所述共享秘密生成会话密钥,其中,所述会话密钥用于。11. 如权利要求10所述的计算机实现的方法,进一步包括: 由所述访问设备从所述用户设备接收加密的用户设备数据;以及 由所述访问设备使用所述会话密钥对所述加密的用户设备数据进行解密,从而确定用 户设备数据。12. 如权利要求11所述的计算机实现的方法,其中,所述用户设备数据包括用于生成所 述用户设备盲公钥的用户设备证书和密码随机数,所述用户设备证书包括用户设备公钥, 并且其中,所述方法进一步包括: 由所述访问设备验证所述用户设备证书; 由所述访问设备使用所述用户设备公钥和所述密码随机数生成第二用户设备盲公钥; 以及 由所述访问设备将所述第二用户设备盲公钥与所接收的用户设备盲公钥进行比较,其 中,如果所述第二用户设备盲公钥与所接收的用户设备盲公钥匹配,则所述用户设备通过 认证。13. 如权利要求11所述的计算机实现的方法,其中,所述共享秘密是第一共享秘密,并 且其中,所述方法进一步包括: 由所述访问设备使用所述第一共享秘密生成第二共享秘密;以及 由所述访问设备将所述第二共享秘密与所述用户设备相关联,其中,所述第二共享秘 密用于对从所述用户设备接收的后续用户设备数据进行解密。14. 如权利要求11所述的计算机实现的方法,进一步包括: 由所述访问设备使用所述用户设备数据进行交易。15. -种计算机实现的方法,包括: 由用户设备从访问设备接收访问设备公钥; 由所述用户设备使用所述访问设备公钥和用户设备私钥生成共享秘密; 由所述用户设备使用用户设备公钥和密码随机数生成用户设备盲公钥; 由所述用户设备使用所述共享秘密对用户设备数据进行加密;以及 由所述用户设备将所述用户设备盲公钥和所述加密的用户设备数据发送至所述访问 设备,藉此允许所述访问设备使用所述用户设备盲公钥和对应于所述访问设备公钥的访问 设备私钥生成所述共享秘密,并且使用所述共享秘密对所述加密的用户设备数据进行解 I_L| 〇16. 如权利要求15所述的计算机实现的方法,其中,所述访问设备密钥对是暂时性密钥 对,其中,在生成了所述共享秘密之后所述用户设备删除所述访问设备公钥。17. 如权利要求15所述的计算机实现的方法,其中,对所述用户设备数据进行加密包括 由所述用户设备使用所述共享秘密生成会话密钥。18. 如权利要求17所述的计算机实现的方法,进一步包括: 由所述用户设备使用所述会话密钥对用户设备数据进行加密,从而生成加密的用户设 备数据;以及 由所述用户设备将所述加密的用户设备数据发送至所述访问设备。19. 如权利要求18所述的计算机实现的方法,其中,所述用户设备数据包括用于生成所 述用户设备盲公钥的用户设备证书和密码随机数,并且其中,所述访问设备使用所述用户 设备证书和所述密码随机数对所述用户设备进行认证。20. 如权利要求18所述的计算机实现的方法,其中,所述共享秘密是第一共享秘密,并 且其中,所述方法进一步包括: 由所述用户设备使用所述第一共享秘密生成第二共享秘密;以及 由所述用户设备将所述第二共享秘密与所述访问设备相关联,其中,所述第二共享秘 密用于对由所述用户设备发送的后续用户设备数据进行加密。21. 如权利要求18所述的计算机实现的方法,其中,所述访问设备使用所述用户设备数 据进行交易。
【文档编号】H04L9/32GK105900375SQ201580004375
【公开日】2016年8月24日
【申请日】2015年1月13日
【发明人】E·勒圣
【申请人】维萨国际服务协会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1