掌桥专利:专业的专利平台
掌桥专利
首页

安全信标

文献发布时间:2023-06-19 12:19:35


安全信标

技术领域

本公开涉及用于保护信标信号的计算机实现的方法、用于处理接收到的安全信标信号的计算机实现的方法、用于保护信标信号的发射机、用于处理接收到的安全信标信号的接收机、以及安全信标信号。

背景技术

蓝牙低能量(BLE),如蓝牙4.0和后续标准版本中定义的,支持信标的广播传输,信标是通常旨在通知接收机存在标签的小数据包。通常,信标包括标签的标识符。发送信标的这种标签例如用在供应链应用中,以跟踪物品、容器等。

广播信标通常是明文发送的,即没有加密或认证机制。因此,攻击者可以创建并发送这样的信标,以便模仿标签。相比之下,使用配对机制而不是广播通信的蓝牙通信可以使用蓝牙标准化的身份验证加密。

图1示出了广播网络10,其包括两个发射机1a、1b,诸如蓝牙标签。来自发射机1a、1b的箭头示出了广播信号。接收机3接收广播信号,如朝向接收机3的箭头所示。攻击者设备2可以拾取广播信号并通过可能以改变的形式再次发送广播信号来模仿合法标签。图1还示出了远程网络4,设备3可以通信地连接到该远程网络4。

通常认为信标信号可能被模仿和误用是有问题的。需要安全的广播信标以便防止信标的欺骗和/或保护在信标信号中传输的数据的机密性和完整性。

发明内容

根据本公开的一方面,提出了一种用于保护网络中的信标信号的计算机实现的方法,该网络包括用于广播信标信号的发射机和用于接收信标信号的一个或多个接收机。信标信号可以包括数据包。数据包可以包括有效载荷。有效载荷可以包括包含来自发射机的广播信息的第一字段和用于存储认证信息的第二字段。该方法可以包括通过使用密钥在有效载荷的至少一部分上计算消息认证码。该方法还可以包括从消息认证码提取预定义数量的字节以获取认证信息。字节数可以等于或小于第二字段的长度。该方法还可以包括使用将密钥和随机数作为参数的对称密码来加密第一字段的至少一部分。随机数可以包括认证信息。加密过程可以产生加密的第一字段。所得到的安全信标信号可以包括数据包,其中,有效载荷包括加密的第一字段,并且第二字段包含认证信息。

有利地,这样获取的安全信标信号被加密并且包括认证信息。接收机可以对安全信标信号进行解密和认证,以确保其真实性。

通常,第二字段包括有效载荷的一个或多个未使用字段和/或数据包的报头。一个或多个未使用的字段可以用于存储认证信息。认证信息可以存储在单个未使用字段中,或者认证信息的不同部分可以存储在不同的未使用字段中。可以使用未使用字段的一部分。未使用的字段可以是一个或多个位长。

在一个实施例中,对称密码可以是以密钥和随机数作为参数的长度保持的对称密码。

在一个实施例中,数据包还可以包括用于存储序列号的序列号字段,其中,序列号可以针对由发射机发送的每个新信标信号而递增,并且其中,随机数可以基于认证信息和序列号,该随机数优选地包括认证信息和序列号的级联,并且用零填充以获取具有预定长度的随机数。

在一个实施例中,数据包还可以包括包含发射机的标识符的标识字段。密钥可以与发射机的标识符相关联。

安全信标信号可以用在各种网络技术中,例如WAN通信技术,例如LoRaWAN、Sigfox和NB-IoT。在实施例中,数据包可以是蓝牙低能量广告包数据单元。

根据本公开的一个方面,提出了一种用于在网络中处理接收到的安全信标信号的计算机实现的方法,该网络包括用于广播安全信标信号的发射机和用于接收安全信标信号的一个或多个接收机。安全信标信号可以包括数据包。数据包可以包括有效载荷。有效载荷可以包括包含加密广播信息的第一字段和包含认证信息的第二字段。该方法可以包括在接收机中接收安全信标信号。该方法还可以包括使用将密钥和随机数作为参数的对称密码来解密加密的第一字段。随机数可以包括认证信息,解密导致解密的第一字段。

