生成并且使用临时标识符和消息完整性代码的制作方法

文档序号:12289846阅读:331来源:国知局
生成并且使用临时标识符和消息完整性代码的制作方法与工艺

本申请基于2014年6月10日提交的美国临时申请第62/009,998号和2014年6月10日提交的美国临时申请第62/010,058号并且要求其优先权,所述申请以引用的方式并入本文。

技术领域

本公开大体上涉及生成并且使用临时标识符和消息完整性代码。具体地,本公开涉及在以多个信标装置、至少一个观察实体、和至少一个验证实体为特征的系统的场境中的临时标识符和消息完整性代码的生成和使用。



背景技术:

存在第一装置提供(例如,使用短距离无线通信技术广播)公开地识别该第一装置的信息的某些系统。第二装置可以接收该信息并且针对各种目的来使用对第一装置的身份和与第一装置的接近度的了解,包括通信、资产追踪、零售识别、安全、位置等。这种配置在不需要出于任何原因来隐匿第一装置的身份和存在的完全公开且开放的设置中可以是有用的。

然而,在许多情况下,可能不期望使第一装置的身份和存在完全透明和公开可用。相反,可能期望只有某些个体或者装置能够识别第一装置或者以其它方式接收与第一装置相关联的特定信息。

然而,这种配置可能容易遭受假冒或者其它欺骗攻击。例如,因为第一装置公开地广播其识别信息,所以欺诈装置可以录制并且重播所广播的身份信息,从而诱使第二装置相信该欺诈装置是第一装置。这种假冒的弱点可以极大地损害系统的功效。

进一步地,在一些系统中,第一装置可能无法或者以其他方式被禁止利用其它装置来执行更复杂的通信以证实其交互。

因此,可能期望使用认证广播装置的身份的模糊标识符和消息完整性代码。具体地,基于时间的临时标识符和消息完整性代码可能特别有利。



技术实现要素:

本公开的方面和优点将在下面的说明书中部分地陈述,或者可以通过说明书而变得明显,或者可以通过本公开的实施例的实践来学习。

本公开的一个示例方面涉及用于认证信标装置的计算机实现的方法。该方法包括通过一个或者多个计算装置从观察实体接收静态标识符和消息完整性代码。观察实体先前从信标装置接收到静态标识符和消息完整性代码。消息完整性代码是与信标装置相关联的静态标识符的随时间变化的模糊。所述操作包括:通过一个或者多个计算装置,通过将消息完整性代码与多个预期的消息完整性代码进行匹配来确定消息完整性代码的有效性。当确定消息完整性代码有效时,操作包括:通过一个或者多个计算装置向观察实体提供信标装置的认证。

本公开的另一示例方面涉及用于生成临时标识符的计算机实现的方法。该方法包括:通过一个或者多个计算装置来确定当前时间计数。该方法包括:通过一个或者多个计算装置至少部分地基于静态标识符和当前时间计数来确定随时间修改的标识符。该方法包括:通过一个或者多个计算装置至少部分地基于随时间修改的标识符和轮换密钥来确定临时标识符。

本公开的另一示例方面涉及用于使用临时标识符的系统。该系统包括多个信标装置。多个静态标识符相应地与多个信标装置相关联。多个信标装置中的每一个信标装置被配置为基于其相应的静态标识符和当前时间计数定期地确定临时标识符。该系统包括观察实体,该观察实体被配置为从多个信标装置中的第一信标装置接收第一临时标识符。该系统包括验证实体,该验证实体配置为:从观察实体接收第一临时标识符;以及通过将第一临时标识符定位在预先计算的临时标识符缓存中,来确定第一信标装置的身份。第一临时标识符是与第一信标装置相关联的静态标识符的随时间变化的模糊。使用仅对第一信标装置和验证实体已知的模糊函数生成了第一临时标识符,使得观察实体不能独立于与验证实体的通信来计算第一信标装置的身份。

本公开的这些和其它特征、方面、和优点将在参照下面的说明书和随附权利要求书时变得更容易理解。附图包括在本文中并且构成说明书的部分,附图图示了本公开的实施例并且连同说明书用于阐释本公开的原理。

附图说明

在本说明中面向本领域的普通技术人员对本公开进行了全面且可实现的描述,本说明书对附图进行了引用,在附图中:

图1描绘了根据本公开的示例实施例的示例系统;

图2A描绘了根据本公开的示例实施例的用于在信标装置上生成临时标识符的示例功能图;

图2B描绘了根据本公开的示例实施例的用于在信标装置上生成消息完整性代码的示例功能图;

图3A描绘了根据本公开的示例实施例的用于在观察实体上处理临时标识符的示例功能图;

图3B描绘了根据本公开的示例实施例的用于在观察实体上处理消息完整性代码的示例功能图;

图4A描绘了根据本公开的示例实施例的用于在验证实体上生成临时标识符的示例功能图;

图4B描绘了根据本公开的示例实施例的用于在验证实体上处理消息完整性代码的示例功能图;

图5描绘了根据本公开的示例实施例的用于在验证实体上处理临时标识符的示例功能图。

具体实施方式

概述

一般而言,本公开涉及用于生成并且使用临时标识符和消息完整性代码的系统和方法。一个示例系统可以包括多个信标装置,该多个信标装置(例如,使用短距离无线通信技术,诸如例如,蓝牙低能耗技术)定期地广播消息、信号、和/或包含临时标识符、静态标识符、和消息完整性代码中的一个或者多个的广告帧。具体地,每一个信标装置可以具有分配的静态标识符并且可以定期地实施基于时间的模糊算法以将其静态标识符转变成临时标识符或者特定于时间的消息完整性代码。该系统可以进一步包括能够从信标装置接收广播的观察实体。当观察实体从特定信标装置接收到消息、信号和/或广告帧时,观察实体可以将接收到的临时标识符、静态标识符、消息完整性代码、或者它们的组合传输至中央验证实体以便学习和/或认证特定信标装置的身份或者与特定信标装置相关联的其它信息。

更具体地,模糊算法可以利用仅对每一个信标装置和验证实体已知的一个或者多个共享秘密。模糊算法可以包括各种形式的加密、可逆模糊、不可逆模糊(例如,散列函数)、置换、或者用于模糊数据的其它方法或者技术。一般而言,就以下方面讲模糊算法应该是可重复的:当给出相同的输入时该算法应该提供相同的输出。因此,虽然可以公开地广播临时标识符,但是观察实体不能独立于与验证实体的通信来计算特定信标装置的身份。在一些实施例中,临时标识符可以被认为是标识符的伪随机序列。同样,消息完整性代码可以由中央验证实体用来认证在由信标装置发出的帧、消息、或者其它信号中的静态标识符的使用。

根据本公开的一个方面,每一个信标装置可以定期地实施基于时间的模糊算法以将其静态标识符转变成临时标识符和/或特定于时间的消息完整性代码。在一些实施例中,每一个信标装置可以通过确定当前时间计数来生成每一个临时标识符或者消息完整性代码;至少部分地基于静态标识符和当前时间计数来确定随时间修改的标识符;以及至少部分地基于随时间修改的标识符和轮换密钥来确定临时标识符或者消息完整性代码。

作为示例,可以通过从包括在信标装置中的基于时间的计数器获取当前时间计数来确定信标装置的当前时间计数。基于时间的计数器可以随着时间的变化来递增时间计数(例如,可以按照每秒一次或者其它指定的递增间隔一次对时间计数进行递增)。基于时间的计数器对时间计数进行递增的间隔可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增间隔的装置可能无法实现这点。

在一些实施例中,基于时间的计数器可以在每个递增实例中将时间计数递增了预定的递增量子。递增量子可以是不等于1的数字。递增量子可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增量子的装置可能无法实现这点。

信标装置还可以使用轮换速率来限定信标装置应该生成新的临时标识符或者消息完整性代码的频率。引申开来,轮换速率还可以用于限定时间段,在该时间段内,给定的临时标识符或者消息完整性代码表示广播信标装置的相应的有效识别或者认证代码。

