增强加密算法的强度的系统和方法与流程

未命名 09-11 阅读:51 评论:0

增强加密算法的强度的系统和方法
1.本技术是申请号为“201980079745.2”,申请日为“2019年10月2日”,题目为“增强加密算法的强度的系统和方法”的中国专利申请的分案申请。
2.相关申请的交叉引用
3.本技术要求于2019年7月1日提交的美国专利申请号16/458,961的优先权,该申请是于2018年11月29日提交的美国专利申请号16/205,119的部分继续申请,该部分继续申请是于2018年10月2日提交的美国临时申请号62/740,352的临时申请。美国专利申请号16/458,961、美国专利申请号16/205,119、以及美国临时申请号62/740,352其全部内容通过引用并入本文。
技术领域
4.本公开涉及密码学,并且更具体地,涉及用于非接触式卡的密码认证的系统和方法。


背景技术:

5.数据安全和交易完整性对企业和消费者至关重要。随着电子交易构成越来越大的商业活动份额,这种需求继续增长。
6.在某些情况下,重要的是对消息的发送者进行认证(也就是说,验证消息实际上来自被标识为消息的发起者的用户或设备)。同样重要的是,在接收之前验证消息没有被篡改(也就是说,消息中包含的信息保持与传输该消息时一样)。
7.常规地,消息认证码(message authentication code,mac)已经用于此目的。为了生成mac,发送者使用共享密钥和mac算法以根据消息数据计算mac值。然后,发送者将消息和mac值发送给也拥有密钥的接收者。接收者将带有密钥的mac算法应用于接收到的消息,以生成接收者mac。如果接收者的mac与与消息一起发送的mac匹配,则消息被验证。
8.然而,像任何密码技术一样,mac容易受到攻击(包括暴力攻击)。为了测量其抗攻击性,mac可以与强度(通常以位表示)相关联。例如,100位有效强度指示攻击者使用暴力技术需要执行2
100
次操作(1.27x10
30
)以便猜测mac。100位mac比80位mac更强,对于80位mac,攻击者需要执行2
80
次操作(1.21x10
24
)。
9.与mac或其他密码构造的所需强度相关的某些约束可以被置于数据上,使得至少需要最小安全级别(例如,100位)。例如,这些要求可能是组织的安全程序、法规要求或已知安全威胁的结果。
10.mac(或任何密码构造)的强度高度依赖于用于构建mac的加密算法和密码密钥。在某些情况下,密钥的大小或所使用的算法的类型可能受到密码系统的某些元素(例如,安全逻辑、处理能力、存储器使用、后端硬件安全模块等)的限制。
11.因此,如果需要一定的安全级别(例如100位),可能出现问题,但是由于对系统的限制,只有较低的安全级别(例如60位)是可容易实现的。
12.类似的问题出现在其他密码领域。例如,消息可以在网络上进行传输之前被加密。
可以使用依赖于密码密钥的给定加密算法对消息进行加密,其中加密的强度取决于密钥的大小。密码强度同样以位进行测量;例如,众所周知的高级加密标准-128(aes-128)使用128位的密钥大小,并被设计为提供128位的密码强度。
13.然而,应该注意的是,密钥大小不一定与所提供的密码强度直接相关,因为强度也取决于正在使用的算法。例如,当利用168位密钥应用三重数据加密算法(三重des)时,需要2
112
个动作的攻击算法是已知的;因此,尽管使用了168位密钥,三重des仅提供112位的密码强度。
14.有时,改进的攻击在加密标准付诸实施后开发。因此,某一天具有一定高安全级别的加密协议在下一天可能具有较低的安全级别。
15.除了密码强度之外,在选择加密算法和密钥大小时,还有其他几个考虑因素。有些算法比其他算法运行得更快,并且一般来说增加密钥大小也增加加密消息所需的时间的量。因此,系统管理员需要平衡由算法提供的安全性和特定的应用(其可能需要一定的速度或回转时间)。
16.因此,当应用加密算法时可能产生问题,其中需要一定的安全级别,但是由于对系统或数据的限制,这个安全级别可能不可用或不实用。


技术实现要素:

