消息认证的制作方法

文档序号:14652023发布日期:2018-06-08 22:01阅读:311来源:国知局
消息认证的制作方法

本申请涉及例如在无线环境中的消息认证的领域。



背景技术:

在诸如有线或无线电子通信的电子通信中,确保消息可靠性可具有高度重要性。例如,在传达与诸如健康、个人财务、个人通信、公司计划、未公布的公司财务结果或与公共安全有关的信息的敏感信息时,消息可靠性可能是重要的要求。此外,即使当仅为了使电锁门打开而通信时,数据包(package)源的认证可能也是重要的,以便例如防止未经授权的人通过门。

为了防止重放攻击,在攻击者记录所传送的数据包并且随后提供它的情况下,可以利用计数器或时间戳。例如,在通过发送合适的数据包打开电子锁定门的情况下,对数据包布置计数器或时间戳有助于防止重放所记录的消息,因为重放的消息将包括旧的时间戳,使得能够检测尝试的欺骗和丢弃重放的数据包。

为了防止伪造的数据包,例如在记录的数据包被修改以使其中包括的时间戳更近的情况下,传送的数据包可以包括散列值。在这些情况下,散列可以通过数据包的内容导出,数据包包括时间戳和发送者与接收者之间共享的秘密。改变时间戳将使散列不再对应于数据包的内容,通过在接收器端重新导出散列并将重新导出的散列与在消息中包括的散列进行比较能够进行对伪造的检测。不拥有共享密钥的攻击者不知道如何修改在记录数据包中包括的散列值以便使其匹配改变的时间戳。

可以使用例如诸如安全散列算法1SHA-1的密码散列算法来导出散列。SHA-1输出160位散列值作为输出。



技术实现要素:

本发明由独立权利要求的特征限定。一些具体实施例在从属权利要求中限定。

根据本发明的第一方面,提供了一种装置,装置包括至少一个处理核、包括计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使装置至少从在装置中接收的消息中包括的信息中编译保护位序列,保护位序列包括第一部分和第二部分,基于识别将第一部分解密为在消息中包括的明文位序列的密钥来识别消息的发送者,并且验证保护位序列相对于来自同一发送者的先前消息中的保护位序列已被提前。

根据本发明的第二方面,提供了一种装置,装置包括至少一个处理核、包括计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理核一起使该装置至少编译用于传输的消息,消息包括在第一部分和第二部分中布置的保护位序列,通过将先前使用的保护位序列提前来选择保护位序列,以及使用密钥加密第一部分,并将采用加密形式和未加密形式二者的第一部分包括在消息中。

根据本发明的第三方面,提供了一种方法,方法包括:从在装置中接收的消息中包括的信息中编译保护位序列,保护位序列包括第一部分和第二部分,基于识别将第一部分解密成在该消息中包括的明文位序列的密钥来识别该消息的发送者,并且验证保护位序列相对于来自同一发送者的先前消息中的保护位序列已被提前。

根据本发明的第四方面,提供了一种方法,方法包括编译用于传输的消息,消息包括在第一部分和第二部分中布置的保护位序列,通过将先前使用的保护位序列提前来选择保护位序列,使用密钥加密第一部分,并将采用加密形式和未加密形式二者的第一部分包括在消息中。

根据本发明的第五方面,提供了一种装置,装置包括:用于从在装置中接收的消息中包括的信息中编译保护位序列的装置,保护位序列包括第一部分和第二部分;用于基于识别将第一部分解密为在消息中包括的明文位序列的密钥来识别消息的发送者的装置;以及用于验证保护位序列相对于来自同一发送者的先前消息中的保护位序列已被提前的装置。

根据本发明的第六方面,提供了一种装置,装置包括:用于编译用于传输的消息的装置,消息包括在第一部分和第二部分中布置的保护位序列;用于通过将先前使用的保护位序列提前来选择保护位序列的装置;用于使用密钥加密第一部分的装置;以及用于将采用加密形式和未加密形式二者的第一部分包括在消息中的装置。

