灵活的数据认证的制作方法
【技术领域】
[0001]这里公开的各示例性实施例总体上涉及数据认证,更具体地而非排他地,涉及认证从近场通信(NFC)标签检索的数据。
【背景技术】
[0002]近场通信(NFC)标签已经在多种产品和其它上下文中使用以提供提高等级的交互。例如,在所谓的“智能海报”中嵌入的NFC标签可以使观众能够使用他们的电话或其他NFC支持设备来接收与海报相关联的网址、优惠券、交互内容或其他数据。然而,随着该技术更广泛地采用,增大了非法使用的机会。恶意方会替换或重写已有的NFC标签以承载旨在欺诈或攻击读取标签方的指令或其他数据。例如,可以重写智能海报标签以指向被建立为欺诈性地从用户提取信用卡信息的不同网址。
[0003]为了提供NFC通信的安全性,NFC论坛已经提出了一种技术规范,定义用于数字签名NFC标签承载的数据的过程。这种数字签名可以提供认证的附加层,因此当不能认证从NFC标签读取的数据时,读取设备可以避免以对非法使用的设备或用户开放的方式来使用数据。
【发明内容】
[0004]尽管定义的数据签名技术足以认证某些类型的静态数据,这些技术可能不能认证动态数据或其它类型的静态数据。例如,在NFC标签保持的数据在标签的寿命期间改变的情况下(例如跟踪标签被读取次数的计数器),在更新了承载的数据后,定义的签名不再有效。作为另一个示例,在制造期间使用序列标识号来各自编码NFC标签的情况下,可能难以考虑到特有的标识号来针对每个新标签计算特有的签名。因此,这里描述的各种实施例使得能够进行NFC数据认证,其中在初始签名生成时无需所有数据均已知或均可用。
[0005]以下示出了各示例性实施例的简要总结。在以下总结中做出了一些简化和省略,其旨在突出并介绍各示例性实施例的一些方面,而不限于本发明的范围。将在后续的以下部分中进行优选示例性实施例的详细描述,足以允许本领域技术人员做出并使用本发明的创造性概念。
[0006]这里描述的各实施例涉及一种近场通信(NFC)设备执行的用于验证从NFC标签接收的记录的方法,包括:由NFC设备从NFC标签接收NFC数据交换格式(NDEF)消息,其中NFC消息包括数字签名和数字签名的参考的至少一个以及有效载荷;从有效载荷剥离(strip)数据以生成剥离后的有效载荷;使用数字签名和剥离后的有效载荷来验证有效载荷;以及基于是否验证通过有效载荷来有条件地解译有效载荷和剥离后的有效载荷中的至少一个。
[0007]这里描述的各实施例涉及一种配置为验证从NFC标签接收的记录的近场通信(NFC)设备,所述NFC设备包括:NFC读取器,配置为与NFC标签进行通信;以及处理器,配置为:NFC读取器接收NFC数据交换格式(NDEF)消息,其中NFC消息包括数字签名和数字签名的参考的至少一个以及有效载荷;从有效载荷剥离数据以生成剥离后的有效载荷;使用数字签名和剥离后的有效载荷来验证有效载荷;以及基于是否验证通过有效载荷来有条件地解译剥离后的有效载荷和有效载荷中的至少一个。
[0008]这里描述的各实施例涉及一种非瞬时性机器可读介质,编码有用于近场通信(NFC)设备执行的指令,用于验证从NFC标签接收的记录,所述非瞬时性机器可读介质包括:用于NFC设备从NFC标签接收NFC数据交换格式(NDEF)消息的指令,其中NFC消息包括数字签名和数字签名的参考的至少一个以及有效载荷;用于从有效载荷剥离数据以生成剥离后的有效载荷的指令;用于使用数字签名和剥离后的有效载荷来验证有效载荷的指令;以及用于基于是否验证通过有效载荷来有条件地解译剥离后的有效载荷和有效载荷中的至少一个的指令。
[0009]描述了各实施例,其中有效载荷包括统一资源标识符(URl),统一资源标识符(URl)包括由井号字符(#)表示的片段(fragment);以及从有效载荷剥离数据包括从URl剥离片段。
[0010]描述了各实施例,其中片段包括片段数据,以及解译有效载荷包括:发送对由URl识别的资源加以请求的请求消息,其中请求省略片段数据;响应于请求接收脚本;执行脚本,以向除NFC设备之外的至少一个设备发送片段数据。
[0011]描述了各实施例,其中有效载荷包括统一资源标识符(URl),统一资源标识符(URl)包括由问号字符(?)表示的查询字符串,以及从有效载荷剥离数据包括从URl剥离查询字符串。
[0012]描述了各实施例,其中数据由有效载荷内的比特序列来表示,以及从有效载荷剥离数据包括将比特序列设为O值。
[0013]描述了各实施例,其中NDEF消息还包括指示要执行预处理的预处理标识符,以及响应于存在指示要执行预处理的预处理标识符来执行从有效载荷剥离数据的步骤。
[0014]描述了各实施例,其中预处理标识符识别第一预处理类型和第二预处理类型的至少一个,并且从有效载荷剥离数据的步骤包括:基于识别第一预处理类型的预处理标识符,根据第一预处理类型来执行预处理;以及基于识别第二预处理类型的预处理标识符,根据第二预处理类型来执行预处理。
[0015]描述了各实施例,其中验证有效载荷包括:基于NDEF消息承载的签名的数据来计算计算的散列值,其中签名的数据包括剥离的有效载荷;基于数字签名来生成期望的散列值;以及确定计算的散列值是否与期望的散列值相匹配。
【附图说明】
[0016]为了更好地理解各示例性实施例,参考所附的附图,其中:
[0017]图1示出了近场通信(NFC)数据认证的示例性环境;
[0018]图2示出了支持灵活数据认证的示例性NFC数据交换格式(NDEF)消息;
[0019]图3示出了支持灵活数据认证的备选NDEF消息;
[0020]图4示出了能够执行灵活的数据认证的示例性NFC设备;
[0021]图5示出了能够执行灵活的数据认证的NFC设备的示例性硬件图;
[0022]图6示出了用于执行灵活的数据认证的示例性方法;
[0023]图7示出了执行数据预处理的示例性方法;以及
[0024]图8示出了用于执行灵活的数据认证以及向服务器提交动态数据的示例性消息交换。
[0025]为了便于理解,相同附图标记用于指示本质上相同或类似的结构或实质上相同或类似功能的元件。
【具体实施方式】
[0026]这里示出的说明书和附图演示各种原理。应理解:尽管这里没有明确地描述或示出,本领域技术人员能够设计体现这些原理并且被包括在本公开的范围中的各种布置。如这里所使用的,术语“或”如这里所使用的,除非另外指出(例如,“或其他”或“或备选地”)指非专用性的或(即,和/或)。此外,这里描述的各种实施例不必互相专用并且可以组合以产生包括这里所描述的原则的其他实施例。
[0027]图1示出了近场通信(NFC)数据认证的示例性环境100。环境100包括存储要认证的数据的NFC标签110。NFC标签110可以被固定(affix)或嵌入到例如智能海报或消费产品的任何项目中。环境还包括作为用户设备130 —部分的NFC读取器120,用于从NFC标签110读取数据。因此,用户设备130可以称为“NFC设备”。用户设备130可以是能够通过网络140 (例如互联网或移动运营商网络)进行通信的任何设备。例如,用户设备130可以是移动电话、平板电脑、膝上型计算机或个人计算机。NFC标签110和NFC读取器120可以根据用于实现这种设备的任何已知硬件布置来实现。
[0028]环境还包括可以通过网络140可接入的网络服务器150。网络服务器150包括硬件和机器可执行指令,配置为通过网络140接收并处理用户设备130对网页和其它资源的请求。由此,网络服务器150可以是被配置为作为网络服务器操作的膝上型计算机、个人计算机、服务器计算机、刀片服务器、云设备或其他硬件设备。
[0029]显然,除所示出的示例性环境100以外的各种系统可以包括更少或附加的每个组件,同时实现这里所描述的针对灵活NFC数据认证的各种特征。例如,备选的环境可以包括针对不同用途存储多个不同的数据集的多个NFC标签(未示出),多个NFC设备由不同的用户操作,并且多个网络服务器主持不同的网址。
[0030]已经描述示例性环境100的各个组件,将提供示例性环境100的操作的高级示例。显然,以下示例是一个实施例,并且还可以在某些方面是抽象的。以下将参照图2-8更详细地描述与各个实施例有关的其他细节。
[0031]根据一个示例,NFC标签110固定于智能海报。NFC标签100存储数字签名和指向由网络服务器150主持的网址的统一资源标识符(URl)。URl包括每次读取NFC标签110时递增的计数器,由此,URl包括在NFC标签110的整个寿命期间变化的动态数据。然而,数字签名基于URl的原始版本在制造NFC标签110时产生,同时计数器被设为O值。因此,在URl已经被修改后,不能基于URl进行标准的数字签名验证。
[0032]继续示例,用户移动用户设备130 (以及NFC读取器120)靠近NFC标签110并且轻击用户设备130来发起NFC数据传输。结果,用户设备130接收包括签名和URl 二者的NFC数据交换格式(NDEF)消息。在访问URl之前,用户设备130基于数字签名来执行认证,以接收访问URl是安全的保证。为了开始认证,用户设备130修改URl将计数器值设置为Oo因此,用户设备130能够使用数字签名来验证URI的认证。已经认证