用于认证网络消息的系统和方法与流程

文档序号:15309817发布日期:2018-08-31 21:37阅读:157来源:国知局

本申请要求于2015年11月16日提交的美国申请序列号14/942,048的申请日的优先权和权益,其通过引用整体并入本文。

本公开总体上涉及用于认证消息(例如,网络消息)的系统和方法,其包括认证来自客户端的消息,并且进一步认证消息传递所通过的计算设备。



背景技术:

本节提供与本公开相关的背景信息,其不一定是现有技术。

支付网络被提供用于来自和去往客户端(诸如商家、收单方、发行方和其他实体)的各种不同类型的消息,并且进一步在某些情况下,在客户端之间传递各种不同类型的消息。因为这些消息通常包括敏感和/或机密数据,或寻求访问敏感和/或机密数据,所以已知的支付网络采用各种加密技术来保护数据,并且可以进一步规定用于向和/或从支付网络传递消息的安全条件。此外,已知支付网络采用安全分级结构,由此随着支付网络内不同网络部分或区域之间的消息传递的进展,需要持续认证消息以确保支付网络的安全性。

附图说明

这里描述的附图仅用于选定实施例而不是全部可能的实现方式的说明性目的,并且不旨在限制本公开的范围。

图1是本公开的示例性系统的框图,其包括适于认证发送到支付网络的消息的支付网络;

图2是可以在图1所示的示例性支付网络中使用的计算设备的框图;以及

图3是可以在图1所示的支付网络中实现的示例性方法,用于认证其中的消息传递。

贯穿附图的多个视图,对应的附图标记指示对应的部分。

具体实施方式

现在将参照附图更全面地描述示例性实施例。这里包括的描述和具体示例仅用于说明的目的,并不意图限制本公开的范围。

支付网络提供各种服务,这些服务可能涉及支付账户交易和/或交易数据的使用,这些服务依赖于内部和外部等的一个或多个其他实体(广义地,客户端)对支付网络的访问。通过支付网络从客户端接收消息的形式提供访问。如这里所述,每个消息包括安全证书,该安全证书由支付网络用来认证客户端。此外,这里的网络(例如,支付网络等)和方法在多个级别上认证消息(例如,应用程序编程接口(api)消息等)。特别地,当支付网络处接收到来自客户端的消息时,计算设备将客户端证书作为对象附加到消息,并且在将消息传送到api网关之前进一步附加其自己的证书到消息。接下来,api网关基于api网关内的本地储存库验证计算设备(api网关从该计算设备接收该消息)的证书,并且进一步经由除api网关之外的全局访问管理器验证客户端证书,即附加对象。在多级认证时(例如,在客户端级别和计算设备级别等),api网关导致产生安全令牌,其表示客户端并且可在支付网络内使用以访问后端服务器和/或由后端服务器提供的服务。以这种方式,增强了安全性,以保持保护支付网络内的交易数据和其他数据免受未经授权的访问。

图1示出了其中可以实施本公开的一个或多个方面的示例性系统100。虽然系统100的部分以一种布置呈现,但应该理解的是,其他示例性实施例可以包括例如另外安排的相同或不同的部分,例如,取决于对支付网络的消息传递的验证等。

如图1所示,所示系统100通常包括商家102、收单方104、支付网络106和发行方108,每个耦合到网络110。网络110可以包括但不限于有线和/或无线网络、局域网(lan)、广域网(wan)(例如因特网等)、移动网络和/或能够支持系统100的所示的两个或更多个部件之间的通信的另一合适的公共和/或专用网络,或其任何组合。在一个示例中,网络110包括多个网络,其中多个网络中的不同网络可由图1中所示的实体中的不同实体访问。在该示例中,网络110可以包括私人支付交易网络,该私人支付交易网络可由支付网络106访问收单方104和发行方108,以及单独地支付网络106和商家102可以借助其通信的网络(例如,通过基于web的应用程序等)。

