So far in our ongoing Exploring OPC UA blog series, we have taken a primarily general look at OPC UA Certificates and how they are used by OPC UA clients and OPC UA servers to keep industrial data secure.
In this third post of the series, we'll take a step back and look at OPC UA security in general with respect to the layered approach that is employed to cover aspects such as authentication, confidentiality and the integrity of communications.
A core pillar of OPC UA is the focus on security, not just for data integrity reasons, but also for service availability. The OPC UA specifications summarize the security focus should be in three areas:
This means that a strictly layered approach to security is pivotal to an OPC UA implementation, where each layer is responsible for verifying that the connection/action is allowed, and any unapproved actions can be rejected quickly.
The OPC UA specification documentation visualizes the OPC UA security model as having three layers:
With those three security layers in mind there are several considerations and recommendations that should be kept in mind when designing a system that implements OPC UA clients and servers.
Do not rely on security through obscurity. If the only security implemented on the system is the hope that an attacker cannot figure out the server IP and port, you are a short NMAP scan away from a potentially compromised system. Do not do it! Especially on publicly exposed OPC UA servers.
Be conscious of what certificates you are trusting. Given the importance of the Secure Channel and the critical nature of the proper use of the OPC UA Application Certificates, simply accepting, and trusting every certificate effectively negates the purpose of having this layer (i.e. a firewall is not effective if it simply allows every connection). Take care and review certificates before trusting them; things to look for are:
Is the host one that I trust and want to allow to connect to me?
Is the application one that I trust and want to allow to connect to me?
How long is this certificate valid for and does that adhere to my IT best practices to make sure certificates are regularly updated and renewed?
All this talk of certificates becomes somewhat pointless if the OPC UA server endpoint is not configured to use security. While I would not go so far as to recommend that every OPC UA connection should be encrypted and secured – it is something that must be taken into consideration when designing a system.
Is the system going to be exposed publicly or only be accessible on an intranet?
Is the network going to be accessible by parties that – while authorized to be on the network – should not be able to monitor the OPC UA Communications?
How many clients will be connecting on this system?
Are we using any other security (like user authorization or firewalls)?
Does my server allow me to configure users?
And if yes - what level of granularity does my OPC UA server support for allowing me to configure user access permissions (i.e. can I restrict read/write access, access to specific tags, etc)?
Are we siloing user access to only those resources the user needs to access? Or is every user a root user with full administrative rights?
The list of considerations to evaluate when planning the design for a secure OPC UA architecture is considerably longer than what is listed above, but these should offer an easily digestible starting point to drive an internal conversation about the needs of your organization.
Subscribe to our blog to stay tuned for the rest of this series where we will be looking at how to specifically secure OPC UA solutions available from Software Toolbox, which should be useful to our users migrating to OPC UA but uncertain of how to take full advantage of the security benefits.