如何使用OPC UA进行安全通信

OPC基金会的一份新白皮书为终端用户、系统集成商、设备供应商和原始设备制造商提供了如何与OPC UA安全地进行工业数据交换的详细信息。

OPC UA的可扩展安全概念。
OPC UA的可扩展安全概念。

OPC UA被广泛地吹捧为一种安全的工业通信技术工业物联网(IIoT)和工业4.0应用程序。事实上,platform industrial 4.0——工业4.0参考体系结构模型(RAMI)的开发人员——引用OPC UA作为已批准的RAMI通信层标准。

为了帮助工业终端用户、系统集成商、设备供应商和原始设备制造商更好地理解OPC UA在确保工业通信系统安全方面的作用以及如何应用该技术,OPC基金会发布了一份OPC UA白皮书详述工业中OPC UA的安全配置和使用的实用指南。

该论文是在OPC基金会建立一个安全用户组之后开发的。由弗劳恩霍夫机械电子系统设计研究所(IEM)研究员Uwe Pohlmann和奥芬堡应用科学大学电气工程教授Axel Sikora领导的小组包括来自Ascolab、Beckhoff自动化、DS互操作性、excesecure解决方案、弗劳恩霍夫IEM、Hochschule Offenburg, Microsoft Corp., Software AG, Sparhawk Software Inc.和TE Connectivity。

为了支持该集团的努力,德国政府批准的智能技术系统的OstWestfalenLippe组织向该集团提供关键用例和需求,以确保该集团的输出满足工业终端用户的需求。

微软Azure工业物联网首席软件工程主管Erich Barnstedt说,一个看似明显但很关键的一点是,尽管OPC UA在设计上是安全的,“你必须使用它提供的安全特性来获得好处。”“当OPC UA服务器默认是安全的时,安全配置任务可以大大简化;也就是说,当客户第一次将服务器从盒子中取出时,所有的安全特性已经打开。对于设备供应商来说,使安全配置尽可能简单也是很重要的,例如,通过提供向导和易于理解的指导方针。我们不能期望OPC UA服务器用户成为安全专家。”

白皮书详细介绍了如何使用OPC UA保护工业通信的六个具体因素,包括:

  • 安全模式:根据白皮书,OPC UA安全模式“应该[设置]为‘签名’或‘SignAndEncrypt’。这确保了在应用程序级别强制进行身份验证。如果需要保护数据的完整性和机密性,则必须使用安全模式‘SignAndEncrypt’。”
  • 密码算法的选择:“至少,应该选择安全策略‘Basic256Sha256’……[如果]服务器需要交互的任何现有客户端也支持这个策略。较弱的安全策略使用过时的算法,不应该使用。例如,SHA-1不再安全,不应该使用。”
  • 用户认证:白皮书警告说,“匿名”标识符应该“仅用于访问非关键的UA服务器资源,因为它不提供任何保护”。当使用此通用标识符时,无法跟踪是谁更改了服务器端的数据或配置。此外,如果没有对标识符‘匿名’的权限进行充分的限制,攻击者可以使用该标识符以未经授权的方式读取或写入数据。”
  • 证书和私钥存储:"不要将私钥或相应的证书文件存储在未加密的文件系统中。使用操作系统的专用证书存储,并使用操作系统能力设置访问权限。”
  • 使用证书:白皮书指出,不应接受不提供可信证书的连接。该文档进一步指出,“不应该自动信任自签名证书,这意味着不需要额外的验证。如果证书不是自签名的,则需要一个证书颁发机构(CA),例如,用于公司的所有OPC UA应用程序。”这意味着“CA的证书要么是自签名的,要么是由另一个CA签名的。”
  • 证书的管理和维护:使用证书信任列表和证书撤销列表管理有效证书。应该只允许受信任的用户或进程编写这些列表。名单应该定期更新。”

帕德伯恩大学软件工程教授、Fraunhofer IEM软件工程总监Eric Bodden解释了这篇白皮书的必要性,他说:“目前,用户和开发人员在日常工作中都忙于做出安全决策。由于使用软件[应用程序]的困难和缺乏安全知识,不正确使用安全特性会导致许多安全漏洞。文档、教程和好的示例经常被遗漏。”

OPC基金会已经宣布了第二份白皮书,介绍了OPC UA安全实现和运行的最佳实践和选择用例,计划于2018年发布。

更多的在家里