在一个实施例中,对称密码可以是以密钥和随机数作为参数的长度保持的对称密码。

在实施例中,数据包还可以包括序列号字段,该序列号字段包括序列号。该随机数可以基于认证信息和序列号,该随机数优选地包括认证信息和序列号的级联,并且用零填充以获取具有预定长度的随机数。

在一个实施例中,数据包还可以包括包含发射机的标识符的标识字段。密钥可以与发射机的标识符相关联。该方法还可以包括基于标识符获取密钥。

在一个实施例中,该方法还可以包括在解密之后在有效载荷的至少一部分上计算消息认证码,并且使用秘密密钥。该方法还可以包括从消息认证码提取预定义数量的字节以获取进一步的认证信息。字节数可以等于或小于第二字段的长度。所述方法还可以包括将进一步的认证信息与所述认证信息进行比较以验证所述数据包的真实性。

在一个实施例中,在计算消息认证码之前,第二字段可以被设置为除了认证信息之外的预定值,该预定值优选为零。

安全信标信号可以用在各种网络技术中,例如WAN通信技术,例如LoRaWAN、Sigfox和NB-IoT。在实施例中,数据包可以是蓝牙低能量广告包数据单元。

根据本公开的一个方面,提出了一种发射机,其被配置用于保护信标信号。发射机可以包括处理器,该处理器被配置为执行用于保护信标信号的上述步骤中的一个或多个。发射机可以包括用于向一个或多个接收机广播安全信标信号的天线。

根据本公开的一个方面,提出了一种接收机,其被配置用于处理接收到的安全信标信号。接收机可以包括用于接收从发射机广播的安全信标信号的天线。接收机还可以包括处理器,该处理器被配置为执行用于处理接收到的安全信标信号的上述步骤中的一个或多个。

根据本发明的一个方面,提出了一种包括数据包的安全信标信号,所述数据包包括有效载荷,其中,所述有效载荷包括包含来自发射机的广播信息的加密的第一字段和包含认证信息的第二字段,其中,所述第一字段的至少一部分被加密,并且其中,已经根据用于保护信标信号的上述步骤中的一个或多个生成了所述安全信标信号。

在下文中,将更详细地描述本公开的实施例。然而,应了解,这些实施例可不解释为限制本公开的保护范围。

附图说明

现在将仅通过示例的方式参照附图描述实施例,其中相应的附图标记指示相应的部分,并且其中:

图1示出了广播网络;

图2示出了蓝牙低能量数据包的包数据格式;

图3示出了示例性实施例的安全信标数据格式;

图4示出了用于保护信标信号的示例性方法的流程图;

图5示出了用于处理接收到的安全信标信号的示例性方法的流程图;以及

图6示出了计算设备的一个实现的框图。

附图仅用于说明目的,并不作为权利要求所规定的范围或保护的限制。

具体实施方式

在以下示例中,将讨论蓝牙低能量(BLE)广告包数据单元(PDU)形式的信标,如在蓝牙规范4.0和蓝牙标准的后续版本中定义的。本公开不限于BLE,并且可以应用于其他类型的信标。

当BLE外围设备向其周围的每个设备广播包时,这称为BLE广告。接收设备可以对接收到的广告信息进行操作,或者由广告触发连接到BLE外围设备以接收更多信息。原则上BLE广告是单向的。

蓝牙的2.4GHz频谱从2402MHz扩展到2480MHz。BLE使用40个1MHz宽信道,编号为0到39。每一个都由2MHz隔开。信道37、38和39用于发送广告包。

BLE广告以20ms到10.24秒的固定间隔发送,步长为0.625ms,可能具有随机延迟。随机延迟可以是自动添加的从0ms到10ms的伪随机值。这种随机性可以帮助减少不同设备的广告之间的冲突的可能性。

