在数据电子字段自动且安全地提供敏感数据的技术
1.相关申请的交叉引用
2.本技术要求2021年3月4日提交的题为“techniques to automatically and securely provide sensitive data in data electronic fields”的美国专利申请序列号17/192,486的优先权。上述专利申请的内容通过引用整体并入本文。
背景技术:3.在日常生活中,我们通常与移动平台(诸如网站和本机移动应用)进行交互。这些平台有时要求用户在字段或表单中输入个人和/或敏感数据。例如,电子商务(e-commerce,电子商务)系统允许用户从舒适的他们家中执行商品和/或服务的交易。通常,用户经由应用(诸如通过网络浏览器中的网站或在本机移动应用中)与电子商务系统接口。
4.电子商务系统通常包括虚拟购物车和结账过程。在大多数情况下,结账过程涉及用户输入支付信息(诸如信用卡或借记卡信息)和其他个人信息以完成订单。然而,该过程对用户来说可能很麻烦,特别是当用户在手持设备(诸如移动设备)上执行交易时。例如,结账过程可能要求用户在多个字段(诸如账户信息、用户名、电话号码、地址等)中提供详细的支付信息。对使用商业结账过程的用户来说通常难以输入信息、时间不足或对结账过程感到受挫。这种挫折往往会导致潜在消费者放弃他们的交易。用户对要求用户输入敏感数据的其他类型的网站或应用(例如,医疗系统、银行系统等)具有类似的体验。因此,本文讨论的实施例旨在改进要求用户以安全方式输入数据的系统和过程。
技术实现要素:5.本文所讨论的实施例可以总体上针对通过认证用户、确定要填充的数据来用敏感数据自动填充字段的系统、设备、方法和技术。例如,实施例可以包括移动设备,其被配置为用新的或更新的信息自动填充网页的字段,所述移动设备包括处理电路,和与处理电路耦合的存储器,存储器存储指令,指令在由处理电路执行时致使处理电路检测与非接触式卡的通信的启动;经由无线接口执行与非接触式卡的通信,通信包括从非接触式卡接收认证信息;以及检测在线系统的网页的一个或多个字段,一个或多个字段被配置为接收数据。实施例还包括处理电路,确定标识在线系统的信息;将认证信息和标识在线系统的信息通信到服务器,服务器基于认证信息和标识在线系统的信息来获得数据;从服务器接收数据;以及用数据自动填充网页的一个或多个字段。
6.实施例还包括系统,包括一个或多个处理器,以及与一个或多个处理器耦合的存储器。存储器存储指令,指令在由一个或多个处理器执行时,致使一个或多个处理器接收并处理与非接触式卡相关联的认证信息和标识在线系统的标识信息。系统还执行与非接触式卡相关联的认证操作;以及确定认证操作是成功的还是不成功的。响应于认证操作是成功的,该系统可以确定能够填充与在线系统相关联的网页的一个或多个字段的数据,并且将数据发送到移动设备,以及响应于认证操作是不成功的,该系统可以向移动设备发送指示,以指明认证信息的不成功认证。
7.实施例还可以包括计算设备,包括处理电路;以及与处理电路耦合的存储器。存储器存储指令,指令在由处理电路执行时致使处理电路:检测要用数据填充的网页的一个或多个字段;用非接触式卡执行认证操作以认证用户;基于网页和认证操作的成功结果来确定填充一个或多个字段的数据;以及用数据填充网页的一个或多个字段。
附图说明
8.为了容易识别对任何特定元素或动作的讨论,参考编号中的一个或多个最高有效数字指代该元素被首次引入的图号。
9.图1示出了根据实施例的系统100的示例。
10.图2示出了根据实施例的示例顺序流200。
11.图3示出了根据一个实施例的例程300。
12.图4示出了根据一个实施例的例程400。
13.图5示出了根据实施例的非接触式卡500。
14.图6示出了根据实施例的交易卡组件600。
15.图7示出了根据一个实施例的顺序流700。
16.图8示出了根据实施例的数据结构800。
17.图9是根据实施例的密钥系统900的图。
18.图10示出了根据实施例的生成密码的例程1000。
19.图11示出了根据实施例的例程1100。
20.图12示出了根据实施例的例程1200。
21.图13示出了根据一个实施例的计算机架构1300。
22.图14示出了根据一个实施例的通信架构1400。
具体实施方式
23.这里讨论的实施例针对以安全的方式用数据自动填充网页或移动应用中的字段的方法、系统和技术。例如,该技术可以包括确定敏感数据需要被输入到字段或表单中,执行认证操作以认证用户,以及确定要填充在字段或表单中的敏感数据。敏感数据可以被提供和/或自动填充到网页或移动应用的一个或多个字段中,以执行任务或操作。
24.在一个示例中,任务可以是购买商品和/或服务的结账操作,并且敏感数据可以是账户或支付数据以填充在一个或多个字段中以进行购买。实施例包括检测和/或确定显示在网络浏览器或应用中的字段或表单需要安全数据,以及通过让用户将非接触式卡轻敲到计算设备来启动认证操作,以认证用户。计算设备可以与服务器通信以执行认证操作,并确定要填充在网页或移动应用中的数据。例如,计算设备可以将来自非接触式卡的信息和与网页/移动应用相关的信息发送到服务器。服务器可以利用来自非接触式卡的数据来执行认证操作。如果用户被认证,则服务器还可以确定填充网页或移动应用所需的数据。例如,服务器可以自动检索支付数据以提供给计算设备,并自动填充在网页或移动应用中。在一些实例中,支付数据可以是非接触式卡的账户信息。然而,在其他实例中,服务器可以执行一个或多个优化操作,以确定为网页或移动应用提供的最佳支付数据。最佳支付数据可以基于一个或多个标准,诸如将提供最多奖励(例如现金返还、旅行积分、航空公司里程、酒店
积分、商家折扣等)的支付数据。在其他实例中,该标准可以包括与具有足够资金来执行购买的账户相关的支付数据。实施例不限于这些示例。
25.如前所讨论的,今天的j9九游会真人的解决方案是有问题的,因为它们要求用户手动输入安全数据,这很不方便,并且容易出错。本文所讨论的操作通过使用户能够执行一个操作(例如,轻敲设备上或设备附近的非接触式卡)以认证用户并在网页或移动应用中填充安全信息,来解决这些和其他问题。本文讨论的实施例还提供了对计算机在处理这些网页或移动应用字段中的改进。例如,本文讨论的j9九游会真人的解决方案提供了在第一次尝试时用准确数据自动填充字段的安全方式。在先前的系统中,当用户在字段中不正确地输入信息或数据时,数据被通信到处理数据的后端系统。后端系统必须处理数据,确定数据不正确,并且向用户通信错误消息。然后,系统将必须用正确的数据再次执行相同的处理。本文讨论的实施例通过确保数据在第一次被输入字段时是准确的来改进该处理。因此,系统将经历更少的错误并且通信更少的数据,从而节省处理/通信时间和成本。
26.图1示出了被配置为执行本文所讨论的一个或多个操作的系统100的示例。具体地,系统100包括一个或多个设备和系统,其可以由用户使用,来自动填充网页或移动应用的一个或多个字段。图示的系统100包括经由一个或多个互连(诸如有线和无线网络连接)耦合的非接触式卡106、计算设备102和银行系统104。出于讨论的目的,系统100示出了有限数量的组件、设备和系统,但是系统100包括未示出的附加组件、设备以及系统,以实现本文所讨论的操作。
27.在实施例中,计算设备102可以是任何类型的计算设备,诸如移动设备、移动电话设备、个人数字助理、平板电脑等。在实施例中,计算设备102还可以是计算机、个人计算机、台式计算机、膝上型计算机、服务器、基于云的计算机等等。计算设备102可以包括多个组件,包括处理电路(诸如一个或多个处理器和/或处理组件)、存储器、存储、一个或多个接口、一个或多个显示器等等。一个或多个接口可以包括被配置为有线和无线通信的网络适配器。无线接口可以包括被配置为进行蜂窝通信、无线保真(wireless fidelity,wifi)通信和短程通信的那些接口,诸如蓝牙接口、近场通信(near-field communication,nfc)接口等等。
28.在实施例中,计算设备102还存储并被配置为执行软件指令,以执行本文所讨论的操作,包括一个或多个操作系统(operating system,os),该操作系统被配置为协调在较高级别的软件(诸如应用)和计算设备102的硬件组件之间执行的操作。本文讨论的实施例可以被配置为根据任何os(包括os、os、os等等)操作。
29.计算设备102可以包括附加软件,诸如应用(app)。在实施例中,计算设备102可以包括应用,该应用被配置为使用户能够购物商品和服务并执行交易。应用可以是独立的应用(例如由商家创建),并提供到后端系统(诸如在线商家系统)的接口。在实施例中,计算设备102还包括一个或多个网络浏览器应用,使用户能够访问和查看网站;以及在一些实例中,由在线商家系统提供的商家网站。在这些实例中,用户可以经由网络浏览器中呈现的网站与在线商家系统执行交易。计算设备102可以包括被配置为执行本文所讨论的操作的其他应用,诸如银行应用、投资应用、酒店应用、航空公司应用、电子邮件应用、社交媒体应用、通信应用、医疗应用等等。
30.在实施例中,计算设备102还包括银行应用,该银行应用被配置为与计算设备102、
银行系统104和非接触式卡106上的一个或多个其他应用接口。在实施例中,银行应用可以被配置有一个或多个应用编程接口(application programming interface,api),使得应用和网络浏览器可以与银行应用接口并通信,以执行本文所讨论的一个或多个操作。例如,当一个或多个字段需要数据时,例如在执行交易以确定支付信息、提供贷款申请数据、提供医疗数据等的结账过程期间,应用或网络浏览器可以与银行应用接口。银行应用可以通过与非接触式卡和服务器通信来执行一次或多次认证用户、确定要填充在字段或表单中的数据以及使数据自动填充。然而,在其他实例中,执行本文所讨论的操作的指令或代码可以被嵌入和/或包括在本机或第三方应用本身中。例如,商家的应用可以包括执行认证操作、与服务器通信以确定敏感数据、以及将敏感信息自动填充和/或插入到适当字段或数据输入区域中的指令。在另一示例中,网络浏览器可以包括执行操作的指令和/或插件。
31.在实施例中,计算设备102可以确定或检测数据可以被自动填充到一个或多个字段或表单中,并且首先用非接触式卡和银行系统104执行认证操作。例如,银行应用和/或指令可以触发或导致在显示设备上显示提示,以供用户将非接触式卡106提供给计算设备102,例如,将非接触式卡106带入计算设备102的操作范围内。操作范围可以由被配置为与非接触式卡106通信的短程通信接口的通信范围来定义。例如,nfc操作范围大约为10厘米或更小。非接触式卡106可以与图5-图12中所讨论的非接触式卡相同并且被配置为像其一样通信,包括交换可以被用于识别用户的密码中的信息。
32.在实施例中,计算设备102可以经由与卡的一次或多次短程通信交换从非接触式卡106接收信息和数据。计算设备102可以被配置为经由一次或多次交换进一步与银行系统104通信从非接触式卡106接收的信息。银行系统104可以利用该信息来认证用户。如果用户未被认证,则自动填充数据的操作可能会停止。如果用户被认证,则操作可以确定数据并使数据自动填充。例如,计算设备102可以向银行系统104提供与一个或多个字段有关的附加信息,例如,网页或移动应用的标识符以及字段的标识符。银行系统104可以利用附加信息来确定要填充在网页或移动应用中的敏感数据。所确定的数据可以被提供回计算设备102并且被填充到对应的字段中。
33.在实施例中,银行系统104包括一个或多个计算设备(诸如服务器、网络设备等),其被配置为向客户提供银行服务并执行本文所讨论的操作。实施例不限于银行系统104的特定配置。在实施例中,银行系统104被配置为从计算设备102接收信息,认证用户,并确定要填充在网页或移动应用的一个或多个字段中的数据。
34.银行系统104可以通过将从计算设备102接收的数据与存储的数据进行比较来认证用户。如下面将更详细地被讨论的,银行系统104可以确保来自非接触式卡的数据可以利用共享密钥被解密,并且来自卡的信息与存储的数据(例如,共享秘密)相匹配。注意,实施例不限于以这种方式认证用户,并且在一些实例中,用户可以提供密码、生物特征输入等,其可以由计算设备102和/或银行系统104使用,来认证用户。
35.一旦被认证,银行系统就可以确定要填充字段或表单的数据。在交易示例中,银行系统104可以基于从非接触式卡接收的数据和/或从计算设备102接收的信息来确定支付账户。具体地,银行系统104可以在安全数据库或数据存储中执行查找,以确定与用户相关联的账户信息。账户信息可以包括链接到非接触式卡的信用卡账户的信用卡账号。附加信息还可以被确定以填充在字段中,例如,用户的姓名、用户的地址、用户的电话号码、与账户相
关联的验证值、与账户关联的到期日期等等。该信息可以被提供回计算设备102以填充在相关联的字段中。
36.在一些实例中,银行系统104可以为用户提供附件的服务,包括确定是否存在一个或多个选项或最佳数据来填充字段,例如,使用不同的账户信息来执行交易是否可能对用户更有利。例如,银行系统104可以使用该数据来识别商家并确定最佳支付数据。在一个特定示例中,银行系统104可以使用商家标识符来确定商家是航空公司。银行系统104可以确定用户已经开设了银行或信用账户,如果该账户被用于执行交易,则该账户将接收里程或积分。银行系统104可以向计算设备102的用户提供选项,以利用替代账户而不是与非接触式卡相关联的账户来执行交易。例如,用户可以经由在计算设备102的显示器上的gui中呈现的窗口和/或信息经由账户进行选择。银行系统104可以提供多个选项(三个或更多个账户)供用户选择。一旦用户做出选择,对应于选择的数据就可以被填充到字段中。
37.银行系统104可以基于一个或多个标准(例如奖励、年利率(annual percentage rate,apr)、当前激励计划(6个月0%利息)等)做出向用户提供可选和/或最佳建议的确定。具体地,银行系统104可以分析与用户相关联的一个或多个账户,包括与非接触式卡相关联的账户。银行系统104可以将每个用户的账户信息存储在由银行系统104控制的数据库或数据存储中。为了确定对用户的建议,银行系统104可以比较银行维护的每个账户的特征,例如奖励、apr、激励优惠等,以确定哪个账户对用户来说可能是最佳的。在一些实例中,银行系统104可以与第三方系统(例如,其他银行系统、航空公司系统、商家系统等)通信,以确定可以被用于填充字段的附加账户或信息。一旦信息被分析,银行系统104就可以将选项通信回用户和计算设备102。
38.例如,银行系统104可以将所有可选建议通信到计算设备102。可选建议可以是执行交易的所有可用账户的列表。用户可以选择选项之一,并且基于该选择,数据可以被填充和/或提供给网页或移动应用。在一些实例中,可以从计算设备102向银行系统104提供用户的选择的响应,并且银行系统104可以向计算设备102发送另一通信,包括要填充在网页或移动应用中的支付数据。
39.在实施例中,银行系统104可以对可选建议进行排名。排名可以基于用户设置的一个或多个设置。例如,银行系统104可以将可用于执行购买的账户与用户设置的偏好进行比较。偏好可以包括用户想要用来执行交易的简单订单账户。在其他实例中,用户可以设置不同的偏好,诸如具有最高奖励的帐户。在该示例中,银行系统104可以基于账户为交易提供的奖励对账户进行排名。在实施例中,排名信息可以被提供给计算设备102并且被呈现给用户。用户可以基于所呈现的信息做出知情的决定。
40.在一些实例中,银行系统104可以根据为用户设置的偏好自动选择账户之一。例如,银行系统104可以在用户提供的排名列表上选择可用的第一账户。在另一示例中,银行系统104可以选择将提供最大奖励的账户,例如,最多里程、最高百分比回退、激励优惠等。在一些实例中,银行系统104将执行一个或多个计算以确定每个奖励的类似值。例如,银行系统104可以将里程转换为货币价值,基于用户的历史支付确定估计的支付利息,基于激励优惠节省的金额,等等。银行系统104可以选择将向用户提供最多货币价值的账户,例如,返现或赚取的金钱/奖励。在唯一的单一信息可以被提供给计算设备102或者银行系统104对最佳信息做出选择的实例中,银行系统104可以将信息通信到计算设备102,并且计算设备
102可以在没有用户干预的情况下(即,用户不需要做出选择)自动填充字段或表单。实施例不限于这种方式。注意,在一些实施例中,由银行系统104执行的一个或多个操作可以由计算设备102本地执行。例如,计算设备102可以本地存储可以填充到一个或多个字段中的数据。实施例不限于这种方式。
41.图2示出了可以在计算设备102、非接触式卡106和银行系统104之间被执行的示例顺序流200。关于顺序流200讨论的操作可以被执行以确定网页或移动应用需要敏感数据,执行认证操作以认证计算设备的用户,并确定要为网页或应用填充的敏感数据。如先前所讨论的,数据可以是网页或应用中的一个或多个字段所需的敏感数据。
42.在线202处,顺序流200包括计算设备102确定网站或移动设备中的字段或表单需要数据。例如,执行指令的计算设备102可以接收信号或指示,即需要数据输入的字段或表单在显示器上被呈现给用户。该信号或指示可以经由对计算设备102上执行的银行应用、网络浏览器或本机第三方应用的功能的功能调用被接收。在另一示例中,计算设备102可以执行作为后台进程操作的线程或函数,并检测另一应用何时在gui中呈现需要数据输入的一个或多个字段。在一些实施例中,指令可以用编程语言(诸如javascript(js))或脚本语言(如python)被实施,并且可以被调用或执行以检测数据输入要求。
43.在实施例中,指令可以自动检测字段或表单何时需要敏感数据。敏感数据可以是用户想要保密或私有的任何类型的数据。例如,敏感数据可以是个人信息、银行信息、医疗信息等等。在本文讨论的一个示例中,敏感数据可以是用于执行交易的交易数据。例如,用户可以利用移动应用或网络浏览器来执行在线购物。用户可以将商品和/或服务添加到电子购物车(即存储位置),以及然后在他们完成过程后启动结账过程。通常,应用或网络浏览器可以在显示器上的图形用户界面(graphical user interface,gui)中呈现结账页面,并且可以请求用户提供信息,包括运输信息、商品/服务正确的确认以及计费/支付信息。计算设备102可以执行分析呈现给用户的元素(字段)的名称和类型的一个或多个指令。指令可以检测元素是字段,并且执行基于文本的分析以检测名称指示需要敏感数据,例如,元素的名称可以是“accountnumber”,指示银行帐号要被输入到字段中。指令可以用编程语言(诸如javascript)或python被实施,使得当用户导航到具有字段或表单时,从页面中的元素检测字段标识符、字段名称或xpath时。
44.由于数据是敏感数据,并且用户以外的某些人使用可能是有害用户,因此系统可以验证用户是数据的所有者。具体地,并且在线204处,顺序流200包括执行认证操作以认证用户。在该示例中,认证操作利用存储在非接触式卡上的数据被执行。然而,其他认证操作可以被执行,例如,输入密码、生物特征输入等。在该示例中,计算设备102提示用户将非接触式卡106呈现给计算设备102,例如,将非接触式卡带入计算设备102的通信范围内。计算设备102可以在gui中呈现将非接触式卡106轻敲在计算设备102的显示器上的指示,确保卡被带入计算设备102通信内。
45.将卡轻敲到显示器的指示可以被显示在网络浏览器或移动应用中。例如,计算设备102(包括移动应用或网络浏览器)可以在用户通常用于输入他们的支付信息的字段中提供指示。该字段可能包括“将支付卡轻敲在显示器”的说明。在另一示例中,计算设备102可以致使在显示器上向用户呈现弹出gui,包括将卡轻敲到显示器的指示。银行应用和/或嵌入式指令初始化并准备执行与非接触式卡的短程通信。例如,计算设备102可以执行一个或
多个指令,包括初始化一个或多个nfc交换,诸如用非接触式卡执行一次或多次nfc读取。
46.在线206处,顺序流200包括执行与非接触式卡106的短程通信交换。在实施例中,短程通信交换可以是nfc交换,并且包括计算设备102和非接触式卡106执行nfc初始化交换以建立连接,以及由计算设备102执行一次或多次nfc读取操作以从非接触式卡106读取数据。在实施例中,非接触式卡106可以被配置为经由电磁能从计算设备102接收功率;然而,实施例不限于这种方式,并且在一些实例中,非接触式卡106可以包括其自己的电源,诸如电池。
47.在实施例中,线206处的nfc交换包括计算设备102执行读取操作以接收nfc有效载荷,包括识别客户和执行交易的信息。例如,nfc有效载荷可以包括具有包括的认证信息的密码,认证信息包括一个或多个标识号、计数器、版本号和共享秘密,并且如图5-图12中所讨论的,由非接触式卡106使用多样化密钥来加密。在一些实施例中,有效载荷可以包括附加信息,诸如可以标识与非接触式卡106相关联的客户的未加密标识符。实施例不限于这种方式。
48.在线208处,顺序流200包括计算设备102接收并处理来自非接触式卡106的信息。例如,计算设备102可以准备来自非接触式卡的信息以与银行系统104通信以执行认证操作,例如,应用附加的安全操作(加密)、格式化数据、向银行系统104发送指示等。当不同的认证操作被执行时,计算设备102可以处理密码、生物特征数据等,以在该顺序步骤认证用户。除了处理来自非接触式卡的数据并将其发送到银行系统之外,计算设备102还可以确定和/或收集关于所需敏感数据的附加信息。例如,计算设备102可以确定可以由银行系统104用来识别所请求的数据(或字段)的标识符以及网页/移动应用。
49.在线210处,顺序流200包括计算设备102将来自非接触式卡106的信息和附加信息通信到银行系统104。非接触式卡信息和标识符信息可以通过一个或多个无线和有线连接在一个或多个消息中安全地通信。
50.银行系统104可以接收并处理来自计算设备102的信息。具体地,银行系统104可以基于从计算设备102和非接触式卡106接收的信息来确认客户的身份。例如,银行系统104可以将来自卡的信息与存储的认证信息进行比较,以确保共享秘密与认证共享秘密相匹配,认证共享秘密例如与客户相关联。
51.如果通过银行系统104确认非接触式卡信息是正确的或通过计算设备102执行认证操作来认证用户,则银行系统104可以确定填写字段或表单所需的数据,例如,要发送回计算设备102的数据。例如,银行系统104可以确定要发送到计算设备102以填充在字段中的支付数据和/或个人数据。如先前所讨论的,支付数据可以包括与非接触式卡106相关联的账号,并且银行系统104可以在数据库或数据存储中执行查找以确定该账号。银行系统104可以执行类似的操作来确定其他数据,例如,个人数据、医疗数据、其他支付数据等。例如,银行系统104可以基于提供给用户的利益(基于一个或多个标准)来确定其他账户的支付数据。在一些实例中,银行系统104可以确定并提供选项或建议供用户选择以在一个或多个字段中输入。
52.在线212处,银行系统104可以将数据发送到计算设备102,以自动填充在一个或多个字段中。在线214处,数据可以由计算设备102接收并自动输入到字段中。如将参考图3更详细地讨论的,计算设备102可以基于从银行系统104接收的数据的标识信息以及要填充的
元素(字段)的名称或标识符来自动填充一个或多个字段。如果银行系统104向用户提供一个或多个建议,则用户可以被提示选择建议中的一个,并且数据可以基于用户选择被填充到一个或多个字段中。
53.图3示出了例程300,该例程可以由诸如计算设备102的设备(计算设备可以是移动设备或类似设备)执行,以将数据自动填充或提供在网页或移动应用中以执行操作,诸如执行在线交易、提交贷款申请、提供医疗信息等。在所示例程300中,操作中的一个或多个可以由在计算设备102上执行的一个或多个应用或指令来执行。在一些实例中,数据可以是执行交易的账户数据;然而,实施例不限于这种方式。如先前所讨论的,数据可以是个人数据、医疗数据等等,并且用于执行操作。例程300开始于计算设备102和非接触式卡之间的交换以认证用户。然而,如图2中所讨论的,可以在交换之前执行一个或多个操作,例如,可以检测字段。
54.在框302中,例程300检测与非接触式卡的通信的启动。在一些实例中,与非接触式卡的通信的启动可以是结果并且基于对需要敏感数据的一个或多个字段的检测。计算设备102可以通过显示消息或请求来提示用户将非接触式卡带入通信距离内。例如,执行指令的计算设备102可以在显示器上呈现将非接触式卡轻敲在显示器上的消息。该消息可以被显示在网页或移动应用中需要敏感数据的一个或多个字段中或其周围,或者显示在显示器上的弹出窗口中。弹出窗口可以由基于显示器上呈现的要求用户输入敏感数据的一个或多个字段的检测的指令触发。计算设备102可以基于所显示的元素的名称(例如,字段的标签或标记)来检测需要敏感数据的一个或多个字段。在一些实例中,指令可以被嵌入网页或移动应用本身,使得当用户导航到特定页面时,指令触发对数据的请求并执行认证操作,例如,将非接触式卡带到计算设备102附近。
55.在框304中,例程300经由无线接口执行与非接触式卡的通信,该通信包括从非接触式卡接收认证信息。计算设备102和非接触式卡可以在一个或多个消息(诸如nfc数据交换格式(nfc data exchange format,ndef)消息)中交换信息。与非接触式卡的通信交换可以包括从非接触式卡接收认证信息。在一些实施例中,计算设备102可以从非接触式卡接收包括密码的有效载荷。如本文所讨论的,密码可以包括认证信息,包括一个或多个标识号、计数器、版本号和共享秘密,并且可以使用多样化的密钥被加密。密码可以由非接触式卡生成、加密并通信到计算设备102。在实施例中,有效载荷可以包括附加信息,诸如未加密标识符。未加密标识符可以是客户标识符,标识与非接触式卡相关联并存储在非接触式卡上的客户。实施例不限于这种方式。计算设备102可以利用该信息来与服务器或银行系统进行认证操作。
56.在框306中,例程300检测或确定在线系统的网页或移动应用的一个或多个字段。一个或多个字段被配置为从用户接收数据或自动填充。例如,计算设备102可以执行一个或多个javascript或java功能,以基于特定字段的标签或标记来识别当前正显示在网页上或移动应用中的字段。在一些实例中,计算设备102可以利用xpath查询语言来确定在网页或移动应用上显示的字段(或元素)。xpath查询的结果可以为网页或移动应用上的每个元素返回名称或标记。返回的名称或标记的文本可以被分析,以确定所需的特定数据。字段的名称可以是“accountname”、“firstname”、“lastname”、“expirationdate”、“address”等等。在一些实例中,字段可以用已知名称被预编程,即银行系统已知或由银行系统指定的名称。
在其他实例中,银行系统可以对名称元素执行文本分析技术,并使用上下文线索来确定所需的特定数据,例如,“accnam”可能与“accountname”足够相似。注意,实施例不限于利用javascript和/或xpath来确定字段的名称,并且可以利用其他编程语言来检测元素或字段,诸如python和get字段函数。
57.在框308中,例程300确定标识在线系统的信息。具体地,实施例包括标识托管和/或提供网页或移动应用的系统。例如,在线系统可以是销售在线商品和/或服务的商家系统、提供银行服务的银行系统、提供医疗服务的医疗提供商系统或类似系统。标识在线系统的信息可以从网页或计算设备102本身被确定。例如,标识符可以是网址或移动应用名称。标识在线系统的信息也可以由服务器和/或银行系统用来确定字段的数据。
58.在框310中,例程300将认证信息和标识在线系统的信息通信到服务器。服务器可以是银行系统的一部分,并且在一些实例中,可以存在多于一个的服务器或计算系统。认证信息和标识在线系统的信息可以经由一个或多个安全连接被通信。在一些实例中,认证信息和标识信息可以在不同和/或单独的消息中被通信。计算设备还可以通信标识字段的信息,例如,元素的名称。
59.包括接收信息的服务器的银行系统可以在确定并提供字段的数据之前,首先基于认证信息对用户进行认证。如果认证失败,则服务器将向计算设备102提供认证失败的指示。在一些实例中,银行系统可能要求客户在填充敏感数据之前提供附加的认证信息,例如,多因素认证。例如,银行系统可以向计算设备102发送请求,请求客户和/或计算设备102提供附加的认证信息。包括该网站或移动应用的计算设备102可以基于登录到与该网站或该移动应用相关联的账户的客户来确认认证。在另一示例中,计算设备102可以接收请求,并在显示器上为客户提供指示,以例如经由生物特征传感器、凭证/密码的输入等来提供附加认证信息。响应于该请求,计算设备102可以向银行系统提供附加认证信息和关于用户是否被认证的结果。如果被认证,服务器将利用标识在线系统的信息和字段来确定要填充的数据。例如,服务器可以通过在数据库中执行查找来基于标识信息确定商家。一旦商家识别,服务器就可以确定商家可以利用的账户或支付数据。账户数据可以是可以为网页或移动应用上的字段提供的账号。在实施例中,帐号可以是非接触式卡的帐号。如先前所讨论的,服务器可以执行操作以确定可以被用于执行交易的最佳或不同账户。例如,服务器确定商家,并确定使用不同的账户是否可以为用户提供利益,例如奖励、返现、较低apr、激励优惠等。
60.在实施例中,标识在线系统的信息可能不足以确定字段的数据。在一些实例中,计算设备102和服务器可以接收标识每个需要数据的字段的信息,例如,元素的名称、字段标识符或类似物。该信息可以标识姓名字段、电话号码字段、地址字段、账户字段、到期数据字段、cvv字段等。如提到的,本文讨论的技术可以应用于填充除交易之外的数据的字段。例如,所需的数据可以用于填充贷款申请,并且字段可以用于不同的数据,例如,社会保障号字段、收入字段、多个从属字段等。类似地,处理医疗信息的医疗系统可以包括医疗相关字段、健康史字段、药物字段、过敏症字段等。
61.服务器可以利用标识每个字段的信息来确定每个字段的数据,例如,在数据库或数据存储中执行查找。例如,服务器可以利用元素(字段)的名称或标识符来确定数据库中的对应数据,查找名为“accountname”的字段的帐号。包括服务器的银行系统可以以安全和
加密的方式存储与用户有关的数据,该数据可以被用于向字段提供数据。在一些实例中,银行系统可以被配置为从第三方系统(例如,医疗提供商系统、另一银行系统等)通信和检索信息。用户可以提供许可和/或选择使银行系统能够与其他第三方系统执行操作。
62.在框312中,例程300从服务器接收数据。具体地,计算设备102可以从银行系统接收一个或多个字段的数据。数据可以被通信到计算设备102,使得计算设备102可以识别对应于每个字段的每个特定数据片。例如,每个数据片可以被标记和/或用特定字段的标记来标识,例如,《name》first last、《accountnumber》#######、《phonenumber》#-###-###-####等。在实施例中,标识符可以是字段的相同名称或标识符。数据可以在一个或多个通信或消息中被发送到计算设备102。在一些实施例中,标记可以是网页或移动应用用来标识字段的相同标记或标签。
63.在一些实例中,数据可能包括特定数据片的一个或多个选项。如先前所讨论的,银行系统可以识别可以被用于执行交易的多个账户,并提供账户选项的列表,以及在一些实例中,提供账户选项的排名列表。可以在计算设备102上提示用户选择选项中的一个。对于不同的数据也可能存在选项。例如,用户可以与多个电话号码相关联,并且可以被提示选择电话号码。实施例不限于这种方式。
64.在框314中,例程300包括用数据自动填充网页或移动应用的一个或多个字段。例如,计算设备102可以从银行系统的服务器接收数据,并将其自动填充在网页或移动应用上显示的正确字段中。计算设备102可以包括一个或多个指令(诸如javascript或js指令),其基于字段或元素上的名称、标签或标记将数据发布到特定字段。如所讨论的,计算设备102可以被配置为确定每个元素或字段名称。类似地,计算设备102被配置为将特定数据插入到对应的元素或字段中,例如,将支付数据插入到支付元素或字段中。指令可以利用上面在框306处确定的字段的名称来插入对应的语言。例如,如果字段的名称为“accountnumber”,则该函数被配置为利用“accountnumber”的名称将包括账号的支付数据输入到该字段中。包括指令的计算设备102基于与来自银行系统的数据通信的标识符来确定正确的数据片。实施例不限于此示例,以及每个数据片可以以相同的方式被插入其对应的字段。
65.一旦所有数据已被自动填充到字段中,计算设备102就可以继续执行下一操作或动作,例如,提交数据以执行交易。在一些实例中,计算设备102可以首先经由弹出窗口等询问用户以确认数据。计算设备102还可以依赖于用户启动下一操作,例如通过激活提交输入或按钮。
66.图4示出了可以由系统的一个或多个服务器执行的示例例程400。在图示的示例和下面的讨论中,服务器被合并到银行系统中;然而,实施例不限于该方式。可以执行例程400以认证用户并确定要填充在一个或多个字段中的数据。
67.在框402中,例程400包括接收与非接触式卡相关联的认证信息以及标识在线系统的标识信息。在一些实例中,服务器可以接收标识需要数据的一个或多个字段的信息。认证信息可以包括来自非接触式卡的信息,包括密码,该密码包括具有一个或多个标识号、计数器、版本号和共享秘密的认证信息,并且使用多样化密钥被加密。密码可以由非接触式卡生成、加密并通信到计算设备102,以及然后由计算设备102通信到服务器。在实施例中,有效载荷可以包括附加信息,诸如未加密标识符。未加密标识符可以是客户标识符,标识与非接触式卡相关联并存储在非接触式卡上的客户。实施例不限于这种方式。计算设备102可以利
用该信息来与服务器或银行系统进行认证操作。
68.在框404中,例程400执行与非接触式卡相关联的认证操作。例如,银行系统可以确定来自非接触式卡的认证信息是否可以基于与非接触式卡相关联并存储在银行系统上的一个或多个密钥被解密。在另一示例中,银行系统可以确定认证信息的至少一部分是否与存储在银行系统上的认证信息相匹配。例如,银行系统可以确定来自非接触式卡的共享秘密是否与共享秘密(与非接触式卡相关联)相匹配。银行系统还可以确认附加认证信息指示客户是真正的,例如,输入了与在线商家系统相关联的密码,在客户的设备上输入了正确的凭证,等等。
69.在框406中,例程400确定认证操作是成功的还是不成功的。在框410中,例程400响应于认证操作是不成功的,向计算设备102发送指示以指明认证信息的不成功认证。
70.框408,例程400,响应于认证操作是成功的,确定能够填充与在线系统相关联的一个或多个字段的数据并将数据发送到计算设备102。例如,服务器可以利用标识在线系统的信息来识别商家。服务器然后可以确定与用户相关联的账号,并且该账号可以与商家和在线系统一起使用。如提到的,服务器可以接收标识需要敏感数据的字段中的每一个的信息。服务器可以基于字段的名称或标识符来确定所需的数据,例如,“accountnumber”对应于执行交易的账号。服务器可以使用字段的名称或标识符来确定字段中的每一个的数据,例如,通过在数据库中执行查找和/或与第三方系统通信,如先前所讨论的。
71.服务器还可以确定为一个或多个字段提供的一个或多个选项或最佳数据。如所讨论的,服务器可以基于用户设置来确定返回到计算设备的最佳数据,例如,最多奖励、最高货币价值等。在一些实例中,服务器可以返回选项列表,例如,可以被用于执行交易的每个账户。在一些实例中,该列表可以是基于一个或多个标准的排名列表。服务器然后可以将数据发送回计算设备102,并且计算设备102可以用对应的数据填充字段中的每一个,如例程300中所讨论的。如果没有向用户提供选项,则计算设备可以在没有用户交互的情况下自动填充字段。如果向用户提供选项,则用户可以首先选择选项中的一个,以及然后数据可以被自动填充到字段中。以下描述提供了关于非接触式卡的更多细节,并利用该卡执行认证操作。
72.图5示出了非接触式卡500的示例配置,其可以包括非接触式卡、支付卡(诸如信用卡、借记卡或礼品卡),其由服务提供商(如显示为在非接触式卡500的正面或背面上的服务提供商标记502)发行。在一些示例中,非接触式卡500与支付卡无关,并且可以包括但不限于识别卡。在一些示例中,非接触式卡可以包括双接口非接触式支付卡、奖励卡等等。非接触式卡500可以包括基板508,基板508可以包括单层,或者由塑料、金属和其他材料组成的一个或多个层压层。示例性基板材料包括聚氯乙烯、聚氯乙烯乙酸酯、丙烯腈丁二烯苯乙烯、聚碳酸酯、聚酯、阳极化钛、钯、金、碳、纸和可生物降解材料。在一些示例中,并且非接触式卡500可以具有符合iso/iec 7816标准的id-1格式的物理特性,并且非接触式卡可以另外符合iso/iec 14443标准。然而,应当理解,根据本公开的非接触式卡500可以具有不同的特性,并且本公开不要求在支付卡中实施非接触式卡。
73.非接触式卡500还可以包括显示在卡的正面和/或背面上的标识信息506以及接触垫504。接触垫504可以包括一个或多个垫,并且被配置为经由非接触式卡与另一客户端设备(诸如atm、用户设备、智能手机、膝上型电脑、台式机或平板电脑)建立接触。接触垫可以
根据一个或多个标准(诸如iso/iec 7816标准)被设计,并且使能根据emv协议的通信。非接触式卡500还可以包括处理电路、天线和其他组件,如将在图6中进一步讨论的。这些组件可以位于接触垫504后面或基板508上的其他地方,例如在基板508的不同层内,并且可以与接触垫504电气耦合和物理耦合。非接触式卡500还可以包括磁条或磁带,其可以位于卡的背面(图5中未示出)。非接触式卡500还可以包括与能够经由nfc协议进行通信的天线耦合的近场通信(nfc)设备。实施例不限于这种方式。
74.如图5所示,非接触式卡500的接触垫504可以包括用于存储、处理和通信信息的处理电路616,包括处理器602、存储器604和一个或多个接口606。应当理解,处理电路616可以包含如执行本文所述功能所需的附加组件,包括处理器、存储器、错误和奇偶/crc校验器、数据编码器、防冲突算法、控制器、命令解码器、安全原语和防篡改硬件。
75.存储器604可以是只读存储器、一次写入多次读取存储器或读/写存储器(例如ram、rom和eeprom),并且非接触式卡500可以包括这些存储器中的一个或多个。只读存储器可以在工厂可编程为只读或一次性可编程。一次性可编程性提供了一次写入然后多次读取的机会。一次写入/多次读取存储器可以在存储器芯片出厂后的某个时间点被编程。一旦存储器被编程,它就可能不会被重写,但可能会被多次读取。读/写存储器可能在出厂后多次被编程和重新编程。读/写存储器也可以在出厂后多次被读取。在一些实例中,存储器604可以是利用由处理器602执行的加密算法来加密数据的加密存储器。
76.存储器604可以被配置为存储一个或多个小程序608、一个或多个计数器610、客户标识符614和账号612,它们可以是虚拟账号。一个或多个小程序608可以包括被配置为在一个或多个非接触式卡上执行的一个或多个软件应用,诸如卡小程序。然而,应当理解,小程序608不限于java卡小程序,并且代之可以是在非接触式卡或具有有限存储器的其他设备上可操作的任何软件应用。一个或多个计数器610可以包括足以存储整数的数字计数器。客户标识符614可以包括分配给500的用户的唯一字母数字标识符,并且该标识符可以将非接触式卡的用户与其他非接触式卡用户区分开来。在一些示例中,客户标识符614可以标识客户和分配给该客户的账户,并且可以进一步标识与该客户的账户相关联的非接触式卡500。如所陈述的,账号612可以包括与非接触式卡500相关联的数千个一次性使用虚拟账号。非接触式卡500的小程序608可以被配置为管理账号612(例如,选择账号612,将所选账号612标记为已使用),并将账号612传输到移动设备以通过自动填充服务进行自动填充。
77.前述示例性实施例的处理器602和存储器元件参考接触垫504被描述,但本公开不限于此。应当理解,这些元件可以在接触垫504之外被实施或与接触垫504完全分离,或者作为位于接触垫504内的进一步元件(除了处理器602和存储器604元件之外)。
78.在一些示例中,非接触式卡500可以包括一个或多个天线618。一个或多个天线618可以被放置在非接触式卡500内并围绕接触垫504的处理电路616。例如,一个或多个天线618可以与处理电路616集成,并且一个或多个天线618可以与外部升压线圈一起使用。作为另一示例,一个或多个天线618可以在接触垫504和处理电路616的外部。
79.在实施例中,非接触式卡500的线圈可以充当空心变压器的次级。终端可以通过切断功率或幅度调制与非接触式卡500进行通信。非接触式卡101可以使用非接触式卡的功率连接中的间隙来推断从终端传输的数据,该功率连接可以通过一个或多个电容器在功能上保持。非接触式卡500可以通过切换非接触式卡的线圈上的负载或负载调制来反向通信。负
载调制可能通过干扰在终端的线圈中被检测到。更一般地,使用天线618、处理器602和/或存储器604,非接触式卡101提供通信接口以经由nfc、蓝牙和/或wi-fi通信进行通信。
80.如上所解释的,非接触式卡500可以被构建在可在智能卡或具有有限存储器的其他设备(诸如javacard)上操作的软件平台上,并且一个或多个或多个应用或小程序可以被安全地执行。小程序608可以被添加到非接触式卡,以在各种基于移动应用的用例中提供用于多因素认证(multifactor authentication,mfa)的一次性密码(one-time password,otp)。小程序608可以被配置为响应来自读取器(诸如移动nfc读取器(例如,移动设备或销售点终端的))的一个或多个请求(诸如近场数据交换请求),并且产生ndef消息,该ndef消息包括编码为ndef文本标签的密码安全otp。
81.ndef otp的一个示例是ndef短记录布局(sr=1)。在这种示例中,一个或多个小程序608可以被配置为将otp编码为ndef类型4公知类型文本标签。在一些示例中,ndef消息可以包括一个或多个记录。小程序608可以被配置为除了otp记录之外还添加一个或多个静态标签记录。
82.在一些示例中,一个或多个小程序608可以被配置为模拟rfid标签。rfid标签可以包括一个或多个多态标签。在一些示例中,每次读取标签时,都会呈现不同的密码数据,这些数据可能指示非接触式卡的真实性。基于一个或多个小程序608,标签的nfc读取可以被处理,数据可以被传输到服务器(诸如银行系统的服务器),并且数据可以在服务器处被验证。
83.在一些示例中,非接触式卡500和服务器可以包括某些数据,使得卡可以被正确识别。非接触式卡500可以包括一个或多个唯一标识符(未示出)。每次发生读取操作时,计数器610可以被配置为递增。在一些示例中,每次来自非接触式卡500的数据被读取(例如,通过移动设备)时,计数器610被传输到服务器以进行验证,并且确定计数器610是否等于(作为验证的一部分)服务器的计数器。
84.一个或多个计数器610可以被配置为防止重放攻击。例如,如果密码已被获得并重放,则如果计数器610已经被读取或使用或以其他方式传递,则该密码立即被拒绝。如果计数器610尚未被使用,则其可以被重放。在一些示例中,卡上递增的计数器与对于交易递增的计数器不同。由于非接触式卡500上的小程序608之间没有通信,因此非接触式卡101不能确定应用交易计数器610。
85.在一些示例中,计数器610可能不同步。在一些示例中,为了考虑启动交易的意外读取(诸如以某个角度读取),计数器610可以递增,但应用不处理计数器610。在一些示例中,当移动设备10被唤醒时,nfc可以被启用,并且设备110可以被配置为读取可用标签,但是不采取响应于读取的动作。
86.为了保持计数器610同步,可以执行应用(诸如后台应用),该应用将被配置为检测移动设备110何时唤醒并与银行系统的服务器同步,指示由于检测而发生的读取,然后向前移动计数器值。在其他示例中,可以利用散列的一次性密码,使得可以接受错误同步的窗口。例如,如果在阈值10内,则计数器610可以被配置为向前移动。但是,如果在不同的阈值数内,例如在10或900内,则可以处理用于执行重新同步的请求,该请求经由一个或多个应用请求:用户经由用户的设备轻敲、手势或以其他方式指示一次或多次。如果计数器610以适当的顺序增加,则可以知道用户已经这样做了。
87.本文中参考计数器610、主密钥和多样化密钥描述的密钥多样化技术是加密和/或解密密钥多样化技术的一个示例。该示例密钥多样化技术不应被认为是对本公开的限制,因为本公开同样适用于其他类型的密钥多样化技术。
88.在非接触式卡500的创建过程期间,每个卡可以唯一地分配两个密码密钥。密码密钥可以包括对称密钥,对称密钥可以被用于数据的加密和解密。三重des(3des)算法可以由emv使用,并且其由非接触式卡500中的硬件实施。通过使用密钥多样化过程,一个或多个密钥可以基于需要密钥的每个实体的唯一可识别信息从主密钥导出。
89.在一些示例中,为了克服3des算法的缺陷(其可能容易受到漏洞的影响),可以导出会话密钥(诸如每个会话的唯一密钥),但不是使用主密钥,唯一卡导出的密钥和计数器可以被用作多样化数据。例如,每次在操作中使用非接触式卡101时,可以使用不同的密钥来创建消息认证码(message authentication code,mac)和执行加密。这会产生三层密码。会话密钥可以由一个或多个小程序生成,并通过使用应用交易计数器与一个或多个算法(如emv 4.3book 2al.3.1通用会话密钥导出中所定义)来导出。
90.此外,每张卡的增量可以是唯一的,并且或者通过个性化来分配,或者通过一些标识信息来算法分配。例如,奇数编号的卡可以递增2,以及偶数编号的卡可以递增5。在一些示例中,增量也可以在顺序读取中变化,使得一张卡可以按顺序递增1、3、5、2、2、
…
重复。特定顺序或算法顺序可以在个性化时定义,或者从源自唯一标识符的一个或多个过程定义。这会使重放攻击者更难从少量卡实例中进行概括。
91.认证消息可以作为十六进制ascii格式的文本ndef记录的内容被递送。在另一示例中,ndef记录可以以十六进制格式被编码。
92.图7是示出根据本公开的一个或多个实施例的用于提供经认证的访问的示例顺序的顺序流700。顺序流700可以包括非接触式卡500和计算设备702,计算设备702可以包括应用704和处理器706。
93.在线710处,应用704与非接触式卡500通信(例如,在被带到非接触式卡500附近之后)。应用704和非接触式卡500之间的通信可以涉及非接触式卡500足够靠近计算设备702的读卡器(未示出),以使能应用704与非接触式卡片500之间的nfc数据传递。
94.在线708处,在计算设备702和非接触式卡500之间建立通信之后,非接触式卡500)生成消息认证码(mac)密码。在一些示例中,这可能在非接触式卡500被应用704读取时发生。特别地,这可能发生在近场数据交换(near field data exchange,ndef)标签的读取(诸如nfc读取)时,该标签可以根据nfc数据交换格式被创建。例如,读取器应用(诸如应用704)可以传输具有ndef产生小程序的小程序id的消息(诸如小程序选择消息)。在确认选择后,可以传输选择文件消息的顺序,随后是读取文件消息。例如,顺序可能包括“选择能力文件”、“读取能力文件”和“选择ndef文件”。在这一点上,由非接触式卡500维护的计数器值可以被更新或递增,其后面可以是“读取ndef文件”。在这一点上,可以生成消息,该消息可以包括报头和共享秘密。然后可以生成会话密钥。mac密码可以从消息被创建,该消息可以包括报头和共享秘密。然后,mac密码可以与一个或多个随机数据块串联,并且mac密码和随机数(random number,rnd)可以用会话密钥被加密。此后,密码和报头可以被串联,并且被编码为ascii十六进制,并以ndef消息格式返回(响应于“读取ndef文件”消息)。
95.在一些示例中,mac密码可以作为ndef标签被传输,并且在其他示例中,该mac密码
可以被包括有统一资源指示符(例如,作为格式化的字符串)。在一些示例中,应用704可以被配置为向非接触式卡500传输请求,该请求包括生成mac密码的指令。
96.在线712处,500向应用704发送mac密码。在一些示例中,mac密码的传输经由nfc发生,然而,本公开不限于此。在其他示例中,这种通信可以经由蓝牙、wi-fi或无线数据通信的其他手段发生。在线714处,应用704将mac密码通信到处理器706。
97.在线716处,处理器706根据来自应用122的指令验证mac密码。例如,可以验证mac密码,如下面所解释的。在一些示例中,验证mac密码可以由除计算设备702以外的设备执行,诸如与计算设备702进行数据通信的银行系统的服务器。例如,处理器706可以输出mac密码以传输到银行系统的服务器,该服务器可以验证mac密码。在一些示例中,mac密码可以用作用于验证目的的数字签名。其他数字签名算法,诸如公钥非对称算法,例如数字签名算法和rsa算法,或者零知识协议,可以被用于执行该验证。
98.图8示出了根据示例实施例的ndef短记录布局(sr=1)数据结构800。一个或多个小程序可以被配置为将otp编码为ndef类型4公知类型文本标签。在一些示例中,ndef消息可以包括一个或多个记录。小程序可以被配置为除了otp记录之外还添加一个或多个静态标签记录。示例性标签包括但不限于标签类型:公知类型、文本、编码英语(en);小程序id:d2760000850101;能力:只读访问;编码:认证消息可以被编码为ascii十六进制;类型-长度-值(type-length-value,tfv)数据可以被提供作为个性化参数,其可以被用于生成ndef消息。在实施例中,认证模板可以包括第一记录,具有公知索引,用于提供实际动态认证数据。
99.图9示出了被配置为实施本公开的一个或多个实施例的系统密钥系统900的图。如下面所解释的,在非接触式卡创建过程期间,可以为每个卡唯一地分配两个密码密钥。密码密钥可以包括对称密钥,对称密钥可以被用于数据的加密和解密。三重des(3des)算法可以由emv使用,并且它由非接触式卡中的硬件来实施。通过使用密钥多样化过程,一个或多个密钥可以基于每个需要密钥的实体的唯一可识别信息从主密钥导出。
100.关于主密钥管理,对于发行一个或多个小程序的投资组合的每个部分,可能需要两个发行方主密钥902、926。例如,第一主密钥902可以包括发行方密码生成/认证密钥(iss-key-auth),以及第二主密钥926可以包括发行方数据加密密钥(iss-key-dek)。如本文进一步解释的,两个发行方主密钥902、926被多样化为卡主密钥908、920,其对于每个卡是唯一的。在一些示例中,网络简档记录id(pnpr)522和导出密钥索引(pdki)924(作为后台数据)可以被用于标识哪个发行方主密钥902、926在用于认证的密码过程中使用。执行认证的系统可以被配置为在认证时检索非接触式卡的pnpr 922和pdki 924的值。
101.在一些示例中,为了提高j9九游会真人的解决方案的安全性,会话密钥可以被导出(诸如每个会话的唯一密钥),但不是使用主密钥,唯一卡导出的密钥和计数器可以被用作多样化数据,如上面所解释的。例如,每次在操作中使用卡时,可以使用不同的密钥来创建消息验证码(mac)和执行加密。关于会话密钥生成,用于生成密码并密码化一个或多个小程序中的数据的密钥可以包括基于卡唯一密钥的会话密钥(card-key-auth 908和card-key-dek 920)。会话密钥(aut-session-key 932和dek-session-key 910)可以由一个或多个小程序生成,并且通过使用应用交易计数器(patc)904与一个或多个算法来导出。为了将数据拟合到一个或多个算法中,仅使用4字节patc 904的2个低阶字节。在一些示例中,四字节会话密钥导
出方法可以包括:f1:=patc(较低2字节)∥’f0’∥’00’∥patc(四字节)f1:=patc(较低2字节)∥’of’∥’00’∥patc(四字节)sk:={(alg(mk)[f1])∥alg(mk)[f2]};其中alg可以包括3des ecb,并且mk可以包括卡唯一导出主密钥。
[0102]
如本文所述,一个或多个mac会话密钥可以使用patc 904计数器的较低两个字节被导出。在非接触式卡的每次轻敲时,patc 904被配置为被更新,并且卡主密钥card-key-auth和card-key-dek 920被进一步多样化为会话密钥aut-session-key 932和dek-session-key 910。patc 904可以在个性化或小程序初始化时间被初始化为零。在一些示例中,patc计数器904可以在个性化时或个性化之前被初始化,并且可以被配置为在每次ndef读取时递增一。
[0103]
此外,每张卡的更新可以是唯一的,并且或者通过个性化来分配,或者通过puid或其他标识信息来算法分配。例如,奇数编号的卡可以递增或递减2,以及偶数编号的卡可以递增或递减5。在一些示例中,更新也可以在顺序读取中变化,使得一张卡可以按顺序递增1、3、5、2、2、
…
重复。特定顺序或算法顺序可以在个性化时定义,或者从源自唯一标识符的一个或多个过程定义。这会使重放攻击者更难从少量卡实例中进行概括。
[0104]
认证消息可以作为十六进制ascii格式的文本ndef记录的内容被递送。在一些示例中,可以仅包括认证数据和8字节随机数(后跟认证数据的mac)。在一些示例中,随机数可以在密码a之前,并且可以是一个块长。在其他示例中,可以对随机数的长度没有限制。在进一步的示例中,总数据(即,随机数加上密码)可以是块大小的倍数。在这些示例中,可以添加附加的8字节块以匹配mac算法产生的块。作为另一示例,如果所采用的算法使用16字节块,则该块大小的偶数倍数可以被使用,或者输出可以自动地或手动地被填充到该块大小的倍数。
[0105]
mac可以通过功能密钥(aut-session-key)932来执行。密码中指定的数据可以用javacard签名方法被处理:alg_des_mac8_is09797_1_m2_alg3与emv arqc验证方法相关。用于该计算的密钥可以包括会话密钥aut-session-key 932,如上面所解释的。如上面所解释的,计数器的低阶两个字节可以用于使一个或多个mac会话密钥多样化。如下所述,aut会话密钥932可以被用于mac数据906,并且得到的数据或密码a 914和随机数rnd可以使用dek-session-key 910被加密,以创建在消息中发送的密码b或输出918。
[0106]
在一些示例中,一个或多个hsm命令可以被处理用于解密,使得最后的16个(二进制,32个十六进制)字节可以包括使用cbc模式的3des对称加密,其中随机数的零iv后跟mac认证数据。用于该加密的密钥可以包括从card-key-dek 920导出的会话密钥dek-session-key 910。在这种情况下,会话密钥导出的atc值是计数器patc 904的最低有效字节。
[0107]
下面的格式表示二进制版本的示例实施例。此外,在一些示例中,第一字节可以被设置为ascii
‘
a’。
[0108][0109]
[0110][0111]
下面显示了另一种示例性格式。在该示例中,标签可以以十六进制格式被编码。
[0112][0113]
[0114][0115]
接收到的消息的uid字段可以被提取,以从主密钥iss-key-aut 902和iss-key-dek 926导出该特定卡的卡主密钥(card-key-auth 908和card-key-dek 920)。使用卡主密钥(card-key-auth 908和card-key-dek 920),接收到的消息的计数器(patc)字段可以被用于导出该特定卡的会话密钥(aut-session-key 932和dek-session-key 910)。密码b 918可以使用dek-session-key被解密,该密钥产生密码a 914和rnd,并且rnd可以被丢弃。uid字段可以被用于查找非接触式卡的共享秘密,该共享秘密与消息的ver、uid和patc字段一起,可以使用重新创建的aut-session-key通过密码mac被处理,以创建mac输出,诸如mac’。如果mac’与密码a 914相同,则这指示消息解密和mac检查都已通过。然后patc可以被读取以确定其是否有效。
[0116]
在认证会话期间,一个或多个密码可以一个或多个应用生成。例如,一个或多个密码可以使用iso 9797-1算法3用方法2填充经由一个或多个会话密钥(诸如aut-session-key 932)被生成为3des mac。输入数据906可以采用以下形式:版本(2)、puid(8)、patc(4)、共享秘密(4)。在一些示例中,括号中的数字可以包括以字节为单位的长度。在一些示例中,共享秘密可以由一个或多个随机数生成器生成,该随机数生成器可以被配置为通过一个或多个安全过程来确保随机数是不可预测的。在一些示例中,共享秘密可以包括在认证服务已知的个性化时间注入卡中的随机4字节二进制数。在认证会话期间,可以不将共享秘密从一个或多个小程序提供给移动应用。方法2填充可以包括将强制0x’80’字节添加到输入数据的末尾,并且0x’00’字节可以被添加到结果数据的末尾,直到8字节边界。所得到的密码可以包括8个字节的长度。
[0117]
在一些示例中,用mac密码加密非共享随机数作为第一块的一个好处是,它在使用对称加密算法的cbc(块链)模式时充当初始化向量。这允许从块到块的“加扰”,而不必预先建立固定或动态iv。
[0118]
通过包括应用交易计数器(patc)作为包括在mac密码中数据的一部分,认证服务可以被配置为确定清除数据中传达的值是否被篡改。此外,通过将版本包括在一个或多个密码中,攻击者很难有目的地歪曲应用版本,尝试降级密码解的强度。在一些示例中,patc可以在零处开始,并且在每次一个或多个应用生成认证数据时被更新1。认证服务可以被配置为跟踪在认证会话期间使用的patc。在一些示例中,当认证数据使用等于或低于认证服务接收到的先前值的patc时,这可以被解释为尝试重放旧消息,并且经认证的消息可以被拒绝。在一些示例中,在patc大于先前接收到的值的情况下,这可以被评估以确定其是否在可接受的范围或阈值内,并且如果其超过或在范围或阈值之外,则验证可以被视为失败或
不可靠。在mac操作912中,数据906通过mac使用aut-session-key 932被处理,以产生mac输出(密码a)914,其被加密。
[0119]
为了提供附加的保护,防止暴露卡上密钥的暴力攻击,期望mac密码914被密码化。在一些示例中,要被包括在密文中的数据或密码a914可以包括:随机数(8)、密码(8)。在一些示例中,括号中的数字可以包括以字节为单位的长度。在一些示例中,随机数可以由一个或多个随机数生成器生成,该随机数生成器可以被配置为通过一个或多个安全过程来确保随机数是不可预测的。用于密码化该数据的密钥可以包括会话密钥。例如,会话密钥可以包括dek-session-key 910。在加密操作916中,数据或密码a914和rnd使用dek-session-key 510(删除)被处理,以产生加密数据,密码b 918。数据914可以在密码块链接模式下使用3des被密码化,以确保攻击者必须对所有密文进行任何攻击。作为非限制性示例,其他算法(诸如高级加密标准(advanced encryption standard,aes))可以被使用。在一些示例中,0x’0000000000000000’的初始化向量可以被使用。试图暴力破解用于密码化该数据的密钥的任何攻击者都将无法确定何时正确的密钥被使用,因为正确解密的数据将由于其随机出现而与不正确解密的数据无法区分。
[0120]
为了使认证服务验证由一个或多个小程序提供的一个或多个密码,以下数据必须在认证会话期间从一个或多个小程序以明文被传达到移动设备:版本号,以确定所使用的密码方法和用于验证密码的消息格式,这使该方法能够在未来发生变化;puid,以检索密码资产并导出卡密钥;以及patc,以导出用于密码的会话密钥。
[0121]
图10示出了用于生成密码的方法例程1000。例如,在框1002处,网络简档记录id(pnpr)和导出密钥索引(pdki)可以被用于标识哪个发行方主密钥在用于认证的密码过程中使用。在一些示例中,该方法可以包括执行认证以在认证时检索非接触式卡的pnpr和pdki的值。
[0122]
在框1004处,发行方主密钥可以通过将它们与卡的唯一id号(puid)和一个或多个小程序(例如支付小程序)的pan序列号(psn)组合被多样化。
[0123]
在框1006处,card-key-auth和card-key-dek(唯一卡密钥)可以通过使发行方主密钥多样化来创建,以生成会话密钥,该会话密钥可以被用于生成mac密码。
[0124]
在框1008处,用于生成密码并密码化一个或多个小程序中的数据的密钥可以包括基于卡唯一密钥(card-key-auth和card-key-dek)的框930的会话密钥。在一些示例中,这些会话密钥可以由一个或多个小程序生成,并通过使用patc导出,从而产生会话密钥aut-session-key和dek-session-key。
[0125]
图11描绘了根据一个示例的示例性过程例程1100,其示出了密钥多样化。最初,发送方和接收方可以被提供有两个不同的主密钥。例如,第一主密钥可以包括数据加密主密钥,以及第二主密钥可以包含数据完整性主密钥。发送方具有计数器值(其可以在框1102处被更新)和其他数据(诸如要保护的数据),其可以安全地与接收方共享。
[0126]
在框1104处,计数器值可以由发送方使用数据加密主密钥加密,以产生数据加密导出的会话密钥,并且计数器值也可以由发送方使用数据完整性主密钥加密,以产生数据完整性导出的会话密钥。在一些示例中,整个计数器值或计数器值的一部分可以在两次加密期间被使用。
[0127]
在一些示例中,计数器值可能未被加密。在这些示例中,计数器可以在发送方和接
收方之间以明文被传输,即不加密。
[0128]
在框1106处,要保护的数据由发送方使用数据完整性会话密钥和密码mac算法通过密码mac操作被处理。受保护的数据(包括明文和共享秘密)可以被用于使用会话密钥之一(aut-session-key)来产生mac。
[0129]
在框1108处,要保护的数据可以由发送方结合对称加密算法使用数据加密导出的会话密钥来加密。在一些示例中,mac与等量的随机数据组合,例如每个8字节长,以及然后使用第二会话密钥(dek-session-key)加密。
[0130]
在框1110处,加密的mac被从发送方传输到接收方,具有足够的信息来识别附加的秘密信息(诸如共享秘密、主密钥等),用于验证密码。
[0131]
在框1112处,接收方使用接收到的计数器值来从两个主密钥独立地导出两个导出的会话密钥,如上面所解释的。
[0132]
在框1114处,数据加密导出的会话密钥结合对称解密操作被使用来解密受保护的数据。然后将发生对交换的数据的附加处理。在一些示例中,在mac被提取之后,期望再现并匹配mac。例如,当验证密码时,其可以使用适当生成的会话密钥被解密。受保护的数据可以被重建以进行验证。mac操作可以使用适当生成的会话密钥被执行,以确定其是否与解密的mac匹配。由于mac操作是不可逆的过程,因此验证的唯一方法是尝试从源数据中重新创建它。
[0133]
在框1116处,数据完整性导出的会话密钥结合密码mac操作被使用,以验证受保护的数据未被修改。
[0134]
本文描述的方法的一些示例可以有利地确认在满足以下条件时,确定成功的认证。首先,验证mac的能力示出导出的会话密钥是正确的。只有当解密成功并产生正确的mac值时,mac才可能是正确的。成功的解密可以示出正确导出的加密密钥被用于解密加密的mac。由于导出的会话密钥使用仅发送方(例如,传输设备)和接收方(例如,接收设备)已知的主密钥被创建,因此可以相信最初创建mac并加密mac的非接触式卡确实是真实的。此外,用于导出第一会话密钥和第二会话密钥的计数器值可以被示出为有效的,并且可以被用于执行认证操作。
[0135]
此后,两个导出的会话密钥可以被丢弃,并且数据交换的下一次迭代将更新计数器值(返回到框1102处),并且新的一组会话密钥可以被创建(在框1110处)。在一些示例中,组合的随机数据可以被丢弃。
[0136]
图12示出了根据示例实施例的用于卡激活的顺序流700。例如,卡激活可以由包括卡、设备和一个或多个服务器的系统来完成。非接触式卡、设备和一个或多个服务器可以参考是先前解释的诸如非接触式卡500、计算设备702和服务器的相同或相似的组件。
[0137]
在框1202中,卡可以被配置为动态生成数据。在一些示例中,该数据可以包括诸如账号、卡标识符、卡验证值或电话号码的信息,这些信息可以从卡被传输到设备。在一些示例中,数据的一个或多个部分可以经由本文公开的系统和方法被加密。
[0138]
在框1204中,动态生成的数据的一个或多个部分可以经由nfc或其他无线通信被通信到设备的应用。例如,卡靠近设备的轻敲可以允许设备的应用读取与非接触式卡相关联的数据的一个或多个部分。在一些示例中,如果设备不包括帮助激活卡的应用,则卡的轻敲可以引导设备或提示客户到软件应用商店下载相关联的应用以激活卡。在一些示例中,
用户可以被提示朝向设备的表面充分地手势、放置或定向卡,诸如以一定角度或平坦地放置在设备的表面上、附近或邻近。响应于卡的充分的手势、放置和/或定向,设备可以继续将从卡接收到的数据的一个或多个加密部分传输到一个或多个服务器。
[0139]
在框1206中,数据的一个或多个部分可以被通信到一个或多个服务器,诸如发行方服务器。例如,数据的一个或多个加密部分可以从设备被传输到卡发行方服务器,用于激活卡。
[0140]
在框1208中,一个或多个服务器可以经由本文公开的系统和方法解密数据的一个或多个加密部分。例如,一个或多个服务器可以从设备接收加密的数据,并且可以解密它,以便将接收到的数据与一个或多个服务器可访问的记录数据进行比较。如果由一个或多个服务器对数据的一个或多个解密部分的结果比较产生了成功的匹配,则卡可以被激活。如果由一个或多个服务器对数据的一个或多个解密部分的结果比较产生不成功的匹配,则可能发生一个或多个过程。例如,响应于不成功匹配的确定,用户可以被提示再次轻敲、滑动或挥动示意卡。在这种情况下,可能存在预先确定的阈值,包括用户被允许激活卡的尝试次数。可替代地,用户可以接收通知,诸如他或她的设备上指示卡验证的不成功的尝试的消息,并且向相关联的服务呼叫、发电子邮件或发短信以获得帮助来激活卡,或者另一通知,诸如在他或她的设备上指示卡验证的不成功的尝试的电话呼叫,并且向相关联的服务呼叫、发电子邮件或发短信以获得帮助来激活卡,或者另一通知,诸如指示卡验证的不成功的尝试的电子邮件,并且向相关联的服务呼叫、发电子邮件或发短信以获得帮助来激活卡。
[0141]
在框1210中,一个或多个服务器可以基于卡的成功激活来传输返回消息。例如,该设备可以被配置为从一个或多个服务器接收输出,该输出指示由一个或多个服务器成功激活卡。设备可以被配置为显示指示卡的成功激活的消息。一旦卡已被激活,卡可以被配置为停止动态生成数据,以避免欺诈性使用。以这种方式,此后卡可以不被激活,并且一个或多个服务器被通知卡已经被激活。
[0142]
图13示出了适用于实施如先前所述的各种实施例的示例性计算机架构1300的实施例。在一个实施例中,计算机架构1300可以包括或被实施为本文所讨论的系统的一部分。
[0143]
如本技术中所使用的,术语“系统”和“组件”旨在指代计算机相关实体,硬件、硬件和软件的组合、软件或执行中的软件,其示例由示例性计算计算机架构1300提供。例如,组件可以是但不限于在处理器上运行的过程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的)、对象、可执行文件、执行线程、程序和/或计算机。举例来说,运行在服务器上的应用和服务器都可以是组件。一个或多个组件可以驻留在执行的过程和/或线程内,并且组件可以本地化在一台计算机上和/或分布在两台或多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信耦合,以协调操作。协调可以涉及单向或双向的信息交换。例如,组件可以以通过通信介质通信的信号的形式来通信信息。该信息可以被实施为分配给各种信号线的信号。在这种分配中,每条消息都是信号。然而,进一步的实施例可以替代地采用数据消息。这种数据消息可以通过各种连接被发送。示例性连接包括并行接口、串行接口和总线接口。
[0144]
计算架构1300包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)组件、电源等等。然而,实施例不限于由计算架构1300来实施。
red,ir)遥控器、射频(radio-frequency,rf)遥控器,游戏垫、手写笔、读卡器、加密狗、指纹读取器、手套、图形板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、轨迹垫、传感器、触控笔等。这些和其他输入设备通常通过耦合到系统总线1306的输入设备接口1336连接到处理器1312,但是可以通过其他接口(诸如并行端口、ieee 1394串行端口、游戏端口、usb端口、ir接口等等)连接。
[0152]
监测器1344或其他类型的显示设备也经由接口(诸如视频适配器1346)被连接到系统总线1306。监测器1344可以在计算机1302的内部或外部。除了监测器1344之外,计算机通常还包括其他外围输出设备,诸如扬声器、打印机等。
[0153]
计算机1302可以使用经由有线和/或无线通信、到一个或多个远程计算机(诸如远程计算机1348)的逻辑连接在联网环境中操作。远程计算机1348可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机1302描述的许多或所有元件,尽管为了简洁的目的,仅示出了存储器和/或存储设备1358。所描绘的逻辑连接包括到局域网1356和/或更大的网络(例如,广域网1354)的有线/无线连接。这种lan和wan网络环境在办公室和公司中是常见的,并且有利于企业范围的计算机网络,诸如内部网,所有这些网络都可以连接到全球通信网络,例如互联网。
[0154]
当在局域网1356联网环境中使用时,计算机1302通过有线和/或无线通信网络接口或网络适配器1338被连接到局域网1356。网络适配器1338可以促进到局域网1356的有线和/或无线通信,其还可以包括设置在其上的无线接入点,用于与网络适配器1338的无线功能通信。
[0155]
当在广域网1354联网环境中使用时,计算机1302可以包括调制解调器1340,或者被连接到广域网1354上的通信服务器,或者具有用于在广域网1354上建立通信的其他装置,诸如通过互联网的方式。调制解调器1340(其可以是内部或外部的以及有线和/或无线设备)经由输入设备接口1336连接到系统总线1306。在联网环境中,相对于计算机1302描绘的程序模块或其部分可以被存储在远程存储器和/或存储设备1358中。将理解,所示的网络连接是示例性的,并且在计算机之间建立通信链路的其他手段可以被使用。
[0156]
计算机1302可操作以使用ieee 802标准族与有线和无线设备或实体通信,诸如可操作地设置在无线通信中的无线设备(例如,ieee 802.11空中调制技术)。这至少包括wi-fi(或无线保真)、wimax和bluetooth
tm
无线技术等。因此,通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个设备之间的ad hoc通信。wi-fi网络使用称为ieee 802.11(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。wi-fi网络可以被用于将计算机相互连接、连接到互联网以及连接到有线网络(其使用ieee 802.3相关媒体和功能)。
[0157]
如先前参考本文讨论的实施例描述的设备的各种元件可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑器件、组件、处理器、微处理器、电路、处理器、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(application specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用
程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application programinterface,api)、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号或其任何组合。然而,确定实施例是否使用硬件元件和/或软件元件被实施可以根据任意数量的因素而变化,诸如期望的计算速率、功率水平、热容限、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束,如给定实施方式所期望的。
[0158]
图14是描绘适用于实施如先前所描述的各种实施例的示例性通信架构1400的框图。通信架构1400包括各种常见的通信元件,诸如发射器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等等。然而,实施例不限于由通信架构1400实施,其可以与本文所讨论的系统一致。
[0159]
如图14所示,通信架构1400包括一个或多个客户端1402和服务器1404。服务器1404可以实施一个或多个设备。客户端1402和服务器1404可操作地连接到一个或多个相应的客户端数据存储1406和服务器数据存储1408,它们可以被用于存储相应的客户端1402或服务器1404本地的信息,诸如网络饼干和/或相关联的上下文信息。
[0160]
客户端1402和服务器1404可以使用通信框架1410在彼此之间通信信息。通信框架1410可以实施任何公知的通信技术和协议。通信框架1410可以被实施为分组交换网络(例如,诸如互联网的公共网络、诸如企业内联网的专用网络等)、电路交换网络(例如,公共交换电话网络)、或者分组交换网络和电路交换网络的组合(具有合适的网关和转换器)。
[0161]
通信框架1410可以实施各种网络接口,这些接口被布置为接受、通信和连接到通信网络。网络接口可以被视为输入/输出(i/o)接口的专门形式。网络接口可以采用连接协议,包括但不限于直接连接、以太网(例如,厚、薄、双绞线10/100/1000baset等)、令牌环、无线网络接口、蜂窝网络接口、ieee 802.11a-x网络接口、ieee802.16网络接口、ieee 802.20网络接口等。此外,可以使用多个网络接口来与各种通信网络类型接合。例如,可以采用多个网络接口来允许通过广播、多播和单播网络进行通信。如果处理要求规定更大量的速度和容量,则分布式网络控制器架构可以被类似地采用来汇集、负载平衡,并以其他方式增加客户端1402和服务器1404所需的通信带宽。通信网络可以是有线和/或无线网络(包括但不限于直接互连、安全定制连接、专用网络(例如企业内联网)、公共网络(例如互联网)、个人局域网(personal area network,pan)、局域网(local area network,lan)、城域网(metropolitan area network,man)、作为互联网节点的操作任务(operating missions as nodes on the internet,omni)、广域网(wide area network,wan)、无线网络、蜂窝网络和其他通信网络)的任何一种和组合。
[0162]
上面描述的设备的组件和特征可以使用分立电路、专用集成电路(asic)、逻辑门和/或单芯片架构的任何组合被实施。此外,设备的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或在适当的情况下,前述的任何组合被实施。注意的是,硬件、固件和/或软件元件在本文中可以被统称或单独称为“逻辑”或“电路”。