37、SCADA系统的协议、密钥管理与安全防护

SCADA系统的协议、密钥管理与安全防护

1. SCADA系统适用的协议

在SCADA或工业系统的部署中,有多种协议可供使用,这些协议在连接不同厂商的设备、适应新技术方面发挥着重要作用。

1.1 基于FB协议的相关协议
  • Bit - Bus :基于FB协议,通信距离可达1200米,支持62.5 Kbps和1.5 Mbps的速度,具体速度取决于距离。采用基于S485规格的双绞线电缆,使用总线拓扑进行设备间通信,通过中继器增强信号,中继器可将信号增强至250米。
  • Foundation Fields H1 :也是FB的一种实现,适用于双向通信。可使用双绞线或光纤电缆进行通信,能连接多达32个节点,合适信号的最大距离为1900米,使用四个中继器可将信号扩展至9500米,但不支持广播功能。
  • WorldFIP :同样基于FB协议,对连接现场设备和控制器非常有用,可用于同步和异步应用。工作在应用层、数据链路层和物理层三层规范下,可连接最多64个节点,长度为1公里,有31.25 Kbps、1 Mbps、2.5 Mbps和5 Mbps四种数据传输速度。
  • Distributed Network Protocol 3 (DNP3) :用于自动化通信,旨在实现各种现场设备和控制器之间的数据交换,对适应SCADA系统非常有用。RTU、传感器、设备和控制器都可通过DNP3实现通信。最初是较慢的接口,后来支持TCP/IP,使其更强大和高效。

下面用表格总结这几种协议的特点:
| 协议名称 | 基于协议 | 通信距离 | 速度 | 通信电缆 | 拓扑结构 | 功能特点 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| Bit - Bus | FB | 可达1200米 | 62.5 Kbps和1.5 Mbps | 基于S485的双绞线 | 总线拓扑 | 用中继器增强信号 |
| Foundation Fields H1 | FB | 1900米(合适信号),扩展至9500米 | - | 双绞线或光纤 | - | 双向通信,不支持广播 |
| WorldFIP | FB | 1公里 | 31.25 Kbps、1 Mbps、2.5 Mbps、5 Mbps | - | - | 适用于同步和异步应用 |
| DNP3 | - | - | - | - | - | 支持TCP/IP,用于自动化通信 |

1.2 以太网协议(Ethernet - Based Protocol)

以太网协议被认为是适用于SCADA等异构系统的最受认可的协议之一。它具有可行性、通用性和普遍性,非常适合用于SCADA系统。通过使用MAC层进行现场设备和控制器之间的通信,满足工业系统中通信网络低延迟的要求,且工业以太网比传统的Cat5或Cat6电缆更快。

EtherCAT使用以太网协议,适用于SCADA等实时和处理系统,但会浪费高带宽。在与现场设备自动化工作时,嵌入以太网控制器不可行,采用主从架构在节点或现场设备之间传输数据,支持逻辑、广播、物理和多地址四种寻址机制。

以下是该类协议下的几种具体协议:
- Foundation High - Speed Ethernet (HSE) :包含Foundation现场总线H1协议和以太网协议,通过Linking Device (LD)在SCADA系统中组合这两个协议,LD在HSE设备和Foundation现场总线H1设备之间建立桥接连接,使用MAC地址识别SCADA系统中的设备,FD作为用户层和设备之间的通信接口。
- International Electrotechnical Commission (IEC) 61,850 :规定了SCADA HMI和设备之间数据和信息交换所需的服务栈和功能。与HSE类似,使用MAC地址对SCADA网络中的现场设备进行寻址,包含直接映射到以太网的关键消息。Manufacturing Messaging Specification (MMS)使用TCP/IP在现场设备和控制器之间传输消息,使用UDP进行时间同步消息传输。
- Sercos III :作为控制器、设备和以太网节点三个实体之间的接口,通过主从节点概念以循环方式在各节点之间传输数据。通过两个电报进行数据交换,主数据电报(MDT)包含主节点传输的所有信息,确认电报(AT)由主节点发起,包含从节点的响应。