根据本发明的第七方面,提供了一种其上存储有一组计算机可读指令的非暂态计算机可读介质,计算机可读指令在由至少一个处理器执行时使装置至少从在装置中接收的消息中包括的信息中编译保护位序列,保护位序列包括第一部分和第二部分,基于识别将第一部分解密为在消息中包括的明文位序列的密钥来识别消息的发送者,并验证保护位序列相对于来自同一发送者的先前消息中的保护位序列已被提前。

根据本发明的第八方面,提供了一种其上存储有一组计算机可读指令的非暂态计算机可读介质,计算机可读指令在由至少一个处理器执行时使装置至少编译用于传输的消息,消息包括在第一部分和第二部分中布置的保护位序列,通过将先前使用的保护位序列提前来选择保护位序列,使用密钥加密第一部分,并且将采用加密形式和未加密形式二者的第一部分包括在消息中。

根据本发明的第九方面,提供了一种计算机程序,计算机程序被配置为使根据第三和第四方面中的至少一个的方法被执行。

附图说明

图1示出根据本发明的至少一些实施例的系统;

图2示出根据本发明的至少一些实施例的消息格式;

图3示出能够支持本发明的至少一些实施例的示例装置;

图4示出根据本发明的至少一些实施例的信号;

图5是示出根据本发明的至少一些实施例的第一方法的第一流程图,以及

图6是示出根据本发明的至少一些实施例的第二方法的第二流程图。

具体实施方式

通过在消息中包括分成两个部分的保护位序列(诸如计数器或时间戳),可以促进消息的认证。具体地,保护位序列的第一部分可以在消息中以明文(即未加密)格式和以加密格式二者来提供。保护位序列的第二部分可以在消息中的其它地方例如以未加密格式提供。因此,拥有密钥的集合的接收器可以依次尝试密钥,以找出使用哪一个密钥将消息中的保护位序列的明文格式的第一部分加密为消息中的保护位序列的加密格式的第一部分。被识别的密钥与发送者标识相关联,发送者标识然后作为发送消息的节点的标识。发送者地址字段可以至少部分地用于保护位序列,换句话说,发送者地址字段可以至少部分地设定为保护位序列的一部分。

两个部分一起的保护位序列可以在来自同一发送者的消息之间递增,以防止重放攻击。对消息进行认证可以进一步包括检查包括两个部分的消息中的保护位序列相对于来自同一接收者的先前的(例如依次紧接在前的)消息增加。在此,术语增加同样可以在适用的情况下表示缩减,这两者都是提前的示例。

图1示出根据本发明的至少一些实施例的系统。图1的系统包括设备110,其可以包括例如电子钥匙设备、个人设备、蜂窝电话、智能电话、平板电话设备、平板计算机、笔记本计算机、台式计算机或另一种类型的合适设备。设备110可以被配置为发送消息。这些消息可根据预定义的方案格式化为例如包括一个或多个位字段的数据结构。位字段可以是预定的长度,例如32位、8位或160位。位字段可以相对于彼此具有不同的长度。

例如,从设备110发送的消息可以经由空中接口112和基站120到达其目的地。在所示示例中,基站120被布置为根据蜂窝通信标准或技术(诸如例如长期演进、LTE、宽带码分多址WCDMA或临时标准95、IS-95)操作。空中接口112根据与基站120相同的技术布置。在经由空中接口112和基站120发送的情况下,源自设备110的消息可以经由连接123被传送到它们的接收者130,连接123可以包括例如诸如以太网的有线接口,或者至少部分无线接口。

可替代地或另外地,为了经由基站120收发消息,设备110可以被布置为经由接入点140发送消息。在该情况下,消息经由空中接口114、接入点140和连接145被传送到接收者150。连接145可以是有线或至少部分无线的。空中接口114和接入点140可以被配置为根据诸如蓝牙、蓝牙低功耗、BTLE、无线局域网、WLAN或全球微波接入互操作性WiMAX的非蜂窝技术进行操作。

空中接口112和114可以是双向的,换句话说,包括被布置为将信息从设备110传送到基站120或接入点140的上行链路,并且包括被布置为向设备110传送信息的下行链路。连接123和/或145同样可以是双向的。

