欢迎来到2006年11月的OPConnect,官方通讯OPC基金会。在此问题中,我讨论了系统安全性的重要性,以及我们如何为OPC UA规范添加安全功能。
在OPC开发的早期,OPC基金会及其成员忽视了安全问题。我们误以为操作系统的安全性对于许多正在部署的基于opc的解决方案来说已经足够了。当我们最终意识到操作系统的安全性——或者说是缺乏安全性——甚至对控制系统来说都不够时,已经太晚了。
我们确实创建了OPC安全规范,但它在市场上几乎没有得到采用。事实是,OPC安全规范太少,而且出现得太晚,厂商无法选择采用它。
随着OPC统一架构规范的发展——以及它对可扩展、跨平台和企业连接的愿景——我们需要解决OPC UA服务基础集的安全问题,以取得成功。
向OPC UA服务添加安全性对性能产生影响。oPC UA需要具有策略和完整的安全架构,可根据应用要求,为最终用户提供配置灵活性,以打开和关闭安全参数。附加要求是具有可配置的访问控制,可在小型设备中进行可扩展。
OPC UA安全架构
生成的OPC UA安全架构是一种通用解决方案,允许在架构中的各个位置实现所需的安全功能。根据不同的映射,安全功能在不同的级别进行了解决。如图所示,OPC UA安全架构在应用层和通信层中构造在应用层和通信层中。
客户机或服务器应用程序的例行工作——传输植物信息、设置和命令——是在应用层的会话中完成的。应用层还负责管理用户认证和用户授权等安全功能。由应用层管理的安全功能由OPC UA规范第4部分中指定的会话服务提供。应用层中的会话通过在通信层中创建的安全通道进行通信,并依赖该通道进行安全通信。所有的会话数据被传递到通信层进行进一步的处理。
尽管会话通过安全通道通信,但用户、会话和安全通道的绑定是灵活的。模拟允许会话的用户更改。会话可以拥有与创建安全通道的用户不同的用户。为了在原有信道丢失后继续存在并恢复到另一个信道,通信信道的实现负责在不中断逻辑安全信道的情况下重新建立连接。
通信层提供安全功能,以满足机密性、完整性和应用程序身份验证作为安全目标。所提供的安全功能以及协商和秘密信息用于在客户机和服务器之间建立安全通道。此逻辑通道提供加密以维护机密性,签名以维护完整性,证书以为来自应用层并作为“安全”数据传递到传输层的数据提供应用程序身份验证。
由通信层管理的安全功能由安全信道服务提供,并且由为应用程序选择的协议栈实现。服务对某些协议栈选项的映射详细信息如何使用协议栈的功能来满足OPC UA安全目标。
通信层可以代表一个OPC UA协议栈。OPC UA指定了两个可用于通信层的替代堆栈映射。这些映射是UA Native映射和Web服务映射。
如果使用UA Native映射,那么用于机密性、完整性、应用程序身份验证和安全通道的功能与TLS/SSL规范类似。
如果使用Web服务映射,则WS安全性对话和XML加密用于实现机密性,完整性和应用身份验证的功能,以及实现安全信道。
传输层处理由通信层提供的数据的传输、接收和传输。
通过这种方式,必要的安全服务被嵌入到OPC UA协议栈中,形成一个完整的安全架构,同时仍然授予用户为各种应用程序提供服务所需的配置灵活性。
欲了解更多信息,请访问OPC基金会网站www.opcfoundation.org..