此外,在一些实施例中,轮换速率可以包括某抖动量。具体地,通过将随机抖动或者伪随机抖动添加至临时标识符或者消息完整性代码的轮换的准确定时,可以使实体将时间签名(例如,轮换速率)用作与特定信标装置相关联的识别信息变得更困难。

同样,当要根据当前时间和轮换速率生成新的临时标识符或者消息完整性代码时,可以读取或者以其它方式获取基于时间的计数器的当前时间计数。例如,可以使用锁存器工具来捕获计数器在给定时间的特定时间计数。轮换速率还可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够按照合理的精度预测信标装置将生成新的临时标识符或者消息完整性代码的时间和频率,而不了解轮换速率的装置可能无法实现这点。

因此,信标装置和验证实体可以具有共享的时间概念,该时间概念根据唯一的时间方案来运行。具体地,在一些实施例中,使用上述的时间特征,用于生成消息完整性代码的时间计数可以总是唯一的(例如,不重复使用的),并且时间计数可以总是增加或者以其它方式朝着同一方向移动。

一旦已经获取到当前时间计数,可以将该当前时间计数连同静态标识符一起用来生成随时间修改的标识符。作为示例,在一些实施例中,可以通过针对当前时间计数和静态标识符执行异或操作来获取随时间修改的标识符。因此,在这种实施例中,可以通过具有与静态标识符相同的位大小的数据来表示当前时间计数。

然后可以将随时间修改的标识符连同轮换密钥一起用来生成临时标识符或者消息完整性代码。作为示例,可以将随时间修改的标识符和轮换密钥输入到模糊函数中以生成临时标识符或者消息完整性代码先导。例如,模糊函数可以是块密码。例如,块密码可以是高级加密标准128位块密码。然后可以使用与函数将消息完整性代码先导与掩码结合来生成消息完整性代码。例如,在一些实施例中,可以使用掩码来选择子集或者消息完整性代码先导的一个或者多个部分来用作消息完整性代码。进一步地,在一些实施例中,掩码可以是在每一个信标装置与验证实体之间的共享秘密。在其它实施例中,可能没必要使用掩码。

轮换密钥可以专用于每一个信标装置或者可以是在每一个信标装置与验证实体之间的共享秘密。同样,在临时标识符或者消息完整性代码给定的情况下,只有信标装置和了解该特定信标装置的轮换密钥的验证实体才能够去模糊或者证实临时标识符或者消息完整性代码以相应地获取随时间修改的标识符。进一步地,因为轮换密钥专用于每一个信标装置,所以,如果多个信标装置中的一个受损或者它们的信息以其它方式变成公开可用,则恶意实体将无法针对任何其它未受损信标装置欺骗性地生成临时标识符或者可认证消息。

此外,在一些实施例中,每一个信标装置可以具有轮换密钥集合,该轮换密钥集合可以是在这样的信标装置与验证实体之间的共享秘密。例如,在每一个轮换密钥使用实例中对该轮换密钥集合中的一个轮换密钥的选择可以基于共享的时间概念或者其它手段或者在验证实体与信标装置之间的通信。因此,通过使用来自该集合的随着时间变化的不同轮换密钥,可以进一步保护发出的临时标识符或者消息完整性代码的序列不受攻击(例如,通过分析发出的标识符或者消息完整性代码的序列或者以其它方式反向模糊函数来推导轮换密钥的尝试)。

在一些实施例中,可以使用掩码来选择子集或者消息完整性代码先导的一部分来用作消息完整性代码。例如,在一些实施例中,消息完整性代码先导可以是16字节值,并且可以使用掩码来从消息完整性代码先导选择4字节值的数据用作消息完整性代码。与轮换密钥相似,在一些实施例中,掩码可以是在每一个信标装置与验证实体之间的共享秘密。

按照这种方式,信标装置可以定期地生成新的临时标识符或者消息完整性代码以包括在其广播中。进一步地,因为验证实体还了解共享秘密并且可以按照合理的精度预测基于信标时间的计数器,所以验证实体可以独立地生成并且存储将由每一个信标装置在任何给定时间点上使用的临时标识符。同样,因为验证实体了解共享秘密并且可以按照合理的精度预测基于信标时间的计数器,所以验证实体可以独立地生成预期由每一个信标装置在任何给定时间点上使用的预期的消息完整性代码。另外,因为临时标识符随着时间而改变,所以临时标识符可以协助防范通过重播或者其它欺骗攻击进行的假冒。

该系统还可以包括从信标装置接收或者窃听广播的一个或者多个观察实体。然而,在一些实施例中,因为观察实体无法去模糊或者证实相应的临时标识符或者消息完整性代码,所以观察实体将需要与验证实体通信以便相应地识别或者认证信标装置或者获取与信标装置相关联的附加信息。例如,观察实体可以将接收到的临时标识符或者消息完整性代码连同装置接收时间戳中继到验证实体,该装置接收时间戳指示观察实体接收到临时标识符或者消息完整性代码的时间。替选地或者除了装置接收时间戳之外,观察实体还可以传送其当前位置、任何最近观察到的信标装置的指示、和/或可以供验证实体用来协助执行认证功能的其它信息。

在其它实施例中,观察实体可以在本地执行验证实体功能的一些方面或者可以具有来自验证实体的预先接收数据,该预先接收数据允许观察实体识别信标装置或者至少确定对于接收到信标装置广播的恰当的响应,所述信标装置广播不具有验证实体对信标装置的精确识别或对消息完整性代码的同时认证的。

根据本公开的一个方面,在一些实施例中,当验证实体从观察实体接收到临时标识符时,验证实体可以将接收到的临时标识符定位在临时标识符缓存内以获取与广播了该临时标识符的信标装置相关联的静态标识符。

更具体地,如上文提到的,验证实体可以预先计算将由给定信标装置使用的预期的临时标识符。同样,验证实体可以生成临时标识符缓存,该临时标识符缓存包含将由信标装置在相当长的一段时间内使用的大量临时标识符。

在一些实施例中,针对存储在临时标识符缓存中的临时标识符的每一个条目,对应信标装置的静态标识符和轮换密钥还可以存储在临时标识符缓存的条目中或者通过其引用。因此,通过将接收到的临时标识符定位在缓存中,验证实体可以获取对应信标装置的静态标识符。

另外,在一些实施例中,可以将装置接收时间戳用作更迅速地定位临时标识符的提示。例如,可以根据临时标识符的对应有效时间,来将临时标识符组织在临时标识符缓存内。因此,可以围绕通过装置接收时间戳提供的时间来搜索缓存,以便将临时标识符更迅速地定位在缓存内。

在已经识别到观察实体从其接收临时标识符的信标装置后,验证实体可以将与识别到的信标装置相关联的信息提供给观察实体。例如,提供的信息可以包括:信标装置的身份、信标装置的精确位置、与信标装置相关联的语义信息(例如,名称或者与信标装置相关联的其它文本信息或者图形信息)、或者其它信息。替选地或者除了向观察实体提供信息之外,验证实体可以响应于识别到信标装置而执行一个或者多个操作,包括,作为示例,将观察实体添加至特定的实体分组、修改本地存储的数据、或者调整与分析学相关联的计数器。

作为另一示例,在一些实施例中,验证实体可以要求将多个接收到的临时标识符与包括在缓存中的多个预期的临时标识符进行匹配以便向观察实体提供附加信息。例如,如果能够将多个接收到的临时标识符中的所有或者一些可接受部分定位在缓存内,则可以将附加信息提供给观察实体。

根据本公开的一个方面,在一些实施例中,当验证实体从观察实体接收到消息完整性代码时,验证实体可以确定该消息完整性代码的有效性,并且因此认证由信标装置连同该消息完整性代码广播的静态标识符。