下面用mermaid流程图展示以太网协议相关协议的关系:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A[以太网协议(EBP)]:::process --> B[EtherCAT]:::process
    A --> C[Foundation High - Speed Ethernet (HSE)]:::process
    A --> D[International Electrotechnical Commission (IEC) 61,850]:::process
    A --> E[Sercos III]:::process
1.3 串行协议(Serial - Based Protocols)

串行协议对远程控制和监控工业系统非常有用,是SCADA系统必不可少的协议。最流行的串行协议是IEC60870,数据速率为9600位/秒。基于该协议有两个重要的子协议:
- Modbus :是工业系统中设备和控制器之间通信广泛采用的协议。因其易于部署、维护可行和规范简单,在SCADA等工业系统中更受欢迎,还能在不同网络的设备之间建立连接。Modbus帧能够为要传输的帧创建地址,并对接收的帧进行错误检查。
- Unitronics PCOM :用于PLC设备之间的通信,基于传统的请求 - 响应机制进行数据和信息交换,能够提供PLC之间的通信,采用主从架构。消息传递可以使用ASCII或二进制模式,ASCII模式使用一个操作数,二进制模式使用多个操作数,还会对数据进行错误校验。

1.4 通用工业协议(Common Industrial Protocol)

通用工业协议是一种对等协议,用于工业应用中设备和控制器之间的数据传输,可提高工业网络中所有异构设备的互操作性和一致性。其接口提供了一组用于现场设备之间通信的数据和命令,路由层指导不同网络之间的消息交换。以下是几种具体实现:
- Highway Addressable Remote Transducer (HART) :可用于SCADA网络或其他工业网络中的模拟和数字数据传输,数字传输根据位数使用1.2 kHz或2.2 kHz频率,基于主从概念,支持点对点和多点通信拓扑,但不支持广播消息。
- Device Net (DN) :是CIP的第一个实现,基于Controller Area Network (CAN),工业系统或SCADA系统中的节点通过干线拓扑连接,使用11位数字对现场设备进行寻址,不支持消息广播。
- EthernetNet/IP :是CIP的另一种实现,使用以太网作为标准,工作在OSI模型的数据链路层。将CIP消息嵌入以太网帧中,使用MAC地址管理SCADA或工业网络中现场设备的身份,使用传统的TCP/IP进行数据包的流量控制、大数据包的分段和请求消息的确认,使用UDP处理及时的数据包传输。
- DC - Bus :信号基于模拟,适用于直流和交流的消息传输,其物理特性使其适合在OSI模型的物理层进行传输,即使信号中存在大量噪声也能进行数据传输,通过睡眠模式降低数据交换过程中的功耗。

2. 安全SCADA通信的密钥管理架构

SCADA系统在RTU、控制器和现场设备之间进行实时数据传输,因此保护这些数据免受攻击至关重要。以下是几种重要的加密密钥管理技术:

2.1 SCADA密钥建立协议(SCADA Key Establishment Protocol)

该协议基于对称密钥概念,主要功能是确保控制器到下属(C2S)的数据传输安全。MTU - RTU通过该机制与其子部分进行通信。密钥管理过程由控制器发起,控制器和下属最初共享长期密钥(LTK),通过手动方式分发。然后,通用密钥(GK)选择一个128位的随机数,并对通用种子密钥(GSK)进行哈希处理。控制器将GK指定给下属,使用下属的LTK对GK进行加密。最后,在开始C2S实际通信之前导出会话密钥。MTU之间通过公钥进行通信,公钥和私钥由密钥分发中心(KDC)指定,在MTU与其下属实际通信之前,MTU必须通过密钥交换算法获得公共密钥。

2.2 SCADA密钥管理架构协议(SCADA Key - Management Architecture Protocol)

该协议仅使用对称密钥加密技术,用于SCADA系统中的密钥交换管理。其缺点是不能安全地广播数据或消息。RTU、MTU及其下属使用该技术交换三种密钥:
- 长期KDC密钥(LTKDC):节点之间手动共享。
- 长期节点到节点密钥(LTNN):希望相互通信的节点之间共享。
- 会话密钥(SK):用于SCADA网络中数据或消息的加密。该协议与KDC合作建立密钥,基于ISO 11770 - 2技术,建立节点所需的密钥后,创建具有一定使用期限的SK。

