APP下载

基于商密的信息安全型PLC 控制系统设计*

2023-09-12幸享宏邹大均

通信技术 2023年7期
关键词:访问控制上位密码

赖 军,谷 鹏,幸享宏,邹大均,李 立

(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.中国电子科技网络信息安全有限公司,四川 成都 610041)

0 引言

在信息化和工业化深度集成和工业转型升级的同时,工业控制生产环境已从封闭转向开放,生产过程从自动化转向智能化。然而,工业控制系统安全漏洞数量在逐年递增,各类工控信息安全事件层出不穷,安全威胁加速渗透,攻击手段更加复杂多样[1]。

2019 年9 月,印度Kudankulam 核电站遭受了攻击,恶意软件感染了核电站的管理网络,导致一个反应堆中止运行。2020 年4 月,葡萄牙跨国能源公司EDP 遭到勒索软件攻击[1]。2022 年9 月,黑客组织GhosSec 入侵以色列各地55 套可编程逻辑控制器(Programmable Logic Controller,PLC),成功获取PLC 管理控制权限。众多工控信息安全事件表明,以PLC 控制系统为代表的工控系统正逐渐成为黑客组织、敌对势力开展勒索破坏活动的重点目标,安全形势异常严峻。

当前工业控制系统自身通常缺乏必要的信息安全防护措施,业务数据通信甚至采用明文传输,攻击者可以通过信息嗅探、通信劫持与数据篡改等方式开展攻击破坏活动,造成工控系统停止运行、业务逻辑运行失序等严重后果。为防范相关安全风险,提升工控系统自身信息安全防御能力,本文通过研究PLC 控制系统特点、主要安全威胁及防护需求,将商用密码、访问控制、典型入侵防御等安全防护技术与PLC 控制器深度融合,提出了一种基于商密的信息安全型PLC 控制系统方案。

1 PLC 控制系统概述

1.1 PLC 控制系统简介

典型的PLC 控制系统由监控层、控制层、设备层构成,典型系统结构如图1 所示。其中,监控层主要由工程师站、操作员站等设备组成,工程师站和操作员站在PLC 控制系统中通常统称为上位机;控制层主要包括PLC 控制器、远程I/O 站等设备,大中型PLC 控制器通常采用模块化设计理念,根据功能一般可分为CPU 模块、电源模块、I/O 模块、通信模块等组件;设备层则主要由传感器、执行器、仪表、阀门等现场设备构成。位于控制层的PLC 控制器等设备通常被定义为PLC控制系统的核心设备。

图1 典型的PLC 控制系统结构

以PLC 控制系统为代表的工业控制系统长期以来采用孤岛方式运行,使用专用设备与协议,并且与外界物理网络环境相对隔绝,在很长一段时间内都是相对安全的。然而,近年来随着信息化与工业化深度融合的发展,PLC 控制系统面临的信息安全威胁越来越受到重视。

1.2 主要安全脆弱性分析

PLC 控制器在设计上主要关注于控制流程的时效性与准确性,以及系统的易维护性,极少考虑潜在的网络安全风险,缺少应对网络攻击的防护措施。综合历年发生的各类工控安全事件与工控系统相关漏洞分析,PLC 控制系统的安全脆弱性主要表现为:

(1)在PLC 系统中广泛使用的Modbus 等工业协议缺乏身份认证机制,非法攻击者可以轻易地冒充上位机接入控制网络,执行非法操作,严重威胁控制系统安全运行。

(2)PLC 控制系统敏感数据缺乏密码保护机制,与生产业务相关敏感数据未采用加密存储,且通过明文传输,这为攻击者嗅探、窃取,甚至伪造关键数据提供了便利条件。

(3)上位机与PLC 间的数据通信缺乏合理的权限管理机制,现有的鉴权机制通常仅存在于逻辑组态软件或监控组态软件等上位机软件层面,并未在通信流程中采取有效的权限控制。这将导致任何接入PLC 控制器的攻击者均可利用工业协议执行任何操作,破坏控制系统正常业务。

2 国产商用密码概述

国产商用密码体系的密码种类丰富,基本满足了我国生产生活中的各类需求,主要有SM 系列及祖冲之序列算法,囊括了所有典型的密码体制,具体可分为3 类:SM3 密码杂凑(Hash 散列)算法属于散列算法范畴,SM1(SCB2)、SM4、SM7、祖冲之序列密码算法(ZUC)属于对称密码算法体制范畴,SM2、SM9 属于非对称密码算法体制范畴[2]。