作为示例,当验证实体接收到静态标识符和消息完整性代码时,验证实体可以使用相似的模糊方案和对共享秘密的了解来生成预期由与接收到的静态标识符相关联的信标装置所使用的多个预期的消息完整性代码。然后可以将接收到的消息完整性代码与预期的消息完整性代码进行匹配。如果发现匹配,则验证实体可以向观察实体认证信标装置对静态标识符的使用。

作为另一个示例,验证实体可以要求将多个接收到的消息完整性代码与多个预期的消息完整性代码进行匹配以便认证静态标识符。例如,可以将多个接收到的消息完整性代码与预期的消息完整性代码的给定集合进行匹配。如果多个接收到的消息完整性代码中的所有或者一些可接受部分是该集合的成员,则可以认证静态标识符。在一些实施例中,可以使用概率过滤器(诸如,布隆过滤器)来执行集合成员查询。

在进一步实施例中,可以要求将多个接收到的消息完整性代码与预期的消息完整性代码的特定序列进行匹配。例如,在一些实施例中,观察实体可以具有(例如,通过使用布隆过滤器)确定给定的接收到的消息完整性代码处于预期的序列内的特定位置n的能力。如果后面接收到的消息完整性代码处于位置n+1(针对期望的序列长度,以此类推),则可以在本地认证静态标识符,而不包括在信标装置与验证实体之间共享的任何秘密。

因此,使用如上所述的布隆过滤器来提供本地认证可以允许不同级别的认证。具体地,在观察实体上本地使用布隆过滤器可以允许概率认证。替选地,传送消息完整性代码以通过了解共享秘密的验证实体进行验证可以允许经计算的认证。

在一些实施例中,可以通过首先针对静态标识符和包括在时间计数列表中的多个预期的时间计数相应地执行异或操作来生成多个预期的随时间修改的标识符,来生成多个预期的消息完整性代码。

作为示例,可以至少部分地基于装置接收时间戳来生成包括在时间计数列表中的多个预期的时间计数。例如,验证实体可以使用其对与静态标识符相关联的信标装置的特定时间保持方案的共享了解,来确定该信标在围绕由装置接收时间戳指示的时间的时间窗口内生成其消息完整性代码将会使用的信标计数器时间计数。

然后可以将多个预期的随时间修改的标识符连同与静态标识符相关联的轮换密钥相应地输入到模糊函数中,以生成多个预期的消息完整性代码先导。例如,模糊函数可以是块密码。例如,块密码可以是高级加密标准128位块密码。轮换密钥可以是专用于与静态标识符相关联的信标装置的共享秘密。

然后可以针对掩码和多个预期的消息完整性代码先导相应地执行与操作以生成多个预期的消息完整性代码。在一些实施例中,掩码可以是专用于信标装置的共享秘密。

在一些实施例中,对于验证实体生成的每一个预期的消息完整性代码,用于生成该预期的消息完整性代码的预期的时间计数还可以存储在对应的预期的消息完整性代码旁和/或通过其引用。因此,通过将接收到的消息完整性代码与生成的预期的消息完整性代码进行匹配,验证实体还可以获取用于生成预期的消息完整性代码的预期的时间计数。该预期的时间计数应该等于由信标装置用来生成广播的消息完整性代码的时间计数,从而提供信标装置的内部时钟的当前状态的指示,如将在下文进一步讨论的。

验证实体可以通过将消息完整性代码与所生成的预期的消息完整性代码中的一个进行匹配来证实接收到的消息完整性代码。响应于证实消息完整性代码,验证实体可以执行各种操作和/或获取附加信息。

作为示例,验证实体可以向观察装置认证信标装置对静态标识符的使用,并且,在一些实施例中,可以将与认证的信标装置相关联的进一步信息提供给观察实体。例如,所提供的信息可以包括:信标装置的精确位置、与信标装置相关联的语义信息(例如,名称或者与信标装置相关联的其它文本信息或者图形信息)、或者其它信息。替选地或者除了向观察实体提供信息之外,验证实体可以响应于认证对静态标识符的使用来执行一个或者多个操作,包括,作为示例,将观察实体添加至特定的实体分组、修改本地存储的数据、或者调整与分析学相关联的计数器。

在本公开的进一步实施例中,在识别或者认证信标装置之前或者之后,验证实体可以执行一个或者多个安全检查。作为示例,验证实体可以将观察实体和相应地与所识别的或者所认证的信标装置或者所接收到的临时标识符或者消息完整性代码相关联的访问控制列表进行匹配。例如,使用访问控制列表可以允许信标装置的操作者控制哪些观察实体有权通过验证实体向其提供与信标装置相关联的信息(例如,信标装置的身份)或者哪些观察实体有权通过验证实体向其提供信标装置的认证或者与信标装置相关联的附加信息。

此外,因为由信标装置使用的临时标识符和消息完整性代码会随着时间而改变,所以访问控制列表还可以指定某观察实体何时以及在多长时间内有权接收与信标装置相关联的认证和/或信息。按照这种方式,验证实体可以能够授权指定的观察实体来按照限定的时间间隔辨别临时标识符,或者接收对消息完整性代码的认证,而不损害在该间隔之前或者之后的隐私。

作为另一示例,在一些实施例中,验证实体可以去模糊临时标识符以获取由信标装置用来生成临时标识符的时间计数。验证实体然后可以确定在由信标装置用来生成临时标识符的时间计数与同样从观察实体接收到的装置接收时间戳之间的时间差。如果该时间差超出阈值(例如,轮换速率),则观察实体可以拒绝与信标装置相关联的信息。

作为另一示例,在一些实施例中,验证实体可以去模糊临时标识符以获取由信标装置用来生成临时标识符的时间计数。验证实体然后可以确定在由信标装置用来生成临时标识符的时间计数与同样从观察实体接收到的装置接收时间戳之间的时间差。如果该时间差超出阈值(例如,轮换速率),则观察实体可以拒绝与信标装置相关联的信息。

作为另一示例,在一些实施例中,验证实体可以识别用于生成与所接收到的消息完整性代码匹配的预期的消息完整性代码的预期的时间计数。验证实体然后可以确定在预期的时间计数与同样从观察实体接收到的装置接收时间戳之间的时间差。如果该时间差超出阈值(例如,轮换速率),则观察实体可以拒绝信标装置的认证和/或与信标装置相关联的附加信息。

作为再一示例,如果在当前时间与装置接收时间戳之间的时间差超出阈值,则可以指定观察实体对临时标识符或者消息完整性代码的接收失效,并且验证实体可以拒绝对信标装置的认证的访问和/或对与信标装置相关联的附加信息的访问。

作为又一示例,在本公开的一些实施例中,验证实体可以在验证实体愿意处理/验证的临时标识符、静态标识符和/或消息完整性代码的列表中创建漏洞。因此,验证实体还可以创建验证者介导的访问控制列表。可以将这些技术用作限制对信标装置信息和/或身份或者仅在某些时间(例如,营业时间)期间发生的认证的访问的手段或者用作在拒绝服务攻击的情况下选择性地关闭验证/认证功能的手段。例如,如果验证实体接收到超过阈值数目的请求以处理或者认证特定临时或者静态标识符或者消息完整性代码,则验证实体可以从列表中删除特定临时或者静态标识符或者消息完整性代码,因此,不再提供针对特定临时标识符、静态标识符、某时间段内的对应信标装置、或者消息完整性代码组合的验证/认证。

在本公开的再进一步的实施例中,验证实体可以执行操作以处理信标装置时钟漂移。作为示例,在一些实施例中,验证实体可以维持信标装置中的每一个的信标时钟校正因子。每一个信标装置的信标时钟校正因子可以描述在验证实体的时钟与该信标装置的时钟或者计数器之间的偏移。信标时钟校正因子可以是单个值或者可以是提供随时间变化的关系(例如,包括比例因子)的复值函数。

在一些实施例中,可以通过验证实体,至少部分地基于由观察实体接收并且中继至验证实体的临时标识符或者消息完整性代码、和该观察实体接收临时标识符的装置接收时间戳,来更新信标时钟校正因子。作为示例,更新信标时钟校正因子可以包括:去模糊临时标识符以获取由信标装置用来生成临时标识符的时间计数。可以至少部分地基于该去模糊的时间计数与该装置接收时间戳的比较来更新信标时钟校正因子。

