使用 Eclipse Milo 了解 OPC-UA 安全性

aal*_*oss 6 opc-ua milo

我是 OPC-UA 世界和 Eclipse Milo 的新手。我不明白这里的安全性是如何工作的,讨论 eclipse-milo 提供的客户端示例

我发现连接 OPCUA 服务器时使用了一些安全属性:

SecurityPolicy、MessageSecurityMode、clientCertificate、clientKeyPair、setIdentityProvider、

  1. 上述配置如何相互关联?

我试图运行 client-examples -> BrowseNodeExample。此示例在内部运行ExampleServer。ExampleServer 配置为与匿名和用户名密码提供程序一起运行。它还必然接受SecurityPolicy.None, Basic128Rsa15, Basic256,Basic256Sha256MessageSecurityModeas ,SignandEncrypt除了SecurityPolicy.Nonewhere MessageSecurityModeisNone也是如此。

  1. 问题是 AnonymousProvider 我可以使用上面提到的所有SecurtiyPolicy和配对连接到服务器(没有提供客户端证书)。MessageSecurityMode但我不能对 做同样的事情UsernameProvider,因为UsernameProvider只能SecurityPolicy MessageSecurityMode配对None成功运行。所有其他对都会引发安全检查失败异常(当提供证书时),否则用户访问被拒绝(当未提供客户端证书时)。如何使这项工作有效?

最后,如果有人能向我指出 Eclipse Milo 的正确用户文档,那就太好了。因为除了示例代码之外我看不到任何文档,而且它们也没有记录。

Kev*_*ron 6

SecurityPolicyMessageSecurityMode齐头并进。安全策略规定了将用于签名和加密的算法集(如果有)。消息安全模式决定是否对消息进行签名、签名和加密,或者在不使用安全性的情况下都不进行签名和加密。

clientCertificateclientKeyPair如果您计划使用安全性,则必须进行配置。毕竟,如果您没有证书和私钥,则无法使用加密或签名。

IdentityProvider用于提供识别会话用户的凭据(如果有)。

ExampleServer启动时,它会记录它使用临时安全目录,如下所示:security temp dir: /var/folders/z5/n2r_tpbn5wd_2kf6jh5kn9_40000gn/T/security。当客户端使用任何类型的安全性进行连接时,其证书最初不受服务器信任,从而导致Bad_SecurityChecksFailed您看到的错误。在此目录中,您将找到一个存储rejected被拒绝的客户端证书的文件夹。如果您将证书移动到该trusted文件夹​​,客户端应该能够使用安全性进行连接。