Skip to content

Security: https channel always create endpoint with Non securityMode #182

@ccasteyde

Description

@ccasteyde

Hello
Please also see #692 on UA .Net standard for the question on the specified behaviour.
The CreateHttpsServiceHost method of StandardServer.cs always opens a channel with SecurityMode "None". This disable client authentication totally, because clients can choose to connect on the "None" channel. Therefore, any client can connect to the OPC UA Server without any application authentication mechanisms.
This is conformant with Part2 §4.10, with indicates that is such a case User authentication should be used.
The problem is there are indeed people willing to use Application Authentication to authenticate OPC UA Clients applications, and the specified behaviour is indeed a security vulnerability.
By the way this was fixed in UA .NET standard by removing the automatic "None" channel (without security announcement, and without updating the specifications).
Another option would have been to check client certificate at the transport level in the WebHttpBinding underlying object. Be carefull that there are interoperability problems to take into account.
I therefore suggests:

  • enable client certificate verification at the transport level on WebHttpBinding object via property binding.Security.Transport.ClientCredentialType;
  • optionnaly, with spec update:
  • let the host application choose which binding expose;
  • always take the lowest security level.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions