CN117930736A - 一种plc通信安全检测方法 - Google Patents

一种plc通信安全检测方法 Download PDF

Info

Publication number
CN117930736A
CN117930736A CN202311785860.6A CN202311785860A CN117930736A CN 117930736 A CN117930736 A CN 117930736A CN 202311785860 A CN202311785860 A CN 202311785860A CN 117930736 A CN117930736 A CN 117930736A
Authority
CN
China
Prior art keywords
data
key
data block
original
encrypted data
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.)
Pending
Application number
CN202311785860.6A
Other languages
English (en)
Inventor
周睿康
朱峰
蔡一鸣
赵梓桐
夏冀
孙淑娴
何中旭
刘运中
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.)
China Electronics Standardization Institute
Original Assignee
China Electronics Standardization Institute
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 China Electronics Standardization Institute filed Critical China Electronics Standardization Institute
Priority to CN202311785860.6A priority Critical patent/CN117930736A/zh
Publication of CN117930736A publication Critical patent/CN117930736A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13142Debugging, tracing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例适用于工业控制技术领域,提供了一种PLC通信安全检测方法,包括:第一设备将原始数据划分为多个数据块;基于密钥和第一加密算法对各个数据块进行加密,得到多个第一加密数据块;基于密钥和第二加密算法对各个第一加密数据块进行加密,得到多个第二加密数据块;确定各个数据块的第一校验码;基于各个第一校验码对对应的每个第二加密数据块进行加密,得到多个第三加密数据块,多个第一校验码和多个第三加密数据块构成发送至第二设备的加密数据;第二设备对接收到的加密数据进行解密,得到解密数据;第二设备基于解密数据对第一设备和第二设备之间的通信安全进行检测。通过上述方法,能够保障PLC设备通信过程中的数据安全。

Description

