PCO 15.2 Security Guide
PCO 15.2 Security Guide
Caution
Before you start the implementation, make sure you have the latest version of this document. You can find
the latest version at the following location: https://help.sap.com/viewer/p/SAP_PLANT_CONNECTIVITY
Versions
Introduction
This document outlines the available options in the Microsoft Windows operating system that you use to
implement the security policy that controls the access to SAP Plant Connectivity (PCo).
Caution
This guide does not replace the administration or operation guides that are available for productive
operations.
Note
PCo does not provide built-in user management. It uses standard Microsoft Windows domain user
accounts. It does not provide additional roles for controlling the user or group accounts specific to PCo
functionality for on premise. If a user can launch PCo, there is no limit to the functionality, provided the user
has administrator privileges. For more information about user management and security audits, see http://
technet.microsoft.com/en-us/library/cc781549%28WS.10%29.aspx .
If you use PCo together with the SAP Digital Manufacturing Cloud you have to define the rights of the
users who can access the services provided by the CloudServicesHost. Predefined roles are assigned to
individual services. You can assign the roles to the individual users in the Management Console under
Tools Cloud Integration User Configuration
With the increasing use of distributed systems and the Internet for managing business data, the demands on
security are also on the rise. When using a distributed system, you need to be sure that your data and
processes support your business needs without allowing unauthorized access to critical information. User
errors, negligence, or attempted manipulation of your system should not result in loss of information or
processing time. These demands on security apply likewise to SAP Plant Connectivity (PCo).
The following prerequisites apply to the correct operation of SAP Plant Connectivity:
The Security Guide provides an overview of the security-relevant information that applies to PCo.
For a list of additional security-relevant SAP Hot News and SAP Notes, see https://support.sap.com/en/my-
support/knowledge-base/security-notes-news.html .
Additional Information
For more information about specific topics, see the Quick Links as shown in the table below.
Security http://sdn.sap.com/irj/sdn/security
● https://support.sap.com/en/my-support/knowledge-base/
security-notes-news.html
For an overview of the Plant Connectivity system landscape, refer to the corresponding Master Guide in the
SAP Service Marketplace.
https://help.sap.com/viewer/p/
SAP_PLANT_CONNECTIVITY
PCo does not have its own user management, but instead uses the standard Microsoft Windows domain user
accounts.
Authentication for the Plant Connectivity Management Services is done using Basic Authentication, that is, the
given user is authenticated using Microsoft Windows authentication. The same applies when Web server(s) are
configured in the PCo agent instance(s) and Basic Authentication is set.
Note
For more information about user management and security audits, see http://technet.microsoft.com/en-
us/library/cc781549%28WS.10%29.aspx .
To launch the Plant Connectivity Management Console to perform configuration changes or to start and stop
agents, you must have the corresponding administrator privileges.
Note
In Windows 7 and higher the User Account Control (UAC) automatically detects that administrator
privileges are required.
Users without administrator privileges can start the PCo Management Console in display mode only. They
have read-only access to configuration details and logs. They are also allowed to export the configuration.
Agent instances running as a service may be configured to use a specific user. The user account used for this
needs the log on as a service privilege. This privilege is granted automatically when you assign a user to an
agent instance. Alternatively, this can be configured in the Group Policy Editor. You can find more information
about this on the Microsoft Developer Network (MSDN) Web site under the following links:
To control the general access to the Plant Connectivity Management Console, you can use the following
technologies for the PCo system folder (usually found under C:\Program Files (x86)\SAP\Plant Connectivity
\System):
You can use authorization management to define specifically which PCo services you want external callers to
be able to access.
Standard Settings
After installing PCo, only users that belong to the Administrators user group have access to the services
provided by the Management Service. The PCo Web server can be called by users that belong to the
PCoWebServer user group provided this user group existed at the time of installation. Otherwise, and for all
other services, the default setting is No Access for the topmost level and Access Inherited from
Superordinate Service for the lower levels. After installation, you can revert at any time to these standard
settings by choosing the relevant pushbutton.
Authorization Services
SAP Plant Connectivity provides a number of services that can be used by remote computers:
● Management Service
Using the Management Service, you can call PCo functions using Web services. You can configure, start, or
stop agent instances and query configurations, status information, or protocols.
● Remote Client
The remote client enables you to monitor PCo from a remote computer, to start or stop agent instances, to
export and import configurations, and to query protocols.
● PCo Web Server
The PCo Web server provides configurable methods in the form of Web service endpoints.
You should use https for the service and, in addition, basic authentication. When using basic authentication the
services require that the user can log on to the Windows computer on which PCo is installed. In addition you
have to use the authorization management in the PCo Management Console to control which PCo services can
be accessed by external callers.
Your network infrastructure is extremely important in protecting your system. Your network needs to support
the communication necessary for your business needs without allowing unauthorized access. A well-defined
network topology can eliminate many security threats based on software flaws (at both the operating system
level and the application level) or network attacks such as eavesdropping.
If users cannot log on to your application or database servers at the operating system or database layer, then
there is no way for intruders to compromise the machines and gain access to the back-end system’s database
or files. Additionally, if users are not able to connect to the server LAN (local area network), they cannot exploit
well-known bugs and security holes in network services on the server machines.
The table below shows the communication channels used by PCo, the protocol used for the connection, and
the type of data transferred.
Communication Path Protocol Used Type of Data Transferred Data Requiring Special Pro
tection
OPC (DA, HDA, and A&E) COM/DCOM Tag values, metadata, and hi
data source to PCo (and vice erarchical structure of tags
versa)
OPC UA data source to PCo HTTP (deprecated)/ HTTPS Tag values, metadata, and hi Password for user session (if
(and vice versa) or OPC UA specific protocol erarchical structure of tags used), private key of certifi-
via TCP cates
OPC UA destination Inherited from OPC UA Method call Inherited from OPC UA
source system source system
Data source to PCo (and vice Vendor-specific proprietary Tag values, metadata, and hi Password for logon to data
versa) (this applies to the fol protocol erarchical structure of tags source
lowing agents: Citect, IP21, PI,
PI-AF, Proficy)
Modbus data source TCP/Serial Protocol Tag values, metadata, and hi
erarchical structure of tags
PCo to MII (destination) HTTP/HTTPS Tag values, metadata, and hi Password for logon to MII
erarchical structure of tags
PCo to Web service destina SOAP Tag values, metadata, and hi Password for Web service
tion erarchical structure of tags
PCo to ABAP NetWeaver AS RFC Tag values, metadata, and hi Password for logon to Net
(destination) erarchical structure of tags Weaver system
PCo to OData destination HTTP/HTTPS Tag values, metadata, and hi Password for OData service
erarchical structure of tags
PCo to Restful Web service HTTP/HTTPS Tag values, metadata, and hi Password for Restful Web
destination erarchical structure of tags service
PCo to Universal Web service HTTP/HTTPS Tag values, metadata, and hi Password for Web service
destination erarchical structure of tags
PCo to Sybase ESP destina HTTP/HTTPS Tag values, metadata, and hi Password for Sybase ESP
tion erarchical structure of tags
PCo to ODBC destination ODBC Tag values, metadata, and hi Password for ODBC data
erarchical structure of tags source
MII (TagQuery) to PCo LISA (MII specific binary pro Tag values, metadata, and hi
tocol) erarchical structure of tags
MII (PCoQuery) and NetWea xMII data transfer protocol Tag values, metadata, and hi
ver to PCo (new MII specific protocol) erarchical structure of tags
PCo Remote Client to PCo NET.TCP (and potentially Commands, status informa (Encrypted) passwords in
Management Host also WCF (Windows Commu tion, configurations, and logs configuration data
nication Foundation)
MII (PCoQuery) to PCo Man HTTP/HTTPS Commands, status informa (Encrypted) passwords in
agement Host tion, configurations, and logs configuration data
Web client to PCo web server WebSocket Protocol Command, status informa Windows account credential
tion, configurations which is part of the windows
WebSocket Protocol over
group PCoWebServer
TLS
MQTT to PCo and vice versa TCP MQTT packets Password for MQTT Server,
Recommendation
Related Information
DCOM Security
The OPC standards DA, HDA, and A&E use DCOM security. To implement DCOM security, carry out the
following steps:
1. On the machine where the OPC server is running, use the command dcomcnfg.exe to carry out the
following steps:
○ Check the launch and the activation limits under My Computer Properties COM Security .
○ Check the access limits.
OPC UA Security
This section applies to both the OPC UA source system, the OPC UA server, new as of PCo 15.1 (SP03), and the
OPC UA destination system, which inherits its properties from an OPC UA source system.
Note
Recommendations for security policies may change over time due to increasing computing power. You
should review your settings regularly.
● Channel Communication: The channel communication uses the standard X.509 v3 certificates.
● User Session: The user session may use Anonymous, User name and Password, or Credentials.
OPC UA security for channel communication is governed by the OPC UA specification, which has been made
open source in 2015. The current version of PCo supports version 1.03 of the OPC UA specification.
Note
It is based on the usage of X.509 v3 certificates for both client and server. It defines several security modes:
● None
● Sign
● SignAndEncrypt
● None
The links above provide detailed information about the algorithms used for each policy and also
recommendations on usage.
● Security policy None only supports security mode None and should be used only for testing or for
connecting to devices that do not support other security modes.
● Security policy Basic128Rsa15 is rated unsecure and should no longer be used, unless legacy servers
cannot be connected to securely using other policies.
● Security policy Basic256 is a reasonable secure policy if certificates are signed with Sha256, even though
Sha1 is supported.
● Security policy Basic256SHA256 is considered to be a secure policy if certificates are signed with Sha256.
Sign which transfers data unencrypted but with digital signatures that allow verification of data integrity.
In PCo, the security policies Basic128Rsa15, SHA256 and Basic256SHA256 are supported for the security
modes Sign and SignAndEncrypt. If the computation power of a device to which you want to connect is low and
confidentiality not an issue, but data integrity is important, you may consider using the security mode Sign.
With security mode SignAndEncrypt the messages are both signed and encrypted.
The OPC UA specification details the process of certificate validation for the creation of secure channels
(Release 1.03, Part 4, section 6.1.3). This process description allows the creation of a secure channel even
though some checks may have failed.
The PCo UA source system and server rely on the (open source) .Net SDK of the OPC Foundation, which
currently does not fully support this part of the specification, meaning that the same holds for SAP Plant
Connectivity OPC UA applications. This means for the UA source system, in particular:
● Certificate revocation lists are only supported for file-based storage of certificates. They are taken into
account automatically if they are present in the crl subfolder of the folder that is configured as trusted store
or trusted issuer store.
● Missing certificate revocation lists do not lead to certificate validation failure.
● Certificate revocation list checks cannot be configured.
The PCo OPC UA server currently does not support validation failure exceptions at all which leads, in general,
to higher security but fewer configuration options. The PCo OPC UA server only supports certificate revocation
lists for file-based certificate storage. As for the OPC UA source system, missing certificate revocation lists do
not lead to certificate validation failures.
Providing the option to use session security is the task of the OPC UA server. The PCo OPC UA server
functionality currently does not support user-based or certificate authentication for sessions; only anonymous
access is supported.
The PCo OPC UA source system supports user/password and certificate-based authentication if the OPC UA
server it connects to does.
OPC UA source system and server need an X.509 v3 certificate as application certificate for setting up a
secure connection, and for this application certificate the private key must be accessible to the OPC UA
application. The PCo OPC UA applications will not start without a valid certificate. If an OPC UA application
provides an application certificate, it must be a formally valid certificate or empty (null), otherwise the
connection is refused by the other party. No secure connection can be established with an empty certificate, of
course.
Note
SAP Plant Connectivity does not provide a means to create X.509 v3 certificates for OPC UA application
certificates.
You can use self-signed certificates, certificates created by a UA server certificate creation utility from
another vendor, or certificates from a certificate authority to create application certificates.
PCo UA applications support both certificate chains as well as self-signed certificates for the creation of secure
channels. Since some UA applications may not be able to receive (partial) certificates, PCo UA applications
allow you to configure whether a certificate chain is sent or whether only the application certificate is sent. This
is the default.
To send a certificate chain, you have to store the application certificate in the Microsoft Certificate store and the
other (intermediate and CA) certificates of the chain in the folders your application uses as store for trusted
issuers or the trust store. If you send only a partial chain, the missing parts have to be available to the other
party by other means (usually in the trusted store or trusted issuer store). Collecting the certificates of a chain
to send them to the other party relies on finding, recursively, the certificate that was used to sign those
certificates in the chain that were already found. This is only possible if there is no gap in the chain as it is
stored in the folders in which the application can search for them.
In Plant Connectivity the application certificate must be stored in the Microsoft certificate store to protect the
private key. The recommended way to provide it is to import it as a .pfx file into the personal folder of the
LocalMachine store in the Microsoft certificate store. Other folders can be used to provide backward
compatibility. If the Current user store is used, PCo agent instances, which run as a service, may not be able to
access the private key, unless the service is run with the identity of the same user.
File-based certificate stores can only be used as a trusted store for application certificates from other UA
applications (without their private key). This can be set up on the Security tab of UA source systems and UA
servers. If you choose to change the default settings, you should follow the instructions in the ‘Prerequisites’
section to protect that location appropriately.
Note
The OPC UA specification requires that certain attributes and extensions of application certificates are set
to specific values. These requirements may differ from what you are used to from other certificate-based
secure connections. They are detailed in section 6.2.2, Part 6 of revision 1.03 of the OPC UA specification.
Some UA applications may refuse to establish a secure connection if a self-signed certificate does not
specify CertificateSigning as intended key usage. The specification only requests
digitalSignature, nonRepudiation, keyEncipherment, and dataEncipherment.
Note
The validation functionality for CA-signed certificates or chains of the Microsoft certificate store is, in
general, different from the one used by OPC UA applications. If the Microsoft certificate store can validate a
certificate signed by a CA, this means that the CA certificate is stored in the Trusted Root Certification
Authorities folder of the Microsoft certificate store. This is not normally the place where an OPC UA
application searches for the CA certificate. These latter locations are configured on the Security tabs of the
PCo UA application.
The PCo MQTT client can optionally use an X.509 certificate as application certificate for setting up a secure
connection, but a secure connection using TLS can also be established without such a certificate. If the PCo
MQTT client uses an application certificate, its private key must be accessible. The PCo MQTT clients will not
start if an invalid certificate is used.
If you use certificate chains for client authentication, all intermediate CA certificates must be installed in the
Intermediate Certification Authorities store . The root CA certificate must be installed in the Trusted Root
Certification Authorities store.
Note
The Microsoft Certificate store is always used for the client certificates. The configurable certificate store
type is only used during the validation of the server certificates.
When the PCo MQTT clients are used on Windows OS, the following security settings are recommended:
Note
Note that the certificates for the current user may be
not visible during runtime if you start the corresponding
agent instance with other credentials. This will prevent
the agent instance from starting.
Trusted Certificates/Issuer Certificates/Rejected Certificates For the certificates, you choose a certificate storage location
on the local computer or the current user.
If you use the File System Certificate Store, we encourage you to discuss the settings with your system
administrators.
Note
File System Certificate Store does NOT support Indirect Certificate Revocation Lists.
During the validation of the server certificate chain the following algorithm is used:
1. The certificate chain is built by PCo using the sent certificates, the trusted certificate folders, and the
issuer certificate folders. The rejected folder is used only for temporary storage of the certificates.
2. If the chain is incomplete, the certificate is not trusted.
3. If the chain is built and at least one of the certificates is taken from the trusted folder, the certificate is
trusted.
4. The revocation check is only performed if the certificate chain is complete and the certificate is trusted.
5. During every online revocation check, the crls folder under the trusted folder will be updated according to
the last CRLs.
The following asymmetric hash algorithms are supported (in the brackets is the algorithm Object ID):
The following asymmetric hash algorithms are considered insecure and are not supported (in the brackets is
the OID ):
Transport Layer Security (TLS) is the successor technology for SSL. TLS should be used in version 1.2, earlier
versions are deprecated. In PCo 15.2 SP03, FP 1 TLS 1.2 is supported for all TLS -based connections. In earlier
New functionality in PCo will only support version 1.2 of TLS. Existing functionality may support earlier versions
to ensure backwards compatibility. Not supporting earlier versions may break connectivity. In future versions of
PCo, support for TLS 1.0, 1.1, or SSL may be disabled by default, though. You should use TLS 1.2 wherever
possible.
PCo uses Transport Layer Security (TLS) to secure the communication between PCo and the following:
In addition, TLS is used in PCo services offered by the Management Host Service.
TLS is based on the exchange of certificates between server and client. During the handshake between server
and client, the server identifies itself by a certificate that is sent to the client. The client checks whether the
given certificate is a trusted and a valid certificate. Optionally, the server could request a client certificate. In
this case, the client also must send the certificate to the server that is checking the validity and the
trustworthiness of the certificate. A secure communication channel is only created successfully, if all checks
are passed.
● Self-signed certificates
● Certificates issued by a trusted Certification Authority (CA)
The type of certificate determines how to set-up the certificate infrastructure to get the secure communication
working:
● If certificates issued by a trusted CA are used, it is not necessary that the client knows the server
certificate and vice versa. It is only necessary that the client knows the CA certificate that issued the server
certificate. Accordingly, the server has to know the CA certificate that issued the client certificate. This
means that the server keeps the server certificate and the CA certificate in its certificate store, while the
client stores the client certificate and the CA certificate.
● If self-signed certificates are used, the certificates have to be exchanged between server and client. This
means that the server has to import the client certificate without a private key , while the client has to
import the servert certificate without a private key. Finally, the server certificate store contains the server
certificate (with a private key) and the client certificate (without a private key). Accordingly, the client
certificate store contains the client certificate (with a private key) and the server certificate (without a
private key).
● A Web server in PCo agent instance is configured with only one server certificate which is imported by the
client during the initial ‘handshake’. This certificate contains information such as expiration date, issuing
authority and the service end point URI (Uniform Resource Identifier). During handshake, the client
compares the URI to the URI it had originally communicated to ensure the match and it also checks the
● After this initial handshake process, both the server and the client agree on a shared secret symmetric key,
which involves less computation overhead and is responsible for establishing the secure communication.
In order to grant a Secure Socket communication between MII and PCo, a server and a client authentication
have been implemented. For more information about Configuring the Use of TLS on the AS Java, see http://
help.sap.com/saphelp_nw73ehp1/helpdata/en/4a/015cc68d863132e10000000a421937/content.htm .
The steps in PCo are described in the section Enabling TLS for an Agent Instance [page 21].
If PCo acts as an MII client or ME Web client, only a server authentication with certificates takes place.
According to the description above, a server certificate has to be imported onto the MII server or the ME server.
On the PCo side, the appropriate certificate has to be imported into the trusted certificate store.
To enable TLS for the Management Host service, the steps described in the corresponding section have to be
considered.
Note
Self-signed certificates for PCo can be created with certificate creation tools like OpenSSL . (See PCo
application help for Default Certificates).
The Microsoft tool makecert is deprecated. Microsoft offers functionality to create self-signed certificates
in a newer version of MS PowerShell. See: https://docs.microsoft.com/en-us/windows/desktop/
seccrypto/makecert
To create a certificate request that could be sent to a CA, Microsoft IIS or certificate creation tools as
described above could be used.
You can enable TLS for the Management Host service by editing the file ManagementHost.exe.config.
Since the Management Host service is based on the Windows Communication Framework (WCF), potentially
all options provided by the WCF apply. It cannot be guaranteed, however, that all possible and valid
configurations will work in your environment. In particular, it is known that message security with
wsHttpBinding for connections between WCF -based applications and Java applications is problematic or
difficult to set up.
One particular example setup which enables transport security with the basicHttpbinding is described
below:
1. You can modify the corresponding endpoint in the Services section by replacing
address=”http://
with
Parameter Description
Example
add sslcert ipport=1.1.1.1:443 certhash=0102030405060708090A0B0C0D0E0F1011121314
appid={1A570ED4-80D1-4A98-A7AB-8B4C6D5A42A5}
The Web server hosted within the agent instance can be secured by enabling TLS technology for a Web client
and Web server communication over an insecure network that is encoded with the HTTP protocol. This use of
TLS to encrypt the HTTP traffic constitutes the HTTPS protocol.
Additionally, the PCo Web Server also provides the basic authentication and authorization mechanism to verify
identity and check the privileges of the authenticated user on the Web server and its operations. The user
should be defined on the host machine where PCo is installed. The authorization permissions can be set either
on the Web server or its individual operations. The authentication and authorization in that order is the default
behavior during the configuration of the Web server endpoint. However, this behavior can be turned off by
turning off the authentication in the Web Server Endpoint Configuration dialogue. When authentication is
turned off, it also automatically hides the authorization check and all the Web server operations can be
accessed without entering any user credentials. Certificate-based authentication to the Web server has been
introduced in the Web server, but certificate-based authorization in this process has been turned off.
Note
The Microsoft Certificate store is always used for the Web server certificate.
Network Security
If the business system and the data source that are to be connected by PCo are located in different network
segments and/or separated by a firewall, the following considerations should be taken into account:
● The basic recommendation is to run PCo (or the agent instances, to be precise) close to the data source.
● For the notification scenario, PCo has to be able to reach the business system. The details for this are
configured in the notification destination in the PCo Management Console.
● For the query scenario, the business system needs to be able to reach the agent instance. The port used
for this can be configured in the agent configuration in the PCo Management Console.
● To use the remote console, the MMC (Microsoft Management Console) has to be able to reach the PCo
Management Host. The port used for this can be configured in the PCo Management Console.
● To create a data source of type PCo Connector in MII, the system needs to be able to access the PCo
Management Console.
Ports
All ports that an agent instance opens for incoming connections can be configured in the PCo Management
Console. For this, navigate to the Query Ports tab in the agent instance configuration.
Using the PCo Management Console, you can also configure the port that is opened by the PCo Management
Host. For this, navigate to Tools Options Management Host Settings .
PCo stores all configuration information for source systems, destination systems, and agent instances in
configuration files. The location of these files depends on the operation system, but usually you can find the
folder under:
C:/ProgramData/SAP/PCo
This folder also contains the configuration audit log with the change history. This change history includes the
user ID of the person who made the changes. The system administrator with the relevant authorization can
delete the file depending on how long the audit data needs to be retained.
From the PCo Management Console you can reach this log using the View Menu.
Note
PCo does not store any runtime data and does not provide other security audit capabilities.
For the encryption of passwords in the configuration database files, PCo uses built-in Microsoft operating
system support.
The following functions that are relevant to security aspects can be switched off if you are not using them:
● Management Host: The Windows service for the PCo Management Host can be deactivated. The
Management Host is required for the following scenarios:
○ Creation of a PCoConnector data server in MII
○ Use of the Remote Client
● Active Monitor: If you are not using the Active Monitor scenario, you can deactivate the corresponding
Windows service or you deselect the corresponding component already during installation .
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such
links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Gender-Related Language
We try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.