OPC UA被广泛誉为工业物联网(IIoT)和工业4.0时代的安全工业通信技术。实际上,工业4.0平台——工业4.0参考体系结构模型(RAMI)的开发人员已经将OPC UA看作为RAMI通信层的认可标准。
为了帮助工业终端用户、系统集成商、设备供应商和原始设备制造商(OEM)更好地了解OPC UA在保护工业系统通信以及如何应用该技术方面的作用,OPC基金会发布了一份白皮书 ,详细介绍了OPC UA在工业中的安全配置和使用指南。
OPC基金会的 Stefan Hoppe(左)和 Fraunhofer IEM 的 Uwe Pohlmann
白皮书是在OPC基金会成立安全用户组之后发布的。由Fraunhofer IEM软件工程公司的Uwe Pohlmann和德国奥芬堡应用科技大学的Prof. Dr.-Ing. Axel Sikora编写。小组成员单位包括Ascolab、倍福自动化、DS Interoperability 、exceet Secure Solutions、Fraunhofer IEM、德国奥芬堡应用科学大学,微软公司,Software AG软件公司,Sparhawk软件公司和TE Connectivity。
为了支持该小组的努力,德国政府批准了智能技术系统的OstWestfalenLippe(东威斯特法伦立珀大学)为该组织提供关键的案例和要求,以确保小组成员企业的产品满足工业最终用户的需求。
OPC UA可扩展安全概念
白皮书中提出的一个看似明显却十分重要的观点:虽然OPC UA在设计上是安全的,但“你必须使用它提供的安全功能来获得好处,”微软Azure工业物联网主要软件工程负责人Erich Barnstedt说。 “如果OPC UA服务器在默认情况下是安全的话,安全配置任务则可以大大简化,也就是说,当客户首次将服务器从包装箱中取出时,所有安全功能都是打开状态。另外,对于设备供应商来说,使安全配置尽可能简单也是重要的,例如通过提供安装向导和易于理解的使用指南。我们不能指望OPC UA服务器用户成为安全专家。”
那么如何确保与OPC UA进行安全的工业通信呢?白皮书中详述了六个具体因素:
1、安全模式
根据白皮书,OPC UA安全模式“应设置为'Sign'或'Sign And Encrypt'。这确保了在应用程序级别上的身份验证是被强制的。如果必须保护数据的完整性和机密性,则必须使用安全模式“Sign And Encrypt”。
2、加密算法的选择
至少,应该选择安全策略'Basic256Sha256'...如果任何现有的客户端服务器需要交互,也支持这个策略。但是,较弱的安全策略使用过时的算法,那么这种算法就不应该再使用了。例如,SHA-1不再安全,不应该再使用了。
3、用户身份验证
白皮书警告说,标识符“匿名”应仅用于访问非关键UA服务器资源,因为它不提供任何保护。当使用这个通用标识符时,不可能跟踪谁更改了服务器端的数据或配置。另外,如果没有对“匿名”标识符的权限进行适当的限制,攻击者可以使用该标识符以未经授权的方式读取或写入数据。
4、证书和私钥存储
永远不要将私钥或相应的证书文件存储在未加密的文件系统上。使用操作系统的专用证书存储区,并使用操作系统功能来设置访问权限。
5、使用证书
根据白皮书,没有提供可信证书的连接不应该被接受。该文件还进一步指出,“自签名证书不应该被自动信任,这意味着没有额外的验证。如果证书不是自签名的,则需要一个证书颁发机构(CA),例如,对于公司的所有OPC UA应用程序。这意味着CA的证书要么是自签名的,要么是由另一个CA签署的。
6、管理和维护证书
使用证书信任列表和证书撤销列表来管理有效的证书。只有受信任的用户或进程才能被允许写进这些列表,而且这些清单应该定期更新。
Paderborn大学软件工程教授、Fraunhofer IEM软件工程主管Eric Bodden教授解释说,“目前,用户和开发人员在日常工作中经常会被安全决策所困扰。”由于对应用程序的不熟悉和安全知识的缺乏,安全功能会经常被错误的使用,导致出现很多的安全漏洞,甚至文档、教程和好的案例经常会丢失。
OPC基金会已经宣布,计划于2018年发布第二份白皮书,介绍OPC UA安全实施和运行的最佳实践和应用案例。
《建立OPC UA应用程序的实践安全建议》白皮书下载链接:http://www.cechina.cn/mag/pdf/OPC-UA-Security-Advise-EN.pdf