2.3 逻辑密钥层次协议(The Logical Key Hierarchy Protocol)

该协议基于逻辑树概念,使用对称密钥加密。每个成员知道与逻辑树叶节点关联的密钥。当新成员加入现有逻辑树时,协议从叶节点到根节点更新整个对称密钥。SCADA系统中的成员可以是控制器、现场设备、RTU、主站单元(MTU)等。新节点加入或离开SCADA网络时,KDC会更新密钥。改进版本LKH++在节点离开逻辑树时更高效。

2.4 Iolus框架

SCADA系统是异构系统,设备需要进行多播或广播消息。Iolus框架适用于SCADA等工业系统,能够进行现场设备、RTU和其他SCADA相关节点之间的多播和广播通信,也有助于管理主站单元(MSU)和RTU之间的通信。该框架类似于逻辑密钥层次协议的逻辑树概念,但所有子组或子成员都是安全的,除了主组外,还在子组级别进行数据加密,通常通过组安全中介(GSI)实现,GSI还中继子组之间的网络流量。

2.5 高级密钥管理协议(Advanced Key - Management Protocol)

该协议旨在保护SCADA系统中现场设备、RTU、MSU、MTU、控制器、传感器、执行器等组件之间实时传输的数据,防止外部攻击。协议包含一个子协议,为反向过程提供安全保障,RTU中的新密钥不依赖于先前的密钥,KDC使用哈希函数更新密钥。还有一个离开协议(LP),当节点离开组时,KDC使离开节点无法计算新密钥,通过删除离开节点并更新其路径上的剩余密钥,提高网络数据的安全性。协议还使用会话密钥(SK)对数据进行加密,SK需要在预定义的时间内使用,避免会话劫持或密钥泄露。此外,协议以分布式方式分担SCADA网络中的数据负载,减少低功率现场设备和传感器的负载。

下面用表格总结这些密钥管理技术的特点:
| 密钥管理技术 | 密钥类型 | 主要功能 | 适用场景 | 特点 |
| ---- | ---- | ---- | ---- | ---- |
| SCADA密钥建立协议 | 对称、公钥 | 确保C2S数据传输安全 | 控制器与下属通信 | 手动分发LTK,哈希处理生成GK |
| SCADA密钥管理架构协议 | 对称 | 管理SCADA系统密钥交换 | 各节点间密钥交换 | 不能安全广播,三种密钥交换 |
| 逻辑密钥层次协议 | 对称 | 更新逻辑树密钥 | 节点加入或离开网络 | 从叶到根更新密钥,LKH++更高效 |
| Iolus框架 | - | 支持多播和广播通信 | 异构SCADA系统 | 子组加密,GSI中继流量 |
| 高级密钥管理协议 | - | 保护实时数据传输 | 各组件间数据交换 | 子协议保障安全,分布式负载 |

3. SCADA系统的漏洞与建议

SCADA系统包含大量敏感和个人数据,且具有异构性,容易吸引黑客攻击。以下是SCADA系统软件和硬件方面的常见漏洞及相应的防护建议。

3.1 SCADA软件漏洞及防护
  • 认证相关漏洞 :SCADA软件接口的认证过程容易受到攻击,如跨站脚本攻击(CSS)、SQL注入等。攻击者可以利用这些漏洞绕过认证和授权阶段,访问未授权的数据,如员工的ID和密码或公司的新产品计划。
    • 防护建议 :采用新的认证方式,如2 - 因子认证,避免认证绕过;对员工或客户进行培训,使其能够识别公司的原始网站,并在网站上线前进行远程测试。
  • 代码注入漏洞 :包括缓冲区溢出(BO)、代码注入、目录遍历攻击等。缓冲区溢出是由于提供给缓冲区的数据量超过可用内存大小导致的,代码注入和目录遍历攻击可能会破坏SCADA系统的服务器。
    • 防护建议 :正确开发代码并进行合理配置,避免缓冲区溢出;控制操作员应导入内部库调用,而不是依赖或导出外部进程,防止操作系统命令注入。
  • 恶意数据包注入漏洞 :黑客可能会发送恶意数据包到SCADA网络,网络设备的规则和政策配置不当会为恶意数据包的插入提供途径。
    • 防护建议 :对网络设备进行正确的配置和规则、政策的有效实施,防止恶意数据包注入。
  • 拒绝服务攻击(DoS) :DoS攻击可能会摧毁整个SCADA网络,对系统造成严重破坏。
    • 防护建议 :对SCADA系统中的数据和资产进行完整性检查,避免DoS攻击。
3.2 SCADA硬件漏洞及防护

SCADA系统中的旧组件可能会增加系统的漏洞,例如过时的Web服务器、较弱的数据库版本、弱SSL等。这些组件可能无法升级软件或未及时更新到最新补丁。
- 防护建议 :定期进行补丁更新,及时更换旧版本的节点,防止因未打补丁的节点导致的网络攻击。

下面用mermaid流程图展示SCADA系统安全防护的整体流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A[SCADA系统]:::process --> B[软件安全防护]:::process
    A --> C[硬件安全防护]:::process
    B --> B1[认证防护]:::process
    B --> B2[代码注入防护]:::process
    B --> B3[恶意数据包防护]:::process
    B --> B4[DoS攻击防护]:::process
    C --> C1[补丁更新]:::process
    C --> C2[旧节点更换]:::process

综上所述,SCADA系统在工业领域的应用中面临着多种安全挑战,但通过合理选择和应用合适的协议、有效的密钥管理架构以及对系统漏洞的及时防护,可以提高SCADA系统的安全性和可靠性,保障工业生产的正常运行。

SCADA系统的协议、密钥管理与安全防护

4. 协议选择与应用建议

在实际的SCADA系统部署中,需要根据具体的应用场景和需求来选择合适的协议。以下是一些不同场景下的协议选择建议:

4.1 设备连接与通信场景
  • 多厂商设备连接 :如果SCADA系统中包含来自不同厂商的设备,Bit - Bus、Foundation Fields H1、WorldFIP等基于FB协议的协议是不错的选择,它们能够连接不同厂商制造的设备,具有较好的兼容性。
  • 实时性要求高的场景 :Ethernet - Based Protocol(EBP)及其相关协议,如EtherCAT、Foundation High - Speed Ethernet (HSE)等,适用于对实时性要求较高的系统。这些协议通过使用MAC层进行通信,能够满足工业系统中低延迟的需求,并且工业以太网速度较快。
  • PLC设备通信 :Unitronics PCOM专门用于PLC设备之间的通信,基于传统的请求 - 响应机制,采用主从架构,能够很好地满足PLC设备之间的数据交换需求。
4.2 数据传输类型场景
  • 模拟与数字数据混合传输 :Highway Addressable Remote Transducer (HART)可用于模拟和数字数据的传输,在SCADA网络或其他工业网络中,能够根据需要选择合适的频率进行数字传输。
  • 大量数据传输 :EthernetNet/IP使用以太网作为标准,工作在OSI模型的数据链路层,结合传统的TCP/IP进行数据包的流量控制和大数据包的分段,适合大量数据的传输。
4.3 通信拓扑场景
  • 点对点和多点通信 :HART支持点对点和多点通信拓扑,适用于需要这种通信方式的SCADA系统。
  • 干线拓扑连接 :Device Net (DN)基于Controller Area Network (CAN),工业系统或SCADA系统中的节点通过干线拓扑连接,适合采用这种拓扑结构的系统。

下面用表格总结不同场景下的协议选择建议:
| 应用场景 | 推荐协议 | 选择原因 |
| ---- | ---- | ---- |
| 多厂商设备连接 | Bit - Bus、Foundation Fields H1、WorldFIP | 基于FB协议,可连接不同厂商设备 |
| 实时性要求高 | EtherCAT、Foundation High - Speed Ethernet (HSE) | 基于以太网协议,低延迟、速度快 |
| PLC设备通信 | Unitronics PCOM | 专门用于PLC设备通信 |
| 模拟与数字数据混合传输 | Highway Addressable Remote Transducer (HART) | 支持模拟和数字数据传输 |
| 大量数据传输 | EthernetNet/IP | 结合TCP/IP,适合大数据包传输 |
| 点对点和多点通信 | Highway Addressable Remote Transducer (HART) | 支持点对点和多点通信拓扑 |
| 干线拓扑连接 | Device Net (DN) | 基于CAN,采用干线拓扑连接 |

