一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种密钥分发方法、装置和计算机可读介质与流程

2022-03-01 18:29:32 来源:中国专利 TAG:


1.本发明实施例涉及信息安全技术领域,尤其涉及一种密钥分发方法、装置和计算机可读介质。


背景技术:

2.楼宇自动化控制网络(building automation control network,bacnet)是楼宇自动设备之间进行数据通信的标准,其可保证来自不同制造商的楼宇自动化设备之间数据共享。基于该标准的bacnet网络安全架构提供设备鉴权、数据隐藏和用户鉴权。
3.在bacnet网络安全架构中存在下列密钥:普通网络访问密钥(general-network-access)、用户鉴权密钥(user-authenticated)、安装密钥(installation)、应用特定密钥(application-specific),设备主密钥(device-master)和分发密钥(distribution)。每个密钥实际包括一对密钥值,其中一个用于签名,另一个用于加密,因此,也可将密钥称为“密钥对”。其中,分发密钥用于分发普通网络访问密钥、用户鉴权密钥和应用特定密钥,而这三类密钥可随时间变化以满足安全策略。分发密钥也用于分发临时的安装密钥。设备主密钥仅用于分发分发密钥。
4.密钥由密钥服务器(key server)分发给所有设备。普通网络访问密钥、用户鉴权密钥、应用特定密钥和安装密钥被绑定成密钥组,与一个密钥修订号码一起分发,每个设备会收到该设备特定的这组密钥。
5.每个工业设备或者有出厂时设置的设备主密钥,或者在设备安装通过发起服务“请求主密钥(request-master-key)”以及执行服务“设置主密钥(set-master-key)”来获取设备主密钥。密钥服务器使用设备主密钥为工业设备提供设备特定的分发密钥,然后,密钥服务器使用该分发密钥向该工业设备发送前述的密钥组(普通网络访问密钥、用户鉴权密钥、应用特定密钥和安装密钥)。
6.在bacnet网络安全架构中存在如下问题:
7.1、如果设备主密钥在出厂时设置,则密钥服务器需要为每个工业设备维护设备主密钥。如果密钥服务器的密钥数据库丢失或者无法恢复,则设备主密钥将不得不修改。密钥服务器和各个工业设备为维护设备主密钥需要执行大量的处理。
8.2、如果设备主密钥在设备安装时通过设置主密钥消息(set-master-key)由密钥服务器生成,则由于目前的消息流程中缺少对设备主密钥的安全防护,存在设备主密钥被窃取或篡改的风险。


技术实现要素:

