CN106506440B - 用于验证数据完整性的方法 - Google Patents

用于验证数据完整性的方法 Download PDF

Info

Publication number
CN106506440B
CN106506440B CN201610807668.6A CN201610807668A CN106506440B CN 106506440 B CN106506440 B CN 106506440B CN 201610807668 A CN201610807668 A CN 201610807668A CN 106506440 B CN106506440 B CN 106506440B
Authority
CN
China
Prior art keywords
data
manifest
packets
message
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610807668.6A
Other languages
English (en)
Other versions
CN106506440A (zh
Inventor
G·勒夫
B·莫兰
M·梅利亚克
M·佩格欧瑞尼-冈纳德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Arm IP Ltd
Original Assignee
ARM Ltd
Arm IP Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Arm IP Ltd filed Critical ARM Ltd
Publication of CN106506440A publication Critical patent/CN106506440A/zh
Application granted granted Critical
Publication of CN106506440B publication Critical patent/CN106506440B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/102Route integrity, e.g. using trusted paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/33Security of mobile devices; Security of mobile applications using wearable devices, e.g. using a smartwatch or smart-glasses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Power Engineering (AREA)

Abstract

提供了用于验证数据完整性的方法。用于验证由数据处理设备接收到的消息中的数据的完整性的方法,消息包括多个包,该方法包括:在设备处接收来自第一资源的与消息相关联的清单,该清单包括对于多个包的多个组校验值;在设备处接收来自第一资源或不同的资源的消息;产生对于多个包的第一滚动散列进程;从第一滚动散列进程导出对于多个包的沿一个或多个路径的组的组校验值;基于或者响应于导出的组校验值对应于清单中的多个组校验值的确定,验证消息中的数据的完整性。

Description

用于验证数据完整性的方法
技术领域
本技术涉及数据处理设备之间的数据的通信,并且特别地,但不排他地涉及在接收设备处验证这样的数据的完整性。
背景技术
具有处理和通信能力的数据处理设备的数量不断增长,这允许在不同的环境中,作为“物联网”(IoT)的一部分的这样的数据处理设备、对象和云服务之间的交互。
例如,家中的供热***可以从设置在家中的网络(例如,网状网)中的各种温度传感器设备收集信息,并且基于收集的信息控制加热器的激活;工厂污染监测传感器设备可以从工厂网络中的各种化学传感器收集信息,并且基于收集的信息经由因特网安排维护;电冰箱可以从电冰箱内的产品收集信息,并且例如经由用户的智能手表或智能电话,向用户更新存货水平、保质期等;而被配置为用于锁上/解锁门的门锁设备可以与经授权的设备(诸如与其配对的智能电话)通信,以验证经授权的设备,以及当经授权的设备在其范围内时,解锁一扇或多扇门。
在IoT应用中,这样的数据处理设备(下文中被称为“IoT设备”)可能具有最低安全能力,使得它们趋于易受到第三方的攻击。例如,攻击者可以使用欺诈设备,截获去往IoT设备的消息并且修改/伪造信息,随后将已经修改/伪造的信息发送到IoT设备以便损害(compromise)IoT设备。附加地或者替代地,攻击者可以将包括损坏数据的包发送到IoT设备,这可能导致IoT设备的故障。
代替试图截获消息,攻击者可以替代地重复向IoT设备发送经伪造的信息,使得IoT设备会试图处理经伪造的信息,使得IoT设备处的闪存周期被用尽或电池被耗尽,从而IoT设备将不能从真实的设备处接收其它消息。另外,重复地接收具有其中有错误的包的消息的IoT设备可能重复地重新请求来自发送设备的更新信息,从而增加网络上的拥塞。
发明内容
根据第一技术,提供一种用于验证由数据处理设备接收到的消息中的数据的完整性的方法,所述消息包括多个包,所述方法包括:在所述设备处,接收来自第一资源的与所述消息相关联的清单,所述清单包括对于所述多个包的多个组校验值;在所述设备处,接收来自第一资源或不同的资源的消息;产生对于所述多个包的第一滚动散列进程;从第一滚动散列进程导出对于所述多个包的沿一个或多个路径的组的组校验值;基于或者响应于导出的组校验值对应于所述清单中的所述多个组校验值的确定,验证所述消息中的数据的完整性。
根据第二技术,提供一种用于由数据处理设备验证消息的一部分中的数据的完整性的方法,所述部分包括多个包,所述方法包括:在所述设备处,接收来自第一资源的所述部分;产生对于所述多个包的滚动散列进程;从所述滚动散列进程导出对于所述多个包的沿第一路径的组的组校验值;从所述滚动散列进程导出对于所述多个包的沿第二路径的组的组校验值;基于或者响应于导出的对于沿第一路径的组的组校验值中的一个或多个对应于导出的对于沿第二路径的组的组校验值中的一个或多个的确定,验证所述消息的一部分中的数据的完整性。
根据第三技术,提供一种从资源向一个或多个数据处理设备提供数据清单以用于验证与所述清单相关联的消息的多个包中的数据的完整性的方法,所述方法包括:在所述资源处产生第一滚动散列进程;在所述资源处,从第一滚动散列进程导出对于所述多个包的沿一个或多个路径的组的校验值;在所述清单中,提供所述清单中的所述组的校验值;在所述清单中,提供标识所述组的数据;向所述数据处理设备发送所述清单。
附图说明
本技术通过举例的方式在附图中示出,在附图中:
图1示意性地示出与本技术一起使用的IoT设备的示例;
图2示意性地示出在图1的IoT设备的无线通信范围内的多个数据处理设备;
图3a示意性地示出包括1至n个数据包的消息;
图3b示意性地示出前向滚动散列的产生;
图3c示意性地示出图3b的前向滚动散列的两个不同的提取样本阵列;
图3d示意性地示出与图3a的消息相关联的清单文档的示例;
图4a示意性地示出图3a的消息;
图4b示意性地示出后向滚动散列的产生;
图4c示意性地示出两个验证路径;
图5a示意性地示出对于图3a的消息的四种路径;
图5b示意性地更详细示出了图3d的数据清单;
图6示意性地示出发送设备和接收设备之间的交互;
图7a示意性地示出发送设备产生并且向一个或多个接收设备发送数据清单和相关联的消息的示例方法;
图7b示意性地示出接收设备处理数据清单并且验证消息的包的数据完整性的示例方法;以及
图8示意性地示出在概念上以矩阵布置的多个包。
具体实施方式
图1的IoT设备1的电路包括耦合到贮存元件4的处理元件2、通信电路6和输入/输出(I/O)电路8。
处理元件2可以包括被设置为通过执行由程序的指令指定的算术、逻辑、控制和输入/输出(I/O)操作来执行所述指令的处理电路2。
贮存元件4可以包括,例如,具有易失性(V)存储器(例如,RAM)和非易失性(NV)存储器5(例如,闪存或ROM)的存储器电路4。存储器电路4可以存储由处理元件2执行的程序以及数据(诸如证书)。这样的证书可以包括密钥材料,例如一个或多个密码密钥,所述一个或多个密码密钥对应于在与其通信的远程设备上提供的一个或多个密码密钥,以用于认证/加密在它们之间发送的通信。
例如,在对称密钥加密方式中,密钥材料可以包括用于加密/解密消息的相同密钥,而在非对称密钥加密方式(例如,公钥加密方式)中,密钥材料可以包括一个或多个公钥/私钥对,从而,具有私钥的设备可以解密使用对应的公钥加密的消息,而具有私钥的设备可以利用私钥对消息进行签名,从而该签名可以被具有对应的公钥的另一个设备验证。
通信电路6可以被设置为与远程设备(未在图1中示出)通信。通信电路6可以使用无线通信7,诸如,例如,无线局域网(例如,WiFi)、短距离通信(诸如射频识别(RFID)、近场通信(NFC))、或在无线传感器网络中使用的通信(诸如ZigBee、线程(Thread)、蓝牙和/或蓝牙低功耗(BLE))。另外,通信电路6可以使用蜂窝网络(诸如3G或4G)。通信电路6还可以使用有线通信(未示出)(诸如光纤或金属电缆)。通信电路6还可以使用两种或多种不同的通信形式,诸如上述示例中的若干个的组合。
输入/输出(I/O)电路8可以包括感测来自周围环境的输入和/或例如使用蜂鸣器或发光二极管(未示出)向用户提供输出的感测电路。IoT设备1可以基于感测到的输入产生操作数据,由此该操作数据可以被存储在存储器电路4中,并且可以被处理器电路2处理。I/O电路8还可以包括允许用户与IoT设备1交互的用户接口(例如,按钮)。另外,IoT设备1可以包括用于向用户传达消息或从用户接收输入的显示器(例如,有机发光二极管(OLED)显示器)。
IoT设备1还包括电源9。虽然可以使用任何适合的电源(例如AC或DC主电源;太阳能、风能等),但是在图1中,该电源是电池(例如,投币锂电池)。
应当想到,取决于IoT设备1的具体功能,IoT设备1可以包括未在这里描述的其他硬件/软件组件。例如,IoT设备1可以是具有嵌入式全球定位***(GPS)以捕获和记录用户的移动并且相应地产生操作数据的健身手环。
图2示意性地示出了在网络10(例如,网状网、星状网等)中相互通信的多个IoT设备1,其中IoT设备1可以使用一种或多种合适的通信协议(诸如BLE、蓝牙、ZigBee)相互通信,并且其中IoT设备1还可以与其他资源通信,其中其他资源可以被设置在网络10中或者可以被设置在不同的网络中(例如,在因特网上)。
在图2中,示出了作为云服务器的资源12和14,其中IoT设备1被布置为与资源12/14通信,以用于交换消息或消息的部分。
云服务器12/14可以,例如,将包括固件更新、应用、文档等的消息20发送到一个或多个IoT设备1。在一些示例中,消息20可被作为广播通信发送到所有IoT设备1,或者可以被例如作为单播/多播通信发送到特定的IoT设备1。此外,整个消息可以包括从不同的服务器12/14发送的一个或多个不同的部分。
虽然在图2中被示出为云服务器,但是在替选的示例中,资源可以包括能够执行下文中描述的技术的任何适合的资源,诸如数据处理设备(例如,智能电话、平板电脑等)。
应当认识到,可以设置没有被具体描述的其他硬件/软件以实现这样的通信。这样的硬件可以包括网关设备、路由器等。
为了证明消息中的数据的完整性,发送设备可以使用合适的变换函数(例如,SHA256、SHA512、CRC8、MD5等)变换整个消息20,以产生整个消息20的散列。
校验值(例如,校验字、校验和)可以从散列被导出,由此消息然后可以和与其联结的导出的校验值一起发送。为了验证接收到的消息中的数据的完整性,接收设备可以使用相同的函数来产生接收到的消息的散列,该散列可以被用作校验值。如果产生的校验值对应于接收到的校验值,则可以得出消息中的数据的完整性没有被损害(例如,数据在发送后不太可能被伪造、破坏或修改)。如果校验值不相匹配,则可以得出数据完整性被损害,由此接收设备可以重新请求传输整个消息。
在一些情况下,如果消息中的数据有效载荷太大以至于不能作为单个消息发送,该消息可以被划分为较小的部分,其中部分可以和与消息的一部分(例如,要最后发送的部分)联结的校验值分开发送。
应当认识到,迄今为止,因为消息的成功伪造将需要攻击者提供能提供期望的校验值的包,增加对于整个消息的校验值的长度可以提升安全性。对于大量的比特,例如,当使用SHA256或SHA512来产生散列时,获得这样的校验值可能难以实现。但是,增加校验值中的比特的数量将导致整体通信(整个消息+校验值)中的数据大小的增加,这可能影响网络中(例如,在具有带宽限制的网络中)的通信的传输速度/数量。
在验证消息中的数据的完整性前,接收设备必须等到接收完整个消息,因为只有当接收到整个消息时,接收设备才可以产生对应的校验值。
另外,这样的功能可能会增加网络中的拥塞,其中,当多个设备接收消息时,基本上同时进行数据完整性校验、识别错误以及重新请求消息传输,然后资源将基本上同时接收到多个重新请求,并且可能变得过载并且发生故障。此外,网络可能无法基本上同时处理大量的重新请求并且可能也发生故障。
图3a示意性地示出了消息20,该消息20包括(n)个数据包22。应当认识到,消息20可以是固件(例如,固件更新)、程序指令、文本文件、图像文件、声音文件等,或任何其他形式的数据(例如,传感器数据),其中包22包括比特形式的数据(图3a中未示出);图3b示意性地示出了滚动摘要/散列28(下文中被称为“滚动散列”)的产生;图3c示意性地示出了被布置为阵列33的相应的滚动散列28的提取样本,而图3d示意性地示出了与消息20相关联的数据清单30(下文中被称为“清单”)的示例,其中清单包括与相关联的消息有关的数据。清单30可以由发送设备产生。
在本示例中,使用合适的函数对消息20的每一个包22进行变换以产生与其对应的散列26。可以使用合适的变换函数(例如,SHA256、SHA512、CRC8、MD5等)来进行这样的变换。相应的包22的散列26在下文中被称为“静态散列”,其中特定的静态散列26的值(S1、S2、S3-Sn)取决于用于产生该特定静态散列26的包22的特征。
此外,产生了滚动散列28的进程或链,其中进程中的特定的滚动散列28的值取决于所有之前的包的滚动散列的特性。
在本示例中,在从第一包(包1)至最后包(包n)的概念性的前向方向上的连续包(下文中被称为“前向连续包”)的静态散列被用来产生滚动散列28的进程(下文中被称为“前向滚动散列”)。
此外,秘密数据29可以被选择性地用来有助于滚动散列的产生,其中,例如,秘密数据29可以是随机数或伪随机数(例如,随机数(nonce))或密钥材料。
在图3b的示意性示例中,第一滚动散列(R1)对应于第一包的静态散列(S1)。
第二滚动散列(R2)对应于静态散列(S2)、滚动散列(R1)和秘密数据29的组合;而第三滚动散列(R3)对应于静态散列(S3)和滚动散列(R2)的组合。相似地,最终滚动散列(Rn)对应于静态散列(Sn)和滚动散列(Rn-1)的组合。在示例中,滚动散列(Rn-1)是累积的,从而最终滚动散列(Rn)优选地对应于整个消息20的散列。
在图3b中,秘密数据29被描绘为与R1和S1组合以产生R2。但是,秘密数据29可以被用来直接或间接产生任何滚动散列。例如,当被用来直接产生滚动散列时,秘密数据29可以与滚动散列组合以产生随后的滚动散列。
当被用来间接产生滚动散列时,秘密数据29可以与一个或多个包和/或一个或多个静态散列(当其存在时)组合,组合的结果被用来产生对于包的滚动散列。
虽然静态散列可以通过增加攻击者伪造包以获得特定的散列的难度来提高安全性,但是产生静态散列不是必需的,并且在替代性的示例中,对于特定包的滚动散列可以对应于该包与先前包的滚动散列的组合。
应当认识到,对于特定包的滚动散列对应于该包或其静态散列与来自先前包的滚动散列的组合。此外,进程中的滚动散列还可以取决于秘密数据29或其他合适数据的值。组合静态散列、包、一个或多个滚动散列、秘密数据29和/或任何其他数据可以包含联结,其中对于进程的下一个滚动散列可以由作为结果的联结的合适变换函数产生。
在产生对于每一个包22的前向滚动散列28的情况下,可以将消息20从服务器12/14发送到IoT设备1(如图2中所示)。
在一些示例中,前向滚动散列28可以作为校验值被包括在清单30中的散列数据34中(如图3d中所示)。静态散列26(S1-Sn)也可以作为校验值被包括在散列数据34中。
清单30可以选择性地由发送设备使用适当的密钥材料来签名,以提供可验证的签名32以证明清单30的源的真实性。应当认识到,接收设备可以包括用于验证签名的对应的密钥材料。如上所述,这样的密钥材料可以包括对称的或非对称的密码密钥对。
清单30还可以包括与消息相关的其他数据(诸如函数数据31),以通知接收设备关于哪个变换函数和/或哪个协议应当被用于产生静态散列和/或滚动散列(例如,SHA256、MD5、CRC8)等。此外,当秘密数据被用于产生前向滚动散列时,秘密协议数据35可以被包括在清单30中,接收设备可以从该秘密协议数据35导出秘密数据。秘密协议数据35还可以提供接收设备为了产生正确的校验值而需要使用秘密数据的适当操作的细节。
秘密协议数据35可以被发送设备例如使用适当的密钥材料(例如,接收设备的公钥或对称密钥)来加密,其中该密钥材料可以例如在制造时或在设备之间的配对操作期间,在发送设备和接收设备上提供。
清单还可以包括与资源相关的数据,IoT设备应当接受来自该资源的消息/包,或IoT设备应该在适当时重新请求来自该资源的消息。因此,如果发送设备被损害,清单可以通知IoT设备关于消息的不同来源。
例如,可以使用不同的通信信道,或使用不同的通信协议,将清单30与相关联的消息分离地发送作为离散的通信。附加地或者替代地,清单可以作为相关联的消息的一部分被发送,例如其中清单被联结到消息。替代地,清单可以在相关联的消息之前或之后被发送。
在接收到消息和清单的情况下,接收设备可以使用清单中详细描述的散列函数产生静态散列和滚动散列,并且将结果用作校验值。
在一些情况下,如果消息的尺寸太大以至于不能在单个通信中传输,该消息可以被分成较小的消息部分,每个消息部分包括一个或多个包。
因为清单30提供了对于消息中的每个单独包的前向滚动散列值,接收设备不需要等待整个消息的接收,并且一旦在接收设备处接收到清单30和消息的第一部分,接收设备就可以开始产生滚动散列。
因此,如果在接收到整个消息前识别出包中的数据完整性的问题,接收设备不需要等待整个消息,并且可以开始验证已经在接收设备处接收到的包中的数据的完整性。此外,因为接收设备可以在接收到整个消息前的不同时间识别出数据完整性的错误,接收设备可以在不同时间重新请求来自发送设备或其他资源的包的发送。这样的功能可以减少发送设备/其他资源上的处理负担,因为可能不在基本上相同的时间产生并且从接收设备发送重新请求。
应当认识到,清单30的尺寸可以与散列数据34中的校验值的尺寸成比例。例如,如果每个校验值包括256比特的滚动散列,则对于具有20个包的消息,对应的清单将包括至少5120比特(不包括静态散列的校验值,或其中的任何其他数据)。如上所述,IoT设备趋于具有有限的处理能力和存储容量,并且,虽然这样的校验值可以提供防止伪造的增加的安全性,但是相对大的消息或清单可能不适合于IoT设备。
因此,减小包括在清单中的散列数据34的尺寸可以是有益的。
一种用于减小包括在清单中的散列数据34的尺寸的技术可以是从滚动散列提取比特样本,由此从相应的前向滚动散列28产生提取样本(E)。如图3b和图3c中所示,任何数量的比特可以从每一个相应的前行滚动散列28获得并且被用作对于每个包的提取样本。
图3c示意性地示出了来自滚动散列28的被布置为阵列33的提取样本,其中对于第一提取样本(E12),提取相应的滚动散列28的第一比特和第二比特作为校验值。
类似地,对于第二提取样本(E45),提取相应的前向滚动散列28的第四比特和第五比特,而对于第三提取样本(E8-11),提取相应的前向滚动散列28的比特8、9、10和11作为校验值。提取样本可以作为校验值被包括在散列数据34中。此外,标识滚动散列数据中用来提供提取样本的比特的数据也可以被包括在清单中,例如作为散列数据34的一部分。
与包括完整滚动散列作为校验值的散列数据相比,包括相应的滚动散列的提取样本(E)或该提取样本的阵列作为校验值的散列数据34减小了尺寸。因此,相对应的清单的尺寸也将减小。
作为示例,对于具有20个包的消息,并且按照每滚动散列获取2比特的提取样本(E)作为对于每个包的校验值,相对应的清单将包括至少40比特用于校验值(不包括静态散列的校验值,或其中的任何其他数据(例如,标识该比特的数据))。在替代性的示例中,提取样本可以包括从包、静态散列和/或秘密数据中提取的样本。
如上所述,滚动散列和/或提取样本(E)可被用作用于验证数据的完整性的校验值。
此外,与单独使用提取样本(E)相比,组合静态散列和提取样本(E)作为校验值还可以提供改进的数据完整性验证。在例示的示例中,消息的相应包的提取样本(E)和静态散列被用作对于消息的相应包的16比特校验值,其中校验值的14比特由静态散列比特提供并且校验值的2比特由滚动散列的提取样本(E)提供。在本例示的示例中,静态散列中存在无声故障(silent failure)的概率为1:16384(即,214);与滚动散列中存在无声故障的概率1:4(即,22)组合,由此提供对于第一包的校验值的无声故障的概率1:65536(即,216)。对于一些通信协议,该概率可能不能提供足够的安全性。然而,由于如果先前的包发生无声故障,对于接下来的包的校验值也具有1:4(22)的故障概率,则这提供了第一包中的无声故障的组合概率为1:262144(即,218)。应当认识到,由于滚动散列,无声故障的概率累积并且对于消息的每个相继的包增加。无声故障可以包括其中攻击者通过伪造/猜测静态散列值和/或滚动散列值而获得正确的值的故障。
应当认识到,接收消息的一个或多个包和包括具有与包有关的校验值的散列数据的清单的设备允许接收设备在不需要等待接收到整个消息的情况下进行一个或多个包的数据完整性的验证。此外,在数据完整性验证期间识别出包中的错误的情况下,接收设备可以优选地重新请求与故障最接近的包并且验证响应于该重新请求而接收的任何包的数据完整性。因此,由于不需要设备一次重新请求整个消息,这样的功能可以提供网络上传输的数据的减少。
如果错误在重新请求的包中始终存在,该设备可以从最近校验的包开始,朝向最早校验的包而向后地工作,重新请求包直至接收到无错误的包。
提取样本可以是对于特定应用所需要的任何合适数量的比特。
此外,在一些示例中,清单中可能不包括散列函数和/或用于标识用来提供提取样本的滚动散列数据的比特的数据,并且接收设备可以被提供有标准或预设信息以允许接收设备产生正确的对于一个或多个包的散列函数和/或提取样本。例如,可以使接收设备和发送设备相互同步(例如,通过UNIX时钟),从而将使用在特定时间有效的标准或预设消息来产生特定的散列函数/提取样本。
图4a示意性地示出了消息20(图3a中也示出了);图4b示意性地示出由适当的设备产生滚动散列38;而图4c示意性地示出两个验证路径/路线(下文中被称为“路径”)。图4中的两个路径被分别描述为“路径1”和“路径2”。将根据需要使用上面所使用的相同编号。
图4b描述了例如由服务器12/14中的一个或多个或图2的IoT设备1产生滚动散列38,其中滚动散列38或来自滚动散列38的提取可以为了验证在它们之间交换的消息中的数据的完整性的目的而被用作校验值。
在本示例中,如先前所述,消息20的每一个包22被变换以产生静态散列26。
如上所述,产生了滚动散列38的进程,其中进程中的特定滚动散列38的值取决于用于产生该特定静态散列的所有先前包的特征。
在本示例中,沿从消息20的第一包(包n)到最后包(包1)的概念性的后向方向上的连续包(下文中被称为“后向连续包”)被用于产生滚动散列38的进程(下文中被称为“后向滚动散列”)。应当认识到,“第一”和“最后”不应被限制为消息的实际的“第一”包或“最后”包。
如上所述,可以选择性地使用秘密数据29来帮助后向滚动散列38。
在本示例中,后向滚动散列38的第一滚动散列(Rn)对应于第一包(n)的静态散列(Sn)。然而,如上所述,在一些示例中,可以使用不同的变换函数来产生静态散列和滚动散列。图4b中示出的第二滚动散列(Rn-1)对应于静态散列(Sn-1)与滚动散列(Rn)和秘密数据29的组合;而第三滚动散列(Rn-2)对应于静态散列(Sn-2)和滚动散列(Rn-1)的组合。相似地,最终滚动散列(R1)对应于静态散列(S1)和滚动散列(R2)的组合。在一些示例中,后向滚动散列38的最终滚动散列(R1)对应于整个消息20的散列。
如上所述,各个后向滚动散列可以作为校验值被包括在散列数据34中。附加地或者替代地,相应后向滚动散列(Rn–R1)的提取样本(E)可以被提取并作为校验值被包括在散列数据中。
在产生对于每个包22的后向滚动散列Rn–R1的情况下,可以将消息20从服务器传送到IoT设备(如图2中所示),其中接收设备可以产生与后向滚动散列的校验值对应的校验值,以用于验证消息的数据完整性。
虽然上述示例通常描述了使用前向滚动散列或后向滚动散列来验证消息中的数据的完整性,下列示例描述了使用前向滚动散列和后向滚动散列两者(或来自其中的提取样本)来验证消息中的数据的完整性。
图4c示意性地示出对于消息20的两个验证路径或路线,其中路径或路线(下文中被称为“路径”)被视为包括消息的一个或多个连续的组,而组包括一个或多个连续的包。跨度被视为组中的包的数量。沿特定路径的组不需要具有相同的跨度。此外,特定组的对于组的校验值(例如,滚动散列(或提取样本)、静态散列)被认为是对于该特定组的最终包产生的校验值。
在图4c的例示示例中,第一路径(被描述为‘路径1’)包括概念上沿消息20的从包1到包n的前向方向上的消息20的连续包22(在下文中被称为“前向连续包”)的连续组。路径1中的每个组包括一个包的跨度。
此外,第二路径(被描述为‘路径2’)包括沿消息20的从包n到包1的概念上的后向方向上的消息20的包22(在下文中被称为“后向连续包”)的连续组。路径2中的每个组也包括一个包的跨度。如上所述,每个前向连续包和后向连续包具有相应的校验值。
在图4c的例示示例中,提取样本40是从沿路径1的组中的包22的滚动散列获得的,而提取样本42是从沿路径2的组中的包22的滚动散列获得的。这样的提取样本可以随后被用作校验值并且被包括在与消息20相关联的清单中的散列数据内。
当接收到消息和相关联的清单的情况下,接收设备可以产生对于消息的每个包的前向滚动散列和后向滚动散列,并且将提取样本作为对于清单中标识的相应组的校验值。然后,接收设备可以比较该接收设备产生的校验值和在清单中的散列数据中指定的那些校验值。
应当认识到,对于本示例,虽然攻击者可能通过对每一个连续的2比特提取样本进行2比特猜测而成功地伪造路径1中的组的包,但是伪造路径2中的组的包可能更加难以实现,因为接收设备基本上同时地产生并且校验对于路径1和路径2的提取样本,并且因此,攻击者将需要基本上同时地伪造两条路径上的包。
另外,虽然上文描述了两个路径,但是路径的数量不限于两个,并且可以使用任何合适数量的路径。此外,路径不需要跟随组的几何进程,并且路径可以跟随组的伪随机进程。此外,不需要所有路径与每一个包相交,只要每一个包与至少一个路径相交即可。
如图5a的例示示例中示意性所示,描述了对于消息20的四个路径(路径1-4);而图5b示意性地示出了消息20的清单30,其中清单30包括对于相关联的消息20的散列数据34。将根据需要使用上面所使用的相同编号。
在图5a的例示示例中,第一路径‘路径1’包括具有一个包的跨度的组,其中连续组包括消息20的从包1到包n的前向连续包;而第二路径‘路径2’包括具有一个包的跨度的组,其中连续组包括从包n到包1的后向连续包。
此外,第三路径‘路径3’包括具有四个包的跨度的组,其中每个连续组包括前向连续包;而第四路径‘路径4’包括具有七个包的跨度的组,其中每个连续组包括后向连续包。
应当认识到,接收设备可以从不同的资源获得消息20的部分。此外,接收设备可以随机地或伪随机地获取来自不同设备的不同组的包。由此,通过设置不同路径,对于截获这样的包以识别接收设备之前已经获得了哪些包的攻击者而言,可能难以伪造这样的包。
此外,与在相同方向上设置一个或零个路径相比,在相同方向(例如,前向/后向)上设置两个或多个路径使得接收设备能够更早地进行数据完整性验证并且更早地识别包中的错误。
用图5a作为例示示例,如果接收设备接收消息20的包1-11,接收设备可以产生对于沿路径1的所有组的校验值(从包1(路径1;组1)直到并且包括包11(路径1;组11))。此外,接收设备可以产生对于沿路径3的前两个组(即,分别包括包1-4(路径3;组1)和包5-8(路径3;组2)的那些组)的校验值。
此外,因为滚动散列对于在相同方向上的路径是累积的,如果数据完整性没有被损害,则分别对于(路径1;组4和组8)的校验值应该对应于分别对于(路径3;组1和组2)的校验值。如果校验值不对应,则那些组中的一个或多个包可能包括错误。然后,接收设备可以重新请求包括错误的组的包。在一些示例中,接收设备可以重新请求来自与其原始接收包的资源不同的一个或多个资源的包,并且通过这样做,可以例如通过排除处理来识别攻击者。
然而,将看到,接收设备无法在至少接收到包12之前产生对于沿路径1或路径3的任何其它组的校验值。此外,该接收设备无法在接收设备至少接收到包n之前产生对于沿路径2的任何组的校验值,或者该接收设备无法在接收设备至少接收到包n至n-6之前产生对于沿路径4的任何组的校验值。
图5b示意性地示出了对于相关联的消息20的清单30,其中,在本例示示例中,清单30包括与消息20的不同路径(路径1-4)有关的散列数据34。
在本例示示例中,散列数据34包括关于路径(路径1-4)、组、跨度和/或可以由接收设备导出的对于其中相应包的校验值的具体配置的细节。
对于路径1,每个组被示出包括从1至n的连续包,其中跨度(S)为1;而提取样本(E)被视为1比特值(E2)。还提供了对于路径1的校验值(CW)阵列。在本示例中,CW阵列包括由接收设备产生的、对于消息的相应包的滚动散列的提取样本的期望值。
相似地,对于路径2,每个组被示出包括从n至1的连续包,其中连续组之间的跨度(S)为1;而提取样本(E)被视为包括2比特(E12)。还提供了对于路径2的CW阵列。
对于路径3,每个组被示出包括四个包,其中连续组之间的跨度(S)为4个包;而提取样本(E)被示出为包括3比特(E124)。还提供了对于路径3的(CW)阵列。
最后,对于路径4,每个组被示出包括七个包,其中连续组之间的跨度(S)为7个包;而提取样本(E)被示出为包括4比特(E5689)。还提供了对于路径4的CW阵列。
虽然在图5b中被描述为表格阵列,但是散列数据34可以被布置为任何合适的形式,使得该散列数据可以被接收设备处理。例如,散列数据34可以作为明文或作为接收设备可以解释的语言的代码被设置在清单中。
在一些示例中,散列数据34可以包括标识符,接收设备可以使用例如在标识符上设置的标准或预设信息,从标识符确定路径、组、和/或对于相应包的跨度的具体配置。例如,散列数据34可以包括计数器或UNIX值来指示接收设备应该使用哪个标准或预设的具体配置。
如上所述,清单30还可以包括函数数据31,并且当使用秘密数据产生滚动散列时,可以进一步包括秘密协议数据35。此外,清单可以被发送设备密码加密地签名以提供该清单的可验证签名32。
如上所述,清单30还可以包括与资源有关的数据或位置标识符(例如IP地址),IoT设备应该接受来自所述资源的消息/包,IoT设备在适当时应该重新请求来自所述位置标识符的消息。
如上所述,秘密协议数据35可以被发送设备例如使用合适的密钥材料(例如,公钥或对称密钥)来加密。通过使用这样的功能,可以以明文来传输清单30,但是其中清单30可以包括经加密的秘密协议数据35。如果攻击者确实获得/截获了清单,攻击者将不能解密秘密协议数据35(除非也获得了合适的密钥材料),并且因此攻击者将无法导出对产生正确的滚动散列或正确的提取样本所需要的秘密数据。
通过使用这样的加密技术,消息和相关联的清单可以均经由不安全的信道发送到接收设备,由此减少了与提供安全信道(例如SSL)相关联的任何能源或处理开销。截获消息或清单的攻击者将不能解密秘密协议数据,并且因此,将不能导出对产生与清单中的那些校验值对应的校验值所需要的秘密数据。由此,从这样的攻击者接收的任何包将不可能产生与相关联的清单中的那些校验值对应的所有校验值,并且这样的包将导致任何数据完整性校验的失败。
虽然在图3b和图4b中,第一滚动散列R1被描述为对应于第一包的静态散列(S1),但是在一些示例中,可以使用随机数(nonce)作为第一滚动散列R1。通过使用作为随机数(nonce)的R1,在其开始处具有共享包的消息将导致沿散列进程的不同的滚动散列。因此,尽管有共享包,但是滚动散列的进程将是不同的。这样的功能对于包括共享包的不同消息(例如,包括具有共同引导装载程序的固件映像的消息)可能是有用的。
另外,可以在清单中以明文、公共可见地发送这样的随机数(nonce),因为访问了清单并且识别了该随机数的第三方将不能产生滚动散列,因为第三方将不能访问清单中的对产生滚动散列进程所需要的其他数据。
此外,在一些示例中,可以使用与从加密密钥(例如,固件加密密钥)等导出的密钥材料组合的HMAC来产生滚动散列。密钥材料可以被包括在清单中,以允许接收设备产生滚动散列。通过使用这样的功能,潜在的攻击者不可能预测包的修改的结果,并且因此,提高了修改一个或多个包的难度。
图6示意性地示出了发送设备(被描述为服务器12)和接收设备(被描述为IoT设备1)之间的交互示例。应当认识到,发送设备可以是任何合适的资源,而接收设备可以是能够处理数据的任何合适的资源或设备。
在图6中,服务器12向IoT设备1发送50清单。如上所述,清单可以包括诸如散列数据、秘密协议数据或函数数据的信息。然后,IoT设备1可以处理51清单,其中该设备可以例如从清单中的信息导出路径、组、跨度、校验值和/或变换函数。IoT设备1可以验证与清单相关联的任何签名,以确定发送设备的真实性,和/或解密任何经加密的数据(例如,秘密协议数据)以导出对产生滚动散列所需要的秘密数据。
然后,服务器12向接收设备1发送54与清单相关联的消息的一个或多个包。该发送54可以响应于来自IoT设备1的对包的请求53而发生。但是,在涉及多个IoT设备的点对点通信中,这样的请求可能非常多,因此来自IoT设备的请求可能被最小化。因此,可以在发送清单后的一段定义时间段内没有接收到请求的情况下进行发送50。
在接收到包的情况下,通过使用设置在清单中的信息或根据可能被设置在IoT设备1上的标准或预设信息,IoT设备1可以产生56滚动散列和提取样本以导出对于每个组的校验值。
此外,设备可以通过对比所产生的对于组的校验值和在清单中沿一个或多个路径定义的那些校验值,进行数据完整性验证60。
如果对于接收到的包没有识别出错误,如果尚未接收到整个数据,IoT设备1可以请求其他包53,或等待来自服务器12或其他资源的这样的其他包。在接收到这样的包的情况下,IoT设备1可以重复步骤56-60直到接收到整个消息并且其数据完整性被验证。然后,IoT设备可以处理整个消息。例如,如果该消息是固件更新,则IoT设备可以覆写该IoT设备上的现有固件。
然而,如果不能验证数据完整性(例如,组的校验值不匹配),IoT设备1可以发送62对一个或多个组中的被识别为具有错误的包的重新请求。在接收到一个或多个包的情况下,IoT设备1可以重复如上所述的步骤56-60。
附加地或替代地,IoT设备1可以向除服务器12以外的不同资源发送62重新请求,IoT设备1从该不同资源接收原始包。例如,如果IoT设备1持续地从特定资源接收具有错误的包,或如果从特定资源接收的包中的错误的数量大于阈值,可能进行对不同资源的重新请求。附加地或替代地,IoT设备1可以向受信任的资源发出如下告警消息:在从特定资源接收的包中接收到恶意包。
在替代性的示例中,可以在所有包都被接收设备发送之后或在包的发送期间/中间发送50清单。
另外,在一些实例中,除非IoT设备首先接收到清单,否则IoT设备可以不接受来自源的包。在其他示例中,除非源对清单进行签名(例如,利用私钥或使用具有密钥材料(例如,与IoT设备共享的密码密钥)的HMAC进行签名),否则IoT设备可以不接受来自源的包。
图7a示例性地示出了发送设备产生并且将清单和相关联的消息发送到接收设备的方法的示例,而图7b示例性地示出接收设备处理清单并且验证相关联的消息的包的数据完整性的方法的示例。
在步骤100,图7a的方法开始。
在步骤102,发送设备产生清单。如上所述,该清单可以包括对于相关联的消息的散列数据,并且可以如先前所述进一步包括函数数据、秘密协议数据和签名。
在步骤104,发送设备向接收设备发送清单,并且在步骤106发送设备向接收设备发送相关联的消息的包。这样的发送可以作为广播发送来进行,并且可以被多个设备接收。应当认识到,整个消息可以作为单个消息、或作为两个或多个较小的部分被发送。当包中的有效载荷过大以至于不能在单个消息内发送时,可以使用这样的功能。此外,清单和相关联的消息的发送顺序可以变化。例如,清单可以在相关联的消息之前或之后被发送。在一些示例中,可以在与消息基本相同的时间(例如作为相同通信的一部分)发送清单。
在步骤108,图7a的步骤完成。
在步骤110,图7b的步骤开始。
在步骤112,接收设备接收在图7a的步骤104发送的清单,并且在步骤114,接收设备处理该清单,并且导出例如与组/路径/提取样本等有关的散列数据。此外,接收设备识别为产生静态散列和/或前向滚动散列/后向滚动散列所需要的变换函数;验证清单的签名(如果存在签名);和/或导出秘密数据以产生滚动散列(如果存在秘密协议数据)。
在步骤116,接收设备接收与清单相关联的消息的包,并且在步骤118,接收设备验证所有接收到的包的数据完整性。这样的功能使得接收设备能够在接收到整个消息前识别包中的错误。
例如,接收设备可以接收128个包的消息中的前64个包。由此,接收设备可以产生对于接收到的64个包中的每一个包的静态散列、前向滚动散列和提取样本,并且可以产生对于沿不同路径的包的不同组校验值。由此,接收设备于是可以使用由此产生的校验值和清单中的散列数据的校验值来验证这样的组中的数据的完整性。
在一些示例中,接收设备接收清单和消息的顺序可以变化,其中,例如,接收设备在接收清单前接收消息(或消息的一部分)。在一些示例中,可以在基本上相同的时间接收清单和消息(例如作为相同通信的一部分)。
在步骤120,如果在验证数据完整性期间识别出错误,则在步骤122,接收设备可以从发送设备或从其他资源重新请求一个或多个包,并且重复步骤116-120。
在步骤120,如果在验证数据完整性期间没有识别出错误,则在步骤124,接收设备可以确定是否接收到消息的所有包。在步骤126,如果接收设备确定需要其他包,则接收设备可以从发送设备或从其他资源请求其他包,对接收到的任何新包执行步骤116到124。如果在步骤124,接收设备确定接收到要被校验的整个消息,接收设备可以在步骤128处理该消息。例如,如果消息包括固件更新,则接收设备可以利用该更新来更新该接收设备上的固件。
在步骤130,图7b的处理完成。
图8示意性地示出了多个包22,其中包22概念性地布置在矩阵70中。将根据需要使用上面所使用的相同编号。
矩阵70可以由一个或多个不同路径来定义,其中路径在矩阵中的任何方向上延伸。应当认识到,虽然图8中的矩阵70被描述为包括64个包的正方形,但是可以组织这些包使得这些包在概念上被布置为具有1-n个包的任何二维或三维形状(例如,矩形、立方体、五边形、菱形等)。
此外,路径不需要跟随几何进程,并且路径可以跟随伪随机进程。此外,不需要所有路径与每一个包相交,只要每一个包与至少一个路径相交即可。
通过对包进行分组并且定义不同的路径(例如图8中描述的路径1-5),并且提供对于沿特定路径的每个组的校验值、从对于矩阵的相应前向连续包或后向连续包的滚动散列进程导出的校验值,可以例如通过增加攻击者必须伪造的比特/包的数量来提升对于设备之间交换的消息的安全性。
额外地或替代地,与使用例如整个滚动散列作为校验值相比,通过使用滚动散列的提取样本,可以减少对于各个组的校验值的比特尺寸。
此外,如上所述,一些路径可以提高接收设备较早地检测到有错误的包(或伪造的包)的能力。
如上所述,每一个路径可以包括具有不同跨度的组。对于路径1和2,组包括一个包的跨度。路径3和4包括具有8个包的跨度的一个组,并且其他组包括56个包,而路径5包括具有10个包的跨度的第一组和具有18个包的3个后续组。
在一些示例中,包和/或组的尺寸可能取决于所使用的通信协议。例如,对于BLE,最大包有效载荷是20字节。由此,通过将包的尺寸设置为20字节,并且通过设置跨度等于1,滚动散列(或提取样本)可以被提供给使用特定协议的所有包。
在其他的示例中,包尺寸、组尺寸和/或跨度可以变化,使得滚动散列(提取样本)可以被提供给特定协议(例如,BLE/6LoWPan/3G/4G)的所有包。
产生第一滚动散列进程、导出组校验值和/或验证消息中的数据的完整性的步骤可以都在设备处进行。可替代地,这些步骤可以在与该设备通信的一个或多个其他数据处理设备(例如,服务器)处进行。
此外,设备可以同时接收清单和消息。可替代地,设备可以在与接收消息不同的时间(例如,之前或之后)接收清单。
所述的方法可以进一步包括:产生对于多个包的第二滚动散列进程;从第二滚动散列进程导出对于沿一个或多个路径的多个包的组的组校验值。
此外,沿第一路径的组可以是前向连续组,而沿第二路径的组可以是后向连续组。
前向连续组的跨度可以与后向连续组的跨度相等,其中前向连续组的跨度可以是一个包。
组校验值可以包括第一滚动散列进程或第二滚动散列进程的提取样本比特,其中所述清单进一步包括标识用来提供提取样本比特的相应滚动散列的比特的数据,和/或其中第一滚动散列进程或第二滚动散列进程的相应值可以取决于多个包中的一个或多个包的静态散列。
第一滚动散列进程或第二滚动散列进程的相应值可以取决于秘密数据,其中所述方法进一步包括:从所述清单中的秘密协议数据导出秘密数据,并且其中所述方法可以进一步包括:在所述设备处,解密秘密协议数据。
在一些示例中,秘密数据可以包括:随机数或密码密钥。
该方法可以进一步包括:校验第二设备的可验证签名;进一步基于或者响应于所述可验证签名对应于期望的签名的确定,验证消息中的数据的完整性。
所述方法可以进一步包括:基于或者响应于导出的组校验值不对应于所述清单中的多个组校验值的确定,将对消息的一个或多个包的请求,从设备发送到第一资源或不同的资源。第一资源或不同的资源可以包括以下之一:服务器和数据处理设备。
在一些示例中,一个或多个路径可以在清单中被定义,或者可以是在数据处理设备上提供的标准或预设路径。
产生滚动散列进程、导出组校验值和/或验证数据的完整性的步骤可以都在设备处进行。可替代地,这些步骤可以在与该设备通信的一个或多个其他数据处理设备(例如,服务器)处进行。
沿第一路径和第二路径的组可以是前向连续组或后向连续组,其中沿第一路径的组的跨度与沿第二路径的组的跨度不同,其中沿第一路径的组的跨度是一个包。
组校验值可以包括滚动散列进程的提取样本比特,其中所述清单进一步包括标识用来提供提取样本比特的相应滚动散列的比特的数据。
滚动散列进程的相应值可以取决于多个包中的一个或多个包的静态散列和/或秘密数据。
所述方法可以进一步包括:基于或者响应于导出的组校验值不对应于所述清单中的多个组校验值的确定,将对部分中的一个或多个包的请求,从设备发送到第一资源或不同的资源。
所述的方法可以进一步包括:在资源处产生第二滚动散列进程;在资源处,从第二滚动散列进程导出对于沿一个或多个路径的多个包的组的校验值。
发送清单可以包括向一个或多个数据处理设备广播所述清单,而该方法可以进一步包括:向一个或多个数据处理设备发送相关联的消息。
在一些示例中,第一路径和/或第二路径可以在清单中被定义,或可以由数据处理设备预设。
本领域技术人员应当认识到,本技术可以采用完全硬件的实施形式、完全软件的实施形式或组合了硬件和软件方面的实施形式。
此外,本技术可以采用计算机程序产品的形式,该计算机程序产品被实施在具有在其上实施的计算机可读程序代码的计算机可读介质中。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以是,例如但不限于,电、磁、光、电磁、红外或半导体的***、装置或设备,或上述的任何合适的组合。
用于执行本技术的操作的计算机程序代码可以以一种或多种编程语言的组合来编写,包括面向对象的编程语言和常规的过程式编程语言。该程序代码可以全部在用户计算机上执行、部分在用户计算机上部分在远程计算机上执行或全部在远程计算机或服务器上执行。在后者的情况下,远程计算机可以通过任何类型的网络连接到用户计算机。代码组件可以被实施为过程、方法等,并且可以包括可以采用任何抽象级别(从原生指令集的直接机器指令到高级编译或解释语言构造)的指令或指令序列的形式的子组件。
本领域技术人员应当认识到,尽管上文已描述了什么被认为是最佳模式以及执行本技术的合适的其他模式,但是本技术不应该限于该说明书的优选实施例中所公开的具体配置和方法。本领域技术人员将认识到,本技术具有广泛的应用,并且可以在不偏离所附权利要求的范围的情况下对实施例进行大范围的修改。
本技术还可以被配置为:
(1)
一种用于验证由数据处理设备接收到的消息中的数据的完整性的方法,所述消息包括多个包,所述方法包括:
在所述设备处,接收来自第一资源的与所述消息相关联的清单,所述清单包括对于所述多个包的多个组校验值;
在所述设备处,接收来自第一资源或不同的资源的消息;
产生对于所述多个包的第一滚动散列进程;
从第一滚动散列进程导出对于所述多个包的沿一个或多个路径的组的组校验值;
基于或者响应于导出的组校验值对应于所述清单中的所述多个组校验值的确定,验证所述消息中的数据的完整性。
(2)
根据(1)所述的方法,进一步包括:
产生对于所述多个包的第二滚动散列进程;
从第二滚动散列进程导出对于所述多个包的沿一个或多个路径的组的组校验值。
(3)
根据前述各项中任一项所述的方法,其中沿所述一个或多个路径中的第一路径的组是前向连续组。
(4)
根据(2)或(3)所述的方法,其中沿所述一个或多个路径中的第二路径的组是后向连续组。
(5)
根据(4)所述的方法,其中所述前向连续组的跨度与所述后向连续组的跨度相等。
(6)
根据(5)所述的方法,其中所述前向连续组的跨度是一个包。
(7)
根据前述各项中任一项所述的方法,其中所述组校验值包括第一滚动散列进程或第二滚动散列进程的提取样本比特。
(8)
根据(7)所述的方法,其中所述清单进一步包括标识用来提供所述提取样本比特的相应滚动散列的比特的数据。
(9)
根据(7)或(8)所述的方法,其中第一滚动散列进程或第二滚动散列进程的相应值取决于所述多个包中的一个或多个包的静态散列。
(10)
根据前述各项中任一项所述的方法,其中第一滚动散列进程或第二滚动散列进程的相应值取决于秘密数据。
(11)
根据(10)所述的方法,其中所述方法进一步包括:
从所述清单中的秘密协议数据导出所述秘密数据。
(12)
根据(11)所述的方法,其中所述方法进一步包括:
在所述设备处,解密所述秘密协议数据。
(13)
根据(11)或(12)所述的方法,其中所述秘密数据包括:
随机数或密码密钥。
(14)
根据前述各项中任一项所述的方法,进一步包括:
校验第一资源的可验证签名;
进一步基于或者响应于所述可验证签名对应于期望的签名的确定,验证所述消息中的数据的完整性。
(15)
根据前述各项中任一项所述的方法,所述方法包括:
基于或者响应于导出的组校验值不对应于所述清单中的所述多个组校验值的确定,将对所述消息的一个或多个包的请求,从所述设备发送到第一资源或不同的资源。
(16)
根据前述各项中任一项所述的方法,其中第一资源或不同的资源包括以下之一:服务器和数据处理设备。
(17)
根据前述各项中任一项所述的方法,其中所述一个或多个路径在所述清单中被定义。
(18)
一种数据处理设备,被配置为执行(1)至(17)中任一项所述的方法。
(19)
一种用于由数据处理设备验证消息的一部分中的数据的完整性的方法,所述部分包括多个包,所述方法包括:
在所述设备处,接收来自第一资源的与所述消息相关联的清单,所述清单包括对于所述多个包的多个组校验值;
在所述设备处,接收来自第一资源或不同的资源的所述部分;
产生对于所述多个包的滚动散列进程;
从所述滚动散列进程导出对于所述多个包的沿第一路径的组的组校验值;
从所述滚动散列进程导出对于所述多个包的沿第二路径的组的组校验值;
基于或者响应于导出的对于沿第一路径的组的组校验值中的一个或多个对应于导出的对于沿第二路径的组的组校验值中的一个或多个的确定,验证所述消息的一部分中的数据的完整性。
(20)
根据(19)所述的方法,其中沿第一路径的组是前向连续组。
(21)
根据(19)或(20)所述的方法,其中沿第二路径的组是前向连续组。
(22)
根据(21)所述的方法,其中沿第一路径的组的跨度与沿第二路径的组的跨度不同。
(23)
根据(22)所述的方法,其中沿第一路径的组的跨度是一个包。
(24)
根据(19)至(23)中任一项所述的方法,其中所述组校验值包括所述滚动散列进程的提取样本比特。
(25)
根据(24)所述的方法,其中所述清单进一步包括标识用来提供所述提取样本比特的相应滚动散列的比特的数据。
(26)
根据(24)或(25)所述的方法,其中所述滚动散列进程的相应值取决于所述多个包中的一个或多个包的静态散列。
(27)
根据(19)至(26)中任一项所述的方法,其中所述滚动散列进程的相应值取决于秘密数据。
(28)
根据(19)至(27)中任一项所述的方法,所述方法包括:
基于或者响应于导出的组校验值不对应于所述清单中的所述多个组校验值的确定,将对所述部分中的一个或多个包的请求,从设备发送到第一资源或不同的资源。
(29)
根据(19)至(28)中任一项所述的方法,其中第一路径和/或第二路径在所述清单中被定义。
(30)
一种数据处理设备,被配置为执行(19)至(29)中任一项所述的方法。
(31)
一种从资源向一个或多个数据处理设备提供数据清单以用于验证与所述清单相关联的消息的多个包中的数据的完整性的方法,所述方法包括:
在所述资源处产生第一滚动散列进程;
在所述资源处,从第一滚动散列进程导出对于所述多个包的沿一个或多个路径的组的校验值;
在所述清单中,提供对于所述组的校验值;
在所述清单中,提供标识所述组的数据;
在所述清单中,提供标识所述一个或多个路径的数据;
向所述数据处理设备发送所述清单。
(32)
根据(31)所述的方法,所述方法进一步包括:
在所述资源处产生第二滚动散列进程;
在所述资源处,从第二滚动散列进程导出对于所述多个包的沿一个或多个路径的组的校验值;
(33)
根据(31)或(32)所述的方法,其中发送所述清单包括向所述一个或多个数据处理设备广播所述清单。
(34)
根据(31)至(33)中任一项所述的方法,所述方法进一步包括:
向所述一个或多个数据处理设备发送相关联的消息。
(35)
一种承载代码的非暂态数据载体,当所述代码在处理器上实施时,使得所述处理器执行(1)至(17)中任一项所述的方法。
(36)
一种承载代码的非暂态数据载体,当所述代码在处理器上实施时,使得所述处理器执行(19)至(29)中任一项所述的方法。
(37)
一种承载代码的非暂态数据载体,当所述代码在处理器上实施时,使得所述处理器执行(31)至(36)中任一项所述的方法。
(38)
一种基本上如上文参考附图描述的方法。
(39)
一种基本上如上文参考附图描述的数据处理设备。
(40)
一种基本上如上文参考附图描述的数据清单。

Claims (20)

1.一种用于验证由数据处理设备接收到的消息中的数据的完整性的方法,所述消息包括多个包,所述方法包括:
在所述设备处,接收来自第一资源的与所述消息相关联的清单,所述清单包括对于所述多个包的多个组校验值以及滚动散列计算指示数据;
在所述设备处,在接收到所述清单之前或之后接收来自第一资源或不同的资源的所述消息;
利用所述滚动散列计算指示数据,产生对于所述多个包的第一滚动散列链;
从第一滚动散列链导出对于所述多个包的沿一个或多个路径的组的组校验值;
基于或者响应于导出的组校验值匹配所述清单中的所述多个组校验值的确定,验证所述消息中的数据的完整性。
2.根据权利要求1所述的方法,进一步包括:
产生对于所述多个包的第二滚动散列链;
从第二滚动散列链导出对于所述多个包的沿一个或多个路径的组的组校验值。
3.根据权利要求1所述的方法,其中沿所述一个或多个路径中的第一路径的组是前向连续组。
4.根据权利要求3所述的方法,其中沿所述一个或多个路径中的第二路径的组是后向连续组。
5.根据权利要求4所述的方法,其中所述前向连续组的跨度与所述后向连续组的跨度相等。
6.根据权利要求5所述的方法,其中所述前向连续组的跨度是一个包。
7.根据权利要求2所述的方法,其中所述组校验值包括第一滚动散列链或第二滚动散列链的提取样本比特。
8.根据权利要求7所述的方法,其中所述清单进一步包括标识用来提供所述提取样本比特的相应滚动散列的比特的数据。
9.根据权利要求7所述的方法,其中第一滚动散列链或第二滚动散列链的相应值取决于所述多个包中的一个或多个包的静态散列。
10.根据权利要求1所述的方法,其中第一滚动散列链或第二滚动散列链的相应值取决于秘密数据。
11.根据权利要求10所述的方法,其中所述方法进一步包括:
从所述清单中的秘密协议数据导出所述秘密数据。
12.根据权利要求11所述的方法,其中所述方法进一步包括:
在所述设备处,解密所述秘密协议数据。
13.根据权利要求11所述的方法,其中所述秘密数据包括:
随机数或密码密钥。
14.根据权利要求1所述的方法,进一步包括:
校验第一资源的可验证签名;
进一步基于或者响应于所述可验证签名匹配期望的签名的确定,验证所述消息中的数据的完整性。
15.根据权利要求1所述的方法,所述方法包括:
基于或者响应于导出的组校验值不匹配所述清单中的所述多个组校验值的确定,将对所述消息的一个或多个包的请求,从所述设备发送到第一资源或不同的资源。
16.根据权利要求1所述的方法,其中第一资源或不同的资源包括以下之一:服务器和数据处理设备。
17.根据权利要求1所述的方法,其中所述一个或多个路径在所述清单中被定义。
18.一种用于由数据处理设备验证消息的一部分中的数据的完整性的方法,所述部分包括多个包,所述方法包括:
在所述设备处,接收来自第一资源的与所述消息相关联的清单,所述清单包括对于所述多个包的多个组校验值以及滚动散列计算指示数据;
在所述设备处,接收来自第一资源或不同的资源的所述部分,其中在接收到所述清单之后接收所述部分的第一包;
利用所述滚动散列计算指示数据,产生对于所述多个包的滚动散列链;
从所述滚动散列链导出对于所述多个包的沿所述清单中定义的第一路径的组的组校验值;
从所述滚动散列链导出对于所述多个包的沿所述清单中定义的第二路径的组的组校验值;
基于或者响应于导出的对于沿第一路径的组的组校验值中的一个或多个匹配导出的对于沿第二路径的组的组校验值中的一个或多个的确定,验证所述消息的一部分中的数据的完整性。
19.一种从资源向一个或多个数据处理设备提供数据清单以用于验证与所述清单相关联的消息的多个包中的数据的完整性的方法,所述清单包括滚动散列计算指示数据,所述方法包括:
利用所述滚动散列计算指示数据,在所述资源处产生第一滚动散列链;
在所述资源处,从第一滚动散列链导出对于所述多个包的沿一个或多个路径的组的校验值;
在所述清单中,提供对于所述组的校验值;
在所述清单中,提供标识所述组的数据;
在所述清单中,提供标识所述一个或多个路径的数据;以及
在发送所述消息的第一包之前或之后向所述数据处理设备发送所述清单。
20.根据权利要求19所述的方法,所述方法进一步包括:
在所述资源处产生第二滚动散列链;
在所述资源处,从第二滚动散列链导出对于所述多个包的沿一个或多个路径的组的校验值。
CN201610807668.6A 2015-09-07 2016-09-07 用于验证数据完整性的方法 Expired - Fee Related CN106506440B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1515849.6A GB2541950B (en) 2015-09-07 2015-09-07 Methods for verifying data integrity
GB1515849.6 2015-09-07

Publications (2)

Publication Number Publication Date
CN106506440A CN106506440A (zh) 2017-03-15
CN106506440B true CN106506440B (zh) 2021-09-07

Family

ID=54345896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610807668.6A Expired - Fee Related CN106506440B (zh) 2015-09-07 2016-09-07 用于验证数据完整性的方法

Country Status (3)

Country Link
US (2) US10595207B2 (zh)
CN (1) CN106506440B (zh)
GB (1) GB2541950B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2541950B (en) 2015-09-07 2020-01-08 Arm Ip Ltd Methods for verifying data integrity
US10599587B2 (en) * 2016-11-29 2020-03-24 The Government Of The United States, As Represented By The Secretary Of The Army High latency channel and low latency channel
US10320756B2 (en) * 2016-12-31 2019-06-11 Intel Corporation Secure communications for sensor data
US10644959B2 (en) * 2017-01-25 2020-05-05 International Business Machines Corporation Method and framework for protocol to optimize edge side dynamic response system with context propagation for IoT
CN108632318B (zh) * 2017-03-21 2022-02-22 腾讯科技(深圳)有限公司 一种数据校验方法、数据发送方法、相关装置及***
DE102017205163A1 (de) * 2017-03-27 2018-09-27 Bundesdruckerei Gmbh Hashwerte für die bidirektionale verkettete Blockchain
GB2562079B (en) * 2017-05-04 2021-02-10 Arm Ip Ltd Continuous hash verification
DE102017209381A1 (de) * 2017-06-02 2018-12-06 Bundesdruckerei Gmbh Bidirektional verkettete Blockchain-Struktur
FR3067546A1 (fr) * 2017-06-19 2018-12-14 Orange Procedes d’identification operateur de trames a emettre, et de verification d’appartenance operateur, un dispositif de communication et une passerelle de communication
DE102017216839A1 (de) * 2017-09-22 2019-03-28 Bundesdruckerei Gmbh Bidirektional verkettete erweiterte Blockchain-Struktur
US10742612B2 (en) * 2017-10-16 2020-08-11 Cisco Technology, Inc. Determine payload integrity for traffic flowing across proxies
DE102017218736A1 (de) 2017-10-19 2019-04-25 Bundesdruckerei Gmbh Bidirektionale verkettete Blockchain-Struktur
US20190253477A1 (en) * 2018-03-30 2019-08-15 Intel Corporation Data Fragment Recombination for Internet of Things Devices
US11003537B2 (en) * 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US11153095B2 (en) * 2019-04-30 2021-10-19 At&T Mobility Ii Llc Facilitation of identification of internet-of-things host devices
FR3096160B1 (fr) * 2019-05-16 2021-09-10 Renault Sas Procédé d’installation d’un composant informatique et équipement électronique associé
CN110913202B (zh) * 2019-11-26 2022-01-07 深圳英伦科技股份有限公司 一种三维显示云渲染方法和***
US11936787B2 (en) 2019-12-10 2024-03-19 Winkk, Inc. User identification proofing using a combination of user responses to system turing tests using biometric methods
US11928193B2 (en) 2019-12-10 2024-03-12 Winkk, Inc. Multi-factor authentication using behavior and machine learning
US11574045B2 (en) 2019-12-10 2023-02-07 Winkk, Inc. Automated ID proofing using a random multitude of real-time behavioral biometric samplings
US11553337B2 (en) 2019-12-10 2023-01-10 Winkk, Inc. Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel
US11328042B2 (en) 2019-12-10 2022-05-10 Winkk, Inc. Automated transparent login without saved credentials or passwords
US11843943B2 (en) 2021-06-04 2023-12-12 Winkk, Inc. Dynamic key exchange for moving target
US20220394464A1 (en) * 2021-06-04 2022-12-08 Winkk, Inc Key exchange with small encrypted payload
US11824999B2 (en) 2021-08-13 2023-11-21 Winkk, Inc. Chosen-plaintext secure cryptosystem and authentication
GB2622761A (en) * 2022-05-18 2024-04-03 Zappaty Ltd Methods of Transmitting and Receiving Files

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和***

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959384B1 (en) * 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US6640294B2 (en) * 2001-12-27 2003-10-28 Storage Technology Corporation Data integrity check method using cumulative hash function
US8165221B2 (en) * 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US8625607B2 (en) * 2007-07-24 2014-01-07 Time Warner Cable Enterprises Llc Generation, distribution and use of content metadata in a network
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
WO2010024379A1 (ja) * 2008-08-29 2010-03-04 日本電気株式会社 通信システム、送信側及び受信又は転送側の通信装置、データ通信方法、データ通信プログラム
US8788830B2 (en) * 2008-10-02 2014-07-22 Ricoh Co., Ltd. Method and apparatus for logging based identification
US8185733B2 (en) * 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
US8255340B2 (en) * 2008-10-02 2012-08-28 Ricoh Co., Ltd. Method and apparatus for risk analysis of published logs
US8458451B2 (en) * 2009-01-20 2013-06-04 New York University Database outsourcing with access privacy
US8442218B2 (en) * 2009-02-27 2013-05-14 Red Hat, Inc. Method and apparatus for compound hashing via iteration
US8572695B2 (en) * 2009-09-08 2013-10-29 Ricoh Co., Ltd Method for applying a physical seal authorization to documents in electronic workflows
US9235595B2 (en) * 2009-10-02 2016-01-12 Symantec Corporation Storage replication systems and methods
US8321648B2 (en) * 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8504517B2 (en) * 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US9026474B2 (en) * 2011-03-07 2015-05-05 Google Inc. Generating printable certificates to verify log authenticity
US8800024B2 (en) * 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US9882768B1 (en) * 2012-03-13 2018-01-30 Trend Micro Incorporated Methods and apparatus for file synchronization over a computer network
US10191934B2 (en) * 2013-05-13 2019-01-29 Hitachi, Ltd. De-duplication system and method thereof
US10229132B2 (en) * 2013-07-15 2019-03-12 International Business Machines Corporation Optimizing digest based data matching in similarity based deduplication
US9742881B2 (en) * 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
GB2541950B (en) 2015-09-07 2020-01-08 Arm Ip Ltd Methods for verifying data integrity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和***

Also Published As

Publication number Publication date
GB2541950B (en) 2020-01-08
GB201515849D0 (en) 2015-10-21
GB2541950A (en) 2017-03-08
US20200288322A1 (en) 2020-09-10
US10595207B2 (en) 2020-03-17
US11146400B2 (en) 2021-10-12
US20170070890A1 (en) 2017-03-09
CN106506440A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106506440B (zh) 用于验证数据完整性的方法
CN109660343B (zh) 令牌更新方法、装置、计算机设备及存储介质
US8996877B2 (en) Cryptographically secure authentication device, system and method
EP2775660B1 (en) Message authentication method in communication system and communication system
US11303453B2 (en) Method for securing communication without management of states
CN102780698A (zh) 物联网平台中用户终端安全通信的方法
CN109495442A (zh) 利用树结构验证完整性的方法和装置
CN108141364A (zh) 消息认证
US10986074B2 (en) Methods and resources for generating secure communications
US9237010B2 (en) Secure transmission of a message
KR102437864B1 (ko) 펌웨어를 수신하는 방법 및 펌웨어를 전송하는 방법
CN102970676A (zh) 一种对原始数据进行处理的方法、物联网***及终端
CN109922022A (zh) 物联网通信方法、平台、终端和***
CN114666040A (zh) 基于量子密码网络的射频识别认证***及方法
US10200356B2 (en) Information processing system, information processing apparatus, information processing method, and recording medium
US20170180392A1 (en) Method and device for transmitting software
CN110912687A (zh) 一种分布式身份验证方法
CN114172923B (zh) 数据传输方法、通信***及通信装置
CN105099667A (zh) 用于在网络中生成密钥的方法以及为此设立的网络用户
US11399279B2 (en) Security credentials recovery in Bluetooth mesh network
EP3200388B1 (en) User permission check system
JP6538923B2 (ja) 認証システム、方法及びプログラム並びにサーバ
JP2006173735A (ja) メッセージの認証方法と該認証方法を用いたメッセージ認証装置およびメッセージ認証システム
CN114826742B (zh) 一种面向工程机械物联网感知层网络的通信安全***及认证方法
US20220393856A1 (en) Securely and reliably transmitting messages between network devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210907

CF01 Termination of patent right due to non-payment of annual fee