请澄清有关OPC UA规范第4个部分服务以下查询,保护OpenSecureChannel消息和X509IdentityToken?
- 从GetEndpoints服务的消息后,我的理解,客户端发送一个OpenSecureChannel请求,这意味着请求被签名或签名&服务器根据所需端点中的安全策略进行加密。我看到在规范第4个部分服务以下行,pg.no 33
的OpenSecureChannel请求和响应消息应与发件人的证书签名 。这些消息应始终为 加密。如果传输层不提供加密,则这些消息应使用接收方的证书进行加密。
在此提及的是,消息应该总是被加密。它如何依赖传输层?
而且我也看到在统一架构书由Wolfgang Mahnke,斯蒂芬 - 赫尔穆特·莱特纳,马蒂亚斯·达姆如下OPC另一种描述,
如果证书被认为是可信的,那么作为第二 步将根据 安全策略和安全模式保护的OpenSecureChannel请求发送到所选会话 服务器的端点。 (第7章,页码213)
在这里,它突出显示该消息是按照安全策略和安全模式进行保护的,因此如果安全模式是标志,请求澄清该情形?
讯息是否也会被加密?
通常,当MessageSecurityMode为None时,SecurityPolicy'必须'为None? '无效'MessageSecurityMode的确切用法是什么?
X509IdentityToken规范第4个部分服务部分7.35.4
该令牌应始终在ActivateSession的 userTokenSignature参数的签名,如果要求的 SECURITYPOLICY陪同。如果SecureChannel的SecurityPolicy为None,则服务器应为 UserTokenPolicy指定SecurityPolicy。
在第一行中提到'如果SecurityPolicy要求',当userTokenSignature是X509IdentityToken的必填字段时,'if required'的上下文是什么?在第二行中提到,如果SecureChannel的SecurityPolicy为None,那么需要显式的安全策略,其中'None'表示没有证书交换,因此不能使用X509IdentityToken,请参考相同规范中的以下行5.6.3 ActivateSession,pg.no:40)?
如果令牌是X509IdentityToken,那么证明是使用与证书关联的私钥生成的签名 。要签名的数据 通过将最后一个serverNonce附加到CreateSession响应中指定的 serverCertificate来创建。
为了您的实物信息,我使用2015年11月发布的规范进行学习。请澄清。
感谢您的澄清,您是否也可以说明OpenSecureChannel消息的加密如何依赖于传输层?在第三个问题中,我的查询是要签名的数据是在前一个CreateSession响应中接收到的服务器证书(包括serverNonce),如果模式为None,那么要签名的数据是什么(因为在这种情况下没有应用程序实例证书交换)? – Gajasri
X509IdentityToken由第三个X509Certificate组成,该第三个X509Certificate标识用户,而不是客户端或服务器的证书。 –
为了澄清,OpenSecureChannel消息的加密不依赖于传输层。对于任何MessageSecurityMode,OSC消息都将进行签名和加密,但“无”。 –