图2示出了BLE数据包的数据包数据格式。BLE数据包具有包括前同步码101、访问地址102、包数据单元(PDU)103和CRC 104在内的若干部分。广告信道PDU 103包括2字节报头105和6到37字节的可变有效载荷106。有效载荷的实际长度由广告信道PDU 103的报头105中的6比特长度字段定义。

报头105还包括4比特的PDU类型指示符。广告中有几种PDU类型,包括PDU类型为“0000”的ADV IND、PDU类型为“0010”的ADV NONCONN IND以及PDU类型为“0110”的ADV—SCAN—IND。ADV IND是一种通用的广告,通常是最常见的。其是通用的,因为其不是定向的,而且其是可连接的:这意味着设备可以连接到正在做广告的外围设备,而不是定向到特定的设备。当外围设备发送ADV IND广告时,其可以被诸如智能手机或任何其他具有蓝牙功能的设备之类的设备检测到。一旦找到,设备就可以开始连接过程,显示来自广告的信息或者基于所广告的信息以任何其他方式动作。ADV-NONCONN-IND是当外围设备不想接受连接时使用的广告类型,这在信标中是典型的。

广告信道PDU 103具有取决于广告PDU类型的广告有效载荷106。图2示出了ADVIND有效载荷。该有效载荷具有6字节的广告地址107和可变数量的广告数据结构108...109。广告地址107通常被称为蓝牙MAC地址,尽管可以使用另一地址。广告有效载荷108...109对于实际的广告数据结构具有最大31字节。每个广告数据结构通常包括长度字段110、类型字段111和数据字段112。通过在类型字段111中使用OxFF的数据类型,蓝牙标准允许制造商特定的数据被广播,给出定制有效载荷的可能性。

本公开使得诸如BLE广告之类的信标的有效载荷能够被加密,从而产生诸如图3所示的安全信标200。有利地,安全信标的有效载荷可以具有与清除信标相同的大小,以不干扰原始BLE广告方案。通常,在对数据包进行加密时,会产生开销,例如对随机数进行编码(例如初始值或IV),并添加由消息认证代码或认证密码生成的认证标签。如将更详细地解释的,安全信标200的特殊之处在于,它可以向广告有效载荷108添加加密保护,而不向包添加开销。

在图3的示例中,对广告有效载荷108进行加密。在信标包括多个广告有效载荷(例如还包括广告有效载荷109)的情况下,可以对一个或多个广告有效载荷108...109进行加密。

广告有效载荷108可以包括多个另外的字段201-204。另外的字段的顺序可以改变,并且可以存在更少或更多的另外的字段。安全信标200可以包括用于存储序列号的字段201,该序列号可以针对由标签发送的每个新信标而递增。安全信标还可以包括用于存储标签的ID的字段202。优选地,标签ID是与信标信号的接收机共享的唯一参数。根据系统的架构,接收机可能是远程服务器。安全信标还包括用于存储认证信息的第二字段。在该示例中,第二字段是未使用数据的U字节的字段204,其中U优选地至少等于4。第一字段(在该示例中为字段203)包含实际信标信息。在未示出的替换实施例中,序列号字段201和/或标签ID字段202可以存储在广告信标的另一部分中,诸如在报头105中。

在两个步骤中,使用秘密密钥K将信标变换为安全信标。优选地,秘密密钥K的长度至少为16字节。在第一步骤中,可以在广告有效载荷108上计算消息认证码(例如,基于ISO/IEC 9797-2的MAC)。至此,计算广告有效载荷108的B字节,在没有其他广告有效载荷的情况下可能是全部31字节。因此,可以计算MAC(K,B)。在第一步骤之前,字段204包含预定义值,优选U字节为0(在U等于4的情况下为“0000”)。

应当理解,术语“消息验证码”不限于ISO/IEC 9797-2或类似MAC。例如,消息认证码可以是确定性计算的伪随机值,该伪随机值将来自包的一个或多个字段、设备的唯一标识符和共享秘密值作为参数。在这些参数中的任何一个暴露给攻击者的情况下,或者在系统基于使用全局密钥的情况下,这可以实现良好的保护。

