那什么是OPC UA证书?用途是什么?
简单来说它是身份验证和权限识别。
OPC UA使用X.509证书标准,该标准定义了标准的公钥格式。建立UA会话的时候,客户端和服务器应用程序会协商一个安全通信通道。数字证书(X.509)被用于识别客户端和服务器。服务器还会对用户进行进一步的身份验证,后续请求以访问服务器中的对象。
证书在通信过程中的主要功能:
1. OPC UA消息签名,验证通信完整性
应用程序通过使用其私钥来生成消息签名/哈希,然后可以使用相应的公钥证书对其进行验证。如果私钥签名签出,则确保该消息来自相应的应用程序。
2. OPC UA消息加密,通信安全不受窥视
与可以使用应用程序的私钥对消息进行签名,以确保消息是由批准的应用程序生成的,可以使用公共密钥对消息进行加密。一旦使用公钥加密消息,只有具有相应私钥的应用程序才能解密该消息(第三方攻击者甚至可以拥有该公钥的副本,但是他们无法解密该消息;公共密钥仅用于加密-不能用于解密自己的消息)。
3. OPC UA应用程序标识,提高了可信度
如果没有办法确定我们正在使用的证书,那么对消息进行签名和加密/解密对我们来说就没有太大的用处。因此,每个OPC UA证书还提供有关以下信息的标识信息:哪个应用程序生成了证书,何时生成,由谁生成,该证书可以用于什么,该证书应使用多长时间,在何处生成等等。
这三个功能的核心概念是信任。当两个具有OPC UA功能的应用程序连接时,它们交换它们的公共密钥(这些作为应用程序/OPC UA证书的一部分包含在内),同时保持其相应的私有密钥。