更具体地,去模糊临时标识符可以包括:从临时标识符缓存获取与该信标装置相关联的静态标识符和轮换密钥并且将临时标识符和轮换密钥输入到反向模糊函数中以获取随时间修改的标识符。例如,反向模糊函数可以是块密码(例如,高级加密标准128位块密码)。

接着,可以针对静态标识符和随时间修改的标识符执行异或操作以获取由信标装置用来生成临时标识符的时间计数。如上文提到的,该时间计数可以用于更新信标时钟校正因子。

在一些实施例中,可以通过验证实体,至少部分地基于由观察实体接收并且中继至验证实体的消息完整性代码、和该观察实体接收消息完整性代码的装置接收时间戳,来更新信标时钟校正因子。

作为示例,更新信标时钟校正因子可以包括:识别用于生成与所接收到的消息完整性代码匹配的预期的消息完整性代码的预期的时间计数。可以至少部分地基于预期的时间计数与装置接收时间戳的比较来更新信标时钟校正因子。

作为另一示例,在一些实施例中,信标装置可以定期地传输改变临时标识符或者消息完整性代码的突发或者其它快速序列。对传输的突发的观察可以用于更精确地计算校正因子。例如,在临时标识符或者消息完整性代码不频繁轮换(例如,每小时轮换一次)的情况下,这种配置可以是有用的。可以每秒一次、每分钟一次、每天一次、或者可以每其它时间段一次执行突发。

参照附图,现在将对本公开的示例实施例进行更详细地讨论,附图中图示了示例实施例的一个或者多个示例。每个示例的提供是为了阐释本公开,而不是限制本公开。

实际上,对本领域的技术人员显而易见的是,可以在不脱离本公开的范围或精神的情况下对本公开进行各种修改和变型。例如,作为一个实施例的部分所图示或者所描述的特征,可以与另一实施例一起使用来产生又一个实施例。因此,本公开旨在涵盖这种修改和变型,如同这种修改和变型在随附权利要求书及其等效物的范围内一样。

示例系统

图1描绘了根据本公开的示例实施例的示例系统100。系统100可以包括多个信标装置102至110;一个或者多个观察实体112和114;和至少一个验证实体118。

信标装置102至110可以用于许多应用,包括,例如,共存(例如,变得了解彼此的两个实体)、基于位置的游戏、资产追踪、信标装置定位或者观察实体定位、遥测、信息配备(例如,当观察实体全世界移动时,使用观察实体来获取诸如与信标装置102至110相关联的语义信息或者图形信息的各种信息)、信标内通信、支付系统、安全等。本公开提供可以应用于上文提到的应用或者其它应用的通用系统。更具体地,本公开提供可以在任何上文的应用的上下文中生成并且使用临时标识符或者消息完整性代码的系统和方法。

信标装置102至110可以是配置为发出消息或者其它信号的计算装置。例如,消息可以是由信标装置102至110广播的广告帧。广告帧可以包括:根据本公开生成的临时标识符或者静态标识符和消息完整性代码。在一些实施例中,使用广告帧的目的可以是“被注意到”,而不是连接到。因此,在这种实施例中,可以在不需要观察实体与信标装置之间的连接或者信标装置与验证实体118之间的连接的情况下,在信标装置102至110与观察实体112和114之间执行全部交互。相反,该交互的所有相关信息包含在由信标装置发出的广告验证实体或者帧内。将信标装置交互限制为广告帧的广播可以提供允许对能量消耗和使用寿命进行建模和合理预测的标称行为。

然而,在其它实施例中,信标装置102至110可以允许用于配置、配备、维护、固件更新、或者其它功能的连接。例如,在一些实施例中,信标装置102至110可以通过第二通信信道与验证实体118连接。在又进一步的实施例中,信标装置102至110可以配置为使用扫描请求(SCAN_REQ)和扫描响应(SCAN_RSP)交互来将附加信息提供给观察实体,该交互不需要在装置之间的实际连接。在一些实施例中,SCAN_RSP帧还可以包括消息完整性代码。

作为示例,信标装置102至110可以使用短距离无线通信技术(诸如,例如,蓝牙、蓝牙低能耗、ZigBee、近场通信、WiFi Direct、或者其它技术)来广播广告帧。此外,虽然将近距离无线通信技术提供为示例,但是可以使用任何通信方法来将广告帧从信标装置102至110传输至观察实体112和114,包括,例如,无线连接、通用射频通信、光通信、红外通信、磁通信、或者其它通信方法,包括,例如,量子通信方法。

广告帧的广播可以是每个信标装置102至110的主要目的或者可以是次要目的。因此,在本公开的各种实施例中,每个信标装置可以是专用于广告帧的定期广播的计算装置;在更大的计算装置或者系统内的嵌入式系统;配置为执行广告帧的广播的用户计算装置(例如,智能电话或者可穿戴计算装置);其它装置;或者它们的组合。

根据本公开的一个方面,信标装置102至110中的每一个在配备的时候可以提供有特定于信标的静态标识符。用于分配静态标识符的示例方法将在下文进一步讨论。每个信标还可以配备有被称为轮换密钥的特定于信标的秘密密钥。分配给每个信标装置102至110的静态标识符和轮换密钥还可以被验证实体118获知,并且可以用作临时标识符或者消息完整性代码生成和去模糊和/或证实的共享秘密。

在一些实施例中,由信标装置执行的每个广告事件可以由信标装置发出的最多三个广告(ADV)帧组成。在信标装置采用蓝牙低能耗(BLE)技术进行广播的实施例中,每个ADV帧可以携带最大31字节的有效载荷并且可以在40-信道BLE射频频谱内的三个指定广告信道中的其中一个广告信道上发送。如已经提到的,广告可以是能够由任何收听装置(例如,观察实体)接收或者处理的广播事件。进一步地,使用BLE技术的上述示例实施方式仅仅提供作为示例。也可以使用具有不同的帧格式或者信道分配的其它合适的通信协议。另外,当随着时间修改或者替换某些协议时,可以使用这样的新的协议来容易地更改本公开以进行实施。

在一些实施例中,每个ADV帧可以以帧格式来指示广播信标装置是否是可连接的、可扫描的、或者不可连接的/不可扫描的。对于可连接的或者可扫描的帧,收听装置可以发送对待发送的附加的31字节帧的请求,该31字节帧可以包含来自该信标装置的附加信息。

在一些实施例中,该请求(SCAN_REQ)可以不包含数据,只有“返回地址”,信标装置可以将其响应(SCAN_RSP)引导至该“返回地址”。

然而,在其它实施例中,SCAN_REQ可以包括特定于观察实体的数据,该数据可以由信标装置用来生成被包括在SCAN_RSP中的消息完整性代码,借此,可以使用特定于观察者的信息来生成对重播攻击提供改进型防御的消息完整性代码。

更具体地,由于ADV帧通常被广播,ADV帧可能会在包括在ADV帧中的消息完整性代码有效的时间段内(例如,在一个轮换时段内)受到重播假冒的影响。因此,在本公开的一些实施例中,替选地或者除了包括在ADV帧中的消息完整性代码之外,消息完整性代码可以包括在SCAN_RSP帧或者涉及特定观察实体的一些其它响应帧中。具体地,例如,可以基于从观察实体直接地发送至信标装置的特定于观察者的信息来生成包括在响应帧中的消息完整性代码。同样,可以将响应帧从信标装置直接地发送至请求观察实体,从而减少假冒或者其它欺骗攻击的风险。

在一些实施例中,包括以消息完整性代码为特征的ADV帧和SCAN_RSP帧的全部消息可以被当做分组。具体地,响应帧通常可以包括:也随时间变化或者自身根据本文讨论的模糊算法模糊的信息。因此,全部消息是唯一的消息,该唯一的消息可以绑定到观察实体与信标装置的特定组合之间的特定交互。