17.示例性实施例涉及用于从多个弱构造、弱构造和共享秘密的组合或者多个构造和多个共享秘密的组合构建强密码构造的方法、介质和系统。
18.根据示例性实施例,可以访问要编码的信息。该信息可以与由接收者对其请求认证的非接触式卡有关。存储在非接触式卡上的共享秘密可以被访问,其中共享秘密对接收者也是已知的。共享秘密和要编码的信息可以被组合以生成组合信息。第一主密钥也可以从非接触式卡中获取,并且可以用于生成多样化会话密钥。消息认证码(mac)算法可以被应用于组合信息以生成mac输出,并且mac输出的至少一部分可以被传输给接收者。
19.完全或部分mac输出可以与随机元素组合,并且随机元素可以与mac输出的至少一部分一起被传输给接收者。
20.加密算法可以应用于全部或部分mac输出,以生成经加密的输出。传输全部或部分mac输出包括传输经加密的输出。加密算法可以基于存储在非接触式卡的存储器中的第二主密钥来应用。
21.共享秘密可以是用于初始化非接触式卡的随机数。
22.第一主密钥可以与存储在非接触式卡的存储器中的计数器值组合,以生成多样化会话密钥。
23.要编码的信息可以是与非接触式卡相关的状态信息。
24.在另外的实施例中,可以在服务器处接收消息。消息可以包括经加密的消息认证码(mac)和与用户的账户相关的内容。可以标识数据库中和与消息相关联的账户相关的条目。可以获取与账户相关联的第一和第二主密钥,其中第一和第二主密钥是在针对账户对卡进行初始化时生成的。第一主密钥可以用于生成第一多样化会话密钥,并且第二主密钥可用于生成第二多样化会话密钥。经加密的mac可以使用第二多样化会话密钥解密以获取mac数据,并且可以使用第一主密钥将mac算法应用于消息的内容以生成服务器侧mac。可以
将服务器侧mac与获取的mac数据进行比较,并且当服务器测mac对应于获取的mac数据时,消息可以被认证。当两个mac不对应时,系统可能抑制对消息进行验证。
25.账户还可以与计数器值相关联,该计数器值在卡被认证时递增。第一和第二多样化会话密钥可以至少部分地基于计数器值来生成。计数器值可以包含在消息的内容中。
26.也可以获取卡和服务器已知的共享秘密。将服务器侧mac与获取的mac数据进行比较可以包括反转获取的mac和共享秘密的组合。
27.共享秘密可以是对卡进行初始化时生成的随上机数。共享秘密可以是在与卡建立通信会话时生成的随机数。
28.在一些实施例中,在将服务器侧mac与获取的mac进行比较之前,可以将随机数据添加到获取的mac中。
29.在另外的实施例中,一种装置可以包括至少具有存储器、处理器和发射器的非接触式支付卡。
30.存储器可以存储第一主密钥和与认证接收者共享的秘密。共享秘密可以具有大小。
31.处理器可以被配置为对要加密的信息执行加密程序。加密程序可以包括将待加密的信息与共享秘密进行组合,并使用第一主密钥对组合的结果进行加密以生成经加密的信息。加密程序可以与安全级别相关联。
32.发射器可以被配置为将经加密的信息传输给认证接收者。传输可以与大于加密程序的安全级别的安全要求相关联。共享秘密的大小可以被选择为足够,使得当与加密程序和用于生成经加密的信息的任何其他密码结构组合时,所组合的安全级别超过安全要求。
33.存储器还可以存储计数器值,当卡被认证时该计数器值递增。第一主密钥可以与计数器值组合,以生成用于加密组合的结果的多样化会话密钥。
34.组合的结果可以用作消息认证码(mac)。在一些情况下,其他密码结构可以包括用于利用存储在存储器中的第二主密钥生成mac的mac算法。存储器还可以存储计数器值,该计数器值在卡被认证时递增,并且第二主密钥可以与计数器值组合以生成由mac算法使用的多样化会话密钥。mac算法可以与安全级别相关联,并且共享秘密的大小和加密算法安全级别可能不足以满足安全要求,但是当与mac算法的安全级别结合时足以满足安全要求。
35.可以清楚地设想的是,本文中描述的各种实施例可以一起使用,尽管为了简洁起见,不是全部可能的组合通过示例的方式清楚地示出。例如,可以通过信息计算消息认证码(mac),然后用加密算法对其进行加密(反之亦然),可以将共享秘密隐藏在mac中(或者反之亦然,如在使用共享秘密对mac进行编码的情况下),可以对共享秘密进行加密,可以对数据应用加密方案两次(使用相同或不同的算法结合不同的加密密钥)等。系统可以用于准备和发送认证消息以及接收和读取认证消息。
附图说明
36.图1a描绘了适用于与示例性实施例一起使用的环境。
37.图1b描绘了具有物理令牌的非接触式卡的示例。
38.图1c描绘了示例性物理令牌的结构。
39.图2a描绘了与非接触式卡的所有者相关联的移动应用的示例性界面。
40.图2b描绘了当由所有者的移动设备上的读取器读取物理令牌时的示例性界面。
41.图2c描绘了非接触式卡和客户端设备之间的数据交换的示例。
42.图2d描绘了适用于与示例性实施例一起使用的示例性数据结构。
43.图3是示出根据示例实施例的密钥操作的流程图。
44.图4是根据示例实施例的密钥系统的图。
45.图5是根据示例实施例的生成密码的方法的流程图。
46.图6a是示出根据示例实施例的密钥多样化的过程的流程图。
47.图6b是更详细地描绘图6a的框606的流程图。
48.图7描绘了适用于与示例性实施例一起使用的示例性计算系统。
49.图8描绘了适用于与示例性实施例一起使用的示例性网络环境。
具体实施方式
50.示例性实施例提供了用于从多个弱构造、弱构造和共享秘密的组合或者多个构造和多个共享秘密的组合构建强密码构造的技术。使用本文描述的技术,相对弱的构造(即,各自单独提供低于安全要求(本文称为s
security_requirement
)的密码强度的构造)可以被组合以产生相对强的构造(即,提供高于安全要求的加密强度的构造)。
51.根据示例性实施例,相对较弱的密码构造被分层以放大它们的有效位强度。在一个示例中,可以提供有效位强度为s
shared_secret
的共享秘密,并且可以将有效位强度为s
mac_algorithm
的mac算法应用于共享秘密。虽然s
shared_secret
和s
mac_algorithm
中的每一个可能小于s
security_requirement
,但是如上所述组合这两个元素导致s
shared_secret
+s
mac_algorithm
的有效位强度。
52.示例性实施例的重要特征是密码操作被分层以增加所得到的密码强度,而不是并排应用这种操作(这不会导致密码强度方面的增加)。换句话说,将第一加密操作应用于数据以生成密码编码的数据,并且然后将第二加密操作应用于密码编码的数据以生成另外的密码编码的数据。例如,可以将mac应用于数据以生成mac输出,并且然后可以进一步加密mac输出以放大经组合的密码操作的强度。实际上,加密中mac输出的分层有效地增强了用于各个密码操作的密钥的强度。如果您偏好您原来的措辞,则把“所生成的经mac的数据”改为“生成经mac的数据”53.这与(例如)其中对数据进行加密并从经加密的数据中生成mac,并且然后将mac和经加密的数据两者包含在消息中的系统形成对比。虽然加密和mac算法两者使用密码密钥,但密码操作是独立应用的,并且因此这个序列不会放大或增强密码密钥强度。
54.作为用于增加有效密钥强度的分层的说明性示例,如果共享秘密具有32位的长度,则需要2
32
次操作来穷举地搜索可能密钥值的整个集合。如果共享秘密随后由有效强度为72位的mac算法处理,则潜在的暴力攻击者需要:(1)尝试72位mac密钥的每个值,以及(2)对于mac密钥的每个潜在值,尝试32位共享秘密的每个可能的配置。因此,暴力攻击者将需要尝试2
32
*2
72
个可能的值,导致需要2
104
次操作或者104位的有效位强度。
55.因此,可以看出,如果s
security_requirement
为100,并且密码学家只能访问具有72位强度的mac算法和32位的共享秘密,则可以通过将mac算法应用于共享秘密来生成满足安全要求的密码构造。在本示例中,发生分层是因为共享秘密包含在mac操作中
56.通过加密所得到的mac,可以进一步增强构造的强度。如果所使用的加密算法具有s
encryption_algorithm
的有效位强度,则所得到的构造的强度将对应于s
shared_secret
+s
mac_algorithm
+s
encryption_algorithm
。这个过程可以以各种顺序或组合重复和/或应用,以产生期望的有效位强度。
57.多个这样的示例被认为在本发明的范围内。例如,一些所设想的实施例包括:通过共享秘密(单独地或与其他数据一起)计算mac;将mac应用于消息内容,并且然后加密所得到的mac;将第一mac算法应用于消息内容或共享秘密(单独地或与其他数据一起),并且然后将第二mac算法(与第一算法相同或不同)应用于所得到的输出;通过共享秘密(单独地或与其他数据一起)计算mac并加密结果;以及利用第一加密算法/密钥加密数据以产生经加密的数据,并且然后使用第二加密算法/密钥进一步加密经加密的数据。在这个后一实施例中,设想可以组合不同的加密算法,或者可以应用相同的加密算法多次。在任一情况下,加密算法应该与不同的加密密钥一起使用。要组合的密码构造的有效位强度不必相同。
58.如本文所用,加密算法通常指接受输入并对输入进行编码以生成可由授权方解密的经加密的内容的算法。另一方面,mac算法通常旨在不是可逆的(即,当mac算法应用于输入以生成mac输出时,输入通常不能根据mac输出重构)。替代地,接收者要么需要被提供有输入的副本,或者需要已经拥有输入。接收者可以对输入使用与由发送者应用的相同的密钥来运行相同的mac算法;如果由接收者生成的mac输出与由发送者发送的mac输出相同,则接收者知道由发送者考虑的输入和由接收者考虑的输入是相同的(并且消息在接收之前没有被篡改或损坏)。
59.为了进一步增加示例性实施例的安全性,由mac和/或经加密的算法应用的密钥可以是基于发送者和接收者已知的变化的计数器值计算的多样化会话密钥。在一些实施例中,密码构造可以用于认证与智能卡(诸如信用卡)相关联地发送的消息。卡上的芯片可以保持每次使用该卡时递增的计数器,并且远程校验服务器可以保持类似的计数器。计数器可以用于计算mac/加密密钥。因此,即使暴力攻击者能够重建用于生成或保护特定消息的密钥,下一条消息也将基于新的计数器值利用新的密钥来构建。因此,攻击者能够破解的密钥进对于一次使用是良好的;它不能用来攻击未来的通信。
60.下面主要针对基于对称密钥的加密算法来描述示例性实施例。尽管如此,可以理解的是,这个解决方案不限于这些类型的算法,并且也适用于非对称算法。
61.如上所述,一些实施例可以用于保护与用于具有嵌入式芯片的智能卡的认证消息相关联地传输的消息。在提供关于增加认证消息的密码强度的具体方面的更多细节之前,接下来描述其中可以使用这种实施例的示例性环境。
62.实施例的以下描述提供了参考附图标记的非限制性代表性示例,以具体描述本发明不同方面的特征和教导。所描述的实施例应该被认为能够与来自实施例的描述的其他实施例分离地或以组合的方式实施。实施例的描述应该有助于在这样的程度下对本发明进行理解,即没有具体涵盖但在已经阅读了实施例的描述的本领域的技术人员的知识范围内的其他实施方式将被理解为与本发明的应用一致。
63.图1a示出了根据示例实施例的数据传输环境100。如下文进一步讨论的那样,系统100可以包括非接触式卡,该非接触式卡包括物理令牌106、客户端设备104、网络114和多个服务器116、128。尽管图1a示出了组件的特定配置,但是本领域的普通技术人员将理解,可
以使用包括更多或更少组件的其他配置或者另一配置中的组件。
64.环境100可以包括一个或多个非接触式卡,这将在下面参考图1b进一步解释。在一些示例中,非接触式卡可以与客户端设备104进行无线通信,例如nfc通信。非接触式卡可以包括物理令牌106,诸如非接触式芯片(参见图1c)。物理令牌106可以维护上述计数器值108的副本,每次由读取器(诸如nfc读取器110)读取物理令牌时该计数器值可以递增。
65.环境100可以包括客户端设备104,其可以是支持网络的计算机。如本文所述,支持网络的计算机可以包括但不限于:例如计算机设备、或通信设备,包括例如服务器、网络设备、个人计算机(personal computer,pc)、工作站、移动设备、电话、手持pc、个人数字助理(personal digital assistant,pda)、瘦客户端、胖客户端、因特网浏览器或其他设备。客户端设备104也可以是移动设备;例如,移动设备可以包括来自的iphone、ipod、ipad或运行苹果的操作系统的任何其他移动设备、运行微软mobile操作系统的任何设备、和/或任何其他智能手机或类似的可穿戴移动设备。
66.包括物理令牌106的客户端设备104和/或非接触式卡可以与用户102相关联,该用户可以是非接触式卡的所有者。用户102可以定义用于访问客户端设备104上的移动应用的凭证,该移动应用可以是与非接触式卡的服务提供商相关联的应用。
67.客户端设备104可以包括适用于与物理令牌106通信的近场通信读取器110;例如,nfc读取器100可以用于从物理令牌106读取计数器值108。
68.在根据本公开的各种示例中,环境100的客户端设备104可以执行一个或多个应用,诸如软件应用。软件应用可以实现与环境100的一个或多个组件的网络通信,并且可以传输和/或接收数据。在其他计算机可执行逻辑中,客户端设备104可以包括客户端侧校验逻辑112(诸如结合图5更详细描述的逻辑)。
69.客户端设备104可以经由一个或多个网络114与一个或多个服务器116、128通信,并且可以作为与交易校验服务器116的相应前端到后端对来操作。客户端设备104可以例如从在客户端设备104上执行的移动设备应用向服务器116传输一个或多个请求。一个或多个请求可以与从服务器116获取的数据相关联。服务器116可以从客户端设备104接收一个或多个请求。基于来自客户端设备104的一个或多个请求,服务器116可以被配置为从一个或多个数据库(未示出)获取所请求的数据。基于从一个或多个数据库接收所请求的数据,服务器116可以被配置为向客户端设备104传输接收到的数据,接收到的数据响应于一个或多个请求。
70.环境100可以包括一个或多个服务器116、128。在一些示例中,服务器116、128可以包括耦接到存储器的一个或多个处理器。服务器116、128可以被配置为用于在不同时间控制和调用各种数据来执行多个工作流动作的中央系统、服务器或平台。服务器116、128可以被配置为连接到一个或多个数据库。客户端设备104可以连接到服务器116、128中的至少一个。
71.在一个实施例中,第三方服务器128可以请求校验交易。例如,第三方服务器128可以是与销售以用户102的名义为其提交购买请求的产品或服务的供应商相关联的服务器。第三方服务器128可以请求利用服务提供商校验购买。
72.为此,第三方服务器128可以经由网络114与附属于服务提供商的交易校验服务器116通信。为了校验交易,服务器116可以执行服务器侧校验逻辑118(诸如图6中描绘的逻
辑)。逻辑118可以维护计数器窗口120,该计数器窗口限定了可接受计数器值的范围(如上所述,这考虑了计数器值108的意外读取和其他无意递增)。计数器窗口120可以包括与不同风险级别相关联的几个不同范围,诸如用于低风险交易的相对宽的范围,以及用于高风险交易的相对窄的范围(这可能需要精确匹配)。
73.逻辑118可以结合存储在用户数据库122中并被索引到与用户102相关联的记录124的计数器值126来应用计数器窗口120。例如,计数器窗口120可以被添加到存储的计数器值126以导出最大可接受计数器值,并且可以将最大可接受计数器值与从卡接收的计数器值108进行比较。如果卡的计数器值108没有超过最大可接受的计数器值,则可以授权交易。如果卡的计数器值108确实超过最大可接受的计数器值,则可以要求用户对卡进行重新认证(如下所述),这向服务器116提供来自卡的新计数器值108。假设来自卡的新计数器值108与交易的开始时先前接收的计数器值108一致,则服务器116可以更新其自己存储的计数器值126以匹配由卡提供的计数器值。如果不是,则可能需要进一步的认证步骤,或者交易可能被拒绝。
74.用户数据库122不一定是数据库,而是可以是适用于存储与用户102的物理令牌106相关联的计数器值126的任何数据结构。
75.图1b示出了一个或多个非接触式卡130,该一个或多个非接触式卡可以包括由显示在卡130的正面或背面的服务提供商132发行的支付卡,诸如信用卡、借记卡或礼品卡。在一些示例中,非接触式卡130与支付卡无关,并且可以包括但不限于标识卡。在一些示例中,支付卡可以包括双接口非接触式支付卡。非接触式卡130可以包括基底134,该基底可以包括由塑料、金属和其他材料构成的单层或一个或多个层压层。示例性基底材料包括聚氯乙烯、聚氯乙烯乙酸酯、丙烯腈丁二烯苯乙烯、聚碳酸酯、聚酯、阳极化钛、钯、金、碳、纸和生物可降解材料。在一些示例中,非接触式卡130可以具有符合iso/iec 7810标准的id-1格式的物理特性,并且非接触式卡可以另外符合iso/iec 14443标准。然而,应当理解的是,根据本公开的非接触式卡130可以具有不同的特性,并且本公开不要求在支付卡中实施非接触式卡。
76.非接触式卡130还可以包括显示在卡的正面和/或背面的识别信息136,以及代表物理令牌的接触垫138。接触垫138可被配置为与另一通信设备(诸如用户设备、智能电话、膝上型电脑、台式电脑或平板电脑)建立联系。非接触式卡130还可以包括处理电路系统、天线和图1c中未示出的其他组件。这些组件可以位于接触垫138的后面或者基底134上的其他地方。非接触式卡130还可以包括可以位于卡的背面上(图1b中未示出)的磁条或磁带。
77.如图1c所示,图1b的接触垫138可以包括用于存储和处理信息的处理电路系统140,该处理电路系统包括微处理器142和存储器144。应当理解的是,处理电路140可以包含执行本文描述的功能所必需的附加组件,包括处理器、存储器、错误和奇偶校验/crc检查器、数据编码器、防冲突算法、控制器、命令解码器、安全原语和防篡改硬件。
78.存储器144可以是只读存储器、一次写入多次读取存储器或读/写存储器,例如ram、rom和eeprom,并且非接触式卡500可以包括这些存储器中的一个或多个。只读存储器可以是工厂可编程的只读存储器或一次性可编程存储器。一次性可编程性提供了一次写入然后多次读取的机会。一次写入/多次读取存储器可以在存储器芯片已经出厂后的某个时间点被编程。一旦存储器被编程,它可能不被重写,但它可能被多次读取。读/写存储器可以
在出厂后被编程和再编程多次。其也可以读取多次。
79.存储器144可以被配置为存储一个或多个小程序146、一个或多个计数器108和客户标识符148。一个或多个小程序146可以包括被配置为在一个或多个非接触式卡上执行的一个或多个软件应用,诸如java卡小程序。然而,应当理解的是,小程序146不限于java卡小程序,并且代替地可以是可在非接触式卡或具有有限存储器的其他设备上操作的任何软件应用。一个或多个计数器108可以包括足以存储整数的数字计数器。客户标识符148可以包括分配给非接触式卡130的用户的唯一字母数字标识符,并且该标识符可以将非接触式卡的用户与其他非接触式卡用户区分开。在一些示例中,客户标识符148可以标识客户和分配给该客户的账户两者,并且可以进一步标识与该客户的账户相关联的非接触式卡。
80.参照接触垫描述了前述示例性实施例的处理器和存储元件,但是本公开不限于此。应当理解的是,这些元件可以在垫138之外实施、或者与该垫完全分离、或者作为位于接触垫138内的处理器142和存储器144元件之外的其他元件。
81.在一些示例中,非接触式卡130可以包括一个或多个天线150。一个或多个天线150可以放置在非接触式卡130内并围绕接触垫138的处理电路系统140。例如,一个或多个天线150可以与处理电路140一体,并且一个或多个天线150可以与外部升压线圈一起使用。作为另一示例,一个或多个天线150可以在接触垫138和处理电路142的外部。
82.在实施例中,非接触式卡130的线圈可以充当空芯变压器的次级线圈。终端可以通过切断电力或调幅与非接触式卡130通信。非接触式卡130可以使用非接触式卡的电力连接件中的间隙来推断从终端传输的数据,该电力连接可以通过一个或多个电容器在功能方面进行保持。非接触式卡130可以通过切换非接触式卡的线圈上的负载或负载调制来进行通信。负载调制可以通过干扰在终端线圈中检测到。
83.如上所解释那样,非接触式卡130可以构建在可在智能卡或具有有限的存储器的其他设备(例如javacard)上操作的软件平台上,并且可以安全地执行一个或多个应用或小程序。小程序可以被添加到非接触式卡中,以在各种基于移动应用的用例中为多因素认证(multifactor authentication,mfa)提供一次性密码(one-time password,otp)。小程序可以被配置为响应来自读取器(诸如移动nfc读取器)的一个或多个请求(诸如近场数据交换(near field data exchange,ndef)请求),并且产生包括被编码为ndef文本标签的密码安全的otp的ndef消息。
84.如上所述,示例性交易可以通过在客户端设备104上执行的逻辑112来校验请求与非接触式卡相关联的账户的交易。图2a至图2b描绘了可以响应于该逻辑被呈现在客户端设备104上的示例性界面。
85.在显示界面之前,可以通知客户端104的用户交易需要校验。例如,用户可以从服务提供商接收sms消息,可以通过服务提供商的应用接收通知,可以接收呼叫或电子邮件等。
86.在接收通知后,用户可以登录服务提供商的应用。例如,用户可以供应用户名和密码,这可以校验用户的身份。在其他实施例中,可以以其他方式校验用户,诸如通过生物测定数据。在一些实施例中,登录可以利用双因素认证(two-factor authentication,2fa)。
87.当用户登录到应用时,可以向他们呈现界面,诸如图2a中描绘的界面200。在界面中,可以显示指示已经接收有问题的交易并且需要校验的消息202。消息202可以包括交易
的细节,诸如交易的价值、试图校验交易的供应商的名字等。
88.界面200可以包括可交互元件204,从而在用户没有授权交易的情况下,则允许用户将交易标记为欺诈性的。在选择可交互元件204时,应用可以向交易校验服务器传输指示所讨论的交易未被批准的欺诈警告消息。
89.消息202还可以包括用于在用户确实授权交易的情况下校验交易的指令。在一个实施例中,校验交易可以包括针对客户端设备104的背面上的读取器轻敲卡130,如图2b所示。读取器可以从卡130上的物理令牌读取计数器值,并且可以生成包括计数器值304和认证密码306的消息300(参见图2d)。消息300可以被加密。
90.计数器值304可以对应于最近从卡中读取的计数器值,并且认证密码306可以基于存储在物理令牌138上的密码密钥生成,并且可以用于利用交易校验服务器认证卡,并且确保消息300未被篡改或破坏。
91.消息300还可以包括令牌标识符302,该令牌标识符可以标识卡130和/或与卡相关联的用户。例如,令牌标识符302可以对应于存储在物理令牌138中的唯一客户标识符148)。
92.在接收消息300时,交易校验服务器可以解密消息300,基于密码306校验卡和消息,基于令牌标识符302将消息与用户账户匹配,并且从对应于用户账户的交易校验服务器获取用户记录124(参见图1a)。交易校验服务器然后可以将计数器值304与存储在用户数据库122中的相对应的计数器值126进行比较,以验证卡上的读取或交易的数量与存储在服务器上的预期计数器值相匹配。这可以校验用户拥有该卡(即,消息300不是伪造的),并且由用户执行的交易的数量与服务提供商的期望相匹配。如果计数器值不同步,这可能指示已尝试进行未经授权的交易,并可能导致当前交易被拒绝(或可能导致需要附加的校验动作)。
93.本领域的普通技术人员将理解,消息300是以简化的格式进行描绘。在一些实施例中,消息中可以存在其他组件,或者可以组合或修改所描绘的组件。
94.图2c是示出根据本公开的一个或多个实施例的用于提供经认证的访问的示例序列的时序图。系统可以包括非接触式卡130和客户端设备104,该客户端设备可以包括应用(可以包括逻辑112)和处理器。
95.在202处,应用与非接触式卡130通信(例如,在被带到非接触式卡130附近之后)。应用和非接触式卡130之间的通信可以包括非接触式卡130足够靠近客户端设备104的读卡器(未示出),以实现应用和非接触式卡130之间的nfc数据传送。
96.在步骤204处,在客户端设备104和非接触式卡130之间已经建立通信之后,非接触式卡130生成消息认证码(mac)密码。在一些示例中,当由托管逻辑112的应用读取非接触式卡130时,这可能发生。特别地,这可以在读取(诸如nfc读取)近场数据交换(ndef)标签时发生,该标签可以根据nfc数据交换格式创建。例如,诸如逻辑112的阅读器可以传输具有产生ndef的小程序的小程序id的消息(诸如小程序选择消息)。在确认选择后,可以传输随后是读取文件消息的所选择的文件消息序列。例如,序列可能包括“选择功能文件”、“读取功能文件”和“选择ndef文件”。此时,由非接触式卡130维护的计数器值可以被更新或递增,随后可以是“读取ndef文件”。此时,可以生成可以包括报头和共享秘密的消息。然后可以生成会话密钥。mac密码可以根据消息创建,该消息可以包括报头和共享秘密。mac密码然后可以与一个或多个随机数据块连接,并且mac密码和随机数(random number,rnd)可以用会话密钥
加密。此后,密码和报头可以被连接,并被编码为ascii十六进制,并以ndef消息格式返回(响应“读取ndef文件”消息)。
97.在一些示例中,mac密码可以作为ndef标签来传输,并且在其他示例中,mac密码可以与统一资源指示符一起被包括(例如,作为格式化的字符串)。
98.在一些示例中,逻辑112可以被配置为向非接触式卡130传输请求,该请求包括用于生成mac密码的指令。
99.在步骤206处,非接触式卡130向逻辑112发送mac密码。在一些示例中,mac密码的传输经由nfc发生,然而,本公开不限于此。在其他示例中,这种通信可以通过蓝牙、wi-fi或其他无线数据通信方式进行。
100.在步骤208处,逻辑112将mac密码传送给处理器。
101.在步骤210处,处理器根据来自逻辑112的指令验证mac密码。例如,可以验证mac密码,如下所解释那样。
102.在一些示例中,验证mac密码可以由除了客户端设备104的设备(诸如与客户端设备104进行数据通信的服务器116)来执行。例如,处理器可以输出mac密码以便传输到服务器116,该服务器可以验证mac密码。
103.在一些示例中,mac密码可以作为数字签名起作用用于验证的目的。其他数字签名算法(诸如公钥非对称算法,例如数字签名算法和rsa算法、或者零知识协议)可以用于执行这种验证。
104.图2d描绘了根据示例性实施例的用于生成受保护消息230的示例性技术。
105.消息230可以被配置为从发送者向接收者递送信息或内容。这个信息或内容可以由消息明文234表示(尽管该内容可以可选地被加密或以其他方式被保护)。
106.消息明文234可以与共享秘密232组合。共享秘密232可以是发送者和接收者两者知道的随机数。例如,如果消息明文234涉及如上所述的用于非接触式卡的认证动作,则设置或对卡进行初始化的过程可以包括在卡上的芯片和交易校验服务器之间共享随机数。在一个实施例中,随机数可以是32位随机数。可替选地或附加地,可以由发送者和接收者设置通信会话;设置通信会话的过程可以包括在发送者和接收者之间共享随机数,并且该随机数可以用作共享秘密232。
107.消息明文234和共享秘密232可以以各种方式组合。在一个实施例中,消息明文234可以以某种格式编码,使得它可以乘以共享秘密232。然后,可以将所得到的产品应用于mac算法。在另一实施例中,消息明文234可以全部或部分地与共享秘密232级联。所得到的组合然后可以被应用于mac算法。所得到的mac可能在传输前被加密。
108.当接收者(例如接收服务器)获取mac数据时,接收者可以解密数据以恢复由发送者创建的mac。接收者然后可以获取消息明文234并且以与发送者处进行相同的方式将其与约定的共享秘密232组合。接收者可以基于这个组合数据生成mac,并将其与从发送者传输的mac进行比较。如果两者匹配,那么接收者可以假设消息在传输中未被篡改。
109.本领域普通技术人员将认识到,存在用于组合两个不同的数据实例的其他技术,其中任何一种可以适用于与示例性实施例一起使用。
110.在消息明文234和共享秘密232被组合之后,它们可以被提供给mac算法236。mac算法236可以是任何合适的mac算法,诸如数据认证算法(data authentication algorithm,
daa)、密码块链接消息认证码(cipher block chaining message authentication code,cbc-mac)、伽罗瓦消息认证码(galois message authentication code,gmac)和散列消息认证码(hashed message authentication code,hmac)等。
111.mac算法236使用密钥进行操作。在示例性实施例中,这个密钥可以是使用多样化算法248创建的第一多样化密钥250。多样化算法可以对从非接触式卡接收的计数器108和存储在非接触式卡上的第一主密钥244(下面将更详细地描述)进行操作,以生成第一多样化密钥250。使用第一多样化密钥250和组合的共享秘密/明文,mac算法236可以生成mac输出238。
112.mac输出238可以可选地由加密算法240加密,以生成经加密的mac 242。加密算法240可以是任何合适的加密算法,诸如数据加密标准(data encryption standard,des)、tripledes(3des)、高级加密标准(advanced encryption standard,aes)和rsa等。
113.在一些实施例中,mac输出238可以与随机数据254组合。例如,在一个实施例中,mac输出238可以与8字节随机生成的数据254组合。当接收者接收消息300时,接收者可以解密经加密的mac 242并丢弃随机数据。接收者可以计算其自己的mac版本,如下所述,并且可以将接收者生成的mac与作为消息230的一部分接收的加密mac 242中剩余的数据进行比较。
114.本领域技术人员应该清楚,在一些实施例中,mac输出238可以被截断,使得由发送者仅发送原始mac输出的一部分。然后,接收者将独立计算mac输出,并在比较截断的mac输出之前类似地将其截断。
115.加密算法240也使用密钥操作。在示例性实施例中,这个密钥可以是使用多样化算法248创建的第二多样化密钥252。多样化算法可以对从非接触式卡接收的计数器108和存储在非接触式卡上的第二主密钥246(下面将更详细地描述)进行操作,以生成第二多样化密钥252。使用第二多样化密钥252,使用加密算法240加密随机数据254和mac输出238,以创建经加密的mac 242(其作为消息230的一部分被包括在内)。
116.经加密的mac 232可以与消息明文234一起传输。计数器值108可以可选地作为消息明文234的一部分发送,并且可以由接收者(例如,服务器)在认证消息时查阅。共享秘密232不作为消息的一部分直接发送。
117.图3是示出根据示例实施例的密钥操作300的流程图。如图3所示,在框310处,两个发卡行识别码(bank identifier number,bin)级主密钥可以与账户标识符和卡序列号结合使用,以每张卡产生两个唯一导出密钥。在一些示例中,发卡行识别码可以包括一个编号或一个或多个编号的组合(诸如由一个或多个服务器提供的账号或不可预测的编号),可以用于会话密钥生成和/或多样化。在个性化过程期间,udk(autkey和enckey)可能存储在卡上。
118.在框320处,计数器可以被用作多样化数据,由于它随着每次使用而改变,并且每次提供不同的会话密钥,而不是其中每张卡产生唯一一组密钥的主密钥导出。在某些示例中,优选的是使用4字节方法用于两种操作。因此,在框320处,可以为来自udk的每个交易创建两个会话密钥,即,来自autkey的一个会话密钥和来自enckey的一个会话密钥。在卡中,对于mac密钥(即根据autkey创建的会话密钥),计数器的低位的两个字节可以用于多样化。对于enc密钥(即根据enckey创建的会话密钥),可以将计数器的全长用于enc密钥。
119.在框330处,mac密钥可以用于准备mac密码,并且enc密钥可以用于加密密码。例如,mac会话密钥可以用于准备密码,并且结果可以在其被传输到一个或多个服务器之前利用enc密钥加密。
120.在框340处,简化了mac的验证和处理,因为可以在支付hsm的mac认证功能中直接支持2字节多样化。密码的解密是在验证mac之前进行的。会话密钥在一个或多个服务器处独立导出,从而产生第一会话密钥(enc密钥)和第二会话密钥(mac密钥)。第二导出密钥(即enc密钥)可以用于解密数据,并且第一导出密钥(即mac密钥)可以用于验证解密的数据。
121.对于非接触式卡,导出可能与编码在卡中的应用主账号(primary account number,pan)和pan序列号相关的不同的唯一标识符。密钥多样化可以被配置为利用主密钥接收标识符作为输入,使得可以为每个非接触式卡创建一个或多个密钥。在一些示例中,这些多样化密钥可以包括第一密钥和第二密钥。第一密钥可以包括认证主密钥(卡密码生成/认证密钥——autkey),并且可以进一步被多样化以创建在生成和验证mac密码时使用的mac会话密钥。第二密钥可以包括加密主密钥(卡数据加密密钥——enckey),并且可以被进一步多样化以创建在加密和解密加密数据时使用的enc会话密钥。在一些示例中,第一密钥和第二密钥可以通过将发行方主密钥与卡的唯一id号(puid)和支付小程序的pan序列号(pan sequence number,psn)组合而将发行方主密钥多样化来创建。puid可以包括16位数字值。如上所解释那样,puid可以包括16位bcd编码的数字。在一些示例中,puid可以包括14位数字值。
122.在某些示例中,会话密钥导出方法将使用计数器的较低2字节。在这些情况下,所生成的会话密钥值将在2
16
次使用后隐藏。在其他示例中,在导出会话密钥时使用4字节的计数器使得所生成的密钥值在2
32
次使用之后才隐藏可能是有益的。如对于本领域技术人员来说显而易见的那样,可以根据需要使用来自计数器的不同数量的位或字节来生成会话密钥,该会话密钥在预期应用的生命周期内不会隐藏。
123.在诸如信用卡的其他示例中,诸如交易号或由一个或多个服务器提供的不可预测编号的编号可以用于会话密钥生成和/或多样化。
124.图4示出了被配置为实施本公开的一个或多个实施例的系统400的示意图。如下所解释的那样,在非接触式卡创建过程期间,可以为每个卡唯一地分配两个密码密钥。密码密钥可以包括对称密钥,该对称密钥可以用于创建在数据的加密和解密中使用的会话密钥,以及创建mac。三重des(3des)算法可以由emv使用,并由非接触式卡中的硬件实施。通过使用密钥多样化过程,可以基于需要密钥的每个实体的唯一可标识信息,从主密钥导出一个或多个密钥。
125.关于主密钥管理,在其上发行一个或多个小程序的系列(portfolio)的每个部分可能需要两个发行方主密钥405、410。例如,第一主密钥405可以包括发行方密码生成/认证密钥(iss-key-auth),并且第二主密钥410可以包括发行方数据加密密钥(iss-key-dek)。如本文进一步解释的那样,两个发行方主密钥405、410被多样化为卡主密钥425、430,这些卡主密钥对于每张卡是唯一的。在一些示例中,作为后台数据的网络简档记录id(pnpr)415和导出密钥索引(pdki)420可以用于标识在用于认证的密码过程中使用哪些发行方主密钥405、410。执行认证的系统可以被配置为在认证时获取非接触式卡的pnpr 415和pdki 420的值。
126.在一些示例中,为了增加解决方案的安全性,可以导出会话密钥(诸如每个会话的唯一密钥),但不是使用卡主密钥425、530来执行mac 436和加密441操作,而是结合计数器445使用卡主密钥425、430来导出会话密钥,但是如上所解释那样。例如,每次在操作中使用卡时,可以使用不同的密钥用于创建消息认证码(mac)和用于执行加密。关于会话密钥生成,用于生成密码和加密一个或多个小程序中的数据的密钥可以包括基于卡唯一密钥(autkey 425和enckey 430)的会话密钥。会话密钥(mac key 435和enc key 440)可以由一个或多个小程序生成,并通过使用应用交易计数器445利用一个或多个算法来导出。为了使数据适合一个或多个算法,仅使用4字节计数器445的2个低位字节。在一些示例中,四字节会话密钥导出方法可以包括:f1:=计数器(较低2个字节)||'f0'||'00'||patc(四个字节)f1:=patc(较低2个字节)||'0f'||'00'||计数器(四个字节)sk:={(alg(mk)[f1])||alg(mk)[f2]},其中alg可以包括3des ecb,并且mk可以包括卡唯一导出主密钥。
[0127]
如本文所述,可以使用计数器445的较低两个字节来导出一个或多个mac会话密钥。在非接触式卡的每次轻击时,计数器445被配置为被更新,并且卡主密钥autkey 425和enckey 430被进一步多样化为会话密钥mac key 435和enc key 440。计数器445可以在个性化或小程序初始化时初始化为零。在一些示例中,计数器445可以在个性化时或之前初始化,并且可以被配置为在每次ndef读取时递增1。
[0128]
进一步,每个卡的更新可以是唯一的,并且可以通过个性化来分配,或者通过puid或其他标识信息在算法上被分配。例如,奇数卡可以递增或递减2,并且偶数卡可以递增或递减5。在一些示例中,更新也可以在顺序读取中变化,使得一张卡可以按顺序递增1、3、5、2、2、
……
重复。特定序列或算法序列可以在个性化时定义,或者根据从唯一标识符导出的一个或多个过程定义。这使得重放攻击者更难从较少数量的卡实例中进行归纳。
[0129]
认证消息可以作为呈十六进制ascii格式的文本ndef记录的内容递送。在一些示例中,密码460将是加密441的结果,该加密对预先加到mac操作436的输出的随机数据块进行加密。在一些示例中,随机数可以在密码a之前,并且可以是一个块长。在其他示例中,在随机数的长度方面可能没有限制。在另外的示例中,总数据(即随机数加上密码)可以是块大小的倍数。在这些示例中,可以添加附加的8字节块来匹配由mac算法产生的块。作为另一示例,如果所采用的算法使用16字节的块,甚至可以使用该块大小的倍数,或者输出可以被自动或手动填充到该块大小的倍数。
[0130]
mac可以通过功能密钥(mac key)435来执行。密码中指定的数据可以利用javacard.signature方法:alg_des_mac8_iso9797_1_m2_alg3处理从而与emv arqc验证方法相关。如上所解释那样,用于这个计算的密钥可以包括会话密钥mac key 435。如上所解释那样,计数器的低位两个字节可以用于使一个或多个mac会话密钥多样化。如上所解释那样,mac key 435可以用于mac数据450,并且可以使用enc key 440对所得到的数据或密码a 455和随机数rnd进行加密,以创建在消息中发送的密码b或输出460。
[0131]
在一些示例中,可以处理一个或多个hsm命令用于解密,使得最终的16(二进制、32十六进制)字节可以包括使用cbc模式的3des对称加密,其中随机数的第四个零后面是mac认证数据。用于这个加密的密钥可以包括从enckey 430导出的会话密钥enc key 440。在这种情况下,会话密钥导出的导出数据是计数器445的最低有效的两个字节。
[0132]
下面的格式表示二进制版本示例实施例。进一步,在一些示例中,第一个字节可以
被设置为ascii

a’。
[0133]
[0134][0135]
另一示例性格式在下文示出。在这个示例中,标签可以以十六进制格式编码。
[0136][0137]
[0138][0139]
可以提取接收到的消息的uid字段,以从主密钥iss-key-auth 405和iss-key-dek 410中导出这个特定卡的卡主密钥(autkey 425和enckey 430)。使用卡主密钥(autkey 425和enckey 430),接收到的消息的计数器字段可以用于导出这个特定卡的会话密钥(mac key 435和enc key 440)。密码b 460可以使用enc key 440解密,这产生密码a 455和rnd,并且rnd可以被丢弃。uid字段可以用于查找非接触式卡的共享秘密,该共享秘密与消息的版本、uid和计数器字段一起可以通过密码mac使用重新创建的mac key 435进行处理,以创建mac输出,诸如mac’。如果mac’与密码a 955相同,则这表明消息解密和mac检查全部已通过。然后可以读取计数器以确定它是否有效。
[0140]
在认证会话期间,可以由一个或多个应用生成一个或多个密码。例如,可以通过一个或多个会话密钥(诸如mac key 435)使用具有方法2填充的iso 9797-1算法3将一个或多个密码生成为3des mac。输入数据450可以采取以下形式:版本(2)、puid(8)、patc(4)和共享秘密(4)。在一些示例中,括号中的数字可以包括以字节为单位的长度。在一些示例中,共享秘密可以由一个或多个随机数生成器生成,该随机数生成器可以被配置为通过一个或多个安全过程来确保随机数是不可预测的。在一些示例中,共享秘密可以包括在由认证服务已知的个性化时间注入到卡中的随机4字节二进制数。在认证会话期间,共享秘密可以不从
一个或多个小程序提供给移动应用。方法2填充可以包括向输入数据的末尾添加强制的0x'80'字节,并向所得到的数据的末尾添加0x'00'字节,直到8字节边界。所得到的密码在长度上可以包括8个字节。
[0141]
在一些示例中,利用mac密码将非共享随机数加密为第一块的一个益处是,在使用对称加密算法的cbc(块链接)模式时,其充当初始化向量。这允许从逐块地“加扰”,而不必预先建立固定的或动态的iv。
[0142]
通过将应用交易计数器445包括作为包括在mac密码中的数据的一部分,认证服务可以被配置为确定明文数据中输送的值是否已经被篡改。而且,通过将版本包含在一个或多个密码中,攻击者难以在试图降低密码解决方案的强度中有目的地篡改应用版本。在一些示例中,计数器445可以从零开始,并在每次一个或多个应用生成认证数据时更新1。认证服务可以被配置为跟踪在认证会话期间使用的计数器445。在一些示例中,当认证数据使用等于或低于由认证服务接收的先前值的计数器445时,这可能被解释为试图重放旧消息,并且被认证的消息可能被拒绝。在一些示例中,当计数器445大于先前接收的值时,可以对其进行评估以确定它是否在可接受的范围或阈值内,并且如果它超过范围或阈值或在范围或阈值之外,则验证可以被认为已经失败或不可靠。在mac操作436中,使用mac key 435通过mac处理数据450,以产生被加密的mac输出(密码a)455。
[0143]
为了提供附加保护以防止暴露卡上密钥的暴力攻击,期望的是对mac密码455进行加密。在一些示例中,密文中包括的数据或密码a 455可以包括:随机数(8)、密码(8)。在一些示例中,括号中的数字可以包括以字节为单位的长度。在一些示例中,随机数可以由一个或多个随机数生成器生成,该随机数生成器可以被配置为通过一个或多个安全过程来确保随机数是不可预测的。用于加密这个数据的密钥可以包括会话密钥。例如,会话密钥可以包括enc key 440。在加密操作441中,使用enc key 440处理数据或密码a455和rnd,以产生经加密的数据,即密码b 460。数据455可以在密码块链接模式下使用3des加密,以确保攻击者必须对全部密文进行任何攻击。作为非限制性示例,可以使用其他算法,诸如高级加密标准(advanced encryption standard,aes)。在一些示例中,可以使用0x’0000000000000000’的初始化向量。试图强行破解用于加密这个数据的密钥的任何攻击者将无法确定何时已经使用了正确的密钥,因为正确解密的数据由于其随机出现而无法与不正确解密的数据区分开来。
[0144]
为了使认证服务校验由一个或多个小程序提供的一个或多个密码,必须在认证会话期间以明文的方式将以下数据从一个或多个小程序输送到移动设备:版本号,用于确定所使用的密码方法和用于密码的校验的消息格式,这使得该方法在将来能够改变;puid,用于获取密码资产,并导出卡密钥;以及计数器445,用于导出用于密码的会话密钥。
[0145]
图5示出了用于生成密码的方法500。例如,在框510处,网络简档记录id(pnpr)和导出密钥索引(pdki)可以用于标识在用于认证的密码过程中使用哪些发行方主密钥。在一些示例中,该方法可以包括执行认证以在认证时获取非接触式卡的pnpr和pdki的值。
[0146]
在框520处,可以通过将发行方主密钥与一个或多个小程序(例如支付小程序)的卡的唯一id号(puid)和pan序列号(psn)组合来使发行方主密钥多样化。
[0147]
在框530处,可以通过使发行方主密钥多样化来创建autkey 425和enckey 430(唯一的卡密钥),以生成可以用于生成mac密码的会话密钥。
[0148]
在框540处,用于生成密码和加密一个或多个小程序中的数据的密钥可以包括基于卡唯一密钥(autkey 425和enckey 430)的框530的会话密钥。在一些示例中,这些会话密钥可以由一个或多个小程序生成,并且通过使用计数器445来导出,从而产生会话密钥mac key 435和enc key 440。
[0149]
图6描绘了示出根据一个示例的密钥多样化的示例性过程600。最初,发送者和接收者可以被提供有两个不同的主密钥。例如,第一主密钥可以包括数据加密主密钥,并且第二主密钥可以包括数据完整性主密钥。发送者具有可以在框602处被更新的计数器值以及发送者可以与接收者安全共享的其他数据(诸如要保护的数据)。
[0150]
在框604处,计数器值可以由发送者使用数据加密主密钥加密以产生数据加密导出的会话密钥,并且计数器值也可以由发送者使用数据完整性主密钥加密以产生数据完整性导出的会话密钥。在一些示例中,在两次加密期间,可以使用整个计数器值或计数器值的一部分。
[0151]
在某些示例中,计数器值可能未加密。在这些示例中,计数器可以在发送者和接收者之间以明文的方式传输,即无需加密。
[0152]
在框606处,发送者使用数据完整性会话密钥和密码mac算法,利用加密mac操作来处理要保护的数据。受保护数据(包括明文和共享秘密)可以用于使用会话密钥(mac key 435)中的一个来产生mac。
[0153]
结合图6b更详细地描述框606。结合图6b描述的动作可以由非接触式卡130的接触垫138上的处理器142来执行。
[0154]
如图6b所示,在框618处,系统可以访问受保护数据,该受保护数据用于生成mac。
[0155]
如果受保护数据将与共享秘密组合,则在框620处,系统可以可选地访问共享秘密(例如,当非接触式卡首次初始化时或者当与卡相关联的通信会话被建立并在服务器和非接触式卡之间共享时生成的随机数)。在框622处,系统可以组合共享秘密和受保护数据,例如通过将共享秘密附加到受保护数据(以及其他可能性,诸如对共享秘密和受保护数据应用逻辑或布尔运算)。
[0156]
在框624处,系统可以对组合的数据应用mac算法。mac算法依赖于密钥以便生成mac,该mac可以是使用如上所述的计数器值生成的多样化会话密钥。
[0157]
在框626处,系统可以确定mac算法(可选地结合共享秘密应用)是否足够安全以满足系统的安全要求。例如,系统可以被提供有最小安全等级(例如,以位表示),并且可以确定在框622至624处采取的动作是否足以满足安全等级。在做出这个确定时,系统可以将共享秘密的大小(如果使用的话)添加到mac算法的安全等级(其可以由多样化会话密钥的大小来定义)。如果结果大于最小安全要求,则处理可以前进到框610,并且可以传输mac。
[0158]
如果结果不大于最小安全要求(框626处为“否”),则处理可以前进到框628,并且系统可以使用如上所述的第二多样化会话密钥将加密算法应用于已经经mac的数据。然后,处理可以返回到框626,在框626处,重新评估所得到的构造,以确定该构造是否满足最小安全等级。如果是,则处理进行到框610,并且传输(现在加密的)mac。如果不是,则处理可以返回到框628,并且系统可以对经加密的数据应用进一步的加密,以进一步增加加密数据的安全性。系统可以应用与先前应用的相同的加密算法,或者可以应用不同的加密算法。系统可以使用不同的密钥(例如,基于第三主密钥或卡和服务器两者知道的其他数据生成的第三
多样化会话密钥)。可以重复块628,直到达到足够的安全等级。
[0159]
图6b仅描绘了一种用于增加密码结构(在这种情况下,为mac)的安全性的示例性技术。然而,本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,可以以不同的顺序来执行所描绘的框。此外,可以消除一些框,可以添加一些框,并且可以不止一次地执行一些所描绘的框,以增加构造的密码强度。
[0160]
进一步将显而易见的是,尽管示例性实施例是结合与非接触式卡相关的认证消息来描述的,但是本发明不限于此。本文描述的构思(包括增强mac或加密算法的密码强度)可以应用于任何密码环境。
[0161]
回到图6a,在框608处,可以由发送者使用数据加密导出的会话密钥结合对称加密算法来加密要保护的数据。在一些示例中,mac与等量的随机数据组合(例如每8字节长),并且然后使用第二会话密钥(dek会话密钥)对其进行加密。
[0162]
在框610处,经加密的mac被从发送者传输到接收者,具有足够的信息来标识附加的秘密信息(诸如共享秘密、主密钥等)以便进行密码验证。
[0163]
在框612处,接收方使用接收到的计数器值从两个主密钥中独立地导出两个导出的会话密钥,如上所解释那样。
[0164]
在框614处,结合对称解密操作使用数据加密导出的会话密钥来解密受保护数据。然后将进行对交换的数据的附加处理。在一些示例中,在提取mac之后,期望的是再现和匹配mac。例如,当验证密码时,可以使用适当生成的会话密钥对其进行解密。受保护数据可以被重建以便进行验证。可以使用适当生成的会话密钥来执行mac操作,以确定它是否匹配解密的mac。由于mac操作是不可逆的过程,唯一的验证方法是尝试从源数据中重新创建它。
[0165]
在框616处,结合密码mac操作使用数据完整性导出的会话密钥来验证受保护数据没有被修改。
[0166]
当满足以下条件时,本文描述的方法的一些示例可以有利地确认何时确定成功认证。首先,验证mac的能力表明导出会话密钥是正确的。只有在解密成功并产生正确的mac值的情况下,mac才可能是正确的。成功解密可能表明正确导出的加密密钥用于解密加密的mac。由于导出的会话密钥是使用仅发送者(例如,传输设备)和接收者(例如,接收设备)已知的主密钥创建的,因此可以相信最初创建mac并加密mac的非接触式卡确实是真实的。而且,用于导出第一会话密钥和第二会话密钥的计数器值可以被示出为有效,并且可以用于执行认证操作。
[0167]
此后,可以丢弃两个导出的会话密钥,并且数据交换的下一次迭代将更新计数器值(返回到框602),并且可以(在框604处)创建新的一组会话密钥。在一些示例中,可以丢弃组合的随机数据。
[0168]
本文描述的系统和方法的示例实施例可以被配置为提供安全因素认证。安全因素认证可以包括多个过程。作为安全因素认证的一部分,第一过程可以包括通过在设备上执行的一个或多个应用登录并校验用户。作为第二过程,用户可以响应于通过一个或多个应用进行的第一过程的成功登录和校验,参与与一个或多个非接触式卡相关联的一个或多个行为。实际上,安全因素认证可以包括安全地证明用户的身份和参与与非接触式卡相关联的一种或多种类型的行为,包括但不限于一个或多个轻击手势。在一些示例中,一个或多个轻击手势可以包括由用户针在设备上轻击非接触式卡。在一些示例中,该设备可以包括移
动设备、信息亭、终端、平板电脑或被配置为处理接收到的轻击手势的任何其他设备。
[0169]
在一些示例中,非接触式卡可以在设备(诸如一个或多个计算机信息亭或终端)上被轻击,以验证身份,从而接收响应于购买的交易物品,诸如咖啡。通过使用非接触式卡,可以建立在忠诚计划(loyalty program)中证明身份的安全方法。以不同于仅仅扫描条码卡的方式来建立安全地证明身份,例如以获得奖励、优惠券、优惠等或益处的接收。例如,加密的交易可以发生在非接触式卡和设备之间,该设备可以被配置为处理一个或多个轻击手势。如上所解释那样,一个或多个应用可以被配置为校验用户的身份,并且然后使用户例如通过一个或多个轻击手势来行动或对其进行响应。在一些示例中,数据例如奖金积分、忠诚度积分、奖励积分、医疗保健信息等可以被写回到非接触式卡。
[0170]
在一些示例中,非接触式卡可以在设备上被轻击,诸如移动设备。如上所解释那样,用户的身份可以由一个或多个应用验证,然后该应用将基于身份的验证向用户授予期望的益处。
[0171]
在一些示例中,非接触式卡可以通过在诸如移动设备的设备上被轻敲来激活。例如,非接触式卡可以通过nfc通信经由设备的读卡器与设备的应用进行通信。其中在设备的读卡器附近轻击卡的通信可以允许设备的应用读取与非接触式卡相关联的数据并激活卡。在一些示例中,激活可以授权卡用于执行其他功能,例如购买、访问账户或受限信息或其他功能。在一些示例中,轻击可以激活或启动设备的应用,并且然后发起一个或多个动作或与一个或多个服务器的通信来激活非接触式卡。如果该应用没有安装在该设备上,则在读卡器附近轻击非接触式卡可以发起该应用的下载,诸如导航到该应用的下载页面。安装之后,轻击非接触式卡可以激活或启动应用,并且然后例如通过应用或其他后端通信发起非接触式卡的激活。激活后,非接触式卡可以用于各种活动,包括但不限于商业交易。
[0172]
在一些实施例中,专用应用可以被配置为在客户端设备上运行,以执行非接触式卡的激活。在其他实施例中,网络门户、基于网络的应用、小程序等可以执行激活。激活可以在客户端设备上执行,或者客户端设备可以仅充当非接触式卡和外部设备(例如,账户服务器)之间的媒介。根据一些实施例,在提供激活时,应用可以向账户服务器指示执行激活的设备的类型(例如,个人计算机、智能手机、平板电脑或销售点(point-of-sale,pos)设备)。进一步,取决于所涉及的设备类型,该应用可以向账户服务器输出不同的和/或附加的数据用于传输。例如,这样的数据可以包括与商家相关联的信息,诸如商家类型、商家id、以及与设备类型本身相关联的信息,诸如pos数据和pos id。
[0173]
在一些实施例中,示例认证通信协议可以模仿通常在交易卡和销售点设备之间执行的、具有一些修改的emv标准的离线动态数据认证协议。例如,因为示例认证协议本身不用于完成与卡发行方/支付处理器的支付交易,所以不需要一些数据值,并且可以在不涉及与卡发行方/支付处理器的实时在线连接的情况下执行认证。如本领域所知,销售点(pos)系统向卡发行方提交包括交易值的交易。发行方是否批准或否定交易可能基于发行方是否认可交易价值。同时,在本公开的某些实施例中,源自移动设备的交易缺少与pos系统相关联的交易值。因此,在一些实施例中,伪交易值(即,卡发行方可识别的并且足以允许激活发生的值)可以作为示例认证通信协议的一部分被传递。基于pos的交易也可以基于交易尝试的数量(例如,交易计数器)拒绝交易。超过缓冲值的尝试数量可能会导致软拒绝;软拒绝在接受交易前需要进一步验证。在一些实施方式中,可以修改交易计数器的缓冲值,以避免拒
绝合法交易。
[0174]
在一些示例中,非接触式卡可以根据接收方设备选择性地传送信息。一旦被轻击,非接触式卡可以识别轻击所针对的设备,并且基于这个识别,非接触式卡可以为该设备提供适当的数据。这有利地允许非接触式卡仅传输完成即时动作或交易(诸如支付或卡认证)所需的信息。通过限制数据传输和避免不必要的数据传输,可以提高效率和数据安全两者。信息的识别和选择性通信可以应用于各种场景,包括卡激活、余额转移、账户访问尝试、商业交易和逐步(step-up)欺诈减少。
[0175]
如果非接触式卡轻击是针对运行苹果操作系统的设备(例如iphone、ipod或ipad)进行的,则非接触式卡可以识别操作系统并传输适当的数据来与这个设备通信。例如,非接触式卡可以通过例如nfc提供使用ndef标签认证卡所需的加密的身份信息。类似地,如果非接触式卡轻击是针对运行操作系统的设备(例如,智能手机或平板电脑)进行的,则非接触式卡可以识别操作系统,并传输适当的数据(诸如,通过本文描述的方法进行认证所需的加密的身份信息)以与这个设备通信。
[0176]
作为另一示例,非接触式卡轻击可以是针对pos设备(包括但不限于信息亭、结账登记器、支付站或其他终端)进行的。在执行轻击时,非接触式卡可以识别pos设备,并且仅传输动作或交易所需的信息。例如,在识别出用于完成商业交易的pos设备后,非接触式卡可以根据emv标准传送完成交易所需的支付信息。
[0177]
在一些示例中,参加交易的pos设备可以要求或指定要由非接触式卡提供的附加信息,例如设备特定的信息、位置特定的信息和交易特定的信息。例如,一旦pos设备从非接触式卡接收到数据通信,pos设备就可以识别非接触式卡并请求完成动作或交易所需的附加信息。
[0178]
在一些示例中,pos设备可以附属于授权商家或熟悉某些非接触式卡或习惯于执行某些非接触式卡交易的其他实体。然而,应当理解的是,所描述的方法的执行不要求这种附属关系。
[0179]
在一些示例中,诸如购物商店、杂货店、便利店等,可以在移动设备上轻击非接触式卡而不必打开应用,以指示利用奖励积分、忠诚度积分、优惠券、优惠等中的一个或多个来覆盖一次或多次购买的期望或意图。因此,提供了购买背后的意图。
[0180]
在一些示例中,一个或多个应用可以被配置为确定它是经由非接触式卡的一个或多个轻击手势启动的,使得启动发生在下午3:51pm、交易在3:56pm处理或发生,以便验证用户的身份。
[0181]
在一些示例中,一个或多个应用可以被配置为响应于一个或多个轻击手势来控制一个或多个动作。例如,一个或多个动作可以包括收集奖励、收集积分、确定最重要的购买、确定最便宜的购买和/或实时地重新配置到另一动作。
[0182]
在一些示例中,可以收集关于轻击行为的数据作为生物特征/手势认证。例如,密码安全且不易被截取的唯一标识符可以被传输到一个或多个后端服务。唯一标识符可以被配置为查找关于个人的辅助信息。辅助信息可以包括关于用户的个人可标识信息。在一些示例中,辅助信息可以存储在非接触式卡中。
[0183]
在一些示例中,该设备可以包括在多个个人之间划分支付的账单或支票的应用。
例如,每个人可能拥有非接触式卡,并且可能是相同发行金融机构的客户,但这不是必需的。这些个人中的每一个可以通过应用在他们的设备上接收推送通知,以划分购买。可以使用其他非接触式卡,而不是只接受一次卡轻击来指示支付。在一些示例中,具有不同金融机构的个人可能拥有非接触式卡,以提供信息来发起来自卡轻击个人的一个或多个支付请求。
[0184]
以下示例用例描述了本公开的特定实施方式的示例。这些仅旨在用于解释目的,而非用于限制目的。在一种情况下,第一个朋友(付款人)欠第二个朋友(收款人)一笔钱。付款人希望使用非接触式卡通过收款人的智能手机(或其他设备)付款,而不是去atm或需要通过对等应用进行兑换。收款人登录到其智能手机上的适当应用,并选择付款请求选项。作为响应,应用通过收款人的非接触式卡请求认证。例如,应用输出请求收款人轻击他的非接触式卡的显示。一旦收款人在具有所支持的应用的智能手机的屏幕上轻击他的非接触式卡,非接触式卡就会被读取和验证。接下来,应用显示付款人轻击他的非接触式卡发送付款的提示。在付款人轻击非接触式卡后,应用读取卡信息,并通过相关联的处理器向付款人的卡发行方传输付款请求。卡发行方处理交易,并向智能手机发送交易的状态指示符。然后,应用输出以便显示交易的状态指示符。
[0185]
在另一示例情况下,信用卡客户可以以邮件的方式接收新的信用卡(或借记卡、其他支付卡或需要激活的任何其他卡)。客户可以决定通过他或她的设备(例如,诸如智能手机的移动设备)上的应用来激活卡,而不是通过呼叫与卡发行方相关联的所提供的电话号码或访问网站来激活卡。客户可以从设备的显示器上显示的应用菜单中选择卡激活特征。应用可以提示客户在屏幕上轻击他或她的信用卡。在设备的屏幕上轻敲信用卡时,应用可以被配置为与服务器(诸如激活客户的卡的卡发行方服务器)通信。然后,应用可以显示指示卡的成功激活的消息。然后卡激活完成。
[0186]
以上描述的方法可以体现为计算机可读介质上的指令或者计算架构的一部分。图7示出了适用于实施如前所述的各种实施例的示例性计算架构700的实施例。在一个实施例中,计算架构700可以包括或被实施为电子设备(诸如计算机701)的一部分。在这个上下文中实施不受限限制。
[0187]
如在本技术中所使用的那样,术语“系统”和“组件”旨在指代计算机相关的实体,硬件、硬件和软件的组合、软件或者执行中的软件,它们的示例由示例性计算架构700提供。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质)、对象、可执行文件、执行的线程、程序和/或计算机。举例来说,运行在服务器上的应用和服务器两者可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。进一步,组件可以通过各种类型的通信介质彼此通信耦接,以协调操作。协调可以包括单向或双向的信息交换。例如,组件可以以通过通信介质传送的信号的形式传送信息。该信息可以被实施为被分配给各种信号线的信号。在这种分配中,每个消息是信号。然而,另外的实施例可以可替选地采用数据消息。这种数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
[0188]
计算架构700包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、声卡、多
媒体输入/输出(i/o)组件、电源等等。然而,实施例不限于由计算架构700实施。
[0189]
如图7中所示,计算架构700包括处理器702、系统存储器704和系统总线706。处理单元702可以是各种可商购处理器中的任何一种,包括但不限于amd athlon、duron和opteron处理器;arm应用、嵌入式和安全处理器;ibm和motorola的dragonball和powerpc处理器;ibm和sony cell处理器;intel celeron、core(2)duo、itanium、pentium、xeon和xscale处理器;和类似的处理器。双微处理器、多核处理器和其他多-处理器架构也可以用作处理单元702。
[0190]
系统总线706为系统组件提供接口,包括但不限于系统存储器704到处理单元702的接口。系统总线706可以是几种类型的总线结构中的任何一种,这些总线结构还可以互连到使用各种可商购的总线架构中的任何一种的存储器总线(具有或不具有存储器控制器)、外围总线和本地总线。接口适配器可以通过插槽架构连接到系统总线706。示例插槽架构可以包括但不限于加速图形端口(accelerated graphics port,agp)、卡总线、(扩展)工业标准架构((extended)industry standard architecture,(e)isa)、微通道架构(micro channel architecture,mca)、外围组件互连(扩展)(peripheral component interconnect(extended),pci(x))、pci express、个人计算机存储卡国际协会(personal computer memory card international association,pcmcia)等。
[0191]
计算架构700可以包括或实施各种制造品。一种制品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码实施的可执行计算机程序指令,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等。实施例还可以至少部分地被实施为包含在非暂时性计算机可读介质中或其上的指令,这些指令可以由一个或多个处理器读取和执行以使得能够执行本文描述的操作。
[0192]
系统存储器704可以包括呈一个或多个高速存储器单元的形式的各种类型的计算机可读存储介质,诸如只读存储器(read-only memory,rom)、随机存取存储器(random-access memory,ram)、动态随机存取存储器(dynamic ram,dram)、双数据速率dram(double-data-rate dram,ddram)、同步dram(synchronous dram,sdram)、静态ram(static ram,sram)、可编程rom(programmable rom,prom)、可擦除可编程rom(erasable programmable rom,eprom)、电可擦除可编程rom(electrically erasable programmable rom,eerom)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、氧化硅氮化物氧化硅(silicon-oxide-nitride-oxide-silicon,sonos)存储器、磁卡或光卡、诸如独立盘冗余阵列(redundant array of independent disk,raid)驱动器的设备阵列、固态存储器设备(例如,usb存储器、固态驱动器(solid state drive,ssd))以及适于存储信息的任何其他类型的存储介质。在图7中示出的所示出的实施例中,系统存储器704可以包括非易失性存储器708和/或易失性存储器710。基本输入/输出系统(basic input/output system,bios)可以存储在非易失性存储器708中。
[0193]
计算架构700可以包括呈一个或多个低速存储单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(hard disk drive,hdd)712、从可移动磁盘716读
取或向其写入的磁软盘驱动器(floppy disk drive,fdd)714、以及从可移动光盘720(例如,cd-rom或dvd)读取或向其写入的光盘驱动器718。hdd 712、fdd 714和光盘驱动器720可以分别通过hdd接口722、fdd接口724和光盘驱动器接口726连接到系统总线706。用于外部驱动器实施方式的hdd接口722可以包括通用串行总线(universal serial bus,usb)和ieee 694接口技术中的至少一种或两种。
[0194]
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可以被存储在驱动器和存储器单元708、712中,包括操作系统728、一个或多个应用730、其他程序模块732和程序数据734。在一个实施例中,一个或多个应用730、其他程序模块732和程序数据734可以包括例如消息递送系统500的各种应用和/或组件。
[0195]
用户可以通过一个或多个有线/无线输入设备,例如键盘736和定点设备(诸如鼠标738),将命令和信息输入到计算机701中。其他输入设备可以包括麦克风、红外(infra-red,ir)遥控器、射频(radio-frequency,rf)遥控器、游戏垫、触笔、读卡器、软件狗、指纹读取器、手套、图形板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式触摸屏、电阻式触摸屏等)、轨迹球、触控板、传感器、触控笔等。这些和其他输入设备通常通过耦接到系统总线706的输入设备接口740连接到处理单元702,但是也可以通过其他接口连接,诸如并行端口、ieee 694串行端口、游戏端口、usb端口、ir接口等。
[0196]
监视器742或其他类型的显示设备也通过诸如视频适配器744的接口连接到系统总线706。监视器742可以在计算机701的内部或外部。除了监视器742之外,计算机通常包括其他外围输出设备,诸如扬声器、打印机等。
[0197]
计算机701可以使用经由有线和/或无线通信到一个或多个远程计算机(例如远程计算机744)的逻辑连接在网络化环境中操作。远程计算机744可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其他公共网络节点,并且通常包括相对于计算机701描述的许多或所有元件,尽管为了简洁起见,仅示出了存储器/存储设备746。所描绘的逻辑连接包括到局域网(lan)748和/或更大网络(例如广域网(wan)750)的有线/无线连接。这种lan和wan联网环境在办公室和公司中是常见的,并且促进了企业范围的计算机网络,例如内部网,所有这些都可以连接到全球通信网络,例如因特网。
[0198]
当在lan联网环境中使用时,计算机701通过有线和/或无线通信网络接口或适配器752连接到lan 748。适配器752可以促进到lan 748的有线和/或无线通信,该lan还可以包括设置在其上的无线接入点,用于与适配器752的无线功能进行通信。
[0199]
当在wan联网环境中使用时,计算机701可以包括调制解调器754,或者连接到wan 750上的通信服务器,或者具有用于在wan 750上建立通信的其他手段,诸如通过因特网。调制解调器754(其可以是在有线和/或无线设备内部或外部)通过输入设备接口740连接到系统总线706。在网络化环境中,相对于计算机701描绘的程序模块或其部分可以被存储在远程存储器/存储设备746中。应当理解的是,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
[0200]
计算机701可操作来使用ieee 802系列标准与有线和无线设备或实体通信,诸如可操作地设置处于无线通信中的无线设备(例如,ieee 802.13空中调制技术)。这至少包括
wi-fi(或无线保真)、wimax和蓝牙无线技术等。因此,通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个设备之间的ad hoc通信。wi-fi网络使用称为ieee 802.13x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。无线网络可以用于将计算机相互连接、连接到因特网和有线网络(这些有线网络使用与ieee 802.3相关的媒体和功能)。
[0201]
图8是描绘适用于实施如前所述的各种实施例的示例性通信架构800的框图。通信架构800包括各种公共通信元件,诸如发射器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于由通信架构800实施。
[0202]
如图8所示,通信架构800包括一个或多个客户端802和服务器804。客户端802可以实施客户端设备510。服务器804可以实施服务器设备526。客户端802和服务器804可操作地连接到可用于存储相应的客户端802和服务器804本地的信息(诸如cookies和/或相关联的上下文信息)的一个或多个相应的客户端数据存储装置806和服务器数据存储装置808。
[0203]
客户端802和服务器804可以使用通信框架810在彼此之间传送信息。通信框架810可以实施任何熟知的通信技术和协议。通信框架810可以被实施为分组交换网络(例如,诸如因特网的公共网络、诸如企业内部网的私有网络等)、电路交换网络(例如,公共交换电话网络)、或者分组交换网络和电路交换网络的组合(具有合适的网关和翻译器)。
[0204]
通信框架810可以实施被布置成接受、通信和连接到通信网络的各种网络接口。网络接口可以被视为输入输出接口的特殊形式。网络接口可以采用连接协议,包括但不限于直接连接、以太网(例如,厚、薄、双绞10/100/1000baset等)、令牌环、无线网络接口、蜂窝网络接口、ieee 802.8a-x网络接口、ieee 802.16网络接口、ieee 802.20网络接口等。进一步,可以使用多个网络接口来参与各种通信网络类型。例如,可以采用多个网络接口来允许通过广播、多播和单播网络进行通信。如果处理要求规定更大的速度和容量,分布式网络控制器架构可以类似地用于汇合、负载平衡,以及以其他方式增加客户端802和服务器804所需的通信带宽。通信网络可以是有线和/或无线网络中的任何一种和它们的组合,包括但不限于直接互连、安全定制连接、专用网络(例如,企业内部网)、公共网络(例如,因特网)、个人区域网(personal area network,pan)、局域网(local area network,lan)、城域网(metropolitan area network,man)、作为因特网上的节点操作任务(operating missions as nodes on the internet,omni)、广域网(wide area network,wan)、无线网络、蜂窝网络和其他通信网络。
[0205]
以上描述的设备的组件和特征可以使用分立电路系统、专用集成电路(asic)、逻辑门和/或单芯片架构的任意组合来实施。进一步,在适当地适用的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述内容的任意组合来实施设备的特征。注意,硬件、固件和/或软件元件在本文中可以统称或单独称为“逻辑”或“电路”。
[0206]
应当理解,以上描述的框图中示出的示例性设备可以代表许多潜在实施方式的一个功能描述性示例。因此,在附图中描述的框功能的划分、省略或包括并不意味着用于实施这些功能的硬件组件、电路、软件和/或元件必须被划分、省略或包括在实施例中。
[0207]
至少一个计算机可读存储介质可以包括指令,这些指令在被执行时使得系统执行本文描述的任何计算机实施的方法。
[0208]
一些实施例可以使用表述“一个实施例”或“实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一
个实施例中”在说明书中的不同地方的出现不一定全部指同一实施例。另外,除非另有说明,以上描述的特征被认为可以以任何组合一起使用。因此,任何单独讨论的特征可以彼此结合使用,除非注意这些特征彼此不兼容。
[0209]
一般参考本文中使用的符号和命名,本文中的详细描述可以根据在计算机或计算机的网络上执行的程序过程来呈现。由本领域技术人员使用这些程序描述和表示来最有效地向本领域其他技术人员传达他们的工作的实质。
[0210]
程序在此并且通常被认为是导致期望的结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的那些操作。通常,尽管不是必须的,这些量采取能够被存储、传送、组合、比较和以其他方式操控的电、磁或光信号的形式。主要是出于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时被证明是方便的。然而,应该注意的是,所有这些和类似的术语与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。
[0211]
进一步,所执行的操控通常被称为诸如相加或比较的术语,这些术语通常与由人类操作员执行的精神操作相关联。在形成一个或多个实施例的一部分的本文描述的操作中的任何一个中,人类操作员的这种能力不是必需的,或者在大多数情况下不是期望的。而是,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
[0212]
一些实施例可以使用表达“耦接”和“连接”及其派生词来描述。这些术语不一定旨在是彼此同义。例如,一些实施例可以使用术语“连接”和/或“耦接”来描述,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦接”也可以表示两个或更多个元件彼此不直接接触,但是仍然彼此合作或交互。
[0213]
各种实施例还涉及用于执行这些操作的装置或系统。这个装置可以为所需的目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性激活或重新配置的通用计算机。本文中呈现的程序并不固有地与特定的计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所需的方法步骤是方便的。各种机器所需的结构将从给出的描述中出现。
[0214]
要强调的是,提供本公开的摘要是为了允许读者快速确定技术性公开内容的性质。在具有这样的理解的情况下提交的,即其将不用于解释或限制权利要求的范围或含义。此外,在前面的详细描述中,可以看出,出于简化本公开的目的,在单个实施例中将各种特征组合在一起。该公开方法不应被解释为反映了要求保护的实施例需要比每个权利要求中明确陈述的更多的特征的意图。相反,如以下权利要求所反映的那样,发明主题在于少于单个公开实施方式的全部特征。因此,下面的权利要求由此被结合到详细描述中,其中每个权利要求独立地作为分离的实施例。在所附权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包含(comprising)”和“其中(wherein)”的简明英语等价物。而且,术语“第一”、“第二”、“第三”等仅用作标签,并不旨在对它们的对象强加数字要求。
[0215]
上面已经描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每一个可想到的组合,但是本领域的普通技术人员可以认识到许多进一步的组合和置换是可能的。因此,新颖性架构旨在涵括落入所附权利要求的精神和范围内的所有这些变更、修改和变化。