SM3 算法[3]通过M-D 模型处理输入消息,生成256 bit 的杂凑值。SM3 算法于2012 年作为密码行业标准发布,于2016 年转变为国家标准,并于2018 年正式成为国际标准。

SM4 算法[4]分组长度为128 bit,密钥长度为128 bit,加密与密钥扩展算法都采用32 轮非线性迭代结构。加密和解密使用完全相同的结构,解密时只需倒置密钥的顺序。SM4 算法于2012 年作为密码行业标准发布,并于2016 年转化为国家标准。

SM1 与SM7 分组密码算法尚未公开,所使用的密钥长度和分组长度都是128 bit。

祖冲之密码算法[5]密钥长度为128 bit,由128 bit 种子密钥和128 bit 初始向量共同作用生成32 bit宽的密钥流。ZUC 可用于数据保密性和完整性保护。

SM2 算法[6]基于椭圆曲线离散对数问题,提供数据加密解密、签名验签和密钥协商功能。SM2 算法推荐使用256 bit 素域上的参数集。SM2 算法具有安全性高、密钥短、私钥产生简单以及签名速度快等优点。该算法已于2016 年成为国家标准,并于2017 年被国际标准化组织(International Organization for Standardization,ISO)采纳成为国际标准。

SM9 算法[7]是一种标识密码,是在传统公钥基础设施PKI 基础上发展而来的,可以解决安全应用场景中PKI 需要大量交换数字证书的问题,使应用更易部署和使用。SM9 算法提供密钥封装、数据加密解密、签名验签和密钥协商功能。2017 年,ISO将SM9 数字签名算法采纳为国际标准的一部分。

3 总体架构设计

基于国产商用密码轻量应用的信息安全型PLC控制系统总体架构如图2 所示,上位机(工程师站、操作员站)通过安全模块与基于商密的自主可控一体化安全PLC(简称安全PLC)连接。其中,上位机安全模块采用支持标准商密IPSec 功能的安全网关设备或客户端软件。安全PLC 则主要由安全模块及常规控制模块构成,核心模块均采用国产龙芯处理器。安全模块内置商密模块,并将基于商用密码轻量应用的安全防护功能有机融合于PLC 控制器中,构建形成PLC 控制器自身的安全防护能力。

图2 信息安全型PLC 控制系统总体架构

在信息安全型PLC 控制系统中,上位机(安全模块)通过PLC 安全模块接入PLC 控制器。上位机安全模块与PLC 安全模块之间通过商密IPSec 建立安全通信隧道,从而通过商密技术保障上下位机间数据传输的保密性与完整性。商密技术还应用于PLC 控制器对上位机用户的安全接入认证等场景,并可与访问控制、工业协议控制等安全防护功能相结合,对访问PLC 的用户权限进行精细控制,从而全面提升PLC 控制系统自身的信息安全防护水平。

4 安全PLC 方案设计

自1969 年第一台PLC 诞生之日起,PLC 成为工业界的核心控制器产品。我国自20 世纪70 年代开始PLC 的研究和应用,近年来随着国产芯片技术的升级发展,国产PLC 厂商逐步推出了基于国产龙芯、飞腾等处理器的自主可控中大型PLC 成熟产品,并在轨道交通、水利水电等行业实现推广应用。

4.1 安全PLC 总体设计

本文以成熟的国产自主可控中大型PLC 产品方案为基础,遵循中大型PLC 模块化设计理念,结合商密安全防护技术对PLC 开展安全增强设计,形成基于商密的自主可控一体化安全PLC 设计方案。

安全PLC 总体框架如图3 所示,控制器主要由CPU 模块、IO模块、电源模块、通信模块、PLC 安全模块等模块组成,各模块间均通过内置于安装背板中的背板总线交互数据。IO 模块主要包括数字量输入模块(Digital Input Module,DIM)、数字量输出模块(Digital Output Module,DOM)、模拟量输入模块(Analog Input Module,AIM)、模拟量输出模块(Analog Output Module,AOM)等,通信模块则包含Modbus RTU、Profibus-DP 等专用工业协议通信扩展模块。PLC 安全模块为专用信息安全功能模块,模块内置商密模块,提供基于商用密码的用户认证、基于商密技术的通信链路加密、工业协议深度控制、访问控制、典型入侵防御等安全功能,使信息安全防御能力成为PLC 本体的一种固有属性。其中,IO 模块、电源模块、通信模块、安装背板等部件均采用成熟自主可控解决方案,本方案重点对安全模块软硬件功能开展深化设计,并对CPU模块进行少量适配设计。

图3 安全PLC 总体框架

4.2 PLC 安全模块方案

4.2.1 硬件方案

PLC安全模块硬件框图如图4 所示,模块采用国产龙芯处理器,搭载2GB DDR3 内存及8GB SSD存储。商密模块搭载SM2/SM3/SM4 等商密算法,通过Mini PCIE 接口与龙芯处理器连接并提供商用密码运算服务。安全模块配置3 路以太网口,其中eth0 作为模块管理端口,eth1 与eth2 作为业务端口。

图4 安全模块硬件

安全模块两个以太网业务端口工作于透明桥模式,其中eth2 将通过背板总线与CPU 模块对应端口连接,eth1 则将作为安全PLC 对外网络接口。所有流向PLC 的网络流量都必须由eth1 端口接入PLC,并通过安全模块进行安全检测。只有通过安全检测的合法指令才允许通过eth2 端口转发至CPU模块进一步处理执行。

此外,为确保PLC 网络通信功能的可靠性,两个以太网业务端口间设计有硬件BYPASS 电路。一旦安全模块发生故障,BYPASS 模块将立即将业务端口物理导通,可快速恢复正常网络通信。

4.2.2 软件方案

基于商密的自主可控一体化安全PLC 相关安全防护功能均内置于PLC 安全模块中。PLC 安全模块依托内置的商用密码模块,实现加密与认证相关商密计算功能。PLC 安全模块搭载访问控制、工业协议深度控制、入侵防御、商密身份认证、商密IPSec VPN 等安全功能。

PLC 安全模块提供适配CPU 模块协议功能特征的“组态式”的防护策略配置。安全模块软件总体上由WEBGUI、配置管理框架、防护对象配置、安全模块配置、快捷配置、高级配置(含防火墙、入侵防御、用户认证)、VPN、日志与监控等子系统构成,总体系统结构如图5 所示。

图5 安全模块软件总体结构

(1)防护对象配置

防护对象配置子系统提供对PLC 控制器及其所在控制系统参数等“中心参数”的设置功能,主要包括PLC 型号与IP 地址、上位机(工程师站/操作员站)名称和IP 地址等控制系统核心参数。子系统内置PLC(CPU 模块)型号下拉菜单,用户点选即可便捷完成PLC 型号设置。该子系统中设置的PLC 控制器和上位机IP 地址将作为控制参数由访问控制策略自动引用,仅允许已配置的上位机访问PLC 控制器相关服务。

(2)安全模块配置

安全模块配置子系统主要配置安全模块自身的相关参数,主要包括模块名称、IP地址设置、默认网关、管理配置、时间设置、系统维护等功能。其中,IP 地址设置包括业务端口IP 设置和管理端口IP 设置。安全模块包含两个业务端口和一个管理端口。两个业务端口默认配置为透明桥,共用同一个IP 地址。

(3)防护策略快捷配置

快捷配置是指基于被保护PLC 型号协议特征的防护策略快速配置方法。安全模块默认开启白名单访问控制服务,快捷配置亦即快捷白名单配置。

安全模块预置多种型号CPU 模块模型。快捷配置界面根据防护对象配置中用户选择的PLC 型号参数匹配PLC 模型,并根据模型参数自动生成该型号PLC 对应的防护策略快捷设置菜单,用户勾选即可完成访问控制策略的快捷配置。快捷配置在后台生成的访问控制规则,自动匹配防护对象配置项的PLC 系统核心参数,自动对允许访问的IP/MAC 地址进行控制,仅允许已配置的上位机访问PLC 相关服务。

快捷配置如图6 所示,用户勾选相应的允许选项便可激活该项策略,不被允许的通信数据将被安全模块阻断丢弃。用户只需根据系统实际需要勾选相应选项,可极大地简化用户操作流程,具有极强的便利性与易用性。

图6 防护策略快捷配置