此外,与使用信标标识符生成ADV帧消息完整性代码相反,在一些实施例中,可以通过全部有效载荷或者响应帧的有效载荷的子集来计算包括在该响应帧中的消息完整性代码。

另外,虽然上文已经在使用蓝牙低能耗通信技术的系统的上下文内讨论了包括消息完整性代码的响应帧,但是在其中讨论的概念可以容易地适用于允许在观察实体与信标装置之间的请求和响应的其它通信协议和技术。

在本公开的一些实施例中,每个广告帧可以采用最大31字节的有效载荷中的30个字节。作为示例,字节1至3可以用于BLE标记;字节4至7可以用于服务数据报头;字节8可以用于指示帧类型;字节9可以用于标记和在其上发出ADV帧的无线电信道;字节10可以指示ADV帧的校准的或者评估的传输功率;字节11至26可以用于传送信标标识符,诸如,静态标识符或者临时信标标识符;并且字节27至30可以用于传送消息完整性代码。在一些实施例中,可以使用其它帧格式或者指定。具体地,在上文描述的帧中的消息完整性代码的位大小及其布局仅仅是提供为示例的一种潜在配置。

作为另一示例,每个SCAN_RSP帧可以包括4字节的特定于制造商的数据报头;1至27字节的特定于制造商的有效载荷数据;和4字节的消息完整性代码。例如,在一些实施例中,SCAN_RSP帧的有效载荷数据可以用于遥测或者用于提供其它数据。

进一步地,使用BLE技术的上述示例实施方式仅仅提供为示例。

在一些实施例中,分配给每个信标装置102至110的静态标识符可以是16字节的时间常数标识符。作为示例,静态标识符可以是10字节的命名空间标识符和6字节的信标实例标识符的串联。然而,也可以使用其它格式或者位大小。

作为示例,命名空间标识符可以是与特定应用或者组织相关联的信标类别。因此,在一些实施例中,命名空间标识符可以用于选择观察到的ADV帧以路由到可以能够进一步识别信标实例标识符的特定应用。同样,命名空间可以提供一种用于组织的方式,该方式对信标装置进行部署以根据特定应用、使用情况、或者分类来分割信标装置群。

在一些实施例中,每个命名空间标识符可以是全部地或者部分地基于通用唯一标识符(UUID)。例如,命名空间标识符可以是根据互联网工程任务组RFC:4122确定的128位UUID的4个最高有效字节和6个最低有效字节。

信标实例标识符可以识别在命名空间内的特定信标装置。每个信标实例标识符在给定命名空间内可以是唯一的。

观察实体112和114可以是配置为从计算装置102至110中的每一个接收广告帧的计算装置。作为示例,观察实体112和114可以是用户计算装置,诸如,智能电话、膝上型计算机、桌面型计算机、或者可穿戴式计算装置;以及在机器上的嵌入式系统;其它装置;或者它们的组合。在一些实施例中,单个装置可以具有用于执行信标装置功能的组件和用于执行观察实体功能的组件。

在一些实施例中,观察实体112和114中的每一个可以具有多个处理器或者处理模块。例如,每个观察实体可以包括片上系统(SoC),该片上系统对广告帧执行低功率后台扫描,提供一种将观察到的广告帧进行分批的方式,并且执行定期批量传输以提高能源效率。观察实体112和114中的每一个可以进一步包括:具有与SoC协作提供自适应扫描的能力的应用级处理器。该应用级处理器也可以执行其它高级任务。同样,如上所述,信标装置102至110还可以具有多个处理器或者处理模块。

验证实体118可以是配置为通过网络116与观察实体112和114通信的一个或者多个计算装置。作为示例,验证实体118可以是一个或者多个服务器计算装置。在使用多个服务器计算装置的实例中,可以根据任何适合的计算架构(包括,顺序计算架构、并行计算架构、或者它们的组合)来布置服务器计算装置。

网络116可以是任何类型的通信网络,诸如,局域网(例如,内联网)、广域网(例如,互联网)、或者它们的一些组合,并且可以包括任何数目的有线链路或者无线链路。通常,可以经由任何类型的有线和/或无线连接,使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码方法或者格式(例如,HTML、XML)、和/或保护方案(例如,VPN、安全HTTP、SSL)来承载在验证实体118与观察实体112和114之间的通信。

此外,虽然每个观察实体112和114都示出为通过网络116与验证实体118直接地通信,但是在观察实体112或者114与验证实体118之间可以存在任何数目的中介装置。作为示例,在一些实施例中,多组观察实体可以组织在网络(例如,网状网络)中并且可以来回地将来自特定观察实体的消息中继至验证实体118。

根据本公开的一个方面,每个信标装置110至112可以配置为定期地确定临时标识符或者消息完整性代码以在广告帧内广播。更具体地,在完全公开且开放的情况下可以使用静态标识符,在这种情况下,需要使任何扫描客户端观察并且理解静态标识符。进一步地,在一些实施例中,信标装置可以另外地传输消息认证码(MAC)连同静态标识符以允许静态标识符的认证并且进一步防止命名空间冲突。

然而,在许多情况下,不需要使静态身份和信标装置的存在变得完全透明和公开可用。因此,根据本公开的一个方面,临时标识符或者消息完整性代码可以用于提供一种通过按照预定的间隔改变由信标装置传输的临时标识符或者消息完整性代码来相应地模糊或者认证信标装置的身份的方式。具体地,因为临时标识符或者消息完整性代码的生成依赖于一个或者多个共享秘密和信标装置的当前时间,所以相应的临时标识符或者消息完整性代码的去模糊或者证实需要了解该一个或者多个共享秘密和共享的时间概念。利用这些信息项,在可能不宜广告或者广告静态标识符可能会有危险或者需要对信标装置的身份进行认证的情况下,可以有效地使用临时标识符和/或消息完整性代码。

进一步地,因为观察实体112和114通常不具有共享秘密或者共享的时间概念,所以临时标识符或者消息完整性代码无法相应地直接使用或者证实,并且需要附加的处理步骤来使其可供观察实体112和114用于接收信标装置的认证。因此,临时标识符或者消息完整性代码可以用于提供隐私、安全、和访问控制机制。

示例临时标识符生成

图2A描绘了根据本公开的示例实施例的用于在信标装置上生成临时标识符的示例功能图200。具体地,功能图200描绘了用于从静态标识符202生成临时标识符204的过程。

基于时间的计数器206可以用于随着时间对时间计数进行递增(例如,如图2A所示,可以每秒一次或者按照其它指定的递增间隔一次对时间计数进行递增)。基于时间的计数器206对时间计数进行递增的间隔可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增间隔的装置可能无法实现这点。

基于时间的计数器206可以在每个递增实例中将时间计数递增了预定的递增量子。递增量子208可以是等于1或者不等于1的数字。递增量子208可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增量子208的装置可能无法实现这点。同样,不等于1的递增量子208的使用可以增加产生的临时标识符204的熵。

信标装置还可以使用轮换速率212来限定信标装置应该生成新的临时标识符的频率。引申开来,轮换速率212还可以用于限定时间段,在该时间段内,给定的临时标识符表示对广播信标装置的有效识别。

同样,当要根据当前时间和轮换速率212生成新的临时标识符时,可以读取或者以其它方式获取基于时间的计数器206的当前时间计数。例如,可以使用锁存器工具210来捕获计数器206在给定时间的特定时间计数。轮换速率212还可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够按照合理的精度预测信标装置将生成新的临时标识符的时间和频率,而不了解轮换速率的装置可能无法实现这点。

上文描述的各种共享秘密变量可以用于向信标装置和验证实体提供1秒的共享概念或者唯一时间递增方案内的其它时间分辨率,该唯一时间递增方案以在配备的时候建立的随机起始点为特征。

一旦已经获取到当前时间计数,可以将该当前时间计数连同静态标识符202用来生成随时间修改的标识符。具体地,如图2A所示,可以通过在214中针对当前时间计数和静态标识符202执行异或操作来获取随时间修改的标识符。因此,在这种实施例中,可以通过具有与静态标识符202相同的位大小的数据来表示当前时间计数。