取决于实施例,接收者130和接收者150可以是同一接收者或两个不同的接收者。在一些实施例中,接收者130集成在基站120中或与基站120集成在一起。在一些实施例中,接收者150集成在接入点140中或与接入点140集成在一起。接收者130和/或接收者150可包括例如服务器,或者例如被配置为控制诸如开门机构或工业过程的过程的控制设备。在一些实施例中,设备110被配置为仅使用一种技术进行通信。例如,在设备110包括电子密钥设备的情况下,其可以被配置为仅通过向控制设备发送消息并从其接收响应来与BTLE通信。另外或可替代地,无线通信设备110可以被配置为使用有线连接来发送消息。

诸如例如接收者130或接收者140的消息的接收者可以被配置为采取确保其自身与发送者(诸如设备110)之间的消息收发的安全性的步骤。确保安全性可以包括以下中的至少一个:利用加密使窃听者无法访问消息内容,验证消息的可靠性并防止重放攻击。验证可靠性或认证,消息可以包括该消息由正确的发射器生成的增强可靠性。重放攻击包括如下攻击,其中攻击者记录例如在穿过空中接口时发送的可靠消息,并随后发送记录的消息。由于记录的消息原本是可靠的,并且因此具有可靠消息的特征,因此可能需要采取特定措施来确保被记录的消息不被接收者接受。

加密内容可以包括将作为输入的内容提供给加密算法,并且发送从加密算法提供的加密内容作为输出。加密算法的示例是对称加密算法和公钥加密算法。对称加密算法的示例包括三重DES和高级加密标准AES,而公钥加密算法的示例包括RSA和ElGamal算法。

认证可以包括验证消息的认证特征。例如,消息的内容可以使用公钥密码系统进行密码签名,其中私钥用于签名,并且对应的公钥可用于验证签名。可替代地或另外地,可以使用散列函数来导出散列值,使得将消息的内容和共享秘密提供给散列函数,并且从散列函数获得散列值作为输出。共享秘密可以包括秘密加密密钥,其中秘密加密密钥与消息的预期接收者共享。例如,散列函数可以包括密码散列函数。散列值可以被包括在消息中,使得接收者能够使用消息内容和共享秘密重新导出散列,以通过将重新导出的散列值与消息中的散列值进行比较来检查发送者拥有共享秘密。散列函数的示例包括SHA-1、SHA-2、SHA-3和MD5。散列值可以全部或部分地包括在消息中。在部分地包括散列值的情况下,该包括的部分可以被称为截短散列值,其可以包括整个散列值的位的子集。

防止重放攻击可以包括向消息提供保护位序列,诸如例如计数器或时间戳。时间戳可以包括消息被编译或发送的时间的指示,并且验证时间戳以防止重放可以包括将时间戳与接收者可用的当前时间进行比较。在当前时间晚于时间戳中指示的时间超过阈值时间长度的情况下,可以认为时间戳验证失败。由于发送和接收消息需要有限的时间,并且发射器和接收器的时钟可能没有完全对齐,所以时间戳可能与当前时间相差阈值时间长度并且仍然通过验证。在一些实施例中,接收者被配置为在重建的时间戳不大于来自同一发射器的先前消息的时间戳的情况下拒绝来自同一发射器的消息。与先前消息中的时间戳相同的时间戳可能是重放消息的指示。

在一些实施例中,在其中时间戳仅相对较少地递增的情况下,例如每秒一次,可能发生连续可靠的并且不是重放的消息具有相同的时间戳。在这种实施例中,接收者可以被配置为接受这种消息。慢递增时间戳的优点是消息中的时间戳信息可以使用相对较少的位传送。

表示为二进制变量的完整时间戳可能需要至少4个字节的空间。一个字节是八位。典型的散列值需要8个字节。总计,在消息中时间戳和散列值因此可能至少需要12个字节。验证计数器可能包括检查已经将计数器从来自同一发送者的先前消息提前。在接收者已收到来自发送者的具有相同计数器值的消息的情况下,该消息可能会作为重放消息被拒绝。

在设备110在发送时根据预定义方案使用消息格式的情况下,在一些实施例中,总体消息大小可被设定并且不能由设备110修改。在其它实施例中,设备110可以在至少一些程度上修改消息的大小。在保护位序列和/或散列值可以使用较少的位存储在消息中的情况下,可以使用较大比例的消息来传送实际内容,而不是诸如时间戳和散列值的安全信息。即使在设备110可以改变消息大小的情况下,传送更少的位消耗更少的能量并花费比传送更多位更少的时间,从而获得优于传送更多位的优点。

