随着工业系统的数字化与网络化的不断发展,信息系统安全正面临着一系列新的挑战,需要系统地进行解决,而对产品和生产知识等敏感数据进行安全、可靠的处理,并防止外界对工业系统的攻击一样重要。为了抵消潜在的损害,在整个系统及其软件的开发过程中确保信息技术(IT)的安全性成为业内人士共同关注的问题。
M2M联盟和OPC基金会是欧洲两家最大的专注于M2M的通信协会,近几年来,他们共同努力,帮助会员构建安全、互联的产品。截至2016年底,两个协会的成员都分别成立了一个联合安全用户组,目的在于通过实际例子加强在运营技术(OT)的背景下使用IT安全机制。
据了解控制工程网版权所有,该小组成员曾为Fraunhofer IEM和Hochschule Offenburg管理下的典型应用案例制定了最佳的实践和指南CONTROL ENGINEERING China版权所有,并在其自运项目和客户项目的实施中提出解决方案,强调了信息安全的重要性。由于当前市场上对关键性基础设施和工业自动化解决方案的攻击和社会威胁,以及对安全原则缺乏理解的不断增加,建立一个共享需求、用例和最佳实践的社区势在必行。
智慧工厂正创造一种比过去级别更高的安全需求
基于他们的专业知识,M2M Alliance和OPC Foundation安全用户组成立。其目标是记录基于设备和机器数据的安全通信解决方案和智能服务的最佳实践方案。本文将简要概述推荐的安全措施,这些措施将用于“最佳实践方案”的安装。
安全设计
2015年,联邦信息安全办公室(BSI)在TüV南德意志集团铁路公司的联盟领导下,对OPC UA进行了安全分析研究。BSI是德国联邦政府的中央IT安全服务提供商和国家网络安全机构。它通过对政府、企业和社会的预防、检测和市场反应来塑造数字化中的信息安全。
规范分析表明www.cechina.cn,OPC UA通信的安全通道、会话和服务,与许多其他工业协议相比,提供了更高级别的安全性,在分析结果的基础上,OPC基金会改进了OPC UA规范,并提供了OPC UA安全分析的注释版本。
OPC UA安全体系结构解决了以下概念:
一、可靠的信息(CIA Triad)
●通过加密传输层上的信息来保密
●通过在传输层上的签名信息来实现完整性
●通过限制信息大小并返回无安全相关代码的可用性
二、访问控制(AAA框架)
●通过用户名和密码或应用层上的X.509证书进行身份验证
●授权读取,写入节点的值或根据信息模型的访问权限,用户的访问权限或用户的角色浏览信息模型
●通过为相关安全操作生成审核事件来进行核算
●以下概念超出了OPC UA安全体系结构的范围:组织问题,如人员安全培训、安全生命周期、策略和如何处理物理访问。
●OPC UA不替代ISO 27001定义的信息安全管理系统(ISM),应使用OPC UA安全方面来深入实施防御/安全,包括其范围之外的其他问题以及用户和角色的身份验证和授权管理。
尽管如此,OPC UA仍然可以通过使用基于声明的授权与现有概念集成,例如KerberosCONTROL ENGINEERING China版权所有,OAuth2或JSON Web Token。
可扩展的安全性概念对于确保高水平的性能至关重要
安全模型
安全性是OPC UA的基本要求,因此它的架构紧密集成。OPC UA安全机制基于对安全威胁的详细分析,OPC UA将安全的处理用户信息和应用程序的身份验证、交换消息的完整性和机密性以及功能配置文件的验证。
OPC UA Security补充了公司内已有的安全基础架构,其可扩展的OPC UA安全概念包括三个级别:用户安全性、应用程序安全性和传输安全性。OPC UA用户级安全性的机制在设置新会话时会为特定用户授予访问权限及其角色。而OPC UA应用程序级安全性也是通信会话的一部分,包括交换数字签名的X.509证书。在安全通道建立期间交换的应用程序实例证书用于验证应用程序,可由OPC Foundation认证的受支持的UA安全配置文件定义UA应用程序支持的安全机制。传输级安全性则可用于在通信会话期间对每条消息进行签名和加密,签名可确保消息完整性并加密防止窃听。
UA安全机制在UA堆栈中实现,即它们包含在由UA堆栈供应商分发的软件包中,因此UA应用程序只需要使用它即可。然而,UA应用程序开发人员(即机器制造商等)有责任根据他必须遵守的要求配置UA服务器。
智慧工厂与新的UA功能及用例
X.509证书管理
自签名证书:用户自己使用OpenSSL等工具所创建的签名证书称为自签名证书。证书的格式由X.509标准定义,当中包含公钥和所有者的身份信息。此外,证书仅在定义的时间段内有效。
证书中包含的公钥可用于签署和加密与远程方的通信。如果当前负责制定信任决策的运营商未在X.509证书管理中接受过良好培训,则接受自签名证书可能会造成危险,因为从所提供的信息中不清楚您是否可以信任,则证书的属性显示为不信任,第三方却批准了属性的正确性。自签名证书是一种廉价的解决方案,因为您无需付费为获得信任而付出额外的努力。相反,使用受信任的证书颁发机构(CA)可以构建从远程方一直到受信任根(即您已信任的根)的信任链。
PKI中的CA签名证书:证书颁发机构(CA)是颁发数字证书的实体[20],它必须是受信任方,受证书所有者和应接受证书的用户信任。在公钥基础结构(PKI)中,至少有一个CA甚至有更多分层组织的CA构建信任链。
CA可以通过提供证书吊销列表来撤销对较低级别的证书或其他CA的信任。CA必须满足高安全性要求,并且用于创建证书中包含的公钥的私钥必须保存在安全的地方。通过使用多个已颁发CA,可以在不损害其他CA的情况下撤销一个已颁发CA的信任。
CA可以通过以下分发渠道分发已颁发的证书:
手动分发机制:证书在存储介质或安全电子邮件通信上传输。证书是手动安装的,这需要大量的手工劳动,特别是对于大型的工业部署。
自定义分发机制:请求应用程序使用一个众所周知的公共存储库,它使用其凭据来验证,下载和安装证书。但是,自定义解决方案可能更容易受到黑客攻击。
自动证书管理:证书通过Global Discovery Server分发。
GDS安全功能
Global Discovery Server(GDS)是一种OPC UA服务器,它提供允许服务器自行注册的服务,还允许客户端搜索要连接的服务器。此外,它还为客户端和服务器提供X.509安全证书管理服务。
角色和基于声明的安全性
GDS提供主数据库,如安全管理员观察者。角色管理与现有用户和角色管理系统集成,具有OPC UA信息模型中节点的访问权限。用户提供凭据以进行身份验证并获取授予的角色以及UA会话的相应访问权限。身份信息和访问权限通过基于声明的授权机制处理,例如由Kerberos或OAuth2提供的授权机制。
三层CA层次结构
自动证书管理
自动证书管理意味着OPC UA GDS可维护X.509证书配置和续订的UA应用程序列表,这些应用程序在管理域中可用。其中,GDS提供证书管理器以请求和更新证书的模式进行信任和撤销列表。
证书管理器支持基于推送和推送的分发模型,应用程序充当客户端并使用证书管理器的方法来提取证书和列表,或者应用程序充当服务器,并提供证书管理器可用于推送新证书和列表的方法,使证书管理器管理证书比手动处理证书更好。
“深入防御”的安全概念通过多层实现信息安全。因此,攻击者必须在破坏整个系统之前突破几个障碍。上图(三层CA层次架构)显示了OPC UA在不同层内提供的安全特性。在每一层中,可以通过使用相应的OPC UA特性来提高整体安全性从而实现某些需求。
以安全的方式使用OPC UA
使用OPC UA协议进行保护时,以下设置至关重要:
SecurityMode:SecurityMode应为“Sign”或“SignAndEncrypt”。这确保了除其他方面之外,强制应用程序级别的认证。SecurityMode“无”不提供任何保护。若要保护数据的完整性和机密性,也必须使用SecurityMode“SignAndEncrypt”。
选择加密算法:至少,SecurityPolicy′Basic256Sha256′应该选择提供,这在技术上是可行的,即任何现有的客户端服务器需要支持这一政策。注意,一个好的客户端连接策略是从最安全的概要文件开始,检查服务器是否支持该概要文件,然后尝试下一个最好的方法,直到找到一个公共概要文件。较弱的安全策略使用过时的算法,不应该使用。例如,SHA-1不再安全,不应该使用。
用户认证:登录的可能性与标识符′匿名′应该仅用于访问非关键UA服务器资源,因为它不提供任何保护(数据被认为是非关键的自由裁量权UA application developer)。当使用这个通用标识符时控制工程网版权所有,不可能跟踪谁更改了服务器端上的数据或配置。同时,如果没有足够的标识符的权利限制′匿名′配置,攻击者可以以未经授权的方式使用这个标识符读或写数据。
证书和私钥存储:不要在未加密的文件系统上存储私钥或相应的证书文件(.pfx/p12)。使用操作系统的专用证书存储,并使用操作系统功能设置访问权限。TPM模块或外部安全硬件,如基于usb的认证令牌存储证书和私钥提高了安全级别。
使用证书:不要接受不提供可信证书的连接,特别是,不应该自动信任自签名证书,这意味着没有额外的验证。如果证书不是自签名的,则需要证书颁发机构(CA)。例如,对于公司的所有OPC UA申请,证书颁发机构的证书要么是自签名的,要么是由另一个证书颁发机构签名的。证书颁发机构可以是多层次的。
管理和维护证书:使用证书信任列表和证书撤销列表来有效的管理证书,应当仅允许受信任的用户或进程来写这些列表,同时清单应定期更新。