安全模块和保证支付信息安全的方法

文档序号:6509397阅读:233来源:国知局
安全模块和保证支付信息安全的方法
【专利摘要】一种计算机安全模块,对于由计算机处理器运行的操作系统不可见并且建立用于从支付外部设备接收支付数据的加密会话。
【专利说明】安全模块和保证支付信息安全的方法
[0001]相关申请的交叉引用
[0002]本申请要求2012年8月31提交的申请号为61/695,978的美国临时申请的权益。【背景技术】
[0003]本发明涉及支付外部设备和用于支付信息的安全方法,并且更具体地涉及安全模块和保证支付信息安全的方法。
[0004]保护包括支付卡数据和个人识别码(PIN)在内的支付信息以免失窃对于很多行业内的很多公司来说都是难题。为了处理该问题,支付卡行业(PCI)提供了用于例如读卡器、包含读卡器的键盘和PIN输入设备等支付外部设备的安全标准。标准需要这些外部设备满足对数据加密和加密密钥管理的一些要求。
[0005]例如,在传统的销售点(POS)系统内收集卡数据的每一种支付外部设备都必须能够利用PCI认可的数据加密安全模块及其自身的静态PCI格式的加密密钥来加密数据。加密密钥必须按照支付外部设备的序列号来跟踪。每一种支付外部设备都必须用特定的安全措施来操作、运输、维护和控制。
[0006]遵循现有PCI行业标准的支付外围设备的问题在于它们容易受到试图获取由银行或支付服务提供商提供的加密密钥的第三方“嗅探器(sniffer) ”设备的攻击。
[0007]因此希望提供一种保证支付信息安全的备选方法。

【发明内容】