然后可以将随时间修改的标识符连同轮换密钥216用来生成临时标识符204。作为示例,如图2A所示,可以将随时间修改的标识符和轮换密钥216输入到高级加密标准128位块密码218或者其它模糊函数中。

轮换密钥216可以专用于每个信标装置并且可以是在每个信标装置与验证实体之间的共享秘密。同样,在临时标识符204给定的情况下,只有了解特定信标装置的轮换密钥216的信标装置和验证实体才能够去模糊临时标识符204以获取随时间修改的标识符。进一步地,因为轮换密钥216专用于每个信标装置,所以如果多个信标装置中的一个受损或者其信息以其它方式变成公开可用,则恶意实体将无法欺骗性地生成表示任何其它未受损信标装置的临时标识符。

按照这种方式,信标装置可以定期地生成新的临时标识符204以包括在其广播中。进一步地,因为验证实体还了解共享秘密并且可以按照合理的精度预测基于信标时间的计数器,所以验证实体可以独立地生成并且存储将由每个信标装置在任何给定时间点上使用的临时标识符。

此外,将当前时间计数与静态标识符202结合可以确保:对于每个随后的临时标识符生成,所产生的临时标识符204将是不稳定。另外,将时间计数与静态标识符202结合允许通过验证实体提取时间,作为临时标识符反转和证实过程的一部分,从而允许验证实体保证临时标识符在商定的窗口时间内到达并且通过接收由信标装置用来生成临时标识符204的时间计数的指示来更新或者维护共享的时间概念。

示例临时标识符处理

图3A描绘了根据本公开的示例实施例的用于在观察实体上处理临时标识符的示例功能图300。观察实体可以从信标装置接收临时标识符302。

响应于从信标装置接收到临时标识符302,观察实体可以将接收到的临时标识符302传输至验证实体以便证实并且理解临时标识符302。另外,观察实体可以传输信标接收时间戳304连同临时标识符302。装置接收时间戳可以指示观察实体从信标装置接收临时标识符的时间。

替选地或者另外地,观察实体可以在本地执行验证实体功能的一些方面或者可以具有来自验证实体的预先接收数据,该预先接收数据允许观察实体识别信标装置或者至少确定针对接收到不具有信标装置的精确识别的信标装置广播的恰当的响应。因此,在这种实施例中,观察实体可以执行本地查找和动作306。

作为示例,在一些实施例中,验证实体可以将数据预加载到观察实体上,该数据允许观察实体执行本地查找和动作306。例如,在一些实施例中,预加载数据可以包括放入存在于观察实体上的概率过滤器(例如,布隆过滤器)的散列过滤器分片。观察实体然后可以使用本地散列版本的临时标识符302来查询概率过滤器,以接收与特定的接收到的临时标识符302对应的过滤器分片是否存在于过滤器数据集内的指示(具有一定的误报风险)。

按照这种方式,观察实体可以能够识别出从其接收到临时标识符302的信标装置所属的类别或者子集。因此,观察实体可以能够在没有获取从其接收到临时标识符302的信标装置的精确身份的情况下,响应于接收到临时标识符302,来识别某些期望的操作。

在进一步的实施例中,观察实体可以将过滤器数据组织到多个分层概率过滤器中以提供增强的分类、识别、和处理效率。

示例临时标识符生成

图4A描绘了根据本公开的示例实施例的用于在验证实体上生成临时标识符的示例功能图400。具体地,在功能图400中描绘的过程可以利用对由信标装置使用的共享秘密的了解来预先计算预期由给定信标装置在某时间使用的临时标识符。同样,使用在图400中描绘的过程,验证实体可以生成临时标识符缓存410,该临时标识符缓存410包含将由信标装置在相当长的一段时间内使用的大量临时标识符。

更具体地,针对需要将对应的临时标识符包括在临时标识符缓存410中的每个信标装置,验证实体可以首先将与该信标装置相关联的静态标识符402与包括在时间计数列表404中的多个时间计数的每一个相结合。时间计数列表404可以包括:针对需要包括在缓存410中的每个临时标识符的时间计数。更具体地,每个时间计数可以是在鉴于已知的时间保持参数预计要创建临时标识符的时候包括在对应的信标装置中的基于时间的计数器的预计的时间计数。

作为示例,如图4A所示,可以通过相应地执行异或操作,将包括在时间计数列表404中的多个时间计数相应地与静态标识符402相结合,以获取多个随时间修改的标识符。

接着,如图4A所示,可以将多个随时间修改的标识符连同轮换密钥406相应地输入到高级加密标准128位块密码408中以获取待包括在临时标识符缓存410中的多个临时标识符。替选地或者除了块密码408之外,可以使用其它模糊函数。对于期望缓存410包含对应的临时标识符的每个信标装置,静态标识符402和轮换密钥406将是专用的并且是不同的。此外,通过修改包括在时间计数列表404中的时间计数,可以控制时间段,期望给定信标装置的临时标识符与该时间段对应。

在一些实施例中,缓存410可以进一步存储或者引用用于生成包括在缓存410中的每个临时标识符的特定的静态标识符402和轮换密钥406。按照这种方式,通过将随后接收到的临时标识符定位在缓存410内,验证实体将能够获取传输该临时标识符的特定信标装置的静态标识符402和轮换密钥406。

示例临时标识符处理

图5描绘了根据本公开的示例实施例的用于在验证实体上处理临时标识符的示例功能图500。验证实体可以从观察实体接收临时标识符502和装置接收时间戳504。验证实体可以将接收到的临时标识符502定位在临时标识符缓存506内以获取与广播该特定临时标识符502的信标装置相关联的静态标识符508和轮换密钥510。

更具体地,如上文针对图4A讨论的,验证实体可以预先计算将由给定信标装置使用的预期的临时标识符。同样,验证实体可以生成临时标识符缓存506,该临时标识符缓存506包含将由信标装置在相当长的一段时间内使用的大量临时标识符。

在一些实施例中,对于存储在临时标识符缓存506中的临时标识符的每个条目,对应信标装置的静态标识符508和轮换密钥510同样可以存储在临时标识符缓存506中的条目中或者通过其引用。因此,通过将接收到的临时标识符502定位在缓存506中,验证实体可以获取对应信标装置的静态标识符508。

另外,在一些实施例中,可以将装置接收时间戳504用作更迅速地将临时标识符502定位在缓存506内的提示。例如,可以根据临时标识符的对应有效时间,来将临时标识符组织在临时标识符缓存506内。因此,可以围绕通过装置接收时间戳504提供的时间来搜索缓存506,以将临时标识符502更迅速地定位在缓存506内。

在已经识别到观察实体从其接收临时标识符的信标装置后,验证实体可以将与识别到的信标装置相关联的信息提供给观察实体。例如,提供的信息可以包括:信标装置的身份、信标装置的精确位置、与信标装置相关联的语义信息(例如,名称或者与信标装置相关联的其它文本信息或者图形信息)、或者其它信息。替选地或者除了向观察实体提供信息之外,验证实体可以响应于识别到信标装置而执行一个或者多个操作,包括,作为示例,将观察实体添加至特定的实体分组、修改本地存储的数据、或者调整与分析学相关联的计数器。

在本公开的进一步实施例中,在识别到信标装置之前或者之后,验证实体可以执行一个或者多个安全检查。作为示例,验证实体可以将观察实体和与识别的信标装置或者接收到的临时标识符502相关联的访问控制列表进行匹配。例如,使用访问控制列表可以允许信标装置的操作者控制哪些观察实体有权通过验证实体向其提供与信标装置相关联的信息(例如,信标装置的身份)。

此外,因为由信标装置使用的临时标识符会随着时间而改变,所以访问控制列表还可以指定某观察实体何时以及在多长时间内有权接收与该信标装置相关联的信息。按照这种方式,验证实体可以能够在限定的时间间隔内授权指定的观察实体来辨别临时标识符,而不损害在该间隔之前或者之后的隐私。

