APP下载

调水控制密码应用研究

2021-01-04滕海波薛井俊张明希

水利信息化 2020年6期
关键词:工控调水组态

滕海波 ,薛井俊 ,张明希 ,侯 煜 ,高 兴

(1. 南水北调东线总公司,北京 100070;2. 江苏省江都水利工程管理处,江苏 扬州 225200)

0 引言

工程调度运行管理信息系统对南水北调东线工程的安全运行、可靠监控、科学调度、优化调水和安全管理发挥着至关重要的作用。调水控制系统即工程调度运行管理信息系统中的泵(闸)站控制和水量调度系统是实现安全调水的“神经中枢”,也是工业控制领域重要信息系统。

水利可持续发展是国民经济和社会可持续发展的基础和保障[1],水利工程和人们日常的生产生活有着密切的联系,同时也关系到国计民生[2]。随着信息技术的快速发展,网络安全事件呈现快速增长趋势,密码技术作为保障网络与信息安全的核心技术和基础支撑,是保护我国信息和工业控制系统的重要技术手段,调水控制系统的安全运行离不开密码技术。本研究从调水控制系统承载业务应用安全问题与安全风险分析入手,推导密码应用需求,并给出密码应用技术路线和实现途径,对保障南水北调东线工程的安全、可靠、稳定、高效运行具有重大的现实意义。

1 调水控制业务现状及安全问题

1.1 业务现状

南水北调东线一期工程包括山东、江苏、苏鲁省际工程三段,根据所承载业务应用的重要程度和网络安全要求,东线工程信息化网络分为工程监控网(控制专网)、水量调度管理网(业务内网)和业务外网 3 张网。南水北调东线工程调水控制系统主要业务在控制专网内,包括远程泵站和水闸监控信息承载服务,传送各个现地泵站的开停及闸门启闭等相关信息。系统业务承载主要由调度中心和被控端 2 个部分系统组成,调度中心系统包括调度控制中心和分中心,被控端系统包括现地泵站枢纽集成端和站闸执行端。主要业务包括:

1)水情、工情的实时采集。主要包括采集闸门开度、各梯级泵站启停、上下游水位和实时流量,以及电流、电压、温度、压力等参数,设备电源、供配电等状态。上传采集监测数据,为现场操作、监测、管理和记录提供实时信息。

2)远程控制。包括闸门全开度和任意开度启/降,各梯级管辖泵站现地启/停控制等,及时掌握运行实况。此外还包括辅助控制,如供排水系统、油泵、捞草机开停,变焦摄像机云台及变焦镜控制,通航红绿灯、警示灯、警铃控制,室外照明、航道灯及室外设备电源控制等。

系统核心功能是对泵(闸)站的控制和数据采集,中心根据调度任务的信息,通过 Modbus TCP等工业协议,实施对端系统的远程控制;控制指令通过与现场 PLC,RTU 等设备实时数据交换,实现对闸门开度、泵站的启停控制,以及对水位、流量等监测数据的监测和定时上传等。

本研究聚焦系统所承载调水控制业务。

1.2 安全问题

系统调水控制业务主要有组态软件之间和组态软件与被控设备之间 2 类协议类型交互。

1)组态软件之间的协议是调度控制中心与分中心、泵站集成端系统之间交互的协议,类似 DCS分布式控制系统,以电力 104 规约为主进行报文交互。电力 104 规约是一种基于 TCP/IP 协议的网络通信规约,采用一问一答的工作方式,此规约 APCI为应用规约控制信息,控制域约定了报文重传、传输启动停止及连接测试等控制信息,ASDU 为应用规约服务数据,属于应用层面的数据,根据具体应用而有差异。

2)组态软件与被控设备之间的协议是调度控制中心与闸站 PLC 之间交互的协议,以 Modbus TCP等主流通用工控协议为主进行报文交互。Modbus TCP 约定了命令格式,命令内容由组态软件厂商与被控设备具体自行约定。

此外,OPC 作为基于 Windows OLE,DCOM的通信接口技术,包括一套接口、属性和方法的标准集合,用于过程控制等工业自动化系统,提供实时数据、状态参数、控制参数、事件报警等信息的控制和采集。

随着近些年水利信息化技术的高速发展,水利专网的服务器已多次受到网络攻击,造成多台服务器系统损坏和数据丢失,相关省部级安全部门也对相应漏洞进行修复,但仍存在一定的威胁性。目前调水控制业务协议并没有考虑内建安全性,存在以下几类典型安全问题:

1)不能对抗假冒身份攻击。缺乏信源身份鉴别认证机制,无法确认调水控制指令来源的身份合法性,也无法确认信息采集端的身份合法性,在广域网的远程环境下,极易引起假冒身份的网络攻击。

2)不能抵御信息伪造和数据篡改攻击。缺少加密和完整性保护,协议地址和命令采用明文传输,敏感信息易被捕获和解析,关键控制指令易被篡改,从而引起控制系统下行指令失控和上行数据的伪造,对调水控制过程造成安全威胁。

3)不能抵御网络防重放攻击。调水控制指令被重放时,缺乏有效的识别机制,导致指令被恶意使用,带来潜在的系统风险。

在这样严峻的环境下,研究数据加密技术并将其应用于保护网络信息安全工作中,可以不断提高调水控制系统运行的安全性[3],保障南水北调东线工程的安全、可靠和稳定运行。

2 密码应用需求及安全加固要求

2.1 密码应用需求

针对调水控制系统业务应用安全问题,国际上一般采用加密算法,目前常用密码算法符合高级加密标准,可以提高信息的安全性效果[4],应采用密码技术满足以下安全需求:

1)针对通用工控协议和专用 104 协议进行适用南水北调东线工程调水控制系统业务应用密码加固。密码加固能够适配调水控制业务功能,统一解决调水控制应用安全问题。

2)协议收发两端的身份可信需求,实现调水控制系统双向身份鉴别认证,确保调度控制中心、分中心与泵(闸)站的交互身份可信。

3)控制指令和采集数据的不可篡改需求,实现基于密码技术的调水指令防伪和水情、工情数据完整性要求。

4)密码协议的轻量型设计需求,满足调水控制系统对快速响应能力的要求。

5)密码协议的易实施性需求,便于调水控制系统组态软件和 PLC 终端设备的集成。

2.2 密码加固要求

基于应用需求,应考虑对调水控制系统业务所涉及工控协议采用密码加固的方法,满足协议可实施性及密码安全要求:

1)满足协议可实施性要求应适配多种工控协议通用密码应用协议,通过应用层统一封装工控协议,形成适配调水控制系统中现有组态软件之间、组态软件与被控设备之间 2 类协议的通用安全加固技术措施,包括 Modbus TCP,OPC,IEC60870-5-101/104 等多种工控协议,避免多种工控协议的应用复杂性。

2)满足密码安全要求应适配非对称密码和对称密码混合的动态认证、协商和加密机制,采用符合国家密码技术规范的数字证书及信封机制,构建调水系统业务安全协议的动态认证、协商和加密机制。由此满足以下调水控制业务应用的具体要求:

a. 身份认证。应采用基于密码的身份认证机制,实现现地站远程终端与调度中心的双向认证,确保指令发送和接收方身份唯一、不可伪造性。

b. 机密性。传输过程中应防止下行指令控制和上行数据采集信息明文泄露,确保传输机密性。

c. 完整性。传输过程中应防止下行指令控制和上行数据采集信息被篡改,确保指令及信息不被伪造。

d. 防重放性。传输过程中应防止下行指令控制和上行数据采集信息被原有信息替代,确保指令信息的新鲜性。

3 密码应用技术路线

3.1 信息设备自身安全