快捷配置支持勾选一键激活地址解析协议(Address Resolution Protocol,ARP)控制与入侵防御。其中,“激活ARP 控制”意味着安全模块将对流向PLC的超过阈值的ARP包采取限流措施。“激活入侵防御”即安全模块按默认参数开启对UDP/SYN/ICMP Flood、PORT SCAN(端口扫描)等典型攻击报文的检测与过滤。

在快捷配置中,对Modbus/TCP 工业协议进行控制,并不是简单地允许该协议的所有报文通过,而是根据被保护PLC 对象的型号协议特征,对访问该PLC 的协议功能码或寄存器地址范围等进行深度控制,只有符合被保护对象规范的命令才允许通过。

(4)防护策略高级配置

防护策略高级配置功能需在快捷配置界面中激活。高级配置功能总体上由访问控制、入侵防御、用户认证等功能模块组成,可为用户提供更为精细的访问控制粒度和防御策略。

①访问控制(含工业协议深度控制)

访问控制与工业协议深度控制作为安全模块的核心功能模块,总体实现安全模块的包过滤策略 配置。

访问控制模块由TCP/IP 访问控制(含工业协议深度控制)、二层访问控制功能组成。

通常PLC 对外开放的常规网络服务仅包括FTP、Telnet、NTP 等少数几种。安全模块预置FTP、Telnet、NTP 等PLC 常用网络服务作为系统预定义服务。工控系统访问PLC 的主机相对有限,在访问控制规则中PLC 型号、主站IP、从站(PLC)IP 等参数快捷配置时自动从防护对象配置中引用,无须用户选择或配置。在高级配置中,用户仅需对每条规则的日志级别、权限组进行配置。权限组要求对访问相关资源的用户进行认证,结合用户认证模块共同发挥作用。

针对PLC 控制系统网络特点,二层访问控制模块方面仅针对ARP 访问控制采取ARP 限流策略,用户可在高级模式下对ARP 默认阈值进行修改。

②典型入侵防御

根据PLC 控制系统特点,入侵防御模块提供针对UDP Flood、SYN Flood、ICMP Flood、PORT SCAN等可能影响PLC 控制器的常规攻击的防御功能。

快捷配置按照默认参数开启了入侵防御,而在高级配置下,用户可对各攻击的防护策略的阈值、记录日志等参数进行进一步配置。

③用户认证

安全模块以PLC 资源访问用户为核心进行访问监控,用户认证系统实现了用户的认证、授权功能。用户认证模块主要由网络访问服务器(Network Access Server,NAS)和认证控制服务器(Authentication Control Server,ACS)两部分组成,认证控制服务器是一个标准的Radius 认证服务器,同时具有授权和记账的功能。

在PLC 控制系统中,用户认证主要用于对FTP、TELNET、程序下载/上传、升级系统固件等PLC 内部资源的访问权限进行控制。安全模块预置FTP、TELNET、PROGRAM(编程)、FIRMWARE(固件升级)等权限组,并对每个权限组预置一个默认账户,用户可自行修改用户密码。同时,用户还可根据需求添加权限组,为不同权限组配置不同数量的用户,供访问控制规则引用,可确保只有经过模块认证的用户才能访问权限组权限范围内的PLC 资源。

(5)日志记录

日志记录子系统提供包过滤日志、工业协议深度检测日志、VPN 日志等日志记录功能。工业协议深度日志不仅包含了网络信息,还包含了工业协议应用层数据信息,用户可以通过日志一目了然地查看PLC 控制系统内的具体操作和数据上报,对发现误操作、恶意操作、异常发现和事后审计等都能起到关键性作用。

4.2.3 商用密码轻量化应用实现

在信息安全型PLC 控制系统中,商用密码技术主要用于构建控制系统尤其是其核心控制设备自身安全防护能力。信息安全型PLC 控制系统基于国产商用密码的轻量化应用主要包括基于商密技术的通信链路加密、基于商密技术的PLC 控制器用户认证,主要实现对上位机与PLC 之间通信数据保密性、完整性保护,并对用户的安全接入和权限进行访问 控制。

(1)基于商密技术的通信链路加密

基于商密技术的工控系统通信链路加密功能通过商密IPSec VPN 实现。首先,PLC 安全模块内部嵌入硬件商密模块,实现对SM2、SM3、SM4 商密算法的加载。同时,在PLC 安全模块系统中扩展IPSec 对于商密算法套件的支持,采用SM2、SM3等商密算法实现签名认证与密钥协商,采用SM4 算法实现数据加密,最终实现商密IPSec 功能。以商密IPSec 技术为载体,通过SM2 商密证书技术和SM2/SM3 算法实现安全通信隧道创建与密钥协商,最终通过SM4 算法实现上位机与PLC 之间的通信数据加密传输,并通过SM3 算法对数据完整性进行保护。

安全PLC 基于商密算法的数据加密传输服务主要数据流程如图7 所示,图中安全PLC 的CPU 模块运行Modbus/TCP 服务,上位机根据控制系统需求向安全PLC 发起Modbus 数据查询请求或控制指令。指令经上位机安全网关加密后经安全隧道以密文方式传输到安全PLC。PLC 由安全模块接收密文数据,并对密文进行校验和解密。解密后的Modbus协议数据在安全PLC 内部经安全模块传输至CPU模块。CPU 模块将根据实时运行状态响应上位机的各种请求,安全PLC 响应数据的传输过程与上位机查询过程相似,在PLC 与上位机(安全模块)之间的传输数据将一直处于商密算法的保护之中。

图7 基于商密的通信链路加密实现原理

(2)基于商密技术的PLC 控制器用户认证

安全模块用户认证,实质上是对PLC 用户的接入认证,以基于商密技术的PLC 控制器接入身份认证技术为基础。安全模块内部的商密模块实现模块对商密算法(SM2/SM3/SM4)的支持,在PLC 安全模块中内置身份认证网关,同时扩展认证网关对于商密模块和商密算法的支持,PLC 安全模块便具有了商密身份认证功能。在用户侧,CA 证书系统颁发的SM2 证书存放于USBKey 中,USBKey 支持SM2 和SM3 算法,算法由USBKey 中的芯片实现。基于商密的用户认证功能,主要通过SM3withSM2算法实现PLC 用户的接入认证,保障对控制器服务的可信接入与可信访问。此外,认证服务器在实现上支持USBkey+用户名的双因子认证,可使用户身份认证更加安全。基于商密算法的用户认证流程结构如图8 所示。其中,上位机用户需要通过USBkey 来进行用户认证后,才能访问PLC 的内部资源,或进行相应的指令控制,主要流程如下:

图8 基于商密算法的用户认证流程结构

①USBKey 接入终端,用户使用USBKey 管理工具注册证书;②上位机用户浏览器打开PLC 用户认证界面,输入用户名+密码+PIN 码的组合进行认证;③浏览器登录页面对用户输出的PIN 码进行验证,之后调用USBKey 中SM2 证书的签名算法将用户输入的用户名和密码签名;④将签名后的信息和USBKey 中SM2 公钥证书(X509 证书)传递给一体化安全PLC;⑤安全PLC 接收到SM2 公钥证书(X509 证书)后,首先用设备上的CA 来认证该证书,之后使用该证书对信息(用户名+密码)进行验签,再进行用户名+密码的确认;⑥认证通过的上位机用户,才能访问PLC 内部的各种资源,如通过FTP、TELNET 访问PLC 资源、对PLC 进行编程或固件升级、与PLC 进行协议通信等。

4.3 CPU 模块适配说明

在安全PLC 及其控制系统中,PLC 安全模块将作为整个控制器的外部网络安全接入点。因此,CPU 模块无须再对外提供以太网接口。CPU 模块适配设计主要是针对硬件接口的安全优化设计,主要适配设计包括:将原对外提供的以太网RJ45 接口取消;将CPU 模块以太网接口连接至背板总线连接器,通过背板总线实现与安全模块网络的硬件连接,以保障CPU 模块业务安全运行。

5 结语

本文在研究PLC 控制系统结构特征及脆弱性分析的基础上,结合控制系统实际安全需求,将商用密码、访问控制、典型入侵防御等安全防护技术与PLC 控制器深度融合,设计了基于国产商用密码的信息安全型PLC 控制系统,重点阐述了基于商密的自主可控一体化安全PLC 软硬件方案及其中的商用密码应用技术实现。通过将商用密码等安全防护技术融合到PLC 控制器及控制系统中,构建了PLC控制系统自身安全防护能力,为保障工业控制系统安全运行,防范工控网络安全风险,提供了一种有效的解决方案。

猜你喜欢

访问控制上位密码
密码里的爱
密码抗倭立奇功
特斯拉 风云之老阿姨上位
ONVIF的全新主张:一致性及最访问控制的Profile A
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
密码藏在何处
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现