此外,验证实体可以去模糊临时标识符502以获取由信标装置用来生成临时标识符502的时间计数512。验证实体然后可以确定在由信标装置用来生成临时标识符的时间计数512与同样从观察实体接收到的装置接收时间戳504之间的时间差。如果该时间差超出阈值(例如,轮换速率),则观察实体可能会拒绝与信标装置相关联的信息。

作为再一示例,如果在当前时间与装置接收时间戳504之间的时间差超出阈值,则可以指定观察实体对临时标识符502的接收失效,并且验证实体可以拒绝对与信标装置相关联的信息的访问。

验证实体可以执行操作以处理信标装置时钟漂移。作为示例,在一些实施例中,验证实体可以维持信标装置中的每一个的信标时钟校正因子。每个信标装置的信标时钟校正因子可以描述在验证实体514的时钟与该信标装置的时钟之间的偏移。信标时钟校正因子可以是单个值或者可以是提供随时间变化的关系(例如,包括比例因子)的复值函数。

在一些示例中,可以通过验证实体至少部分地基于临时标识符502与装置接收时间戳504来更新信标时钟校正因子(图5中通过同步框516图示)。作为示例,更新516信标时钟校正因子可以包括去模糊临时标识符502以获取由信标装置用来生成临时标识符502的时间计数512。可以至少部分地基于去模糊的时间计数512与装置接收时间戳504的比较来更新信标时钟校正因子。

更具体地,去模糊临时标识符502可以包括:从临时标识符缓存506获取与信标装置相关联的静态标识符508和轮换密钥510并且将临时标识符502和轮换密钥510输入到高级加密标准128位块密码518中以获取随时间修改的标识符。替选地或者除了块密码518之外,还可以使用其它模糊函数。接着,可以针对静态标识符508和随时间修改的标识符执行异或操作520以获取由信标装置用来生成临时标识符的时间计数512。如上文提到的,该时间计数512可以用于更新516信标时钟校正因子。

按照这种方式,可以利用在信标装置与验证实体之间的共享秘密向授权的观察实体提供对与给定信标装置相关联的信息的访问。此外,可以将接收到的临时标识符去模糊并且可以用于维护或者更新在验证实体与信标装置之间的共享的时间概念。

示例消息完整性代码生成

图2B描绘了根据本公开的示例实施例的用于在信标装置上生成消息完整性代码的示例功能图260。具体地,功能图260描绘了用于从静态标识符262生成消息完整性代码264的过程。

基于时间的计数器266可以用于随着时间对时间计数进行递增(例如,可以每秒一次或者按照其它指定的递增间隔一次对时间计数进行递增)。基于时间的计数器266对时间计数进行递增的间隔可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增间隔的装置可能无法实现这点。

基于时间的计数器266可以在每个递增实例中将时间计数递增了预定的递增量子。递增量子可以是等于1或者不等于1的数字。递增量子可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够在给定的时间按照合理的精度预测在信标装置处的当前时间计数,而不了解递增量子的装置可能无法实现这点。同样,不等于1的递增量子的使用可以增加产生的消息完整性代码264的熵。

信标装置还可以使用轮换速率来限定信标装置应该生成新的消息完整性代码的频率。引申开来,轮换速率还可以用于限定时间段,在该时间段内,给定的消息完整性代码表示广播信标装置的有效完整性代码。

同样,当要根据当前时间和轮换速率生成新的消息完整性代码时,可以读取或者以其它方式获取基于时间的计数器266的当前时间计数。例如,可以使用锁存器工具来捕获计数器266在给定时间的特定时间计数。轮换速率还可以是在信标装置与验证实体之间的共享秘密,从而使得验证实体能够按照合理的精度预测信标装置将生成新的消息完整性代码的时间和频率,而不了解轮换速率的装置可能无法实现这点。

上文描述的各种共享秘密变量可以用于向信标装置和验证实体提供1秒的共享概念或者唯一时间递增方案内的其它时间分辨率,该唯一时间递增方案以在配备的时候建立的随机起始点为特征。

一旦已经获取到当前时间计数,可以将该当前时间计数连同静态标识符202用来生成随时间修改的标识符。具体地,如图2B所示,可以通过在274中针对当前时间计数和静态标识符262执行异或操作来获取随时间修改的标识符。因此,在这种实施例中,可以通过具有与静态标识符262相同的位大小的数据来表示当前时间计数。

然后可以将随时间修改的标识符连同轮换密钥276用来生成消息完整性代码先导。作为示例,如图2B所示,可以将随时间修改的标识符和轮换密钥276输入到高级加密标准128位块密码278中。

轮换密钥276可以专用于每个信标装置并且可以是在每个信标装置与验证实体之间的共享秘密。同样,在消息完整性代码264给定的情况下,只有了解特定信标装置的轮换密钥276的信标装置和验证实体才能够证实消息完整性代码264。进一步地,因为轮换密钥276专用于每个信标装置,所以如果多个信标装置中的一个受损或者其信息以其它方式变成公开可用,则认证其它信标的能力并未受损。

然后可以通过执行与操作(在272中示出),将消息完整性代码先导与掩码270相结合,以获取消息完整性代码264。在一些实施例中,掩码270可以用于选择消息完整性代码先导的子集或者一部分,用作消息完整性代码264。例如,在一些实施例中,消息完整性代码先导可以是16字节的值,并且掩码270可以用于从消息完整性代码先导选择4字节值的数据用作消息完整性代码264。与轮换密钥276相似,在一些实施例中,掩码270可以是在每个信标装置与验证实体之间的共享秘密。

按照这种方式,信标装置可以定期地生成新的消息完整性代码264以连同静态标识符262包括在其广播中。进一步地,因为验证实体还了解共享秘密并且可以按照合理的精度预测基于信标时间的计数器266,所以验证实体可以独立地生成预期由每个信标装置在任何给定的时间点上使用的消息完整性代码。

此外,将当前时间计数与静态标识符202结合可以确保:对于每个随后的消息完整性代码生成,所产生的消息完整性代码264将不稳定。另外,将时间计数与静态标识符262结合允许通过验证实体提取时间,作为消息完整性代码反转和证实过程的一部分,从而允许验证实体保证消息完整性代码在商定的窗口时间内到达并且通过接收由信标装置用来生成消息完整性代码264的时间计数的指示来更新或者维护共享的时间概念。

示例消息完整性代码处理

图3B描绘了根据本公开的示例实施例的用于在观察实体上处理消息完整性代码的示例功能图360。观察实体可以从信标装置接收消息完整性代码362和静态标识符364。

响应于从信标装置接收到静态标识符364和消息完整性代码362,观察实体可以将接收到的静态标识符364和消息完整性代码362传输至验证实体以便证实消息完整性代码,并且因此,认证静态标识符364的使用。另外,观察实体可以传输装置接收时间戳366连同消息完整性代码362。装置接收时间戳366可以指示观察实体从信标装置接收消息完整性代码362的时间。

替选地或者另外,观察实体可以在本地执行验证实体功能的一些方面或者可以具有来自验证实体的预先接收数据,该预先接收数据允许观察实体识别信标装置或者至少确定针对接收到不具有由验证实体进行的验证消息完整性代码的同时认证的信标装置广播的恰当的响应。因此,在这种实施例中,观察实体可以执行本地查找和动作368。

作为示例,在一些实施例中,验证实体可以将数据预加载到观察实体上,该数据允许观察实体执行本地查找和动作308。例如,在一些实施例中,预加载数据可以包括放入存在于观察实体上的概率过滤器(例如,布隆过滤器)的散列过滤器分片。观察实体然后可以使用本地散列版本(在372中示出)的消息完整性代码372来查询概率过滤器,以接收与特定的接收到的消息完整性代码362对应的过滤器分片是否存在于过滤器数据集内的指示(具有一定的误报风险)。