对于调水控制信息设备自身安全,需构建从芯片、操作系统到上层应用软件的密码应用生态环境,实现信息设备自下而上的安全加固和增强。鉴于现有调水控制系统中使用的 PLC 等控制设备多采用国外设备,因此,密码应用改造难度较大,可考虑与这些设备国产化进程同步规划密码应用,现阶段考虑改造的密码应用协议安全加固在 PLC 外部实现。

3.2 密码应用机制

调水控制系统承载业务密码应用,以应用层密码加固协议方式,用于确保调水控制系统下行控制指令的防伪,以及上行监测数据的报文完整性。

1)协议安全加固采用对称密码加密与非对称密码混合技术机制,实现调水控制系统调度控制中心、分中心与泵(闸)站双向身份鉴别认证和动态密钥协商,并以符合国家密码技术规范数字信封机制进行数据加密传输,从而实现闸门安全启/降、泵站启/停或监测数据安全上传。

2)考虑协议安全加固可扩展性,当终端 PLC等现场设备具备支持密码模块或逻辑的条件时,可以根据设备资源情况,评估并采用预置初始对称密钥的技术措施,以预置密钥作为传输保护密钥,对下行控制指令和上行监测数据进行安全保护。

3.3 密码应用层次

调水控制密码应用协议安全加固位于 TCP/IP网络层及传输层之上,独立于 IPsec 及 SSL 通道安全层协议。针对调水控制业务指令安全层,后两者用于构建传输通道的安全,对通道中的所有业务透明。协议与系统其它协议的关系如图 1 所示。

密码应用协议安全加固对象包括 2 类:

1)各类工控数据原始报文。主要包括 Modbus,OPC,电力 101/104 等各类工控数据原始报文。应用层协议不区分这些工控协议的具体内容,仅将其作为原始数据单元封装在调水控制密码应用安全协议中,作为统一加固对象,由应用层实现密码加固。

图 1 协议与系统其它协议的关系

2)管理指令报文。为了实现密码应用安全加固并确保协议可靠性,应用层协议定义了管理指令报文,包括身份认证和密钥协商、告警等指令。管理指令报文将作为应用加固的第 2 类对象,与第 1 类对象采用相同的密码机制和封装格式,统一实现密码加固。

4 密码应用技术实现

4.1 协议加固设计

针对调水控制业务组态软件之间、组态软件与被控设备之间存在多种协议,采用统一标准封装方式,将现场协议原始数据报文作为定制数据包封装容器协议中,适应于调水控制系统多种工控协议并存的现状,不对原始协议指令进行差异化处理,从而满足密码应用改造的可实施性和调水控制系统密码安全等要求。

密码应用协议安全加固封装原理如图 2 所示,针对各类现有工控及容器管理协议进行加统一封装和加固,确保安全协议的可扩展性,同样适用于南水北调东线工程各类控制系统。

图 2 基于统一封装的指令密码应用协议安全加固示意

具体定义了消息 PDU,指令封装如图 3 所示。

图 3 指令封装

指令描述中 A 指被控终端(闸、泵站),B 指调度控制中心/分中心。结合指令封装格式,对于上行安全通道建立申请指令、下行安全通道建立响应指令、下行终端状态管理指令、通道警告消息、数据传输指令等分别设计如下:

1)上行安全通道建立申请指令(CMD-1)。该指令由终端发送给中心,用于申请安全通道建立。CMD-1 指令如图 4 所示。

图 4 CMD-1 指令示意图

图 4 中,0×10 为指令类型,代表上行安全通道消息;0×01 为消息标识,代表建立安全通道消息;R1 为终端密码设备产生的随机数,16 字节;SignA为消息验证,其等于被控终端使用 SM2 签名私钥对(其它头信息 || 0×10 || 0×01||R1)的 SM3算法摘要值的签名。

2)下行安全通道建立响应指令(CMD-2)。该指令由调度控制中心发送给被控终端闸、泵站,用于响应安全通道建立。CMD-2 指令如图 5 所示。