可以从计算的MAC中提取U字节。这可以是任何预定义的U字节,例如计算的MAC的前四个字节。这些来自计算的MAC的U字节被复制到信标的字段204。

在第二步骤中,可以对信标进行加密。至此,来自MAC的U字节和信标的序列号可以被组合以形成随机数。该组合可以以任何数学方式进行,例如通过连接来自MAC的U字节和序列号。结果可以用零填充以形成预定长度的随机数。然后,可以使用该随机数对信标的所选字段进行加密,诸如信息字段203。可替换地或附加地,可以使用随机数来加密诸如广告有效载荷109或其部分的其他广告有效载荷。优选地,使用长度保持对称密码来加密所选择的字段,诸如AES-CTR,其将密钥K和随机数作为参数。除了序列号字段201、标签ID字段202和字段204中的来自MAC的U字节之外,要加密的字段可以是信标的任何字段。当所选择的字段已经被加密时,安全信标形成并准备用于广播。

当使用AES时,可以通过使用执行七轮而不是十轮(在其128模式中)的AES块算法的修改版本来使功耗最小化,以获取30%的速度提升。

当接收机接收到安全信标时,可以对安全信标进行解码以获取信标信息。安全信标的解码包括解密步骤,可能之后是真实性验证。

为了解密安全信标,可以从标签ID字段202读取标签的ID。接收机可以被配置为例如从内部查找表或从远程服务器获取与标签ID相关联的密码密钥K。接下来,可以通过将来自字段204中接收的MAC的U字节与字段201中接收的序列号级联来重构随机数。使用密钥K和随机数,可以对加密字段进行解密。

可以如下验证解密的信标的真实性。从经解密的信标,可从字段204读取来自MAC的U字节,然后,可将字段204设定为预定义值,例如U字节为零(在U等于4的情况下为“0000”)。可以使用在广告有效载荷108的B字节上的密钥K来计算消息认证码,从而导致MAC

而不是使用有效载荷106的一个或多个未使用部分,诸如图3的示例中的字段204,用于存储认证信息的第二字段可以是报头105的一部分。报头105可以包括一个或多个未使用的字段,诸如为将来使用而保留的字段(RFU)。例如,蓝牙低能量数据包的报头通常包括4位PDU类型字段、2位RFU字段、1位TxAdd字段、1位RxAdd字段、6位Length字段和另外6位RFU字段的序列。认证信息,诸如图3的示例中的MAC可以复制到RFU字段。认证信息的不同部分可以被复制到不同的RFU字段。

或者,有效载荷106中的一个或多个未使用字段(例如字段204)和标头105中的一个或多个未使用字段(例如RFU字段)可一起用于存储认证信息的不同部分。

图4示出了用于保护信标信号1000的示例性方法的流程图。在步骤1001中,可以使用秘密密钥在有效载荷的至少一部分上计算消息认证码。在步骤1002中,可以从消息认证码中提取预定义数量的字节,以获取认证信息,字节的数量等于或小于第二字段的长度。在步骤1003中,可以使用将秘密密钥和随机数作为参数的对称密码来加密第一字段的至少一部分,其中,随机数包括认证信息。加密可以产生加密的第一字段,并且产生的安全信标信号200可以包括数据包,其中有效载荷包括加密的第一字段203,并且第二字段(例如字段204和/或报头105的一个或多个未使用的字段)包含认证信息。

图5示出了用于处理接收到的安全信标信号的示例性方法的流程图。在步骤2000中,可以在接收机中接收安全信标信号。在步骤2002中,可以使用可以将秘密密钥和随机数作为参数的对称密码来解密加密的第一字段。随机数可以包括在步骤2001中从安全信标信号获取的认证信息。解密可以导致解密的第一字段。在步骤2003中,在解密并使用秘密密钥之后,可以在有效载荷的至少一部分上计算消息认证码。在步骤2004中,可以从消息认证码提取预定义数量的字节以获取进一步的认证信息。字节数等于或小于第二字段的长度。在步骤2005中,将进一步的认证信息与认证信息进行比较,以验证数据包的真实性。