当将现有消息格式重新用于新的用途时,通过使用较少的供保护位序列和/或散列值使用的位,可以使将信息包括在最初未指定的消息格式中变得可能。例如,在消息格式具有不能被删除或替换的内容以及时间戳和散列值的情况下,使用甚至少几个为以供时间戳和/或散列值使用可以创建用于新目的的几个位的空间,诸如例如指示设备110的状态或设备110的位置的状态指示符。

有时,在其基本内容可以在另一个消息中发送的情况下,消息可以保持不发送。例如,如果不是将传感器数据和定位数据周期性地发送到单独的消息中,则可以将传感器数据包括在定位消息中,如果专用传感器数据消息可被省略,则可以获得显著的节能。这可以通过减少定位消息中供保护位序列和/或散列值使用的位数来实现。例如,这种修改在以相同频率或周期需要传感器和定位数据的情况下尤其有用。

在一些实施例中,可以根据关于该消息的安全要求动态地选择分配给散列值的位数。例如,在较低的安全要求适用于特定消息的情况下,可以使用缩短的截短的散列值,从而为消息内容释放一些更多的位。在这些情况下,伪造的散列值意外地是正确的风险稍大一些,然而鉴于安全性要求较低,这可以是可接受的。

在为要发送的消息选择适当的保护位序列之后,当编译在设备110中将用于发送的消息时,保护位序列可被拆分为第一部分和第二部分两部分。第一部分可以对应于保护位序列的一组最高有效位,并且第二部分可以对应于保护位序列的一组最低有效位。因此将第一部分和第二部分连接在一起可以产生完整的原始保护位序列。例如,第二部分可以被包括在消息中的有效载荷部分中。例如,第一部分可以被包括在消息中的报头部分中。第一部分可以被包括在地址字段中,诸如例如发送者地址报头字段,诸如例如蓝牙发送者地址报头字段。

设备110可以进一步被配置为加密第一部分,并且同样将保护位序列的第一部分的加密版本包括在消息中。因此消息可以包括加密的第一部分、未加密的第一部分,以及第二部分。对于后续消息,保护位序列被提前,例如递增。由于提前首先影响最低有效位,所以第一部分不会立即受到提前的影响,但最终第二部分将循环并使第一部分改变,从而有效地改变实施例中的消息中的发送者地址,其中第一部分被在存储在消息中发送者地址字段中。

接收者可以在其中存储或以其它方式访问不同发送者(诸如设备110)的一组密钥。一旦接收到来自发送者的消息,接收者可尝试首先采用密钥的第一密钥来解密加密的第一部分,并将因此获得的解密的第一部分与消息中的未加密的第一部分进行比较。在这些第一部分匹配,即它们是相同的位序列的情况下,发送者使用第一密钥来加密第一部分,并且发送者是与第一密钥相关联的节点。换句话说,接收者可以因此创建发送者的标识。另一方面,在第一部分不匹配的情况下,接收者可以采用密钥的第二密钥解密加密的第一部分,并且重新执行比较等,直到从密钥中找到解密加密的第一部分以使得其与消息中的第一部分的未加密版本匹配的密钥。因此可以创建发送者的标识。可替代地解密所加密的第一部分,接收者可以被配置为通过对未加密的第一部分加密来搜索正确的密钥。

一旦创建了发送者的标识,通过观察第一部分和/或加密的第一部分与以前相同来处理后续消息。在接收者由于保护位序列的提前而确定第一部分将改变的情况下,由于接收者已经知道正确的密钥并且可以预测未加密的第一部分,所以接收者可以预导出后续加密的第一部分。预导出可以包括将第一部分提前一个,并且然后采用与发送者相关联的密钥来对它加密。

在一些实施例中,接收者可确定它至少暂时具有空闲的处理能力。响应于确定空闲的处理能力,接收者可对至少一个发送者以及可选地对所有发送者(接收者最近从该发送者接收到至少一个消息或接收者与该发送者处于有效通信)预测下一个加密的第一部分。在单个接收者例如通过接收来自发送者的消息而与多个发送者通信时,预测加密的第一部分可能是特别有利的。

