用于设备推送供应的系统和方法
文献发布时间:2023-06-19 11:35:49
本发明申请是国际申请号为PCT/US2017/012767,国际申请日为2017年1月9日,进入中国国家阶段的申请号为201780005545.3,名称为“用于设备推送供应的系统和方法”的发明专利申请的分案申请。
背景技术
可以向通信设备供应访问数据以允许通信设备的用户获得对资源的访问。例如,与资源提供商相关联的远程服务器可以传送要加载到通信设备上的必要访问数据。在一些情况下,通信设备可以在设备上安装有允许用户访问资源的多个应用程序。例如,通信设备可以具有多个电子邮件应用程序,每个电子邮件应用程序都可以用于访问特定的电子邮件账户。作为另一个实例,通信设备可以具有多个交易应用程序,每个交易应用程序都可以用于使用特定账户进行交易。
为了向每个应用程序供应访问数据,用户可能必须手动将账户标识信息输入到每个单独的应用程序中以标识用户的与资源提供商相关联的账户。另外,每个应用程序都可能需要单独的认证过程来供应访问数据。这是一个繁琐的过程,会给用户体验带来不必要的摩擦。
一些常规系统可以允许一个应用程序请求将供应给另一个应用程序的访问数据。例如,第一应用程序可以向与资源提供商相关联的远程服务器请求认证码,并将认证码提供给安装在通信设备上的第二应用程序。此后,第二应用程序可以将认证码发送到远程服务器以请求访问数据。然而,这样的系统可能具有安全风险,因为从远程服务器传送到通信设备的访问数据可能容易被未授权方拦截。如果未授权方拥有该访问数据,则未经用户许可,未经授权方就可以使用该访问数据来访问资源。
本发明的实施方案单独地或共同地解决了这些和其他问题。
发明内容
本发明的实施方案可以包括提供用于将访问数据从第一应用程序供应给安装在通信设备上的第二应用程序的技术的系统和方法。
本发明的一些实施方案涉及推送供应方法。该方法可以包括:由安装在通信设备上的第一应用程序在用户向第一应用程序成功认证之后接收用户输入,该用户输入选择要供应给安装在通信设备上的第二应用程序的账户。该方法还可以包括:响应于接收到对要供应的账户的选择,由第一应用程序调用第二应用程序,并且该方法还可以包括向第二应用程序另外发送会话标识符(ID)。第一应用程序可以使用会话ID来准确地跟踪由第二应用程序发送的数据,并将该数据与在第一应用程序中认证的用户相关联。
该方法可以进一步包括由第二应用程序向第一应用程序发送与第二应用程序相关联的用户ID、设备ID和会话ID。该方法可以另外包括由第一应用程序生成加密的供应请求数据,该加密的供应请求数据包括要供应的账户的账户ID、用户ID和由第二应用程序提供的设备ID。该方法可以进一步包括由第一应用程序将加密的供应请求数据发送到第二应用程序。该方法还可以包括由第二应用程序将加密的供应请求数据连同在第二应用程序中与用户相关联的用户ID和设备ID一起发送到远程服务器计算机。远程服务器计算机可利用第二应用程序(请求者)的用户ID、设备ID和账户ID来对照由第一应用程序提供的包括在请求的加密部分内的用户ID、设备ID和账户ID进行验证,从而确保数据的端到端交换是安全的,并且数据只能由指定的用户访问。该方法可以进一步包括由第二应用程序接收由远程服务器计算机基于对加密的供应请求数据的验证而提供的访问数据。该方法还可以包括由第二应用程序将访问数据供应到第二应用程序上。
本发明的一些实施方案涉及被配置成执行上述方法的通信设备。
本发明的这些和其他实施方案将在下文更详细地描述。
附图说明
图1示出了根据本发明的一些实施方案的系统的框图。
图2示出了根据本发明的一些实施方案的通信设备的框图。
图3示出了根据本发明的一些实施方案的远程服务器计算机的框图。
图4展示了根据本发明的一些实施方案的过程流的流程图。
图5展示了根据本发明的一些实施方案的过程流的流程图。
图6展示了根据本发明的一些实施方案的建筑物访问系统的框图。
图7展示了根据本发明的一些实施方案的交易处理系统的框图。
图8展示了根据本发明的一些实施方案的计算系统的框图。
具体实施方式
本发明的实施方案可以包括提供用于将访问数据从第一应用程序供应给安装在通信设备上的第二应用程序的技术的系统和方法。这些系统和方法可以通过允许驻留在通信设备上的一个或多个应用程序安全地将访问数据推送到驻留在通信设备上的一个或多个其他应用程序,来为供应过程中涉及到的用户和参与方提供改善的体验。在一些实施方案中,可以利用用于认证一个应用程序(例如,第一应用程序)的用户的标识和验证(ID&V)过程来将访问数据供应给另一应用程序(例如,第二应用程序),使得用户可以避免在驻留在移动设备上的每个单独应用程序中输入访问数据供应所需的信息。如此,可以避免用于认证用户的附加的加强过程,从而减少用户体验中的不顺畅。在一些实施方案中,正在供应的访问数据可以被绑定到通信设备,使得访问数据无法与另一通信设备一起使用。换句话说,一旦该访问数据被供应给特定通信设备,从不同通信设备使用该访问数据来获得对与该访问数据相关联的资源的访问的任何尝试都将被拒绝。
在讨论本发明的实施方案之前,描述一些术语可能有助于理解本发明的实施方案。
“通信设备”可以是可由用户操作以与另一设备进行通信的任何电子设备。通信设备也可以提供与网络的远程通信能力。远程通信能力的实例包括使用移动(蜂窝)网络、无线数据网络(例如,3G、4G或类似网络)、Wi-Fi、Wi-Max或可以提供对诸如互联网或专用网络之类的网络的访问的任何其他无线或有线通信介质。通信设备的实例包括移动电话(例如,蜂窝电话)、PDA、平板计算机、上网本、膝上型计算机、个人音乐播放器、手持式专用阅读器、可穿戴设备(例如手表)、车辆(例如,汽车)、智能家电或其他联网设备等等。通信设备可以包括用于执行此类功能的任何合适的硬件和软件,并且还可以包括多个设备或部件(例如,当设备通过系固到另一个设备(即,使用其他设备作为中继器)而远程访问网络时,合在一起的两个设备可以被认为是单个通信设备)。
“认证数据”可以包括适合于认证用户或通信设备的任何数据。认证数据可以从用户或由用户操作的通信设备获得。从用户获得的认证数据的实例可以包括PIN(个人标识号)、用户名/密码、生物特征数据等。可以从通信设备获得的认证数据的实例可以包括设备序列号、硬件安全元件标识符、设备指纹、电话号码、IMEI号等。
“远程服务器计算机”可以包括可通过网络访问的功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以耦合到数据库并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其他逻辑、或前述内容的组合。服务器计算机可以包括一个或多个计算装置并且可以使用各种计算结构、排列和编译中的任何一种来服务于来自一个或多个通信设备的请求。在一些实施方案中,远程服务器计算机可以由诸如服务提供商(例如,web服务提供商)、中转或建筑物运营商、票务运营商、支付处理网络或组织之类的资源提供商运营或与这些资源提供商相关联。
“访问数据”可以包括任何合适的数据,该数据可以用于访问资源或创建可以访问资源的数据。在一些实施方案中,访问数据可以包括可用于访问资源的凭证(例如,PIN、用户名/密码、通行码等)或账户信息。例如,访问数据可以是用于访问web服务的登录信息。作为另一个实例,访问数据可以是支付账户的账户信息。账户信息可以包括账户标识符,诸如主账号(PAN)、验证值(例如,CVV、CVV2、dCVV、dCVV2)或可用于验证账户的其他账户数据。在一些实施方案中,访问数据可以是可用于激活账户数据的数据。例如,在一些情况下,账户信息可以存储在通信设备上,但是可以未被激活,直到由通信设备接收到特定信息。在一些实施方案中,该特定信息可被表征为访问信息。在一些实施方案中,访问数据可以包括可用于访问受限位置的数据。此类信息可以是例如事件的票据信息、用于访问建筑物的数据、中转票据信息等。在一些实施方案中,访问数据可以是伪凭证或伪账户信息,诸如可用作真实凭证或真实账户标识符的替代物的令牌。与可以用于从任何设备访问资源的真实凭证或真实账户标识符相比,以伪凭证或伪账户信息的形式存在的访问数据可以被绑定到特定通信设备,使得访问数据只能用于从所述特定通信设备访问资源。
“令牌”可以包括某种信息的替代标识符。例如,交易令牌可以包括交易账户的标识符,所述标识符是账户标识符(诸如,主账号(PAN))的替代物。例如,令牌可以包括可以用作原始账户标识符的替代的一连串字母数字字符。例如,令牌“4900 0000 0000 0001”可以用于代替PAN“4147 0900 0000 1234”。在一些实施方案中,令牌可以是“保留格式的”,并且可以具有与现有交易处理网络中使用的账户标识符相符的数字格式(例如,ISO 8583金融交易消息格式)。在一些实施方案中,可以使用令牌以代替PAN来发起、授权、结算或解决交易。在通常提供原始凭证的其他系统中,令牌还可以用来表示原始凭证。在一些实施方案中,可以将令牌值生成为使得不可以通过计算方式由所述令牌值恢复原始PAN或者其他账户标识符。另外,在一些实施方案中,令牌格式可以被配置成使接收令牌的实体将其标识为令牌,并识别发行令牌的实体。
“应用程序”可以是可从通信设备执行的用于执行一个或多个任务的计算机程序。在一些实施方案中,执行任务可涉及使用访问数据来访问资源。应用程序的实例可以包括访问互联网的浏览器应用程序、访问电子邮件账户的电子邮件应用程序、访问限制区域的中转应用程序、访问支付或银行账户以进行交易的交易应用程序等等。
“数字钱包”应用程序可以是存储可用于各种交易的信息的应用程序。例如,数字钱包应用程序可以存储用户简档信息、支付信息(例如PAN或主账号、支付令牌(即,PAN替代品)、诸如CVV等的验证值)、银行账户信息和/或类似者,并且可以用于各种交易中,例如但不限于用于零售购买的电子商务、社交网络、转账/个人付款、移动商务、近距离支付、游戏和/或类似者,数字商品购买、公用事业支付、从游戏网站购买游戏或游戏积分、在用户之间转移资金等等。
“时间戳”可以包括与任何合适的时间有关的数据。例如,时间戳可以是时间、日期、月份、年份或它们的任何合适的组合。时间戳元也可以从时间、日期、月份、年份或它们的任何合适的组合派生。加密的时间戳元可以是可以包括加密的时间、日期、月份、年份和/或它们的合适组合的数据元。
“访问设备”可以是用于获得对资源的访问的任何合适的设备。访问设备通常可以位于任何合适的位置,诸如在受限区域入口处或在商家的位置。访问设备可以具有任何适当形式。访问设备的一些实例包括POS设备、蜂窝电话、PDA、个体计算机(PC)、平板电脑、手持专用读取器、机顶盒、电子现金出纳机(ECR)、自动取款机(ATM)、虚拟现金出纳机(VCR)、营业亭、安全系统、访问系统、网站等。访问设备可以使用任何合适的接触或非接触式操作模式来从支付设备和/或用户通信设备发送或接收数据,或者与支付设备和/或与用户通信设备相关联。
“发行方”通常可以指代维护与通信设备相关联的用户的账户的商业实体(例如,银行),诸如,在安装于便携式通信设备上的移动应用程序中注册的账户。发行方还可以将与账户相关联的账户参数发给通信设备。发行方可以与主机系统相关联,所述主机系统代表发行方来执行发行方的一些或全部功能。
“授权请求消息”可以是发送到支付处理网络和/或支付卡的发行方以请求交易授权的电子消息。根据一些实施方案的授权请求消息可以符合ISO 8583,其是用于交换与由消费者使用支付设备或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可以包括可以与支付设备或支付账户相关联的发行方账户标识符。授权请求消息还可以包括对应于“标识信息”的附加数据元素,包括(只作为例子):服务代码、CVV(卡验证值)、dCVV(动态卡验证值)、有效日期等。授权请求消息还可以包括“交易信息”,例如与当前交易相关联的任何信息,诸如交易金额、商家标识符、商家位置等,以及可以用于确定是否标识和/或授权交易的任何其他信息。
“授权响应消息”可以是由发行金融机构或支付处理网络生成的对授权请求消息的电子消息应答。授权响应消息可以包括(只作为实例)以下状态指示符中的一个或多个:批准-交易被批准;拒绝-交易不被批准;或呼叫中心-响应未决的更多信息,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,其可以是信用卡发行银行响应于电子消息中的授权请求消息(直接地或者通过支付处理网络)返回商家的访问设备(例如POS设备)的指示交易被批准的代码。代码可以用作授权的证据。如上所述,在一些实施方案中,支付处理网络可以向商家生成或转发授权响应消息。
“处理器”可以指任何一个或多个适当的数据计算设备。处理器可以包括一个或多个微处理器一起工作以实现期望的功能。处理器可以包括CPU,该CPU包括足以执行用于执行用户和/或系统生成的请求的程序部件的至少一个高速数据处理器。CPU可能是AMD的Athlon,Duron和/或Opteron等微处理器;IBM和/或摩托罗拉的PowerPC;IBM和Sony的Cell处理器;英特尔的赛扬,安腾,奔腾,至强和/或XScale;和/或类似处理器。
“存储器”可以是可以存储电子数据的任何合适的一个或多个设备。合适的存储器可以包括计算机可读介质,其存储可由处理器执行以实现期望方法的指令。存储器的例子可以包括一个或多个存储器芯片、磁盘驱动器等。这样的存储器可以使用任何合适的电、光和/或磁操作模式来操作。
“密钥”可以指代用在密码算法中以将输入数据变换成另一表示的一条信息。密码算法可以是将原始数据变换成备选表示的加密算法,或者是将加密信息变换回到原始数据的解密算法。密码算法的实例可以包括三重数据加密标准(TOES)、数据加密标准(DES)、高级加密标准(AES)等。
图1示出了根据本发明的一些实施方案的系统的框图。图1示出了与远程服务器计算机130进行通信的通信设备110。通信设备110可以存储第一应用程序112和第二应用程序114。
远程服务器计算机130可以由资源提供商操作或者与资源提供商相关联,并且可以被配置为向通信设备110供应访问数据。远程服务器计算机可以包括处理器和包含代码的计算机可读介质,该代码使得处理器执行与向通信设备110供应访问数据相关联的任何合适的方法。它还可以维护被供应有访问数据的各种通信设备的访问数据和设备标识符(例如,IP或互联网协议地址、序列号、IMEI号码或电话号码等)的数据库。在一些实施方案中,远程服务器计算机130可以向第一应用程序112供应访问数据。向第一应用程序112供应可能要求用户手动输入用于供应过程的凭证(例如,与通信设备110的用户相关联的账户信息)。一旦被供应了访问数据,第一应用程序112就可以将访问数据提供给访问设备140以获得对资源的访问。访问设备140可以将访问数据转发到远程服务器计算机130以进行验证。在一些实施方案中,访问设备140可以是远程服务器计算机130的一部分(例如,如果被访问的资源是由远程服务器计算机130提供的基于web的服务)。
根据本文所描述的技术,第一应用程序112可以用于将访问数据推送到安装在通信设备110上的第二应用程序114。在一些实施方案中,供应第二应用程序114可以在不需要用户重新输入用于供应过程的账户信息的情况下完成,因为在向第一应用程序112供应期间用户和用户的账户已经被远程服务器计算机130验证。一旦被供应有访问数据,第二应用程序114就可以独立于第一应用程序112将访问数据提供给访问设备140以获得对资源的访问。
图1中的每个实体可以通过任何合适的通信信道或通信网络进行通信。合适的通信网络可以是以下的任一种和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网节点的运营任务(OMNI);安全的定制连接;广域网(WAN);无线网络(例如,使用诸如但不限于无线应用协议(WAP),I模式等的协议)等);和/或类似物。
图2展示了根据一些实施方案的通信设备201的框图。通信设备201可以包括耦合到存储器202的设备硬件204。设备硬件204可以包括处理器205、通信子系统209、用户接口206、显示屏207(其可以是用户接口206的一部分),以及可选的非接触式接口208(例如,如果通信设备201是便携式通信设备或具有无线通信功能)。处理器205可以被实现为一个或多个集成电路(例如,一个或多个单核或多核微处理器和/或微控制器),并且被用于控制通信设备201的操作。处理器205可以响应于存储在存储器202中的程序代码或计算机可读代码执行各种程序,并且可以维护多个同时执行的程序或进程。通信子系统209可以包括一个或多个RF收发器和/或连接器,其可由通信设备201使用以便其他设备进行通信和/或与外部网络连接。用户接口206可以包括输入元件和输出元件的任何组合,以便允许用户与通信设备201交互并且调用该通信设备的功能。在一些实施方案中,显示屏207可以是用户接口206的一部分。
非接触式接口208可以包括一个或多个RF收发器,以与访问设备的非接触式阅读器进行交互以访问资源(例如,进入受限区域、进行交易等)。在一些实施方案中,非接触式接口208可由应用程序环境210或操作系统220中的应用程序访问以与访问设备进行通信。在一些实施方案中,显示器207也可以是非接触式接口208的一部分,并且例如用于使用QR码、条形码或其他光通信技术等来进行通信。
存储器202可以是使用各种非易失性存储器(例如,闪速存储器)和易失性存储器(例如,DRAM、SRAM)的任何组合来实现的非暂时性计算机可读存储介质,或任何其他计算机可读存储介质、或其组合介质。存储器202可以存储OS 220、以及要由处理器205执行的一个或多个应用程序(例如,应用程序212和214)驻留在其中的应用程序环境210。
根据一些实施方案,第一应用程序212可以是与资源提供商关联和/或由资源提供商提供的应用程序,并且第一应用程序212用于访问由所述资源提供商提供的资源。例如,第一应用程序212可以是用于访问由中转或建筑物运营商提供的受限区域的中转应用程序、用于使用由发行方发行的账户进行交易的发行方应用程序或用于访问由基于web的服务提供商提供的基于web的服务(例如电子邮件、照片分享、社交媒体等)的web服务应用程序。当通信设备201的用户安装第一应用程序212时,用户可以启动向远程服务器计算机的注册过程,以向第一应用程序212供应用于访问与资源提供商相关联的资源的访问数据234。可以请求用户手动输入诸如真实账户标识符之类的账户信息以获得访问数据234。在一些实施方案中,所供应的访问数据234可以用作真实账户标识符的替代物以获得对资源的访问。例如,第一应用程序212可以将伪凭证或伪账户标识符(例如令牌)形式的所供应的访问数据234提供给访问设备以获得对资源的访问。
在一些实施方案中,第一应用程序212可以包括用于认证使用第一应用程序212的用户的认证模块238。例如,每当用户尝试使用第一应用程序212时,认证模块238都可以请求用户输入PIN或其他用户标识信息以认证用户。认证模块238可以在通信设备201本地对用户进行认证,或者将用户标识信息发送到远程服务器计算机,以根据资源提供商的标识和验证(ID&V)要求对用户进行认证。
第一应用程序212还可以包括用于加密由第一应用程序236提供的敏感数据的加密模块236。例如,在安装或注册期间,第一应用程序212可以被提供有仅为第一应用程序212和远程服务器计算机所知的共享密钥或共享秘密。然后,第一应用程序212可以使用共享密钥或从共享密钥或共享秘密派生的派生密钥来加密旨在用于远程服务器计算机的通信。然后,远程服务器计算机可以使用共享密钥或从共享密钥或共享秘密派生的派生密钥来解密通信,以验证该通信源自第一应用程序212。在一些实施方案中,加密模块236可以是OS 220的一部分,并且第一应用程序212可以通过调用由OS 220提供的加密服务来加密数据。
在一些实施方案中,第一应用程序212可以加密将访问数据推送到另一个应用程序的供应请求中使用的数据(例如,PAN)。可以使用JavaScript对象表示法(JSON)技术(如JSON Web加密(JWE))或使用任何其他合适的加密技术来进行加密。JWE技术可以使用共享密钥或共享秘密来加密数据。在一些实施方案中,可以使用紧凑的序列化风格(例如,由“.”分隔的元素)。所有字段都可以是base 64和URL Safe编码的。也可以使用256位内容加密密钥(CEK)。在一些实施方案中,可以使用AES加密算法诸如用于加密CEK的AES-GCM-256KW算法,和96位初始化矢量(IV)。还可以生成认证标签(例如,128位)作为AES-GCM-256加密的附加输出。可以使用UTF-8字符集来执行字符串到字节的转换,以及相反的转换。
通信设备201还可以包括用于访问第一应用程序212可访问的相同资源的第二应用程序214。第二应用程序214可以是由不同于资源提供商的实体提供的第三方应用程序。在一些实施方案中,第二应用程序214可以是多运营商中转应用程序,其可以用于访问与多个中转或建筑物运营商相关联的各种受限区域;数字钱包应用程序,其可用于使用由多个发行方发行的各种账户来进行交易;或者多功能web服务应用程序,其可用于访问由多个基于web的服务提供商提供的各种基于web的服务(例如,可访问用户的多个电子邮件账户的数字助理应用程序、可访问用户的多个社交媒体账户的社交媒体应用程序等)。
根据一些实施方案,第一应用程序212可以用于将用于访问资源的访问数据供应给第二应用程序214。例如,第一应用程序212可以用于生成加密的供应请求数据,该数据被发送到远程服务器计算机以为第二应用程序214请求访问数据。供应请求数据可以基于仅为第一应用程序和远程服务器计算机所知的共享密钥或共享秘密来加密。由于第一应用程序212是由资源提供商提供的,因此,第一应用程序212可被远程服务器计算机认为是可信应用程序。如果远程服务器计算机能够正确地解密供应请求数据,并由此验证供应请求数据是由可信第一应用程序212生成的,则远程服务器可以生成用于供应给第二应用程序214的访问数据。供应给第一应用程序212和第二应用程序214两者的访问数据都可以链接到用户的同一账户,从而允许任一应用程序使用同一账户来访问资源。
在一些实施方案中,虽然供应给第二应用程序214的访问数据链接到同一账户,但供应给第二应用程序214的访问数据可以与供应给第一应用程序212的访问数据相同或不同。例如,第一应用程序212可以被供应有真实凭证,而第二应用程序214可以被供应有伪凭证或伪账户信息(例如,代替真实账户标识符的令牌)。作为另一个实例,第一应用程序212和第二应用程序214两者都可以被供应有相同的伪凭证或伪账户信息。作为另一个实例,第一应用程序212可以被供应有第一伪凭证或第一伪账户信息,而第二应用程序可以被供应有第二伪凭证或第二伪账户信息,该第二伪凭证或第二伪账户信息被链接到同一个账户。在后一种情况下,供应给特定应用程序的访问数据可以绑定到该特定应用程序,以便供应给一个应用程序的访问数据不能从另一个应用程序使用。在一些实施方案中,正在供应的访问数据也可以被绑定到通信设备,使得访问数据不能与另一通信设备一起使用。
图3示出了根据本发明的一些实施方案的远程服务器计算机300的框图。远程服务器计算机300可以由提供可从通信设备访问的资源的资源提供商运营或与该资源提供商相关联。例如,远程服务器计算机300可以与web服务提供商、中转或建筑物运营商、发行方、支付处理网络或组织等相关联。在一些实施方案中,远程服务计算机可以提供和/或支持安装在通信设备上的用于访问与远程服务器计算机300相关联的资源的应用程序(例如,第一应用程序112或212)。远程服务器计算机300可以包括处理器310,该处理器可以耦合到系统存储器320和外部通信接口330。计算机可读介质340也可以可操作地耦合到处理器310。计算机可读介质340可以包括多个软件模块,这些软件模块包括通信模块342、密码模块346、验证模块348以及访问数据生成模块344。
通信模块342可以包括代码,其使处理器310生成消息、转发消息、重新格式化消息和/或以其他方式与其他实体进行通信。例如,通信模块342可以用于促进远程服务器计算机300与由用户操作的通信设备之间的通信。通信模块342还可以促进与访问数据数据库350(或者与能对访问数据数据库350进行访问的单独计算机)的通信,以查找访问数据信息,或将由远程服务器计算机300生成的访问数据写入访问数据数据库350中。
密码模块346可以包括用于加密或解密数据的任何合适的加密/解密算法。例如,密码模块346可以解密从通信设备接收到的经加密的有效负载。经加密的有效负载可以包括由安装在通信设备上的应用程序生成的经加密的供应请求数据。合适的数据加密算法可以包括DES、三重DES和AES等。密码模块346可以利用对称或非对称加密技术来加密/解密和/或验证数据。它还可以存储加密密钥,这些加密密钥可以与此类加密算法一起使用。例如,可以在安装在通信设备上的应用程序与远程服务器计算机300之间建立共享密钥或共享秘密,并且可以使用共享密钥或共享秘密或从共享信息派生的密钥,来解密源自应用程序的加密通信。
验证模块348可以包括使处理器310验证来自用户的通信设备的数据的代码。例如,在向通信设备供应访问数据期间,验证模块348可以验证在供应请求中提供的账户信息。这可能涉及验证账户信息是否对应于有效账户。验证模块348还可以执行ID&V过程以验证通信设备的用户。例如,验证模块348可以验证从用户请求的PIN或其他用户标识信息以认证用户。如果信息通过了验证,则验证模块348可以请求访问数据生成模块344生成用于供应给通信设备的访问数据。
在一些实施方案中,验证模块348还可以在通信设备正试图访问与服务提供商相关联的资源时,用于验证由通信设备提供的访问数据。例如,通信设备可以将先前在通信设备上供应的访问数据提供给访问设备,而该访问设备可以将访问数据(例如,在授权请求消息中)转发到远程服务器计算机300。在接收到访问数据时,验证模块348可以查询访问数据数据库350以确定所接收到的访问数据是否有效。在一些实施方案中,如果访问数据被绑定到通信设备,则验证模块也可以验证访问数据是由对应的通信设备提供的。如果所接收到的访问数据是伪凭证或伪账户信息的形式,则如果需要这种信息来授权对资源的访问,则验证模块344还可以从访问数据数据库350检索真实凭证或真实账户信息。
访问数据生成模块344可以包括用于实现算法的代码,该算法用于生成供应给通信设备的应用程序的访问数据。访问数据生成模块344可以由验证模块348启动,以在验证供应请求数据时生成访问数据。在一些实施方案中,如果所供应的访问数据是伪凭证或伪账户信息(例如令牌)的形式,则访问数据可以随机生成或基于真实凭证或账户信息生成。在一些实施方案中,可以通过从特定账户的预定义访问数据的列表中选择访问数据来生成访问数据。如果基于真实凭证或账户信息生成访问数据,则可以通过使用与供应请求相关联的数据(例如与请求相关联的会话ID、正在请求访问数据的通信设备的设备ID、正在请求或正在被供应访问数据的应用程序的应用程序ID、或与通信设备的用户相关联的用户ID等、或其任何组合)对凭证或账户信息进行加密来生成访问数据。例如,可以使用来自供应请求的一段数据或多段数据的组合来生成加密密钥,该加密密钥用于加密真实凭证或真实账户信息以生成访问数据。在一些实施方案中,并非依赖于加密,而是可以通过对真实凭证或真实账户信息执行一个或多个数学运算来生成访问数据。在一些实施方案中,数学运算可以使用供应请求数据的任意组合作为操作数(例如,将设备ID添加到真实账户信息等)。访问数据还可以通过将真实凭证或账户信息的不同部分与供应请求数据的任何组合的某些部分进行组合(例如,来自各个数据段的不同数字或字符的串联)来生成。在一些实施方案中,访问数据生成模块344生成的访问数据可被写入访问数据数据库350中。
访问数据数据库350可以耦合到远程服务器计算机300,或者可以由远程服务器计算机300经由单独的计算机进行访问。访问数据数据库350可以存储由远程服务器计算机300生成的访问数据,并将该访问数据与以下信息相关联,该信息是在接收到访问数据以请求访问资源时对访问数据进行验证可能需要的。例如,访问数据数据库350可以将访问数据连同访问数据替代的真实凭证或真实账户信息一起存储。在一些实施方案中,如果访问数据被绑定到特定通信设备和/或特定应用程序,则可以将访问数据与作为供应请求数据的一部分接收到的通信设备的设备ID或应用程序的应用程序ID一起存储。这样,当接收到访问数据时,可以查询访问数据数据库350以检索设备ID和/或应用程序ID,从而验证访问数据正在与被供应有所述访问数据的正确的通信设备和/或应用程序一起使用。
图4展示了根据本发明的一些实施方案的过程流的流程图。在图4所示的过程流中,安装在通信设备上的第一应用程序412可以将用于供应的访问数据推送到安装在通信设备上的第二应用程序414。在一些实施方案中,第一应用程序412可以是由资源提供商提供的应用程序,诸如web服务应用程序,其用于访问由基于web的服务提供商提供的诸如电子邮件、照片共享、社交媒体等基于web的服务;中转应用程序,其用于访问由中转或建筑物运营商提供的受限区域;发行方应用程序,其用于使用由发行方发行的账户进行交易,等等。在一些实施方案中,第二应用程序414是可以用来访问第一应用程序412可访问的相同资源,并且可以是由第三方提供的应用程序。例如,第二应用程序414可以是多功能web服务应用程序,其可以用于访问由多个基于web的服务提供商提供的各种基于web的服务(例如,可以访问用户的多个电子邮件账户的数字助理应用程序、可访问用户的多个社交媒体账户的社交媒体应用程序等);多运营商中转应用程序,其可用于访问与多个中转或建筑物运营商相关联的各种受限区域;数字钱包应用程序,其可用于使用多个发行方发行的各种账户进行交易,等等。
在步骤S402中,通信设备的用户410可以与驻留在通信设备上的第一应用程序412交互,以启动将访问数据供应给第二应用程序414的过程。第一应用程序412可以是用户先前已经使用过的用户410已经熟悉的应用程序,并且在初始注册过程期间可能已经给第一应用程序412供应了用于访问与第一应用程序412相关联的资源的访问数据。如果用户410尚未登录到第一应用程序412,则可以请求用户410输入诸如PIN或密码之类的登录信息以认证用户。一旦用户成功登录第一应用程序412,就可以认为用户通过了认证,因为用户在第一应用程序412的初始注册过程期间已经经历了ID&V过程。然后,用户410可以在通信设备的用户界面上选择第一应用程序412的推送供应功能。第一应用程序412可以呈现第一应用程序412可以向其供应访问数据的其他应用程序的列表。其他应用程序可以包括第二应用程序414。然后,用户410可以从由第一应用程序412呈现的应用程序的列表中选择第二应用程序414。
在步骤S404中,在用户410选择用于供应的第二应用程序414之后,第一应用程序412可以调用并启动第二应用程序414。第一应用程序412可将标识当前供应会话的会话标识符(ID)发送到第二应用程序414。会话ID可以是短暂的唯一标识符(例如,随机数、计数器值等),并且可以与用户的跟第一应用程序412相关联的账户唯一地关联。在一些实施方案中,会话ID由第一应用程序412生成或可由远程服务器计算机430提供给第一应用程序412。第一应用程序412可以使用会话ID来跟踪由第二应用程序414发送的数据,并将该数据与在第一应用程序412中认证的用户相关联。
在步骤S406中,如果用户还没有登录,则第二应用程序414可以请求用户410输入登录信息,例如与第二应用程序414相关联的用户ID。在一些实施方案中,第二应用程序414的登录请求可以是在第一应用程序412仍然打开时可能出现的“弹窗”的形式。在一些实施方案中,第二应用程序414可临时出现在通信设备的显示器上以接受用户的登录信息,然后,可将用户返回到第一应用程序412。在步骤S408中,用户410可以输入诸如与第二应用程序414相关联的用户ID之类的登录信息,以登录到第二应用程序414。在步骤S410中,将登录信息提供给第二应用程序414。
在步骤S412中,如果用户成功登录到第二应用程序414,则第二应用程序414可以将与第二应用程序414关联的用户的用户ID、标识通信设备的设备ID以及会话ID发送到第一应用程序412。用户ID可以标识在步骤S408中登录到第二应用程序414的用户410。设备ID可以是与通信设备410相关联的唯一设备ID。在一些实施方案中,设备ID可以唯一地标识第二应用程序414在通信设备410上的特定安装。会话ID可以是在步骤S404中第二应用程序414从第一应用程序412接收到的会话ID。在一些实施方案中,第二应用程序414还可以向第一应用程序412发送唯一地标识第二应用程序414的应用程序ID。
在第二应用程序向第一应用程序412发送用户ID、设备ID和会话ID之后,第一应用程序可以通过加密供应请求数据来生成经加密的供应请求。正在被加密的供应请求数据可以包括账户的账户ID(例如,PAN),正在向第二应用程序414供应针对该账户的访问数据。由于用于访问资源的账户先前已经被供应给第一应用程序412,所以账户ID对第一应用程序412可用。正在被加密的供应请求数据还可以包括由第一应用程序412从第二应用程序414接收到的用户ID和设备ID。在一些实施方案中,正在被加密的供应请求数据还可以包括第二应用程序414的会话ID和/或应用程序ID。经加密的供应请求数据还可以包括指示经加密的供应请求是何时生成的时间戳。
在步骤S414中,在第一应用程序412生成经加密的供应请求之后,第一应用程序412可以将包括经加密的供应请求数据的经加密的供应请求发送到第二应用程序414。在一些实施方案中,第一应用程序412还可以向第二应用程序414提供第一应用程序412的未加密应用程序ID。在一些实施方案中,第一应用程序412还可以提供指示用户是否已经被第一应用程序412认证的认证指示符。
在步骤S416中,在第一应用程序412向第二应用程序414提供经加密的供应请求之后,第二应用程序414可以将经加密的供应请求发送到远程服务器计算机430以验证供应请求。在一些实施方案中,第二应用程序414可以将第一应用程序412的未加密的应用程序ID连同经加密的供应请求一起发送到远程服务器计算机430,使得远程服务器计算机430可以检索适当的密钥或共享秘密来解密经加密的供应请求。在一些实施方案中,第二应用程序414还可以将认证指示发送到远程服务器计算机430。第二应用程序414可以经由注册应用程序编程接口(API)将经加密的供应请求发送到远程服务器计算机430。
在接收到经加密的供应请求时,远程服务器计算机430可以验证和/或证实经加密的供应请求中的数据。远程服务器计算机430可以使用远程服务器计算机430和第一应用程序412所知的共享密钥或共享秘密,对经加密的供应请求进行解密,以访问经加密的供应请求内的数据元(例如,账户ID、用户ID、设备ID、会话ID、时间戳、应用程序ID等中的任何一个或多个)。如果远程服务器计算机430能够正确解密供应请求,则远程服务器计算机430能够验证经加密的供应请求是由第一应用程序412生成的。如果远程服务器计算机430验证经加密的供应请求是由第一应用程序412生成的,则远程服务器计算机430可继续验证过程,因为第一应用程序412是远程服务器计算机430的可信应用程序。如果远程服务器计算机430确定经加密的供应请求不是源自第一应用程序412,则远程服务器计算机430可以终止供应会话。
然后,远程服务器计算机430可以分析和验证经解密的供应请求内的数据元。验证可以包括分析经解密的供应数据中的时间戳。例如,可以将时间戳与远程服务器计算机430从第二应用程序414接收到经加密的供应数据的当前时间进行比较。如果当前时间与由时间戳指示的时间之间的差小于预定义时间阈值,则远程服务器计算机430可以验证供应请求。例如,如果差异小于20分钟,则远程服务器计算机430可以验证供应请求。在一些实施方案中,如果会话ID是由远程服务器计算机430提供的,则可以从供应请求中省略时间戳,而远程服务器计算机430可以通过比较远程服务器计算机430向第一应用程序412提供会话ID的时间与接收到供应请求的时间,来确定供应请求是否是在预定义时间阈值内接收到的。验证还可以包括确定账户ID是否对应于与第一应用程序412和资源提供商相关联的有效账户ID,用户ID是否是第二应用程序414的有效用户ID和/或设备ID是否对应于安装有第一应用程序412的有效通信设备。
在一些实施方案中,如果向远程服务器计算机430提供了指示用户是否已经被第一应用程序412认证的认证指示符,则远程服务器计算机430可以确定是否需要任何附加的加强认证。例如,如果第一应用程序412的认证过程满足资源提供商的ID&V过程的要求,并且认证指示符指示用户已被第一应用程序412成功认证,则可能不需要附加的加强认证,远程服务器计算机430可以将访问数据供应给第二应用程序412,而不需要用户手动输入任何附加的认证信息。
在远程服务器计算机430验证供应请求之后,在步骤S418中,远程服务器计算机430可以生成第二应用程序414可以用来访问资源的访问数据,并将访问数据发送到第二应用程序414。例如,访问数据可以包括第二应用程序414可以用来访问与第一应用程序412和/或远程服务器计算机430相关联的服务的用户凭证数据。在一些实施方案中,访问数据可以包括代替账户ID的令牌。例如,如果账户ID是主账号(PAN),则访问数据可以包括替代PAN并可以用于进行交易的令牌。在一些实施方案中,访问数据可以被绑定到通信设备410,并且无法与不同的通信设备一起使用。例如,访问数据可以链接到在供应请求中接收到的设备ID。这样,如果从具有不同设备ID的通信设备接收到使用所述访问数据访问资源的尝试,则可以拒绝对资源的访问。与可能不将访问数据绑定到设备ID的常规推送供应技术相比,如果访问数据在供应过程期间中被未授权方拦截,则本文所述的技术可以防止所述未授权方使用所述访问数据。
在接收到访问数据之后,第二应用程序414可以例如通过将访问数据存储在第二应用程序414可访问的安全存储器位置,来完成供应过程。之后,第二应用程序414可以将访问数据提供给例如访问设备,以获得对与访问数据相关联的资源的访问。然后,在步骤S420中,第二应用程序414可以直接或经由第一应用程序412,经由通信设备410的用户界面,向用户410显示或呈现成功消息,以指示第二应用程序414已被成功供应了访问数据。在步骤S422中,第二应用程序414可以将用户410重定向回到第一应用程序412,第一应用程序412还可以显示指示供应过程已经完成的成功消息。
图5展示了根据本发明的一些实施方案的过程流500的流程图。过程流500可用于由第一应用程序将访问数据推送到第二应用程序。
在框502处,安装在通信设备上的第一应用程序可以接收用户输入,该用户输入选择要供应给安装在通信设备上的第二应用程序的账户。在框504处,响应于接收到对要供应的账户的选择,第一应用程序可以调用第二应用程序,并向第二应用程序发送会话标识符(ID)。在框506处,第二应用程序可以将与第二应用程序相关联的用户ID、设备ID和会话ID发送到第一应用程序。在框508处,第一应用程序可以生成包括要供应的账户的账户ID、用户ID和设备ID的经加密的供应请求数据。在一些实施方案中,经加密的供应请求数据还可以包括其他数据元,例如会话ID。在框510处,第一应用程序可以将经加密的供应请求数据发送到第二应用程序。在框512处,第二应用程序可将经加密的供应请求数据发送到与资源提供商相关联的远程服务器计算机,以请求可用于访问资源的访问数据。
在框514处,第二应用程序接收由远程服务器计算机基于对经加密的供应请求数据的验证所提供的访问数据。在一些实施方案中,对经加密的供应请求数据的验证可以包括使用与第一应用程序相关联的密钥来解密所接收到的经加密的供应请求数据,以确定经加密的供应请求数据是由第一应用程序生成的。在一些实施方案中,经加密的供应请求数据可以包括时间戳,而对经加密的供应请求数据的验证可以包括确定由远程服务器计算机接收到经加密的供应请求数据的时间与在时间戳中指示的时间之间的差异是否在预定义时间阈值内。在一些实施方案中,对经加密的供应请求数据的验证可以包括确定账户ID是与第一应用程序相关联的有效账户ID。
在框516处,第二应用程序将访问数据供应到第二应用程序上。在一些实施方案中,访问数据可以包括第二应用程序可以用来访问与第一应用程序相关联的服务的用户凭证数据。在一些实施方案中,访问数据可以是代替账户ID的令牌。在一些实施方案中,访问数据可以允许通信设备的用户访问建筑物。在一些实施方案中,由远程服务器计算机提供的访问数据可以被绑定到通信设备,并且无法与不同的通信设备一起使用。
图6展示了根据一些实施方案的包括被供应有访问数据并且可以允许用户访问诸如建筑物之类的位置的通信设备的建筑物访问系统。通信设备630可以根据本文所描述的技术被供应有访问数据,并由用户610操作。通信设备630可以与访问设备640进行交互,并将访问数据传递给访问设备640(例如,通过启动被供应有访问数据的应用程序)。访问设备640可以本地验证所接收的访问数据,或者其可以与远程定位的认证服务器计算机(未示出)进行通信。远程定位的认证服务器计算机可以验证访问数据是真实的,并且可以将指示此的信号发送回访问设备640。然后,访问设备640可以继续让用户610进入建筑物620。
图7展示了一种交易处理系统,该交易处理系统包括诸如移动设备之类的通信设备710,该通信设备被供应有访问数据以允许用户访问账户以支付商家的商品或服务。用户701可以对通信设备710进行操作。用户701可以使用通信设备710来支付商家的商品或服务。商家可以操作商家计算机750和/或访问设备740。商家可以经由收单方计算机720和支付处理网络760与发行方计算机730进行通信。
支付处理网络760可以包括数据处理子系统、网络,以及用于支持及传送授权服务、异常文件服务和清算及结算服务的操作。示范性支付处理网络可以包括VisaNetTM。支付处理网络如VisaNetTM能够处理信用卡交易,借记卡交易和其他类型的商业交易。VisaNetTM具体包括处理授权请求的VIP系统(Visa集成支付系统)和执行清算与结算服务的Base II系统。支付处理网络可以使用任何合适的有线或无线网络,包括互联网。
在访问设备740(例如,POS位置)处使用通信设备710的交易流程可以描述如下。用户701将他或她的通信设备710呈现给访问设备740以为物品或服务进行支付(例如,通过启动供应有访问数据的应用程序以发起与访问设备740的通信)。通信设备710和访问设备740可进行交互,使得来自通信设备710的访问数据(例如PAN、令牌、一个或多个验证值、到期日期等)由访问设备740接收(例如经由接触式或非接触式接口)。然后,商家计算机750可以经由通信接口从访问设备740接收该信息。然后,商家计算机750可以生成包括从访问设备740接收到的信息(即,访问数据)以及附加交易信息(例如,交易金额、商家特定信息等)的授权请求消息,并将该信息电子地传送到收单方计算机720。收单方计算机720然后可以接收、处理和转发授权请求消息到支付处理网络760以进行授权。
在发生信用卡或借记卡交易之前,支付处理网络760可能与每个发行方签订了协议,该协议关于发行方的交易将如何被授权。在一些情况下,诸如当交易金额低于阈值时,支付处理网络760可以被配置成基于其所具有的关于用户账户的信息来授权交易,而不产生并发送授权请求消息到发行方计算机730。在其他情况下,诸如当交易金额高于阈值时,支付处理网络760可以接收授权请求消息、确定与由通信设备710所提供的访问数据相关联的发行方、并将交易的授权请求消息转发给发行方计算机730以用于验证和授权。一旦交易被授权,发行方计算机730便可以生成授权响应消息(其可以包括指示交易被批准或被拒绝的授权码),并且经由其通信接口将该电子消息传送到支付处理网络760。支付处理网络760然后可以将授权响应消息转发到收单方计算机720,收单方计算机然后又可以将包括授权指示的电子消息发送到商家计算机750,然后发送到访问设备740。
在一天结束时或在某个其他合适的时间间隔处,可以对该交易执行在商家计算机750、收单方计算机720、支付处理网络760与发行方计算机730之间的清算和结算流程。
图8是可以用来实现上文描述的任何实体或部件的计算机系统的高级框图。图8中所示的子系统经由系统总线875互连。附加子系统包括打印机874、键盘878、系统存储器872和监视器876,监视器耦合到显示器适配器882。外设和输入/输出(I/O)设备,其耦合到I/O控制器871。例如,外部接口822可以用于经由输入/输出端口877将计算机装置连接到诸如互联网的广域网、鼠标输入设备或扫描仪。经由系统总线875的互连允许中央处理器873与每个子系统进行通信,并控制来自系统存储器872或一个或多个存储设备879的指令的执行以及在各子系统之间的信息交换。系统存储器872和/或一个或多个存储设备可以由计算机可读介质来实现。
本发明的实施方案具有许多优点。例如,如上所述,在本发明的实施方案中,通过使用与授权实体(例如,与账户的发行方相关联的远程服务器计算机)相关联的可信第一应用程序对访问数据进行请求,可以向第二应用程序(其可以是不可信应用程序)供应访问数据。由于应用程序是可信的应用程序,所以授权实体可以确信对访问数据的请求是真实的。而且,使用上述技术可改善用户体验,因为当供应访问数据以供第二应用程序使用时,可以避免加强认证步骤。供应过程还可以包括在请求访问数据时向授权实体提供设备标识符。这样,访问数据可以被绑定到通信设备,并且无法与不同的设备一起使用。
应当理解,如上文描述的本发明可以用控制逻辑的形式以模块化或集成方式使用计算机软件来实现。基于本文提供的公开内容和教导,本领域普通技术人员将知道并理解使用硬件和硬件和软件的组合来实施本发明的其他方式和/或方法。
本申请中描述的任何软件部件或功能可以实现为使用任何适当计算机语言(诸如,例如Java、C++或Perl),使用例如传统的或面向对象的技术由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上,诸如随机存取存储器(RAM)、只读存储器(ROM)、诸如硬盘驱动器的磁介质或软盘、或诸如CD-ROM的光学介质。任何这样的计算机可读介质可以驻留在单个计算装置上或内部,并且可以存在于系统或网络内的不同计算装置上或内部。
虽然已经详细描述了并且在附图中示出了一些示例性实施方案,但是应当理解,这样的实施方案仅仅是对本发明的说明而不是限制性的,并且本发明不限于示出和描述的具体安排和结构,因为本领域的普通技术人员可以想到各种其他修改。
应当理解,根据一些实施方案的方法和过程可以按与本文所述的次序不同的次序执行一个或多个步骤、包括没有具体描述的一个或多个额外步骤、省略一个或多个步骤、将一个或多个步骤组合成单个步骤、将一个或多个步骤分割成多个步骤,和/或其任何组合。
还应当理解,在不偏离本发明的范围的情况下,任何实施方案的一个或多个特征可以与任何其他实施方案的一个或多个特征组合。
如本文所使用,除非明确指示有相反的意思,使用“一个”、“一种”或“该”旨在表示“至少一个”。
- 用于供应/实现推送通知会话的方法和推送供应实体
- 用于设备推送供应的系统和方法