一般来说,在图1中,商家102提供一种或多种产品(例如商品和/或服务等),以便销售给消费者。为了购买产品,消费者向商家102呈现支付设备(与支付账户相关联)。反过来,商家102、收单方104、支付网络106和发行方108合作,响应于消费者,使用消费者的支付账户完成产品的交易(广义地说,购买交易)。作为购买交易的一部分,商家102读取支付设备并经由网络110经由收单方104(与商家102相关联)向支付网络106传送授权请求以处理交易(例如,使用交换机等)。支付网络106又将授权请求传送给发行方108(与消费者的支付账户相关联)。然后,发行方108向支付网络106提供授权响应(例如,授权或拒绝请求),该授权响应通过收单方104提供返回商家102。然后商家102与消费者的交易完成或不完成,取决于授权响应。如果交易完成,则购买交易稍后在商家102和收单方104之间由商家102和收单方104(根据结算安排等)清算和结算,以及在收单方104和发行方108之间由收单方104和发行方108(根据另一个结算安排等)清算和结算。

以上是对支付网络106的交易的简要描述,其被提供用于说明支付网络与其他实体的交互的目的。应该理解的是,在上述交易中多个消息被引导到支付网络106,并且随着交易受到附加服务的影响,其他消息可以被引导到支付网络106。例如,如果交易所针对的支付账户经受3d安全服务,则可以在授权交易之前将一个或多个附加消息引导至支付网络106(并且特别是其中的目录后端服务)以认证消费者。

此外,作为上述交易的一部分以及与之类似的多笔交易,在商家102、收单方104、支付网络106、发行方108和消费者之间生成交易数据。取决于交易,交易数据可以包括但不限于支付账户号码、商家id、收单方id、终端id、分配给商家102(例如,通过支付网络106等)商家类别代码(mcc)、时间戳等。一旦产生,交易数据被存储在系统100的一个或多个不同实体中,具体而言是支付网络106(例如,在数据中心(未示出)或其他)。

交易数据还可以通过后端服务器和/或由其提供的服务为支付网络106提供的各种服务提供基础。这样的服务可涉及例如欺诈保护、分析、市场洞察、奖励等。可将服务提供给图1中所示的实体或其复制品或其他部分,例如与图1的一个或多个实体合作的第三方。在3d安全示例中,认证实体可以包括一个或多个第三方,诸如商家插件(mpi)(如被指示为包括在图1中的商家102中和/或与其相关联)和/或访问控制服务器(acs)(包括在发行方108(未示出)中和/或与发行方108相关联)。每个都可用于实现3d安全协议,将消息发送到支付网络106,并从支付网络106接收消息,以便在购买交易之前认证消费者。应该理解的是,发送到支付网络106并且意图到达支付网络106处的后端服务器/服务的消息可以针对由支付网络106提供的任何不同数量和/或类型的服务提供给图1中示出和未示出的实体。

如图1进一步所示,支付网络106包括一个或多个后端服务器112,后端服务器112被提供来托管由支付网络106提供的一种或多种后端服务。在该特定实施例中,(一个或多个)后端服务器112将多个api暴露给外部和/或内部客户端,通过其可以利用一个或多个服务。由支付网络106提供的api可通过api网关114(例如xml网关等)和耦合到api网关114的两个已识别计算设备116和118访问。在该示例性实施例中,计算设备116和118是网络路由器。并且,在这个示例中,计算设备116被提供用于从商家102经由包括在其中和/或与之相关联的mpi以及还有包括在发行方108(未示出)中和/或与发行方108相关联的acs接收用于3d安全协议(例如,由提供的服务等)的验证消息。另外,计算设备118协调通常在支付网络106内部去往/来自ipsec或其他安全协议、虚拟专用网络(vpn)的消息传递和去往/来自客户端的消息传递(经由dmz计算设备,或者外围网络等)。唯一地,api网关114包括在api网关114的存储器中提供的本地储存库124。本地储存库124包括仅专用于已识别计算设备116和118的证书验证数据,由此已识别计算设备116和118可以在api网关114内部进行验证而不必访问其他设备(例如全局访问管理器等)(但其他未已识别计算设备不能在api网关114进行内部验证)。特别地,本地储存库124包括计算设备116和118的客户端证书的特异名称。