在验证或认证失败的情况下,例如响应于由接收者导出的散列值不匹配消息中的散列值或截短的散列值,可以由接收者向发送者发送响应消息,该响应消息包括根据接收者的时钟的时间的指示。然后,发送者可以将其时间设定为响应消息中指示的时间以对齐时钟,或者如果发送者具有主时间,则向接收者发送主时间的指示,从而对齐时钟。用于对齐时钟的消息可以在没有单独的时间戳的情况下发送。例如,用于对齐时钟的消息可以包括关于该消息的预期接收者的指示,该指示可以包括节点标识。这些消息可以被加密、签名和/或设置有来自内容的散列值,以防止基于时钟对齐消息收发的攻击。

通常,当首先开始通信时,随机数可以用作计数器中的起始点。这可能增加解决方案的密码鲁棒性。

例如,如果小偷可以通过当一件昂贵设备在医院病房中明显使用时记录设备来确定附属于该设备的资产标签的蓝牙ID,则小偷可以制作确定设备是否位于特定的储藏室内的扫描仪,而不必打开门,这使得窃取装备变得更容易。因此,可以诸如例如使用在此所述的方法保护发送者的标识。

图2示出根据本发明的至少一些实施例的消息格式。该格式是蓝牙通告数据包200的格式。通告数据包200被细分为前导码202、同步字204、协议数据单元、PDU 206和循环冗余校验CRC 208。例如,前导码长度可以是8位、同步字32位和CRC24位。

例如,PDU 206可以细分为16位的报头210和有效载荷字段212。报头210例如可以包括蓝牙通告数据包报头类型,诸如ADV_NONCONN_IND。有效载荷字段212可以依次细分为对应于48位的通告设备的蓝牙地址的AdvA字段214和可变长度的通告数据结构216。例如,蓝牙地址214可以包括例如24位的散列字段218,例如22位的随机的prand字段220以及这两个位的字段“10”222。在数据结构216中包括的可以是字段224,存储保护位序列的第二部分。例如,保护位序列的第一部分可以至少部分地存储在prand字段220中,并且例如可以将第一部分的加密版本存储在散列字段218中。

当散列值被包括在消息中时,可以省略单独的校验和字段208,因为可以使用散列检查来揭示在传输期间发生的位错误,换句话说,散列可以有效地充当校验和。在一些实施例中,校验和字段208保留在消息中,但省略了另一校验和,而是至少部分地依赖于散列值。例如,校验和字段208可能需要符合通信标准。散列值可以基于设备的密钥和消息内容(包括设备地址)来计算。这意味着整个保护位序列,最低有效部分和最高有效部分二者都可以包括在散列计算中。散列值或截短的散列值可以在消息中被包括在合适位置中,该位置不需要是在规范中明确定义为散列值字段的字段。而是,散列值或截短的散列值可以例如与其它信息一起在有效载荷字段中。

代替使用计数器,可以使用时间戳作为保护位序列。时间戳可以包括4个字节,例如32位。例如,时间戳可以表示为UNIX时间,自1970年1月以来的秒数。在该情况下,时间戳的22个最高有效位可被存储在设备地址中,并且10位被存储在消息有效载荷中。使用该方案,在每秒发送一条消息的情况中,设备地址每17分钟改变一次。在该方案中,两个相继的消息可能会得到相同的时间戳,所以接收者同样必须接受具有与来自同一发送者的最高接收的时间戳相同的时间戳的消息,至少直到与挂钟时间的差异变得太大为止。

对于其中保护位序列是计数器的示例,假定发送者的当前计数器值是12345。在二进制中,即11000000111001。假定将10位分配到计数器的最低有效部分。计数器值的10个最低有效位在二进制中是0000111001。由于被用作设备地址中的随机部分的最高有效部分是1100,所以在设备地址中的22位随机部分是0000000000000000001100。发送者将计数器的最低有效部分(保护位序列的第二部分)0000111001,以及至少从设备地址中计算出的散列值包括到消息有效载荷中,该消息内容包括计数器的最低有效部分和设备的密钥。如果在消息中存在总共10个字节,即80位,则对于计数器使用10位,这意味着70位可以用于可能被截短的散列值。这将会比最小8个字节(即64位)多6位,这会带来碰撞可能性的显著降低。

