Abstract:
With the advancement of Machine to Machine (M2M) communication and the Industrial Internet of Things (IIoT) security is becoming an increasing concern. Open Platform Communications Unified Architecture (OPC UA) is a communication protocol for these environments that provides security. There is not much research on the security of OPC UA that targets implementations. We implemented the OPC UA Attacker framework in Python to facilitate future research. It provides encoders and decoders for binary, XML, and JSON making it easier to forge messages. Another functionality is the implementation of the security features, including the newly added support for Elliptic Curve Cryptography (ECC). The framework allows each module to be changed, providing a framework that users can easily adopt. The focus is on client-server communication, with the possibility of extending it to support Publish Subscribe (PubSub) communication. We provide examples of how to use the framework with a rogue client and rogue server implementation. In addition, we evaluated the rogue server and client against the ReferenceClient and ReferenceServer of the UA.-NETStandard (UA.-NET) library and two examples from the opcua-asyncio library.