CN104811427B - 一种安全的工业控制系统通信方法 - Google Patents
一种安全的工业控制系统通信方法 Download PDFInfo
- Publication number
- CN104811427B CN104811427B CN201410040992.0A CN201410040992A CN104811427B CN 104811427 B CN104811427 B CN 104811427B CN 201410040992 A CN201410040992 A CN 201410040992A CN 104811427 B CN104811427 B CN 104811427B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- frame
- command
- application layer
- 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.)
- Active
Links
Abstract
本发明涉及一种安全的工业控制系统通信方法,包括以下步骤:主站点的应用层将命令/数据封装成应用层报文;安全传输层接收到应用层报文后进行加密并封装成传输层报文;数据链路层将接收到的传输层报文转换为数据链路层帧,发送至从站点;从站点接收到命令/数据后,首先由数据链路层进行拆封为传输层报文,并发送到安全传输层;安全传输层将传输层报文解密并拆封为应用层报文并发送到应用层;应用层对报文进行提取得到命令/数据。本发明能够有效保证通信数据的安全性,通过加密保证数据机密性,验证消息认证码以确定数据是否被篡改,具有很好的实用性。
Description
技术领域
本发明涉及一种工业控制系统中设备之间进行数据通信使用的安全方法,属于网络信息安全技术领域。
背景技术
随着工业化和信息化融合进程的不断推进,将电子信息技术广泛应用到工业生产的各个环节将成为必然趋势。工业控制系统也将逐渐打破了以往的封闭性,采用标准、通用的通信协议及硬软件系统,从而面临病毒、木马、黑客入侵、拒绝服务等传统的信息安全威胁。而且由于工业控制系统多被应用在电力、交通、石油化工、核工业等国家重要基础设施行业中,其安全事故造成的社会影响和经济损失会更为严重。工业控制安全势必将提升为国家安全战略,并得到国家各个层面的重视。
工业控制系统通常包含人机交互客户端(Human Machine Interface Client)、主终端单元/人机交互服务端(Master Terminal Unit/Human Machine Interface Server)、远程终端单元(Remote Terminal Unit)和区域设备(Field Device)等组件。由于各个组件在网络中通常分布在不同的物理区域,所以这些设备之间的通信需要依赖于特定的通信协议,从而完成控制命令和数据的传输。目前在工业控制领域已经提出了一系列通信协议,例如Modbus、DNP3.0和IEC60870。虽然这些协议得到了广泛应用,但是由于此类协议在设计之初主要用于隔离环境下的工业控制系统,没有考虑安全性,所以缺乏认证、授权和加密等安全防护机制。随着第三代工业控制系统趋于网络化和智能化,一般的通信协议将无法保障系统的安全性,恶意攻击者可以对系统中的数据进行窃取、篡改和伪造,甚至修改设备参数使整个工业控制系统无法正常运转。
发明内容
针对上述技术不足,本发明的主要目的是针对目前一般工业控制系统通信协议存在的安全缺陷,基于三层通信模型提出了一种安全的工业控制系统通信协议的方法。
本发明解决其技术问题所采用的技术方案是:
一种安全的工业控制系统通信方法,包括以下步骤:
主站点的应用层将命令/数据封装成应用层报文;安全传输层接收到应用层报文后进行加密并封装成传输层报文;数据链路层将接收到的传输层报文转换为数据链路层帧,发送至从站点;
从站点接收到命令/数据后,首先由数据链路层进行拆封为传输层报文,并发送到安全传输层;安全传输层将传输层报文解密并拆封为应用层报文并发送到应用层;应用层对报文进行提取得到命令/数据。
所述主站点的应用层将命令/数据封装成应用层报文包括以下步骤:
在命令/数据前添加用于标识的对象标题,并在整个命令/数据的最前端添加请求报头/响应报头形成应用层报文。
所述请求报头包括应用控制段、功能码;所述响应报头包括应用控制段、功能码和内部信号;所述应用控制段从低位至高位依次为开始位、结束位、确认码、分段的序号。
所述安全传输层接收到应用层报文后进行加密并封装成传输层报文包括以下步骤:安全传输层在接收到应用层报文后,首先对报文内的命令/数据进行切分,然后使用对称加密算法对每个命令/数据块进行加密,并在后面附加消息认证码;然后在整个命令/数据的前端添加传输报文头形成传输层报文;
所述传输层报文包括依次的传输报文头、加密的用户数据、消息认证码。
所述传输报文头从低位至高位依次为结束位、开始位、报文序号、加密算法类型、哈希函数类型、消息认证码验证反馈或保留位、保留位。
所述数据链路层将接收到的传输层报文转换为数据链路层帧包括以下步骤:数据链路层接收到传输层报文后,对加密的命令/数据进行切分,然后在每个命令/数据块后附加循环冗余码,并在整个命令/数据块前端添加数据链路帧头形成数据链路层帧。
所述数据链路帧头的帧格式为顺序的起始标识、内容区长度、帧控制字节、目的地址、原地址、循环冗余码。
所述帧控制字节的帧格式包括依次的方向位、原发标志位、帧计数位、帧计数或保留位、帧计数有效位或数据流控位、功能代码。
所述由数据链路层进行拆封为传输层报文包括以下步骤:
数据链路层通过循环冗余码验证帧数据是否被破坏;如果被破坏,则丢弃该帧,如果没被破坏,提取帧格式中的多个命令/数据块并将其拼接为完整的传输层报文。
所述安全传输层将传输层报文解密并拆封为应用层报文包括以下步骤:
安全传输层接收到传输层报文,使用设定的秘钥通过消息认证码验证报文完整,然后解密密文获得明文数据;提取报文中的多个分块的命令/数据,拼接为应用层报文。
本发明具有以下有益效果及优点:
1.本发明可以保护控制命令和通信数据的完整性及机密性,增强系统的安全保护能力。
2.本发明将协议按照三层结构建立,各层松散耦合,具有较高的灵活性。
3.本发明的协议帧格式及报文格式最大程度上减少了冗余信息,保证了通信的高效性和实用性。
附图说明
图1为本发明的安全通信协议的协议栈示意图;
图2为站点间通信报文顺序示意图;
图3为协议执行流程示意图;
图4为应用请求格式图;
图5为应用响应格式图;
图6为请求报头格式图;
图7为响应报头格式图;
图8为应用控制段格式图;
图9为传输层报文格式图;
图10为传输报文头数据位格式图;
图11为数据链路帧格式图;
图12为帧头控制字节数据位格式图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明。
本发明设计了一种基于三层网络模型的安全工业控制系统通信协议,该协议由数据链路层、安全传输层和应用层共同组成,如图1。
本发明的通信协议包括以下步骤:
(1)主站点应用层完成控制命令和数据的封装。系统管理员通过人机交互客户端发出远程设备状态变更指令,例如改变发动机转速、改变传感器采集频率;
(2)主站点安全传输层接收应用层的请求报文或响应报文,对报文进行安全封装,加密数据并附加消息认证码,完成封装后传递到数据链路层;
(3)主站点数据链路层负责将协议栈高层(安全传输层)提供的数据转换成数据链路层帧,以便通信信道传输;
(4)从站点数据链路层对其它设备发送到本站点的二进制数据进行拆封并传递到协议栈高层;
(5)从站点安全传输层接收数据链路层传递来的数据,根据消息认证码验证数据的完整性(如果验证失败则丢弃数据包并发出警告消息,验证成功则进行解密操作),解密数据进一步拆封报文并传递到应用层。
(6)从站点应用层获取主站点发送的命令数据,并将其交给区域设备完成执行操作。
以主站点的管理员发送命令到从站点执行为例,具体说明该协议的执行流程如下(图3):
(1)主站点应用层
管理员在主站点客户端输入远程设备需要执行的命令,应用层对输入的一个或多个命令数据添加对象标题进行标识,之后在整个数据的最前端添加请求报头形成应用层报文,如图4所示。如果站点发送的数据为响应数据时,则应该将请求报头改为响应报头,如图5所示。请求报头和响应报头的格式说明如图6和图7,报头的应用控制码格式如图8所示。
(2)主站点安全传输层
安全传输层在接收到应用层传来的报文后,首先按照255字节的分组长度对其进行切分,然后使用对称加密算法对每个数据块进行加密,同时计算加密数据块的消息认证码并附加在其后。之后在数据的前端添加传输报头形成传输层报文,如图9所示。传输报头的数据位格式如图10所示。
(3)主站点数据链路层
数据链路层在接收到安全传输层传来的报文后,按照16字节的分组长度对其进行切分,然后对每块数据附加循环冗余码,同时在数据前端添加数据链路帧头形成数据链路层帧,如图11。数据链路帧头数据位格式如图12所示。
(4)从站点数据链路层
从站点接收到主站点传来的命令数据后,首先由数据链路层通过循环冗余码验证帧数据是否被破坏。之后提取帧格式中的多个数据块并将其拼接为完整的传输层报文,并发送到安全传输层。
(5)从站点安全传输层
从站点安全传输层接收到数据链路层传来的数据后,使用与主站点协商的秘钥通过消息认证码验证报文完整性,之后解密密文获得明文数据。最后提取报文中的多个分块数据,拼接为应用层报文并发送到应用层。
(6)从站点应用层
从站点应用层接收来自安全传输层的报文,去掉应用层报头获得主站点的请求命令,该命令由目标设备执行从而完成远程请求任务。
下面对应用层、安全传输层和数据链路层使用的数据格式进行详细说明。
(一)应用层
主站点和从站点之间相互通信的流程如图2所示。主站点将“应用层请求”发送给从站点,从站点回送“应用层响应”。从站点可以决定用“应用层非请求的响应”自发地送发数据。主站点对一个从站点必须在完成一个请求/响应回合之后才能对此从站点发送其它的请求。在请求的回合正在进行之中,主站点也可能收到非请求的响应。至于从站点,也必需在完成一个请求/响应的回合之后才能接受任何其它的请求或发送非请求的响应。此外,每个响应或请求都包含1个或更多的单个分段。然而每个分段都应是可解析的,因而是可执行的。对于报文存贮能力有限的设备,建议应只送单个分段的请求报文而所期望的响应则多于一个分段。
(1)应用请求的格式
应用请求的报文格式示于图4。
Request Header:请求报头,它标识报文的目的并由控制信息组成
OHeader:对象标题,它标识后随的数据对象
Data:数据,在对象标题内所指定类型的数据对象
(2)应用响应的格式
从站点对应用层的请求响应或发自从站点的非请求响应所具的格式如图5。
Response Header:响应报头,它标识报文的目的并由控制信息组成
OHeader:对象标题,它标识后随的数据对象
Data:数据,在对象标题内所指定类型的数据对象
(3)请求报头
请求报头具有两个字段,应用控制码和功能码;每个字段为8位的字节,功能码为发送的命令代码,如图6。
(4)响应报头
响应报头有三个字段,Internal Indications为内部信号,是响应报头的一些附加消息。如图7。
(5)应用控制码
应用控制字段的长度为一个8位字节,它提供构造多分段应用报文所需的信息,如图8。
FIR:开始位,标识这个报文是否为一个请求或响应的第一个报文
1:是第一个报文
0:不是第一个报文
FIN:结束位,标识这一报文后是否有其它报文
1:这是一个请求或响应内容的最后一个报文
0:表示后边还有其它报文
CON:在所收到的报文中此位若置“1”,表示应用报文的发送方期待接收该分段的一方在收方的应用报文中给予确认。在确认内用一个应用功能码(0)。
SEQUENCE:表示分段的序号。
(二)安全传输层
安全传输层为协议栈中主要提供数据安全性保护的一层,对应用层传递的报文进行安全封装,或对数据链路层发送来的报文进行拆封,从而验证消息的完整性并解密数据获得原始的明文。该层对上层报文按照255字节的分块进行切分,切分起始位置为整个报文的最低位,最后一块为255的余数。传输层报文的格式如图9,其内容说明如下:
TH:长度2字节,传输报文头部,负责传输控制
ENCRYPTED DATA:长度255字节,加密的用户数据
MAC:长度根据选用的HASH函数确定,消息认证码
传输报文头数据位格式如图10,其内容说明如下:
FIN:结束位,标识这一报文后是否有其它报文
1:这是一个请求或响应内容的最后一个报文
0:表示后边还有其它报文
FIR:开始位,标识这个报文是否为一个请求或响应的第一个报文
1:是第一个报文
0:不是第一个报文
SEQUENCE:报文序号
ENC TYPE:加密算法类型,内容如表1所示:
表1加密算法类型映射表
ENC TYPE | 加密算法 |
0x01 | AES128(CFB) |
0x02 | AES192(CFB) |
0x03 | AES256(CFB) |
HASH TYPE:产生消息认证码所使用的哈希函数类型,如表2所示:
表2哈希算法类型映射表
HASH TYPE | 哈希算法 |
0x01 | SHA-1 |
0x02 | SHA-256 |
0x03 | SHA-512 |
ACK:消息认证码验证反馈
1:验证失败,完整性被破坏
0:验证通过
FAC:保留位(为0)
RES:保留位(为0)
(三)数据链路层
数据链路层对协议上层传递来的报文进行帧的封装操作时,首先根据报文长度对其进行切分,起点为上层报文最低位。每个切分数据块的长度为16字节,最后一块为16字节的余数。数据链路层帧的格式如图11,其内容说明如下:
(1)帧头部分
START:长度2字节,帧头部的起始标识
LEN:长度1字节,帧头部内容区长度(CTR、TO和FROM长度总和)
CTR:长度1字节,帧控制字节
TO:长度2字节,目的地址
FROM:长度2字节,原地址
CRC:长度2字节,循环冗余码
(2)帧内容部分
帧内容部分由多个数据块组成,每个块包含DATA和CRC两部分。
DATA:长度1-16字节,用户数据,最后一块不足16字节则使用0补足
CRC:长度2字节,循环冗余码
帧头部分中的控制字节CTR位格式如图12,其数据位说明如下:
DIR:方向位
1:主站(MASTER)到从站(SLAVE)
0:从站(SLAVE)到主站(MASTER)
PRM:原发标志位
1:此帧来自原发站
0:此帧来自响应站
FCB:帧计数位
FCV:帧计数有效位
1:有效
0:无效
DFC:数据流控位
RES:保留位(为0)
FUNCTION:功能代码,表明帧的类型
由上述实例可见,发明的这种安全工业控制系统通信协议能够有效保证通信数据的安全性,通过加密保证数据机密性,验证消息认证码以确定数据是否被篡改,具有很好的实用性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。
Claims (7)
1.一种安全的工业控制系统通信方法,其特征在于包括以下步骤:
主站点的应用层将命令/数据封装成应用层报文;安全传输层接收到应用层报文后进行加密并封装成传输层报文;数据链路层将接收到的传输层报文转换为数据链路层帧,发送至从站点;
从站点接收到命令/数据后,首先由数据链路层进行拆封为传输层报文,并发送到安全传输层;安全传输层将传输层报文解密并拆封为应用层报文并发送到应用层;应用层对报文进行提取得到命令/数据;
所述主站点的应用层将命令/数据封装成应用层报文包括以下步骤:
在命令/数据前添加用于标识的对象标题,并在整个命令/数据的最前端添加请求报头/响应报头形成应用层报文。
2.根据权利要求1所述的一种安全的工业控制系统通信方法,其特征在于:所述请求报头包括应用控制段、功能码;所述响应报头包括应用控制段、功能码和内部信号;所述应用控制段从低位至高位依次为开始位、结束位、确认码、分段的序号。
3.根据权利要求1所述的一种安全的工业控制系统通信方法,其特征在于所述安全传输层接收到应用层报文后进行加密并封装成传输层报文包括以下步骤:
安全传输层在接收到应用层报文后,首先对报文内的命令/数据进行切分,然后使用对称加密算法对每个命令/数据块进行加密,并在后面附加消息认证码;然后在整个命令/数据的前端添加传输报文头形成传输层报文。
4.根据权利要求1所述的一种安全的工业控制系统通信方法,其特征在于:所述传输报文头从低位至高位依次为结束位、开始位、报文序号、加密算法类型、哈希函数类型、消息认证码验证反馈或保留位、保留位。
5.根据权利要求1所述的一种安全的工业控制系统通信方法,其特征在于所述数据链路层将接收到的传输层报文转换为数据链路层帧包括以下步骤:
数据链路层接收到传输层报文后,对加密的命令/数据进行切分,然后在每个命令/数据块后附加循环冗余码,并在整个命令/数据块前端添加数据链路帧头形成数据链路层帧。
6.根据权利要求1所述的一种安全的工业控制系统通信方法,其特征在于:所述数据链路帧头的帧格式为顺序的起始标识、内容区长度、帧控制字节、目的地址、原地址、循环冗余码。
7.根据权利要求6所述的一种安全的工业控制系统通信方法,其特征在于:所述帧控制字节的帧格式从低位至高位依次为方向位、原发标志位、帧计数位、帧计数或保留位、帧计数有效位或数据流控位、功能代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410040992.0A CN104811427B (zh) | 2014-01-27 | 2014-01-27 | 一种安全的工业控制系统通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410040992.0A CN104811427B (zh) | 2014-01-27 | 2014-01-27 | 一种安全的工业控制系统通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104811427A CN104811427A (zh) | 2015-07-29 |
CN104811427B true CN104811427B (zh) | 2017-12-19 |
Family
ID=53695926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410040992.0A Active CN104811427B (zh) | 2014-01-27 | 2014-01-27 | 一种安全的工业控制系统通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104811427B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516139B (zh) * | 2015-12-09 | 2019-03-19 | 北京四达时代软件技术股份有限公司 | 一种网络数据的传输方法、装置及系统 |
CN108718294A (zh) * | 2018-04-17 | 2018-10-30 | 上海希形科技有限公司 | 适用于控制系统的通信方法及通信装置 |
CN108833346A (zh) * | 2018-05-04 | 2018-11-16 | 北京天元创新科技有限公司 | 一种工业控制系统安全通信方法和装置 |
CN109088861A (zh) * | 2018-07-20 | 2018-12-25 | 杭州安恒信息技术股份有限公司 | Dnp3测试用例生成方法、系统、设备及计算机介质 |
EP3731044B1 (en) * | 2019-04-26 | 2022-09-07 | Kabushiki Kaisha Yaskawa Denki | Communication system and communication method |
CN111221764B (zh) * | 2019-10-18 | 2022-03-25 | 浙江中控技术股份有限公司 | 一种跨链路数据传输方法及系统 |
CN113992328A (zh) * | 2021-10-27 | 2022-01-28 | 北京房江湖科技有限公司 | 零信任传输层流量认证方法、装置及存储介质 |
CN114465775B (zh) * | 2021-12-31 | 2023-10-20 | 华为技术有限公司 | 安全传输方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102438273A (zh) * | 2011-12-28 | 2012-05-02 | 华为技术有限公司 | 集群网元间ip通信方法及相关装置和通信系统 |
CN103149907A (zh) * | 2013-02-26 | 2013-06-12 | 哈尔滨工业大学 | 基于双dsp的热冗余can总线高容错性控制终端及容错控制方法 |
-
2014
- 2014-01-27 CN CN201410040992.0A patent/CN104811427B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102438273A (zh) * | 2011-12-28 | 2012-05-02 | 华为技术有限公司 | 集群网元间ip通信方法及相关装置和通信系统 |
CN103149907A (zh) * | 2013-02-26 | 2013-06-12 | 哈尔滨工业大学 | 基于双dsp的热冗余can总线高容错性控制终端及容错控制方法 |
Non-Patent Citations (3)
Title |
---|
"一种层次型无线传感器网络安全认证方案";张治江等;《东南大学学报(自然科学版)》;20080920;第38卷;第234-248页 * |
"电力系统保护电器网络化研究";张军;《中国博士学位论文全文数据库工程科技II辑》;20120430;第C042-20页 * |
"网络控制系统的控制器与通信协议的研究与设计";吉顺平;《中国博士学位论文全文数据库信息科技辑》;20120730;第I140-77页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104811427A (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104811427B (zh) | 一种安全的工业控制系统通信方法 | |
Xin | A mixed encryption algorithm used in internet of things security transmission system | |
WO2018214719A1 (zh) | 一种多融合联动响应的动态安全方法与系统 | |
CN106789015B (zh) | 一种智能配电网通信安全系统 | |
US20080005558A1 (en) | Methods and apparatuses for authentication and validation of computer-processable communications | |
CN106357690B (zh) | 一种数据传输方法、数据发送装置及数据接收装置 | |
CN103491072A (zh) | 一种基于双单向隔离网闸的边界访问控制方法 | |
CN111245862A (zh) | 一种物联网终端数据安全接收、发送的系统 | |
CN102111273B (zh) | 一种基于预共享的电力负荷管理系统数据安全传输方法 | |
CN106941491B (zh) | 用电信息采集系统的安全应用数据链路层设备及通信方法 | |
CN103095696A (zh) | 一种适用于用电信息采集系统的身份认证和密钥协商方法 | |
CN101594229A (zh) | 一种基于组合公开密钥的可信网络连接系统及方法 | |
CN103441983A (zh) | 基于链路层发现协议的信息保护方法和装置 | |
CN107896223A (zh) | 一种数据处理方法及系统、数据采集系统及数据接收系统 | |
CN102546184B (zh) | 传感网内消息安全传输或密钥分发的方法和系统 | |
CN101783793A (zh) | 提高监控数据安全性的方法、系统及装置 | |
Saxena et al. | Efficient signature scheme for delivering authentic control commands in the smart grid | |
CN109639438A (zh) | 一种基于数字签名的scada网络工业信息加密方法 | |
CN108632044A (zh) | 一种基于自认证码的信息交互系统 | |
CN108833113A (zh) | 一种基于雾计算的增强通讯安全的认证方法及系统 | |
CN113472520B (zh) | 一种ModbusTCP协议安全增强方法及系统 | |
Baugher et al. | The use of timed efficient stream loss-tolerant authentication (TESLA) in the secure real-time transport protocol (SRTP) | |
CN103685181A (zh) | 一种基于srtp的密钥协商方法 | |
Liu et al. | A novel secure message delivery and authentication method for vehicular ad hoc networks | |
CN102710487B (zh) | 一种基于esp技术封装的精简网络数据流量的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |