保护OpenSecureChannel消息和X509IdentityToken?

时间:2017-10-11 08:25:37

标签: opc-ua milo

请澄清以下有关OPC UA规范第4部分服务的查询,

  1. 根据我在GetEndpoints服务消息之后的理解,客户端向服务器发送OpenSecureChannel请求,这意味着请求已签名或签名&根据所需端点中的安全策略加密。我在规范第4部分服务,第33页,
  2. 中看到了以下几行
      

    应签署OpenSecureChannel请求和响应消息   与发件人的证书。这些消息应始终如此   加密。如果传输层不提供加密,那么   这些消息应使用接收者的证书进行加密。

    在此提及消息 总是被加密。它如何依赖传输层?

    我还看到Wolfgang Mahnke,Stefan-Helmut Leitner,Matthias Damm的OPC统一架构书中的另一个描述如下:

      

    如果证书被认为是值得信赖的,那么作为第二个   按照步骤确保安全的OpenSecureChannel请求   安全策略和安全模式将发送到选定的会话   服务器的端点。 (第7章,pg.no:213)

    在此,它突出显示消息是根据安全策略和安全模式保护的,因此如果安全模式已签名,我请求澄清该方案?

    邮件是否也会被加密?

    1. 通常,当MessageSecurityMode为None时,SecurityPolicy'必须'为None? '无效'的确切用法是什么? MessageSecurityMode?

    2. X509IdentityToken规范第4部分服务部分7.35.4

    3.   

      此令牌应始终附有签名   如果需要,ActivateSession的userTokenSignature参数   SECURITYPOLICY。服务器应为其指定SecurityPolicy   如果SecureChannel的SecurityPolicy为None,则为UserTokenPolicy。

      在第一行中提到'如果SecurityPolicy需要',当userTokenSignature是X509IdentityToken的必填字段时,'if required'的上下文是什么?在第二行中提到如果SecureChannel的SecurityPolicy为None,则需要显式安全策略,其中'None'表示没有交换证书,因此不能使用X509IdentityToken,参考同一规范中的以下行(Section 5.6.3 ActivateSession,pg.no:40)?

        

      如果令牌是X509IdentityToken,则证明是签名   使用与证书关联的私钥生成。数据   通过将最后一个serverNonce附加到。来创建签名   在CreateSession响应中指定的serverCertificate。

      对于您的信息,我使用2015年11月发布的规范进行学习。请澄清。

1 个答案:

答案 0 :(得分:1)

对于第一个问题,规范继续说明“如果securityPolicyUri不是None,则仅适用于OpenSecureChannel的这些要求”。所以答案是SecureChannel将为任何MessageSecurityMode签署和加密OpenSecureChannelRequest / Response,MessageSecurityMode.None除外。

对于第二个问题,如果MessageSecurityMode为None,则安全策略为none。据我所知,没有使用MessageSecurityMode.Invalid。

对于第三个问题,如果securityPolicyUri为None,则不会交换 application 证书。客户端可以通过X509IdentityToken提供UserIdentity。令牌由X509Certificate和签名组成。通过将服务器随机数附加到服务器证书并使用用户证书的私钥进行签名来生成签名。