一种PLC通信安全检测方法
技术领域
本申请属于工业控制技术领域,特别是涉及一种PLC通信安全检测方法。
背景技术
自动化控制系统是现代产业的重要组成部分。可编程逻辑控制器(ProgrammableLogic Controller,PLC)作为自动化控制系统的核心设备之一,其通信安全问题也愈加引人关注。
PLC设备通信安全是保障工业自动化控制系统稳定运行和信息安全的基础。目前,虽然有很多通信安全技术已经应用于PLC通信中,但是针对现有的PLC通信安全方案,信息传输过程中的数据安全仍然难以保障。
发明内容
有鉴于此,本申请实施例提供了一种PLC通信安全检测方法,用以保障设备通信过程中的数据安全。
本申请实施例的第一方面提供了PLC通信安全检测方法,所述方法包括:
在第一设备和第二设备双向身份验证通过的情况下,所述第一设备将待发送至所述第二设备的原始数据划分为多个数据块,所述第一设备和所述第二设备均为PLC;
所述第一设备基于密钥和第一加密算法对各个所述数据块进行加密,得到多个第一加密数据块;
所述第一设备基于所述密钥和第二加密算法对各个所述第一加密数据块进行加密,得到多个第二加密数据块;
所述第一设备确定各个所述数据块的第一校验码,所述第一校验码用于对所述数据块进行数据校验;
所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,多个所述第一校验码和多个所述第三加密数据块构成发送至第二设备的加密数据;
所述第二设备对接收到的加密数据进行解密,得到解密数据;
所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测。
本申请实施例的第二方面提供了一种PLC通信安全检测装置,所述装置包括:
数据块划分模块,用于在第一设备和第二设备双向身份验证通过的情况下,所述第一设备将待发送至所述第二设备的原始数据划分为多个数据块,所述第一设备和所述第二设备均为PLC;
第一加密模块,用于所述第一设备基于密钥和第一加密算法对各个所述数据块进行加密,得到多个第一加密数据块;
第二加密模块,用于所述第一设备基于所述密钥和第二加密算法对各个所述第一加密数据块进行加密,得到多个第二加密数据块;
第一校验码计算模块,用于所述第一设备确定各个所述数据块的第一校验码,所述第一校验码用于对所述数据块进行数据校验;
第三加密模块,用于所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,多个所述第一校验码和多个所述第三加密数据块构成发送至第二设备的加密数据;
解密模块,用于所述第二设备对接收到的加密数据进行解密,得到解密数据;
检测模块,用于所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面或第二方面所述的方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或第二方面所述的方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例提供的PLC通信安全检测方法可以应用在第一设备和第二设备进行通信的场景下。第一设备和第二设备可以在第一设备和第二设备双向身份验证通过的情况下进行通信,从而使得第二设备接收到的数据来自可信的第一设备,从而确保了通信过程中的数据安全。第一设备在向第二设备发送数据时,可以基于密钥以及校验码进行加密,使用多层加密后的数据在第一设备和第二设备之间进行通信,保障了通信过程中数据的私密性。第二设备可以在对数据块进行解密之后,基于校验码对数据块进行通信安全检测,可以保障通信过程中的数据完整性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。
图1是本申请实施例提供的一种PLC通信安全检测方法的步骤流程示意图;
图2是本申请实施例提供的一种第二设备接收数据的流程示意图;
图3是本申请实施例提供的一种基于RS485协议的工控系统中的通信安全检测方法的流程示意图;
图4是本申请实施例提供的一种PLC通信安全检测装置的示意图;
图5是本申请实施例提供的一种电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
随着信息化、智能化的发展,自动化控制系统已经渗透到各行各业,成为现代产业的重要组成部分。PLC设备作为自动化控制系统的核心设备之一,其通信安全问题也愈加引人关注。
PLC设备通信安全是保障工业自动化控制系统稳定运行和信息安全保障的重要保证。目前,虽然有很多通信安全技术已经应用于PLC通信中,但是针对现有的PLC设备通信安全方案,仍然存在一定的安全漏洞。
基于此,本申请实施例提供了一种PLC通信安全检测方法,该方法可以应用于工业控制系统。工业控制系统中可以包括多个需要进行通信的PLC设备。工业控制系统中的PLC设备可以使用本申请中的方法进行通信。
设备之间进行通信时,需要通信协议。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。示例性的,在本申请实施例中,设备之间的通信可以遵循RS485通信协议。在工业控制系统中的设备使用本申请中的方案进行设备之间的安全通信时,首先可以对RS485通信协议进行改进,从而使得各个设备可以按照改进之后的通信协议进行通信。本申请中的通信安全检测方法,可以为一种基于RS485协议的PLC设备通信安全检测方法。
本申请提出的基于RS485协议的PLC设备通信安全检测方法可以应用于工业控制系统中,工业控制系统可以包括以下几个功能模块:RS485通信协议认证授权模块、RS485通信协议传输加密模块、RS485通信协议传输解密模块和RS485通信协议校验功能模块。其中:
RS485通信协议认证授权模块用于对下位机与上位机进行密钥交换,确保通双方的身份认证和授权,以保障安全性。其中,上位机是指控制、管理、处理数据的计算机系统,通常性能比较强大,可以独立运行复杂的应用程序,同时也能连接多个下位机,对它们进行监控、控制和数据处理。上位机通常用于较高层次的应用程序,如数据分析、控制中心、图形用户界面等。下位机是指被控制、被监控、被采集数据的计算机系统,通常性能比较低,只能运行一些简单的应用程序。下位机通常用于较低层次的应用程序,如传感器、执行器、智能家居等。
RS485通信协议传输加密模块用于对传统的RS485通信协议进行修改,增加加密数据方式与下位机进行通信,通过加密算法对传输数据进行加密。
RS485通信协议传输解密模块用于通过加密算法对传输数据进行加密,并对接收的数据进行解密。
RS485通信协议校验功能模块用于对数据在传输过程中的完整性进行校验,并对异常数据进行丢弃或重新发送。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请实施例提供的一种PLC通信安全检测方法的步骤流程示意图,具体可以包括如下步骤:
S101,在第一设备和第二设备双向身份验证通过的情况下,所述第一设备将待发送至所述第二设备的原始数据划分为多个数据块,所述第一设备和所述第二设备均为PLC。
本实施例方法可以应用于工业控制系统中,工业控制系统中可以包括电子设备,电子设备可以为PLC设备。为了便于表述,本申请实施例中将发送数据的电子设备称为第一设备,将接收数据的电子设备称为第二设备。第一设备可以为工业控制系统中的下位机,第二设备可以为工业控制系统的上位机。
第一设备和第二设备在进行通信之前,可以先进行密钥交换,并在密钥交换的过程中完成双向验证。示例性的,基于上述RS485通信协议认证授权模块,第一设备和第二设备可以进行密钥交换,并在密钥交换过程中进行认证授权。
其中,上述密钥可以由第二设备生成。例如,第二设备可以随机生成一个128字节的长密钥K。本申请实施例对第二设备生成密钥的方式不作限定。
第一设备和第二设备均可以具有公私钥对,公私钥对可以包括一个公钥和一个私钥。设备在获取公私钥对时,可以获得CA(Certificate Authority,证书授权)证书。CA证书是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。
第一设备可以将CA证书和公钥发送至第二设备,第二设备可以基于CA证书对第一设备进行验证,并在验证通过后可以使用第一设备的公钥对密钥进行加密,得到加密密钥;并将加密密钥发送至第一设备。第一设备接收到加密密钥之后,可以使用自己的私钥对加密密钥进行解密,从而得到密钥。该密钥用于在第一设备和第二设备进行通信时,对数据进行加密。
第二设备在发送加密密钥时,可以将第二设备的证书以及公钥发送至第一设备,使得第一设备可以基于第二设备的公钥和证书对第二设备进行验证。
第一设备可以基于密钥,生成身份认证信息。上述身份认证信息可以用于第二设备对第一设备进行身份验证。在一种可能的实现方式中,上述身份认证信息可以包括第一设备的身份标识,第一设备可以使用密钥对身份标识进行加密,并将加密后的身份标识作为身份认证信息发送至第二设备。在另一种可能的实现方式中,上述身份标识信息可以为使用第二设备的公钥加密之后的密钥,而第二设备在接收到身份标识信息之后,可以使用第二设备的私钥对该身份标识信息进行解密,并将解密得到的密钥与存储的密钥进行对比,若二者相同,则验证通过。从而在进行密钥交换的同时,完成第一设备和第二设备之间的身份认证。在另一种可能的实现方式中,第一设备和第二设备可以互相发送数字证书和公钥,从而进行双向身份验证,并在双向身份验证通过后,进行密钥的交换。
在接收到身份认证信息时,可以按照约定的方式进行身份验证。在一种可能的实现方式中,上述身份认证信息可以包括第一设备的身份标识,第一设备可以使用密钥对身份标识进行加密,并将加密后的身份标识作为身份认证信息发送至第二设备。此时,第二设备可以使用密钥对身份标识进行解密,并将解密后的身份标识与之前存储的第一设备的身份标识进行比对,从而验证第一设备是否为之前认证过的设备。在另一种可能的实现方式中,上述身份标识信息可以为使用第二设备的公钥加密之后的密钥,而第二设备在接收到身份标识信息之后,可以使用第二设备的私钥对该身份标识信息进行解密,并将解密得到的密钥与存储的密钥进行对比,若二者相同,则验证通过。从而在进行密钥交换的同时,完成第一设备和第二设备之间的身份认证。
本实施例中,第二设备可以进行授权管理,从而可以在第一设备和第二设备双向认证通过的情况下,在第一设备和第二设备之间建立通信连接。基于授权管理,第二设备可以只接收可靠来源的数据,保障了数据的安全性。
第一设备发送的数据可以为传感器数据、执行器执行结果、位置信息等等。在进行通信时,为了加快传输速度,避免大批数据重传,第一设备可以将待发送至第二设备的原始数据划分为多个数据块;然后采用密钥和多种加密算法对各个加密数据块进行加密,得到加密数据;再将加密数据发送至第二设备。其中,加密方法可以在通信协议中约定。
第一设备在进行数据发送时,可以将待发送数据分割为固定大小的多个数据块。每个数据块按顺序组合可以得到原始数据。示例性的,可以将待加密数据分割成多个128字节的数据块。
S102,所述第一设备基于密钥和第一加密算法对各个所述数据块进行加密,得到多个第一加密数据块。
上述第一加密算法可以为DES(Data Encryption Standard)加密算法。DES加密算法为对称加密算法,算法的加密和解密都可以使用同一个密钥实现。第一设备可以使用密钥和DES加密算法对每个数据块进行加密,得到多个第一加密数据块。
S103,所述第一设备基于所述密钥和第二加密算法对各个所述第一加密数据块进行加密,得到多个第二加密数据块。
上述第二加密算法可以为AES(Advanced Encryption Standard)加密算法。第一设备可以使用密钥和AES加密算法对每个第一加密数据块进行加密,得到多个第二加密数据块。
S104,所述第一设备确定各个所述数据块的第一校验码,所述第一校验码用于对所述数据块进行数据校验。
第一设备可以使用哈希算法计算每个数据块的哈希值,并将哈希值作为该数据块对应的校验码。例如,哈希算法可以为SHA256算法。
S105,所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,多个所述第一校验码和多个所述第三加密数据块构成发送至第二设备的加密数据。
在一种可能的实现方式中,对于每个数据块,第一设备可以将其对应的第一校验码作为密钥对该数据块对应的第二加密数据块再次进行加密。
在另一种可能的实现方式中,在进行加密时,使用的算法可以为预先约定的加密算法,例如可以为DES算法,也可以为AES算法。再次加密之后,每个数据可以得到经过三次加密的第三加密数据块。
第一设备可以将各个第三加密数据块与每个数据块对应的第一校验码按照数据块的顺序发送至第二设备。此时,数据块的接收顺序可以作为数据块的组合顺序。
在另一种可能的实现方式中,可以为每个数据块增加一个顺序标识,从而在第二设备在数据块的组合时可以按照顺序标识进行组合。
在另一种可能的实现方式中,第一设备可以将每个数据块的第一校验码与每个数据块的顺序关联存储,从而得到新的组合顺序数据。然后将组合顺序数据按照上述的方式发送至第二设备,第二设备可以在对组合顺序数据解密完成之后,按照组合顺序中的各个数据块对应的顺序对数据块进行组合。
下面以密钥为K对本申请实施例中的方案进行说明。
对于每个数据块P:可以用DES算法对数据块进行加密,得到第一加密数据块C1,即:C1=DES(K,P);用AES算法对C1进行加密,可以得到第二加密数据块C2,即:C2=AES(K,C1)。可以使用SHA-256算法产生数据块的校验码,得到H1,即:H1=SHA256(P)。用H1作为密钥,对C2进行加密,得到第三加密数据块H2,即:H2=AES(H1,C2)
对于每个数据块,可以计算得到一个对应的H2和H1,第一设备可以按照数据块的组合顺序,将对应的H2和H1发送至第二设备。
本申请实施例中,在进行数据发送时,可以先对数据进行分割,然后使用密钥对数据进行两次加密,再使用校验码对数据进行一次加密,基于三次加密,保障了数据传输过程中,即便被截取到数据,也难以进行数据解密,使得数据具有机密性,从而保障数据安全。
S106,所述第二设备对接收到的加密数据进行解密,得到解密数据。
第二设备接收数据以及数据解密过程可以参照图2,如图2所示,具体可以包括如下步骤:
S201,接收来自所述第一设备的加密数据,所述加密数据是所述第一设备采用多种加密算法对原始数据进行加密得到的。
图2中的执行主体为上述的第二设备。
上述加密数据中可以包括多个第三加密数据块和多个第一校验码,其中,第一校验码与第三加密数据块一一对应。每个第一校验码用于对一个对应的数据块进行校验。
S202,使用各个所述第一校验码对对应的每个所述第三加密数据块进行解密,得到多个第二解密数据块。
在进行解密时,使用的解密算法可以为预先在通信协议中约定的加密算法。例如,第一设备使用AES加密算法进行加密,则此时第二设备使用AES加密算法进行解密。第一设备使用DES加密算法进行加密,则此时第二设备使用DES加密算法进行解密。
在基于第一校验码和预设的加密算法对第三加密数据块进行一次解密之后,可以得到第二解密数据块。
S203,基于所述密钥和第二解密算法对各个所述第二加密数据块进行解密,得到多个第一解密数据块。
上述第二解密算法可以为AES算法。
S204,基于所述密钥和第一解密算法对各个所述第一加密数据块进行解密,得到多个原始数据块。
上述解密算法可以视为DES加密算法。
S205,将多个所述数据块组合为所述第一设备的原始数据。
在获得每个第三加密数据块对应的数据块之后,可以将各个原始数据块按顺序组合,从而得到原始数据。
在一种可能的实现方式中,数据块的组合顺序可以为数据块的发送顺序,因此,可以根据多个第三加密数据块的接收顺序,对多个数据块进行组合,得到原始数据。
在另一种可能的实现方式中,每个数据块可以携带一个顺序标识,从而在进行组合时可以按照顺序标识进行组合。
在另一种可能的实现方式中,第一设备可以将每个数据块的第一校验码与每个数据块的顺序关联存储,从而得到新的组合顺序数据。然后将组合顺序数据按照上述的方式发送至第二设备,第二设备可以在对组合顺序数据解密完成之后,按照组合顺序中的各个数据块对应的顺序对数据块进行组合。
S107,所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测。
为了确保接收到的数据的完整性,在进行数据组合之前,第二设备可以基于原始数据块进行数据校验。示例性的,第二设备可以计算每个原始数据块的第二校验码。其中,计算每个数据块的第二校验码所使用的算法可以为通信协议中约定的哈希算法。
基于每个第一校验码和对应的每个原始数据块的第二校验码,第二设备对每个原始数据块进行数据校验,以确定各个原始数据块是否被篡改。示例性的,对于每个原始数据块,若第一校验码和第二校验码相同,则表明原始数据块未被篡改,数据校验通过;若第一校验码和第二校验码不同,则表明原始数据块被篡改,数据校验未通过。
在一种可能的实现方式中,第一设备还可以计算原始数据的哈希值,并将该哈希值发送至第二设备,第二设备在数据组合完成后,可以重新数据组合得到的原始数据的哈希值,并对比计算得到的哈希值和接收到的哈希值;若计算得到的哈希值和接收到的哈希值相同,则不存在丢失的数据块,若计算得到的哈希值和接收到的哈希值不同,则存在丢失的数据块,此时,第二设备可以重新向第一设备请求数据。
在一种可能的实现方式中,第二设备可以确定是否存在校验不通过的目标原始数据块;若存在校验不通过的目标原始数据块,则第二设备可以向第一设备重新请求目标原始数据块。第二设备可以向第一设备发送未通过数据校验的数据块的标识,从而使得第一设备可以重新发送未通过数据校验的数据块。示例性的,未通过数据校验的数据块的标识可以为对应的第一校验码。
本申请实施例中,第一设备和第二设备可以在进行密钥交换的过程中进行身份认证。在身份认证通过后,第二设备可以向第一设备授予通信权限。本申请实施例中,第一设备和第二设备需要进行双向认证的情况下,才能建立通信连接,从而保障了数据来源的可靠性,保障数据安全。
本申请实施例中,基于约定的加解密算法可以保障数据的机密性,基于校验码进行数据校验,可以保障数据的完整性,避免数据传输过程中数据丢失或数据被篡改。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了进一步阐述本申请中的方法,下面使用另一具体的实施例对本申请中方案进行说明。在本实施例中,上位机即为上述第二设备,下位机即为上述第一设备,图3是本申请实施例提供的一种基于RS485协议的工控系统中的通信安全检测方法的流程示意图。如图3所示,PLC设备之间进行通信时,可以先进行RS485通信协议认证授权。在PLC设备中可以引入加密模块,修改通信协议,以便在RS485通信中进行数据加密和解密。加密模块可以用于对数据进行加密,解密模块对加密后的数据进行解密。
上位机可以向下位机发送密钥,进行双向身份认证,确保双方身份合法。上位机可以使用公钥加密密钥并发送,下位机使用私钥解密并发送一个确认消息。一旦确认消息被发送回,则表示双方身份均合法。上位机使用随机数生成一个密钥,例如,上位机可以随机生成一个128字节的长密钥K。然后将其加密并发送给下位机,下位机使用自己的密钥对上位机生成的密钥进行解密,并生成自己的密钥,将其加密并发送给上位机,上位机解密下位机发送的密钥,完成认证并授权下位机与其自由通信,上位机可以在下位机和上位机之间进行授权管理,确保双方访问权限的可控。由于在加密模式下,通信双方固定为上、下位机,因此可以在密钥交换过程中实现身份认证和授权管理。
在认证授权之后,下位机可以基于RS485通信协议进行传输加密。若下位机想要发送数据,先将数据通过加密算法进行加密,然后再发送给上位机。其中,在进行加密时可以使用对称加密算法对数据进行加密,并将密文发送给上位机。
加密步骤具体可以如下:将待加密数据分割成多个128字节的数据块。对每个数据块P进行加密,用DES算法对数据块进行加密,得到密文C1,即:C1=DES(K,P);用AES算法对C1进行加密,得到密文C2,即:C2=AES(K,C1);用SHA-256算法产生数据块的校验码,得到H1,即:H1=SHA256(P)。用H1作为密钥,对C2进行加密,得到密文H2,即:H2=AES(H1,C2)。本申请中,在加密时,使用SHA256算法对数据块P进行哈希计算,得到哈希值H1,哈希值H1可以用于校验数据完整性。将作为AES加密算法的密钥来加密C2,可以进一步保证加密的安全性。
在加密完成后,下位机可以将加密后的所有数据块按顺序把H1和H2一起发送给上位机。
上位机收到加密数据后,进行解密操作,得到原始数据,并将其传递给PLC控制器。
上位机接收到H1和H2之后,在解密时,首先使用原始密钥K和解密算法AES_decrypt对密文H2进行解密得到解密后的密文C2。然后使用原始密钥K、解密算法AES_decrypt和哈希值H1,对C2进行解密,得到解密后的密文C1。最后,使用原始密钥K和解密算法DES_decrypt对C1进行解密,得到原始数据块P。解密过程的完整公式和算法可以如下:使用原始钥K和解密算法AES_decrypt对密文H2进行解密,得到解密后的密C2。即:C2=AES_decrypt(H1,H2)。使用解密后的密文C2、原始密钥K以及解密算法AES_decrypt对C2进行解密,得到解密后的密文1。即:C1=AES_decrypt(K,C2)。使用原始密钥K和解密算法DES_decrypt对C1进行解密得到解密后的原始数据块。即:P=DES_decrypt(K,C1)。
整个解密过程中,原始数据块P首先经过SHA256哈希计算获得哈希值H1,再通过AES加密算法进行加密,得到密文C2;解密时先使用哈值H1还原密文C2,再使用原始密钥K和解密算法对密文进行解密,最终得到原始数据块P。
在解密之后,上位机可以使用RS485通信协议校验功能进行数据校验,从而确保数据的完整性。上位机可以通过对数据的校验,判断其完整性。若数据校验出现异常,可通过重发策略重发数据,以保证数据传输的可靠性。数据在加密和解密过程中可能会受到干扰或篡改,使用哈希函数进行校验,以验证数据的完整性。如果发现数据损坏或不完整,可通过重发策略保证数据的可靠传输。
在进行数据校验时,上位机可以使用相同的哈希算法SHA256对原始数据块P进行哈希计算,得到哈希值H1'。将H1'与接收到的H1进行比较,如果不一致,则说明数据块在传输过程中已经被篡改。示意公式:H1'=SHA256(P);if H1'!=H1:raise Exception('Datacorrupted!')。
在本申请实施例中,使用SHA256算法对数据块进行哈希计算保证了数据的完整性和安全性,使用AES和DES算法对数据进行加密和解密保证了数据的机密性。使用H1和H1'进行比较和数据篡改的检测,避免了非法数据的传输和使用。最终使用H2作为解密时的AES加密密钥,从而充分保证了数据的完整性和安全性。
综上所述,本申请提供了一种基于RS485协议的工控系统中的PLC的通信安全检测方法。通过对RS485通信协议的改进,实现了通信数据的加密、传输和解密,以保障PLC设备通信的机密性、完整性和可用性。本申请既简单实用,又能有效保障PLC系统通信的安全性,具有重要的工程应用价值。
本申请实施例中的PLC通信安全检测方法,可以应用于多个领域。例如,本申请实施例中的PLC通信安全检测方法可以应用于工业自动化领域。本申请中方案可广泛应用于各种工业自动化控制系统中,如智能制造、智能物流等,以确保PLC设备的通信安全。本申请实施例中的PLC通信安全检测方法可以应用于智能家居领域,用于智能家居系统中的门禁、安防控制、智能家电及环境控制等应用场景,对数据的传输进行加密,提高数据的安全性。本申请实施例中的PLC通信安全检测方法可以应用于能源管理领域,用于智能电网以及各种能源管理系统,确保系统中数据的机密性、完整性和可用性。
本申请实施例中的PLC通信安全检测方法还可以应用于金融安全领域,类的加密算法和安全通讯协议可以应用于金融领域,如银行等金融机构的机密数据传输。
本申请实施例中的PLC通信安全检测方法还可以应用于物流领域,例如可以用于各种物流跟踪和管理系统,如地铁票务管理,货运运输数据等。本申请实施例中的PLC通信安全检测方法还可以应用于互联网领域:互联网上的在线即时通信、文件传输等服务需要对数据进行加密,以确保数据传输的机密性,本申请中方案可将加密算法应用于此类领域,提高数据传输的安全性。
综上所述,本申请中方案应用范围广泛,可用于各种需要保障通信安全的系统中,为相应领域提供了更高的数据安全保障。
参照图4,示出了本申请实施例提供的一种PLC通信安全检测装置的示意图,包括:数据块划分模块41、第一加密模块42、第二加密模块43、第一校验码计算模块44、第三加密模块45、解密模块46和检测模块47,其中:
数据块划分模块41,用于在第一设备和第二设备双向身份验证通过的情况下,所述第一设备将待发送至所述第二设备的原始数据划分为多个数据块,所述第一设备和所述第二设备均为PLC;
第一加密模块42,用于所述第一设备基于密钥和第一加密算法对各个所述数据块进行加密,得到多个第一加密数据块;
第二加密模块43,用于所述第一设备基于所述密钥和第二加密算法对各个所述第一加密数据块进行加密,得到多个第二加密数据块;
第一校验码计算模块44,用于所述第一设备确定各个所述数据块的第一校验码,所述第一校验码用于对所述数据块进行数据校验;
第三加密模块45,用于所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,多个所述第一校验码和多个所述第三加密数据块构成发送至第二设备的加密数据;
解密模块46,用于所述第二设备对接收到的加密数据进行解密,得到解密数据;
检测模块47,用于所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测。
在一种可能的实现方式中,上述第三加密模块45包括:
加密子模块,用于所述第一设备将所述第一校验码作为所述第二加密算法的密钥,使用所述第二加密算法对所述第二加密数据块进行加密,得到第三加密数据块。
在一种可能的实现方式中,上述解密模块46包括:
第一解密子模块,用于所述第二设备使用各个所述第一校验码对对应的每个所述第三加密数据块进行解密,得到多个第二解密数据块;
第二解密子模块,用于所述第二设备基于所述密钥和第二解密算法对各个所述第二解密数据块进行解密,得到多个第一解密数据块;
第三解密子模块,用于所述第二设备基于所述密钥和第一解密算法对各个所述第一解密数据块进行解密,得到多个原始数据块;
组合子模块,用于所述第二设备将多个所述原始数据块组合为所述第一设备的原始数据。
在一种可能的实现方式中,上述组合子模块包括:
按序组合单元,用于所述第二设备根据多个所述第三加密数据块的接收顺序,对多个所述原始数据块进行组合,得到所述原始数据。
在一种可能的实现方式中,上述检测模块47包括:
第二校验码计算子模块,用于所述第二设备计算每个所述原始数据块的第二校验码;
校验子模块,用于所述第二设备基于每个所述第一校验码和对应的每个数据块的第二校验码,对每个所述原始数据块进行数据校验,以确定各个所述原始数据块是否被篡改。
在一种可能的实现方式中,所述装置还包括:
目标原始数据块确定模块,用于所述第二设备确定是否存在校验不通过的目标原始数据块;
重新请求模块,用于若存在校验不通过的所述目标原始数据块,则所述第二设备向所述第一设备重新请求所述目标原始数据块。
在一种可能的实现方式中,所述装置还包括:
交换密钥模块,用于在第一设备和第二设备双向身份验证的过程中,所述第一设备和所述第二设备交换所述密钥。
在一种可能的实现方式中,上述交换密钥模块包括:
密钥生成子模块,用于所述第二设备生成所述密钥;
加密密钥确定子模块,用于所述第二设备使用第一设备的公钥对生成的密钥进行加密,得到加密密钥;
加密密钥发送子模块,用于所述第二设备将所述加密密钥发送至所述第一设备;
加密密钥解密子模块,用于所述第一设备使用所述第一设备的私钥对来自第二设备的加密密钥进行解密,得到所述密钥;
身份验证信息生成子模块,用于所述第一设备基于所述密钥,生成身份认证信息;
身份验证信息发送子模块,用于所述第一设备将所述身份认证信息发送至所述第二设备;
授权通信子模块,用于若所述身份认证信息验证通过,则所述第二设备向所述第一设备授予通信权限,以在所述第一设备和所述第二设备之间建立通信连接。
在一种可能的实现方式中,所述第一加密算法为DES算法,所述第二加密算法为AES算法。
在一种可能的实现方式中,所述装置还包括:
协议修改模块,用于对所述第一设备和所述第二设备之间通信使用的RS485通信协议进行修改,以使得所述第一设备和所述第二设备在通信过程中能够对数据进行加解密。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
图5为本申请实施例提供的一种电子设备的结构示意图。如图5所示,该实施例的电子设备500包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个方法实施例中的步骤。
所述电子设备500可以是PLC设备,电子设备500可以通过执行前述各个方法实施例中的实现相互之间的加密通信。该电子设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是电子设备500的举例,并不构成对电子设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),该处理器50还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51在一些实施例中可以是所述电子设备500的内部存储单元,例如电子设备500的硬盘或内存。所述存储器51在另一些实施例中也可以是所述电子设备500的外部存储设备,例如所述电子设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述电子设备500的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种PLC通信安全检测方法,其特征在于,所述方法包括:
在第一设备和第二设备双向身份验证通过的情况下,所述第一设备将待发送至所述第二设备的原始数据划分为多个数据块,所述第一设备和所述第二设备均为PLC;
所述第一设备基于密钥和第一加密算法对各个所述数据块进行加密,得到多个第一加密数据块;
所述第一设备基于所述密钥和第二加密算法对各个所述第一加密数据块进行加密,得到多个第二加密数据块;
所述第一设备确定各个所述数据块的第一校验码,所述第一校验码用于对所述数据块进行数据校验;
所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,多个所述第一校验码和多个所述第三加密数据块构成发送至第二设备的加密数据;
所述第二设备对接收到的加密数据进行解密,得到解密数据;
所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测。
2.如权利要求1所述的方法,其特征在于,所述第一设备基于各个所述第一校验码对对应的每个所述第二加密数据块进行加密,得到多个第三加密数据块,包括:
所述第一设备将所述第一校验码作为所述第二加密算法的密钥,使用所述第二加密算法对所述第二加密数据块进行加密,得到第三加密数据块。
3.如权利要求1所述的方法,其特征在于,所述第二设备对接收到的加密数据进行解密,得到解密数据,包括:
所述第二设备使用各个所述第一校验码对对应的每个所述第三加密数据块进行解密,得到多个第二解密数据块;
所述第二设备基于所述密钥和第二解密算法对各个所述第二解密数据块进行解密,得到多个第一解密数据块;
所述第二设备基于所述密钥和第一解密算法对各个所述第一解密数据块进行解密,得到多个原始数据块;
所述第二设备将多个所述原始数据块组合为所述第一设备的原始数据。
4.如权利要求3所述的方法,其特征在于,所述第二设备将多个所述原始数据块组合为所述第一设备的原始数据,包括:
所述第二设备根据多个所述第三加密数据块的接收顺序,对多个所述原始数据块进行组合,得到所述原始数据。
5.如权利要求3所述的方法,其特征在于,所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测,包括:
所述第二设备计算每个所述原始数据块的第二校验码;
所述第二设备基于每个所述第一校验码和对应的每个数据块的第二校验码,对每个所述原始数据块进行数据校验,以确定各个所述原始数据块是否被篡改。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备计算所述原始数据的第一原始校验码,并将所述第一原始校验码发送至第二设备;
所述第二设备基于所述解密数据对第一设备和第二设备之间的通信安全进行检测,包括:
所述第二设备计算组合得到的原始数据的第二原始校验码,
所述第二设备基于每个所述第一原始校验码和所述第一原始校验码,对所述原始数据进行数据校验,以确定接收到的原始数据是否完整。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述第二设备确定是否存在校验不通过的目标原始数据块;
若存在校验不通过的所述目标原始数据块,则所述第二设备向所述第一设备重新请求所述目标原始数据块。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
在第一设备和第二设备双向身份验证的过程中,所述第一设备和所述第二设备交换所述密钥。
9.如权利要求8所述的方法,其特征在于,在第一设备和第二设备双向身份验证的过程中,所述第一设备和所述第二设备交换所述密钥,包括:
所述第二设备生成所述密钥;
所述第二设备使用第一设备的公钥对生成的密钥进行加密,得到加密密钥;
所述第二设备将所述加密密钥发送至所述第一设备;
所述第一设备使用所述第一设备的私钥对来自第二设备的加密密钥进行解密,得到所述密钥;
所述第一设备基于所述密钥,生成身份认证信息;
所述第一设备将所述身份认证信息发送至所述第二设备;
若所述身份认证信息验证通过,则所述第二设备向所述第一设备授予通信权限,以在所述第一设备和所述第二设备之间建立通信连接。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一设备和所述第二设备之间通信使用的RS485通信协议进行修改,以使得所述第一设备和所述第二设备在通信过程中能够对数据进行加解密。
CN202311785860.6A 2023-12-22 2023-12-22 一种plc通信安全检测方法 Pending CN117930736A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311785860.6A CN117930736A (zh) 2023-12-22 2023-12-22 一种plc通信安全检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311785860.6A CN117930736A (zh) 2023-12-22 2023-12-22 一种plc通信安全检测方法

