通信方法、装置及系统、计算机可读存储介质与流程

文档序号:31837741发布日期:2022-10-18 21:47阅读:38来源:国知局
通信方法、装置及系统、计算机可读存储介质与流程

1.本技术涉及通信技术领域,特别涉及一种通信方法、装置及系统、计算机可读存储介质。


背景技术:

2.发布/订阅通信系统包括发布者(publisher)(消息的发送者)、订阅者(subscriber)(消息的接收者)和代理节点(broker)。发布者和订阅者通常有多个,而代理节点只有一个。发布者和订阅者分别与代理节点建立连接,发布者向代理节点发布消息,订阅者向代理节点订阅消息。当代理节点接收到与订阅者所订阅的内容相匹配的消息时,代理节点会将该消息发送给订阅者。
3.在目前的发布/订阅通信系统中,每个设备都分别与代理节点建立安全连接,不同设备之间需要通过代理节点的中转进行通信。由于设备之间不存在直接的安全连接,即使代理节点对来自发布者的消息进行篡改或伪造,订阅者也无法验证消息的真伪,一旦代理节点遭受攻击,会影响整个系统的通信安全,因此目前通信系统的通信安全性和可靠性较低。


技术实现要素:

4.本技术提供了一种通信方法、装置及系统、计算机可读存储介质,可以解决目前通信系统的通信安全性和可靠性较低的问题。
5.第一方面,提供了一种通信方法,应用于通信系统。该通信系统包括:发送设备、接收设备以及n个认证设备,n个认证设备包括代理设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。该方法包括:代理设备接收来自发送设备的第一消息,该第一消息包括发送设备的设备标识、第一数据以及发送设备分别与m个认证设备之间的m个第一mac值,每个第一mac值基于第一数据以及发送设备与对应的认证设备之间的共享密钥得到,2≤m≤n。代理设备基于第一消息,获取m个认证设备分别与接收设备之间的m个第二mac值,每个第二mac值基于第一数据以及对应的认证设备与接收设备之间的共享密钥得到。代理设备向接收设备发送第二消息,该第二消息包括第二数据以及m个认证设备的设备标识与m个第二mac值的对应关系。
6.其中,m个认证设备的设备标识与m个第二mac值的对应关系用于供接收设备验证第二数据与第一数据是否相同,也即是认证该第二数据是否被篡改过或者是伪造数据。
7.本技术中,由多个认证设备对来自发送设备的数据进行认证,并在向接收设备发送的消息中携带来自多个认证设备的mac值,通过分布式多方认证的方式解决了目前通信方式中所存在的代理设备的单点安全问题,可以有效避免代理设备对通信设备之间的通信消息进行篡改或伪造,提高了通信安全性和可靠性。
8.可选地,m个认证设备包括代理设备,则代理设备基于第一消息,获取m个认证设备分别与接收设备之间的m个第二mac值的实现过程,包括:代理设备根据第一数据以及代理
设备与发送设备之间的共享密钥,生成代理设备与发送设备之间的第一mac验证值。响应于第一mac验证值跟发送设备与代理设备之间的第一mac值一致,代理设备根据第一数据以及代理设备与接收设备之间的共享密钥,生成代理设备与接收设备之间的第二mac值。其它认证设备生成第二mac值的方式可参考代理设备生成第二mac值的方式。
9.可选地,代理设备基于第一消息,获取m个认证设备分别与接收设备之间的m个第二mac值的实现过程,包括:代理设备向第一认证设备发送认证信息,认证信息包括发送设备的设备标识、接收设备的设备标识、第一数据以及发送设备与第一认证设备之间的第一mac值,第一认证设备为m个认证设备中除代理设备以外的认证设备。代理设备接收第一认证设备发送的第一认证设备与接收设备之间的第二mac值。
10.可选地,代理设备接收来自发送设备的第一密钥协商消息,该第一密钥协商消息包括共享参数和m个第一安全参数,第一安全参数基于共享参数得到,每个第一安全参数用于供一个认证设备生成与发送设备之间的共享密钥。代理设备基于第一密钥协商消息,获取分别来自m个认证设备的m个第二安全参数,第二安全参数基于共享参数得到,每个第二安全参数用于供发送设备生成与对应的认证设备之间的共享密钥。代理设备向发送设备发送第二密钥协商消息,第二密钥协商消息包括m个认证设备的设备标识与m个第二安全参数的对应关系。
11.本技术中,通信设备基于代理设备实现了通过一次密钥协商过程完成与多个认证设备之间的密钥协商,与分别同单个认证设备进行密钥协商相比,既减小了网络开销,又提高了密钥协商的效率。另外,通信设备在与多个认证设备进行密钥协商之前,无需感知网络中除代理设备以外的其它认证设备,也无需选择与其进行密钥协商的认证设备,通信设备的计算开销较小,方案可实现性较高。
12.可选地,代理设备基于第一密钥协商消息,获取分别来自m个认证设备的m个第二安全参数的实现过程,包括:代理设备根据共享参数,采用密钥协商算法生成代理设备对应的第二安全参数;以及,代理设备向m-1个第二认证设备分别发送第三密钥协商消息,并接收分别来自m-1个第二认证设备的m-1个第二安全参数,其中,第三密钥协商消息包括共享参数以及一个第一安全参数,发送给不同第二认证设备的第三密钥协商消息所包括的第一安全参数不同,第二认证设备为n个认证设备中除代理设备以外的认证设备。
13.可选地,发送设备中存储有公钥,n个认证设备中分别存储有公钥对应的一个私钥分量,m大于或等于系统安全门限。代理设备还可以获取分别来自m个认证设备的m个子签名,每个子签名由对应的认证设备采用自身所存储的私钥分量对m个第二安全参数加密得到。代理设备采用门限签名技术,根据m个子签名生成对m个第二安全参数的目标签名。其中,第二密钥协商消息还包括目标签名。
14.本技术中,通信设备与多个认证设备之间通过门限签名技术实现了对来自多个认证设备的安全参数的验证,以确保这些安全参数确实是由真实的认证设备生成的,而并非伪造或经过篡改的,保证了通信设备与认证设备之间的密钥协商的可靠性,进而可以提高通信安全。
15.第二方面,提供了一种通信方法,应用于通信系统,该通信系统包括:发送设备、接收设备以及n个认证设备,n个认证设备包括代理设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。该方法包括:
对于m个认证设备中的每个认证设备,发送设备根据待传输的数据以及发送设备与认证设备之间的共享密钥,生成发送设备与认证设备之间的mac值,2≤m≤n。发送设备向代理设备发送消息,消息包括发送设备的设备标识、数据以及发送设备分别与m个认证设备之间的m个mac值。
16.可选地,发送设备还根据共享参数,采用密钥协商算法生成m个第一安全参数,每个第一安全参数用于供一个认证设备生成与发送设备之间的共享密钥。发送设备向代理设备发送第一密钥协商消息,第一密钥协商消息包括共享参数和m个第一安全参数。发送设备接收来自代理设备的第二密钥协商消息,第二密钥协商消息包括m个认证设备的设备标识与m个第二安全参数的对应关系,第二安全参数基于共享参数得到。发送设备根据m个第二安全参数以及共享参数,分别生成与m个认证设备之间的共享密钥。
17.可选地,n个认证设备中分别存储有公钥对应的一个私钥分量,m大于或等于系统安全门限,第二密钥协商消息还包括对m个第二安全参数的目标签名,发送设备采用公钥对目标签名进行验证。
18.第三方面,提供了一种通信方法,应用于通信系统,该通信系统包括:发送设备、接收设备以及n个认证设备,n个认证设备包括代理设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。该方法包括:接收设备接收来自代理设备的消息,消息包括数据以及m个认证设备的设备标识与m个mac值的对应关系。对于m个认证设备中的每个认证设备,接收设备根据数据以及接收设备与认证设备之间的共享密钥,生成接收设备与认证设备之间的mac验证值。响应于m个认证设备中的每个认证设备对应的mac值,跟接收设备与认证设备之间的mac验证值一致,接收设备确定对数据认证成功。
19.可选地,响应于m个认证设备中的任一认证设备对应的mac值,跟接收设备与认证设备之间的mac验证值不一致,接收设备确定对数据认证失败。
20.第四方面,提供了一种通信装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
21.第五方面,提供了一种通信装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第二方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
22.第六方面,提供了一种通信装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第三方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
23.第七方面,提供了一种代理设备,包括:处理器和存储器;
24.所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
25.所述处理器,用于调用所述计算机程序,实现上述第一方面及其各实施方式中的方法。
26.第八方面,提供了一种通信设备,包括:处理器和存储器;
27.所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
28.所述处理器,用于调用所述计算机程序,实现上述第二方面及其各实施方式中的方法。
29.第九方面,提供了一种通信设备,包括:处理器和存储器;
30.所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
31.所述处理器,用于调用所述计算机程序,实现上述第三方面及其各实施方式中的方法。
32.第十方面,提供了一种通信系统,包括:多个通信设备和n个认证设备,所述多个通信设备包括发送设备和接收设备,所述n个认证设备包括代理设备,所述多个通信设备以及所述n个认证设备中除所述代理设备以外的其它认证设备分别与所述代理设备通信连接;
33.其中,所述代理设备包括如第四方面所述的通信装置或者为如第七方面所述的代理设备;所述发送设备包括如第五方面所述的通信装置或者为如第八方面所述的通信设备;所述接收设备包括如第六方面所述的通信装置或者为如第九方面所述的通信设备。
34.第十一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被代理设备的处理器执行时,实现上述第一方面及其各实施方式中的方法;或者,当所述指令被通信设备的处理器执行时,实现上述第二方面及其各实施方式中的方法或上述第三方面及其各实施方式中的方法。
35.第十二方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现上述第一方面及其各实施方式中的方法、上述第二方面及其各实施方式中的方法或者上述第三方面及其各实施方式中的方法。
36.本技术提供的技术方案带来的有益效果至少包括:
37.本技术中,由多个认证设备对来自发送设备的数据进行认证,并在向接收设备发送的消息中携带来自多个认证设备的mac值,通过分布式多方认证的方式解决了目前通信方式中所存在的代理设备的单点安全问题,可以有效避免代理设备对通信设备之间的通信消息进行篡改或伪造,提高了通信安全性和可靠性。另外,通信设备基于代理设备实现了通过一次密钥协商过程完成与多个认证设备之间的密钥协商,与分别同单个认证设备进行密钥协商相比,既减小了网络开销,又提高了密钥协商的效率。通信设备在与多个认证设备进行密钥协商之前,无需感知网络中除代理设备以外的其它认证设备,也无需选择与其进行密钥协商的认证设备,通信设备的计算开销较小,方案可实现性较高。在密钥协商过程中,通信设备与多个认证设备之间还可以通过门限签名技术实现了对来自多个认证设备的安全参数的验证,以确保这些安全参数确实是由真实的认证设备生成的,而并非伪造或经过篡改的,保证了通信设备与认证设备之间的密钥协商的可靠性,进而可以提高通信安全。
附图说明
38.图1是本技术实施例涉及的通信系统的架构示意图;
39.图2是本技术实施例提供的一种通信系统的应用场景示意图;
40.图3是本技术实施例提供的一种通信方法的流程示意图;
41.图4是本技术实施例提供的另一种通信方法的流程示意图;
42.图5是本技术实施例提供的一种通信装置的结构示意图;
43.图6是本技术实施例提供的另一种通信装置的结构示意图;
44.图7是本技术实施例提供的又一种通信装置的结构示意图;
45.图8是本技术实施例提供的再一种通信装置的结构示意图;
46.图9是本技术实施例提供的还一种通信装置的结构示意图;
47.图10是本技术实施例提供的一种代理设备的框图;
48.图11是本技术实施例提供的一种通信设备的框图。
具体实施方式
49.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
50.为了便于读者对本技术方案的理解,以下首先对一些名词进行解释。
51.1、密钥:指密码算法中所需要的参数。密钥一般分为会话密钥、密钥加密密钥和根密钥。会话密钥(session key)指发送方与接收方进行数据传输时所采用的一次性密钥,在数据传输完成之后该密钥将会被销毁。密钥加密密钥(key-encrypting key)指对发送方与接收方进行数据传输时采用的密钥进行加密的密钥,也可以称为次根密钥、辅助密钥(secondary key)或密钥传输密钥等。根密钥指对密钥加密密钥进行加密的密钥,一般存储在设备的处理器中。
52.2、对称加密算法:指发送方与接收方采用相同的密钥进行加解密的算法,也可以称为单钥密码算法。常用的对称加密算法包括数据加密标准(data encryption standard,des)算法、高级加密标准(advanced encryption standard,aes)算法或国际数据加密算法(international data encryption algorithm,idea)等。
53.3、非对称加密算法:指发送方与接收方采用不同的密钥进行加解密的算法,也可以称为公钥密码算法。非对称加密算法涉及一对密钥,分别为私钥(secret key,sk)和公钥(public key,pk)。私钥由密钥对所有者持有,不可公布;公钥由密钥对持有者向外公布给他人。公钥用作加密,私钥用作解密,使用公钥加密的数据只能使用对应的私钥解密才能得到原本的数据。常用的非对称加密算法包括数字签名算法(digital signature algorithm,dsa),rsa(rivest-shamir-adleman)算法或椭圆曲线密码编码学(elliptic curves cryptography,ecc)算法等。
54.4、消息鉴权码(message authentication code,mac):也可称为消息认证码,用于认证消息的完整性(未被篡改)和可靠性(不是伪造的虚假数据)。消息鉴权码的鉴权原理是:发送方和接收方事先协商好共享密钥,发送方使用共享密钥生成任意长度的消息的mac值,再向接收方传输该消息以及该mac值;接收方使用共享密钥生成该消息的mac值,并将自己生成的mac值与从发送方接收到的mac值进行比对,若mac值一致,则接收方可以判定该消息的确来自发送方(认证成功),反之,若mac值不一致,则接收方可以判定该消息不是来自发送方(认证失败)。
55.5、签名:使用非对称加密算法对需要传输的数据的摘要进行加密,得到的密文被称为该次传输过程的签名。
56.6、门限签名(阈值签名):(t,n)门限签名的概念是由desmedt和frankel在1991年
首次提出来的,表示包含n个成员的群组中,任意t个成员的签名都可以恢复出群组签名。门限签名技术根据有无可信中心(dealer)分为两类:一类是有可信中心的,一类是没有可信中心的。在有可信中心的门限签名中,系统由可信中心及n个群组成员p={p1,p2,

,pn}组成。可信中心通过门限密钥生成算法生成一对公私钥(pk,sk),并且将私钥sk分为n个不同的私钥分量,并将其分别分发给n个成员,不同成员之间的私钥分量相互保密,群组中的任意t个成员能够计算出私钥sk,任意少于t个成员合谋都无法计算出该私钥sk。在无可信中心的门限签名中,群组中的n个成员通过协商方式一起生成一对公私钥(pk,sk),同时各个成员分别获得自己的私钥分量。与有可信中心的门限签名一样,群组中的任意t个成员可以计算出私钥sk,而任意少于t个成员合谋都无法计算出该私钥sk。
57.本技术实施例提供了一种通信系统,该通信系统包括:多个通信设备以及n个认证设备,其中,n≥2。该n个认证设备包括代理设备。该多个通信设备以及该n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接。也即是,通信设备之间通过代理设备间接通信,通信设备与其它认证设备之间通过代理设备间接通信。n个认证设备共同构成一个安全联盟来提供通信设备之间的安全通信。本技术实施例中,通信连接可以指有线连接或无线连接。
58.可选地,通信设备可以是终端,例如可以是手机、电脑、智能电视、智能冰箱或智能空调等物联网(internet of things,iot)终端;或者,通信设备也可以是服务器等具有通信功能的其它设备。代理设备也可称为转发设备,例如可以是网关。除代理设备以外的其它认证设备可以是终端或网络设备(例如路由器或网关)等。
59.例如,图1是本技术实施例涉及的通信系统的架构示意图。如图1所示,该通信系统包括:多个通信设备101a-101c(统称为通信设备101)以及多个认证设备102a-102c。其中,认证设备102a为代理设备。图中通信设备和认证设备的数量仅用作示例性说明,不用作对本技术实施例提供的通信系统的限定。
60.可选地,本技术实施例提供的通信系统可以采用发布/订阅通信模式,即该通信系统可以是发布/订阅通信系统。通信设备101可以是消息的发布者或订阅者。发布/订阅通信模式是一种典型的iot场景下的本地通信方式,通信设备之间通过代理设备的中转进行通信。基于代理设备的发布/订阅通信模式,相对于通信设备之间直接建立连接的点对点通信方式具有可扩展性好、配置方便等优点。其中,本地通信是指距离比较近的设备之间的通信,例如处于同一局域网内的设备之间的通信,区别于要经过以太网的长距离通信。本地通信场景下的设备也可称为本地设备。
61.可选地,本技术实施例提供的通信系统可以应用于各种iot场景,例如智能家居、智能工厂或车联网场景等。例如,图2是本技术实施例提供的一种通信系统的应用场景示意图。该应用场景为智能家居场景。如图2所示,该应用场景包括网关以及多个iot终端,该多个iot终端包括手机、电脑、智能电视、智能冰箱、智能空调、智能窗帘、智能热水器、智能灯和智能燃气灶。其中,网关用作代理设备,iot终端之间通过网关的中转进行通信。其中部分iot终端可用作认证设备,例如手机或电脑等可用作认证设备,用于与网关共同构成安全联盟来保障智能家居场景中的通信安全。
62.本技术实施例提供的通信方法应用于上述通信系统,该通信系统包括发送设备、接收设备以及n个认证设备,该n个认证设备包括代理设备。发送设备和接收设备分别为上
述通信系统中的不同通信设备。例如,在如图1所示的通信系统中,发送设备可以是通信设备101a,接收设备可以包括通信设备101b和/或通信设备101c。值得说明的是,同一通信设备在一种业务场景下可用作发送设备,在另一种业务场景下可用作接收设备。
63.可选地,每个通信设备中均存储有与多个认证设备之间的共享密钥,对应地,认证设备中也相应存储有与通信设备之间的共享密钥。例如,通信系统的系统安全门限为t,2≤t≤n,则每个通信设备中均存储有与至少t个认证设备之间的共享密钥,其中,系统安全门限t表示:对于一个消息,当有不少于t个认证设备为其背书时就被认为是合法的。本技术实施例中,为了减小对消息的认证开销,通信设备与认证设备之间采用一个对称密钥作为共享密钥,即通信设备中存储的与认证设备之间的共享密钥跟该认证设备中存储的与该通信设备之间的共享密钥相同。当然也可以采用一对非对称密钥作为通信设备与认证设备之间的共享密钥,本技术实施例对此不做限定。
64.可选地,通信设备与多个认证设备之间可以通过密钥协商的方式生成共享密钥。图3是本技术实施例提供的一种通信方法的流程示意图,该方法示出了通信设备与m个认证设备之间通过密钥协商的方式生成共享密钥的实现过程,2≤m≤n。如图3所示,该方法包括:
65.步骤301、通信设备根据共享参数,采用密钥协商算法生成m个第一安全参数。
66.每个第一安全参数用于供一个认证设备生成与该通信设备之间的共享密钥。该通信设备可以是通信系统中的发送设备或接收设备。
67.可选地,本技术实施例中以通信设备与认证设备之间采用迪菲-赫尔曼(diffie

hellman key exchange,dh)密钥交换算法创建共享密钥为例进行说明。例如,m=4,共享参数包括g和p(dh密钥交换算法中所使用的参数,具体解释可参考相关算法),m个第一安全参数分别为a1,a2,a3和a4,其中,ai=g
ai mod p,1≤i≤4。《a1,a2,a3,a4》可以是通信设备生成的4个随机数,或者也可以是由外部输入的4个不同的数,本技术实施例对此不做限定。
68.可选地,若通信系统设置有系统安全门限t,则m的取值范围为t≤m≤n。
69.步骤302、通信设备向代理设备发送第一密钥协商消息。
70.该第一密钥协商消息包括共享参数和m个第一安全参数。
71.可选地,通信设备与代理设备之间基于传输层安全(transport layer security,tls)协议实现通信。例如,第一密钥协商消息可以基于对tls协议的clienthello消息扩展得到,共享参数和m个第一安全参数承载于clienthello消息的扩展字段中。其中,clienthello消息的结构体表述如下:
[0072][0073]
本技术实施例中,可以在clienthello消息的扩展字段“extension”中定义
keyshare字段来携带共享参数和安全参数,keyshare字段的结构体表述如下:
[0074]
struct{
[0075]
keyshareentry client_shares《0..2^16-1》;
[0076]
}keyshareclienthello
[0077]
步骤303、代理设备基于第一密钥协商消息,获取分别来自m个认证设备的m个第二安全参数。
[0078]
该第二安全参数基于共享参数得到,每个第二安全参数用于供通信设备生成与对应的认证设备之间的共享密钥。可选地,m个认证设备可以包括代理设备,或者也可以不包括代理设备。用于与通信设备进行密钥协商的m个认证设备可以由代理设备确定。
[0079]
在第一种实现方式中,m个认证设备包括代理设备,则步骤303的实现过程包括:代理设备根据共享参数,采用密钥协商算法生成该代理设备对应的第二安全参数。以及,代理设备向m-1个第二认证设备分别发送第三密钥协商消息,并接收分别来自该m-1个第二认证设备的m-1个第二安全参数。其中,每个第三密钥协商消息包括共享参数以及一个第一安全参数,发送给不同第二认证设备的第三密钥协商消息所包括的第一安全参数不同,第二认证设备为通信系统中的n个认证设备中除代理设备以外的认证设备。也即是,代理设备将m-1个第一安全参数分别分发给通信系统中除代理设备以外的m-1个认证设备。
[0080]
例如,请参考步骤301中的例子,代理设备(记为认证设备1)生成随机数b,根据随机数b以及共享参数g和p,生成该代理设备对应的第二安全参数b=g
b mod p。其它3个认证设备分别采用相同的算法生成各自对应的第二安全参数,这3个认证设备(记为认证设备2-4)分别生成的3个第二安全参数可记为c(采用随机数c)、d(采用随机数d)和e(采用随机数e)。其中,代理设备向认证设备2发送的第三密钥协商消息包括共享参数g和p以及第一安全参数a2;代理设备向认证设备3发送的第三密钥协商消息包括共享参数g和p以及第一安全参数a3;代理设备向认证设备4发送的第三密钥协商消息包括共享参数g和p以及第一安全参数a4。
[0081]
在第二种实现方式中,m个认证设备不包括代理设备,则步骤303的实现过程包括:代理设备向m个第二认证设备分别发送第三密钥协商消息,并接收分别来自该m个第二认证设备的m个第二安全参数。其中,每个第三密钥协商消息包括共享参数以及一个第一安全参数,发送给不同第二认证设备的第三密钥协商消息所包括的第一安全参数不同,该第二认证设备为通信系统中的n个认证设备中除代理设备以外的认证设备。各个第二认证设备生成第二安全参数的实现方式可参考上述描述,本技术实施例在此不再赘述。
[0082]
在上述两种实现方式中,m个认证设备还分别根据共享参数和一个第一安全参数,生成自身与通信设备之间的共享密钥。例如,请参考上述第一种实现方式中的例子,认证设备1根据随机数b、共享参数p和第一安全参数a1生成与通信设备之间的共享密钥key1=a
1b mod p;认证设备2根据随机数c、共享参数p和第一安全参数a2生成与通信设备之间的共享密钥key2=a
2c mod p;认证设备3根据随机数d、共享参数p和第一安全参数a3生成与通信设备之间的共享密钥key3=a
3d mod p;认证设备4根据随机数e、共享参数p和第一安全参数a4生成与通信设备之间的共享密钥key4=a
4e mod p。
[0083]
步骤304、代理设备向通信设备发送第二密钥协商消息。
[0084]
该第二密钥协商消息包括m个认证设备的设备标识与m个第二安全参数的对应关
系。例如,请参考步骤303中的例子,该对应关系可以表示为{(认证设备1,b);(认证设备2,c);(认证设备3,d);(认证设备4,e)}。其中,设备标识可以是互联网协议(internet protocol,ip)地址,媒体访问控制(media access control,mac)地址或硬件地址等能够在通信系统中唯一标识设备的信息。
[0085]
可选地,代理设备与通信设备之间基于tls协议实现通信。例如,第二密钥协商消息可以基于对tls协议的serverhello消息扩展得到,m个认证设备的设备标识与m个第二安全参数的对应关系承载于serverhello消息的扩展字段中。其中,serverhello消息的结构体表述如下:
[0086][0087]
本技术实施例中,可以在serverhello消息的扩展字段“extension”中定义keyshare字段来携带m个认证设备的设备标识与m个第二安全参数的对应关系,keyshare字段的结构体表述如下:
[0088]
struct{
[0089]
keyshareentry server_share;
[0090]
}keyshareserverhello
[0091]
步骤305、通信设备根据m个第二安全参数以及共享参数,分别生成与m个认证设备之间的共享密钥。
[0092]
例如,请参考步骤304中的例子,通信设备根据随机数a1、共享参数p和第二安全参数b生成与认证设备1之间的共享密钥key1=b
a1 mod p;通信设备根据随机数a2、共享参数p和第二安全参数c生成与认证设备2之间的共享密钥key2=c
a2 mod p;通信设备根据随机数a3、共享参数p和第二安全参数d生成与认证设备3之间的共享密钥key3=d
a3 mod p;通信设备根据随机数a4、共享参数p和第二安全参数e生成与认证设备1之间的共享密钥key4=e
a4
mod p。
[0093]
本技术实施例中,通信设备基于代理设备实现了通过一次密钥协商过程完成与多个认证设备之间的密钥协商,与分别同单个认证设备进行密钥协商相比,既减小了网络开销,又提高了密钥协商的效率。另外,通信设备在与多个认证设备进行密钥协商之前,无需感知网络中除代理设备以外的其它认证设备,也无需选择与其进行密钥协商的认证设备,通信设备的计算开销较小,方案可实现性较高。
[0094]
可选地,通信设备中还可以存储有公钥,该公钥对应的私钥被分为n个私钥分量,n个认证设备中分别存储有该公钥对应的一个私钥分量,认证设备之间对所存储的私钥分量相互保密,m大于或等于系统安全门限t。则在如图3所示的通信方法中的步骤303和步骤304之间,代理设备还可以获取分别来自m个认证设备的m个子签名,每个子签名由对应的认证
设备采用自身所存储的私钥分量对m个第二安全参数加密得到。然后,代理设备采用门限签名技术,根据m个子签名生成对该m个第二安全参数的目标签名,并在上述第二密钥协商消息中携带对该m个第二安全参数的目标签名,该目标签名用于供通信设备验证该m个第二安全参数的真实性。
[0095]
可选地,在上述步骤303中的第一种实现方式的基础上,代理设备获取分别来自m个认证设备的m个子签名的实现过程包括:代理设备采用自身所存储的私钥分量对m个第二安全参数进行签名,得到一个子签名;以及,代理设备向m-1个第二认证设备分别发送m个第二安全参数,并接收分别来自该m-1个第二认证设备的m-1个子签名。
[0096]
进一步地,通信设备在接收到包含m个认证设备的设备标识与m个第二安全参数的对应关系以及对该m个第二安全参数的目标签名的第二密钥协商消息之后,可以采用自身所存储的公钥对该目标签名进行验证,以确认该m个第二安全参数的真实性。通信设备在对目标签名验证成功之后,再生成与m个认证设备之间的共享密钥(即执行步骤305)。
[0097]
再进一步地,通信设备在对目标签名验证成功之后,还可以向代理设备发送该通信设备的证书以及对证书的签名,以供代理设备以及其它与该通信设备进行密钥协商的认证设备对该通信设备进行身份认证。
[0098]
本技术实施例中,通信设备与多个认证设备之间通过门限签名技术实现了对来自多个认证设备的安全参数的验证,以确保这些安全参数确实是由真实的认证设备生成的,而并非伪造或经过篡改的,保证了通信设备与认证设备之间的密钥协商的可靠性,进而可以提高通信安全。
[0099]
进一步地,在通信系统中的各个通信设备分别完成与多个认证设备的密钥协商之后,通信设备之间可以进行数据传输。图4是本技术实施例提供的另一种通信方法的流程示意图,该方法示出了通信设备之间进行通信的实现过程。如图4所示,该方法包括:
[0100]
步骤401、对于m个认证设备中的每个认证设备,发送设备根据待传输的第一数据以及发送设备与认证设备之间的共享密钥,生成该发送设备与该认证设备之间的第一mac值。
[0101]
可选地,发送设备可以根据第一数据以及该发送设备与认证设备之间的共享密钥,生成该发送设备与该认证设备之间的mac值。或者,发送设备也可以先计算第一数据的哈希值,并根据第一数据的哈希值以及该发送设备与认证设备之间的共享密钥,生成该发送设备与该认证设备之间的mac值。
[0102]
例如,在如图1所示的通信系统中,发送设备为通信设备101a,m个认证设备包括认证设备102a和认证设备102b,通信设备101a与认证设备102a之间的共享密钥记为ka1,通信设备101a与认证设备102b之间的共享密钥记为ka2。发送设备101a生成的与认证设备102a之间的mac值为maca1,发送设备101a生成的与认证设备102b之间的mac值为maca2。
[0103]
步骤402、发送设备向代理设备发送第一消息,该第一消息包括发送设备的设备标识、第一数据以及发送设备分别与该m个认证设备之间的m个第一mac值。
[0104]
可选地,发送设备分别与该m个认证设备之间的m个第一mac值可以采用m个认证设备的设备标识与m个第一mac值的对应关系表示。例如,请参考步骤401中的例子,发送设备分别与该m个认证设备之间的m个第一mac值可以表示为{(认证设备102a,maca1);(认证设备102b,maca2)}。
[0105]
可选地,发送设备与代理设备之间基于tls协议实现通信。例如,本技术实施例可以对tls记录协议(tls record potocol)进行扩展,在已有tls record potocol只携带一个mac值的基础上增加携带针对多个认证设备的多个mac值。其中,扩展后的tls record potocol的结构体表述如下:
[0106][0107][0108]
步骤403、代理设备基于第一消息,获取该m个认证设备分别与接收设备之间的m个第二mac值。
[0109]
每个第二mac值基于第一数据以及对应的认证设备与接收设备之间的共享密钥得到。
[0110]
可选地,m个认证设备包括代理设备,则步骤403的实现过程包括:代理设备根据第一数据以及代理设备与发送设备之间的共享密钥,生成该代理设备与发送设备之间的第一mac验证值。响应于第一mac验证值跟发送设备与代理设备之间的第一mac值一致,代理设备根据第一数据以及该代理设备与接收设备之间的共享密钥,生成代理设备与接收设备之间的第二mac值。响应于第一mac验证值跟发送设备与代理设备之间的第一mac值不一致,代理设备确定第一数据为伪造数据或发送设备到代理设备的传输过程中数据被篡改。
[0111]
可选地,步骤403的实现过程包括:代理设备向第一认证设备发送认证信息,并接收第一认证设备发送的该第一认证设备与接收设备之间的第二mac值。其中,认证信息包括发送设备的设备标识、接收设备的设备标识、第一数据以及发送设备与该第一认证设备之间的第一mac值,第一认证设备为m个认证设备中除代理设备以外的认证设备。第一认证设备生成与接收设备之间的第二mac值的实现方式可参考上述代理设备生成与接收设备之间的第二mac值的相关描述,本技术实施例在此不再赘述。
[0112]
当然,m个认证设备也可以不包括代理设备,本技术实施例对此不做限定。
[0113]
例如,请继续参考步骤401中的例子,在如图1所示的通信系统中,接收设备为通信设备101b,通信设备101b与认证设备102a之间的共享密钥记为kb1,通信设备101b与认证设备102b之间的共享密钥记为kb2。认证设备102a生成的与接收设备101b之间的mac值为macb1,认证设备102b生成的与接收设备101b之间的mac值为macb2。
[0114]
步骤404、代理设备向接收设备发送第二消息,该第二消息包括第二数据以及m个认证设备的设备标识与m个第二mac值的对应关系。
[0115]
其中,m个认证设备的设备标识与m个第二mac值的对应关系用于供接收设备验证第二数据与第一数据是否相同,也即是认证该第二数据是否被篡改过或者是伪造数据。
[0116]
例如,请参考步骤403中的例子,m个认证设备的设备标识与m个第二mac值的对应关系可以表示为{(认证设备102a,macb1);(认证设备102b,macb2)}。
[0117]
步骤405、对于m个认证设备中的每个认证设备,接收设备根据第二数据以及接收设备与认证设备之间的共享密钥,生成接收设备与该认证设备之间的mac验证值。
[0118]
步骤406、响应于m个认证设备中的每个认证设备对应的mac值,跟接收设备与该认证设备之间的mac验证值一致,接收设备确定对第二数据认证成功。
[0119]
可选地,响应于m个认证设备中的任一认证设备对应的mac值,跟接收设备与认证设备之间的mac验证值不一致,接收设备确定对第二数据认证失败,也即是,接收设备确定第二数据被篡改过或者是伪造数据。
[0120]
例如,请参考步骤404中的例子,若接收设备与认证设备102a之间的mac验证值与macb1一致,且接收设备与认证设备102b之间的mac验证值与macb2一致,则接收设备确定对第二数据认证成功,即第二数据的来源合法;否则接收设备确定对第二数据认证失败。
[0121]
本技术实施例中,由多个认证设备对来自发送设备的数据进行认证,并在向接收设备发送的消息中携带来自多个认证设备的mac值,通过分布式多方认证的方式解决了目前通信方式中所存在的代理设备的单点安全问题,可以有效避免代理设备对通信设备之间的通信消息进行篡改或伪造,提高了通信安全性和可靠性。
[0122]
本技术实施例提供的通信方法可以分为两个实现过程,第一个实现过程是图3示出的通信设备与多个认证设备之间的密钥协商过程,第二个实现过程是图4示出的通信设备之间的数据传输过程。本技术实施例提供的通信方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内。
[0123]
综上所述,在本技术实施例提供的通信方法中,由多个认证设备对来自发送设备的数据进行认证,并在向接收设备发送的消息中携带来自多个认证设备的mac值,通过分布式多方认证的方式解决了目前通信方式中所存在的代理设备的单点安全问题,可以有效避免代理设备对通信设备之间的通信消息进行篡改或伪造,提高了通信安全性和可靠性。另外,通信设备基于代理设备实现了通过一次密钥协商过程完成与多个认证设备之间的密钥协商,与分别同单个认证设备进行密钥协商相比,既减小了网络开销,又提高了密钥协商的效率。通信设备在与多个认证设备进行密钥协商之前,无需感知网络中除代理设备以外的其它认证设备,也无需选择与其进行密钥协商的认证设备,通信设备的计算开销较小,方案可实现性较高。在密钥协商过程中,通信设备与多个认证设备之间还可以通过门限签名技术实现了对来自多个认证设备的安全参数的验证,以确保这些安全参数确实是由真实的认证设备生成的,而并非伪造或经过篡改的,保证了通信设备与认证设备之间的密钥协商的可靠性,进而可以提高通信安全。
[0124]
图5是本技术实施例提供的一种通信装置的结构示意图。该装置应用于通信系统中的代理设备,通信系统包括:发送设备、接收设备以及n个认证设备,代理设备为n个认证设备中的一个认证设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。如图5所示,该装置50包括:
[0125]
接收模块501,用于接收来自发送设备的第一消息,第一消息包括发送设备的设备标识、第一数据以及发送设备分别与m个认证设备之间的m个第一mac值,每个第一mac值基于第一数据以及发送设备与对应的认证设备之间的共享密钥得到,2≤m≤n。
[0126]
获取模块502,用于基于第一消息,获取m个认证设备分别与接收设备之间的m个第二mac值,每个第二mac值基于第一数据以及对应的认证设备与接收设备之间的共享密钥得到。
[0127]
发送模块503,用于向接收设备发送第二消息,第二消息包括第二数据以及m个认证设备的设备标识与m个第二mac值的对应关系。
[0128]
可选地,m个认证设备包括代理设备,获取模块502,用于:根据第一数据以及代理设备与发送设备之间的共享密钥,生成代理设备与发送设备之间的第一mac验证值;响应于第一mac验证值跟发送设备与代理设备之间的第一mac值一致,根据第一数据以及代理设备与接收设备之间的共享密钥,生成代理设备与接收设备之间的第二mac值。
[0129]
可选地,获取模块502,用于:向第一认证设备发送认证信息,认证信息包括发送设备的设备标识、接收设备的设备标识、第一数据以及发送设备与第一认证设备之间的第一mac值,第一认证设备为m个认证设备中除代理设备以外的认证设备;接收第一认证设备发送的第一认证设备与接收设备之间的第二mac值。
[0130]
可选地,接收模块501,还用于接收来自发送设备的第一密钥协商消息,第一密钥协商消息包括共享参数和m个第一安全参数,第一安全参数基于共享参数得到,每个第一安全参数用于供一个认证设备生成与发送设备之间的共享密钥。获取模块502,还用于基于第一密钥协商消息,获取分别来自m个认证设备的m个第二安全参数,第二安全参数基于共享参数得到,每个第二安全参数用于供发送设备生成与对应的认证设备之间的共享密钥。发送模块503,还用于向发送设备发送第二密钥协商消息,第二密钥协商消息包括m个认证设备的设备标识与m个第二安全参数的对应关系。
[0131]
可选地,获取模块502,用于:根据共享参数,采用密钥协商算法生成代理设备对应的第二安全参数;以及,向m-1个第二认证设备分别发送第三密钥协商消息,并接收分别来自m-1个第二认证设备的m-1个第二安全参数,其中,第三密钥协商消息包括共享参数以及一个第一安全参数,发送给不同第二认证设备的第三密钥协商消息所包括的第一安全参数不同,第二认证设备为n个认证设备中除代理设备以外的认证设备。
[0132]
可选地,发送设备中存储有公钥,n个认证设备中分别存储有公钥对应的一个私钥分量,m大于或等于系统安全门限。如图6所示,装置50还包括:签名模块504。获取模块502,还用于获取分别来自m个认证设备的m个子签名,每个子签名由对应的认证设备采用自身所存储的私钥分量对m个第二安全参数加密得到。签名模块504,用于采用门限签名技术,根据m个子签名生成对m个第二安全参数的目标签名。其中,第二密钥协商消息还包括目标签名。
[0133]
图7是本技术实施例提供的又一种通信装置的结构示意图。该装置应用于通信系统中的发送设备,通信系统还包括:接收设备以及n个认证设备,n个认证设备包括代理设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。如图7所示,该装置70包括:
[0134]
处理模块701,用于对于m个认证设备中的每个认证设备,根据待传输的数据以及发送设备与认证设备之间的共享密钥,生成发送设备与认证设备之间的mac值,2≤m≤n。
[0135]
发送模块702,用于向代理设备发送消息,消息包括发送设备的设备标识、数据以及发送设备分别与m个认证设备之间的m个mac值。
[0136]
可选地,如图8所示,装置70还包括:接收模块703。处理模块701,还用于根据共享参数,采用密钥协商算法生成m个第一安全参数,每个第一安全参数用于供一个认证设备生成与发送设备之间的共享密钥。发送模块702,还用于向代理设备发送第一密钥协商消息,第一密钥协商消息包括共享参数和m个第一安全参数。接收模块703,用于接收来自代理设
备的第二密钥协商消息,第二密钥协商消息包括m个认证设备的设备标识与m个第二安全参数的对应关系,第二安全参数基于共享参数得到。处理模块701,还用于根据m个第二安全参数以及共享参数,分别生成与m个认证设备之间的共享密钥。
[0137]
可选地,发送设备中存储有公钥,n个认证设备中分别存储有公钥对应的一个私钥分量,m大于或等于系统安全门限,第二密钥协商消息还包括对m个第二安全参数的目标签名。处理模块701,还用于采用公钥对目标签名进行验证。
[0138]
图9是本技术实施例提供的还一种通信装置的结构示意图。该装置应用于通信系统中的接收设备,通信系统还包括:发送设备以及n个认证设备,n个认证设备包括代理设备,发送设备、接收设备以及n个认证设备中除代理设备以外的其它认证设备分别与代理设备通信连接,其中,n≥2。如图9所示,该装置90包括:
[0139]
接收模块901,用于接收来自代理设备的消息,消息包括数据以及m个认证设备的设备标识与m个mac值的对应关系。
[0140]
生成模块902,用于对于m个认证设备中的每个认证设备,接收设备根据数据以及接收设备与认证设备之间的共享密钥,生成接收设备与认证设备之间的mac验证值。
[0141]
验证模块903,用于响应于m个认证设备中的每个认证设备对应的mac值,跟接收设备与认证设备之间的mac验证值一致,接收设备确定对数据认证成功。
[0142]
可选地,验证模块903,还用于响应于m个认证设备中的任一认证设备对应的mac值,跟接收设备与认证设备之间的mac验证值不一致,接收设备确定对数据认证失败。
[0143]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0144]
应理解的是,本技术实施例提供的通信装置还可以用专用集成电路(application-specific integrated circuit,asic)实现,或可编程逻辑器件(programmable logic device,pld)实现,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现上述方法实施例提供的方法,当通过软件实现上述方法实施例提供的方法时,该通信装置中的各个模块也可以为软件模块。
[0145]
本技术实施例还提供了一种代理设备,包括:处理器和存储器;
[0146]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0147]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中代理设备所执行的动作。
[0148]
例如,图10是本技术实施例提供的一种代理设备的框图。该代理设备可以是网关。如图10所示,代理设备100包括:处理器1001、存储器1002和收发器1003。
[0149]
可选地,该代理设备100还包括通信总线1004和通信接口1005。
[0150]
其中,处理器1001包括一个或者一个以上处理核心,处理器1001通过运行计算机程序,执行各种功能应用以及数据处理。
[0151]
存储器1002可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(real time executive,rtx)、linux、unix、windows或os x之类的操作系统。
[0152]
通信接口1005可以为多个,通信接口1005用于与其它设备进行通信。例如在本技术实施例中,通信接口1005可以用于收发与通信设备以及其它认证设备之间的消息。
[0153]
存储器1002与通信接口1005分别通过通信总线1004与处理器1001连接。
[0154]
本技术实施例还提供了一种通信设备,包括:处理器和存储器;
[0155]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0156]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中通信设备、发送设备或接收设备所执行的动作。
[0157]
例如,图11是本技术实施例提供的一种通信设备的框图。该通信设备可以是发送设备或接收设备。如图11所示,通信设备110包括:处理器1101、存储器1102和收发器1103。
[0158]
可选地,该通信设备110还包括通信总线1104和通信接口1105。
[0159]
其中,处理器1101包括一个或者一个以上处理核心,处理器1101通过运行计算机程序,执行各种功能应用以及数据处理。
[0160]
存储器1102可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(real time executive,rtx)、linux、unix、windows或os x之类的操作系统。
[0161]
通信接口1105可以为多个,通信接口1105用于与其它设备进行通信。例如在本技术实施例中,通信接口1105可以用于收发与代理设备之间的消息。
[0162]
存储器1102与通信接口1105分别通过通信总线1104与处理器1101连接。
[0163]
本技术实施例还提供了一种通信系统,包括:多个通信设备和n个认证设备,所述多个通信设备包括发送设备和接收设备,所述n个认证设备包括代理设备,所述多个通信设备以及所述n个认证设备中除所述代理设备以外的其它认证设备分别与所述代理设备通信连接。
[0164]
其中,所述代理设备包括如图5或图6所示的通信装置或者为如图10所示的代理设备;所述发送设备包括如图7或图8所示的通信装置或者为如图11所示的通信设备;所述接收设备包括如图9所示的通信装置或者为如图11所示的通信设备。
[0165]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被代理设备的处理器执行时,实现上述方法实施例中代理设备所执行的动作;或者,当所述指令被通信设备的处理器执行时,实现上述方法实施例中通信设备、发送设备或接收设备所执行的动作。
[0166]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储
设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))、或者半导体介质(例如:固态硬盘(solid state disk,ssd))等。
[0167]
在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0168]
本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0169]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1