技术特征:
1.一种存储指令的非暂时性计算机可读介质,所述指令在由处理器执行时致使所述处理器:访问要编码的信息,所述信息与由接收者请求认证的非接触式卡有关;访问存储在所述非接触式卡上的共享秘密,所述共享秘密对所述接收者也是已知的;组合所述共享秘密和所述要编码的信息以生成组合信息;从所述非接触式卡的存储器中获取第一主密钥和计数器值;利用所述第一主密钥和所述计数器值生成具有第一比特数的第一多样化会话密钥;利用所述第一多样化会话密钥将消息认证码(mac)算法应用于所述组合信息以生成mac输出;确定所述第一多样化会话密钥的所述第一比特数是否满足安全要求;响应于确定所述第一比特数满足所述安全要求,将所述mac输出传输给所述接收者;以及响应于确定所述第一比特数不满足所述安全要求,所述处理器:从所述非接触式卡的所述存储器中获取第二主密钥;利用所述第二主密钥和所述计数器值生成具有第二比特数的第二多样化会话密钥,其中所述第一多样化会话密钥和所述第二多样化会话密钥是不同的密钥;利用所述第二多样化密钥将加密算法应用于所述mac输出,以生成经加密的输出;确定所述第一比特数和所述第二比特数之和满足所述安全要求;以及将所述经加密的输出传输给所述接收者。2.根据权利要求1所述的介质,其中所述mac输出的至少一部分与随机元素组合,并且所述随机元素与所述经加密的输出一起被传输给所述接收者。3.根据权利要求1所述的介质,其中所述共享秘密是用于初始化所述非接触式卡的随机数。4.根据权利要求1所述的介质,其中所述要编码的信息是与所述非接触式卡相关的状态信息。5.根据权利要求1所述的非暂时性计算机可读介质,所述处理器通过将所述共享秘密与所述信息相乘,组合所述共享秘密与所述信息。6.根据权利要求1所述的非暂时性计算机可读介质,所述处理器通过将所述信息与所述共享秘密的至少一部分级联,组合所述共享秘密与所述信息。7.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一比特数和所述第二比特数之和大于或等于所述安全要求。8.一种方法,包括:访问要编码的信息,所述信息与由接收者请求认证的非接触式卡有关;访问存储在所述非接触式卡上的共享秘密,所述共享秘密对所述接收者也是已知的;组合所述共享秘密和所述要编码的信息以生成组合信息;从所述非接触式卡的存储器中获取第一主密钥和计数器值;利用所述第一主密钥和所述计数器值生成具有第一比特数的第一多样化会话密钥;利用所述第一多样化会话密钥将消息认证码(mac)算法应用于所述组合信息以生成mac输出;
确定所述第一多样化会话密钥的所述第一比特数不满足安全要求;响应于确定所述第一多样化会话密钥的所述第一比特数不满足所述安全要求,所述方法包括:从所述非接触式卡的所述存储器中获取第二主密钥;利用所述第二主密钥和所述计数器值生成具有第二比特数的第二多样化会话密钥,其中所述第一多样化会话密钥和所述第二多样化会话密钥是不同的密钥;利用所述第二多样化密钥将加密算法应用于所述mac输出的至少一部分,以生成经加密的输出;确定所述第一比特数和所述第二比特数之和满足所述安全要求;以及将所述经加密的输出传输给所述接收者。9.根据权利要求8所述的方法,其中所述mac输出的至少一部分与随机元素组合,并且所述随机元素与所述经加密的输出一起被传输给所述接收者。10.根据权利要求8所述的方法,其中所述共享秘密是用于初始化所述非接触式卡的随机数。11.根据权利要求8所述的方法,其中所述要编码的信息是与所述非接触式卡相关的状态信息。12.根据权利要求8所述的方法,其中组合所述共享秘密与所述信息包括将所述共享秘密与所述信息相乘。13.根据权利要求8所述的方法,其中组合所述共享秘密与所述信息包括将所述信息与所述共享秘密的至少一部分级联。14.根据权利要求8所述的方法,其中所述第一比特数和所述第二比特数之和大于或等于所述安全要求。15.一种非接触式支付卡,所述非接触式支付卡包括:存储器,其用于存储第一主密钥、第二主密钥、计数器值以及与接收者共享的秘密;处理器,其被配置为对要编码的信息执行加密程序,所述信息与由所述接收者请求认证的所述非接触式卡有关,并且所述处理器在执行所述加密程序时:组合所述要编码的信息与所述共享秘密,获取所述第一主密钥、所述第二主密钥和所述计数器值,利用所述第一主密钥和所述计数器值生成具有第一比特数的第一多样化会话密钥,利用所述第一多样化会话密钥将消息认证码(mac)算法应用于所述组合信息以生成mac输出,确定所述第一多样化会话密钥的所述第一比特数是否满足安全要求,响应于所述第一比特数满足所述安全要求,经由发射器将所述mac输出传输给所述接收者,响应于所述第一比特数不满足所述安全要求,所述处理器:利用所述第二主密钥和所述计数器值生成具有一第二比特数的第二多样化会话密钥,其中所述第一多样化会话密钥和所述第二多样化会话密钥是不同的密钥,利用所述第二多样化会话密钥将加密算法应用于所述mac输出,以生成经加密的输出,
确定所述第一比特数和所述第二比特数之和满足所述安全要求,以及经由所述发射器将所述经加密的输出传输给所述接收者。16.根据权利要求15所述的非接触式卡,其中所述mac输出的至少一部分与随机元素组合,并且所述随机元素与所述mac输出的至少一部分一起被传输到所述接收者。17.根据权利要求15所述的非接触式卡,其中所述共享秘密是用于初始化所述非接触式卡的随机数。18.根据权利要求15所述的非接触式支付卡,所述处理器通过将所述共享秘密与所述信息相乘,组合所述共享秘密与所述信息。19.根据权利要求15所述的非接触式支付卡,所述处理器通过将所述信息与所述共享秘密的至少一部分级联,组合所述共享秘密与所述信息。20.根据权利要求15所述的非接触式卡,其中所述第一比特数和所述第二比特数之和大于或等于所述安全要求。

技术总结
示例实施例提供了用于增加加密或消息认证码(MAC)生成技术的密码强度的系统和方法。根据一些实施例,可以围绕共享秘密(诸如随机初始化数)来构建MAC,从而基于共享秘密的大小来增加MAC抵抗暴力攻击的强度。MAC可以与随机化数据相结合,并且也可以被加密以进一步增强代码的强度。这些元素(共享秘密、MAC算法和加密算法)可以根据应用和所期望的安全级别以不同的组合和不同的程度使用。在每个阶段,加密构造对来自前一阶段的密码修改的数据进行操作。密码构造的这种分层可以比应用具有更大密钥大小或复杂性方面的类似增加的任何一种构造更有效地增加对比组的强度。造更有效地增加对比组的强度。造更有效地增加对比组的强度。


技术研发人员:凯文
受保护的技术使用者:第一资本服务有限责任公司
技术研发日:2019.10.02
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