Publications (1)

Publication Number Publication Date
CN117930736A true CN117930736A (zh) 2024-04-26

Family

ID=90758324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311785860.6A Pending CN117930736A (zh) 2023-12-22 2023-12-22 一种plc通信安全检测方法

Country Status (1)

Country Link
CN (1) CN117930736A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118522085A (zh) * 2024-05-20 2024-08-20 武汉轻购智能科技有限公司 一种基于rs485通讯的加密电插锁
CN118586020A (zh) * 2024-08-07 2024-09-03 杭州泛海科技有限公司 一种plc程序数据保护方法、介质及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118522085A (zh) * 2024-05-20 2024-08-20 武汉轻购智能科技有限公司 一种基于rs485通讯的加密电插锁
CN118586020A (zh) * 2024-08-07 2024-09-03 杭州泛海科技有限公司 一种plc程序数据保护方法、介质及设备

Similar Documents

Publication Publication Date Title
US10154021B1 (en) Securitization of temporal digital communications with authentication and validation of user and access devices
CN109347835B (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
Dieber et al. Application-level security for ROS-based applications
CN110750803B (zh) 数据提供和融合的方法及装置
USH2270H1 (en) Open protocol for authentication and key establishment with privacy
EP3718252A1 (en) System and method of device identification for enrollment and registration of a connected endpoint device, and blockchain service
US20120275595A1 (en) Cryptographically secure authentication device, system and method
CN113079132B (zh) 海量物联网设备认证方法、存储介质、信息数据处理终端
CN112448941B (zh) 认证系统和用于认证微控制器的方法
EP4412152A1 (en) Authentication method and communication apparatus
CN112865959B (zh) 分布式节点设备的共识方法、节点设备及分布式网络
CN117930736A (zh) 一种plc通信安全检测方法
CN116633530A (zh) 量子密钥传输方法、装置及系统
JP6188633B2 (ja) コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
CN112968774B (zh) 一种组态存档加密及解密方法、装置存储介质及设备
CN113709734A (zh) 一种基于区块链的无人机分布式身份认证方法
CN114826742B (zh) 一种面向工程机械物联网感知层网络的通信安全系统及认证方法
WO2011152084A1 (ja) 効率的相互認証方法、プログラム、及び装置
Wei et al. Tripartite Authentication Protocol RFID/NFC Based on ECC.
CN116318637A (zh) 设备安全入网通信的方法和系统
CN118300905B (zh) 基于保密认证模式的密文传输方法、装置、设备及介质
CN115242468B (zh) 一种基于rs485总线的安全通信系统及其方法
US20230283487A1 (en) Hardware Based Authentication And Authorization Of Networked Nodes
WO2024149029A1 (zh) 一种认证方法及认证装置
US20240235857A9 (en) Puf and blockchain based iot event recorder and method

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