图6示出了计算设备300的一个实现的框图,其中可以执行用于使计算设备执行本文所讨论的任何一个或多个方法的指令集。计算设备300可以用于图1所示的系统的元件。

在替代实现中,计算设备可以连接(例如联网)到局域网(LAN)、内联网、外联网或互连网中的其他机器。计算设备可以在客户端服务器网络环境中以服务器或客户端机器的容量运行,也可以在对等(或分布式)网络环境中作为对等机器运行。

计算设备可以是个人计算机(PC)、平板计算机、机顶盒(STB)、可穿戴计算设备、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、开关或桥接器、或能够执行指定该机器要采取的动作的指令集(顺序或其他)的任何机器。此外,虽然仅示出了单个计算设备,但是术语“计算设备”还应被理解为包括单独地或联合地执行指令集(或多个指令集)以执行本文所讨论的任何一个或多个方法的机器(例如,计算机)的任何集合。

示例性计算设备300包括处理设备302、主存储器304(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等的动态随机存取存储器(DRAM)等)、静态存储器306(例如,闪存、静态随机存取存储器(SRAM)等),以及经由总线330彼此通信的辅助存储器(例如,数据存储设备318)。

处理设备302表示一个或多个通用处理器,诸如微处理器、中央处理单元等。更具体来说,处理设备302可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器或实施指令集的组合的处理器。处理设备302还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备302被配置为执行用于执行本文中所论述的操作和步骤的处理逻辑(指令322)。

计算设备300还可以包括网络接口设备308。计算设备300还可以包括视频显示单元310(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备312(例如,键盘或触摸屏)、光标控制设备314(例如,鼠标或触摸屏)和音频设备316(例如,扬声器)。

数据存储设备318可包括一个或多个机器可读存储介质(或更具体来说,一个或多个非暂时性计算机可读存储介质)328,其上存储体现本文中所描述的方法或功能中的任何一个或多个的一个或多个指令集322。在由计算设备300执行指令322期间,指令822还可完全或至少部分地位于主存储器304内和/或处理设备302内,主存储器304和处理设备302也构成计算机可读存储介质。

上述各种方法可以通过计算机程序来实现。计算机程序可以包括被布置为指示计算机执行上述各种方法中的一种或多种方法的功能的计算机代码。可以在一个或多个计算机可读介质上,或者更一般地,在计算机程序产品上,将用于执行这种方法的计算机程序和/或代码提供给诸如计算机的装置。计算机可读介质可以是暂时的或非暂时的。一个或多个计算机可读介质可以是例如电子、磁、光、电磁、红外或半导体系统,或者用于数据传输(例如用于通过互联网下载代码)的传播介质。或者,一个或多个上计算机可读介质可采取一个或多个物理计算机可读介质的形式,例如半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘及光盘,例如CD-ROM、CD-R/W或DVD。

在一种实施方案中,本文中所描述的模块、组件和其他特征(例如,关于图6的控制单元310)可实现为离散组件或集成在硬件组件(例如,ASICS、FPGA、DSP或类似设备)的功能性中作为个性化服务器的一部分。

“硬件组件”是能够执行特定操作的有形(例如,非暂时性)物理组件(例如,一个或多个处理器的集合),并且可以以特定物理方式来配置或布置。硬件组件可包括被永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是或包括专用处理器,诸如现场可编程门阵列(FPGA)或ASIC。硬件组件还可包括由软件临时配置以执行某些操作的可编程逻辑或电路。

因此,短语“硬件组件”应被理解为包含有形实体,该有形实体可被物理地构造、永久地配置(例如,硬连线)或临时地配置(例如,编程)成以特定方式操作或执行本文描述的特定操作。

另外,模块和组件可以被实现为硬件设备内的固件或功能电路。此外,模块和组件可以以硬件设备和软件组件的任何组合来实现,或者仅以软件(例如,存储在或以其他方式体现在机器可读介质或传输介质中的代码)来实现。

相关技术
  • 信标、信标生成方法、信标生成装置和设备
  • 信标灯光学部件、信标灯、获得信标灯光学部件的方法
技术分类

06120113250039