图 5 CMD-2 指令示意图

图 5 中,0×00 为指令类型,代表下行安全通道消息;PubA(TK 异或R1)为中心生成 16 字节传输保护密钥(TK),与被控终端密码设备产生的随机数R1 进行异或,使用终端加密公钥进行加密;SignB为消息验证,其等于控制中心/分中心 SM2 签名私钥对(其它头信息 || 0×00 || 0×01 || TK)的 SM3 算法摘要值的签名。闸、泵站接收后,通过密码机用己方的解密私钥解密消息 PDU,再用R1 进行异或,得到 TK 明文,与其它数据组成待验签数据,使用控制中心/分中心的验证公钥进行消息验签。

3)下行终端状态管理指令(CMD-3)。该指令由调度控制中心发送给被控终端泵、闸站,用于主动重新双向认证和密钥协商。CMD-3 指令如图 6所示。

图 6 CMD-3 指令示意图

图 6 中,0×02 为消息标识地址,代表终端状态消息,消息传输值为 0×01 时,代表终端状态复位消息,为 0×02 时,代表终端状态查询消息;FCD 为功能码;SignB为消息验证,其等于控制中心/分中心对(其它头信息|| 0×00 || 0×02 || FCD)的SM3 算法摘要值的签名。

4)通道警告消息(CMD-4)。该指令用于安全通道密码验证不通过等错误时的警告消息,可以上下行双向发送。CMD-4 指令如图 7 所示。

图 7 CMD-4 指令示意图

图 7 中,0×03 为消息标识地址,代表通道警告消息,警告消息传输值为 0×01 时,代表验签错误消息,为 0×02 时,代表解密错误消息,为 0×03 时,代表 MAC 错误消息。

消息验证:SignA/B= 消息发送方 SM2 签名私钥对(其它头信息|| 0×00 || 0×02 || FCD)的 SM3 算法摘要值的签名。发送方可以是控制中心与分中心,以及闸、泵站。

5)数据传输指令(CMD Data)。该指令可以双向发送,当被控终端泵、闸站发送给调度控制中心,一般用于数据采集,当中心发送给泵、闸站,一般用于控制、管理配置等操作。CMD Data 指令如图 8 所示。

图 8 CMD Data 指令示意图

图 8 中,0×01/02 等为消息标识地址,代表各种工控协议消息,协议消息传输值为 0×01 时代表Modbus TCP 消息,为 0×02 时代表 OPC 消息,为0×03 时代表电力 101,为 0×04 时代表电力 104,为 0×05 时代表 Siemens S7 等原始工控协议消息;EncryptTK是根据安全协议头中的安全策略,使用传输保护密钥对原始工控协议进行加密;HMAC 是指整个数据包的 HMAC。采用 SM3 算法,用数据传输保护密钥计算 HMAC,取前 16 字节。

4.2 密码安全设计

按照调水控制密码应用安全协议加固设计可采用非对称密码算法进行身份鉴别和密钥交换,身份鉴别通过后协商出用于本次会话的加解密及完整性校验的工作密钥,使用临时工作密钥进行加解密和完整性校验。

针对控制中心签名和加密密钥对 SignPub-B/VeriPri-B,EncPub-B/DecPri-B,其中签名密钥对由相应密码模块产生,加密密钥对应通过证书管理中心向 KMC 申请,用于握手服务端身份鉴别和密钥协商。

针对被控终端签名和加密密钥对 SignPub-A/VeriPri-A,EncPub-A/DecPri-A,其中签名密钥对由相应密码模块产生,加密密钥对应通过证书管理中心向 KMC 申请,用于握手客户端身份鉴别和密钥协商。

针对数据传输保护密钥 TK,握手阶段协商产生的临时对称密钥,用于传输数据的加密和完整性保护。

协议加固所涉及加密、签名、杂凑、HMAC 等算法设计考虑如下:

