在线秘密加密
1.相关申请交叉引用
2.本技术要求2020年4月22日提交的第63/013,746号美国临时申请的权益,所述美国临时申请出于所有目的以全文引用的方式并入本文中。
背景技术:3.常规的安全输入单元,例如pin键盘和生物特征扫描器,在制造时配备有存储在安全输入单元内的安全位置中的密码密钥。此类单元的可用性可能受到限制,因为每个单元需要通过特定的安全机构来专门制造。
4.在一些其它类型的系统中,安全数据处理单元放置在云上(例如,在服务器计算机上)。本地客户端单元与安全数据处理单元通信,并且可以从用户接收秘密(例如,生物特征、pin等)。此类本地客户端单元可以是常规的可商购获得的移动电话。此类本地客户端单元可能不具有足以保护此类秘密的安全且标准化的安全机构。
5.本公开的实施例单独地以及共同地解决此问题和其它问题。
技术实现要素:6.实施例涉及用于使用具有瘦客户端的通信装置对在线秘密进行安全加密的方法和系统。通信装置可以是在制造时未配备有特殊密码密钥的移动电话。
7.一个实施例涉及一种方法,包括:由服务器计算机从通信装置上的瘦客户端接收瘦客户端标识符;由所述服务器计算机基于所述瘦客户端标识符检取加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;由所述服务器计算机发起向所述瘦客户端发送所述加密的第一密码密钥;以及由所述服务器计算机从所述瘦客户端接收加密的秘密,所述加密的秘密是用所述第一密码密钥进行加密的秘密。
8.另一实施例涉及一种服务器计算机,其包括:处理器;以及计算机可读介质,其耦合到所述处理器,所述计算机可读介质包括能够由所述处理器执行以用于实施方法的代码,所述方法包括:从通信装置上的瘦客户端接收瘦客户端标识符;基于所述瘦客户端标识符检取加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;发起向所述瘦客户端发送所述加密的第一密码密钥;以及从所述瘦客户端接收加密的秘密,所述加密的秘密是用所述第一密码密钥进行加密的秘密。
9.另一实施例涉及一种方法,包括:由在通信装置上的瘦客户端在所述通信装置与便携式装置之间的交互期间向服务器计算机提供瘦客户端标识符;由所述瘦客户端从所述服务器计算机接收加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;由所述瘦客户端用所述第二密码密钥对所述加密的第一密码密钥进行解密;由所述瘦客户端从所述便携式装置的用户接收秘密;由所述瘦客户端用所述第一密码密钥对所述秘密进行加密;以及由所述瘦客户端向所述服务器计算机提供加密的所述秘密。
10.关于本公开的实施例的另外的细节可以在具体实施方式和附图中找到。
附图说明
11.图1示出根据实施例的在线秘密加密系统的框图。
12.图2示出根据实施例的服务器计算机的组件的框图。
13.图3示出根据实施例的在线pin卡持有人验证方法过程的流程图。
14.图4a-4b示出根据实施例的初始化方法的流程图。
15.图5a-5b示出流程图,其示出根据实施例的在线pin卡持有人验证方法和pin密钥刷新过程。
具体实施方式
16.在论述本公开的实施例之前,可以进一步详细描述一些术语。
[0017]“用户”可以包括个人。在一些实施例中,用户可以与一个或多个个人账户和/或移动装置相关联。在一些实施例中,用户也可被称为持卡人、账户持有人或消费者。
[0018]“通信装置”可以是由用户操作的装置。通信装置的示例可以包括移动电话、智能手机、卡、个人数字助理(pda)、笔记本计算机、台式计算机、服务器计算机、例如汽车等车辆、精简客户端装置、平板pc等。另外,通信装置可以是任何类型的可穿戴技术装置,例如手表、耳机、眼镜等。通信装置可包括能够处理用户输入的一个或多个处理器。通信装置还可包括用于接收用户输入的一个或多个输入传感器。如本领域中已知的,存在能够检测用户输入的多种输入传感器,例如加速度计、相机、麦克风等。由输入传感器获得的用户输入可以来自各种数据输入类型,包括但不限于,音频数据、视觉数据或生物特征数据。通信装置可以包括用户可以操作的任何电子装置,所述电子装置还可以提供与网络的远程通信能力。远程通信能力的实例包括使用移动电话(无线)网络、无线数据网络(例如,3g、4g、5g或类似网络)、wi-fi、wi-max或可以提供对例如因特网或专用网络等网络的访问的任何其它通信介质。
[0019]“便携式装置”可以包括可易于携带或移动的装置。在一些实施例中,便携式装置可以包括例如信用卡或借记卡之类的装置。便携式装置可用于在交互期间呈现凭证或访问令牌。便携式装置可以具有某种形式的数据存储,例如磁条或emvco芯片,并且便携式装置可以使用数据存储,以便存储访问令牌或凭证。便携式装置可能够与访问装置接合。在一些实施例中,便携式装置可以包括通信装置。
[0020]“瘦客户端”可以包括能够与服务器计算机通信的应用程序或软件。瘦客户端可以与服务器计算机一起处理数据,并且可以将大部分处理分担到服务器计算机。瘦客户端可以存在于通信装置上。在一些实施例中,瘦客户端可以与服务器计算机通信以处理交互。
[0021]“瘦客户端标识符”可以包括用于标识或指代瘦客户端的一连串字符。瘦客户端标识符可以包括任何合适的字母数字字符。瘦客户端标识符可以是已发行的瘦客户端标识符。已发行的瘦客户端标识符可以被分配并提供给瘦客户端。例如,服务器计算机可以生成瘦客户端标识符、向瘦客户端分配并提供瘦客户端标识符。
[0022]“交互”可以包括互惠作用或影响。“交互”可以包括各方、各装置和/或各实体之间的通信、联系或交换。示例交互包括两方之间的交易和两个装置之间的数据交换。在一些实
施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括支付交易,在所述支付交易中,两个装置可以交互以促进支付。
[0023]“交互数据”可以包括与交互相关的数据和/或在交互期间记录的数据。在一些实施例中,交互数据可以是网络数据的交易数据。交易数据可以包括具有数据值的多个数据元素。
[0024]“密码密钥”可以包括确定密码算法的输出的一段信息。对于加密算法,密码密钥可以指定明文到密文的转换。对于解密算法,密码密钥可以指定将密文到明文的转换。
[0025]“秘密”可以包括保持或意图保持未知或不被他人看到的东西。秘密可以包括用户的生物特征模板、密码、个人标识码、社会安全号码、一次性密码以及意图保持未知或不被他人看到的任何其它数据。在一些实施例中,便携式装置的用户可以将秘密输入到资源提供商的通信装置中,以便执行交互。秘密可以保持未知或不被资源提供商看到。
[0026]“硬件安全模块”可以包括保护和管理数据的物理计算装置。硬件安全模块可以保护和管理数字密码密钥,为消息和/或数字签名执行加密和解密功能,执行认证和/或任何其它加密功能。
[0027]
术语“验证”和其派生词可以包括利用信息来确定基础主题在一组给定的情况下是否有效的过程。验证可包括任何信息比较以确保某些数据或信息是正确的、有效的、准确的、合法的和/或信誉良好的。
[0028]“授权请求消息”可以是请求对交互授权的电子消息。在一些实施例中,所述消息被发送到交易处理计算机和/或支付卡的发行方,以请求对交易进行授权。根据一些实施例,授权请求消息可遵守国际标准化组织(iso)8583,它是针对交换与用户使用支付装置或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可以包括可与支付装置或支付账户相关联的发行方账户标识符。授权请求消息还可以包括与“标识信息”对应的额外数据元素,包括(只作为实例):服务代码、卡验证值(cvv)、动态卡验证值(dcvv)、主账号或“账号”(pan)、支付令牌、用户名、到期日期等等。授权请求消息还可以包括“交易信息”,例如与当前交易相关联的任何信息,例如交易值、商家标识符、商家位置、收单方银行标识号(bin)、卡片接受器id、标识正购买的项目的信息等,以及可以用于确定是否标识和/或授权交易的任何其它信息。
[0029]“授权响应消息”可以是响应于授权请求的消息。在一些情况下,授权响应消息可以是由发行金融机构或交易处理计算机生成的对授权请求消息的电子消息应答。仅例如,授权响应消息可以包括以下状态指示符中的一个或多个:批准
‑‑
交易被批准;拒绝
‑‑
交易未被批准;或呼叫中心
‑‑
响应未决的更多信息,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,所述授权代码可以是信用卡发行银行响应于电子消息中的授权请求消息(直接地或者通过交易处理计算机)返回给商家的访问装置(例如pos设备)的指示对交易的批准的代码。所述代码可充当授权的证据。
[0030]“授权实体”可以是授权请求的实体。授权实体的实例可以是发行方、政府机构、文件存储库、访问管理员等。授权实体可以操作授权实体计算机。“发行方”可以指发行并任选地维护用户账户的商业实体(例如,银行)。发行方还可以向消费者,或在一些实施例中向便携式装置发行存储在用户装置上的支付凭证,所述用户装置例如蜂窝式电话、智能卡、平板计算机或膝上型计算机。
[0031]“处理器”可以包括处理某事的装置。在一些实施例中,处理器可以包括任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现期望的功能的一个或多个微处理器。处理器可以包括cpu,所述cpu包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序成分。cpu可以是微处理器,例如amd的athlon、duron和/或opteron;ibm和/或motorola的powerpc;ibm和sony的cell处理器;intel的celeron、itanium、pentium、xeon和/或xscale;和/或类似的处理器。
[0032]“存储器”可以是可存储电子数据的任何合适的一个或多个装置。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实现所要方法的指令。存储器的实例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可以使用任何合适的电、光和/或磁操作模式来操作。
[0033]“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群,或者像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是耦合到web服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
[0034]
i.系统
[0035]
根据实施例,可以将秘密输入到具有瘦客户端的通信装置中,并且可以安全地提供给例如授权实体计算机之类的下游计算机。秘密在其从通信装置传递到下游计算机时被加密。如果被恶意方拦截,则恶意方无法获得此秘密。在一些实施例中,当从瘦客户端提供给服务器计算机时,可以用第一密码密钥对秘密进行加密。此外,第一密码密钥未被暴露,因为当在瘦客户端与服务器计算机之间提供时,所述第一密码密钥是用第二密码密钥进行加密的。
[0036]
a.系统概要
[0037]
图1示出根据本公开的实施例的系统100。系统100包括便携式装置101和包括瘦客户端104的通信装置102。系统100还包括通信网络105、服务器计算机106、传输计算机108、网络处理计算机110和授权实体计算机112。通信装置102可以与服务器计算机106进行操作性通信。在一些实施例中,瘦客户端104可以使用通信装置102的通信元件与服务器计算机106进行操作性通信。服务器计算机106可以与传输计算机108进行操作性通信,所述传输计算机可以与网络处理计算机110进行操作性通信。网络处理计算机110可以与授权实体计算机112进行操作性通信。
[0038]
为了简化说明,图1中示出一定数量的组件。然而,应当理解,本发明的实施例可以包括多于一个每种组件。此外,本发明的一些实施例可以包括比图1中所示的所有组件少或多的组件。
[0039]
通信装置102的瘦客户端104与服务器计算机106之间的消息可以使用安全通信协议通过通信网络105来发送,所述安全通信协议例如但不限于:文件传输协议(ftp);超文本传输协议(http);安全超文本传输协议(https);ssl;iso(例如,iso 8583)等。通信网络105可以包括以下中的任一个和/或组合:直接互连;因特网;局域网(lan);城域网(man);作为因特网上节点的运行任务(omni);安全定制连接;广域网(wan);无线网络(例如,采用例如但不限于无线应用协议(wap)、i-模式等的协议);等等。通信网络105可以使用任何合适的
通信协议以生成一个或多个安全通信信道。在一些情况下,通信信道可以包括安全通信信道,所述安全通信信道可以以任何已知方式建立,例如通过使用相互认证和会话密钥,以及建立安全套接层(ssl)会话。
[0040]
便携式装置101可以包括可容易地携带或移动并且可由用户操作和/或使用的装置。在一些实施例中,便携式装置101可以包括例如信用卡或借记卡之类的装置。便携式装置101可以由用户用来发起与通信装置102的资源提供商的交互。例如,便携式装置101可以进入与通信装置102的通信范围(例如,短程通信)。便携式装置101可以在交互期间向通信装置102提供交互数据。
[0041]
通信装置102可以包括由资源提供商操作的装置。例如,第一通信装置102可以包括智能手机、膝上型计算机等。通信装置102可以被配置成执行资源提供商与用户之间的交互,以提供资源、对资源的访问、提供资源或向用户提供对资源的访问。通信装置102可以经由安装在通信装置102上的瘦客户端104连接到服务器计算机106。
[0042]
瘦客户端104可以包括通信装置上的软件,所述软件从存储在服务器计算机106上的资源而不是本地化硬盘驱动器运行。瘦客户端104可以在存在各种应用程序和硬件安全模块的情况下远程连接到服务器计算机106。
[0043]
在一些实施例中,瘦客户端104可以提示用户将信息输入到通信装置102中。例如,瘦客户端104可以提示用户输入秘密。瘦客户端104可以根据从服务器计算机106提供的信息导出(即,独立地导出)密码密钥,并且接着对由服务器计算机106指定的秘密进行加密,在本文中进一步详细描述。瘦客户端104可以向服务器计算机106提供加密的秘密,以便进一步处理。
[0044]
服务器计算机106可以包括向瘦客户端104提供功能的计算机。服务器计算机106可以从瘦客户端104接收信息并代表瘦客户端104处理所述信息。服务器计算机106可以在便携式装置101的用户与通信装置102的资源提供商之间的交互期间从瘦客户端104接收加密的秘密。服务器计算机106可以将加密的秘密从一个加密域转换为第二加密域。例如,服务器计算机106可以用密码密钥对加密的秘密进行解密,接着用不同的密码密钥(例如,传输计算机密码密钥)所述秘密进行加密。服务器计算机106可以接着在授权请求消息中向传输计算机108提供加密的秘密。
[0045]
传输计算机108可以包括用于根据本发明的实施例接收和转发授权请求消息的任何计算机。传输计算机108可以从服务器计算机接收用传输计算机密码密钥进行加密的秘密。传输计算机108可以对用传输计算机密码密钥进行加密的秘密进行解密,以获得所述秘密。在一些实施例中,传输计算机108可以是使资源提供商能够进行特定类型的交易的收单实体的计算机。传输计算机108可以由收单方操作,并且在此情况下可以是收单方计算机。
[0046]
网络处理计算机110可以包括计算机、服务器计算机、数据库和/或其任何组合,以协调路由、生成和格式化消息的功能,以便促成实施例。在其它实施例中,网络处理计算机110可以处于支付处理网络中。支付处理网络可以包括用以支持和递送授权服务、异常文件服务以及清算和结算服务的数据处理子系统、网络和操作。示例性支付处理网络可以包括visanet
tm
。例如visanet
tm
之类的支付处理网络能够处理信用卡交易、借记卡交易和其它类型的商业交易。visanet
tm
确切地说包括处理授权请求的vip系统(visa集成式支付系统),和执行清算和结算服务的base ii系统。支付处理网络可以使用任何合适的有线或无线网络,
包括因特网。
[0047]
授权实体计算机112可以由发行和/或授权实体(例如,发行方)操作。发行方可以代表用户来维护账户。例如,授权实体计算机112可以代表通信装置102的用户维护账户。与用户相关联的账户可以由用户账户数据来标识。第一用户账户数据可以是真实账号和/或令牌。
[0048]
b.服务器计算机
[0049]
图2示出根据实施例的服务器计算机200的框图。示例性服务器计算机200可以包括处理器204。处理器204可以耦合到存储器202、网络接口206、计算机可读介质208、第一硬件安全模块210和第二硬件安全模块212。计算机可读介质208可以包括秘密模块208a和加密功能模块208b。在一些实施例中,服务器计算机200可以与数据库220进行操作性通信。
[0050]
存储器202可以用于存储数据和代码。存储器202可以在内部或在外部耦合到处理器204(例如,基于云的数据存储装置),并且可以包括易失性和/或非易失性存储器(例如ram、dram、rom、闪存存储器或任何其它合适的存储器装置)的任何组合。例如,存储器202可以存储密码密钥、交互数据等。
[0051]
计算机可读介质208可以包括能够由处理器204执行以用于执行方法的代码,所述方法包括:由服务器计算机从通信装置上的瘦客户端接收瘦客户端标识符;由服务器计算机基于瘦客户端标识符检取加密的第一密码密钥,其中加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;由服务器计算机发起向瘦客户端发送加密的第一密码密钥;以及由服务器计算机从瘦客户端接收加密的秘密,所述加密的秘密是用第一密码密钥进行加密的秘密。
[0052]
秘密模块208a可以包括能够由处理器204执行以用于处理秘密的代码或软件。秘密模块208a与处理器204结合可以初始化将用于生成密码密钥的数据,以安全地对秘密进行加密。秘密模块208a与处理器204结合可以从服务器计算机200接收对密码密钥的请求。秘密模块208a与处理器204结合可以与加密功能模块208b、第一硬件安全模块210和第二硬件安全模块212进行通信,以向服务器计算机200提供先前生成的密码密钥。之后,服务器计算机200可以向瘦客户端提供加密的第一密码密钥,具体地说所述加密的第一密码密钥是用第二密码密钥进行加密的。瘦客户端可以返回用第一密码密钥进行加密的秘密。秘密模块208a结合处理器204可以从服务器计算机200接收加密的秘密。秘密模块208a与处理器204结合可以与数据库220进行通信,以获得可由第二硬件安全模块212使用的转换参数,以将加密的秘密从第一加密域(例如,用第一密码密钥进行加密的)转换到第二加密域(例如,用第三密码密钥进行加密的)。在获得转换参数之后,秘密模块208a与处理器204结合可以向加密功能模块208b提供加密的秘密和转换参数。
[0053]
加密功能模块208b可以包括可由处理器204执行以用于提供硬件安全模块(例如,第一硬件安全模块210和第二硬件安全模块212)与秘密模块208a之间的安全通信的代码或软件。加密功能模块208b与处理器204结合可以确定向哪个硬件安全模块提供来自秘密模块208a的消息。例如,加密功能模块208b与处理器204结合可以向第一硬件安全模块210提供密码密钥生成请求消息。加密功能模块208b与处理器204结合可以向第二硬件安全模块212提供加密的秘密加密域转换消息。此外,加密功能模块208b与处理器204结合可以对接收到的消息执行密码操作,以建立呈由预期组件可读的格式和/或密码域的消息。
[0054]
网络接口206可以包括可允许服务器计算机200与外部计算机进行通信的接口。网络接口206可以使得服务器计算机200能够向和从另一装置或模块(例如,通信装置102、瘦客户端104、传输计算机108等)传送数据。网络接口206的一些实例可以包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(nic))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(pcmcia)插槽和卡,等等。由网络接口206启用的无线协议可以包括wi-fi
tm
。经由网络接口206传送的数据可以呈信号的形式,所述信号可以是电信号、电磁信号、光信号,或者能够由外部通信接口接收的任何其它信号(统称为“电子信号”或“电子消息”)。可以包括数据或指令的这些电子消息可以经由通信路径或信道在网络接口206与其它装置之间提供。如上所述,可以使用任何合适的通信路径或信道,例如电线或电缆、光纤、电话线、蜂窝链路、射频(rf)链路、wan或lan网络、互联网,或任何其它合适的介质。
[0055]
在一些实施例中,服务器计算机200可以与数据库220进行操作性通信。数据库220可以包括任何合适的数据库。数据库可以是常规的、容错的、关系式的、可缩放的、安全的数据库,例如可购自oracle
tm
或sybase
tm
的数据库。
[0056]
ii.方法
[0057]
实施例可以使用本文所描述的系统和设备以至少经由服务器计算机安全地将秘密从瘦客户端提供给传输计算机。图3、4a-4b和5a-5b描述了此类方法的一些实例。
[0058]
a.概要
[0059]
在论述方法的细节之前,将参考图3论述过程的概要。图3示出根据实施例的在线pin卡持有人验证方法过程的流程图。图3所示的过程可以由包括瘦客户端304的通信装置302、服务器计算机306和传输计算机308执行。关于步骤1-7的其它细节可以参见图4a、4b、5a和5b所描述的。
[0060]
在步骤1处,通信装置302可以接收由通信装置302的用户进行的秘密输入。例如,秘密可以是个人标识码(pin)、一次性密码(otp)、生物特征等。用户可以按任何合适的方式(例如,小键盘、生物特征扫描器、一个或多个按钮、触摸屏等)将秘密输入到通信装置302中。
[0061]
在步骤2处,通信装置302的瘦客户端304可以用第一密码密钥对秘密进行加密。在一些实施例中,通信装置302可以从服务器计算机306获得第一密码密钥。第一密码密钥可以是对称密钥。
[0062]
在步骤3处,在对秘密进行加密之后,瘦客户端304可以向服务器计算机306提供用第一密码密钥进行加密的秘密。
[0063]
在步骤4处,在接收到用第一密码密钥进行加密的秘密之后,服务器计算机306可以使用第一密码密钥对秘密进行解密。
[0064]
在步骤5处,服务器计算机306可以用传输计算机密码密钥(例如,第三密码密钥)对秘密进行加密。传输计算机密码密钥可以是对称密钥。
[0065]
在步骤6处,在用传输计算机密码密钥对秘密进行加密之后,服务器计算机306可以向传输计算机308提供加密的秘密。
[0066]
在步骤7处,在从服务器计算机306接收到加密的秘密之后,传输计算机308可以使用传输计算机密码密钥对用传输计算机密码密钥进行加密的秘密进行解密。传输计算机308可以按任何合适的方式处理秘密。例如,在一些实施例中,可以在授权请求消息中经由
网络处理计算机向授权实体计算机(未示出)提供秘密,以授权便携式装置的用户与通信装置302的资源提供商之间的交互。
[0067]
作为实例,可以在授权请求消息中从服务器计算机306向传输计算机308提供用第三密码密钥进行加密的秘密。传输计算机308可以用第三密码密钥对加密的秘密进行解密。传输计算机308可以用第四密码密钥对秘密进行加密,所述第四密码密钥可以是授权实体计算机密码密钥。传输计算机308可以修改授权请求消息以包括加密的秘密并向授权实体计算机提供修改后的授权请求消息。授权实体计算机可以使用第四密码密钥对加密的秘密进行解密,并且可以接着确定是否授权与秘密相关联的交互。授权实体计算机可以生成交互是否被授权的指示,并生成包括交互是否被授权的指示的授权响应消息。授权实体计算机可以经由传输计算机308向服务器计算机306提供授权响应消息。在接收到授权响应消息之后,服务器计算机306可以向通信装置302的瘦客户端304提供授权响应消息。
[0068]
b.初始化
[0069]
瘦客户端可以(例如,用服务器计算机)注册在系统中,以使用基于服务器计算机的服务,例如安全在线秘密通信。在注册期间,服务器计算机可以生成并提供发行的瘦客户端标识符,所述发行的瘦客户端标识符被分配到瘦客户端。
[0070]
在创建发行的瘦客户端标识符之后,可以预先生成并初始化若干参数和安全资产,以便瘦客户端能够使用服务器计算机在线秘密验证方法。例如,服务器计算机可以至少初始化基础导出密钥和交互计数。
[0071]
图4a-4b示出根据实施例的初始化方法的流程图。所述方法包括图4a中的在简档注册过程之后和图4b中在登录过程之后的情况。图4a-4b示出瘦客户端402、服务器计算机404、秘密模块406、数据库408、加密功能模块410、第一硬件安全模块412和第二硬件安全模块414。如图所示,消息可以在这些装置之间传递。在一些实施例中,秘密模块406、数据库408、加密功能模块410、第一硬件安全模块412和第二硬件安全模块414可以是包括在服务器计算机404内的组件。例如,秘密模块406、数据库408、加密功能模块410、第一硬件安全模块412和第二硬件安全模块414可以是服务器计算机后端。在其它实施例中,秘密模块406、数据库408、加密功能模块410、第一硬件安全模块412和第二硬件安全模块414中的每一个可以位于不同的计算机处。
[0072]
在一些实施例中,可以使用单个硬件安全模块而不是两个硬件安全模块。例如,第一硬件安全模块412和第二硬件安全模块414可以集成到单个硬件安全模块中。
[0073]
在步骤420处,秘密模块406可以初始化密码密钥参数。例如,秘密模块406可以初始化交互计数(tx_counter)和导出标识符(derivation_id)。秘密模块406可以进一步初始化可在生成一个或多个密码密钥期间使用的任何额外的密码密钥参数。秘密模块406还可以创建用于硬件安全模块的命令以生成基础导出密钥(bdk)。
[0074]
可以由硬件安全模块生成基础导出密钥,使得唯一密码密钥可以从基础导出密钥导出。导出的唯一密钥对于每个交互可以是唯一的。导出的唯一密钥可以是第一密码密钥(k_pin)。基于根据交互方法[dukpt]导出的唯一密钥,基础导出密钥可以是128位的3des密钥。在一些实施例中,可在第二硬件安全模块414(例如,payshield hsm)内部生成基础导出密钥,并引出到第一硬件安全模块412。在一些实施例中,对于每个传输计算机来说,基础导出密钥可以是不同的和唯一的。在一些实施例中,基础导出密钥可以仅对第一硬件安全模
块412和第二硬件安全模块414明文已知。
[0075]
交互计数可以是用作用于生成第一密码密钥的密码密钥参数之一的计数器。对于每个随后更新的第一密码密钥,交互计数递增1(或其它预定增量)。在瘦客户端注册后,交互计数被初始化为0。在图5b中更详细地论述对第一密码密钥的更新。
[0076]
导出标识符可以是所发行的瘦客户端标识符的一部分。例如,导出标识符可以是发行的瘦客户端标识符的最右边的32位。导出标识符可以是用于基于dukpt方法导出密钥的参数之一。
[0077]
在初始化基础导出密钥之后,秘密模块406可以将基础导出密钥引入第二硬件安全模块414中。例如,在步骤422处,秘密模块406可以在引入基础导出密钥命令(例如,import_bdk(bdk))中向加密功能模块410提供基础导出密钥,这使得加密功能模块410向第二硬件安全模块414提供基础导出密钥。
[0078]
在步骤424处,在接收到基础导出密钥之后,加密功能模块410可以向第二硬件安全模块414提供基础导出密钥。因而,可以将基础导出密钥引入到第二硬件安全模块414中。
[0079]
在步骤426处,在接收到基础导出密钥之后,第二硬件安全模块414可以存储基础导出密钥。
[0080]
在步骤428处,第二硬件安全模块414可以响应于接收到基础导出密钥而向加密功能模块410提供基础导出密钥标识符(例如,bdk_id)。
[0081]
在步骤430处,在从第二硬件安全模块414接收到基础导出密钥标识符之后,加密功能模块410可以向秘密模块406提供基础导出密钥标识符。
[0082]
在步骤432处,在从加密功能模块410接收到基础导出密钥标识符之后,秘密模块406可以存储基础导出密钥标识符。在一些实施例中,秘密模块406可以将基础导出密钥标识符存储在数据库408中。
[0083]
在步骤434处,秘密模块406可以在引入基础导出密钥命令(例如,import_bdk(bdk))中向加密功能模块410提供基础导出密钥,这指示加密功能模块410向第一硬件安全模块412提供基础导出密钥。
[0084]
在步骤436处,在接收到基础导出密钥之后,加密功能模块410可以向第一硬件安全模块412提供基础导出密钥。
[0085]
在步骤438处,在接收到基础导出密钥之后,第一硬件安全模块412可以存储基础导出密钥。
[0086]
在步骤440处,第一硬件安全模块412可以响应于接收到基础导出密钥而向加密功能模块410提供基础导出密钥标识符(例如,bdk_id)。
[0087]
在步骤442处,在从第一硬件安全模块412接收到基础导出密钥标识符之后,加密功能模块410可以向秘密模块406提供基础导出密钥标识符。
[0088]
在步骤444处,在从加密功能模块410接收到基础导出密钥标识符之后,秘密模块406可以存储基础导出密钥标识符。在一些实施例中,秘密模块406可以将基础导出密钥标识符存储在数据库408中。
[0089]
在步骤446处,秘密模块406可以查询数据库408以获得瘦客户端公钥(k
d-enc-pub
)。瘦客户端公钥可以是瘦客户端402的静态公钥。瘦客户端公钥可用于协商可以是会话密钥的第二密码密钥(k_kpin_enc),以保护服务器计算机404与瘦客户端402之间的第一密码密
钥(k_pin)。向数据库408提供的查询可以包括发行的瘦客户端标识符(vac_device_id)。在简档注册成功后,发行的瘦客户端标识符可以是分配到瘦客户端402的标识符。在一些实施例中,发行的瘦客户端标识符可以是128位的唯一标识符。
[0090]
秘密模块406可以使用瘦客户端标识符(vac_device_id)按任何合适的方式查询数据库408以获得瘦客户端公钥(k
d-enc-pub
)。例如,秘密模块406可以向数据库408提供查找命令、api调用(例如,lookup_device_public_key)等。第二密码密钥随后也可以在瘦客户端402处导出。第二密码密钥可以是对称密钥。
[0091]
在步骤448处,在从秘密模块406接收到查询时,数据库408可以至少通过使用发行的瘦客户端标识符搜索瘦客户端公钥来确定对查询的适当响应。
[0092]
在步骤450处,在获得瘦客户端公钥之后,数据库408可以向秘密模块406提供瘦客户端公钥(k
d-enc-pub
)。
[0093]
在步骤452处,在从数据库408接收到瘦客户端公钥之后,秘密模块406可以生成密码密钥请求消息(例如,gen_pinkey_wrapped)。密码密钥请求消息可以请求相关硬件安全模块(例如,第一硬件安全模块)生成第一密码密钥(k_pin)。秘密模块406可以生成包括发行的瘦客户端标识符、导出标识符、交互计数、基础导出密钥标识符(bdk_id)和瘦客户端公钥的密码密钥请求消息。来自每个硬件安全模块的基础导出密钥标识符可以标识相同的基础导出密钥。在一些实施例中,每个基础导出密钥标识符可以是相同的值。在其它实施例中,每个基础导出密钥标识符可以不同,但仍然可以标识相同的基础导出密钥。
[0094]
在步骤454处,在生成密码密钥请求消息之后,秘密模块406可以向加密功能模块410提供密码密钥请求消息。
[0095]
在步骤456处,在接收到密码密钥请求消息之后,加密功能模块410可以向第一硬件安全模块412提供密码密钥请求消息。
[0096]
在步骤458处,在接收到密码密钥请求消息之后,第一硬件安全模块412可以生成第一密码密钥(k_pin)。第一密码密钥可以是根据交互方法[dukpt]使用导出的唯一密钥生成的128位3des-ecb密钥(三重数据加密算法-电码本)。根据交互方法的导出的唯一密钥可以在第一硬件安全模块412(例如,nshield硬件安全模块)内实施。初始第一密码密钥(例如,k_pin)在瘦客户端简档注册之后生成。三个参数可用于生成初始第一密码密钥:导出标识符(例如,瘦客户端的公钥的一部分)、基础导出密钥标识符/基础导出密钥,以及交互计数。
[0097]
在步骤460处,在生成第一密码密钥(例如,k_pin)之后,第一硬件安全模块412可以生成第二密码密钥(k_kpin_enc)。第二密码密钥(k_kpin_enc)用于保护第一密码密钥。当在瘦客户端402与服务器计算机404之间在途时,以及当存储在服务器计算机后端数据库(例如,数据库408)中时,第一密码密钥(k_pin)可以得到保护。可以基于以下步骤在第一硬件安全模块412内部生成第二密码密钥。
[0098]
首先,第一硬件安全模块412生成临时256位ecc密钥对。临时密钥对包括临时服务器计算机私钥(k
vac-pin-pvt
)和临时服务器计算机公钥(k
vac-pin-pub
)。使用瘦客户端的静态公钥(k
d-enc-pub
),使用椭圆曲线迪菲赫尔曼(diffie helman)密码术(ecdh)在瘦客户端502与服务器计算机504之间协商共享秘密。例如,第一硬件安全模块412可以确定z=ecdh(k
vac-pin-pvt
,k
d-enc-pub
)的共享秘密。接着可以导出第二密码密钥(例如,会话密钥)和初始化
向量(iv
pin
)。第一硬件安全模块412可以通过创建基于散列的消息认证码(hmac)来导出第二密码密钥,这是[fips-198]中描述的操作。hmac可以具有包括密钥输入(k)、散列函数输入(hf)和消息输入(m)的三个输入。第一硬件安全模块412可以确定用作密钥输入(k)的共享秘密(z)的基于散列的消息认证码、用作散列函数输入(hf)的sha-256散列函数以及作为消息输入(m)的发行的瘦客户端标识符(vac_device_id)。hmac可设定成等于待确定的第二密码密钥和初始化向量的连结。第一硬件安全模块412可以确定第二密码密钥,所述第二密码密钥在与初始化向量连结时等于hmac。例如,第一硬件安全模块412可以使用以下等式导出第二密码密钥(k_kpin_enc):k_kpin_enc(128位)||iv
pin
(96位)=hmac[k:z,hf:sha-256,m:vac_device_id]。
[0099]
第二,第一硬件安全模块412使用第二密码密钥(k_kpin_enc)对第一密码密钥(k_pin)进行加密。例如,第一硬件安全模块412可以使用高级加密标准-galois/counter模式(aes-gcm)用第二密码密钥对第一密码密钥进行加密:
[0100]
[{k_pin}k_kpin_enc||gcm_auth_tag]=aes_gcm[k:k_kpin_enc,pt:k_pin,iv:iv
pin
,aad:没有额外的认证数据(aad)]
[0101]
在步骤462处,在生成第一密码密钥和第二密码密钥之后,第一硬件安全模块412可以向加密功能模块410提供密码密钥响应消息。密码密钥响应消息可以包括用第二密码密钥(k_kpin_enc)进行加密的第一密码密钥(k_pin)、第二密码密钥(k_kpin_enc)、初始化向量(iv
pin
)和服务器计算机临时公钥(k
vac-pin-pub
)。瘦客户端可以使用服务器计算机临时公钥(k
vac-pin-pub
)来确定第二密码密钥(k_kpin_enc)。当第一密码密钥(k_pin)在服务器计算机404与瘦客户端402之间发送时,它受到第二密码密钥(k_kpin_enc)的保护。初始化向量(iv
pin
)稍后可以由瘦客户端使用,以用第二密码密钥(k_kpin_enc)对第一密码密钥(k_pin)进行解密。
[0102]
在步骤464处,在接收到密码密钥响应消息之后,加密功能模块410向秘密模块406提供密码密钥响应消息。
[0103]
在步骤466处,在接收到密码密钥响应消息之后,秘密模块406可以将发行的瘦客户端标识符、用第二密码密钥进行加密的第一密码密钥、交互计数、第二密码密钥、服务器计算机临时公钥和初始化向量彼此关联地存储在数据库408中。
[0104]
例如,可以在数据库408中创建以下数据条目,并且可以与以下唯一的发行的瘦客户端标识符相关联:
[0105]
{k_pin}k_kpin_enc,k_kpin_enc,tx_counter,iv
pin
,k
vac-pin-pub
,bdk_id,and derivation_id。
[0106]
当创建更新的第一密码密钥(对于利用交互的每个后续秘密),更新的第一密码密钥可以使用第二密码密钥来包绕,并且存储在服务器计算机后端数据库(例如,数据库408)中。另外,当更新第一密码密钥时,初始化向量(iv
pin
)对于第一密码密钥的每次加密具有唯一值。因此,为了对更新的第一密码密钥进行加密,初始化向量递增1(例如,新iv
pin
=iv
pin
+1)。在图5b中进一步论述了密码密钥的更新。
[0107]
图4b示出了根据实施例的初始化方法的流程图。图4b所示的方法可以在图4a所示的方法之后并且在用户登录之后执行。图4b所示的方法可以向瘦客户端402提供服务器计算机临时公钥,使得瘦客户端402可以部分地基于服务器计算机临时公钥导出第二密码密
钥。
[0108]
在用户登录期间,瘦客户端402可以与服务器计算机404相互认证。此外,可以在瘦客户端402与服务器计算机404之间建立安全信道。在一些实施例中,在成功登录后,可以导出三个密码密钥以用于对交互数据(例如,交易数据、数据传输数据等)的机密性和完整性保护。在成功登录后导出的密钥可以包括签名密钥(k_mac)、敏感数据密钥(k_key)和交互有效载荷密钥(k_enc)。签名密钥(k_mac)可以是用于以json web签名(jws)形式(例如,具有sha-256的hmac)对交易有效载荷进行签名的256位密钥。敏感数据密钥(k_key)可以是用于敏感数据的机密性保护的128位aes-gcm密钥。交互有效负载密钥(k_enc)可以是用于交易有效负载的机密性保护的128位aes-gcm密钥。这三个密码密钥可由瘦客户端402生成,并提供给服务器计算机404。
[0109]
在步骤468处,在登录之后,瘦客户端402可以向服务器计算机404提供pin公钥请求消息。pin公钥请求消息可以是暴露给瘦客户端402以供使用的服务器计算机404的功能。
[0110]
在步骤470处,在从瘦客户端402接收到pin公钥请求消息之后,服务器计算机404可以使用任何合适的消息或功能调用向秘密模块406请求pin公钥。例如,服务器计算机404可以将pin公钥请求消息提供给秘密模块406。
[0111]
在步骤472处,在接收到公钥请求消息之后,秘密模块406可以查询数据库408以获得服务器计算机临时公钥(例如,k
vac-pin-pub
)。在图4a中步骤466处,服务器计算机临时公钥先前存储在数据库408中。
[0112]
在步骤474处,在接收到对服务器计算机临时公钥的请求之后,数据库408可以标识和获得服务器计算机临时公钥。
[0113]
在步骤476处,在获得服务器计算机临时公钥之后,数据库408可以向秘密模块406提供服务器计算机临时公钥。
[0114]
在步骤478处,在接收到服务器计算机临时公钥之后,秘密模块406可以生成安全消息生成请求消息。安全消息生成请求消息可以是利用服务器计算机临时公钥(k
vac-pin-pub
)生成jws_jwe(json web signature_json web encryption)消息并将安全消息(例如,jws_jwe消息)递送到瘦客户端402的请求。安全消息生成请求消息可以包括从数据库408接收到的服务器计算机临时公钥。在一些实施例中,安全消息生成请求消息可以包括签名密钥(k_mac)和敏感数据密钥(k_key)。
[0115]
在步骤480处,在生成安全消息生成请求消息之后,秘密模块406可以向加密功能模块410提供安全消息生成请求消息。
[0116]
在步骤482处,在接收到安全消息生成请求消息之后,加密功能模块410可以向第一硬件安全模块412提供安全消息生成请求消息。在一些实施例中,加密功能模块410可以在向第一硬件安全模块412提供安全消息生成请求消息之前验证签名密钥(k_mac)和敏感数据密钥(k_key)。
[0117]
在步骤484处,在接收到安全消息生成请求消息之后,第一硬件安全模块412可以生成安全消息。在一些实施例中,第一硬件安全模块412可以使用签名密钥(k_mac)和敏感数据密钥(k_key)生成安全消息。例如,安全消息可以在使用签名密钥(k_mac)和敏感数据密钥(k_key)生成的jws_jwe消息中。安全消息可以包括服务器计算机临时公钥。
[0118]
在步骤486处,在生成安全消息之后,第一硬件安全模块412可以响应于安全消息
生成请求消息而向加密功能模块410提供安全消息。
[0119]
在步骤488处,在接收到安全消息之后,加密功能模块410可以将向秘密模块406提供安全消息。
[0120]
在步骤490处,在从加密功能模块410接收到安全消息之后,秘密模块406可以向服务器计算机404提供安全消息。
[0121]
在步骤492处,在接收到安全消息之后,服务器计算机404可以向瘦客户端402提供安全消息。
[0122]
在步骤494处,在接收到安全消息之后,瘦客户端402可以验证安全消息。例如,瘦客户端402可以验证本领域技术人员已知的安全消息的jwe和jws。瘦客户端402可以验证包括在jws-jwe消息中的接收到的jws-jwe令牌。
[0123]
在步骤496处,在验证安全消息之后,瘦客户端402可以导出第二密码密钥(k_kpin_enc)。例如,瘦客户端402可以生成相同的共享秘密,如上文椭圆曲线迪菲赫尔曼密码术(ecdh)所描述。例如,瘦客户端402可以执行z=ecdh(k
d-enc-pvt
,k
vac-pin-pub
),并导出第二密码密钥(k_kpin_enc)(128位)||iv
pin
(96位)=hmac[k:z,hf:sha-256,m:vac_device_id],如本文所描述。瘦客户端402在其使用期限内接着安全地存储第二密码密钥,并使用存储的第二密码密钥和初始化向量对接收到的第一密码密钥进行解密。瘦客户端可以将初始化向量递增1,以对加密的已更新的第一密码密钥进行解密。
[0124]
在步骤498处,在导出第二密码密钥之后,瘦客户端402可以通过使用第二密码密钥来对用第二密码密钥进行加密的第一密码密钥进行解密。
[0125]
当第二密码密钥(k_kpin_enc)的使用期限结束时,将对其进行刷新。可以在硬件安全模块上生成一组新的临时密钥,并且将新的公钥发送到瘦客户端,以生成新的第二密码密钥(k_kpin_enc)和初始化向量(iv
pin
)。
[0126]
当第一密码密钥被发送到瘦客户端402时,服务器计算机后端开始在第一硬件安全模块412中使用根据交互算法的导出的唯一密钥和更新的交互计数(例如,递增1)生成更新的第一密码密钥。第一密码密钥使用第二密码密钥进行加密,并且存储在服务器计算机后端数据库(例如,数据库408)上以用于下一在线秘密用户验证方法事件。图5a-5b中进一步详细描述这个过程。
[0127]
c.秘密转换
[0128]
图5a-5b示出根据实施例的在线pin卡持有人验证方法和pin密钥刷新过程。将在用户发起与资源提供商交互的上下文中描述图5a-5b所示的方法。用户可以操作便携式装置。资源提供商可以操作包括瘦客户端502的通信装置。便携式装置可以向通信装置提供交互数据。在接收到已发起交互的指示时,瘦客户端502可以与服务器计算机504进行通信以在步骤520处处理交互。然而,应当理解,本发明可以适用于其它情况。
[0129]
在步骤520处,瘦客户端502可以将向服务器计算机504提供交互请求消息。交互请求消息包括发行的瘦客户端标识符(vac_device_id)。交互请求消息还可以包括从瘦客户端502接收和/或由所述瘦客户端生成的用于用户与资源提供商之间的交互的交互数据。发行的瘦客户端标识符可以是之前由服务器计算机504或其子系统发行到瘦客户端502的标识符。
[0130]
在步骤522处,在从瘦客户端502接收到交互请求消息之后,服务器计算机504可以
向秘密模块506提供发行的瘦客户端标识符。服务器计算机504可以在密码密钥请求消息中向秘密模块506提供发行的瘦客户端标识符。例如,服务器计算机504可以向秘密模块506请求密码密钥,所述密码密钥可以被提供给瘦客户端502,以便瘦客户端502对秘密进行加密。
[0131]
在步骤524处,在从服务器计算机504接收到包括发行的瘦客户端标识符的密码密钥请求消息之后,秘密模块506可以向数据库508提供密码密钥请求消息。
[0132]
在步骤526处,在接收到密钥请求消息之后,数据库508可以获得加密的第一密码密钥,所述加密的第一密码密钥是用第二密码密钥({k_pin}k_kpin_enc)和服务器计算机临时公钥(k
vac-pin-pub
)进行加密的。数据库508可以经由任何合适的查找程序获得加密的第一密码密钥。数据库508可以使用发行的瘦客户端标识符标识加密的第一密码密钥。数据库508可以通过标识数据库508中最近的服务器计算机临时公钥来获得服务器计算机临时公钥。在一些实施例中,第二密码密钥可以是会话密钥。
[0133]
在步骤528处,在获得加密的第一密码密钥和服务器计算机临时公钥之后,数据库508可以向秘密模块506提供加密的第一密码密钥和服务器计算机临时公钥。
[0134]
在步骤530处,在从数据库508接收到加密的第一密码密钥和服务器计算机临时公钥之后,秘密模块506可以生成安全消息生成请求消息。安全消息生成请求消息可以包括加密的第一密码密钥。加密的第一密码密钥是用第二密码密钥进行加密的。在一些实施例中,安全消息生成请求消息可以包括签名密钥(k_mac)和敏感数据密钥(k_key)。安全消息生成请求消息可以请求安全硬件模块(hsm),特别是第一硬件安全模块512生成包括第一密码密钥并将被发送到瘦客户端502的安全消息。安全消息可以呈jws_jwe格式,并且可以根据签名密钥和敏感数据密钥创建和/或格式化。
[0135]
在步骤532处,在创建安全消息生成请求消息之后,秘密模块506可以向加密功能模块510提供安全消息生成请求消息。
[0136]
在步骤534处,在接收到安全消息生成请求消息之后,加密功能模块510可以向第一硬件安全模块512提供安全消息生成请求消息。消息可以请求在安全消息中将加密的第一密码密钥发送到瘦客户端502。
[0137]
在步骤536处,在接收到安全消息生成请求消息之后,第一硬件安全模块512可以生成安全消息。安全消息可以包括加密的第一密码密钥,所述加密的第一密码密钥是用第二密码密钥进行加密的。在一些实施例中,安全消息还可以包括服务器计算机临时公钥(k
vac-pin-pub
)和/或任何其它合适的数据。例如,安全消息可以呈json web signature_json web encryption(jws_jwe)格式,且可以表示为(jws_jwe({k_pin}k_kpin_enc))。
[0138]
在步骤538处,在生成安全消息之后,第一硬件安全模块512可以向加密功能模块提供安全消息。
[0139]
在步骤540处,在接收到安全消息之后,加密功能模块510可以向秘密模块506提供安全消息。
[0140]
在步骤542处,秘密模块506可以响应于密码密钥请求消息将包括加密的第一密码密钥的安全消息提供给服务器计算机504。
[0141]
在步骤544处,在从秘密模块506接收到安全消息之后,服务器计算机504可以向瘦客户端502提供安全消息。
[0142]
在步骤546处,在从服务器计算机504接收到安全消息之后,瘦客户端502可以验证
安全消息。例如,如果安全消息呈jws_jwe格式,则瘦客户端502可以验证jwe和jws令牌。
[0143]
在步骤548a处,在验证安全消息之后,瘦客户端502可以对加密的第一密码密钥进行解密。例如,瘦客户端502可以导出第二密码密钥并使用第二密码密钥对加密的第一密码密钥进行解密。瘦客户端502可以使用椭圆曲线迪菲赫尔曼密码术(ecdh)来导出第二密码密钥。瘦客户端502可以基于瘦客户端静态私钥(k
d-enc-pvt
)、服务器计算机临时公钥(k
vac-pin-pub
)、由瘦客户端维护的在每次交互后递增的初始化向量(iv
pin
),以及发行的瘦客户端标识符(vac_device_id)确定第二密码密钥。为此,瘦客户端502可以生成与在图4a的步骤460处在第一硬件安全模块512处生成的相同的共享秘密(z)。瘦客户端502可以基于瘦客户端静态私钥(k
d-enc-pvt
)、服务器计算机临时公钥(k
vac-pin-pub
)生成共享秘密(z)。例如,瘦客户端可以计算z=ecdh(k
d-enc-pvt
,k
vac-pin-pub
)。
[0144]
在确定共享秘密之后,瘦客户端502可以使用共享秘密、初始化向量和发行的瘦客户端标识符来导出第二密码密钥。例如,瘦客户端502可以导出第二密码密钥,类似于第一硬件安全模块512导出第二密码密钥的方式。瘦客户端502可以确定基于散列的消息认证码(hmac)。hmac可以具有包括密钥输入(k)、散列函数输入(hf)和消息输入(m)的三个输入。瘦客户端502可以确定用作密钥输入(k)的共享秘密(z)的基于散列的消息认证码、用作散列函数输入(hf)的sha-256散列函数和用作消息输入(m)的发行的瘦客户端标识符(vac_device_id)。hmac可设定成等于待确定的第二密码密钥和初始化向量的连结。瘦客户端502可以确定第二密码密钥,所述第二密码密钥在与初始化向量连结时等于hmac。例如,瘦客户端502可以使用以下等式导出第二密码密钥:k_kpin_enc(128位)||iv
pin
(96位)=hmac[k:z,hf:sha-256,m:vac_device_id]。
[0145]
在步骤548b处,瘦客户端502可以从正在与通信装置的资源提供商交互的便携式装置的用户获得秘密。例如,瘦客户端502可以在通信装置的屏幕上提示用户输入秘密。用户可以使用通信装置上的任何输入元件输入秘密。例如,用户可以使用触摸屏和显示的按钮来输入秘密。秘密可以是例如用户的生物特征模板、密码、个人标识码、社会安全号码、一次性密码等。
[0146]
在步骤548c处,在获得秘密之后,瘦客户端502可以用第一密码密钥对秘密进行加密。
[0147]
在步骤550处,在用第一密码密钥对秘密进行加密之后,瘦客户端502向服务器计算机504提供加密的第一密码密钥。
[0148]
在步骤552处,在接收到加密的秘密之后,服务器计算机504可以向秘密模块506提供对转换秘密的请求。对转换秘密的请求(例如,转换请求消息)包括加密的秘密和发行的瘦客户端标识符。
[0149]
在步骤554处,在从服务器计算机504接收到转换请求消息之后,秘密模块506可以生成包括发行的瘦客户端标识符的转换参数请求消息。转换参数请求消息可以请求与将加密的秘密从第一加密域(例如,用第一密码密钥进行加密的)转换为第二加密域(例如,用第三密码密钥进行加密的)相关联的参数。第三加密密钥可以是传输计算机或收单方计算机(或其它下游实体)密钥,其可在数据被传送到所述实体时对数据进行加密。
[0150]
在步骤556处,在生成转换参数请求消息之后,秘密模块506可以向数据库508提供转换参数请求消息。
[0151]
在步骤558处,在从秘密模块506接收到转换参数请求消息之后,数据库508可以获得转换参数。例如,数据库508可以使用发行的瘦客户端标识符查找转换参数。转换参数可以包括加密的第一密码密钥、初始化向量(iv)、传输计算机标识符、第二密码密钥、基础导出密钥标识符、交互计数和导出标识符。
[0152]
在步骤560处,在获得转换参数之后,数据库508可以响应于转换请求消息而向秘密模块506提供转换参数。
[0153]
在步骤562处,在从数据库508接收到转换参数之后,秘密模块506可以修改转换请求消息(或创建类似消息)以包括一个或多个转换参数。例如,秘密模块506可以修改转换请求消息以包括用第一密码密钥进行加密的秘密、用第二密码密钥进行加密的已加密第一密码密钥、传输计算机标识符、初始化向量、基础导出密钥标识符、交互计数、导出标识符和发行的瘦客户端标识符。
[0154]
在步骤564处,在修改转换请求消息之后,秘密模块506可以向加密功能模块510提供转换请求消息。
[0155]
在步骤566处,在从秘密模块506接收到转换请求消息之后,加密功能模块510可以向第二硬件安全模块514提供转换请求消息。在一些实施例中,加密功能模块510可以基于消息的内容、消息的格式和/或消息中包括的标识符来确定向哪个硬件安全模块提供消息。
[0156]
在步骤568a处,在从加密功能模块510接收到转换请求消息之后,第二硬件安全模块514可以对加密的第一密码密钥进行解密。第二硬件安全模块514可以使用第二密码密钥对加密的第一密码密钥进行解密以获得第一密码密钥。
[0157]
在步骤568b处,在获得第一密码密钥之后,第二硬件安全模块514可以使用第一密码密钥对加密的秘密进行解密。
[0158]
在步骤568c处,第二硬件安全模块514可以用第三密码密钥(例如,传输计算机密码密钥)对秘密进行加密。第二硬件安全模块514可以使用传输计算机标识符从存储器获得第三密码密钥,所述传输计算机标识符可以与传输计算机密码密钥相关联地存储。第三密码密钥可以是对称密钥。
[0159]
在步骤570处,在用第三密码密钥对秘密进行加密之后,第二硬件安全模块514可以向加密功能模块510提供加密的秘密。
[0160]
在步骤572处,在接收到用第三密码密钥进行加密的已加密秘密之后,加密功能模块510可以向秘密模块506提供加密的秘密。
[0161]
在图5a的步骤572之后并且在图5b的步骤574之前,秘密模块506可以将加密的秘密发送到传输计算机(未示出)。如本文所描述,传输计算机可以通过使用由传输计算机存储的第三密码密钥对加密的秘密进行解密来处理加密的秘密。传输计算机可以使用授权实体计算机密码密钥对所述秘密进行重新加密,并将加密的秘密发送到授权实体计算机,以授权与所述秘密相关联的交互。
[0162]
图5b示出在处理加密的秘密并将加密的秘密提供给传输计算机之后更新密码密钥。在步骤574处,秘密模块506可以更新一个或多个转换参数。更新一个或多个转换参数可以包括递增一个或多个转换参数。例如,秘密模块506可以递增交互计数。交互计数器可以在每次执行交互之后(例如,在每次执行图5a所示的过程之后)递增值1(或其它预定增量)。秘密模块506可以递增初始化向量。例如,秘密模块506可以将初始化向量递增1或其它预定
增量,所述初始化向量可以是96位值。
[0163]
在步骤576处,在递增一个或多个转换参数之后,秘密模块506可以生成密码密钥刷新消息。密码密钥刷新消息包括用第二密码密钥进行加密的已加密第一密码密钥、更新的初始化向量、基础导出密钥标识符,更新的交互计数、导出标识符,发行的瘦客户端标识符,以及第二密码密钥。
[0164]
在步骤578处,在生成密码密钥刷新消息之后,秘密模块506可以向加密功能模块510提供密码密钥刷新消息。
[0165]
在步骤580处,在从秘密模块506接收到密码密钥刷新消息之后,加密功能模块510可以向第一硬件安全模块512提供密码密钥刷新消息。
[0166]
在步骤582处,第一硬件安全模块512可以至少使用更新的交互计数生成更新的第一密码密钥。第一硬件安全模块512可以按与生成第一密码密钥类似的方式生成更新的第一密码密钥,并且将不在此处重复。
[0167]
在步骤584处,在生成更新的第一密码密钥之后,第一硬件安全模块512可以使用更新的初始化向量用第二密码密钥对更新的第一密码密钥进行加密。
[0168]
在步骤586处,在对更新的第一密码密钥进行加密之后,第一硬件安全模块512向加密功能模块510提供加密的已更新的第一密码密钥。
[0169]
在步骤588处,在接收到加密的已更新的第一密码密钥之后,加密功能模块510向秘密模块506提供加密的已更新的第一密码密钥。
[0170]
在步骤590处,在响应于密码密钥刷新消息而接收到加密的已更新的第一密码密钥之后,秘密模块506可以生成存储请求消息,所述存储请求消息包括发行的瘦客户端标识符、加密的已更新的第一密码密钥、更新的交互计数和更新的初始化向量。
[0171]
在步骤592处,在生成存储请求消息之后,秘密模块506可以向数据库508提供存储请求消息。
[0172]
在步骤594处,在接收到存储请求消息之后,数据库508可以在数据库508中将发行的瘦客户端标识符、加密的已更新的第一密码密钥、更新的交互计数和更新的初始化向量彼此相关联地存储在数据库中。发行的瘦客户端标识符、加密的已更新的第一密码密钥、更新的交互计数和更新的初始化向量稍后可以由数据库508在将来的交互期间调用。
[0173]
缩写词、术语、注释和参考的表如下所示。
[0174]
表1.缩写词
[0175][0176][0177]
表2.术语和注释
[0178][0179][0180]
表3.密码密钥注释
[0181]
[0182][0183]
表4.参考
[0184][0185]
本公开的实施例具有许多优点。例如,实施例允许在交互期间对秘密进行安全在线通信。实施例提供在由资源提供商操作的通信装置处接受用户秘密的优点。例如,用户可以将例如个人标识码之类的秘密输入到资源提供商的通信装置中。即使秘密被输入到资源提供商的装置中并且经由空中(例如,在线)提供给服务器计算机,所述秘密仍对资源提供商保持安全。
[0186]
实施例允许从服务器计算机向瘦客户端安全地配备第一密码密钥。第一密码密钥在传送期间用第二密码密钥进行加密,所述第二密码密钥可从可由瘦客户端导出的迪菲赫尔曼共享秘密导出。这提供了在通信期间限制对恶意方访问第一密码密钥的优点,因为秘密将用第一密码密钥进行加密是有益的。
[0187]
此外,实施例向通信装置上的瘦客户端安全地提供旋转密码密钥。例如,在每次后续交互期间,瘦客户端可以接收加密的已更新的第一密码密钥。这提供了在密码被泄露的情况下限制恶意方活动的优点。例如,如果恶意方拦截加密的第一密码密钥并且能够破解加密,恶意方将仅获得所述单一交互的信息。恶意方将无法执行恶意交互,因为第一密码密钥在每次交互之后会被更新。因此,恶意方无法使用盗取的第一密码密钥执行恶意交互。
[0188]
尽管以特定顺序示出或描述了上述流程图和过程流程中的步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。
[0189]
本技术中描述的任何软件组件或功能可实施为使用例如java、c、c++、c#、objective-c、swift的任何合适的计算机语言或例如perl或python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。所述软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或传输,合适的介质包括随机存取存储器(ram)、只读存储器(rom)、磁性介质(例如硬盘驱动器或软盘),或者光学介质(例如光盘(cd)或数字通用光盘(dvd))、闪存存储器,等等。计算机可读介质可以是此类存储装置或传输装置的任何组合。
[0190]
此类程序还可以使用适合于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和发送。因此,根据本发明的一个实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容装置一起封装或者与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻存在单个计算机产品(例如,硬盘驱动器,cd或整个计算机系统)之上或其内部,并且可以存在于系统或网络内的不同计算机产品上或其内部。计算机系统可以包括监视器、打印机,或者用于向用户提供本文所提及的任何结果的其它合适的显示器。
[0191]
以上描述是说明性的并且不是限制性的。在阅读了本公开之后,本发明的许多变型形式对于本领域的技术人员将变得显而易见。因此,本发明的范围不应当参考上面的描述来确定,而是应当参考未决的权利要求连同其完整范围或等同物来确定。
[0192]
在不偏离本发明范围的情况下,来自任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
[0193]
如本文所用,除非明确指示有相反的意思,否则使用“一个”、“一种”或“所述”旨在意指“至少一个/种”。
技术特征:1.一种方法,包括:由服务器计算机从通信装置上的瘦客户端接收瘦客户端标识符;由所述服务器计算机基于所述瘦客户端标识符检取加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;由所述服务器计算机发起向所述瘦客户端发送所述加密的第一密码密钥;以及由所述服务器计算机从所述瘦客户端接收加密的秘密,所述加密的秘密是用所述第一密码密钥进行加密的秘密。2.根据权利要求1所述的方法,并且其中所述方法还包括:由所述服务器计算机发起所述秘密从用所述第一密码密钥进行加密到用第三密码密钥进行加密的转换,其中所述第三密码密钥是传输计算机密码密钥。3.根据权利要求2所述的方法,其中所述第一密码密钥、所述第二密码密钥和所述第三密码密钥是对称密钥。4.根据权利要求1所述的方法,其中所述秘密是用户的生物特征模板、密码、个人标识码、社会安全号码或一次性密码。5.根据权利要求1所述的方法,其中所述瘦客户端接收所述加密的第一密码密钥,对所述加密的第一密码密钥进行解密,获得所述秘密,用所述第一密码密钥对所述秘密进行加密,并将用所述第一密码密钥进行加密的所述秘密提供给所述服务器计算机。6.根据权利要求1所述的方法,其中所述第二密码密钥由所述瘦客户端独立地导出,并且由所述瘦客户端用来对所述加密的第一密码密钥进行解密。7.根据权利要求1所述的方法,并且其中所述方法还包括:由所述服务器计算机发起所述秘密从用所述第一密码密钥进行加密到用第三密码密钥进行加密的转换,其中所述第三密码密钥是传输计算机密码密钥;在发起所述秘密的所述转换之后,由所述服务器计算机获得用所述第三密码密钥进行加密的所述秘密;以及由所述服务器计算机向传输计算机提供用所述第三密码密钥进行加密的所述秘密,其中所述传输计算机对用所述第三密码密钥进行加密的所述秘密进行解密以获得所述秘密。8.根据权利要求7所述的方法,其中用所述第三密码密钥进行加密的所述秘密在授权请求消息中被提供给所述传输计算机,并且其中所述传输计算机修改所述授权请求消息以包括所述秘密,并且将经修改的授权请求消息提供给授权实体计算机,其中所述授权实体计算机确定是否授权与所述秘密相关联的交互,生成所述交互是否被授权的指示,生成包括所述交互是否被授权的所述指示的授权响应消息,并经由所述传输计算机向所述服务器计算机提供所述授权响应消息,其中所述方法还包括:由所述服务器计算机接收所述授权响应消息;以及由所述服务器计算机向所述瘦客户端提供所述授权响应消息。9.根据权利要求1所述的方法,其中所述第二密码密钥由所述瘦客户端独立地导出并且由所述瘦客户端用来对所述加密的第一密码密钥进行解密,其中所述第二密码密钥使用初始化向量、瘦客户端标识符和共享秘密独立地导出,所述共享秘密由所述瘦客户端使用迪菲赫尔曼椭圆曲线密码编译过程获得。10.根据权利要求1所述的方法,还包括:
在便携式装置的用户与所述通信装置的资源提供商之间的交互期间,由所述服务器计算机从所述瘦客户端接收交互数据;以及由所述服务器计算机向传输计算机提供所述交互数据和所述加密的秘密。11.一种服务器计算机,包括:处理器;以及计算机可读介质,其耦合到所述处理器,所述计算机可读介质包括能够由所述处理器执行以用于实施方法的代码,所述方法包括:从通信装置上的瘦客户端接收瘦客户端标识符;基于所述瘦客户端标识符检取加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;发起向所述瘦客户端发送所述加密的第一密码密钥;以及从所述瘦客户端接收加密的秘密,所述加密的秘密是用所述第一密码密钥进行加密的秘密。12.根据权利要求11所述的服务器计算机,还包括:秘密模块;加密功能模块;第一硬件安全模块;以及第二硬件安全模块。13.根据权利要求12所述的服务器计算机,还包括:发起所述秘密从用所述第一密码密钥进行加密到用第三密码密钥进行加密的转换,其中发起所述秘密从用所述第一密码密钥进行加密到用所述第三密码密钥进行加密的所述转换还包括:由所述服务器计算机向所述秘密模块提供用所述第一密码密钥进行加密的所述秘密和所述瘦客户端标识符;由所述秘密模块使用所述瘦客户端标识符查询数据库以获得转换参数;由所述秘密模块接收所述转换参数;由所述秘密模块经由所述加密功能模块向所述第二硬件安全模块提供用所述第一密码密钥进行加密的所述秘密和所述转换参数;由所述第二硬件安全模块使用所述转换参数对用所述第一密码密钥进行加密的所述秘密进行解密;由所述第二硬件安全模块用所述第三密码密钥对所述秘密进行加密;由所述第二硬件安全模块经由所述加密功能模块向所述秘密模块提供用所述第三密码密钥进行加密的所述秘密;以及由所述秘密模块向所述服务器计算机提供用所述第三密码密钥进行加密的所述秘密。14.根据权利要求13所述的服务器计算机,其中所述转换参数包括所述转换参数,所述转换参数包括所述加密的第一密码密钥、初始化向量、传输计算机标识符、所述第二密码密钥、基础导出密钥标识符、交互计数以及导出标识符。15.根据权利要求13所述的服务器计算机,其中在由所述第二硬件安全模块经由所述加密功能模块向所述秘密模块提供用所述第三密码密钥进行加密的所述秘密之后,所述方
法还包括:由所述秘密模块经由所述加密功能模块向所述第一硬件安全模块提供刷新请求消息;由所述第一硬件安全模块生成已更新的第一密码密钥;由所述第一硬件安全模块用所述第二密码密钥对所述已更新的第一密码密钥进行加密;由所述第一硬件安全模块经由所述加密功能模块向所述秘密模块提供所述加密的已更新的第一密码密钥;以及由所述秘密模块将所述瘦客户端标识符和所述加密的已更新的第一密码密钥存储在所述数据库中。16.根据权利要求11所述的服务器计算机,在从所述瘦客户端接收所述瘦客户端标识符之前,所述方法还包括:由所述服务器计算机将所述瘦客户端标识符分配到所述瘦客户端。17.根据权利要求11所述的服务器计算机,其中在从所述瘦客户端接收所述瘦客户端标识符之前,所述方法还包括:从所述瘦客户端接收公钥请求,其中所述公钥请求包括对服务器计算机临时公钥的请求;获得所述服务器计算机临时公钥;以及向所述瘦客户端提供所述服务器计算机临时公钥,其中所述瘦客户端根据至少所述服务器计算机临时公钥导出所述第二密码密钥。18.一种方法,包括:由通信装置上的瘦客户端在所述通信装置与便携式装置之间的交互期间向服务器计算机提供瘦客户端标识符;由所述瘦客户端从所述服务器计算机接收加密的第一密码密钥,其中所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥;由所述瘦客户端用所述第二密码密钥对所述加密的第一密码密钥进行解密;由所述瘦客户端从所述便携式装置的用户接收秘密;由所述瘦客户端用所述第一密码密钥对所述秘密进行加密;以及由所述瘦客户端向所述服务器计算机提供加密的所述秘密。19.根据权利要求18所述的方法,还包括:由所述瘦客户端从所述便携式装置接收交互数据;以及由所述瘦客户端向所述服务器计算机提供所述交互数据。20.根据权利要求18所述的方法,还包括:由所述瘦客户端从存储器获得所述第二密码密钥;以及由所述瘦客户端提示所述便携式装置的所述用户输入所述秘密。
技术总结一种方法包括由服务器计算机从通信装置上的瘦客户端接收瘦客户端标识符。所述服务器计算机可以接着基于所述瘦客户端标识符检取加密的第一密码密钥。所述加密的第一密码密钥是用第二密码密钥进行加密的第一密码密钥。所述服务器计算机可以发起向所述瘦客户端发送所述加密的第一密码密钥。所述服务器计算机接着从所述瘦客户端接收加密的秘密,所述加密的秘密是用所述第一密码密钥进行加密的秘密。秘密是用所述第一密码密钥进行加密的秘密。秘密是用所述第一密码密钥进行加密的秘密。
技术研发人员:F
受保护的技术使用者:维萨国际服务协会
技术研发日:2021.04.21
技术公布日:2022/11/1