端到端设备认证的制作方法
【技术领域】
[0001]本发明涉及端到端设备认证。
【背景技术】
[0002]通过自助服务终端(SST)开展金融交易而无需人工协助的消费者日益增多。事实上,在很多情况下,进行这些交易时SST附近是无人值守的;但SST内集成有或SST附近装有安全摄像头的情况或许除外。
[0003]最常见的SST交易是客户在自动柜员机(ATM)上进行的。与公众的普遍认知相反,ATM可能会受到威胁,在某些方面,现有ATM的固有安全漏洞或会遭到利用。
[0004]例如,在典型ATM交易中,客户会插入银行卡,然后在加密PIN键盘上输入其PIN(个人识别码)。ATM上的软件将接收到其无法解密的加密信息,然后将加密信息发送至相应的后端金融系统,与客户账号和所请求的取款金额一同进行认证。如果PIN正确且资金充足,金融系统将返回认证。接着,ATM核心会向ATM内的出钞器发送出钞命令,出钞器会传出与取款相关的货币金额。
[0005]在上述场景中,如果ATM软件可被替换、修改或免验证,那么发送给出钞器的取款金额就可予变更或重复多次,进而耗尽ATM的所有货币。这一点尤其令ATM所有者和经营者担忧,因为与交易绑定的金融系统可能仅兑现初始授权取款金额,导致ATM所有者和经营者不具有收回被盗资金的追索权。
【发明内容】
[0006]在本发明的多种实施方案中,提供了端到端设备认证。
[0007]根据一个实施例,主机发出的一个令牌和一个出钞命令被获取。接着,会对令牌和出钞命令进行验证,然后执行出钞命令。
[0008]根据本发明的第一个方面,所提供的操作出钞装置以验证出钞命令的方法包含:获得主机发出的一个令牌和一个出钞命令;及在处理出钞命令前验证令牌和出钞命令。
[0009]出钞命令可由主机直接发出,或由响应主机发出的出钞命令的应用程序、服务提供商或设备驱动程序发出。
[0010]令牌可由主机发给一个驱动程序级组件(如服务提供商或驱动程序),而非应用程序级组件(如应用程序)。
[0011]根据本发明的第二个方面,所提供的自助服务终端(SST)包含:一个在SST控制器上执行、可与远程主机进行交互的应用程序;及一个连接至所述SST控制器的出钞器,可以(i)从应用程序接收包括出钞金额在内的出钞命令;(ii)接收主机设备发出的授权令牌;
(iii)验证授权令牌;及(iv)在授权令牌通过验证后传出出钞金额。
[0012]根据本发明的第三个方面,所提供的方法包含:设备获得主机发出的一个令牌和一个出钞命令;及在处理出钞命令前,由设备验证所述令牌和出钞命令。
[0013]出钞命令可由主机直接发出,或由响应主机发出的出钞命令的应用程序发出。
[0014]获得一个令牌和一个出钞命令还可选择性地包括直接从该设备接至的自助服务终端(SST)核心接收所述令牌和出钞命令。
[0015]接收令牌和出钞命令还可选择性地包括在获得令牌前向SST核心提供一个nonce传递至主机,主机在生成令牌时使用该nonce。
[0016]验证令牌和出钞命令还可选择性地包括独立重现令牌的一个版本,并将所述重现版本与获得的令牌相比较,以确定有无发生匹配,匹配即表明令牌和出钞命令有效,并表明出钞命令将予以处理。
[0017]独立重现令牌还可选择性地包括在设备的安全微处理器内使用与主机共享的密钥来重现令牌,其中所述安全微处理器仅可被设备访问。
[0018]独立重现令牌还可选择性地包括使用共享密钥、提供给主机一个nonce,以及与重现版本时的出钞命令相关的出钞金额来处理安全微处理器上的消息验证代码函数。
[0019]所述验证还可选择性地包括发送一条错误消息到SST核心,表明令牌和出钞命令无效。
[0020]所述验证还可选择性地包括在令牌和出钞命令通过验证后启动货币出钞装置,以传出与出钞命令相关的货币金额。
[0021]根据本发明的第四个方面,所提供的方法包含:主机设备从自助服务终端应用程序接收出钞金额;主机设备使用共享密钥和出钞金额获得授权令牌,所述共享密钥在主机设备与连接至SST内控制器的出钞器之间或外部系统与出钞器之间共享;及主机设备将授权令牌和出钞金额发送回SST应用程序,以传递给出钞器进行验证。
[0022]所述接收还可选择性地包括使用出钞金额从SST控制器接收一个nonce,而SST控制器获得的该nonce是由出钞器提供的。
[0023]所述获得还可选择性地包括使用该nonce及共享密钥和出钞金额在主机设备上生成授权令牌。
[0024]所述使用还可选择性地包括将该nonce、共享密钥和出钞金额提供给一个方法验证代码(MAC)函数,以生成授权令牌。
[0025]所述提供还可选择性地包括获得因处理MAC函数得到的截断MAC消息,该截断MAC消息即为授权令牌。
[0026]所述获得还可选择性地包括代表主机设备请求外部系统提供授权令牌。
[0027]该方法还可选择性地包括主机设备通过SST控制器与出钞器定期交换新共享密钥,其中,在向SST控制器发送所述新共享密钥的加密版本以传递给出钞器之前,新共享密钥会使用出钞器的公钥加密并用主机设备的私钥签名。
[0028]所述定期交换还可选择性地包括根据策略评估确定交换新共享密钥的周期。
[0029]所述定期交换还可选择性地包括根据SST上的每笔新交易确定交换新共享密钥的周期。
[0030]所述定期交换还可选择性地包括从外部系统接收加密的新共享密钥,然后将其发送给SST控制器以传递给出钞器。
[0031]根据本发明的第五个方面,所提供的一个自助服务终端包含:一个应用程序,可以:(i)在SST上执行;(ii)与出钞器进行交互;及(iii)与远程主机进行交互;及一个出钞器,可以(i)连接至SST ;(ii)从应用程序接收包括出钞金额在内的出钞命令;(ii)从应用程序接收主机设备发出的授权令牌;(iii)验证授权令牌;及(iv)在授权令牌通过验证后传出出钞金额。
[0032]出钞器还可选择性地包括(V)通过SST控制器与主机设备定期交换加密共享密钥,其中SST控制器无法解密该加密共享密钥。
[0033]出钞器还可选择性地使用解密的共享密钥重现授权令牌的一个版本,从而验证授权令牌。
[0034]根据本发明的第六个方面,所提供的出钞器可以(i)接收包括出钞金额在内的出钞命令;(ii)接收远程主机发出的授权令牌;(iii)验证授权令牌?’及(iv)仅在授权令牌通过验证后传出出钞金额。
【附图说明】
[0035]以下通过举例并参照附图,对本发明的上述内容和其他方面加以具体说明:
[0036]根据一个示例实施例,图1是使用自动柜员机(ATM)实施端到端设备认证的示意图;
[0037]根据一个示例实施例,图2是一种端到端设备认证方法的示意图;
[0038]根据一个示例实施例,图3是另一种端到端设备认证方法的示意图;
[0039]根据一个示例实施例,图4是端到端设备认证自助服务终端(SST)的示意图;及
[0040]根据一个示例实施例,图5是使用自动柜员机(ATM)实施端到端设备认证的示意图。
【具体实施方式】
[0041]首先参照图1,根据一个示例实施例,这是使用自动柜员机(ATM) 110实施端到端设备认证的示例图100。对各个组件的描述以及呈现组件的布置形式仅出于说明目的。但要指出的是,也可以在不脱离本文和下文所呈现的现场自动化客户协助之教导的情况下,按其他方式布置更多或更少组件。
[0042]如本文所采用的端到端设备认证包括这样一个概念,即执行交易的设备能够验证出认证该交易的系统有无发出交易指令,以及交易指令是否已被设备执行。
[0043]本文和下文中就端到端设备认证呈现的ATM、技术、方法及自助服务终端(SST),可以在示意图100所示的一个或全部组件或若干组件的组合中全部或部分实现。这些技术和方法均在内存和/或永久性电脑可读存储媒体中被编程为可执行指令,并在与不同组件相关的一个或多个处理器中执行。
[0044]示意图100的讨论,是以在ATM 110上进行的交易为框架而进行的。须指出的是,示意图100也适用于提供自助服务终端(SST)的任何企业。因此,下列描述仅是本发明的一个实施例,无意将本发明范围局限为仅在ATM 110上进行的金融交易。
[0045]实施例示意图100包括一台ATM 110、一台主机140和一个外部金融系统150。ATM110包括一个应用程序120和一个出钞器130。出钞器130包括一个安全微处理器131。
[0046]ATM 110以大为简化的形式呈示,仅用于描绘为实现从出钞器130到主机140或(可选地)外部金融系统150的端到端设备认证所作的组件部分修改。
[0047]应用程序120包括一个用于与出钞器130进行交互的应用程序编程接口(API)(设备API 121),以及一个用于与主机140进行交互的API (主机API 122)。设备API 121可包含常规的ATM设备API,例如CEN XFS API。主机API 122可包含NDC API
(由NCRCorporat1n 提供)。
[0048]应用程序120还包括一个正面的图形用户界面(⑶I,未在图1中示出),用于与客户交互以使客户能够在ATM 110进行金融交易。
[0049]在本实施例中,主机140将交易传送到外部系统150进行认证。外部系统150代表各主要金融机构在其允许其客户进行ATM交易之区域内的认证系统。外部系统150可包含交换网络或金融机构交换机。主机140使用NDC API 142与ATM 110通信。
[0050]出钞器130作为一个独立设备集成入ATM 110(也可作为ATM 110内一个ATM核心的外围设备)。可通过通用串行总线(USB)端口接口或其他端口接口实现该连接。出钞器130包括一个用于向客户传出货币的常规出钞装置。该出钞装置能从可用面额中点钞,并启动货币传出通过的闸门(成叠或单独吐出)。出钞器130仅可通过CEN API 121实现访问交互。
[0051]出钞器130还包括一个安全微处理器131,而应用程序120作出的任何API调用均不能对其进行访问。安全微处理器131包含若干加密密钥、若干证书以及一个或多个加密算法(函数)。在某些情况下,安全微处理器131预先制造有密钥、证书和函数(S卩,用预先安装的密钥、证书和函数制造)ο在其他实施例中,密钥、证书和函数可安装在安全微处理器131上,方法是将出钞器130从ATM 110上移除,然后将出钞器130接口至一个用于安装和初始配置的独立安全设备。
[0052]现通过配置和操作方案的一个示例,对部件交互加以论述。要指出的是,在不脱离本文所提供有益教导的情况下,其他方案也是可能的。
[0053]安全微处理器131最初包括一个根证书(作为其自身的证书颁发机构),用来验证证书颁发机构所颁发的证书。出钞器130 (通过安全微处理器131)与主机140通过ATM110的应用程序120交换证书。须指出的是,主机140的原始证书可通过带外流程从证书颁发机构(或许是出钞器130的制造商)获取。来自主机140的证书包括主机的公钥,而出钞器130的证书包括该出钞器的公钥。这类证书交换只进行一次。
[0054]接下来,主机140被配置为在主机140和出钞器130之间提供一个共享密钥。主机140使用出钞器130的公钥(从出钞器的交换证书获得)对共享密钥加密,然后使用主机的私钥对加密的共享密钥签名。如本文所使用,“私钥”绝不会暴露在网络线路上,且会保持在私钥拥有人的唯一安全控制之下。
[0055]主机140通过应用程序120向出钞器130发送加密的共享密钥。没有出钞器130的私钥和主机140的公钥,应用程序120就无法解密加密的共享密钥;但出钞器130的私钥被安全地锁定在安全微处理器131中。应用程序120向出钞器130转发加密的共享密钥。
[0056]出钞器130向安全微处理器131提供加密的共享密钥。安全微处理器131对加密的共享密钥解密,并验证主机140的签名。安全微处理器131随后在其安全存储中锁定解密的共享密钥。
[0057]主机140与出钞器130之间交换共享密钥的频率可以根据策略条件配置,可以是只在主机140和出钞器130初始配置过程中交换一次,也可以是每一次出钞命令被发送至出钞器130 (基于交易)时就进行交换。
[0058]还要指出的是,在一些实施例中,主机140充当一个传递(类似于ATM应用程序120),以便证书(具有公钥并经过证书颁发机构签名)在出钞器130与外部金融系统150之间交换。
[0059]一旦配置完成后,ATM 110就能在审批实体(主机140或金融系统150)与出钞器130之间提供安全的端到端设备认证。下面是一个示例情况,作说明之用。
[0060]一位客户使用ATM 110提取一些现金(货币或钞票)。应用程序120的⑶I部分可用,邀请客户插入其银行卡。
[0061]客户指示需要进行出钞交易,并指示金额(出钞金额)。加密的客户PIN、ATM卡账号及客户金融机构的身份由应用程序120持有,但不发送至主机140,随后发生以下增强处理,这有所不同,并在常规处理基础上有所改善。在此阶段中,信息由应用程序120持有,以免为一次交易两次联系主机140。
[0062]应用程序120向出钞器130发送出钞金额(附有金额的命令,或只附有隐含出钞命令的金额的命令)。安全微处理器131获发出钞金额并获得一个nonce。带有nonce或只带有nonce的出钞金额从出钞器130被传回到应用程序120。出钞器130控制安全微处理器131中基于交易的(就每个出钞命令而言)nonce的生成,如此一来,相同的交易就会有不同的nonce ;因此,ATM 110上的恶意应用程序就无法重新显示交易,因为nonce会更改。
[0063]应用程序120向主机140发送出钞金额和nonce (连同先前获得的加密PIN、账号及相应外部金融系统150的一个标识符,以便应用程序120通过网络ping到或联系主机140 一次)ο
[0064]在一个实施例中,下列关于主机140运作的描述可以由外部金融系统150执行,其中,主机140充当一个传递,一如应用程序120在出钞器130所做的一样。
[0065]主机140根据一项交易审批请求以常规方式联系外部金融系统150 (外部金融系统150可以是未修改的常规外部金融系统150),并提供账户信息、加密PIN及拟传出的现金的请求金额。如果PIN正确,且账户有充足的资金进行请求的交易,外部金融系统150就会批准交易审批请求。
[0066]如果外部金融系统150批准交易请求,主机140就会将共享密钥、nonce和出钞金额输入到方法验证代码(MAC)函数。MAC函数的输出是一个任何值的简短截断字符串(截断字符串被称为MAC消息)。出钞金额和MAC消息随后通过NDC API 122从主机140发送至应用程序120。
[0067]应用程序120向出钞器130转发出钞金额和MAC消息(被称为令牌)。出钞器130向安全微处理器131提供出钞金额和MAC消息。
[0068]安全微处理器131向在安全微处理器131上处理的MAC函数传递出钞金额、共享密钥及nonce (针对出钞命令(此交易)生成)。安全微处理器的MAC函数生成的MAC消息随后与从主机140 (通过应用程序120)收到的MAC消息(令牌)进行比较。如果出钞器的MAC消息与主机提供的MAC消息相匹配,出钞器131就会激活其出钞装置,传出出钞金额。如果两则MAC消息不匹配,就不会处理从应用程序120收到的出钞命令;及出钞器130可选择性地向应用程序120传回错误消息,表明由于令牌无效导致出钞金额未获授权。
[0069]现在,人们可以领会,经由一个(ATM 110)或多个(使用外部金融系统150时(如上述),主机140)设备到另一个终端设备(主机140或外部金融系统150)的认证可以通过终端设备实现,从而确保在金融交易过程中实现金融行业至今尚未实现的验证。
[0070]要指出的是,也可采用其他布置和密码术,而不会脱离本文所述的教导。
[0071]这些(上述)实施例和其他实施例现已参照图2-4进行讨论。
[0072]根据一个示例实施例,图2是端到端设备认证方法200的示意图。实现方法200的软件模块(一个或多个)被称为“出钞器验证器”。出钞器验证器被实现为编程的可执行指令,驻留于安全内存和/或永久性电脑可读(处理器可读)安全存储媒体,由一个设备(在本实施例中,为一个出钞装置)的一个或多个安全处理器执行。执行出钞器验证器的设备的安全处理器经过专门配置与编程,以处理出钞器验证器。出钞器验证器有权在处理期间访问一个或多个网络。网络可以为有线、无线或有线与无线相结合。
[0073]在一个实施例中,处理出钞器验证器的设备(一个或多个)是一个连接至图1中的ATM 110的出钞装置。
[0074]在另一实施例中,处理出钞器验证器的设备是与信息亭有关的集成出钞装置(ATM除外)。集成出钞装置可以通过一个卡槽、一个通用串行总线(USB)端口、一个以太网端口或信息亭的其他槽/端口连接至信息亭。
[0075]出钞器验证器的处理可以视为从接到一个SST的集成或连接设备采取的处理动作。该SST拥有一个接到主机设备(如服务器)的网络连接。
[0076]在210处,出钞器验证器获得主机发出的一个令牌和一个出钞命令。在一个实施例中,主机是图1中的主机140。在另一实施例中,主机140向一个外部金融系统150传递交互,后者再针对主机执行本文所述的操作。
[0077]根据一个实施例,在211处,出钞器验证器直接从一个连接处理出钞器验证器的设备(在下文中,处理出钞器验证器的设备被称为“出钞器〃)的SST接收令牌和一个出钞命令(有出钞金额或藉由出钞金额隐含)。
[0078]在实施例211中和212处,出钞器验证器向SST核心提供一个nonce,以便在主机提供令牌前传递至主机。在生成或获得令牌时,主机会使用有出钞金额的nonce (或上述出钞命令)。
[0079]在220处,出钞器验证器先验证令牌和出钞命令,再处理出钞命令。
[0080]在实施例220和212的221处,出钞器验证器独立重现令牌的一个版本,并将该版本与令牌相比较,以确
定有无发生匹配。匹配成功表明令牌和出钞命令有效,出钞器验证器将处理该出钞命令,以传出与该出钞命令有关的出钞金额。
[0081]在实施例221中和222处,出钞器验证器从出钞器的一个安全微处理器获得一个与主机共享的共享密钥。安全微处理器只能被出钞器访问,而不能被SST或在SST上处理的任何应用程序访问。出钞器验证器使用共享密钥重现主机提供的令牌的独立版本。
[0082]在实施例222中和223处,出钞器验证器使用共享密钥、出钞器验证器就出钞命今向主机提供的nonce及与出钞命令有关的出钞金额在安全微处理器上处理MAC函数,以重现MAC消息的独立版本。
[0083]根据一个实施例,在231处,当令牌和出钞命令被确定无效或未通过出钞器验证器验证时,出钞器验证器会向(连接出钞器的)SST发送一条错误消息。
[0084]在一个实施例中,在232处,出钞器验证器在令牌和出钞命令通过验证后激活货币出钞装置,从而传出与出钞命令相关的货币金额。
[0085]要指出的是,出钞器验证器亦可通过解密令牌和/或验证主机(外部系统)签名认证令牌,以执行验证;而不是如上文所述生成令牌的独立版本。此外,还可以采用不同的密码术和加密密钥进行安全的密码术加密、解密和验证。
[0086]另外,通过出钞器验证器的出钞装置传出的实际货币不必为钞票形式的货币。也就是说,在一些实施例中,出钞装置可提供一个写入电子媒体的代码,该代码可与回扣、折扣、一些货物或服务的赎回、游戏芯片、游戏币券、可能汇入数字钱包的虚拟货币等等有关。
[0087]出钞器验证器可提供端到端设备认证(一个终端设备为出钞器,另一个终端设备为主机(或当主机充当传递时,则为外部系统))。
[0088]根据一个示例实施例,图3是另一种端到端设备认证方法300的示意图。实现方法300的软件模块(一个或多个)在本文中被称为主机验证器。主机验证器被实现为可执行指令,在内存和/或永久性电脑可读(处理器可读)存储媒体内被编程,并在服务器的一个或多个处理器上执行。服务器的处理器被专门配置为执行主机验证器。主机验证器有权访问一个或多个网络,网络可以为有线、无线或有线和无线相结合。
[0089]在一个实施例中,处理主机验证器的服务器是图1中的主机140。
[0090]在310处,主机验证器从一个SST(包括负责在SST内处理出钞金额的出钞器)接收出钞金额。主机验证器负责提供对出钞金额的认证。
[0091]根据一个实施例,在311处,主机验证器从SST接收一个有出钞金额的nonce。该nonce可由出钞器生成,提供予SST核心(个人电脑核心,连接各种作为外围设备的设备(如出钞器)),用于出钞金额和客户在SST上进行的交易。
[0092]在实施例311中和312处,主机验证器使用有共享密钥(在主机验证器与出钞器之间共享)和出钞金额的nonce生成一个授权令牌。
[0093]在320处,主机验证器通过使用共享密钥和出钞金额获得授权令牌。共享密钥再次在主机与出钞器之间或在外部系统与出钞器之间共享。
[0094]在实施例320和313的321处,主机验证器使用有共享密钥和出钞金额的nonce在主机上生成令牌。
[0095]在实施例321中和322处,主机验证器向MAC函数提供nonce、共享密钥和出钞金额,以生成授权令牌。
[0096]在实施例322中和323处,主机验证器因处理MAC函数而获得一条截断的MAC消息。这条截断的MAC消息就是授权令牌。
[0097]根据一个实施例,在324处,主机验证器代表主机请求外部系统提供授权令牌。
[0098]在330处,主机验证器向SST发回授权令牌和出钞金额,以传递至出钞器并由出钞器独立验证(端到端设备认证,一个终端设备为主机(或讨论的外部系统),另一个终端设备为出钞器)。
[0099]在一个实施例中,在340处,主机验证器定期通过SST与出钞器交换新的共享密钥。新的共享密钥采用出钞器的公钥加密,并用主机的私钥签名,再向SST发出新共享密钥的加密版本,以传递至出钞器。
[0100]根据实施例340,在341处,主机验证器根据策略条件评估确定交换新共享密钥的周期。
[0101]在实施例340中和342处,主机验证器根据客户在SST上进行的各项新交易确定交换新共享密钥的周期。
[0102]在一个实施例中,在350处,主机验证器定期从外部系统收到加密的新共享密钥,然后发送给SST以传递到出钞器。
[0103]根据一个示例实施例,图4是端到端设备认证SST 401的示意图400。端到端设备认证SST 401(下称“SST 401”)的组件经过编程,驻留于内存和/或永久性电脑可读媒体,并在SST 401的一个或多个处理器上执行。SST 401有权访问一个或多个网络,并可通过一个或多个网络进行通信,网络可以为有线、无线或有线和无线相结合。
[0104]SST 401包括一个应用程序402和一个出钞器403。
[0105]SST 401被连接至出钞器403,并采用应用程序402进行编程。
[0106]在一个实施例中,SST 401是图1中的ATM 110。
[0107]在一个实施例中,SST 401是一个信息亭。
[0108]应用程序402在SST 401的内存和/或永久性电脑可读存储媒体中被编程。
[0109]应用程序402可以在SST 401上执行,并且可以与出钞器403和一个远程主机进行交互。
[0110]出钞器403包括一个用于传出物品的装置。在一个实施例中,物品是货币。在一个实施例中,物品是代表货币(虚拟货币、比特币、莱特币等)的电子代码(一个或多个),及连接电子媒体(如安全数位(SD)卡、通用串行总线(USB)设备等)的出钞装置。在一个实施例中,物品是代表与SST 401有关的实际货物的非货币物品。
[0111]出钞器403包括一个安全微处理器,用来保存加密密钥和处理加密函数。SST 401和应用程序402都无法访问安全微处理器。
[0112]在一个实施例中,出钞器403是图1中的出钞器130。
[0113]在一个实施例中,出钞器403是图2中的出钞器验证器。
[0114]出钞器403可以从应用程序402接收包括出钞金额在内的出钞命令,还可从应用程序402接收主机设备(位于SST 401外部)发出的授权令牌。包含出钞金额的出钞命令和授权令牌由应用程序402直接提供,由主机设备间接提供和发出。
[0115]出钞器403也可以验证授权令牌,并在授权令牌通过验证时传出出钞金额。应用程序402和SST 401不参与验证,转发从主机设备收到的出钞命令和授权令牌除外。此外,应用程序402不能验证授权令牌。
[0116]在一个实施例中,出钞器403还可以定期通过应用程序402与主机设备交换加密的共享密钥。该应用程序不能解密加密的共享密钥。主机设备使用加密共享密钥的解密版本生成授权令牌,出钞器使用加密共享密钥的解密版本验证授权令牌。
[0117]在一个实施例中,出钞器403和主机设备所用的加密和解密是通过非对称密钥实现的,因此,共享密钥被主机设备使用出钞器403的公钥加密,再用主机设备的私钥进行数字签名;而后被出钞器403使用出钞器403的私钥和主机设备的公钥解密。私钥绝不会离开主机设备或出钞器403,也不会从这里传输,且没有提供从这些设备访问私钥的权限。主机设备只能通过证书(最初配置有证书)得知出钞器403的公钥,且主机设备无权访问出钞器的私钥,因而无法得知出钞器的私钥。同样地,出钞器403只能通过其上保存或生成的根证书得知主机设备的公钥,且出钞器403无权访问主机设备的私钥,因而无法得知主机设备的私钥。如此一来,SST 401及SST 401的应用程序402就无法发现出钞器403与主机设备共享的加密共享密钥。
[0118]现在,人们可以领会,SST的出钞运作是如何以这种方式安全实现的:如果SST受到威胁,出钞运作就会失效,而不会受受威胁的SST影响。
[0119]根据另一个示例实施例,图5是实施端到端设备认证的ATM网络500的示意图。相比上述一些实施例而言,本实施例的优势是可以减少网络通信,降低对交易时间的影响。
[0120]ATM网络500包括一个ATM 510。ATM 510包含以下软件组件:一个控制ATM 510运作的应用程序512和一个驱动程序套件514。在本实施例中,ATM 510执行CEN XFS标准,因此,驱动程序套件514包含一个XFS平台。XFS平台514包含服务提供商(包含出钞器服务提供商516)和设备驱动程序(包含出钞器驱动程序518)。该出钞器服务提供商516是标准服务提供商的修订版本,下文将会详述。
[0121]ATM 510包含一个应用程序510和XFS管理器514于其上执行的PC核心520 (也称ATM控制器),以及连接至ATM控制器520的多个设备(包括出钞装置522)。出钞装置522包括一个具备安全内存的安全微处理器524,固件526在该安全微处理器524中执行。出钞器固件526控制出钞器522的操作,因此仅在响应固件526的指令时出钞。
[0122]ATM网络500也包含一
个中间服务器530和一个交换器(或交换网络)530。
[0123]应用程序512与中间服务器530和XFS平台514进行通信,还为使用ATM 510的客户和服务人员提供一个常规的图形用户接口。在本实施例中,应用程序512可以是一个实施CEN XFS标准的未修改(或仅经细微修改)的常规ATM应用程序512。
[0124]中间服务器530为交换器540授权的每宗交易创建一个令牌。中间服务器530包含:(i) 一个与ATM 510交互的交换器代理550,及(i i) 一个包含安全加密处理器的出钞授权组件552.交换器代理550与应用程序512和交换器540进行通信,并转发它们之间的交易审批请求和响应。交换器代理550也复制对出钞授权组件552作出的一些审批响应(批准交易的审批响应)。
[0125]交换器540负责(通过中间服务器520)对从ATM 510收到的交易请求进行授权。交换器540是一款未修改的常规交换器,可同时连接至多台常规ATM,并同时对多台常规ATM的交易进行授权。
[0126]在ATM网络500的操作期间,用户用常规方式将其ATM卡插入ATM 510并输入PIN。ATM应用程序512以常规方式为交换器540创建并发送交易授权请求560,不过该请求包含一个为ATM 510和/或出钞器522提供的标识符(如果常规ATM应用程序不提供此标识符,则将修改该ATM应用程序以达到此目的)。该请求560实际上被发送到中间服务器530,然后交换器代理/路由器550将请求562转发至交换器540。交换器540以常规方式对请求562进行授权,并为ATM 510发回常规交易审批消息564。交换器代理/路由器550再次收到此消息564,并向ATM应用程序512发送一条常规审批消息566,但同时还向出钞器授权模块552发送一条审批消息568。
[0127]出钞器授权模块552使用此消息568创建一个验证令牌。采用上文实施例中所述的类似方式,出钞器授权模块552中的安全加密处理器使用一把保密但与出钞器522共享的密钥,创建令牌。共享密钥以图1所述的类似方式安全地予以传送。
[0128]令牌包含一条方法验证代码(MAC)消息。此MAC消息是使用以下各项作为输入内容而创建:已获授权的金额、为发送交易请求的出钞器522和/或ATM 510提供的标识符以及一个新鲜值。新鲜值可包含当前的日期和时间以作为定义的位序列;或者,新鲜值可包含一个序列号,每次创建令牌时,出钞器授权模块552会递增该序列号。
[0129]当ATM应用程序512收到常规审批消息566时,其会为批准金额向XFS平台514发送出钞命令(命令580)。
[0130]当出钞器服务提供商516收到该命令580时,该出钞器服务提供商516会向出钞器授权模块552发送令牌请求582,而该出钞器授权模块552则会提供令牌(创建的MAC消息)和新鲜值,作为响应消息584。
[0131]出钞器服务提供商516随后向出钞器驱动程序518发送响应消息584和一条出钞命令(统称“消息586”)。
[0132]出钞器驱动程序518向出钞器固件526发送响应消息584以及一条低级别(特定于出钞器的)出钞命令(统称“消息588”)。
[0133]出钞器固件526尝试使用操作以下输入的共享密钥,再次创建MAC代码:拟出钞金额(应用程序512最初提供的)、为出钞器522和/或ATM 510提供的标识符(从响应消息584得到的),以及新鲜值(从响应消息584得到的)。如果再次创建的MAC代码与消息588中收到的MAC代码匹配,则消息588与出钞器授权模块552最初发送的消息并无不同。
[0134]出钞器固件526也会检查出钞器522和/或ATM 510的标识符与为出钞器522和/或ATM 510提供的标识符的匹配情况。如果上述标识符不匹配,则出钞器固件526不执行相关交易。
[0135]此外,为确保上述情况非重放攻击(多次发送相同消息),出钞器固件526储存了其执行的最近交易的新鲜值(本文称“最近新鲜值”)。该出钞器固件526会将消息588中的新鲜值(本文称“当前新鲜值”)与最近新鲜值进行比较,如果当前新鲜值先于(换而言之,更近于)最近新鲜值,则出钞器固件526不执行交易。
[0136]应了解的是,本实施例具有这样一个优点,即交换器不需被修改,并可同时与常规ATM和根据本实施例所述的ATM —起使用。
[0137]应了解的是,其他实施例中,中间服务器530可能向驱动程序级组件(如出钞器服务提供商516)发送通知,而非响应该组件发出的请求。
[0138]应了解的是,可能使用其他加密技术替代上文所述的加密技术,或作为对其的补充。
[0139]应了解的是,当以特定形式(如组件或模块)描述软件时,仅为帮助理解,并无意对实施这些功能的软件的构造或组织形式予以限制。例如,模块可能被图解为分离的模块,但可以作为同源代码、独立组件执行,不过并不是所有的这些模块均可以结合,或者可在以任何其他便利方式构建的软件中实施此等功能。
[0140]此外,尽管软件模块被图解为在一个硬件上执行,但软件可以分布于单个设备的多个处理器,或采用任何其他便利的形式。
[0141]以上描述是说明性的,并非限制性的。在审阅上述说明后,所属领域的技术人员显然可明白许多其他实施例。因此实施例的范围应参照附加权利要求,连同此等权利要求所享有的等同物的完整范围来确定。
[0142]在之前对实施例的描述中,出于简化本披露目的,将各个特征分组到单个实施例中。这种披露方法不应被理解为,反映了权利要求的实施例具有多于各个权利要求中明确表述的特征。正如以下权利要求所反映,发明主题反而少于单个披露的实施例的所有特征。
【主权项】
1.一种操作出钞装置(I30、403或522)以验证出钞命令的方法,此方法包含: 获得主机(140或530)发出的一个令牌和一个出钞命今(步骤210);及 在处理出钞命令前验证令牌和出钞命令(步骤220)。2.权利要求1所述的方法,其中获得一个令牌和一个出钞命令还包括直接从设备(130,403或522)接至的控制器(520)接收所述令牌和出钞命令(步骤211)。3.任何上述权利要求所述的方法,其中验证令牌和出钞命令还包括独立重现令牌的一个版本,并将所述重现版本与令牌相比较,以确定是否存在匹配(步骤221),匹配即表明令牌和出钞命令有效,并表明出钞命令将予以执行。4.权利要求3所述的方法,其中独立重现还包括从设备(130、403或522)的安全微处理器(131或524)取得主机(140或530)的共享密钥,使用共享密钥重现版本,其中安全微处理器(131或524)仅可被设备(130、403或522)访问(步骤222)。5.任何上述权利要求所述的方法,其中此方法还包含在令牌和出钞命令无效时向设备(130,403或522)连接至的控制器(520)发送错误消息的步骤(步骤231)。6.任何上述权利要求所述的方法,其中验证还包括在令牌和出钞命令通过验证后启动货币出钞装置,以传出与出钞命令相关的货币金额(步骤232)。7.—个自助服务终端(110、401或510),包括: 一个控制器(520); 一个在控制器(520)上执行并可以与远程主机(140或530)进行交互的应用程序(120,402 或 512);及 一个连接至控制器(520)的出钞器(130、403或522),可以(i)接收包括出钞金额在内的出钞命令;(ii)接收远程主机(140或530)发出的授权令牌;(iii)验证授权令牌;及(iv)仅在授权令牌通过验证后传出出钞金额。8.权利要求7所述的终端,其中控制器(520)包含多个用以将应用程序(120、402或512)接口至出钞器固件(526)的出钞器驱动程序级组件(516、518),且其中一个出钞器驱动程序级组件(516、518)从远程主机(140或530)收到的授权令牌,并将该授权令牌发送至出钞器(130、403或522)。9.权利要求8所述的终端,其中出钞器驱动程序级组件(516、518)包含一个出钞器服务提供商(516)和一个出钞器驱动程序(518)。10.权利要求9所述的终端,其中出钞器服务提供商(516)与远程主机(140或530)通信。11.一种操作出钞装置(130、403或522)以验证出钞命令的方法,包括权利要求1_6中的任意一个技术特征或者技术特征的任意组合。12.—个自助服务终端(110、401或510),包括权利要求7_10中的任意一个技术特征或者技术特征的任意组合。
【专利摘要】提供了端到端设备认证。出钞器(130、403或522)从主机(140或530)接收一个授权令牌和出钞金额。对授权令牌和出钞金额进行验证,验证成功后,出钞器(130、403或522)会传出出钞金额。
【IPC分类】H04L29/06, H04L9/32
【公开号】CN104883350
【申请号】CN201510094377
【发明人】理查德·汉, 查尔斯·哈罗, 安德鲁·莫纳根
【申请人】Ncr公司
【公开日】2015年9月2日
【申请日】2015年2月27日
【公告号】EP2913975A2, EP2913975A3, US20150248674
转载请注明原文地址:https://www.famiwei.com/read-8136227.html