CN111200817A - 无线设备间密钥自动协商方法 - Google Patents
无线设备间密钥自动协商方法 Download PDFInfo
- Publication number
- CN111200817A CN111200817A CN202010013485.3A CN202010013485A CN111200817A CN 111200817 A CN111200817 A CN 111200817A CN 202010013485 A CN202010013485 A CN 202010013485A CN 111200817 A CN111200817 A CN 111200817A
- Authority
- CN
- China
- Prior art keywords
- packet
- key
- sender
- receiver
- request
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0431—Key distribution or pre-distribution; Key agreement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种无线设备间密钥自动协商方法,利用无线通信中不可避免的,真正的随机分组丢失来引导无线设备之间的安全通信,使得通信双方协商的密钥具有不可预测的动态性;协商过程中使用哈希函数和预定义的压缩函数,使得密钥具有不可逆性;通信密钥无需预置,不需要事先人工输入,后期也无需人工干预密钥更新,具有密钥自主更新性和自安全性。本发明随着引导阶段的延长和更多随机数据包的发送,可以证明该密钥对于具有实际无线接收功能的任何攻击者都是渐近无条件地安全的。
Description
技术领域
本发明涉及无线通信和网络安全领域,特别是一种无线设备间密钥自动协商方法,可以用于无线设备间在没有任何预共享信息的前提下,进行密钥协商的过程,并且协商过程中利用无线信道的随机因素,使得密钥协商过程能够抵御攻击者的窃听攻击,有效地保证协商密钥的保密性。
背景技术
在设备到设备(D2D)之间的无线通信中,设置加密密钥初始化安全通信是很难的,尤其是当D2D连接是移动的和动态的时候。无线设备可能由不同的制造商生产,这意味着这些设备可能不携带预共享机密或可互操作的数字证书来初始化用于安全通信的密钥。此外,设备可能没有用于PIN的出入接口。因此,在没有预设机密信息或人工输入的情况下建立安全的无线设备间通信是一项挑战。
随着无线技术的快速发展,以及物联网设备的广泛应用,设备可以无需基础设施支持即可直接交换信息。在设备间交换的信息通常涉及个人隐私信息、秘密通信消息等,比如在各个网站登录界面,账户密码等信息;在医疗领域,智能医疗设备收集到的客户身体健康资料信息;在智能家居中,生活隐私内容以及门户安全信息等。这些内容关乎用户隐私已经安全问题,需要保障这些内容不被其他人获取。因此,数据安全是设备间交换信息的重中之重,也是一项挑战。保障数据安全需要在通信过程中对通信消息进行加密,这需要设备之间协商一个共同的密钥、一个其他人都不知道的密钥。但是无线设备独特的性质使预先设置加密密钥初始化通信变得不太可能:第一、无线设备可以由不同的制造商生产,这意味着这些设备可能不携带预共享的机密或可互操作的数字证书来初始化用于安全通信的密钥。第二、设备可能没有用于PIN的输入接口,例如温度传感器或无线可控灯泡。在没有预设机密信息或人工输入的情况下建立安全的无线设备间通信是一项挑战。第三、部分无线设备间的连接是移动的和动态的,有时无法预测与哪些设备通信。在预共享密钥的方式下,需要设备维护大量的通信密钥,这无疑增加了设备的资源消耗,对于资源受限的无线设备来说是不可行的。因此设计一个完善的密钥协商协议作为设备间安全通信的支撑是必要条件。
设备到设备(D2D)通信的密钥协商问题一直备受学者关注,多年来,针对设备间通信难以预设密钥的问题,许多学者设计了技术方案。现有的密钥协商技术主要有以下三中:第一、基于可信第三方的公钥体系,这种方法需要一个可信的认证机构为其颁发证书或生成、分发密钥;第二、基于代理进行复杂计算操作,这种方法的核心理念是将公钥加密体系中复杂的密钥计算操作委托给相邻的多个资源不受约束或者较少受约束的节点执行,这些节点被称为代理。每个代理参与一部分发送方(initiators)公共DH (Diffie-Helloman)密钥的计算和传递,并且在其在发送方(initiators)构建之前也参与公共DH密钥的推导。这样减少了通信节点的计算压力。第三、基于批处理的组密钥协商协议,这种方法通过密钥分发中心(KDC)将组密钥安全地分发给所有组成员。如果有节点加入或者离开,那么KDC会建立新的组密钥,并且再次发送给所有组成员。
现有技术是通过预共享或可信第三方公钥体系来初始化通信密钥的,这可能存在几个方面的问题。第一、对于不同商家生产、可移动的无线设备来说,由于无法确定与哪些设备进行通信,预先设置初始密钥的数量是无法预测的,因此,预共享密钥的方式是无法满足动态设备的通信要求。第二、公钥体系对于资源受限的无线设备来说,资源消耗较大,设备无法承担太大的消耗。第三、公钥体系或是基于时间变化的衍生函数,一旦静态初始密钥被窃取,攻击者可以破坏通信数据的机密性和完整性。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种无线设备间密钥自动协商方法,解决在没有预设机密信息或人工输入的情况下如何建立安全的无线设备间通信的问题。
为解决上述技术问题,本发明所采用的技术方案是:一种无线设备间密钥自动协商方法,包括以下步骤:
1)发送方构造密钥协商请求包request_packet,表示希望与接收方进行密钥协商,并发送至接收方;请求包request_packet的MESSAGE字段内容设置为发送方的MAC地址;
2)接收方接收到请求包request_packet,提取出请求包request_packet中的内容进行验证,如果验证结果为真,则接收方提取请求包request_packet中Message 字段中的值,并检查MESSAGE的值是否符合MAC地址的格式,如果检查结果为真,则接收方考虑是否愿意与发送方开始密钥协商。若接收方不愿意与发送方进行密钥协商,那么接收方将保持沉默。如果发送方等待TH时间没有收到接收方发送的响应数据包,则发送方在下一个请求之前等待时间TW;如果发送方仍发送请求数据包,则接收方在时间Td期间拒绝每个数据包;若接收方想与发送方开始密钥协商,则接收方发送一个通信字段值设置为接收方的MAC地址的accepting_packet;
3)发送方收到接收方接受协商的accepting_packet后,在T1时间内发送NS个随机消息数据包random_packet,所述NS个随机消息数据包random_packet的序列字段SEQ按照发送顺序从0开始编号,并且发送方存储所有已发送的随机消息数据包;
4)当接收方收到第一个随机消息数据包时,接收方启动时间为2T1+Tw的计时器,在收到发送方的第一个随机消息数据包后的Tw时间内,接收方只接收随机消息数据包;Tw之后,接收方在接收的同时提取随机消息数据包random_packet 中的内容,若random_packet通过完整性验证和序列验证,则存储random_packet 通信字段MESSAGE和序列的字段SEQ的值;在序列验证期间,如果收到的随机消息数据包与之前存储的随机消息数据包的SEQ值相同,证明密钥协商可能受到了攻击者的攻击,并舍弃这两个随机消息数据包;当2T1+Tw计时器结束时,接收方检查随机数据包的数量M是否超过阈值Nr,如果超出,接收方开始生成通信密钥并启动2T2计时器;接收方保持两个线性列表,即m[i]和s[j], i=0,1,2,…,S;j=0,1,2,…,S,其中S≧M;m[.]用于存储MESSAGE字段的值,s [.]用于以m[.]的相同顺序存储SEQ字段的值;在第一个T2期间,由哈希函数 sha256处理m[.],并将处理结果存储在线性列表ms[.]中;利用线性列表ms[.] 计算初始密钥,并利用所述初始密钥计算派生密钥,利用压缩函数对s[.]进行压缩得到SC,填充到MESSAGE字段;利用哈希函数处理SC,得到 response_packet中的消息验证码HMACresponse,最后接收方创建响应数据包 response_packet,并将该数据包发送给发送方;
5)发送方发送完所有随机数据包后,启动一个时长为T1+TW+2T2的计时器,在该计时器用尽之前,发送方尝试接收接收方发送的response_packet,如果收到 response_packet,则提取response_packet中每个字段的内容,通过解压缩SC来获得s[.],进而获得m[.],发送方计算出初始密钥K0、派生密钥KD和对应的消息验证码HMACA;判断发送方计算的HMACA与response_packet中的HMA字段的值HMACresponse是否相同,若相同,则发送方正确获取初始密钥,否则,发送方向更高级别的协议报告协商异常;当T1+TW+2T2的计时器结束时,发送方启动一个23计时器,在第一个T3中,发送方使用派生的密钥计算 response_packet的ACK,并创建一个MESSAGE的值设置为ACK的数据包 acknowledge_packet;
6)对于接收方,当2T2计时器结束时,启动2T3计时器;在2T3计时器结束之前,如果接收方接收到来自发送方的acknowledge_packet,则双方之间的通信密钥成功建立。
步骤1)中,发送方构造密钥协商请求包request_packet的具体实现过程包括:
1)发送方构建明文数据包PLAINTEXT,填充各个字段的值,并连接得到:PLAINTEXT=(PHASE||RETRAN||LEN||SEQ||MESSAGE);其中,PHASE 为通信阶段的标志位;RETRAN为重传标志;LEN为通信数据的长度标志位; SEQ为序列的标志位;MESSAGE为通信数据;||表示连接;
2)利用最优非对称加密方案fOAEP()加工PLAINTEXT,防止攻击者进行短消息攻击,增强攻击难度,加工得到填充后的结果RESULT:RESULT= fOAEP(PLAINTEXT,a);a为一次性随机数;
3)计算消息验证码HMAC:HMAC=sha256(RESULT);sha256()是哈希值计算函数,得到的哈希值具有不可逆性,防止攻击者篡改;
4)利用下式拼接得到request_packet:request_packet=RESULT||HMAC。
步骤2)中,接收方提取出请求包request_packet的过程包括:
1)接收方根据字节数提取request_packet中的结果值RESULTr和消息验证码HMACr;
3)利用RESULTr计算得出HMAC′r:HMAC′r=sha256(RESULTr); sha256()是哈希值计算函数;
4)将计算得到的HMACr′与从接收到的request_packet中提取的HMAC进行比较,若相同,则接收方已完全正确接收到数据包中携带的信息;反之,数据包可能遭到破坏或伪造,向高层协议报告发生攻击异常,停止协商。
步骤4)中,ms[i]=sha(m[i]);其中,sha()表示哈希函数;ms[i]表示线性列表ms[.]中的第i个元素;m[i]表示m[.]中的第i个元素。
初始密钥K0的计算公式为:
K0=sha(ms[0]+…+ms[i]+…+ms[S]);
其中,sha为sha256的计算函数,输入原文可以输出该原文的hash值。
派生的密钥KD=kdf(K0,0,1);kdf(.)表示密钥导出函数,计算其他在信道中传输的参数使用派生密钥,使得初始密钥K0无需在信道中传输,保障了密钥的安全。
HMACresponse的计算公式为:
HMACresponse=sha256(SC);
其中,SC是s[.]经压缩函数压缩得到的结果;sha256()是哈希值计算函数。
ACK的计算公式为:
ACK=HMAC_md5(KD,SC);
其中,HMAC_md5(.)是从MD5哈希函数构造的键控哈希算法,将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数,多次哈希,增强了不可逆性,防止篡改。
步骤3)中,随机消息数据包random_packet中的MESSAGE字段的值设置为由发送方随机生成的信息,在T1时间内,不对所有数据包进行加密,当发送方发送随机消息数据包random_packet时,该随机消息数据包random_packet的序列字段SEQ从0开始编号。
与现有技术相比,本发明所具有的有益效果为:本发明通过利用无线通信中不可避免的,真正的随机分组丢失来引导无线设备之间的安全通信,使得通信双方协商的密钥具有不可预测的动态性;协商过程中使用哈希函数和预定义的压缩函数,使得密钥具有不可逆性;通信密钥无需预置,不需要事先人工输入,后期也无需人工干预密钥更新,具有密钥自主更新性和自安全性。本发明定义了一个引导阶段,在该阶段中,无线设备正在发送带有随机有效载荷的数据包。当在实际的无线通信环境中发送许多数据包时,对于无线设备和试图破坏通信安全性的潜在攻击者而言,数据包丢失都是不可避免的。然后,无线设备应用预定义的算法来压缩它们共同发送和接收的数据包,以获得用于身份验证,加密和完整性检查的加密密钥。随着自举阶段的延长和更多随机数据包的发送,可以证明该密钥对于具有实际无线接收功能(即数据包丢失)的任何攻击者都是渐近无条件地安全的。
附图说明
图1为发送方数据包构建流程。
图2为接收方数据包提取流程。
图3为密钥协商通信流程。
图4为丢包率示意图。
具体实施方式
本发明通过利用无线通信中不可避免的,真正的随机分组丢失来引导无线设备之间的安全通信。我们的方案定义了一个引导阶段,在该阶段中,无线设备正在发送带有随机有效载荷的数据包。当在实际的无线通信环境中发送许多数据包时,对于无线设备和试图破坏通信安全性的潜在攻击者而言,数据包丢失都是不可避免的。然后,无线设备应用预定义的算法来压缩它们共同发送和接收的数据包,以获得用于身份验证,加密和完整性检查的加密密钥。随着自举阶段的延长和更多随机数据包的发送,可以证明该密钥对于具有实际无线接收功能(即数据包丢失)的任何攻击者都是渐近无条件地安全的。为了更好的说明协议的运行过程,表1列举了本发明字符所表示的含义。
表1用例定义
本发明假设通信双方是无线设备,二者处于彼此可以听到的范围内,中间没有节点,无线通信信道不完善,充满了拥塞和干扰。并且双方不共享任何秘密密钥材料,也没有公共密钥基础结构支持或足够的计算能力可用于基于公共密钥的密钥分发。二者使用网络数据包交换信息,不失一般性。
一、数据包格式
为了更好地共享和使用机密,在协议运行期间,爱丽丝和鲍勃不可避免地要发送大量消息。为了使他们更好地相互理解,数据包的格式需要统一。数据包包含以下五个字段:PHASE,SEQ,RETRAN,LEN和MESSAGE。每个字段的含义和要求如下:
数据包格式如表2所示:
表2数据包格式
PHASE | SEQ | RETRAN | LEN | MESSAGE |
1)PHASE:通信阶段的标志位,占1bit,用于指示当前协议处于通信阶段还是密钥协商阶段。在密钥协商阶段,将PHASE设置为0。在通信阶段,将PHASE设置为1。
2)SEQ:序列的标志位,占n bits,标识当前数据包在发送方发送的所有数据包中的顺序,也标识表示当前数据包内的通信数据在整个通信数据中的顺序。发送方每次接收到一个数据包的确认消息,就把将要发送数据包的序列号自增1。接收方每次正确接收到一个数据包,就把想要接收的数据包序列号自增1。使用序列号字段可以帮助接收者抵御重放攻击。n的值根据公式(1)的计算得出。
r表示接收到的通信数据的字节数,lm是此协议的数据包的最小字节数。在通信双方之间的每一次通信中(如果最后一个发送方发送数据包与当前发送方发送数据包之间的时间间隔小于TF,则这两个单条消息传输被视为一种通信),如果一个节点发送或接收包成功后,它将根据公式(2)计算SEQ(s)的值:
s=(s+1)mod(2n-1) (2)
开始新阶段时,SEQ设置为0。
3)RETRAN:重传标志,占1bit。用于标识发送方是否是首次传输该数据包。在本协议中,对于首次接收到的数据包和非首次收到的数据包,本协议进行密钥更新的处理方式不相同。所以需要Retran字段标识数据包是否是重传数据包。若发送方是首次发送该数据包,则Retran字段设置为0;否则,Retran字段设置为1。
4)LEN:代表通信数据(message)的长度,占m bits。用来确保接收方可以正确地取出通信数据。m的值根据公式(3)计算得出。
m=[log2(lx-1-1-n)]8 (3)
lx表示低层协议能够传输的最大数据包的长度。
5)MESSAGE:代表通信数据,是通信双方实际要传输的数据。
本发明发送方数据包构建过程如下,流程如图1所示。
1)发送方根据每个字段的要求,填充内容,分别设置PHASE,SEQ,RETRAN、 MESSAGE的值。然后,需要通过计算MESSAGE的位数来确定LEN的值。结果,发送方将获得此协议中称为PLAINTEXT(T)的内容:
PLAINTEXT=(PHASE||RETRAN||LEN||SEQ||MESSAGE) (4)
2)PLAINTEXT再由填充函数OAEP进行加工,函数式如公式(5)所示,PLAINTEXT 和一次性随机数a是函数的参数,函数值由RESULT表示:
RESULT=fOAEP(PLAINTEXT,a) (5)
其中,fOAEP()(见文献Mihir Bellare and Phillip Rogaway.Optimalasymmetric encryption.In Alfredo De Santis,editor,Advances in Cryptology—EUROCRYPT 94, volume 950of Lecture Notes in Computer Science,pages 92–111.Springer-Verlag,1995, 9–12May 1994.)是一种填充方案,增加攻击者进行短消息攻击难度。a是一个随机数,用于填充PLAINTEXT,用完一次即销毁。
3)得到填充后的结果RESULT,不进行加密,直接计算HMAC,根据公式(6)计算得出:
HMAC=sha256(RESULT) (6)
其中,sha256()是哈希值计算函数,输入原文可以输出该原文的hash值。
4)将RESULT和计算得出的HMAC拼接得到将要发出的PACKET。
PACKET=RESULT||HMAC (7)
图2为本发明接收方提取数据包的流程图。
1)接收方受到发送方发送的数据包PACKET,由于协议中HMAC的字节长度是一定的,
因此接收方可以根据字节数提取其中的RESULTr和HMACr。
2)接收方将RESULTr作为OAEP解决方案处理函数的参数计算得到PLAINTEXTr,如公式(8)所示:
3)将得到的RESULTr作为公式(6)的参数,计算得出HMACr′.
HMACr′=sha256(RESULTr)其中,sha256()是哈希值计算函数,输入原文可以输出该原文的hash值;
4)完整性检查:将计算得到的HMACr′与从接收到的PACKET中提取的HMAC进行比较,如果相同,证明接收器已完全正确接收到数据包中携带的信息。反之,数据包可能遭到破坏或伪造。
5)由于数据包PHASE、RETRAN、LEN和SEQ字段的值是固定的,并且根据LEN字段的值能够知道MESSAGE字段的长度,因此能够从公式(8)计算得到的 PLAINTEXTr中提取出每个字段的值。
6)序列号校验:比较从数据包中获得的SEQ和已存储在主存储器中的SEQ值,如果存在相同的序列,那么很可能是攻击者伪造地数据包。因为发送方在密钥协商阶段不会重发任何数据包。此时,密钥协商停止,并向高层报告攻击威胁。否则,接收器将根据协议将MESSAGE和SEQ的值存储到内存和硬盘中。
本发明基于动态秘密的密钥协商协议利用无线传输中随机因素来建立通信双方的密钥,并且具有自动恢复安全的特性。本协议采用的无线传输中的随机因素是数据链路层不可避免的,真正的随机分组丢失。
如果发送方希望通过不完善的无线信道与接收方通信或是为了以后通信,这里需要建立初始通信密钥,因此双方需要进入密钥协商阶段建立共享的密钥。在协商之前,双方不需要预共享任何秘密材料,也不需要依赖数字证书等公钥体系。
密钥协商协议的信息通信流程如图3所示。
1)发送方希望与接收方通信,构造密钥协商请求包request_packet发送给接收方。发送方分别设置请求包request_packet中的PHASE,SEQ,RETRAN、MESSAGE字段的值。因为是协商阶段,所以PHASE字段的值设置为0;因为第一次发送,RETRAN 字段的值设置为0;SEQ字段设置为0;MESSAGE字段的值设置为发送方的MAC 地址;通过计算MESSAGE的位数来确定LEN的值。
2)接收方接收到请求包request_packet,提取出数据包中的内容进行验证,如果验证结构为真,那么接收方提取MASSAGE字段中的值,如果检查结果为真,则接收方将考虑是否愿意与发送方开始密钥协商。当接收方不想与发送方通信时,它将保持沉默。对于发送方,在发送请求数据包之后,它必须等待TH。在此期间,如果发送方没有收到接收方发送的响应数据包,这意味着请求已被拒绝,则发送方必须在下一个请求之前等待TW。如果发送方仍然频繁发送请求数据包,则接收方将在Td期间拒绝每个数据包。但是,如果接收方想与发送方开始密钥协商,它将发送一个 MESSAGE值设置为接收方的识别信息的accepting_packet。两个节点都进入密钥协商阶段。
3)发送方收到接收方接受协商的accepting_packet后,在T1时间内发送Ns个随机消息数据包random_packet,数据包中的MESSAGE字段的值由发送方随机生成的信息设置。在此期间,无需对所有数据包进行加密。当发送方发送此数据包时,该数据包的SEQ从0开始编号。T1的值由发送方的性能和无线信道的质量决定。发送方需要存储所有已发送的随机数据包。
4)由于协议规定发送方在T1内发送所有随机数据包,因此当接收方收到第一个数据包时,接收方将启动计时器,计时时间为2T1+Tw。在收到爱丽丝的第一个数据包后的Tw时间内,鲍勃除了接收数据包外没有做任何其他事情。Tw之后,Bob将在接收的同时提取随机数据包中的内容。如果数据包通过完整性验证和序列验证,则 MESSAGE和SEQ的值应存储在主存储器中。在验证期间,如果有两个数据包具有相同的SEQ,则意味着此密钥协商可能已受到攻击,则Bob舍弃这两个数据包。当 2T1+Tw计时器结束时,Bob应该检查随机数据包的数量M是否超过阈值Nr,这个阈值是预先根据信道情况而设置的。如果超出Nr,Bob将开始生成通信密钥并启动 2T2计时器。接收方保持两个线性列表,即m[i](i=0,1,2,…,S)和s[j](j=0,1,2,…,S),其中S≧M。m[.]用于存储MESSAGE字段的值,s[.]用于以m[.]的相同顺序存储SEQ 字段的值。然后,在第一个T2期间,将由哈希函数sha256处理m[.],并将结果存储
在线性列表ms[.]中,计算方式公式(9)所示:
ms[i]=sha(m[i]) (9)
其中,sha256()是哈希值计算函数,输入原文可以输出该原文的hash值;
ms[.]将根据公式(10)计算得出初始密钥K0:
K0=sha(ms[0]+…+ms[i]+…+ms[S]) (10)
其中,sha256()是哈希值计算函数,输入原文可以输出该原文的hash值;
接收方生成K0后,使用密钥导出函数kdf(.)派生出用于生成消息认证码的密钥,由于消息验证码需要在信道中传输,因此,为了保护初始密钥,不直接使用K0加密,而是使用派生出的密钥,防止泄密。计算方式如下公式(11):
KD=kdf(K0,0,1) (11)
kdf()是一种密钥派生函数,使用伪随机函数从诸如主密钥或密码的秘密值中派生出一个或多个密钥。该函数的第一个参数是前面得出的初始密钥K0;第二个参数是加密盐,是一个随机数,在此协议中设为0;第三个参数是迭代次数,在此部分中为1。
此后,s[.]将通过压缩函数比如zigzag函数进行压缩得到SC。HMAC将通过公式(12) 计算得出,如下:
HMACresponse=sha256(SC) (12)
其中,sha256()是哈希值计算函数,输入原文可以输出该原文的hash值;
得出这些字段后,接收方将创建响应数据包response_packet,将MESSAGE的字段设置为SC,并将该数据包发送给发送方。
5)发送方计算密钥并确认:发送完所有随机数据包后,启动一个时长为T1+TW+2T2的计时器。在计时器用尽之前,发送方将尝试接收接受方发送的response_packet。如果收到数据包,将提取数据包中每个字段的内容。完成此操作后,可以通过解压缩SC来获得s[.]。然后,Alice很容易获得m[.]。通过(9)、(10)、(11)和(12),发送方计算出了了K0、KD和HMACA。如果HMACA与response_packet中的HMAC字段的值HMACresponse相同,则Alice正确获取K0。否则,可能是由于传输过程中出现错误或者遭到攻击者攻击,这时,发送者应向更高级别的协议报告。当T1+TW+2T2的计时器结束时,发送方启动一个2T3计时器。
在第一个T3中,发送方使用KD根据公式(13)计算response_packet的ACK。
ACK=HMAC_md5(KD,SC) (13)
其中,HMAC_md5(.)是从MD5哈希函数构造的一种键控哈希算法,输入原文可以输出该原文的消息验证代码。然后,发送方将创建一个MESSAGE的值设置为ACK的acknowledge_packet发送给接收方。
6)接收器发送确认数据包以完成密钥协商:对于接收方,当2T2计时器结束时,它将启动2T3计时器。在2T3计时器结束之前,如果接收方接收到来自发送方的 acknowledge_packet,则双方之间的通信密钥将成功建立。
本发明使用OAEP函数来处理纯文本。通过应用随机填充方案,当使用相同的密钥对相同的明文进行加密时,密文将有所不同。因此,选择性明文攻击不会成功。OAEP 还为引导会话引入了更多的随机性。
如果攻击者丢失的信息比特多于通信双发的密钥长度,则诱导密钥至少与破解发送方和接收方使用的安全哈希函数一样困难。
证明如下:
前提1:在当前的通信环境中,丢包是不可避免的。假设发送方和接收方同时持有的动态秘密集合为ζ,那么攻击者持有的动态秘密集合为ζ1。ζ1不包含ζ中不存在的信息。假设在该无线信道中,丢包率为PL。当发送方发送数据包时,的概率用表示,计算公式如(14)所示:
密钥能够自主协商与更新,无需预置,也无需人工干预,具有动态性。该协议利用无线信道可能丢包的特性,通信双方利用丢包后所共有的相同消息,协商密钥建立通信,具有自主协商与更新的特性。因为攻击者不能实时监测通信信道中的消息,因此无法获知共有信息,推导出初始密钥。
本发明是运行在网络应用层的协议,可以应用于无线网络中需要通信的设备之间,尤其是资源受限的设备,该协议是一种轻量级的密钥协商协议,相对于公钥体系来讲对资源受限的设备更加友好。
该协议利用无线传输中随机因素来建立通信双方的密钥,并且具有自动恢复安全的特性。本协议采用的无线传输中的随机因素是数据链路层不可避免的,真正的随机分组丢失。
如果发送方希望通过不完善的无线信道与接收方通信或是为了以后通信,这里需要建立初始通信密钥,因此双方需要进入密钥协商阶段建立共享的密钥。在协商之前,双方不需要预共享任何秘密材料,也不需要依赖数字证书等公钥体系。
为了验证所提出的方案可以在实际通信环境中的合理时间内引导安全通信,我们使用Raspberry 3模型B进行仿真实验。我们基于WLAN和蓝牙这两种无线信道进行了数据传输实验。
1)发送方Alice希望与接收方Bob通信,构造密钥协商请求包request_packet发送给接收方,MESSAGE字段的内容设置为Alice的MAC地址。
2)接收方Bob接收到请求包request_packet,提取出数据包中的内容进行验证,如果验证结构为真,那么接收方提取MASSAGE字段中的值,如果检查结果为真,则Bob 将考虑是否愿意与Alice开始密钥协商。当Bob不想与Alice通信时,它将保持沉默。对于Alice,在发送请求数据包之后,它必须等待TH。在此期间,如果Alice没有收到Bob发送的响应数据包,这意味着请求已被拒绝,则Alice必须在下一个请求之前等待20s。如果Alice仍然频繁发送请求数据包,则Bob将在Td期间拒绝每个数据包。但是,如果鲍勃想与爱丽丝开始密钥协商,它将发送一个MESSAGE值设置为鲍勃的识别信息的accepting_packet。两个节点都进入密钥协商阶段。
3)实验中在Alice收到Bob接受协商的accepting_packet后,在WLAN环境中,在30s时间内发送100,000个随机消息数据包random_packet;在蓝牙环境中,在20s内发送1,000个随机消息数据包random_packet。数据包中的MESSAGE字段的值由Alice 随机生成的信息设置。在此期间,无需对所有数据包进行加密。当Alice发送此数据包时,该数据包的SEQ从0开始编号。
4)由于协议规定发送方在30s内发送所有随机数据包,因此当Bob收到第一个数据包时,将启动计时器,计时时间为60s+20s。在收到爱丽丝的第一个数据包后的20s时间内,Bob除了接收数据包外没有做任何其他事情。20s之后,Bob将在接收的同时提取随机数据包中的内容。如果数据包通过完整性验证和序列验证,则MESSAGE 和SEQ的值应存储在主存储器中。在验证期间,如果有两个数据包具有相同的SEQ,则意味着此密钥协商已受到攻击,Bob应向更高级别的协议报告。当60s+20s计时器结束时,Bob应该检查随机数据包的数量M是否超过阈值70,000。如果超出了, Bob将开始生成通信密钥并启动120s计时器。接收方保持两个线性列表,即m[i] (i=0,1,2,…,S)和s[j](j=0,1,2,…,S),其中S≧M。m[.]用于存储MESSAGE字段的值, s[.]用于以m[.]的相同顺序存储SEQ字段的值。然后,在第一个T2期间,将由哈希函数sha256处理m[.],并将结果存储在线性列表ms[.]中,计算方式公式(9)所示:
ms[i]=sha(m[i]) (9)
ms[.]将根据公式(10)计算得出初始密钥K0:
K0=sha(ms[0]+…+ms[i]+…+ms[S]) (10)
接收方生成K0后,使用密钥导出函数kdf(.)派生出用于生成消息认证码的密钥,由于消息验证码需要在信道中传输,因此,为了保护初始密钥,不直接使用K0加密,而是使用派生出的密钥,防止泄密。计算方式如下公式(11):
KD=kdf(K0,0,1) (11)
Kdf函数的第一个参数时前面得出的初始密钥K0;第二个参数是加密盐,是一个随机数,在此协议中设为0;第三个参数是迭代次数,在此部分中为1。
此后,s[.]将通过压缩函数比如zigzag函数进行压缩得到SC。HMAC将通过公式(12)
计算得出,如下:
HMACresponse=sha256(SC) (12)
得出这些字段后,接收方将创建响应数据包response_packet,将MESSAGE的字段设置为SC,并将该数据包发送给发送方。
5)Alice计算密钥并确认:发送完所有随机数据包后,启动一个时长为30s+20s+120s 的计时器。在计时器用尽之前,Alice将尝试接收Bob发送的response_packet。如果收到数据包,将提取数据包中每个字段的内容。完成此操作后,可以通过解压缩SC来获得s[.]。然后,Alice很容易获得m[.]。通过(9)、(10)、(11)和(12),Alice 计算出了了K0、KD和HMACA。如果HMACA与response_packet中的HMAC字段的值相同,则Alice正确获取K0。否则,可能是由于传输过程中出现错误或者遭到攻击者攻击,这时,Alice应向更高级别的协议报告。当30s+20s+120s的计时器结束时,发送方启动一个120s计时器。
在第一个120s中,Alice使用KD根据公式(13)计算response_packet的ACK(A)。
ACK=HMAC_md5(KD,SC) (13)
然后,Alice将创建一个MESSAGE的值设置为ACK的acknowledge_packet。
6)接收器发送确认数据包以完成密钥协商:对于接收方,当2T2计时器结束时,它将启动2T3计时器。在2T3计时器结束之前,如果接收方接收到来自发送方的 acknowledge_packet,则双方之间的通信密钥将成功建立。
7)实验过程中,将笔记本电脑与Wireshark软件配合使用来模仿攻击者Eve的行为。
并且进行了不同距离的实验,分别为0.5m、1.5m、3m、5m,每个距离重复了10次实验,得出图4距离与丢包率的折线图。
由图4可以看出,随着距离的增加,丢包率增大,并且WLAN的丢包率上升较快,因此攻击者Eve将以压倒性的概率遭受至少一个分组丢失,验证了我们这个协议对于攻击者窃听的抵抗能力。
Claims (9)
1.一种无线设备间密钥自动协商方法,其特征在于,包括以下步骤:
1)发送方构造密钥协商请求包request_packet,表示希望与接收方进行密钥协商,并发送至接收方;请求包request_packet的MESSAGE字段内容设置为发送方的MAC地址;
2)接收方接收到请求包request_packet,提取出请求包request_packet中的内容进行验证,如果验证结果为真,则接收方提取请求包request_packet中Message字段中的值,并检查MESSAGE的值是否符合MAC地址的格式,如果检查结果为真,则接收方考虑是否愿意与发送方开始密钥协商;若接收方不愿意与发送方进行密钥协商,那么接收方将保持沉默。如果发送方等待时间TH没有收到接收方发送的响应数据包,则发送方在下一个请求之前等待时间TW;如果发送方仍发送请求数据包,则接收方在时间Td期间拒绝每个数据包;若接收方想与发送方开始密钥协商,则接收方发送一个通信字段值设置为接收方的MAC地址的accepting_packet;
3)发送方收到接收方接受协商的accepting_packet后,在T1时间内发送NS个随机消息数据包random_packet,所述NS个随机消息数据包random_packet的序列字段SEQ按照发送顺序从0开始编号,并且发送方存储所有已发送的随机消息数据包;
4)当接收方收到第一个随机消息数据包时,接收方启动时间为2T1+Tw的计时器,在收到发送方的第一个随机消息数据包后的Tw时间内,接收方只接收随机消息数据包;Tw之后,接收方在接收的同时提取随机消息数据包random_packet中的内容,若random_packet通过完整性验证和序列验证,则存储random_packet通信字段MESSAGE和序列的字段SEQ的值;在序列验证期间,如果收到的随机消息数据包与之前存储的随机消息数据包的SEQ值相同,证明密钥协商可能受到了攻击者的攻击,并舍弃这两个随机消息数据包;当2T1+Tw计时器结束时,接收方检查随机数据包的数量M是否超过阈值Nr,如果超出,接收方开始生成通信密钥并启动2T2计时器;接收方保持两个线性列表,即m[i]和s[j],i=0,1,2,…,S;j=0,1,2,…,S,其中S≧M;m[.]用于存储MESSAGE字段的值,s[.]用于以m[.]的相同顺序存储SEQ字段的值;在第一个T2期间,由哈希函数sha256处理m[.],并将处理结果存储在线性列表ms[.]中;利用线性列表ms[.]计算初始密钥,并利用所述初始密钥计算派生密钥,利用压缩函数对s[.]进行压缩得到SC,填充到MESSAGE字段;利用哈希函数处理SC,得到response_packet中的消息验证码HMACresponse,最后接收方创建响应数据包response_packet,并将该数据包发送给发送方;
5)发送方发送完所有随机数据包后,启动一个时长为T1+TW+2T2的计时器,在该计时器用尽之前,发送方尝试接收接收方发送的response_packet,如果收到response_packet,则提取response_packet中每个字段的内容,通过解压缩SC来获得s[.],进而获得m[.],发送方计算出初始密钥K0、派生密钥KD和对应的消息验证码HMACA;判断发送方计算的HMACA与response_packet中的HMA字段的值HMACresponse是否相同,若相同,则发送方正确获取初始密钥,否则,发送方向更高级别的协议报告协商异常;当T1+TW+2T2的计时器结束时,发送方启动一个2T3计时器,在第一个T3中,发送方使用派生的密钥计算response_packet的ACK,并创建一个MESSAGE的值设置为ACK的数据包acknowledge_packet;
6)对于接收方,当2T2计时器结束时,启动2T3计时器;在2T3计时器结束之前,如果接收方接收到来自发送方的acknowledge_packet,则双方之间的通信密钥成功建立。
2.根据权利要求1所述的无线设备间密钥自动协商方法,其特征在于,步骤1)中,发送方构造密钥协商请求包request_packet的具体实现过程包括:
1)发送方构建明文数据包PLAINTEXT,填充各个字段的值,并连接得到:PLAINTEXT=(PHASE||RETRAN||LEN||SEQ||MESSAGE);其中,PHASE为通信阶段的标志位;RETRAN为重传标志;LEN为通信数据的长度标志位;SEQ为序列的标志位;MESSAGE为通信数据;||表示连接;
2)利用最优非对称加密方案fOAEP()加工PLAINTEXT,得到填充后的结果RESULT:RESULT=fOAEP(PLAINTEXT,a);a为一次性随机数;
3)计算消息验证码HMAC:HMAC=sha256(RESULT);sha256()是哈希值计算函数;
4)利用下式拼接得到request_packet:request_packet=RESULT||HMAC。
3.根据权利要求2所述的无线设备间密钥自动协商方法,其特征在于,步骤2)中,接收方提取出请求包request_packet的过程包括:
1)接收方根据字节数提取request_packet中的结果值RESULTr和消息验证码HMACr;
3)利用RESULTr计算得出HMAC′r:HMAC′r=sha256(RESULTr);sha256()是哈希值计算函数;
4)将计算得到的HMAC′r与从接收到的request_packet中提取的HMAC进行比较,若相同,则接收方已完全正确接收到数据包中携带的信息;反之,数据包可能遭到破坏或伪造,向高层协议报告发生攻击异常,停止协商。
4.根据权利要求1所述的无线设备间密钥自动协商方法,其特征在于,步骤4)中,ms[i]=sha(m[i]);其中,sha()表示哈希函数;ms[i]表示线性列表ms[.]中的第i个元素;m[i]表示m[.]中的第i个元素。
5.根据权利要求4所述的无线设备间密钥自动协商方法,其特征在于,初始密钥K0的计算公式为:
K0=sha(ms[0]+…+ms[i]+…+ms[S]);
其中,sha为sha256的计算函数,输入原文可以输出该原文的hash值。
6.根据权利要求5所述的无线设备间密钥自动协商方法,其特征在于,派生的密钥KD=kdf(K0,0,1);kdf(.)表示密钥导出函数。
7.根据权利要求6所述的无线设备间密钥自动协商方法,其特征在于,
HMACresponse的计算公式为:
HMACresponse=sha256(SC);
其中,SC是s[.]经压缩函数压缩得到的结果;sha256()是哈希值计算函数。
8.根据权利要求7所述的无线设备间密钥自动协商方法,其特征在于,ACK的计算公式为:
ACK=HMAC_md5(KD,SC);
其中,HMAC_md5(.)是从MD5哈希函数构造的键控哈希算法。
9.根据权利要求1所述的无线设备间密钥自动协商方法,其特征在于,步骤3)中,随机消息数据包random_packet中的MESSAGE字段的值设置为由发送方随机生成的信息,在T1时间内,不对所有数据包进行加密,当发送方发送随机消息数据包random_packet时,该随机消息数据包random_packet的序列字段SEQ从0开始编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010013485.3A CN111200817B (zh) | 2020-01-07 | 2020-01-07 | 无线设备间密钥自动协商方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010013485.3A CN111200817B (zh) | 2020-01-07 | 2020-01-07 | 无线设备间密钥自动协商方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111200817A true CN111200817A (zh) | 2020-05-26 |
CN111200817B CN111200817B (zh) | 2022-07-19 |
Family
ID=70747677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010013485.3A Active CN111200817B (zh) | 2020-01-07 | 2020-01-07 | 无线设备间密钥自动协商方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111200817B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113455024A (zh) * | 2020-05-29 | 2021-09-28 | 华为技术有限公司 | 一种密钥获取方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004100496A2 (en) * | 2004-09-02 | 2004-11-18 | Pisaramedia Oy | Ends - messaging protocol that recovers and has backward security |
CN101582906A (zh) * | 2009-06-23 | 2009-11-18 | 中国人民解放军信息工程大学 | 密钥协商方法和装置 |
CN102413463A (zh) * | 2011-10-12 | 2012-04-11 | 厦门大学 | 填充序列长度可变的无线媒体接入层鉴权和密钥协商方法 |
CN103634104A (zh) * | 2013-11-26 | 2014-03-12 | 常州大学 | 基于证书的三方认证密钥协商协议产生方法 |
CN107528687A (zh) * | 2017-09-29 | 2017-12-29 | 西安电子科技大学 | 基于物理层信道互相关性的动态密钥量化协商方法 |
CN110266499A (zh) * | 2019-07-08 | 2019-09-20 | 西南交通大学 | 一种基于盲签名的无线体域网匿名认证与密钥协商方法 |
-
2020
- 2020-01-07 CN CN202010013485.3A patent/CN111200817B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004100496A2 (en) * | 2004-09-02 | 2004-11-18 | Pisaramedia Oy | Ends - messaging protocol that recovers and has backward security |
CN101582906A (zh) * | 2009-06-23 | 2009-11-18 | 中国人民解放军信息工程大学 | 密钥协商方法和装置 |
CN102413463A (zh) * | 2011-10-12 | 2012-04-11 | 厦门大学 | 填充序列长度可变的无线媒体接入层鉴权和密钥协商方法 |
CN103634104A (zh) * | 2013-11-26 | 2014-03-12 | 常州大学 | 基于证书的三方认证密钥协商协议产生方法 |
CN107528687A (zh) * | 2017-09-29 | 2017-12-29 | 西安电子科技大学 | 基于物理层信道互相关性的动态密钥量化协商方法 |
CN110266499A (zh) * | 2019-07-08 | 2019-09-20 | 西南交通大学 | 一种基于盲签名的无线体域网匿名认证与密钥协商方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113455024A (zh) * | 2020-05-29 | 2021-09-28 | 华为技术有限公司 | 一种密钥获取方法及相关装置 |
CN113455024B (zh) * | 2020-05-29 | 2023-01-13 | 华为技术有限公司 | 一种密钥获取方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111200817B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cao et al. | Fast authentication and data transfer scheme for massive NB-IoT devices in 3GPP 5G network | |
Cao et al. | Anti-quantum fast authentication and data transmission scheme for massive devices in 5G NB-IoT system | |
CN106612176B (zh) | 一种基于量子真随机数协商密钥协商系统及协商方法 | |
WO2022021992A1 (zh) | 一种基于NB-IoT通信的数据传输方法、系统及介质 | |
Saxena et al. | Dynamic secrets and secret keys based scheme for securing last mile smart grid wireless communication | |
EP2634993A1 (en) | System and method for connecting client devices to a network | |
US20170257352A1 (en) | Improved installation of a terminal in a secure system | |
WO2016056987A1 (en) | Generating a symmetric encryption key | |
CN111404664A (zh) | 基于秘密共享和多个移动设备的量子保密通信身份认证系统和方法 | |
EP3205051A1 (en) | Mutual authentication | |
CN112040485A (zh) | 局域网密钥协商方法、系统和计算机可读存储介质 | |
CN111200817B (zh) | 无线设备间密钥自动协商方法 | |
CN110912692A (zh) | 一种基于轻型证书的传感器网络认证密钥建立方法及其实施装置 | |
CN110417804B (zh) | 一种适于单片机实现的双向身份认证加密通信方法及系统 | |
CN114928503B (zh) | 一种安全通道的实现方法及数据传输方法 | |
Zhang et al. | FKR: An efficient authentication scheme for IEEE 802.11 ah networks | |
Tao et al. | WiRE: Security Bootstrapping for Wireless Device-to-Device Communication | |
CN112822015B (zh) | 信息传输方法及相关装置 | |
CN115766119A (zh) | 通信方法、装置、通信系统及存储介质 | |
Wang et al. | Design and implementation of secure and reliable information interaction architecture for digital twins | |
CN115150067A (zh) | 一种基于网络隐蔽通道的tls协议构建方法及系统 | |
CN114707158A (zh) | 基于tee的网络通信认证方法以及网络通信认证系统 | |
CN114386020A (zh) | 基于量子安全的快速二次身份认证方法及系统 | |
Hu et al. | Toward a resilient key exchange protocol for IoT | |
CN107579984B (zh) | 一种面向网络层的安全通信链路建立方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |