数据采集与监控系统(SCADA)、分布式控制系统(DCS)、过程控制系统(PCS)、可编程逻辑控制器(PLC)等工业控制系统广泛运用于工业、能源、交通、水利以及市政等领域,用于控制生产设备的运行。
一旦工业控制系统信息安全出现漏洞,将会给工业生产运行和国家经济安全留下大隐患,SCADA系统的信息安全一直是很热门的话题,工信部早在2011年就发布了关于加强工业控制系统信息安全管理的通知。
2010年发生的 “震网” 病毒事件,已经反映出工业控制系统信息安全面临着严峻的挑战。
SIMATIC WinCC 作为经典的 SCADA软件,在信息安全方面也是不断的推出新功能,满足工业数字化发展过程中不断提高的工业信息安全要求。
SIMATIC WinCC 支持与 S7-1200/1500 CPU 组态安全访问,通过密码方式来确认是否可以访问 CPU,以避免不必要的连接。
当前 TIA Portal V17 推出新的 CPU 固件版本后,SIMATIC WinCC 还支持与 S7-1200/1500CPU 组态加密的安全通信,此功能基于 TLS协议对通信数据进行加密处理。大大降低了数据被窃取以及被篡改的风险,为安全通信筑起了一道铜墙铁壁。
1.2
与 S7-1200/1500 的安全访问
SIMATIC WinCC 与 S7-1200/1500 CPU的安全访问,通俗讲就是在设备建立通信连接时加一道密码保护,只有组态了正确密码的 WinCC 项目才允许读写特定 CPU中的数据。能防止对CPU 未经授权的访问。
图一 SIMATIC WinCC 与 S7-1200/1500 安全访问
目前 SIMATIC WinCC 所提供的 SIMATIC S7-1200, S7-1500 驱动仅支持以太网通信。SIMATICWinCC V7.2 以及以上版本支持与 S7-1500 CPU 进行安全访问。SIMATIC WinCC V7.3及以上版本开始支持与 S7-1200 进行安全访问。
在 S7-1200/1500 CPU 的硬件组态中, 提供了4种访问级别,以限制对特定功能的访问。
图二 S7-1200/1500 CPU 访问级别设置
简单介绍4种访问级别的功能(更为详细的介绍请参考手册):
完全访问权限(无任何保护)
允许对 CPU 以完全未受保护的状态进行访问。知道此密码的用户可以不受限制地访问 CPU。
读访问权
允许对 CPU 以受写保护的状态进行访问。知道密码,知道该密码的用户只能对 CPU 进行读取访问。并且用户获得 HMI数据访问权。
· HMI 访问
允许对 CPU 以受读/写保护的状态进行访问。获知该密码的用户只获得 HMI 数据访问权。
不能访问(完全保护)
不允许访问 CPU。知道密码的用户,可以根据密码相关的保护级别进行访问。
以上4种访问级别,如果 S7-1200/1500 CPU 的访问等级选择的是完全访问权限(无任何保护)/读访问权/ HMI访问权限这3种,SIMATIC WinCC 在组态通信连接时无需设置 CPU访问密码。如果访问等级选择的是不能访问(完全保护),则需填写以上3个等级中任意一个等级的密码才可以与S7-1200/1500 进行握手并建立通信关系。
1.3
与 S7-1200/1500 的安全通信
上一节介绍是 SIMATIC WinCC 与 S7-1200/1500 CPU 建立连接时的安全访问。连接建立完成后,SIMATICWinCC 与 S7-1200/1500 CPU 的通信数据还是以明文的方式呈现,并未对交换的数据进行加密。
TIA Portal V17 推出的 S7-1200/1500 新固件版本支持 HMI ( HMI为人机界面的英语缩写,SIMATIC WinCC 也属于 HMI )安全通信。此安全通信具备以下特点:
机密性
即,数据安全/无法窃取。
完整性
即,数据在传输过程中未发生篡改。
端点认证
即,端点通信伙伴的身份确认。
图三 SIMATIC WinCC 与 S7-1200/1500 安全通信
SIMATIC WinCC与S7-1200/1500 CPU实现安全通信需满足以下条件:
S7-1500 固件版本 V2.9 以及更高版本
S7-1200 固件版本 V4.5 以及更高版本
SIMATIC WinCC V7.5 SP2 UPD4 或更高版本
S7-1200/1500 和 SIMATIC WinCC 之间通过签名证书建立信任关系(握手),确保数据的真实性和完整性;使用 TLS协议加密通信数据(数据交换),确保数据的机密性。
TLS (传输层安全性协议 ,英文Transport Layer Security)是 SSL 协议的后继协议,在网络ISO 模型中处于会话层。TLS Zui初是为了给 HTTP 协议加密使用,现在 HMI 安全通信的应用层协议也是使用的 TLS。
图四 ISO 模型中的 TLS 协议
HMI 安全通信组态非常简单,需要在 PLC 程序中选择由 TIA Portal 或者第三方机构生成的证书,借助工具把证书导入SIMATIC WinCC 项目中,以及下载 PLC 程序。
图五 安全通信中的证书下载
在 PLC 程序选择证书的界面,会显示“仅支持 PG/PC 和 HMI 安全通信”选项(此选项仅S7-1500 V2.9及更高 / S7-1200 V4.5 及更高版本支持)。
图六 S7-1200/1500 安全通信机制设置
此选项的含义并不是激活 HMI 安全通信功能,而是是否兼容 HMI 非安全通信。因为版本低于 V7.5 SP2 UPD4 的SIMAITC WinCC 软件并不支持 HMI 安全通信,为了兼容早期的 WinCC 项目,拥有新固件版本的S7-1200/S7-1500 需要取消此选项,才能与之通信。下表是 SIMATIC WinCC 与S7-1200/S7-1500 CPU 安全通信的各版本选项设置参考。
表一 SIMATIC WinCC 与 S7-1200 安全通信各版本选项设置
表二 SIMATIC WinCC 与 S7-1500 安全通信各版本选项设置
上述表格列举出建立 HMI 安全通信需要的版本以及设置信息。在满足条件的SIMATIC WinCC 项目中创建好通信连接,加载从TIA Portal 项目中导出的 SCADA 数据包,从而导入证书。
下图中显示的是如何从 TIA Portal 项目中导出的 SCADA 数据包,SCADA 数据包包含证书以及 PLC中可访问的变量信息。把 SCADA 数据包复制到需要组态或者运行 SIMAITC WinCC 项目的电脑中。
图七 TIA Portal 项目导出 SCADA 数据包
在 SIMATIC WinCC V7.5SP2 UPD4 以及更高版本项目中,可以通过所创建的通信连接加载 SCADA数据包,加载时会提示证书的导入。
图七 WinCC 项目导入证书
SIMATIC WinCC 安全通信过程中,还需要注意运行 SIMATIC WinCC 项目的电脑 和 PLC的系统时间,尤其是 PLC 的系统时间不能是出厂时间。因为 HMI安全通信是通过证书来建立连接,那么参与通信的设备,系统时间需要在证书规定的有效时间范围内。
图八 证书详细信息