model could be designed covering all needed functi-
onality. The example protocol aims at fulfilling this
requirement.
3.2 Industrial Protocols
Industrial protocols are used to automate the commu-
nication of IACS. Two common representatives in the
industrial area are OPC UA and Profinet. Both will
be introduced with a focus on peculiarities in packet
definitions and protocol states. Additionally, special
findings from other protocols will be presented.
3.2.1 OPC UA
OPC Unified Architecture (OPC UA) is a machine-
to-machine communication protocol used in indus-
trial automation (OPC Foundation, 2017a). The pro-
tocol specifies models for information, messages and
communication. It offers a built-in address space
and object model and follows a service-oriented de-
sign. While mainly relying on a Client/Server ar-
chitecture, it also provides functionalities for Publis-
her/Subscriber architectures.
The communication model is divided into three
layers, as shown in Figure 2: The transport layer, the
secure channel layer and the session layer. The trans-
port layer establishes the network connection between
client and server. The secure SecureChannel provides
a secured, long-running connection between the two
communication partners. These security features in-
clude encryption and integrity checking, and are de-
fined by a security policy. The Session contains the
application-layer connection between two OPC UA
services and can only be accessed via a single Se-
cureChannel. Sessions are stateful and contain, for
example, linked authentication information like user
credentials. However, sessions are ultimately inde-
pendent from the underlying communication proto-
col, making it possible to transfer a session to another
SecureChannel.
OPC UA Client OPC UA Server
Communication Stack
Session Stack
Communication Stack
Session Stack
SecureChannel
Session
Transport
Figure 2: The OPC UA communication stack, adapted from
(OPC Foundation, 2017a, 20).
OPC UA has its own type system that is used to
send packets over the network. The corresponding
standard differentiates between simple and structured
data types (OPC Foundation, 2017b, 35).
Some data types that need to be implemented ma-
nually are called built-in data types. The simple data
types are subtypes of these built-in data types. They
cannot be differentiated from another when encoded
(OPC Foundation, 2017b, 35). These data types form
the base from which all other data types can be ge-
nerated (OPC Foundation, 2017c, 6). Parsing beha-
vior for built-in data types is specified in the standard
(OPC Foundation, 2017c, 6) and is fixed unless the
standard is changed. Among other things, the built-
in data types contain so called Variants and Exten-
sionObjects (OPC Foundation, 2017c, 6). Variants
can contain other built-in data types or arrays of ot-
her built-in data types. The length of the contained
array is represented by a length field in the Variant
(OPC Foundation, 2017c, 16). In contrast, Extensi-
onObjects are used to transmit an arbitrary data type
over the network. The sent data type is modeled in the
server’s address space. In order to achieve this, the
ExtensionObject contains the encoded data and the id
of the data type that was used to encode the data (OPC
Foundation, 2017c, 15).
Structured data types are modeled in a server’s
address space, where they can be retrieved in order
to parse incoming traffic (OPC Foundation, 2017b,
35). These data types represent an aggregation of
other structured data types and/or simple data types
(OPC Foundation, 2017b, 69). When these data ty-
pes are sent over the network, the receiving end needs
to know how to parse them. This is achieved by en-
capsulating them in the aforementioned ExtensionOb-
jects. The receiving end can retrieve the parsing rules
with the information in the ExtensionObject for the
encapsulated type from the server in order to parse
the type (OPC Foundation, 2017b, 35).
Data types can be specified via XML schema fi-
les, which can be parsed by OPC UA applications.
Commonly known data types can be found in a pu-
blicly available schema file, so that they do not have
to be read from a server each time (OPC Foundation,
2017b, 35).
Due to the way OPC UA enables arbitrary mo-
deling of data types, it is possible to define a type that
contains itself directly or indirectly through another
type.
3.2.2 Profinet IO
Profinet IO (PNIO) is a real-time enabled industrial
Ethernet standard defined in IEC 61158-6-10. Accor-
ding to a study from 2017 (compared to 2016)(HMS
Industrial Networks, 2017), industrial Ethernet has a
market share of 46% (38%) in IACS, whereas clas-
sic field buses have 48% (58%). 6% (4%) of the sold
Design of an Example Network Protocol for Security Tests Targeting Industrial Automation Systems
731