消息的接收者然后可以检查设备地址是否在已知地址之中。如果设备地址是在已知地址中,则接收器如上所述查找相关的密钥。如果设备地址不在已知地址中,则接收者会尝试知道的每个密钥来加密设备地址的随机部分,并检查结果是否与设备地址的散列部分匹配。如果匹配,则发送者是与该密钥相关联的发送者。然后,接收者通过连接作为设备地址的随机部分的最高有效部分0000000000000000001100与作为消息主体中的计数器的最低有效部分0000111001来重构计数器,获得作为十进制的12345的00000000000000000011000000111001。

接收者然后可以使用至少设备地址、包括计数器的最低有效部分的消息内容以及该发送者的存储的共享秘密,以与发送者相同的方式计算散列值,并且将结果与消息中的散列值进行比较。由于用于计算散列的所有值都相同,因此结果匹配,并且消息被认证。

接收者同样可以检查整个计数器,即设备地址中的最高有效部分和有效载荷中最低有效部分的连接,严格地大于从同一发送者接收的最后保存的计数器值,可能允许如前所述进行翻滚。如果不是,则该消息是重放或重复,并被拒绝。如果是,则接受该消息,并将消息中的计数器值保存为该发送者的新计数器值。

图3示出能够支持本发明的至少一些实施例的示例装置。示出设备300,其可以包括例如设备110或图1的接收者。设备300中包括的是处理器310,其可以包括例如单核或多核处理器,其中单核处理器包括一个处理核并且多核处理器包括一个以上的处理核。处理器310可以包括一个以上的处理器。处理核可以包括例如由ARM Holdings制造的Cortex-A8处理核或由Advanced Micro Devices Corporation制造的压路机(Steamroller)处理核。处理器310可以包括至少一个高通骁龙和/或因特尔Atom处理器。处理器310可以包括至少一个专用集成电路ASIC。处理器310可以包括至少一个现场可编程门阵列FPGA。处理器310可以是用于执行设备300中的方法步骤的装置。处理器310可以至少部分地由计算机指令配置以执行动作。

设备300可以包括存储器320。存储器320可以包括随机存取存储器和/或永久存储器。存储器320可以包括至少一个RAM芯片。例如,存储器320可以包括固态、磁性、光学和/或全息存储器。存储器320可以至少部分地可由处理器310访问。存储器320可以至少部分地被包括在处理器310中。存储器320可以是用于存储信息的装置。存储器320可以包括处理器310被配置为执行的计算机指令。当配置为使处理器310执行某些动作的计算机指令被存储在存储器320中并且设备300总体上被配置为在处理器310的指导下使用来自存储器320的计算机指令运行时,处理器310和/或其至少一个处理核可被认为被配置为执行所述某些动作。存储器320可以至少部分地被包括在处理器310中。存储器320可以至少部分地在设备300的外部,但是可以被设备300访问。

设备300可以包括发射器330。设备300可以包括接收器340。发射器330和接收器340分别可以被配置为根据至少一个蜂窝或非蜂窝标准发送和接收信息。发射器330可以包括一个以上的发射器。接收器340可以包括一个以上的接收器。发射器330和/或接收器340可以例如被配置为根据全球移动通信系统GSM、宽带码分多址WCDMA、长期演进LTE、IS-95、无线局域网WLAN、以太网和/或全球微波接入互操作性WiMAX等标准来操作。

设备300可以包括近场通信NFC收发器350。NFC收发器350可以支持至少一种NFC技术,诸如NFC、蓝牙、Wibree或类似技术。

设备300可以包括用户界面UI 360。UI 360可以包括显示器、键盘、触摸屏、被布置成通过使设备300振动来向用户发信号的振动器、扬声器和麦克风中的至少一个。例如,用户可以能够经由UI 360来操作设备300,例如打开门,接受传入的电话呼叫,发起电话呼叫或视频呼叫,浏览互联网,管理存储在存储器320中或经由发射器330和接收器340或经由NFC收发器350存储在云上的数字文件,和/或玩游戏。

