本发明涉及用于授权电子交易的系统和方法,尤其但非排他地涉及授权使用支付装置在销售点进行的非接触式支付交易。
背景技术:
存在不使用现金进行支付交易的多种方法。例如,可以通过与电子支付终端交互来使用诸如支付卡等金融工具来实现支付,该电子支付终端可以位于诸如零售机构或餐馆等机构内的销售点(pos)。支付卡可以包括磁条,该磁条包含诸如与账户持有人和可以从中提取交易资金的账户有关的数据等信息。通常通过读取进行交易所需的数据的磁卡读取器刷这种磁条支付卡。在另一示例中,一些支付卡嵌入有存储上述信息的半导体器件(“芯片”),并且在卡上提供用于与读卡器交互的接口。该接口通常采用物理导电盘的形式。
使用金融工具的交易可能涉及用户的验证(认证)。例如,可能需要用户提供签名。可替换地,可能需要用户在提示时在终端上输入个人识别码(pin)。pin可以以加密的形式发送到服务器,用于在称为在线pin验证的技术中进行验证。可替换地,在如上所述的包括芯片的金融工具的情况下,芯片可以包括存储pin数据的安全存储器。在这种情况下,用户在提示时在终端上输入pin,在通常称为离线pin验证的技术中,将该pin与存储在卡中的pin进行比较。上述验证方法中的每一种方法都是耗时的,并且对用户是不方便的。还开发了不涉及用户验证的支付交易方法。
已经开发了所谓的非接触式支付交易方法。非接触式支付装置具有天线,使得当非常接近非接触式支付终端时,能够与非接触式支付终端进行交互,以提供如上所述执行支付交易所需的信息。这种支付交易通常不要求用户执行验证过程(例如,如上所述,提供签名或pin)。这使得支付交易能够快速且容易地执行,但也涉及更低安全等级的交易。已实施的针对欺诈行为的一项对策是在所有运行此类方法的国家对使用非接触式支付方法(无需用户验证)可以进行的交易额加以限制。对于高于该限制的交易,可能需要用户提供pin,例如,在存在用于在线pin验证的基础设施的情况下,或者可能要求用户使用不同的支付方法,例如,“芯片和pin”。这意味着非接触支付交易的便利性降低了。
对于非接触式支付交易,难以确保在非接触式支付装置与非接触式支付终端之间的通信。然而,用于在非接触式支付装置与非接触式支付终端之间通信的协议在实现新的数据安全技术方面灵活性有限。如果非接触支付装置包括用于访问互联网的功能(如在许多移动电话中存在的),则已经提出了各种在线数据安全技术。然而,在交易时需要互联网连接的数据安全技术的缺点在于,当交易发生时,互联网连接并不总是可用的。
技术实现要素:
根据至少一个实施例,提供了用于支持或实现授权支付交易的功能的方法、装置、系统和软件。
这通过每个独立权利要求中记载的特征的组合来实现。从属权利要求规定了各种实施例的进一步详细实现方式。
根据第一方面,提供了一种授权交易的方法,所述方法包括用户装置:接收共享密钥和共享密钥标识符;从交易终端接收交易数据;计算包括所述共享密钥的数据的单向散列,以生成散列值;生成包括散列值和共享密钥标识符的认证数据;并且将认证数据发送到交易终端。在交易过程中不需要接收共享密钥和共享密钥标识符。因此,可以在交易之前将共享密钥提供给用户装置,因此,可以离线执行交易,即,不需要互联网连接,不需要将共享密钥从交易终端发送给用户装置。认证数据的传输可以使用现有非接触式交易协议中可用的数据格式来实现。
该方法可以包括所述用户装置接收多个共享密钥和多个共享密钥标识符,每个共享密钥标识符对应于相应的共享密钥,其中,所述认证数据包括与用于计算散列值的共享密钥对应的共享密钥标识符。以这种方式,可以执行多个交易,而不需要互联网连接。
所述用户装置可以经由第一通信链路接收所述共享密钥和所述共享密钥标识符,并且经由与所述第一通信链路不同的第二通信链路发送认证数据。所述第一通信链路可以使用互联网协议传送数据,并且所述第二通信链路可以使用近场通信协议传送数据。
该方法可以进一步包括验证用户装置的用户的身份,用于计算散列值的数据还包括与身份验证有关的信息。验证用户的身份可以包括使用快速身份在线技术。
所述交易可以包括非接触式支付交易,在这种情况下,所述支付终端包括非接触式支付终端,并且所述用户装置包括非接触式支付装置。
根据第二方面,提供了一种验证交易的方法,所述方法包括验证平台:为用户装置提供共享密钥和共享密钥标识符;接收用于交易的认证数据,所述认证数据识别用户并且包括交易散列值和交易共享密钥标识符;验证所述交易共享密钥标识符与有效的共享密钥对应;通过计算包括与交易共享密钥标识符对应的共享密钥的数据的单向散列,来计算验证散列值;并且比较交易散列值和验证散列值,以确定交易是否有效。通过结合对应的共享密钥提供共享密钥标识符,验证平台能够识别用于计算交易散列值的共享密钥,而不需要在交易时提供形成部分交易过程的共享密钥。因此,可以在交易之前将共享密钥提供给用户装置,因此,可以离线执行交易,即,不需要互联网连接,不需要将共享密钥从交易终端发送给用户装置。
验证平台可以为用户装置提供多个共享密钥和多个共享密钥标识符,每个共享密钥标识符对应于相应的共享密钥。以这种方式,可以执行多个交易,而不需要互联网连接。
在接收到包括共享密钥标识符的认证数据之后,所述验证平台可以使与共享密钥标识符对应的共享密钥对于未来交易无效。以这种方式,提供针对重放攻击的保护。
用于计算验证散列值的数据还可以包括与用户的身份相关的信息。
根据本发明的第三方面,提供了一种设备,包括:第一接口,用于经由第一通信系统从远程装置接收共享密钥和共享密钥标识符;以及第二接口,用于经由第二通信系统从交易终端接收交易数据,所述设备被设置为计算包括所述共享密钥的数据的单向散列,以生成散列值,生成包括所述散列值和所述共享密钥标识符的认证数据,并且将所述认证数据发送到所述交易终端。
根据本发明的第四方面,提供了一种设备,其被设置为向远程用户装置提供共享密钥和共享密钥标识符,所述设备还被设置为接收用于交易的认证数据,所述认证数据识别用户并且包括交易散列值和交易共享密钥标识符,验证所述交易共享密钥标识符对应于有效共享密钥,通过计算包括与交易共享密钥标识符对应的共享密钥的数据的单向散列,来计算验证散列值;并且比较交易散列值和验证散列值,以确定交易是否有效。
根据参照附图进行的仅以示例的方式给出的优选实施例的以下描述,其他特征和优点将变得显而易见。
附图说明
图1示出了可以实施本发明的实施例的支付交易系统的示意图;
图2示意性地示出了用于实施例中的支付装置;
图3示意性地示出了用于实施例中的验证平台;以及
图4示出了根据一个实施例的由用户装置和支付终端执行的认证过程的处理流程。
具体实施方式
图1示出了可以实现实施例的交易系统1。具体地,图1的交易系统是支付交易系统,在该系统中,移动装置100可以使用近场通信(nfc)通过第一通信链路104与非接触式支付终端102执行非接触式支付交易。nfc通信协议在iso/iec18092中标准化。
在交易系统1中,非接触式支付终端102是位于商业场所(例如,商店、餐厅、电影院、车站或其他位置)中的销售点(pos)终端,并且被设置为代表与pos终端相关联的企业或其他实体处理支付交易。
非接触式支付终端102能够维护或建立与收单方主机106的数据连接,收单方主机106通常采取一个或多个计算装置的服务器系统的形式,用于处理与金融机构(例如,银行)相关联的交易,该金融机构管理与pos相关联的实体的一个或多个金融账户。非接触式支付终端102和收单方主机之间的通信通常经由租用线路进行。
发行方主机108是一个或多个计算装置的服务器系统,其被设置为处理与管理移动装置100的用户的一个或多个金融账户的金融机构(例如,银行)相关联的交易。
收单方主机106和发行方主机108均能够与支付方案网络110通信。支付方案网络110是例如可以与金融服务机构相关联的计算装置的服务器系统。
在交易系统1中,移动装置100的操作系统支持允许使用移动装置100存储的移动应用(图1中未示出)的基于云的支付交易的主机卡模拟等。交易系统1中的移动应用未存储在移动装置(例如,isim)卡内的安全元件中,因此,敏感的账户信息(例如,主账号(pan))存储在链接到移动应用的服务器中,以为敏感账户信息提供安全性。当移动装置100在线时(即,当存在互联网连接时),移动应用能够使用互联网协议使用第二通信链路114与移动应用平台112通信。移动应用平台112能够与发行方主机108通信。
如图1所示,移动应用平台112也能够与验证平台116通信。验证平台116和发行方主机108之间也存在通信链路。
虽然移动应用平台112和发行方主机108在图1中分开示出,但移动应用平台112可以由发行方主机108的一个或多个服务器托管。类似地,虽然验证平台116与发行方主机108分开示出,但验证平台116可以由发行方主机108的一个或多个服务器托管。
如将在下文中详细描述的,验证平台116经由移动应用平台112向移动装置100内的移动应用提供共享密钥的索引列表(在下文中,称为依赖方提供的挑战或rppc),其中,每个共享密钥与对应的共享密钥标识符相关联。rppc仅在验证平台116内以及在移动装置100的移动应用内是已知的。当为交易形成应用密文时,使用rppc。在交易完成之后,验证平台116将用于该交易的rppc标记为不再有效。
图2示出了根据本发明的实施例的用户装置的示例性部件,其中,用户装置包括移动电话装置。
用户装置100包括传统的计算硬件,包括处理部202、只读存储器204、随机存取存储器206以及诸如输入/输出控制器、显示控制器等(未示出)其他标准硬件。用户装置200还包括特定的移动电话硬件,包括电话天线208和sim卡210。sim卡210构成用户装置上的安全处理环境,也被称为安全元件212,并且包含额外安全措施,例如,防篡改。处理部202经由诸如系统总线214等内部通信结构可访问上述部件。这些部件的操作和交互在本领域中是公知的,因此,在此处不会进一步详细描述。
用户装置100还包括可以用于与pos终端102进行非接触式通信的短距离无线通信硬件,包括短距离无线天线216,并且可以是nfc天线。
通常,在已知的移动电话装置中迄今为止已经提供短距离无线天线的情况下,这些天线已经由sim210经由专用通信信道218(其与系统总线214分开)控制。专用通信信道218可以例如使用用于通信的单线协议。根据本发明的实施例,例如,经由系统总线214,从在安全元件212外面的区域(在下文中,称为标准应用环境220)可访问短距离无线天线。该特征目前可用,例如,在android操作系统的主机卡仿真功能中。
标准应用环境220还包括部署在装置100上的支付应用。支付应用可以在制造装置时或在发行银行的监督下安装在标准应用环境中。可替换地,支付应用可以由装置的最终用户安装。最终用户可以通过例如,经由互联网将安装文件下载到用户装置来安装应用程序。可替换地,用户可以通过首先将安装文件下载到诸如个人计算机等另一装置,然后,例如,经由usb连接,将文件侧面加载(sideloading,线刷)到用户装置,来安装该应用程序。依然可替换地,用户可以通过访问用户装置上的例如
图3示出了验证平台116的示例性部件。如图所示,验证平台116包括由总线系统308互连的网络接口302、处理器304和存储器306。存储器306存储包括rppc数据库310的数据和包括主控制例程312、供应子例程314和验证子例程316的程序代码。
rppc数据库310为每个用户装置100存储rppc代码表。每个rppc代码都与索引号、有效日期以及状态相关联,其可能是有效的或者是无效的。
供应子例程314由主控制例程312启动,以向用户装置100提供新的rppc代码。可以响应于接收用户装置100的请求,启动供应子例程314的执行。供应子例程314向用户装置100转发至少一个新的rppc码以及转发的每个rppc码的索引号和有效日期。供应子例程还将每个转发的rppc代码以及对应的索引号和有效日期存储在用于该用户装置100的rppc数据库310的表中,并将每个转发的rppc代码的状态设置为有效。
如下文将更详细讨论的,验证子例程316由主控制例程312启动,以验证从发行方主机108接收到的应用密文。在交易中使用有效的rppc之后,用于用户装置100的表中的rppc的状态被设置为无效,以便防止重新使用rppc。以这种方式,防止了可能的“重放”攻击,在“重放”攻击中,使用已经用于先前交易的rppc,准备虚假交易数据。
在交易完成之前,支付终端102必须确保呈现的用户装置100是真实的,并被授权完成交易。根据交易协议,处理支付装置的认证和交易的授权,这确保了一系列支付装置和支付终端的互操作性。
图1的交易系统1使用例如公开可用的并由emvcollc发布的支付系统的emv非接触式规范中所定义的emv
emv提供了支持动态签名生成的方法,其动态数据认证(dda)是最简单的。此外,emv提供了一种称为快速dda(fdda)的方法,该方法针对非接触式交易进行了优化,并提供了一种称为组合数据认证(cda)的方法,该方法将dda与后续的应用密文生成步骤(如下所述)结合,以便允许并行完成这两个操作。
emv通过生成应用密文来提供交易授权。根据各种emv规范中使用的选项,有几种机制可用于应用密文生成。在整个交易处理中,可以在终端验证结果(tvr)数据中记录某些检查和行为的成功或失败,例如,上面关于离线数据认证所描述的那些。
在终端行为分析期间审查tvr数据,并基于其内容,终端对应该批准离线、授权在线还是拒绝交易作出初步决定。批准离线包括终端决定可以在没有征得发行银行明确许可的情况下进行交易。在线授权包括在批准交易之前将交易详情发送给发行银行进行授权。在某些情况下,终端会在征得发行银行的授权之前拒绝交易离线。
基于终端行为代码(tac)和发行人行为代码(iac)作出终端采取适当行动的决定。tac由收单银行编入终端,并且定义应该批准离线、授权在线还是拒绝交易的情况。iac被发行银行部署到支付应用中,并且还定义了应该批准离线、授权在线还是拒绝交易的一系列情况。终端使用tac和iac来初步决定如何处理交易。
图4示出了根据emv交易协议的示例性应用密文生成命令流程图。
该流程从步骤400开始,将tvr的内容与存储在支付终端102处的tac以及从用户装置100上的支付应用检索的iac进行比较。基于该比较,支付终端100在步骤402中初步决定应该批准离线、授权在线还是拒绝交易。
根据在步骤402作出的决定的结果,终端通过向用户装置100发送generateac命令来请求生成特定类型的应用密文。如果支付终端102决定拒绝交易离线,则generateac命令在步骤404中请求应用认证密文(aac)。如果支付终端102决定尝试授权交易在线,则generateac命令在步骤406中请求授权请求密文(arqc)。如果支付终端102决定批准交易离线,则generateac命令在步骤408中请求交易证书(tc)。
响应于由支付终端102发出的generateac命令,用户装置100可以以“卡行为分析”的形式执行其自身的风险管理。基于由发行人确定并存储在用户装置100上的参数来执行卡行为分析。卡行为分析的结果只能选择与由支付终端102确定的相同的或更严格的授权方法。
如果支付终端102通过根据步骤404请求aac来拒绝交易离线,则用户装置100必须在步骤410中以aac响应。来自用户装置100的任何其他响应将导致交易处理失败。
如果支付终端102根据步骤406通过请求arqc来决定尝试发送交易在线,以供发行银行授权,则作为步骤412中的卡行为分析的结果,用户装置100可以决定在步骤414中根据请求以arqc响应,或者在步骤410中选择通过以aac响应来拒绝交易离线。来自用户装置100的包括tc的响应将导致交易处理失败。
如果支付终端102根据步骤408通过请求tc来决定允许交易离线,则作为步骤414中的卡行为分析的结果,用户装置可以决定在步骤418中根据请求以tc响应,在步骤416中选择通过以arqc响应来发送交易在线,以供发行银行授权,或者在步骤410中选择通过以aac响应来拒绝交易。
如果用户装置100以arqc响应,则在步骤420中,支付终端102尝试将其发送到发行银行,以进行授权。如果在线授权过程的结果是拒绝交易,则支付终端102通过发送第二generateac命令来在步骤422中请求aac,并且在步骤410中,由用户装置返回aac。如果在线授权过程的结果是授权交易,则支付终端102通过发送第二generateac命令来在步骤424中请求tc,并且在步骤416中,由用户装置100返回aac。
可替换地,如果在线授权过程不能完成,则终端通过发送第二generateac命令,来恢复为在tac/iac中定义的默认方法,该第二generateac命令请求由用户装置100在步骤410中返回的根据步骤422的aac或在步骤418中由用户装置100返回的在步骤424中的tc。
一旦用户装置100分别根据步骤410或418以aac或tc响应,则完成应用密文生成命令流程。
为了响应于终端发出的generateac命令,用户装置100必须产生应用密文。基于在generateac命令的数据字段中的发送给用户装置100的数据,产生应用密文。在存储在用户装置100中的卡风险管理数据对象列表(cdol)中指定要使用的数据。用户装置100存储两个cdol,一个供在给定交易中发出的第一generateac命令使用,另一个是在发出第二generateac命令的情况下使用
通过将散列算法应用于由cdol指定的数据集,以生成散列值,来生成应用密文。散列算法是一种单向数学运算,用于基于大或大小可变的数据输入来生成固定大小的结果。结果取决于整个数据输入,并且在计算上难以确定将产生给定结果的输入数据。emv建议使用在iso/iec10118-3中标准化的安全散列算法(sha-1)。
除了应用密文之外,在该实施例中,用户装置100还通过将散列算法应用于包括rppc的另一数据集以及可选地用户验证过程的结果(例如,密码或pin条目、生物测定测试或诸如fido等技术)以及可能与用户验证过程相关联的验证数据,来生成补充散列值。包括补充散列值以及用于在arqc数据中生成补充散列值的rppc对应的rppc索引。补充散列值足够小,使得补充散列值和rppc索引可以包含在传达arqc数据的emv消息内的可用空间中。
当发行方主机108接收到arqc数据时,将补充散列值和rppc索引转发给验证平台116,验证平台116从rppc索引中确定对应的rppc,检查对应的rppc对于该用户装置100是否有效,然后,使用用于在arqc数据中生成补充散列值的这组数据,来计算验证散列值,然后,将验证散列值与arqc数据中的补充散列值进行比较。如果验证散列值与补充散列值匹配,则验证平台116向发行方主机108发送指示认证用户装置100的消息。如果验证散列值与补充散列值不匹配,则验证平台116向发行方主机108发送指示未认证用户装置116的消息。无论验证散列值是否与arqc数据中的补充散列值匹配,验证平台116然后将rppc值标记为对于未来交易无效。
在使用中,通常,非接触式支付终端102被配置为启动商户的支付。例如,商户可以将交易金额手动输入到非接触式支付终端102中,或者可以通过某种其他手段(例如,通过读取产品上提供的条形码以便购买的条形码读取器)来确定到期付款的商品和/或服务的价值。为了启动非接触式支付交易,可能需要在非接触式支付终端102上选择特定选项,非接触式支付终端102可以被配置为仅接受非接触式支付,或者可以被配置为在检测到适当的非接触式用户装置100时自动执行非接触式支付交易。
一旦适当地配置非接触式支付终端102,用户(例如,零售机构处的客户)在用户装置100上执行用户验证过程,然后,使非接触式用户装置100接近非接触式支付终端102。例如,这造成非接触式支付终端102向非接触式用户装置100发送请求,以提供用于进行支付交易的数据。作为响应,用户装置100检索并且将所请求的数据发送到非接触式支付终端102。所提供的数据可以包括识别支付交易中将从中提取资金的支付账户的数据,例如,与非接触式支付装置100相关联的发行人的pan和标识符。由用户装置100发送的消息可以是受保护的形式。例如,可以包括密文,例如,符合emv的授权请求密文(arqc)。
在接收到消息时,非接触式支付终端102基于例如arqc的存在来确定要从发行方主机108获得授权信息。非接触式支付终端102然后向收单方主机106发送授权请求消息,该消息包括从非接触式支付装置100接收到的信息。该消息还可以包括交易标识符,以识别交易,非接触式支付终端102在该消息中包括该标识符。该消息还可以包括由非接触式支付终端102添加的其他数据,例如,交易的价值。
在接收到消息时,收单方主机106将其转发给支付方案网络110。在本实施例中,支付方案网络110(例如,基于包含在消息中的发行方的指示符)将消息路由到发行方主机108。发行方主机108接收授权请求消息,在适当的情况下,使用验证平台116对其进行加密验证,并执行确定是否授权非接触式支付交易的确定过程。然后,发行方主机108在包括关于是否授权交易的指示符的消息中,经由支付方案网络110向收单方主机106返回确定结果。也可以包括与非接触式支付终端102提供的交易标识符相同或对应的交易标识符,如上所述。
由发行方主机108发送的消息经由支付方案网络110和收单方主机106路由到非接触式支付终端102。在接收到消息时,支付终端102基于消息的内容识别验证的结果,并且可以例如在非接触式支付终端102的显示屏幕上指示该结果。如果未授权非接触式支付交易,则可以向用户呈现用于完成交易的进一步选项。
尽管已经在非接触式支付交易的情况下描述了上述系统和方法,但是可以使用其他类型的支付交易。例如,上述支付授权方法可以用于支付,其中,使诸如借记卡或信用卡等金融工具与支付终端接触,例如,通过在支付终端的读卡器上刷卡上的磁条或将包括芯片的卡插入支付终端上的读取器内。此外,上面应用的系统和方法可以用于支付交易以外的交易。例如,上述系统和方法可以用于电子访问系统中,其中,终端装置(类似于锁)在提供访问之前认证用户装置(类似于钥匙)。这种电子访问系统可以提供对数据的访问。可替换地,这种电子访问系统可以用于打开保险箱或房间等的门。
如前所述,使用如上所述的具有rppc形式的共享密钥,可以防止重放攻击。另外,如果用于计算arqc中的散列值的数据组包括某些交易特定数据,则可以在很大程度上击败重放攻击。
上述各种存储器可以采取任何合适的数据存储器的形式,包括随机存取存储器(ram)和/或只读存储器(rom)数据存储器。各种处理器可以采取半导体芯片的形式,例如,中央处理单元(cpu)。
应该理解的是,关于任何一个实施例描述的任何特征可以单独使用,或者与所描述的其他特征组合使用,并且还可以与任何其他实施例的一个或多个特征或者任何其他实施例的任何组合的组合使用。此外,在不脱离由所附权利要求限定的本发明的范围的情况下,也可以采用上面未描述的等同物和修改。权利要求的特征可以以与权利要求中指定的组合不同的组合来组合。