[0008]根据本发明的教导,提供了一种安全模块和保证支付信息安全的方法。
[0009]一种示例性安全模块对于由计算机处理器运行的操作系统不可见并且建立用于从例如读卡器、个人识别码(PIN)小键盘或“密码键盘”和/或签名采集板等支付外部设备接收支付数据的加密会话。
[0010]一种示例性方法包括轮询外部设备,从外部设备接收应答消息,然后确定外部设备是否能够通过加密链接通信。如果外部设备能够接收会话密钥和加密数据,那么所述方法进一步包括建立新的会话密钥,由外部设备利用会话密钥建立加密会话并且监测会话结束条件。
[0011]在计算机内装入安全模块有助于使用并不存储静态密钥的低成本外部设备来代替存有银行或金融服务提供商加密密钥、安全模块和加密密钥管理程序的高成本支付外部设备。使用这些低成本的外部设备避免了相关库存以及跟存有密钥的高成本外部设备相关联的安保要求。
[0012]安全模块可以支持多个加密密钥槽以使安全模块能够通过例如对金融网络交易以及零售支付收款方网络交易的支持而管理用于不同环境和系统的不同类型的加密密钥。
[0013]安全模块能够用低级未加密协议轮询各个外部设备以确定在每一个端口上是哪一种类型的外部设备以及外部设备是否能够在加密会话中运行。这就允许零售系统装入可加密的外部设备和不可加密的外部设备的组合。[0014]安全模块可以针对每一个新会话动态地建立不同的会话密钥。在示例性实施例中,外部设备只要在外部设备通电时就存储会话密钥,并且只要加密会话未中断或未结束就利用会话密钥加密其发送至安全模块的数据。
[0015]安全模块在其最初建立会话之后可以继续周期性地或者在预定的时间轮询外部设备以建立继续会话的新会话密钥。例如,安全模块可以利用第一密钥建立初始通信并随后向外部设备发送第二密钥以供在后续的通信中使用,第二密钥可以适应外部设备的要求。外部设备用由安全模块建立的新会话密钥替换其存储器内的会话密钥。
[0016]附图简要说明
[0017]本发明可以具体化为各种部件和部件的设置方式以及各种方法。附图仅仅是为了示出示例性的实施例和可选方案而不应被解读为限制本发明。
[0018]图1是交易系统和包含安全模块的计算机的框图。
[0019]图2是示出了安全模块操作的流程图。
[0020]图3是交易系统和连接至计算机的外部安全模块的框图。
[0021]图4是交易系统和包含安全模块的外部设备的框图。
【具体实施方式】
[0022]参照图1,交易系统包括计算机10。计算机10包括主板18,其中包括一个或多个处理器12和安全模块14。计算机10另外包括显示器32以及一个或多个支付外部设备30。示例性计算机10可以包括设置为销售点(POS)交易计算机的个人计算机。也可以设想其他的示例性计算机和环境。
[0023]处理器12运行操作系统例如Microsoft、Linux、Apple或其他的操作系统。处理器12可以运行其他可存储在计算机可读取介质例如存储器内的计算机软件。例如,计算机10可以运行在显示器32上显示交易屏幕的交易软件20以用于在交易期间引导操作人员完成交易并且接收操作人员的输入和选择。
[0024]计算机10进一步包括用于为显示器32提供显示屏的图形电路,用于连接至网络50的网络电路,以及外部设备连接电路例如通用串行总线(USB)、串行RS-232、串行RS-485、火线或者用于连接包括部分或全部外部设备30在内的外部设备的其他电路。操作系统20可以跟位于驱动层的部分或全部的外部设备30建立连接。
[0025]计算机10可以通过网络50耦合至包括备用或远程(例如云)主机60在内的其他计算机。网络50可以包括使用传输控制协议/网际协议(TCP/IP)的网络。网络50可以包括局域网和广域网的组合。网络50可以包括无线或有线网络的任意组合。网络50可以包括专用网络和公用网络的组合,公用网络包括也被称为互联网的全球通信网。
[0026]安全模块14可以是计算机10的一部分,或者是在制造主板18期间集成在内,或者是插入主板18上的插槽内(图1)。处理器12和安全模块14可以是独立的模块。可选地,安全模块14的功能可以整合到处理器12内。例如,处理器12可以包括Intel CorevPro品牌的处理器。
[0027]在另一些示例性实施例中,安全模块14可以在计算机10的外部。例如,安全模块14可以装入其自身单独封装的部件内以用于改装现有的不具备内置功能的计算机(图3),或者装入外部设备内(图4),其中的任何一种情况下均可通过外部设备连接电路连接至计算机10。
[0028]安全模块14可以利用硬件逻辑、软件逻辑或两者的组合来实现。
[0029]安全模块14利用加密来保护从一种或多种支付外部设备30接收的客户信息。安全模块14可以通过I/O模块16和外部设备连接电路利用标准协议和/或外部设备协议跟支付外部设备30通信。例如,安全模块14可以利用标准通用串行总线(USB)协议传输加密数据。安全模块14和安全I/O模块16可以封装在公共机壳内并且被整体认定为一种不例性的安全模块。
[0030]安全模块14通过安全I/O模块16跟支付外部设备30建立起加密会话。支付外部设备30随后加密其发送至安全模块14的所有数据。安全模块14将从外部设备30接收的数据解密并提供给交易软件22。安全模块14还加密其发送至外部设备30的所有数据。
[0031]安全模块14优选地独立于操作系统20控制来自支付外部设备30的加密数据流,其中操作系统20仅在驱动层跟支付外部设备30建立连接。安全模块14对于操作系统20不可见。操作系统20针对安全模块14或者安全模块14和外部设备30之间的加密会话没有驱动程序或者其他的控制或交互程序。在IntelCorevPro品牌处理器的情况下,操作系统20针对执行安全模块14功能的处理器部分没有驱动程序或者其他的控制或交互程序。这样就使通过操作系统20骗取对安全模块14内加密密钥访问权的几率最小化。
[0032]安全I/O模块16有助于在安全模块14的控制下将安全模块14连接至外部设备30。安全1/0模块16在上电后轮询所有的外部设备以获取唯一的外部设备或设备标识符。安全I/O模块16确定是否存在可接受与之通信的设备。如果唯一的标识符跟认可设备列表内对应的标识符匹配,那么安全I/O模块16就查询外部设备以确定是否能够通过加密的数据链接通信。如果外部设备能够通过加密的数据链接通信,那么安全I/O模块16就向外部设备发送文本消息,安全I/O模块16通过该文本消息预测某种加密响应。如果响应跟预测的相应匹配,那么安全I/O模块16就跟外部设备建立会话,不时地“测试”外部设备的唯一标识符以确保尚未以某种方式替换为代用的外部设备。
[0033]安全模块14还存储加密密钥40,其中可以包括通信或会话密钥、金融服务提供商密钥和零售提供商密钥。主机60可以管理密钥40并将其提供给安全模块14。
[0034]安全模块14建立会话密钥以跟每一个单独的支付外部设备30通信。由此,安全模块14提供多个密钥槽以用于跟多个不同的支付外部设备30建立加密连接。
[0035]示例性的支付外部设备30可以单独地或者组合地包括读卡器、个人识另码(PIN)小键盘或“密码键盘”以及签名采集板。支付外部设备30可以另外包括显示器。读卡器可以读取一种或多种类型的支付卡,包括但不限于信用卡、借记卡、智能卡或其他卡片。
[0036]可以设想出不同的组合。例如,显示器和密码键盘可以位于公共机壳内并且通过同一种连接耦合至计算机10,而读卡器可以是单独封装的支付外部设备30,通过独立的第二连接接至计算机10。
[0037]支付外部设备30可以是一种存储加密密钥的类型或者是另一种并不存储加密密钥的类型。
[0038]支付外部设备30优选地抗干扰。抗干扰的特征可以包括检测外部设备机壳打开以及从外部设备存储器中删除密钥和/或可选地删除外部设备操作软件或固件从而禁用外部设备30的电路和开关。如果支付外部设备30并未存储加密密钥,那么支付外部设备30内的个体部件可能仅仅满足用于这些类型支付设备的PCI标准的相关要求。例如,装有并未存储加密密钥的密码键盘和读卡器的支付外部设备30优选地仍然可以抗干扰,并且小键盘和读卡器能够防止破坏和嗅探。
[0039]在一个不例性实施例中,外部设备30包括一种或多种唯一的设备标识符例如序列号和种子加密密钥。安全模块14也有种子加密密钥。示例性的会话密钥得自种子密钥以及利用设备标识符存储在查询表62内的补充密钥的组合
[0040]查询表62存储设备标识符以用于能够通过加密连接通信的外部设备30。在一个示例性实施例中,查询表62还存储用于跟这些外部设备30建立加密会话的密钥。
[0041]查询表62可以存储在任意合适的位置。例如,主机60可以存储查询表62。在另一个示例中,计算机10可以局部地存储查询表62。在又一个示例中,安全模块14可以存储查询表62。
[0042]安全模块14可以跟并不支持加密会话的外部设备30通信。安全模块14也可以跟包括存储加密密钥的支付外部设备在内的其自身具有安全模块的外部设备30通信。安全模块14并不跟这些外部设备建立加密会话,原因在于来自这些外部设备的所有支付数据都已经是安全格式,并且对这些外部设备的指令必须以这些外部设备自用的语言保存。
[0043]安全模块14优选地抗干扰以阻止访问密钥。抗干扰可以包括一种或多种电子和机械的安保措施以避免对安全模块14的物理干扰。例如,安全模块14可以包括检测计算机机壳的打开、对安全模块14或围绕安全模块14的机壳的物理入侵以及从安全模块14中删除密钥和/或可选地删除软件或固件从而禁用安全模块14的电路和开关。
[0044]安全I/O模块16可以封装在跟安全模块14相同的物理机壳内。由此,安全I/O模块16可以依赖于跟用于安全模块14的实施方式相同的抗干扰设计。
[0045]计算机10可以包括用于其用途的附加外部设备。例如,计算机10可以包括输入设备,输入设备可以跟显示器32相结合以构成触摸屏。计算机10可以进一步包括条形码阅读器和收据打印机。
[0046]现参照图2,示出了操作安全模块14的示例性方法。
[0047]在步骤60,安全模块14通过安全I/O模块16轮询外部设备30。安全模块14可以用低级未加密协议例如外部设备30自用的USB、串行或其他协议轮询每一种外部设备30。例如,安全模块14可以向外部设备30发送明文消息。在另一个示例中,安全模块14可以用明文消息发送令牌。这就允许安全模块14支持可加密的外部设备30和不可加密的外部设备30的组合。
[0048]在一个示例性实施例中,轮询消息包括对外部设备标识符的请求,例如存储在外部设备30内的外部设备序列号或USB人机接口设备(HID)配置文件。安全模块14可以请求另外或其他的信息例如外部设备30是否能够如下所述通过加密连接来通信。
[0049]安全模块14可以随着系统的启动和/或在打开计算机10时轮询每一种外部设备30。安全模块14也可以在各个外部设备30连接至计算机10或上电之后或者在操作系统20识别出各个外部设备30并载入其驱动程序之后轮询各个外部设备30。
[0050]在步骤62,安全模块14从外部设备30接收应答消息。
[0051]在一个示例性实施例中,安全模块14从包含外部设备标识符的外部设备30接收未加密的回复消息。例如,安全模块14可以从外部设备30接收明文消息。在另一个示例中,安全模块14可以用明文消息接收令牌。
[0052]在步骤64,安全模块14确定外部设备30是否能够通过加密连接通信。如果外部设备30能够接收会话密钥并加密其送往安全模块14的数据,那么操作就前进至步骤68。否则操作就在步骤66终止,其中安全模块14并未建立加密连接。
[0053]在一个示例性实施例中,安全模块14在查询表62中查找外部设备标识符和补充的加密密钥。如果被轮询的外部设备30的外部设备标识符位于列表内,那么操作就前进至步骤68。
[0054]在步骤68,安全模块14建立新的会话密钥。安全模块14可以针对每一种外部设备30建立相同或不同的会话密钥。
[0055]在一个不例性实施例中,安全模块14用未加密消息向外部设备30发送补充密钥。外部设备30组合补充密钥和种子密钥以构成组合式会话密钥。
[0056]在步骤70,安全模块14通过使用会话密钥的连接跟外部设备30建立加密会话。
[0057]在一个示例性实施例中,安全模块14发送指令以将加密的文本消息发送至外部设备30。外部设备30利用会话密钥加密文本消息并将加密的文本消息发送至安全模块14。安全模块14接收加密的文本消息,组合补充密钥和种子密钥以构成会话密钥,并尝试解密消息。如果安全模块14接收应答消息,能够解密消息并且确定解密的文本消息跟发送的测试消息匹配,那么安全模块14就将外部设备30作为信任设备接受并开始加密会话。否则,安全模块14就不将外部设备30作为信任设备处理并且不会开始加密会话。
[0058]安全模块14可以针对每一个新会话动态地建立不同的会话密钥。在示例性实施例中,外部设备30只要在外部设备30通电时就存储会话密钥,并且只要加密会话未中断或未结束就利用会话密钥加密其发送至安全模块14的数据。安全模块14利用相同的会话密钥加密其发送至外部设备30的所有数据。
[0059]在另一个示例性实施例中,安全模块14在其最初建立会话之后可以继续周期性地或者在预定的时间轮询外部设备30以建立继续会话的新会话密钥。例如,安全模块14可以利用第一密钥建立初始通信并随后向外部设备30发送第二密钥以供在后续的通信中使用,第二密钥可以适应外部设备30的要求。外部设备30用由安全模块14建立的新会话密钥替换其存储器内的会话密钥。
[0060]在步骤72,安全模块14监测会话的结束条件。如果安全模块14在步骤74检测到会话结束条件,那么安全模块14就在步骤76结束会话。
[0061]例如,如果安全模块14因为外部设备30离线或掉电而并未接收到对消息的响应,或者如果安全模块14接收到的响应中没有外部设备标识符或者没有在查询表62内的外部设备标识符,那么安全模块14就结束会话。
[0062]有利地,在计算机10内装入安全模块14有助于使用不具备内置PCI格式的银行或金融服务提供商的加密密钥、安全模块和加密密钥管理程序的低成本外部设备。使用这些低成本外部设备,由于它们并不存储静态密钥,因此就通过记录和跟踪外部设备序列号而避免了对安保措施的相关需求。
[0063]安全模块14可以支持多个加密密钥槽以使安全模块14能够通过例如对金融网络交易以及零售支付收款方网络交易的支持而管理用于不同环境和系统的不同类型的加密密钥。[0064]安全模块14能够用低级未加密协议轮询各个外部设备30以确定在每一个端口上是哪一种类型的外部设备以及外部设备是否能够在加密会话中运行。这就允许零售系统装入可加密的外部设备和不可加密的外部设备的组合。
[0065]参照图3,安全模块14也可以装入外部安全管理器78内。
[0066]安全模块14以类似于图1的方式跟外部设备30建立加密链接,不同之处在于安全模块14是在计算机90外部。
[0067]通信控制器84帮助在安全模块14和计算机90之间通信并且类似于安全I/O模块16。在一个可选实施例中,控制器84的功能可以跟安全模块14的功能合并。外部安全管理器78和计算机90之间的连接可以包括USB连接。
[0068]参照图4,安全模块14也可以装入连接有其他数据输入外部设备的外部设备内。在一个示例性实施例中,安全模块14被装入连接有读卡器82的PIN输入外部设备80内。PIN输入外部设备80和读卡器82可以集成到公共机壳内或者设置到单独的机壳内。
[0069]PIN输入外部设备80可以另外地包括控制器84、显示器86和用于记录PIN的小键盘88。
[0070]通信控制器84在加密会话中将输入的PIN数据送给计算机90。计算机90和PIN输入外部设备80之间的连接可以包括USB连接。在一个可选实施例中,控制器84的功能可以跟安全模块14的功能合并。
[0071]安全模块14用读卡器82建立加密链接并且在向控制器84和计算机80发送数据之前重新加密来自读卡器82的数据。
[0072]读卡器82能够在其读卡时加密卡数据。读卡器82可以包括种子密钥以用于在由安全模块14轮询时的标识和/或验证。
[0073]尽管已经具体参照本发明的某些优选实施例介绍了本发明,但是在所附权利要求的精神和范围内能够实现本发明的多种变形和修改。
【权利要求】
1.一种计算机安全模块,对于由计算机处理器运行的操作系统不可见并且建立用于从支付外部设备接收支付数据的加密会话。
2.—种计算机,包括: 运行操作系统的处理器;以及 安全模块,对于操作系统不可见并且建立用于从支付外部设备接收支付数据的加密会话。
3.如权利要求2所述的计算机,其中计算机进一步包括其中包含处理器和安全模块的机壳。
4.如权利要求2所述的计算机,其中计算机进一步包括其中包含处理器的第一机壳以及在第一机壳外侧的其中包含安全模块的第二机壳。
5.一种保证支付信息安全的方法,包括: 由计算机的安全模块向外部设备发送密钥;以及 由安全模块利用密钥跟外部设备建立对于由计算机处理器运行的操作系统不可见的加密会话。
6.如权利要求5所述的方法,进一步包括: 由安全模块用未加密消息轮询外部设备,未加密消息包括对外部设备的外部设备标识符的请求; 接收包含外部设备标识符的未加密应答消息;并且 确定外部设备标识符是否在能够通过加密连接通信的外部设备列表内。
7.如权利要求5所述的方法,其中轮询包括 在计算机启动期间轮询外部设备。
8.如权利要求5所述的方法,其中轮询包括 在外部设备连接至计算机之后轮询外部设备。
9.如权利要求6所述的方法,其中密钥包括补充密钥以用于外部设备内存储的种子密钥;其中发送进一步包括将补充密钥发送至外部设备;并且其中外部设备组合补充密钥和种子密钥以构成会话密钥。
10.如权利要求9所述的方法,其中在安全模块内还存有种子密钥的副本并且其中建立包括: 由安全模块组合补充密钥和种子密钥的副本以构成会话密钥的副本。
11.如权利要求10所述的方法,其中建立进一步包括: 向外部设备发送文本消息和用于加密的指令并返回加密的文本消息; 从外部设备接收应答消息; 在应答消息为可解密并且解密的应答消息跟文本消息匹配时开始加密会话。
12.如权利要求5所述的方法,进一步包括: 由安全模块向另一种外部设备发送不同的密钥;并且 由安全模块利用不同的密钥跟其他的外部设备建立另一种加密会话。
13.如权利要求5所述的方法,其中密钥不同于来自跟外部设备的先前加密会话中的先前密钥。
14.如权利要求5所述的方法,进一步包括:确定加密会话已结束; 由安全模块向外部设备发送不同的密钥;并且 由安全模块利用不同的密钥跟外部设备建立另一种加密会话。
15.如权利要求6所述的方法,进一步包括: 由安全模块在加密会话期间轮询外部设备; 由安全模块在加密会话期间从外部设备接收响应;并且 由安全模块向外部设备发送不同的密钥以继续加密会话。
16.如权利要求5所述的方法,进一步包括: 由安全模块监测加密会话中的会话结束条件;并且 一旦检测到会话结束条件就终止加密会话。
17.如权利要求6所述的方法,进一步包括: 由安全模块监测加密会话中的会话结束条件;并且 一旦检测到会话结束条件就终止加密会话; 其中会话结束条件包括外部设备未能响应来自安全模块的消息。
18.如权利要求6所述的方法,进一步包括: 由安全模块监测加密会话中的会话结束条件;并且 一旦检测到会话结束条件就终止加密会话; 其中会话结束条件包括从外部设备标识符未在列表中的外部设备接收响应。
19.如权利要求6所述的方法,进一步包括: 由安全模块用另一条未加密消息轮询另一种外部设备,另一条未加密消息包括对其他外部设备的另一种外部设备标识符的请求;并且 确定其他的外部设备标识符未在外部设备的列表内。
20.如权利要求19所述的方法,其中其他的外部设备包括其自身具有安全模块的另一种支付外部设备。
21.如权利要求19所述的方法,其中其他的外部设备不是支付外部设备。
22.—种保证支付信息安全的方法,包括: 由计算机安全模块用消息轮询外部设备,消息包括对外部设备的外部设备标识符的请求;并且 在外部设备以包含外部设备标识符的应答消息响应并且外部设备标识符位于能够通过加密连接通信的外部设备列表内时由安全模块跟外部设备建立加密会话; 其中加密会话对于由计算机处理器运行的操作系统不可见。
23.一种计算机,包括权利要求2-4任意一个技术特征或者任意技术特征的组合。
24.一种方法,包括权利要求5-20任意一个技术特征或者任意技术特征的组合。
【文档编号】G06Q20/38GK103678966SQ201310385277
【公开日】2014年3月26日 申请日期:2013年8月29日 优先权日:2012年8月31日
【发明者】罗恩·威廉·罗杰斯 申请人:Ncr公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1