设备300可以包括或被配置为接受用户标识模块370。用户标识模块370可以包括例如可安装在设备300中的用户标识模块SIM卡。用户标识模块370可以包括识别设备300的用户的订阅的信息。用户标识模块370可以包括可用于验证设备300的用户的标识和/或有助于对传送的信息进行加密以及对经由设备300实现的通信的设备300的用户的计费的密码信息。

处理器310可以配备有发射器,该发射器被布置为经由设备300内部的电引线向在设备300中包括的其它设备输出来自处理器310的信息。这种发射器可以包括串行总线发射器,该串行总线发射器例如被布置为经由至少一个电引线向存储在其中的存储器320输出信息。作为对串行总线的替代,发射器可以包括并行总线发射器。类似地,处理器310可以包括接收器,该接收器被布置为经由设备300内部的电引线从设备300中包括的其它设备接收处理器310中的信息。该接收器可以包括串行总线接收器,该串行总线接收器例如被配置为经由至少一个电引线从接收器340接收用于在处理器310中处理的信息。作为对串行总线的替代,接收器可以包括并行总线接收器。

设备300可以包括图3中未示出的其它设备。例如,在设备300包括智能电话的情况下,设备300可以包括至少一个数字相机。一些设备300可以包括背向相机和前向相机,其中背向相机可以旨在用于数字照相并且前向相机用于视频电话。设备300可以包括被布置为至少部分地认证设备300的用户的指纹传感器。在一些实施例中,设备300缺少上述的至少一个设备。例如,一些设备300可能缺少NFC收发器350和/或用户标识模块370。

处理器310、存储器320、发射器330、接收器340、NFC收发器350、UI 360和/或用户标识模块370可以以多种不同方式通过设备300内部的电引线互连。例如,前述设备中的每一个可以分别连接到设备300内部的主总线,以允许设备交换信息。然而,如本领域技术人员将理解的,这仅仅是一个示例,并且取决于实施例,在不脱离本发明的范围的情况下,可以选择互连上述设备中的至少两个设备的各种方式。

图4示出根据本发明的至少一些实施例的信令。在竖直轴上布置有设备110、接收器150和装置4XX。设备110和接收器150可以对应于与图1的系统中相同的结构。装置4XX可以是至少部分地由接收器150控制的装置。例如,装置4XX可以包括电子锁定门或工业过程控制设备,其被布置为至少部分地基于从接收者150接收的方向来操作。

阶段410包括从设备110向接收者150发送消息。该消息可以经由适当的有线或无线介质(诸如例如,通用串行端口USB、电缆或蓝牙连接)来传送。该消息可以包括截短的时间戳和/或截短的散列值,如上所述。

在阶段420中,接收者150验证阶段410中接收的消息。阶段420中的验证可以包括确定如上所述已经发送消息的设备110的标识,并且检查保护位序列与紧接在前的保护位序列(也就是说,来自设备110的消息序列中的设备110的消息)一致。在保护位序列小于或等于紧接在前的保护位序列的情况下,接收者150可以拒绝该消息。该验证可以进一步从消息内容和与设备110共享的秘密重新导出散列值。然后,可以检查重新导出的散列值是否与在接收消息中包括的散列值或截短的散列值一致。在散列被成功验证的情况下,接收者150可能充分相信该消息是可靠地来自设备110的并且不是被重放。

响应于成功的验证,接收者150可以在阶段430中指示装置4XX执行动作,该动作可以是在阶段410的消息中请求的设备110的动作。响应地,在阶段440中,装置4XX执行动作。

在阶段450中,设备110向接收者150发送第二消息。消息可以具有与在阶段410中发送的消息相似的内容字段。在发送阶段450的消息时,设备110的时钟相对于接收者150中的时钟已经漂移,因此当在接收者150中验证消息时,与从接收者150可用的时钟开始的时间相比,重构的保护位序列(在该示例中是时间戳)可能会失败。

响应于接收者150中的验证失败,可以在阶段460中将消息分派回设备110,该消息包括根据接收者150的时钟的当前时间的指示。接收者150的时间在阶段470中被设定为设备110的当前时间,从而将设备110的时钟与接收者150的时钟对齐。

图5是示出根据本发明的至少一些实施例的第一方法的第一流程图。所示方法的阶段可以例如在接收者设备中执行,或者在被配置为当植入控制设备中时控制接收者设备的功能的控制设备中执行。