按照这种方式,观察实体可以能够识别出从其接收到消息完整性代码362的信标装置所属的类别或者子集。因此,观察实体可以能够在没有获取到静态标识符364的同时认证的情况下,响应于接收到消息完整性代码362,来识别某些期望的操作。

在进一步实施例中,观察实体可以将过滤器数据组织到多个分层概率过滤器中以提供增强的分类、识别、和处理效率。

图4B描绘了根据本公开的示例实施例的用于在验证实体上处理消息完整性代码的示例功能图460。验证实体可以从观察实体接收消息完整性代码462、静态标识符464、和装置接收时间戳466。

根据本公开的一个方面,在一些实施例中,当验证实体从观察实体接收到消息完整性代码462时,验证实体可以确定消息完整性代码462的有效性并且因此,认证由信标装置连同消息完整性代码462广播的静态标识符464。

作为示例,当验证实体接收到静态标识符464和消息完整性代码462时,验证实体可以使用相似的模糊方案和对共享秘密的了解来生成预期由与接收到的静态标识符相关联的信标装置使用的多个预期的消息完整性代码。然后可以将接收到的消息完整性代码与预期的消息完整性代码进行匹配。如果发现匹配,则验证实体可以向观察实体认证信标装置对静态标识符的使用。

具体地,在一些实施例中,可以通过:首先,通过针对静态标识符464和包括在时间计数列表470中的多个预期的时间计数相应地执行异或操作来生成多个预期的随时间修改的标识符,来生成多个预期的消息完整性代码。

作为示例,可以至少部分地基于装置接收时间戳466来生成包括在时间计数列表470中的多个预期的时间计数。例如,验证实体可以使用其对与静态标识符464相关联的信标装置的特定时间保持方案的共享了解,来确定该信标在围绕由装置接收时间戳466指示的时间的时间窗口内生成其消息完整性代码将会使用的信标计数器时间计数。

然后可以将多个预期的随时间修改的标识符连同与静态标识符464相关联的轮换密钥474相应地输入到高级加密128位块密码472中,以生成多个预期的消息完整性代码先导。轮换密钥474可以是专用于与静态标识符464相关联的信标装置的共享秘密。

然后可以针对掩码478和多个预期的消息完整性代码先导相应地执行与操作476,以生成预期的消息完整性代码的列表。在一些实施例中,掩码478可以是专用于信标装置的共享秘密。

在一些实施例中,对于验证实体生成的每个预期的消息完整性代码,用于生成该预期的消息完整性代码的预期的时间计数还可以存储在对应的预期的消息完整性代码旁和/或通过其引用。因此,通过将接收到的消息完整性代码与生成的预期的消息完整性代码进行匹配,验证实体还可以获取用于生成预期的消息完整性代码的预期的时间计数。该预期的时间计数应该等于由信标装置用来生成广播的消息完整性代码的时间计数,从而提供信标装置的内部时钟的当前状态的指示,如将在下文进一步讨论的。

验证实体可以通过将消息完整性代码462与在生成的列表中的其中一个预期的消息完整性代码进行匹配(在482中示出)来证实接收到的消息完整性代码472。响应于证实消息完整性代码462,验证实体可以执行各种操作(在484中示出)和/或获取附加信息。

作为示例,验证实体可以向观察装置认证信标装置对静态标识符464的使用,并且,在一些实施例中,可以将与认证的信标装置相关联的进一步信息提供给观察实体。例如,所提供的信息可以包括:信标装置的精确位置、与信标装置相关联的语义信息(例如,名称或者与信标装置相关联的其它文本信息或者图形信息)、或者其它信息。替选地或者除了向观察实体提供信息之外,验证实体可以响应于认证对静态标识符的使用来执行一个或者多个操作,包括,作为示例,将观察实体添加至特定的实体分组、修改本地存储的数据、或者调整与分析学相关联的计数器。

在本公开的进一步实施例中,在认证信标装置之前或者之后,验证实体可以执行一个或者多个安全检查。作为示例,验证实体可以将观察实体和与所认证的信标装置或者所接收到的消息完整性代码相关联的访问控制列表进行匹配。例如,访问控制列表的使用可以允许信标装置的操作者控制哪些观察实体有权通过验证实体向其提供信标装置的认证或者与信标装置相关联的附加信息。

此外,因为由信标装置使用的消息完整性代码会随着时间而改变,所以访问控制列表还可以指定某观察实体何时以及在多长时间内有权接收与信标装置相关联的认证和/或信息。按照这种方式,验证实体可以能够授权指定的观察实体按照限定的时间间隔接收对消息完整性代码的认证,而不损害在该间隔之前或者之后的隐私。

作为另一示例,在一些实施例中,验证实体可以识别用于生成与所接收到的消息完整性代码462匹配的预期的消息完整性代码的预期的时间计数。验证实体然后可以确定在预期的时间计数与同样从观察实体接收到的装置接收时间戳466之间的时间差。如果该时间差超出阈值(例如,轮换速率),则观察实体可能会拒绝信标装置的认证和/或与信标装置相关联的附加信息。

作为再一示例,如果在当前时间与装置接收时间戳466之间的时间差超出阈值,则可以指定观察实体对消息完整性代码462的接收失效,并且验证实体可以拒绝对信标装置的认证的访问和/或对与信标装置相关联的附加信息的访问。

在本公开的再进一步实施例中,验证实体可以执行操作以处理信标装置时钟漂移。作为示例,在一些实施例中,验证实体可以维持信标装置中的每一个的信标时钟校正因子。每个信标装置的信标时钟校正因子可以描述在验证实体486的时钟与该信标装置的计数器之间的偏移。信标时钟校正因子可以是单个值或者可以是提供随时间变化的关系(例如,包括比例因子)的复值函数。

在一些实施例中,可以通过验证实体至少部分地基于消息完整性代码462和装置接收时间戳466来更新信标时钟校正因子(在488中示出)。作为示例,更新信标时钟校正因子可以包括识别用于生成在482中与所接收到的消息完整性代码462匹配的预期的消息完整性代码的预期的时间计数480。可以至少部分地基于预期的时间计数480与装置接收时间戳466的比较来更新信标时钟校正因子。

按照这种方式,可以利用在信标装置与验证实体之间的共享秘密向授权的观察实体提供对给定信标装置的认证。此外,所接收到的消息完整性代码可以用于维护或者更新在验证实体与信标装置之间的共享的时间概念。

本文讨论的技术提到了服务器、数据库、软件应用、和其它基于计算机的系统、以及采取的动作和发送至该系统和自该系统发送的信息。本领域的技术人员将认识到,基于计算机的系统的固有灵活性允许在组件之间的任务和功能的各种可能的配置、组合、和划分。例如,可以使用单个服务器或者多个服务器相组合来实施本文描述的服务器进程。数据库和应用可以实施在单个系统上或者分布在多个系统中。分布式组件可以顺序地操作或者并行地操作。

此外,如本文使用的,术语“计算机装置”指的是用于存储并且处理数据的电子装置。每个计算装置可以包括一个或者多个处理器、和存储器。存储器可以存储指令,该指令在由一个或者多个处理器执行时使该一个或者多个处理器执行操作以提供功能。另外,在一些实例中,计算装置可以实施一个或者多个模块以提供某功能。术语“模块”指的是用于提供期望功能的计算机逻辑。因此,模块可以实施在控制通用处理器的硬件、固件和/或软件中。在一个实施例中,模块是存储在存储装置上、加载到存储器中、并且由处理器执行的或者可以从计算机程序产品提供的程序代码文件,例如,存储在有形计算机可读存储介质(诸如,RAM硬盘或者光或者磁介质)中的计算机可执行指令。

虽然本主题已经针对其具体示例实施例和方法进行了详细描述,但是要了解,本领域的技术人员在理解上述描述之后可以容易地产生这些实施例的修改、变型、和等效物。因此,对于本领域的技术人员来说显而易见的是,本公开的范围是示例性的而不是限制性的,并且本公开并不排除对本主题的这种修改、变型和/或添加的包括。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1