1)加密算法。指令中加密算法采用国家密码管理部门公开的对称密钥算法 SM4,满足 GM/T 0002—2012 SM4《分组密码算法》要求。加密模式采用CBC 模式,初始 IV 为全零。待加密数据必须填充,填充方法可选择第 1 个字节为 0×80,其后为若干 0×00,填充到分组长度整数倍。

2)签名验签算法。证书签名、指令包签名和验签的算法采用国家密码管理部门公开的公钥密码算法 SM2,私钥长度 256 b,满足 GM/T 0009—2012《SM2 密码算法使用规范》,GM/T 0003.3—2012《SM2 椭圆曲线公钥密码算法》要求。

3)杂凑算法。证书摘要算法可采用国家密码管理部门公开的 SM3 算法,应满足 GM/T 0004—2012《SM3 密码杂凑算法》要求。

4)HMAC。利用 SM3 算法,使用数据传输保护密钥,计算应符合 RFC 2104《HMAC:Keyed-Hashing for Message Authentication》。

4.3 密码设备技术实现

针对调水控制应用层协议安全加固实现,采用应用密码机等设备的方式实现专用证书的公私钥对设备实体鉴别[5],采用应用密码机等设备的方式实现,以调用式工作方式,完成报文的加密封装,同时需要加强和提升管理人员的管理水平,不需更换原有设备。

对于调度控制中心与分中心、泵闸站集成端系统之间交互的协议安全加固实现,以 IEC 60870-5-104(电力 104)规约为主进行报文交互。控制中心/分中心部署应用密码机,向组态系统主机提供密码接口 API 动态库,加密报文的传输由组态系统完成。组态系统调用动态库中的密码接口 API,完成报文加密封装后,经调水控制中心系统与现地站交互,密码接口可以参考相关密码设备接口标准如GM/T 0018《密码设备应用接口规范》。

对于控制中心组态软件与 PLC 之间交互的协议安全加固实现,以 Modbus TCP,OPC 等主流通用工控指令格式为主进行报文交互,而调水控制指令内容由组态软件厂商与被控设备具体自行约定。对于现地站 PLC 等工控执行设备也应采用调用方式,调用终端应用密码设备,完成加密报文的解密验证。现阶段,在 PLC 不具备改造条件时,可采用门卫式终端密码机提供密码服务,且必须具备明通功能,确保应急条件下通道可用。

5 结语

南水北调东线工程调水控制系统作为工业控制领域重要信息系统,同时也是工程调度运行管理信息系统安全高效运行、可靠监控、科学调度和安全管理的关键要素。密码是信息安全技术的核心与基石,调水控制系统的安全运行离不开密码技术。本研究从调水控制系统应用层安全现状推导出密码应用需求,针对现有泵、闸站调水控制业务安全风险,采用适配多种工控协议的通用密码加固设计,实现调水控制信息加密、完整性校验、身份鉴别安全加固,同时也给出密码应用技术路线和具体实现途径。

随着信息技术的发展和新兴技术的应用,安全威胁持续增强,网络攻击手段越来越专业,对系统的安全挑战越来越大,保密通信系统的应用对于信息传递有重要作用,可以切实提升信息传递安全性与有效性[6],在调水控制系统中深入应用安全可控的密码等信息安全技术已成为必然趋势。本研究在南水北调东线工程调水控制业务密码应用领域做一些初步探讨,期望能抛砖引玉,也期待密码应用试点能有助于整个系统安全性提升,并做出有益探索。

猜你喜欢

工控调水组态
工控编程编译工具应用现状分析及展望
我国调水工程概况及管理趋势分析
浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用
工控系统脆弱性分析研究
基于蜜罐的工控网络安全防护技术研究进展
智能矿井工控网络安全防护系统研究与实践
Rh XIII—Cd XVI 离子4s24p3—4s4p4 能级与跃迁的理论计算*
组态软件技术现状与发展
高职“工业组态技术”课程建设探析
双调水仙子游青城山