阶段510包括从在装置中接收的消息中包括的信息中编译保护位序列,该保护位序列包括第一部分和第二部分。阶段520包括基于识别将第一部分解密成消息中包括的明文位序列的密钥来识别消息的发送者。第一部分可以采用加密的形式存在于消息中的与对应于解密的第一部分的明文位序列不同的数据字段中。阶段530包括验证保护位序列相对于来自同一发送者的先前消息中的保护位序列已经提前。

图6是示出根据本发明的至少一些实施例的第二方法的第二流程图。所示方法的阶段可以在例如发送者设备中执行,或者在被配置为当植入其中时控制接收者设备的功能的控制设备中执行。

某些优点可以通过本发明的各种实施例提供。例如,可以减少用于重放保护的消息所需的空间量,同时启用消息发送者信息的匿名化。匿名化能够符合更严格的隐私保护要求。节省的空间可以用于定位消息以增加完整性保护散列的强度,和/或将传感器数据存储在定位消息中,这减少了需要发送的消息的数量,并因此降低了能量消耗并在设备由电池供电的情况下延长了电池寿命。节省的空间可以用于增加消息中定位数据的长度,这可以增加定位性能。使用本发明的一些实施例可以使我们能够在消息完整性保护和认证鲁棒性、电池寿命和定位性能之间做出良好的折衷。

本发明的某些实施例的另一优点是可以使得匿名设备地址符合蓝牙规范,因此可以由符合标准的蓝牙设备来处理它们。这可以是有用的,因为如果设置有设备的密钥和标识,则允许第三方系统识别发送者标识。

应该理解,所公开的本发明的实施例不限于在此所公开的特定结构、工艺步骤或材料,而是如本领域普通技术人员将认识到的那样扩展到其等同物。同样应该理解的是,在此利用的术语仅用于描述特定实施例的目的,而不旨在进行限制。

整个说明书中对一个实施例或实施例的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个位置出现的短语“在一个实施例中”或“在实施例中”并不必须指示相同的实施例。在使用诸如例如约或基本上的术语对数值进行参考时,同样公开了确切的数值。

如在此所使用的,为了方便起见,可以在共同列表中呈现多个项目、结构元素、组成元素和/或材料。然而,这些列表应该被解释为列表中的每个成员都被单独标识为独立且唯一的成员。因此,该表的任何成员都不应该被解释为事实上等同于同一表中任何其它成员的事实上的等同物,而仅仅基于它们在共同分组中的陈述,而没有相反的指示。另外,本发明的各种实施例和示例可以在此与其各种组件的替代物一起被引用。应该理解的是,该实施例、示例和替代方案不应被解释为彼此的事实上的等同物,而是被认为是本发明的单独和自主的表示。

此外,所描述的特征、结构或特性可以以任何合适的方式在一个或多个实施例中组合。在以下描述中,提供了许多具体细节,诸如长度、宽度、形状等的示例,以提供对本发明实施例的透彻理解。然而,相关领域的技术人员将认识到,本发明可以在没有一个或多个具体细节的情况下或者利用其它方法、组件、材料等来实施。在其它情况下,公知的结构、材料或操作未被示出或详细描述以避免模糊本发明的各个方面。

虽然前面的示例是在一个或多个特定应用中说明本发明的原理,但对于本领域的普通技术人员来说显而易见的是,可以在形式、用法和细节的实施方式上进行许多修改,而无需创造性能力的锻炼,并且不偏离本发明的原理和概念。因此,除了下面提出的权利要求外,不意图限制本发明。

在本文件中使用“包含”和“包括”的动词作为开放限制,既不排除也不要求也存在未叙述的特征。除非另有明确说明,否则从属权利要求中列举的特征可以相互自由组合。此外,应该理解,贯穿本文使用“一”或“一个”(即,单数形式)并不排除多个。

工业适用性

本发明的至少一些实施例在消息认证中找到工业应用。

缩略词列表

AAA 定义

BTLE 蓝牙低功耗

IS-95 临时标准95

LTE 长期演进

PDU 协议数据单元

SHA-1 安全散列算法1

USB 通用串行端口

WiMAX 全球微波接入互操作性

WLAN 无线局域网

WCDMA 宽带码分多址

参考符号列表

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