此外,如图所示,支付网络106包括客户端与计算设备116之间的中间计算设备122,其进一步被包括。中间计算设备122通常包括路由器(例如,边缘路由器等),在该示例中,该路由器可以包括负载平衡和/或应用防火墙功能。在一些实施例中,计算设备122可以是数据中心(或idc)f5计算设备。而且,在该示例性实施例中,支付网络106还包括两个附加计算设备。一个计算设备是轻量级目录访问协议(ldap)计算设备126,其被配置为由支付网络106内的全局访问管理器使用的数据储存库,用于内部和外部客户端的验证。并且,另一个计算设备是安全服务计算设备(sscd)128,其被配置为生成在支付网络106内并且具体地由(一个或多个)后端服务器112和由其提供的服务接受的安全令牌。

虽然上述计算设备中的每一个被示为分离的,但在该特定实施例中,应该理解的是,在其他支付网络实施例中,某些计算设备可以集成在一起,或者进一步分离。此外,除了或代替图1所示的一个或多个计算设备,可以采用其他计算设备。例如,api网关114仅耦合到两个已识别计算设备116和118以接收客户端消息。应当理解,在其他实施例中,取决于例如(一个或多个)后端服务器112所提供的服务、客户端消息传递的量、支付网络拓扑结构等,不同数量的计算设备可以是针对api网关114的“已识别”计算设备。

图2示出了适用于系统100的示例性计算设备200。作为示例(而不是限制),示例性计算设备200可以适当地包括一个或多个服务器、工作站、计算机、路由器、网关或它们的组合等等。在(图1的)系统100中,商家102、收单方104和发行方108各自与计算设备200相关联或实现于计算设备200中。此外,(一个或多个)后端服务器112、api网关114、计算设备116、118和122中的每一个与计算设备200一致。据此,应该理解,系统100不限于计算设备200,因为可以使用不同的计算设备和/或计算设备的布置。还应该理解,部件的不同部分和/或布置可以用在其他计算设备中。此外,在各种示例性实施例中,计算设备200可以包括位置紧邻或分布在地理区域上的多个计算设备。

参照图2,图示的计算设备200通常包括处理器202和耦合到处理器202的存储器204。处理器202可以包括但不限于一个或多个处理单元(例如,在多核配置等中),包括通用中央处理单元(cpu)、微控制器、精简指令集计算机(risc)处理器、专用集成电路(asic)、可编程逻辑电路(plc)、门阵列和/或能够具有在此描述的功能的任何其他电路或处理器。上述示例仅是示例性的,并不意图以任何方式限制处理器的定义和/或含义。

如本文所述,存储器204是使得诸如可执行指令和/或其他数据的信息能够被存储和检索的一个或多个设备。存储器204可以包括一个或多个计算机可读存储介质,诸如但不限于动态随机存取存储器(dram)、静态随机存取存储器(sram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、固态设备、cd-rom、磁带、闪存驱动器、硬盘和/或任何其他类型的易失性或非易失性物理或有形计算机可读介质。存储器204可以被配置为存储交易数据、证书、安全技术、安全令牌(例如,saml令牌等)和/或适用于在此描述的任何其他类型的数据等,但不限于此。此外,在各种实施例中,可以将计算机可执行指令存储在存储器204中以供处理器202执行以使处理器202执行本文所述的一个或多个功能,使得存储器204是物理的、有形的、非瞬态的计算机可读存储介质。应该理解的是,存储器204可以包括各种不同的和/或分离的存储器,每个存储器都在本文描述的一个或多个功能或过程中实现。

另外,所说明的计算设备200包含耦合到处理器202(且在一些实施例中还耦合到存储器204)的网络接口206。网络接口206可以包括但不限于有线网络适配器、无线网络适配器、电信适配器或能够与包括网络110的一个或多个不同网络进行通信的其他设备。在一些示例性实施例中,计算设备200包括并入处理器202中或与处理器202合并的一个或多个网络接口206。

再参照图1,在该实施例中,支付网络106被配置为执行从例如商家mpi、其他外部客户端和/或内部客户端120(广义地,客户端)接收的消息的多级认证。在图1的示例性实施例中,在支付网络106中允许的消息是ssl消息,或者相互ssl(mssl)消息,或者tls消息或者相互tls(mtls)消息等。然而,应当理解,其他支付网络实施例可以包括其他的根据证书或其他方式提供安全性的不同类型的消息传递和/或协议等。

例如,在从商家mpi接收到消息时,中间计算设备122被配置为将客户端证书(与发送消息的客户端相关联)作为对象附加到消息,然后经由计算设备116将该消息发送到api网关114,api网关114同样将其证书附加到消息。类似地,在该实施例中,计算设备118被配置为针对内部消息,将客户端证书作为对象附加到消息并且进一步将其自己的证书附加到消息。

进而,api网关114被配置为基于其中的本地储存库124来初始验证计算设备116/118。例如,api网关114可以访问存储在本地储存库124上的验证变量,验证变量包括诸如经认证的设备名称(dn)之类的数据,用于识别可允许的计算设备。验证变量与由计算设备(例如,计算设备116和118)附加到消息的证书中的数据(例如,request.authenticateddn等)进行比较。如果比较成功,则计算设备被认证。在一些实施例中,api网关114可以将认证的设备名称分配给在整个交互中维持计算设备的认证状态的上下文变量(例如_mc_authenticateddn等)。如果认证失败,则api网关114可以通过停止验证过程并提供解释认证失败的原因的消息来处理失败。

然后,api网关114被配置为通过使用作为客户端证书的附加对象来验证从其发送消息的客户端。为此,api网关114被配置为调用ldap计算设备126(用作全局访问管理器)(即,本地储存库不包括用于向支付网络106验证每个客户端的内容)。当每一个被验证时,api网关114被配置为随后生成内部安全令牌,该内部安全令牌被转换为由(一个或多个)后端服务器112接受的安全令牌,之后将消息(包括安全令牌)发送到(一个或多个)后端服务器112,由此根据需要调用消息所针对的服务。

图3示出了用于在支付网络106内,在客户端级别并且进一步在计算设备级别上认证消息的示例性方法。示例性方法300被描述为在系统100中实现,进一步参考图1中所示的api网关114和计算设备116、118和122。例如,在该示例性实施例中,在图3中用虚线框包围的操作包括在api网关114中和/或由api网关114执行。然而,在其他实施例中,方法300可以在系统100的一个或多个其他实体或部分和/或支付网络106的部分中实现。并且,正如本文的方法不应被理解为限于示例性系统100或示例性计算设备200一样,此处的系统和计算设备不应被理解为限于示例性方法300。

参照由商家mpi发送并在中间计算设备122处接收的3d安全消息来描述方法300,如图1中的130所示。应当理解,可以从一个或多个其他外部实体接收消息,如图1或其他图所示,并且该消息可能与支付网络106的任何方面有关,但通常会被提供来通过一个或多个api访问由(一个或多个)后端服务器112提供的一个或多个服务。此外,可以在计算设备118处例如从虚线框120所指示的支付网络106内部的一个或多个实体(例如,内部客户端等)通过一个或多个api接收消息以再次访问由(一个或多个)后端服务器112提供的一个或多个服务。

再参照图3,在302处,在计算设备122处从外部客户端,具体地在该示例中为商家102(和/或收单方104),经由mpi接收消息(例如,tls消息等)。如上所述,mpi消息被提供用于根据3d安全协议等认证与支付账户交易相关的消费者。该mpi消息在计算设备122处经由网络110被接收(如在图1中130所指示的)。在该示例中,网络110是http型网络,使得接收到的消息包括http消息。然而,应该理解,在其他示例中可以使用不同类型的网络,由此消息可以是不同类型的或者根据不同的协议来提供。而且,从客户端接收的消息包括用于外部客户端的客户端证书,即商家mpi,特别是tls证书。

一旦接收到该消息,中间计算设备122验证客户端证书。如果客户端被验证,则中间计算设备122在304处将客户端证书作为对象附加到消息,并且具体地在本实施例中作为x509对象附加到消息。x509对象可以附加到http标头或消息的其他地方。中间计算设备122进一步将其证书附加到该消息并且在306处将该消息经由计算设备116发送到api网关114。对于该消息,计算设备116确实执行客户端证书的验证,但是否则用作直通(pass-thru),由此计算设备116仅将证书附加到消息。该证书包括特异名称(dn),其是计算设备116的唯一标识符。应该理解,计算设备116可以在将消息传递给api网关114之前执行与进一步验证和/或校验消息有关的一个或多个附加操作或者过滤从计算设备122接收的该消息。

api网关114接收消息,并且在308处从计算设备116验证证书。特别地,api网关114依靠其本地储存库124中的证书验证数据来验证计算设备116的证书以确认它是网关114被允许与之通信的已识别计算设备。验证可以包括仅仅将证书中包括的特异名称与本地储存库124中的已识别特异名称的列表进行比较。更经常地,api网关114通过执行计算设备116和api网关114之间的握手来执行对消息的完全验证(通过tls信道接收)以验证来自计算设备116的认证机构信任链。一旦握手成功,消息就到达网关114,如上所述。api网关114将代表计算设备116的来自传入消息的客户端证书的特异名称(dn)与存储在本地储存库124中的针对api网关114先前授权的所有计算设备的预定dn值的列表进行比较。如果找到匹配,则匹配的消息被成功验证。以这种方式,针对计算设备116的证书的消息验证在本地对api网关114执行,而不需要与单独的认证机构(诸如例如利用ldap计算设备126的全局访问管理器)进行通信。

如果验证显示该消息不来自于已识别计算设备,则api网关114终止该消息,和/或启动该消息的一个或多个安全评论等。

相反,如果消息被验证到计算设备116,则api网关114在310处从消息提取对象,并且具体地在该示例中提取x509对象。然后,在312处,api网关114针对提供消息的客户端,具体地在该示例中为商家mpi,执行对象验证(即客户端证书)。如图3所示,客户端证书的验证在该示例性实施例中要求api网关114访问全局访问管理器126的数据储存库(例如,ldap数据库),其中存储了客户端的凭证(例如在存储器204等中)。基于此访问,api网关114然后在312处根据已知技术执行证书的验证。

在大多数情况下,如果消息无效或未验证,消息将被拒绝。然而,在该示例性实施例中,如果由于客户端或商家mpi102未知而导致消息无效或未被验证,则在314处,api网关114调用(一个或多个)后端服务器112中的后端服务以提供新客户端,新客户端包括企业服务总线(esb)。一般情况下,当证书或商家mpi102对于支付网络106而言是未知的或是新的时候,api网关114调用后端服务,后端服务又转而注册客户端或商家mpi102。然后从(一个或多个)后端服务器112向全局访问管理器126提供商家mpi102的注册,从而为商家mpi102创建客户端标识符。然后将客户端标识符提供给api网关114,api网关114转而如下所述地生成用于消息的令牌。

相反,如果消息被验证,则api网关114促使为消息和/或客户端生成安全令牌。具体地,在316处,api网关114生成内部安全令牌。在该示例中,内部安全令牌包括特定于客户端的saml(安全断言标记语言)令牌。在318处,api网关114然后调用sscd128。作为响应,如图3所示,sscd128在320处将内部安全令牌转换成可由支付网络106的其他部分识别的安全令牌,支付网络106的其他部分包括(一个或多个)后端服务器112和由其提供的服务。在转换之后,在该示例中也是saml令牌的安全令牌被回复到api网关114,并随后在322处连同消息一起被发送到(一个或多个)后端服务器112。作为响应,(一个或多个)后端服务器112和/或交易数据的提供者或其他服务被允许以促进附加消息,如所请求的特定服务所要求的。在该示例性实施例中,响应于mpi消息,后端服务器112中的目录服务校验支付账户的注册状态,由此用于交易的3d安全协议可以继续。

除了中间计算设备122和计算设备116之外,如上所述,消息可以源自各种其他源,包括内部客户端120。在这种情况下,在计算设备118处接收消息(如参照步骤304所述),该消息进行将客户端证书作为对象(例如,x509对象等)附加到消息(并且进一步附加其自己的证书到消息),并将消息一起传递给api网关114,如上所述。api网关114然后执行与用于消息的步骤308-318和322一致的操作。

以上述方式,api网关114在客户端级别并进一步在计算设备级别(依赖本地储存库)提供对消息的双重级别的认证,以确保从已识别计算设备接收消息。因此,在允许消息在支付网络106内传递到达后端服务器和/或后端服务之前,在两个级别上验证从内部或外部客户端接收到的作为api消息的消息。在各种示例性实施例中,支付网络106的消息,特别是api消息的安全性经受增强的安全性,由此进一步保护至支付网络106、来自支付网络106和/或通过支付网络106的消息中包含的机密和/或敏感信息免受未经授权的访问。

再次且如前所述,应该认识到,在一些实施例中,本文描述的功能可以在存储在计算机可读介质上并且可由一个或多个处理器执行的计算机可执行指令中描述。计算机可读介质是非暂时性计算机可读存储介质。作为示例而非限制,这样的计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其他磁存储设备,或可用于以指令或数据结构的形式携带或存储期望的程序代码并且可以由计算机访问的任何其他介质。上述的组合也应该包括在计算机可读介质的范围内。

还应该理解,本公开的一个或多个方面在被配置为执行本文描述的功能、方法和/或过程时将通用计算设备转换成专用计算设备。

如基于前述说明书将理解的,本公开的上述实施例可以使用包括计算机软件、固件、硬件或其任何组合或子集的计算机编程或工程技术来实现,其中技术效果可以通过执行以下中的至少一个来实现:(a)从客户端接收api消息,所述api消息包括客户端证书;(b)将客户端证书作为对象附加到消息中;(c)向该消息附加中间证书,该中间证书指示该计算设备;(d)将附加的消息传送到api网关,所述api网关包括定义已识别计算设备的储存库;(e)由所述api网关经由所述储存库基于将所述计算设备识别为已识别计算设备中的一个的中间证书来执行所述计算设备的验证;(f)由所述api网关经由全局访问管理器基于所述客户端证书执行所述客户端的验证,所述全局访问管理器与所述储存库分开;以及(g)当计算设备被验证时,使得指示客户端的安全令牌被生成或者生成内部安全令牌,由此安全令牌指示客户端并且允许来自客户端的消息要被递送给一个或多个后端服务。

据此,提供了示例性实施例以使得本公开将是彻底的,并且将范围充分地传达给本领域技术人员。阐述了许多具体细节,诸如具体组件、设备和方法的示例,以提供对本公开的实施例的全面理解。对于本领域技术人员来说显而易见的是,不需要采用具体细节,示例实施例可以以许多不同的形式来体现,并且都不应该被解释为限制本公开的范围。在一些示例实施例中,没有详细描述公知的过程、公知的设备结构和公知的技术。

这里使用的术语仅用于描述特定示例性实施例的目的,而不意图是限制性的。除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”可以意图包括复数形式。术语“包括”、“包含”和“具有”是包含性的,并且因此指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除存在或增加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。除非特别标识为执行的顺序,否则本文描述的方法步骤、过程和操作不应被解释为必须要求它们以所讨论或说明的特定顺序执行。也应该理解可以采用附加的或替代的步骤。

当元件或层被称为在另一元件或层“上”、“接合到”另一元件或层,“连接到”另一元件或层、“耦合到”另一元件或层、“与另一元件或层相关联”或“包括有”另一元件或层时,它可以直接位于另一元件或层上、接合另一元件或层、连接到或耦合到另一元件或层或与另一元件或层相关联,或者可以存在中间元件或层。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何一个和所有组合。

示例性实施例的前述描述已经被提供用于说明和描述的目的。其目的不是穷举或限制披露的内容。即使没有具体示出或描述,特定实施例的单独元件或特征通常不限于该特定实施例,而是在适用的情况下可互换并且可用于选定实施例中。在许多方面也可能有所不同。这样的变化不被认为是背离本公开,并且所有这样的修改旨在被包括在本公开的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1