9.本发明实施例实施例提供了一种密钥分发方法、装置和计算机可读介质,以解决主密钥安全防护的问题。
10.第一方面,提供一种密钥分发方法。该方法可包括:一个供应商的证书颁发机构为所述供应商的一个工业设备配置为所述工业设备分发的第一密钥对以及为所述工业设备
欲加入网络中的密钥服务器分发的第二密钥对中的第二证书,其中,所述第一密钥对中包括第一私钥和第一证书;所述证书颁发机构为所述密钥服务器配置所述第二密钥对中的第二私钥以及所述证书颁发机构的第三证书。而所述工业设备向所述密钥服务器发送所述第一证书,以请求所述密钥服务器分发所述工业设备的分发密钥;所述密钥服务器使用所述第三证书对所述第一证书进行验证,以确定所述第一证书是所述证书颁发机构颁发的,进而确定所述工业设备是所述供应商的工业设备。所述密钥服务器生成所述工业设备的分发密钥;所述密钥服务器生成携带所述工业设备的分发密钥的第一消息;所述密钥服务器使用所述第二私钥对所述第一消息的内容进行签名;所述密钥服务器使用所述第一证书中的公钥对所述第一消息的内容加密;所述密钥服务器向所述工业设备发送所述第一消息。所述工业设备使用所述第一私钥对所述第一消息的内容进行解密;所述工业设备使用所述第二证书中的公钥对所述第一消息内容的签名进行验证;所述工业设备从所述第一消息中获取所述分发密钥。
11.第二方面,提供又一种密钥分发方法,该方法可由供应商的证书颁发机构执行,其中,证书颁发机构为所述供应商的一个工业设备配置为所述工业设备分发的第一密钥对以及为所述工业设备欲加入网络中的密钥服务器分发的第二密钥对中的第二证书,其中,所述第一密钥对中包括第一私钥和第一证书,所述第一证书用于所述工业设备向所述密钥服务器请求分发密钥,所述第一私钥用于所述工业设备解密来自所述密钥服务器的携带所述分发密钥的第一消息的消息内容,所述第二证书中的公钥用于所述工业设备对所述第一消息内容的签名进行验证。所述证书颁发机构为所述密钥服务器配置所述第二密钥对中的第二私钥以及所述证书颁发机构的第三证书;其中,所述第二私钥用于所述密钥服务器对所述第一消息的内容进行签名,所述第三证书用于所述密钥服务器确定所述第一证书是所述证书颁发机构颁发的。
12.第三方面,提供再一种密钥分发方法,该方法可由供应商提供的工业设备执行,其中,工业设备被所述供应商的证书颁发机构配置为所述工业设备分发的第一密钥对以及为所述工业设备欲加入网络中的密钥服务器分发的第二密钥对中的第二证书,其中,所述第一密钥对中包括第一私钥和第一证书;所述工业设备向所述密钥服务器发送所述第一证书,以请求所述密钥服务器分发所述工业设备的分发密钥;所述工业设备从所述密钥服务器处接收第一消息,其中所述第一消息中包括所述密钥服务器为所述工业设备分发的分发密钥;所述工业设备使用所述第一私钥对所述第一消息的内容进行解密;所述工业设备使用所述第二证书中的公钥对所述第一消息内容的签名进行验证;所述工业设备从所述第一消息中获取所述分发密钥。
13.第四方面,提供再一种密钥分发方法,该方法可由工业设备欲加入网络中的密钥服务器执行,其中,密钥服务器被所述供应商的证书颁发机构配置所述证书颁发机构为所述密钥服务器分发的第二密钥对中的第二私钥以及所述证书颁发机构的第三证书;所述密钥服务器从所述工业设备处接收所述第一证书;所述密钥服务器使用所述第三证书对所述第一证书进行验证,以确定所述第一证书是所述证书颁发机构颁发的,进而确定所述工业设备是所述供应商的工业设备;所述密钥服务器生成所述工业设备的分发密钥;所述密钥服务器生成携带所述工业设备的分发密钥的第一消息;所述密钥服务器使用所述第二私钥对所述第一消息的内容进行签名;所述密钥服务器使用所述第一证书中的公钥对所述第一
消息的内容加密;所述密钥服务器向所述工业设备发送所述第一消息。
14.第五方面,提供红密钥分发装置,包括用于执行第二方面、第三方面或第四方面提供的方法中各步骤的模块。
15.第六方面,提供一种密钥分发装置,包括:至少一个存储器,被配置为存储计算机可读代码;至少一个处理器,被配置为调用所述计算机可读代码,执行第二方面、第三方面或第四方面所提供的步骤。
16.第七方面,一种计算机可读介质,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行第二方面、第三方面或第四方面所提供的步骤。
17.采用本发明实施例,工业设备和密钥服务器之间可以互相认证,从而保证分发密钥的安全传递。基于供应商的证书颁发机构与该供应商的工业设备之间是安全可信的,以及供应商的证书颁发机构与密钥服务器之间是安全可信的前提,供应商的证书颁发机构将密钥服务器的签名证书发送至工业设备,使得工业设备可以确定接收到的分发密钥是真正的密钥服务器分发的;而供应商的证书颁发机构将自身的证书发送至密钥服务器,使得密钥服务器可以对工业设备的设备初始证书进行验证,当工业设备将自身的设备初始证书发送至密钥服务器时,密钥服务器可以确定对应的消息是该供应商的工业设备发送的,从而实现了工业设备与密钥服务器之间的互信。并且通过将密钥服务器的密钥服务器签名证书发送至工业设备,密钥服务器在发送分发密钥时使用密钥服务器的密钥服务器签名私钥进行签名时,工业设备可以用密钥服务器签名证书中的公钥对签名进行验证,保证该分发密钥的完整性;以及密钥服务器在发送分发密钥时使用工业设备的设备初始证书中的公钥对消息进行加密时,工业设备可以对接收到的消息使用设备初始私钥进行解密,以保证分发密钥的安全传递。
18.对于上述任一方面,可选地,所述工业设备欲加入的网络为bacnet网络,所述工业设备向所述密钥服务器发送所述第一证书时,向所述密钥服务器发送请求主密钥消息,其中携带所述第一证书。在所述密钥服务器使用所述第三证书对所述第一证书进行验证之后,所述密钥服务器生成所述工业设备的分发密钥之前,所述密钥服务器向所述工业设备发送设置主密钥消息,其中不携带所述工业设备的设备主密钥;所述工业设备响应于所述设置主密钥消息发送请求密钥更新消息。所述密钥服务器在收到所述请求密钥更新消息后,生成所述工业设备的分发密钥。这样,实现了和现有bacnet协议的兼容。
19.对于上述任一方面,可选地,在所述工业设备向所述密钥服务器发送所述第一证书之前,还包括:所述工业设备使用所述第一私钥对携带所述第一证书的第二消息的内容进行签名;所述工业设备向所述密钥服务器发送所述第一证书,包括:所述工业设备向所述密钥服务器发送消息内容经签名后的所述第二消息;在所述密钥服务器使用所述第三证书对所述第一证书进行验证之后,所述密钥服务器从所述第一证书中提取公钥;所述密钥服务器用从所述第一证书中提取的公钥对所述工业设备对所述第二消息中的签名进行验证,以确定所述第一证书是属于所述工业设备的。其中,工业设备用自身的第一私钥对自身的第一证书进行签名,以证明该证书是该工业设备发出的。密钥服务器收到后,默认信任第一证书,然后用供应商的第三证书对第一证书验证后,再用第一证书对收到的消息中该工业设用第一私钥对第一证书附加的签名进行验证,可以证明该第一证书就是该工业设备的,
有效避免其他工业设备用该工业设备的证书发给密钥服务器,得到该工业设备的分发密钥,或者采用该种方式攻击密钥服务器。
附图说明
20.图1为本发明实施例中提供的密钥机制的示意图。
21.图2为本发明实施例提供的密钥分发系统的结构示意图。
22.图3为本发明实施例提供的密钥分发系统中的证书颁发机构的结构示意图。
23.图4为本发明实施例提供的密钥分发系统中的密钥服务器的结构示意图。
24.图5为本发明实施例提供的密钥分发系统中的工业设备的结构示意图。
25.图6为本发明实施例提供的密钥分发方法的流程图。
26.附图标记列表:
27.具体实施方式
28.现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本发明实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
29.如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
30.为了便于理解本发明实施例的内容,下面对本发明实施例涉及的一些内容加以描述。需要说明的是,这些内容不应视为对本发明保护范围的限制。
31.1、加密
32.加密是以某种算法改变原有的数据,使得未授权的用户即使获得了加密后的数据,但由于不知道解密的方法,仍然无法获取数据的内容。通常使用密钥对待传送的数据进行加密,以及对接收到的加密后的数据进行解密。
33.通常有两种加密算法:对称加密算法和非对称加密算法。
34.1)对称加密算法
35.对称加密算法的加密和解密使用的密钥是相同的,即如果使用对称加密算法来加密数据,那么通信双方就均需要知道该密钥,收到数据后用这个密钥来解密。
36.2)非对称加密算法
37.非对称加密算法中用到的密钥有两个,分别是公钥和私钥,要求通信双方都有自己的公钥和私钥,自己公钥加密的数据只有自己的私钥才能解开,自己私钥加密的数据也只有自己的公钥才能解开。公钥可以公布在网络上的,被其他设备获取。比如:设备a要和设备b通信,设备a在网络上获取到设备b的公钥,然后将数据用设备b的公钥加密后发送给设备b,设备b收到数据后用自己的私钥解密,就可以看到数据内容了,即使在网络传输中加密数据被黑客截取,由于黑客没有对应的私钥,也无法解密数据进行查看。
38.2、签名和认证
39.比如:设备a和设备b进行通信,设备b如何确定从设备a处接收到的数据一定是设备a自己发出来的,而不是黑客伪装成设备a发送的,以及如何确定数据是否被黑客篡改,这里就用到签名和认证来确认数据的发送设备以及数据是否被篡改。
40.一种可能的实现方式是,设备a准备向设备b发送一段数据,数据a先将数据进行散列运算,得到数据摘要(md5),然后用设备a的私钥对摘要进行加密,再用设备a的公钥来解密这段加密摘要(能正确解密就说明这段数据是设备a发送的,因为只有设备a的公钥才能解开设备a的私钥),解密摘要后得到数据内容的摘要c,然后在用同样的散列算法来对已经解密好的数据内容进行运算,得到一个摘要d,再将c和d进行对比,一致则说明数据没有被
篡改过。
41.3、证书
42.在上面的例子中,假设接收方或者发送方所持有的对方的公钥总是正确的(即确实是对方公布的)。而实际上除非对方手把手将公钥交付,否则如果不采取措施,双方在网络中传递公钥时一样有可能被篡改。证书即用来解决该问题,通过引入公正的第三方(即证书颁发机构(certificate authority,ca)),当某一方想要发布公钥时,将自身的身份消息及公钥提交给这个第三方,第三方对其身份进行证实,如果没有问题,则将其身份消息和公钥打包成为证书(certificate)。当需要获取公钥时,只需要获得其证书,然后从中提取出公钥即可。
43.下面结合附图对本发明实施例进行详细说明。
44.本发明实施例中,工业设备的供应商建立证书颁发机构,证书颁发机构可颁发两种类型的密钥对,如图1所示的密钥对10。每个密钥对10中包括一个私钥和一个由证书颁发机构签名的证书,证书中包含公钥。这两种类型的密钥对10包括:
45.1)设备初始密钥对101
46.其中,包括设备初始私钥101a和设备初始证书101b。本发明实施例中,设备初始密钥对101用于保护工业设备的分发密钥。设备初始密钥对101是在生成分发密钥之前为工业设备配置的密钥和证书,用于密钥服务器生成分发密钥,因此,称为“初始”密钥。
47.2)密钥服务器签名密钥对102
48.其中包括密钥服务器签名私钥102a和密钥服务器签名证书102b(其中包括公钥)。密钥服务器签名密钥对102由供应商的所有工业设备共享,用于对工业设备的分发密钥进行完整性验证。
49.在初始配置阶段,证书颁发机构可将一个工业设备的设备初始密钥对,以及密钥服务器签名密钥对中的密钥服务器证书配置给该工业设备。此外,证书颁发机构可将密钥服务器签名密钥对中的密钥服务器签名私钥以及证书颁发机构自身的证书配置给密钥服务器。
50.当工业设备需要从密钥服务器处获取分发密钥时,工业设备可将证书颁发机构颁发的设备初始密钥对中的设备初始证书发送至密钥服务器(比如bacnet中的设备可通过请求设备主密钥(request-master-key)消息来发送该设备初始证书),用于密钥服务器对发给该工业设备的消息进行加密。密钥服务器使用证书颁发机构的证书对该设备初始证书进行验证,以确定该设备初始证书是证书颁发机构颁发的。密钥服务器对设备初始证书验证无误,从该设备初始证书中获取该工业设备的公钥,并生成该工业设备的分发密钥,并使用证书颁发机构颁发的密钥服务器签名私钥对分发密钥进行签名后,用该工业设备的设备初始证书中的公钥进行加密后发送至工业设备(比如bacnet中,密钥服务器可通过更新分发密钥(update-distribution-key)消息来发送该分发密钥)。工业设备对收到的消息使用设备初始私钥进行解密,并使用从证书颁发机构处获取的密钥服务器签名证书来验证签名,以确保消息是密钥服务器所发送的。
51.上述过程中,使得工业设备和密钥服务器之间可以互相认证,从而保证分发密钥的安全传递。基于供应商的证书颁发机构与该供应商的工业设备之间是安全可信的,以及供应商的证书颁发机构与密钥服务器之间是安全可信的前提,供应商的证书颁发机构将密
钥服务器的签名证书发送至工业设备,使得工业设备可以确定接收到的分发密钥是真正的密钥服务器分发的;而供应商的证书颁发机构将自身的证书发送至密钥服务器,使得密钥服务器可以对工业设备的设备初始证书进行验证,当工业设备将自身的设备初始证书发送至密钥服务器时,密钥服务器可以确定对应的消息是该供应商的工业设备发送的,从而实现了工业设备与密钥服务器之间的互信。并且通过将密钥服务器的密钥服务器签名证书发送至工业设备,密钥服务器在发送分发密钥时使用密钥服务器的密钥服务器签名私钥进行签名时,工业设备可以用密钥服务器签名证书中的公钥对签名进行验证,保证该分发密钥的完整性;以及密钥服务器在发送分发密钥时使用工业设备的设备初始证书中的公钥对消息进行加密时,工业设备可以对接收到的消息使用设备初始私钥进行解密,以保证分发密钥的安全传递。
52.需要说明的是,本发明实施例可以改进现有bacnet网络安全架构,但这并不意味着本发明实施例仅能用于bacnet。任何需要安全机制的工业系统和工业设备中均可使用本发明实施例提供的方案。
53.图2为本发明实施例提供的密钥分发系统的结构示意图,如图2所示,该密钥分发系统200可包括:
[0054]-密钥服务器21;
[0055]-密钥服务器21,其中包括各个供应商的证书颁发机构比如图2中所示的供应商a的密钥服务器21a、供应商b的密钥服务器21b;
[0056]-各个供应商提供的工业设备,比如:供应商a提供的工业设备23a1、23a2;供应商b提供的工业设备23b1。
[0057]
实际的供应商不限于供应商a和供应商b,它们提供的工业设备也不限于图中所示的三个。如图2所示,在证书颁发机构与工业设备之间的交互过程31中,证书颁发机构向工业设备发送前述的设备初始密钥对和密钥服务器签名证书;在证书颁发机构与密钥服务器之间的交互过程32中,证书颁发机构向密钥服务器发送密钥服务器签名密钥对中的密钥服务器签名私钥和证书颁发机构自身的证书;在密钥服务器与工业设备之间的交互过程33中,密钥服务器与工业设备之间进行密钥交互。
[0058]
下面的描述中,为了便于区分,将设备初始密钥对101称为“第一密钥对101”,其中的设备初始私钥101a称为“第一私钥101a”,设备初始证书101b称为“第一证书101b”。将密钥服务器签名密钥对102称为“第二密钥对102”,其中的密钥服务器签名私钥102a称为“第二私钥102a”,密钥服务器签名证书102b称为“第二证书102b”。此外将后续描述中出现的证书颁发机构的证书称为“第三证书103b”。
[0059]
本发明实施例提供的证书颁发机构22可以实现为计算机处理器的网络,以执行本发明实施例中的密钥分发方法600中证书颁发机构22侧的处理。证书颁发机构22也可以是如图3所示的单台计算机、单片机或处理芯片,包括至少一个存储器2201,其包括计算机可读介质,例如随机存取存储器(ram)。证书颁发机构22还包括与至少一个存储器2201耦合的至少一个处理器2202。计算机可执行指令存储在至少一个存储器2201中,并且当由至少一个处理器2202执行时,可以使至少一个处理器2202执行本文所述的步骤。
[0060]
图3中所示的至少一个存储器2201可以包含密钥分发程序221,使得至少一个处理器2202执行本发明实施例中所述的密钥分发方法600中证书颁发机构22侧的处理。密钥分
发程序221可以包括:
[0061]-一个密钥生成模块2211,被配置为生成密钥;
[0062]-一个密钥发送模块2212,被配置为发送密钥。
[0063]
其中,密钥发送模块2212向供应商的一个工业设备23发送密钥生成模块2211为工业设备23分发的第一密钥对101以及为工业设备23欲加入网络中的密钥服务器21分发的第二密钥对102中的第二证书102b,其中,第一密钥对101中包括第一私钥101a和第一证书101b,第一证书101b用于工业设备23向密钥服务器21请求分发密钥,第一私钥101a用于工业设备23解密来自密钥服务器21的携带分发密钥的第一消息的消息内容,第二证书102b中的公钥用于工业设备23对第一消息内容的签名进行验证。
[0064]
此外,密钥发送模块2212向密钥服务器21发送密钥生成模块2211生成的第二密钥对102中的第二私钥102a以及证书颁发机构22的第三证书103b;其中,第二私钥102a用于密钥服务器21对第一消息的内容进行签名,第三证书103b用于密钥服务器21确定第一证书101b是证书颁发机构22颁发的。
[0065]
可选地,第一私钥101a还用于工业设备23对携带第一证书101b的第二消息的内容进行签名;
[0066]
第一证书101b还用密钥服务器21在收到第一证书101b后从中提取公钥,并使用提取的公钥对工业设备23对第二消息中的签名进行验证,以确定第一证书101b是属于工业设备23的。
[0067]
此外,上述各模块还也可视为由硬件实现的各个功能模块,用于实现证书颁发机构22在执行密钥分发方法时涉及的各种功能,比如预先将该方法中涉及的各流程的控制逻辑烧制到诸如现场可编程门阵列(field-programmable gate array,fpga)芯片或复杂可编程逻辑器件(complex programmable logic device,cpld)中,而由这些芯片或器件执行上述各模块的功能,具体实现方式可依工程实践而定。
[0068]
此外,证书颁发机构22还可包括一个通信模块2203,用于证书颁发机构22与其他设备之间的通信,比如与工业设备23之间,或者与证书颁发机构22之间进行通信。
[0069]
应当提及的是,本发明实施例可以包括具有不同于图3所示架构的装置。上述架构仅仅是示例性的,用于解释本发明实施例提供的密钥分发方法600。
[0070]
本发明实施例提供的密钥服务器21可以实现为计算机处理器的网络,以执行本发明实施例中的密钥分发方法600中密钥服务器21侧的处理。密钥服务器21也可以是如图4所示的单台计算机、单片机或处理芯片,包括至少一个存储器2101,其包括计算机可读介质,例如随机存取存储器(ram)。密钥服务器21还包括与至少一个存储器2101耦合的至少一个处理器2102。计算机可执行指令存储在至少一个存储器2101中,并且当由至少一个处理器2102执行时,可以使至少一个处理器2102执行本文所述的步骤。
[0071]
图4中所示的至少一个存储器2101可以包含密钥分发程序211,使得至少一个处理器2102执行本发明实施例中所述的密钥分发方法600中密钥服务器21侧的处理。密钥分发程序211可以包括:
[0072]-一个验证模块2111,被配置为进行消息验证;
[0073]-一个加密解密模块2112,被配置进行加密解密处理;
[0074]-一个密钥生成模块2113,被配置为生成密钥;
[0075]-一个消息收发模块2114,被配置为收发消息。
[0076]
其中,消息收发模块2114从供应商的证书颁发机构22处接收证书颁发机构22为密钥服务器21分发的第二密钥对102中的第二私钥102a以及证书颁发机构22的第三证书103b,并且从工业设备23处接收第一证书101b。而验证模块2111使用第三证书103b对第一证书101b进行验证,以确定第一证书101b是证书颁发机构22颁发的,进而确定工业设备23是供应商的工业设备。密钥生成模块2113生成工业设备23的分发密钥,消息收发模块2114生成携带工业设备23的分发密钥的第一消息,而验证模块2111使用第二私钥102a对第一消息的内容进行签名,加密解密模块2112使用第一证书101b中的公钥对第一消息的内容加密。然后消息收发模块2114向工业设备23发送第一消息。
[0077]
可选地,工业设备23欲加入的网络为bacnet网络,消息收发模块2114从工业设备23处接收请求主密钥消息,消息中携带第一证书101b。在验证模块2111使用第三证书103b对第一证书101b进行验证之后,密钥生成模块2113生成工业设备23的分发密钥之前,消息收发模块2114向工业设备23发送设置主密钥消息,其中不携带工业设备23的设备主密钥,而从工业设备23处接收工业设备23响应于设置主密钥消息而发送请求密钥更新消息。密钥生成模块2113在消息收发模块2114收到请求密钥更新消息后,生成工业设备23的分发密钥。
[0078]
可选地,工业设备23发送的携带第一证书101b的第二消息的内容是使用第一私钥101a签名的,在验证模块2111使用第三证书103b对第一证书101b进行验证之后,从第一证书101b中提取公钥,并用从第一证书101b中提取的公钥对工业设备23对第二消息中的签名进行验证,以确定第一证书101b是属于工业设备23的。
[0079]
此外,上述各模块还也可视为由硬件实现的各个功能模块,用于实现密钥服务器21在执行密钥分发方法600时涉及的各种功能,比如预先将该方法中涉及的各流程的控制逻辑烧制到诸如fpga芯片或cpld中,而由这些芯片或器件执行上述各模块的功能,具体实现方式可依工程实践而定。
[0080]
此外,密钥服务器21还可包括一个通信模块2103,用于密钥服务器21与其他设备之间的通信,比如与工业设备23之间,或者与密钥服务器21之间进行通信。
[0081]
应当提及的是,本发明实施例可以包括具有不同于图4所示架构的装置。上述架构仅仅是示例性的,用于解释本发明实施例提供的密钥分发方法600。
[0082]
本发明实施例提供的工业设备23可以实现为计算机处理器的网络,以执行本发明实施例中的密钥分发方法600中工业设备23侧的处理。工业设备23也可以是如图5所示的单台计算机、单片机或处理芯片,包括至少一个存储器2301,其包括计算机可读介质,例如随机存取存储器(ram)。工业设备23还包括与至少一个存储器2301耦合的至少一个处理器2302。计算机可执行指令存储在至少一个存储器2301中,并且当由至少一个处理器2302执行时,可以使至少一个处理器2302执行本文所述的步骤。
[0083]
图5中所示的至少一个存储器2301可以包含密钥分发程序231,使得至少一个处理器2302执行本发明实施例中所述的密钥分发方法600中工业设备23侧的处理。密钥分发程序231可以包括:
[0084]-一个验证模块2311,被配置为进行消息验证;
[0085]-一个加密解密模块2312,被配置进行加密解密处理;
[0086]-一个消息收发模块2313,被配置为收发消息。
[0087]
其中,消息收发模块2313从供应商的证书颁发机构22处接收为工业设备23分发的第一密钥对101以及为工业设备23欲加入网络中的密钥服务器21分发的第二密钥对102中的第二证书102b,其中,第一密钥对101中包括第一私钥101a和第一证书101b;并且消息收发模块2313向密钥服务器21发送第一证书101b,以请求密钥服务器21分发工业设备23的分发密钥;以及消息收发模块2313从密钥服务器21处接收第一消息,其中第一消息中包括密钥服务器21为工业设备23分发的分发密钥。
[0088]
加密解密模块2312使用第一私钥101a对第一消息的内容进行解密,而验证模块2311使用第二证书102b中的公钥对第一消息内容的签名进行验证,进而从第一消息中获取分发密钥。
[0089]
可选地,工业设备23欲加入的网络为bacnet网络,
[0090]
消息收发模块2313在向密钥服务器21发送第一证书101b时,发送请求主密钥消息,其中携带第一证书101b,并且在从密钥服务器21处接收第一消息之前,从密钥服务器21处接收设置主密钥消息,消息中不携带工业设备23的设备主密钥,并响应于设置主密钥消息发送请求密钥更新消息。
[0091]
可选地,验证模块2311在消息收发模块2313向密钥服务器21发送第一证书101b之前,使用第一私钥101a对携带第一证书101b的第二消息的内容进行签名,而消息收发模块2313向密钥服务器21发送消息内容经签名后的第二消息。
[0092]
此外,上述各模块还也可视为由硬件实现的各个功能模块,用于实现工业设备23在执行密钥分发方法600时涉及的各种功能,比如预先将该方法中涉及的各流程的控制逻辑烧制到诸如fpga芯片或cpld中,而由这些芯片或器件执行上述各模块的功能,具体实现方式可依工程实践而定。
[0093]
此外,工业设备23还可包括一个通信模块2303,用于工业设备23与其他设备之间的通信,比如与密钥服务器21之间,或者与密钥服务器21之间进行通信。
[0094]
应当提及的是,本发明实施例可以包括具有不同于图5所示架构的装置。上述架构仅仅是示例性的,用于解释本发明实施例提供的密钥分发方法600。
[0095]
上述至少一个处理器2102、2202和2302可以包括微处理器、专用集成电路(asic)、数字信号处理器(dsp)、中央处理单元(cpu)、图形处理单元(gpu)、状态机等。计算机可读介质的实施例包括但不限于软盘、cd-rom、磁盘,存储器芯片、rom、ram、asic、配置的处理器、全光介质、所有磁带或其他磁性介质,或计算机处理器可以从中读取指令的任何其他介质。此外,各种其它形式的计算机可读介质可以向计算机发送或携带指令,包括路由器、专用或公用网络、或其它有线和无线传输设备或信道。指令可以包括任何计算机编程语言的代码,包括c、c 、c语言、visual basic、java和javascript。
[0096]
下面结合图6说明本发明实施例提供的密钥分发方法600。如图6所示,方法600可包括如下步骤:
[0097]
s601:一个供应商的证书颁发机构22向该供应商的一个工业设备23发送为工业设备23分发的第一密钥对101以及为工业设备23欲加入网络中的密钥服务器21分发的第二密钥对102中的第二证书102b;
[0098]
s602:证书颁发机构22向密钥服务器21发送第二密钥对102中的第二私钥102a以
及证书颁发机构22的第三证书103b;
[0099]
在上述步骤s601和步骤s602中,证书颁发机构22所颁发的密钥对是通过安全信道发送的,另一种可选的实现方式是,第一密钥对101和第二证书102b预先设置在工业设备23中,比如在出厂时设置;而第二私钥102a和第三证书103也预先配置在密钥服务器21中。无论是预先配置还是通过消息方式,均可视为证书颁发机构22为工业设备23和密钥服务器31配置密钥。
[0100]
s603:工业设备23向密钥服务器21发送第一证书101b,以请求密钥服务器21分发工业设备23的分发密钥;
[0101]
s604:密钥服务器21使用第三证书103b对第一证书101b进行验证,以确定第一证书101b是证书颁发机构22颁发的,进而确定工业设备23是供应商的工业设备;
[0102]
s605:密钥服务器21生成工业设备23的分发密钥;
[0103]
s606:密钥服务器21生成携带工业设备23的分发密钥的第一消息;
[0104]
s607:密钥服务器21使用第二私钥102a对第一消息的内容进行签名;
[0105]
s608:密钥服务器21使用第一证书101b中的公钥对第一消息的内容加密;
[0106]
其中,步骤s607和步骤s608的先后顺序可灵活设置,比如:先加密后签名,或者先签名后加密。
[0107]
s609:密钥服务器21向工业设备23发送第一消息;
[0108]
s610:工业设备23使用第一私钥101a对第一消息的内容进行解密;
[0109]
s611:工业设备23使用第二证书102b中的公钥对第一消息内容的签名进行验证;
[0110]
其中,步骤s610和步骤s611的先后顺序可灵活设置,比如:先解密后验证,或者先验证后解密,但需要和步骤s607和步骤s608对应,具体地,若步骤s607和s608中是先加密后签名,这里步骤s610和s611中就是先验证签名再解密;若步骤s607和s608中是先签名后加密,这里步骤s610和s611中就是先解密再验证签名。
[0111]
s612:工业设备23从第一消息中获取分发密钥。
[0112]
可选地,工业设备23欲加入的网络为bacnet网络,为了实现和现有协议流程的兼容,工业设备23在向密钥服务器21发送第一证书101b时,可向密钥服务器21发送请求主密钥(request-master-key)消息,其中携带第一证书101b;而在步骤s604密钥服务器21使用第三证书103b对第一证书101b进行验证之后,步骤s605密钥服务器21生成工业设备23的分发密钥之前,还包括,方法600还可包括:
[0113]
s604’:密钥服务器21向工业设备23发送设置主密钥(set-device-key)消息,其中不携带工业设备23的设备主密钥,可选地,也可不携带任何密钥;
[0114]
s604”:工业设备23响应于设置主密钥消息发送请求密钥更新(request-key-update)消息;
[0115]
而步骤s605中,密钥服务器21在收到请求密钥更新消息后,才生成工业设备23的分发密钥,该分发密钥对于该工业设备23是唯一的,即不同的工业设备23的分发密钥不同。
[0116]
可选地,在步骤s603工业设备23向密钥服务器21发送第一证书101b之前,还包括:
[0117]
s602’:工业设备23使用第一私钥101a对携带第一证书101b的第二消息的内容进行签名,在步骤s603中,工业设备23向密钥服务器21发送s603第一证书101b时,发送消息内容经签名后的第二消息;而在步骤s604密钥服务器21使用第三证书103b对第一证书101b进
行验证之后,还包括:
[0118]
s6041:密钥服务器21从第一证书101b中提取公钥;
[0119]
s6042:密钥服务器21用从第一证书101b中提取的公钥对工业设备23对第二消息中的签名进行验证,以确定第一证书101b是属于工业设备23的。
[0120]
其中,工业设备23用第一私钥101a对第一证书101b进行签名,以证明该证书是该工业设备23发出的。密钥服务器21收到后,默认信任第一证书101b,然后用供应商的第三证书103b对第一证书101b验证后,再用第一证书101b对收到的消息中该工业设备23用第一私钥101a对第一证书101b附加的签名进行验证,可以证明该第一证书101b就是该工业设备23的,有效避免其他工业设备用该工业设备23的证书发给密钥服务器21,得到该工业设备23的分发密钥,或者采用该种方式攻击密钥服务器21。
[0121]
此外,本发明实施例实施例还提供一种计算机可读介质,该计算机可读介质上存储有计算机可读指令,计算机可读指令在被处理器执行时,使处理器执行前述的密钥分发方法。计算机可读介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选地,可以由通信网络从服务器计算机上或云上下载计算机可读指令。
[0122]
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献