5. 密钥管理的实施要点

在SCADA系统中实施密钥管理时,需要注意以下要点,以确保数据的安全性和系统的稳定性。

5.1 密钥分发与更新
  • 手动与自动结合 :对于一些长期密钥,如Long Term Key (LTK),可以采用手动分发的方式,确保密钥的初始安全性。而对于短期的会话密钥,可以通过自动的密钥交换算法进行分发,提高效率。
  • 定期更新 :为了防止密钥被破解或泄露,需要定期更新密钥。不同的密钥管理协议有不同的更新机制,例如在Advanced Key - Management Protocol中,KDC使用哈希函数更新密钥,确保新密钥的安全性。
5.2 密钥存储与保护
  • 安全存储 :密钥需要存储在安全的位置,避免被非法访问。可以采用加密存储的方式,将密钥加密后存储在设备或服务器中。
  • 访问控制 :对密钥的访问进行严格的控制,只有授权的人员或设备才能访问密钥。例如,在SCADA Key Establishment Protocol中,控制器和下属通过共享的LTK来加密和访问新的密钥。
5.3 密钥备份与恢复
  • 备份策略 :制定合理的密钥备份策略,定期备份密钥,防止密钥丢失或损坏。备份的密钥可以存储在不同的物理位置,以提高数据的安全性。
  • 恢复机制 :建立有效的密钥恢复机制,当密钥丢失或损坏时,能够及时恢复密钥,确保系统的正常运行。

下面用mermaid流程图展示密钥管理的实施流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A[密钥管理]:::process --> B[密钥分发与更新]:::process
    A --> C[密钥存储与保护]:::process
    A --> D[密钥备份与恢复]:::process
    B --> B1[手动分发LTK]:::process
    B --> B2[自动交换会话密钥]:::process
    B --> B3[定期更新密钥]:::process
    C --> C1[加密存储密钥]:::process
    C --> C2[访问控制]:::process
    D --> D1[制定备份策略]:::process
    D --> D2[建立恢复机制]:::process
6. 持续监测与应急响应

为了确保SCADA系统的安全运行,需要建立持续监测和应急响应机制,及时发现和处理潜在的安全威胁。

6.1 持续监测
  • 数据流量监测 :对SCADA系统中的数据流量进行实时监测,分析流量的异常情况,如流量突然增大或减小、异常的数据包类型等。可以使用入侵检测系统(IDS)或入侵防御系统(IPS)来实现数据流量的监测。
  • 设备状态监测 :监测SCADA系统中设备的状态,如设备的运行温度、电压、电流等参数。当设备状态出现异常时,及时发出警报。
  • 日志分析 :对SCADA系统中的日志进行分析,包括系统日志、应用程序日志等。通过日志分析,可以发现潜在的安全事件和异常行为。
6.2 应急响应
  • 应急预案制定 :制定完善的应急预案,明确在发生安全事件时的处理流程和责任分工。应急预案应包括事件的分类、响应级别、处理步骤等内容。
  • 应急演练 :定期进行应急演练,提高应急响应团队的处理能力和协同作战能力。通过演练,可以发现应急预案中存在的问题,并及时进行改进。
  • 事件处理 :当发生安全事件时,按照应急预案进行处理,及时隔离受影响的设备和网络,恢复系统的正常运行。同时,对事件进行深入分析,总结经验教训,防止类似事件的再次发生。

下面用表格总结持续监测和应急响应的要点:
| 监测与响应内容 | 具体措施 |
| ---- | ---- |
| 持续监测 | 数据流量监测、设备状态监测、日志分析 |
| 应急响应 | 应急预案制定、应急演练、事件处理 |

7. 总结

SCADA系统在工业生产中扮演着重要的角色,但也面临着诸多安全挑战。通过选择合适的协议、有效的密钥管理架构、及时的漏洞防护、合理的协议应用、正确的密钥管理实施以及持续的监测和应急响应,可以提高SCADA系统的安全性和可靠性,保障工业生产的正常运行。在未来的发展中,随着技术的不断进步和安全威胁的不断变化,SCADA系统的安全防护也需要不断地更新和完善,以适应新的挑战。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值