PUBLIC Connecting a Customer System to SAP HCI



Similar documents
PUBLIC Operations Guide

SAP HANA Cloud Integration CUSTOMER

Configure Managed File Transfer Endpoints

How-To Guide SAP Cloud for Customer Document Version: How to Configure SAP HCI basic authentication for SAP Cloud for Customer

Enabling SSL and Client Certificates on the SAP J2EE Engine

StreamServe Persuasion SP4 Encryption and Authentication

StreamServe Persuasion SP5 Encryption and Authentication

Unifying Information Security. Implementing TLS on the CLEARSWIFT SECURE Gateway

SolarWinds Technical Reference

Angel Dichev RIG, SAP Labs

StreamServe Encryption and Authentication

Enterprise Content Management System Monitor. How to deploy the JMX monitor application in WebSphere ND clustered environments. Revision 1.

Methods available to GHP for out of band PUBLIC key distribution and verification.

App Orchestration 2.5

SSL Configuration Best Practices for SAS Visual Analytics 7.1 Web Applications and SAS LASR Authorization Service

Introduction to Mobile Access Gateway Installation

HTTPS Configuration for SAP Connector

Enterprise Content Management System Monitor 5.1 Security Considerations Revision CENIT AG Brandner, Marc

Secure Transfers. Contents. SSL-Based Services: HTTPS and FTPS 2. Generating A Certificate 2. Creating A Self-Signed Certificate 3

Chapter 17. Transport-Level Security

OpenADR 2.0 Security. Jim Zuber, CTO QualityLogic, Inc.

Global Client Access Managed Communications Solutions. JPMorgan - Global Client Access. Managed Internet Solutions (EC Gateway)

How-to-Guide: SAP Web Dispatcher for Fiori Applications

Introduction to the EIS Guide

Quickstream Connectivity Options

JBoss SOAP Web Services User Guide. Version: M5

SFSF EC to 3 rd party payroll Integration Software and Delivery Requirements

App Orchestration 2.0

Junio SSL WebLogic Oracle. Guía de Instalación. Junio, SSL WebLogic Oracle Guía de Instalación CONFIDENCIAL Página 1 de 19

Enable SSL in Go2Group SOAP Server

Secure Data Transfer

Overview SSL/TLS HTTPS SSH. TLS Protocol Architecture TLS Handshake Protocol TLS Record Protocol. SSH Protocol Architecture SSH Transport Protocol

Clearswift Information Governance

Scenarios for Setting Up SSL Certificates for View

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

CHAPTER 7 SSL CONFIGURATION AND TESTING

Sophos Mobile Control SaaS startup guide. Product version: 6

SAP Web Application Server Security

SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release [August] [2014]

PUBLIC Secure Login for SAP Single Sign-On Implementation Guide

GlobalSCAPE DMZ Gateway, v1. User Guide

Internet Programming. Security

Setup Guide Access Manager Appliance 3.2 SP3

Configuring Secure Network Communications for SAP

Configuration (X87) SAP Mobile Secure: SAP Afaria 7 SP5 September 2014 English. Building Block Configuration Guide

Iowa Immunization Registry Information System (IRIS) Web Services Data Exchange Setup. Version 1.1 Last Updated: April 14, 2014

CICS Web Service Security. Anthony Papageorgiou IBM CICS Development March 13, 2012 Session: 10282

HMRC Secure Electronic Transfer (SET)

Overview. SSL Cryptography Overview CHAPTER 1

Configuring IBM WebSphere Application Server 7 for Secure Sockets Layer and Client-Certificate Authentication on SAS 9.3 Enterprise BI Server Web

How-To Guide SAP NetWeaver Document Version: How To Guide - Configure SSL in ABAP System

SSL Certificate Generation

CA Nimsoft Unified Management Portal

Using etoken for SSL Web Authentication. SSL V3.0 Overview

White Paper. Installation and Configuration of Fabasoft Folio IMAP Service. Fabasoft Folio 2015 Update Rollup 3

Tutorial: Encrypted with Thunderbird and Enigmail. Author: Shashank Areguli. Published: Ed (August 9, 2014)

BlackBerry Enterprise Service 10. Version: Configuration Guide

SafeNet KMIP and Google Cloud Storage Integration Guide

AquaLogic ESB Design and Integration (3 Days)

Sophos Mobile Control Installation guide. Product version: 3.5

Configuring HTTPs Connection in SAP PI 7.10

Using PI to Exchange PGP Encrypted Files in a B2B Scenario

F-Secure Messaging Security Gateway. Deployment Guide

TIBCO Spotfire Platform IT Brief

Chapter 1: How to Configure Certificate-Based Authentication

App Orchestration 2.5

SecureTransport. Version 5.3.0

SSL CONFIGURATION GUIDE

Sophos Mobile Control Installation guide. Product version: 5.1

AWS Plug-in Guide. Qlik Sense 1.1 Copyright QlikTech International AB. All rights reserved.

CA Nimsoft Service Desk

SOA Software: Troubleshooting Guide for Policy Manager for DataPower

Unifying Information Security. Implementing Encryption on the CLEARSWIFT SECURE Gateway

ISY994 Series Network Security Configuration Guide Requires firmware version Requires Java 1.7+

Certificate Management. PAN-OS Administrator s Guide. Version 7.0

Creating a Secure Web Service In Informatica Data Services

Setting Up SSL on IIS6 for MEGA Advisor

DESLock+ Basic Setup Guide Version 1.20, rev: June 9th 2014

Configuring Secure Socket Layer (SSL) for use with BPM 7.5.x

Installing Digital Certificates for Server Authentication SSL on. BEA WebLogic 8.1

CumuLogic Load Balancer Overview Guide. March CumuLogic Load Balancer Overview Guide 1

PHINMS Alarms. Version: Prepared by: U.S. Department of Health & Human Services

PowerChute TM Network Shutdown Security Features & Deployment

AD RMS Microsoft Federation Gateway Support Installation and Configuration Guide... 3 About this guide... 3

Sophos Mobile Control Installation guide. Product version: 3.6

PARTNER INTEGRATION GUIDE. Edition 1.0

WebService Security. A guide to set up highly secured client-server communications using WS-Security extensions to the SOAP protocol

IBM Security Identity Manager Version 6.0. Security Guide SC

Implementation Guide SAP NetWeaver Identity Management Identity Provider

Djigzo S/MIME setup guide

Prerequisites Guide for ios

Administration Guide. BlackBerry Enterprise Service 12. Version 12.0

Install and configure SSH server

GS1 Trade Sync Connectivity guide

Transcription:

SAP HANA Cloud Integration for process integration 2015-05-10 PUBLIC Connecting a Customer System to SAP HCI

Content 1 Introduction....4 2 Overview of Connection Setup, Tasks, and Roles.... 5 3 Operating Models....7 3.1 SAP-Managed Operating Model....8 3.2 Customer-Managed Operating Model....9 4 Security Elements....12 4.1 Security Elements (Transport-Level Security)....12 Security Elements for Basic Authentication.... 15 Security Elements for Certificate-Based Authentication....17 Security Elements for SFTP.... 21 4.2 Security Elements (Message-Level Security).... 23 Security Elements for Message-Level Security....27 4.3 How Security Artifacts Are Related to Integration Flow Configuration....29 5 Setting Up a Test HTTPS Connection (Basic Authentication)....32 5.1 Setting Up Basic Authentication (Inbound)....32 5.2 Setting Up Basic Authentication (Outbound)....33 6 Setting Up an HTTPS Connection (Certificate-Based Authentication)....35 6.1 Setting Up Certificate-Based Authentication (Inbound)....35 6.2 Setting Up Certificate-Based Authentication (Outbound)....36 7 Steps in Detail....38 7.1 Configuring a Tenant to Support Secure Messaging....38 Configuring a Tenant to Support HTTPS....38 Configuring Message Level Security.... 52 8 Specific Use Cases....70 8.1 Technical Landscape for On Premise-On Demand Integration....70 9 Concepts of Secure Communication.... 74 9.1 HTTPS-Based Communication.... 74 Technical Landscape....74 How Basic Authentication Works....75 How Certificate-Based Authentication Works....77 Certificate Chains....78 Requirements for Keystore Passwords.... 79 2 2015 SAP SE or an SAP affiliate company. All rights reserved. Content

Load Balancer Root Certificates Supported by SAP.... 79 9.2 SFTP-Based Communication.... 80 How SFTP Works....81 9.3 Message-Level Security....81 How PKCS#7 Works.... 84 How XML Signature Works....86 How WS-Security Works.... 88 How OpenPGP Works.... 89 Content 2015 SAP SE or an SAP affiliate company. All rights reserved. 3

1 Introduction The task of setting up a secure connection between a customer system and SAP HANA Cloud Integration requires the cooperation of experts at SAP and on the customer side. There are various adapters that allow you to specify different kinds of connections. Each adapter comes with a specific transport protocol and supports specific communication security options. You can use one of the secure protocols HTTPS or SFTP. If you use HTTPS, you have the option to either configure basic authentication (based on user credentials) or certificate-based authentication. Note One option for quickly setting up a connection is to choose HTTPS and basic authentication. However, this option is recommended for test purposes only. For productive scenarios we recommend that you use certificate-based authentication. As well as the transport-level security options, you can also secure the communication at message level - this protects the content of the exchanged messages by means of digital encryption and signatures. Various security standards are available to do this: PKCS#7, XML Digital Signature, OpenPGP, and WS-Security. The detailed connection setup process - also referred to as the onboarding process - depends on the chosen transport-level and message-level security options. Inbound and Outbound Communication Throughout this documentation we assume the following setup of technical components and communication paths: A customer system (which is not specified any further) is being connected to one of the SAP HCI tenants assigned to the customer. The required tasks differ according to the communication direction that is being set up: whether a customer system is supposed to send a message to SAP HCI or the other way round. Throughout this documentation, the terms inbound and outbound reflect the perspective of SAP HCI. Inbound refers to message processing from a customer system to SAP HCI (where SAP HCI is the server). Outbound refers to message processing from SAP HCI to a customer system (where SAP HCI is the client). 4 2015 SAP SE or an SAP affiliate company. All rights reserved. Introduction

2 Overview of Connection Setup, Tasks, and Roles Setting up a secure connection between a customer system and a tenant always includes tasks associated with the configuration of both the customer system and the tenant, and therefore involves different people and roles. Overview of the Scenario The general setup is that a tenant is connected to a customer system (which can act as either a sender or receiver of messages with regard to the tenant). Configuring the illustrated communication paths requires the involvement of different roles as outlined below. Tasks and Roles The tasks required for the connection setup are distributed across the roles in the following way: Table 1: Roles Role Software-as-a-Server administrator (not shown in the figure) Tasks Initially provides the tenant and tenant cluster for the customer. Overview of Connection Setup, Tasks, and Roles 2015 SAP SE or an SAP affiliate company. All rights reserved. 5

Role Sender/receiver administrator Tenant administrator Tasks Configures the sender/receiver (customer) system to enable secure communication with the tenant. Configures the tenant to enable secure communication with the customer system. This task includes the creation of the required security elements (for example, digital keys and keystores) and the deployment of the related security artifacts on the tenant. Integration developer Designs the required integration content to specify the message flow (for example, mappings and routing rules). The integration content is designed based on the requirements of the business process and specifies how messages are exchanged. Integration flows are a key part of integration content,and describe how a message is processed by the integration runtime. Integration content design also includes configuration tasks related to the desired communication and message-level security. For example, when a messagelevel security scenario is configured, the related signing or encryption steps have to be defined as part of the integration flow. To finally activate the designed integration content for the specific communication path, it has to be deployed on the involved tenant. Related Information Operating Models [page 7] Security Elements [page 12] 6 2015 SAP SE or an SAP affiliate company. All rights reserved. Overview of Connection Setup, Tasks, and Roles

3 Operating Models For the connection setup phase, SAP provides different operating models with different service levels. The chosen operating model determines whether the tasks of the tenant administrator and the integration developer are performed by SAP or the customer. Table 2: Operating Models Operating Model SAP-managed operating model Description SAP provides a maximum level of service during connection setup. The tasks of the tenant administrator and of the integration developer are performed by SAP. Customer-managed operating model The customer itself is responsible for most tenant-related configuration tasks. The tasks of the tenant administrator and the integration developer are performed by the customer. Note This operating model is currently available for the SAP HCI Partner Edition. Tenant provisioning is always performed by SAP, irrespective of the operating model. The detailed procedure and partitioning of tasks during connection setup depends on the chosen operating model. Related Information SAP-Managed Operating Model [page 8] Customer-Managed Operating Model [page 9] Overview of Connection Setup, Tasks, and Roles [page 5] Operating Models 2015 SAP SE or an SAP affiliate company. All rights reserved. 7

3.1 SAP-Managed Operating Model Using this operating model, SAP provides a maximum level of service during connection set up. The following table summarizes the general process flow and partitioning of tasks between customer and SAP: Table 3: Process Flow Step... Performed by (role)... At (organization)... 1. Initial provisioning of tenant and tenant cluster SaaS administrator SAP 2. Configuring the tenant to support secure communication with the customer system Includes tasks like: creating keys or other elements (required by the chosen security option), deploying security artifacts on tenant. Tenant administrator SAP Note The artifact type depends on the chosen security option 3. Configuring the customer system Includes configuring the required security settings for customer system 4. Designing the integration content to specify the message flow Includes tasks like: designing and deploying integration flows on the tenant. Sender/receiver administrator Integration developer Customer SAP Note Within an integration flow, specific integration flow steps (for example, to implement specific security-related steps like digital signing) and adapters (to specify the technical details of a connection) are configured. As the security configuration for the tenant on the one and for the customer system on the other hand is managed by different parties (customer/sap), steps 2 and 3 also include communication steps between customer and SAP that allow the exchange of the public keys or other security-related information associated with the required security option. This information exchange has to take place in a secure and coordinated way and has to be aligned with the configuration tasks at each side of the communication. Note For example, to complete the configuration of a certificate-based HTTPS communication, the keystores on each side of the communication have to contain the public key of the corresponding communication partner. Therefore, the customer and SAP have to provide each other with the related public key: SAP has to provide the customer with the public tenant client certificate, and the customer has to provide SAP with the public customer system client certificate. 8 2015 SAP SE or an SAP affiliate company. All rights reserved. Operating Models

Note The detailed process flow depends on the selected security option. The following figure illustrates the setup of components and partitioning of tasks. The colors yellow and grey indicate who is responsible for the corresponding component (yellow: customer; grey: SAP). 3.2 Customer-Managed Operating Model Using this operating model, the customer is responsible for tenant-related configuration tasks.. Note This operating model is currently available for the SAP HCI Partner Edition. The following table summarizes the general process flow and partitioning of tasks between customer and SAP: Table 4: Process Flow Step... Performed by (role)... At (organisation)... 1. Initial provisioning of tenant and tenant cluster SaaS administrator SAP 2. Requesting tenant access Tenant administrator Customer 3. Providing tenant access SaaS administrator SAP Operating Models 2015 SAP SE or an SAP affiliate company. All rights reserved. 9

Step... Performed by (role)... At (organisation)... 4. Configuring the tenant to support secure communication with the customer system Includes tasks like: creating keys or other elements (required by the chosen security option), deploying security artifacts on tenant. Tenant administrator Customer Note The artifact type depends on the chosen security option 5. Configuring the customer system Includes configuring the required security settings for customer system 6. Designing the integration content to specify the message flow Includes tasks like: designing and deploying integration flows on the tenant. Sender/receiver administrator Integration developer Customer Customer Note Within an integration flow, specific integration flow steps (for example, to implement specific security-related steps like digital signing) and adapters (to specify the technical details of a connection) are configured. Note The detailed process flow depends on the selected security option. The following figure illustrates the setup of components and partitioning of tasks. The colors yellow and grey indicate who is responsible for the corresponding component (yellow: customer; grey: SAP). 10 2015 SAP SE or an SAP affiliate company. All rights reserved. Operating Models

Operating Models 2015 SAP SE or an SAP affiliate company. All rights reserved. 11

4 Security Elements To set up the secure communication between a tenant and a sender/receiver system, certain security elements have to be created and - in some cases - exchanged between the involved components (the tenant on the one side and the sender/receiver system on the other side of the communication). For example, to set up SSL communication using certificate-based authentication between a tenant and a receiver system, X.509 certificates are required. Those private keys owned by the tenant are to be part of a Java keystore that is to be deployed on the tenant, whereas the private keys owned by the receiver are to be part of the receiver system keystore. To complete the security setup, each keystore also has to contain the public key of the connected partner. In our example, the Java keystore of the tenant has to contain the receiver public key, and the receiver keystore has to contain the tenant public key. This section provides a summary for each security option of how the required security elements have to be distributed among the involved components (tenant and sender/receiver systems). Related Information Security Elements (Transport-Level Security) [page 12] Security Elements (Message-Level Security) [page 23] How Security Artifacts Are Related to Integration Flow Configuration [page 29] 4.1 Security Elements (Transport-Level Security) Each transport-level security option requires a specific set of security elements. The following tables provide a summary of how the required security elements (in bold letters) have to be distributed among the involved components (tenant and sender/receiver systems). 12 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

Table 5: Transport-Level Security Security Option Direction Required by tenant administrator to do the following Required by sender/receiver administrator to do the following HTTPS basic authentication Inbound (sender calls tenant) User name of SAP HANA Cloud (to be provided by sender administrator). Grant the required authorizations to enable this user to call the tenant. Load balancer root certificate (to be provided by tenant administrator) Import into the keystore of the sender system. This is the user under which the customer system is to call the integration platform of SAP HANA Cloud. Is required for the SSL communication step (can be obtained via the URL of the runtime node provided in the tenant mail by SAP). User name and password (to be provided by tenant administrator) Enable the sender to support basic authentication. Outbound (tenant calls receiver) Receiver server root certificate (to be provided by receiver administrator) Is required to enable HTTPS communication with the receiver system (server). Import into the tenant keystore (and deploy the keystore on the tenant). User credentials (to be provided by receiver administrator) These are the user credentials under which the tenant is to call the receiver system. Define the User Credentials artifact (to be deployed on the tenant). Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 13

Security Option Direction Required by tenant administrator to do the following Required by sender/receiver administrator to do the following HTTPS certificate-based Inbound (sender calls tenant) Sender client root certificate (to be provided by sender administrator) Check whether the CA the customer system used to get its client certificate signed is already part of the load balancer (server) keystore. Load balancer server root certificate (to be provided by tenant administrator) Import into client PSE of the sender system. Sender client certificate (to be provided by sender administrator) Configure the authorization check in the integration flow. List of trusted root certificates supported by load balancer (to be provided by tenant administrator) Select a certification authority from the list for the certificate signing request for the client certificate. Outbound (tenant calls receiver) Receiver server root certificate (to be provided by receiver administrator) Import into tenant keystore (if not already there). Tenant client root certificate (to be provided by tenant administrator) Import into the server PSE of the receiver system. Tenant client certificate (to be provided by tenant administrator) Define the client certificate-to-user mapping for the configuration of authorization checks. SFTP Outbound (tenant as SFTP client sends a request to an SFTP server) SFTP server (receiver) public key (to be provided by SFTP server (receiver) administrator) Is required by tenant to check whether SFTP server can be trusted. Add to known_hosts file (to be deployed as Known Hosts artifact on tenant). Tenant public key (to be provided by tenant administrator) Is used to authenticate tenant as a trusted SFTP client on the SFTP server side. Add to authorized_keys file on the SFTP server side. 14 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

Related Information Security Elements for Basic Authentication [page 15] Security Elements for Certificate-Based Authentication [page 17] Security Elements for SFTP [page 21] 4.1.1 Security Elements for Basic Authentication Basic authentication can be configured for both inbound and outbound message processing. General Information In general, basic authentication requires fewer security configuration tasks than certificate-based authentication. However, it is necessary to use server certificates in specific steps within the connection setup as explained below (in both outbound and inbound communication use cases). Outbound Message Processing The following figure provides an overview of the involved keystores and certificates. Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 15

Inbound Message Processing To enable the customer back end to authenticate itself against SAP HCI with basic authentication, a communication user has to be created for the back end. An SCN (dialog) user of the customer has to be reused as the communication user. The following figure provides an overview of the involved keystores and certificates. Related Information How Basic Authentication Works [page 75] 16 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

4.1.2 Security Elements for Certificate-Based Authentication There is the option to use SSL-based transport-level security based on X.509 certificates. This authentication option can be configured for both inbound and outbound message processing. Outbound Message Processing The following figure provides an overview of the involved keystores and certificates. Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 17

Table 6: Certificates for Outbound Message Processing Keystore Certificate Description Keystore (tenant-specific) Tenant client certificate This certificate is required to authenticate the tenant when calling the receiver system as client. The certificate contains the public and private key and has the certificate chain assigned. Note In many cases, there is a multi-level setup of CAs so that a certificate is signed by an intermediate CA. The trustability of the intermediate CA is guaranteed by another intermediate CA one level higher, and so on, up to the root CA at the top of the certificate chain. In this case, it is best practice to assign the certificate chain to the certificate, to enable the connected component (which has imported only the root CA into its keystore) to evaluate the chain of trust. The keystore is deployed on the tenant. Receiver server root certificate This certificate is required to identify the root CA that is at the top of the certificate chain that finally guarantees the trustability of the receiver server certificate. Receiver keystore Receiver server certificate (signed by CA with which the tenant has a trust relationship) This certificate is required to identify the receiver (to which the tenant connects as client) as a trusted server. Tenant client root certificate (identifies CA that has signed the tenant client certificate) This certificate is required to identify the root CA that is at the top of the certificate chain that finally guarantees the trustability of the tenant client certificate. Inbound Message Processing An SSL connection initiated by a sender is terminated by a component interconnected between the sender system and the tenant. This component is the load balancer. Therefore, for inbound SSL connections, senders have to authenticate against this load balancer component, and the keystore of the load balancer (rather than the tenant keystore) comes into play. 18 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

The following figure provides an overview of the involved keystores and certificates. Table 7: Certificates for Inbound Message Processing Keystore Certificate Description Sender keystore Sender client certificate (public and private key; signed by CA with which the tenant has a trust relationship) This certificate is required for certificate-based authentication where the sender acts as the client. On the tenant side, this certificate is required to configure the authorization check. Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 19

Keystore Certificate Description Load balancer server root certificate (identifies CA that has signed the load balancer server certificate) This certificate is required to identify the root CA at the top of the certificate chain that finally guarantees the trustability of the load balancer server certificate. In many cases, there is a multi-level setup of CAs so that a certificate is signed by an intermediate CA. The trustability of the intermediate CA is guaranteed by another intermediate CA one level higher, and so on, up to the root CA at the top of the certificate chain. In this case, it is best practice to assign the certificate chain to the certificate, to enable the connected component (which has imported only the root CA into its keystore) to evaluate the chain of trust. Load balancer keystore Load balancer server certificate This certificate is required to identify the load balancer as a trusted server (that clients like the sender system can connect to). Sender client root certificate This certificate is required to identify the root CA that is at the top of the certificate chain that finally guarantees the trustability of the sender client certificate. There is a list of CAs that are supported by the load balancer. If the sender (customer) uses a CA that is not listed, the customer has to ask SAP to update the load balancer keystore accordingly. Related Information How Certificate-Based Authentication Works [page 77] Certificate Chains [page 78] 20 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

4.1.3 Security Elements for SFTP To connect to a tenant, the customer has the option of using the SSH File Transfer Protocol (SFTP). A tenant can connect as an SFTP client to an SFTP server (the latter either hosted at SAP or in the customer landscape). The following figure shows the basic setup of components used for SFTP. In a scenario using SFTP, an SFTP client connects to an SFTP server in order to perform one of the following tasks: SFTP client writes (pushes) a file to a file directory on an SFTP server. SFTP client reads (pulls) data from the SFTP server. Typically the SFTP client periodically reads files from the SFTP server. Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 21

For an SFTP client connected to an SFTP server, the following artifacts have to be generated and stored at the locations summarized in the following table. The table also points out which artifacts need to be exchanged between the client and the server (during the onboarding process): Table 8: SFTP Client Side Public keys of all connected SFTP servers A public key is used in order to authenticate the SFTP server (as known host) on the SFTP client side. Public keys of all connected SFTP servers are stored in a <known_hosts> file on the client side. Note The <known_hosts> file contains the public keys and addresses of the trusted SFTP servers. The client checks if the server is a trusted participant by evaluating a <known_hosts> file on the client side: If the server's public key is listed there, the identity of the server is confirmed. SFTP Server Side Public keys of all connected SFTP clients (used in order to authenticate the SFTP clients on the SFTP server side) This file has to be stored in an <authorized_keys> file on the SFTP server. Note Generating this public key is the task of the expert that hosts the SFTP client. Note Generating the public key of the SFTP server is the task of the expert that hosts the SFTP server. Private key of SFTP client (is stored on client) Note The private key of the SFTP client can be either an RSA private key file or a DSA private key file. The private key (together with its associated public key) has to be stored in a keystore. Private key of SFTP server (is stored on server) Note Generating this public key is the task of the expert that hosts the SFTP server. Note Generating this private key is the task of the expert that hosts the SFTP client. Related Information How SFTP Works [page 81] 22 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

4.2 Security Elements (Message-Level Security) The configuration of secure message exchange requires the exchange of public keys (or other security-related information) between the involved parties. Each message-level security option requires a specific set of keys to be exchanged. The following tables provide a summary of how the required security elements (in bold letters) have to be distributed among the involved components (tenant and sender/receiver systems). Table 9: Message-Level Security Security Option/Standard Direction Protection Method on Tenant Required by tenant administrator to do the following Required by sender/ receiver administrator to do the following PKCS#7, WS- Security, XML Digital Signature (uses X. 509 certificates) XML Digital Signature: only sign/encrypt Inbound (sender calls tenant) Decrypt Tenant public key certificate (to be provided by tenant administrator) Is used to encrypt the message from the sender (that is to be encrypted by the tenant). Import into sender keystore Verify Sender public key certificate (to be provided by sender administrator) Import into tenant keystore. Is used by the tenant to verify the signature of the message sent from the sender system. Outbound (tenant calls receiver) Encrypt Receiver public key certificate (to be provided by receiver administrator) Import into tenant keystore. Is used by the tenant to encrypt the message (sent to the receiver). Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 23

Security Option/Standard Direction Protection Method on Tenant Required by tenant administrator to do the following Required by sender/ receiver administrator to do the following Sign Tenant public key certificate (to be provided by tenant administrator) Import into receiver keystore Is used by the receiver to verify the message sent from the tenant. OpenPGP (uses PGP keys) Inbound (sender calls tenant) Decrypt Tenant public key (to be provided by tenant administrator) Import into sender PGP public keyring Is used to encrypt the message from the sender (that is to be encrypted by the tenant). To make sure that the public key originates from the correct source and that it has not been changed on its way, consider the note below this table. 24 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

Security Option/Standard Direction Protection Method on Tenant Required by tenant administrator to do the following Required by sender/ receiver administrator to do the following Verify Sender public key (to be provided by sender administrator) Import into tenant PGP public keyring. Is used by the tenant to verify the signature of the message sent from the sender system. To make sure that the public key originates from the correct source and that it has not been changed on its way, consider the note below this table. Outbound (tenant calls receiver) Encrypt Receiver public key (to be provided by receiver administrator) Import into tenant PGP public keyring. Is used by the tenant to encrypt the message (sent to the receiver). To make sure that the public key originates from the correct source and that it has not been changed on its way, consider the note below this table. Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 25

Security Option/Standard Direction Protection Method on Tenant Required by tenant administrator to do the following Required by sender/ receiver administrator to do the following Sign Tenant public key (to be provided by tenant administrator) Import into receiver PGP public keyring Is used by the receiver to verify the message sent from the tenant. To make sure that the public key originates from the correct source and that it has not been changed on its way, consider the note below this table. Note Relevant for the SAP-managed operating model: When exchanging public PGP keys, note the following: To ensure that the information originates from the correct source and that it has not been changed on its way, the key should be exchanged using a secure channel (for example, encrypted e-mail). If a secure channel is not available, the person who receives the public key from the key owner has to verify the fingerprint of the public key. One option is to phone the owner of the public key and compare the fingerprint. Related Information Security Elements for Message-Level Security [page 27] 26 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

4.2.1 Security Elements for Message-Level Security Message-level security is based on asymmetric key technology, where private keys are used to sign or decrypt messages and public keys are used to verify and encrypt messages. In addition to setting up a secure transport channel (using SSL or SFTP), you have the option to protect the message by applying digital signing or encryption. Asymmetric key technology is used in the following way to implement these features: Private keys are always used in the following cases: By a sender to sign a message By a receiver to decrypt a message (that has been encrypted by a sender) Public keys are always used in the following cases: By a receiver to verify a message (signed by a sender) By a sender to encrypt a message To implement message-level security, X.509 certificates are used. Note However, note that different keys are usually used for message-level security and SSL transport-level security. This section provides an overview of the required keys for both communication directions. The relevant steps for specifying the message-level security features (sign, verify, encrypt, and decrypt) on the tenant side are configured in the corresponding integration flow (as integration flow steps). Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 27

Outbound Communication The following figure provides an overview of the required certificates/keys for outbound communication: 28 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

Inbound Communication The following figure provides an overview of the required certificates/keys for inbound communication: Related Information How PKCS#7 Works [page 84] How XML Signature Works [page 86] How WS-Security Works [page 88] How OpenPGP Works [page 89] 4.3 How Security Artifacts Are Related to Integration Flow Configuration To specify the security-related aspects of the message flow, certain settings have to be made in the involved integration flows. These security settings are related to the security artifact deployed on the involved tenant. The following example gives you an idea of how security artifacts and integration flow settings are related to each other: In order to specify in detail how a message is to be digitally encrypted, you need to define an Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 29

Encryptor step in the relevant integration flow. At runtime, this Encryptor step needs to access the required public key to encrypt the message content. The public key itself has to be available in the keystore that is deployed on the involved tenant. This section summarizes the following information for each security option: The required security artifact type (to be deployed on the tenant) The required step or adapter type (relevant for the related integration flow design) Table 10: Transport-Level Security Key Types Transport-Level Security Key Type Artifact Type (to Deploy on Tenant) Integration Flow Step/ Adapter Type HTTPS - Basic Authentication User credentials (user name and password) User Credentials SOAP adapter, IDoc adapter, HTTP adapter, SuccessFactors adapter HTTPS (SSL) - Certificate-Based Authentication X.509 certificates Keystore SOAP adapter, IDoc adapter, HTTP adapter, SuccessFactors adapter SFTP (SSH) SFTP key and known_hosts Keystore SFTP adapter Known Hosts Table 11: Message-Level Security Key Types Message-Level Security Key Type Artifact Type (to Deploy on Tenant) Integration Flow PKCS#7 XML Digital Signature X.509 certificates This is the same key type as used when setting up HTTPS-based transport-level security. Keystore Signer, Encryptor, Verifier, Decryptor Signer, Encryptor, Verifier, Decryptor WS-Security When setting up the security level for a tenant, you can use the same keystore for transport-level security keys (if you are setting up HTTPS-based communication) and for message-level security keys. Note, however, that we recommend using different keys for transport-level and message-level security. SOAP adapter (SOAP 1.x) OpenPGP PGP public keys and PGP secret keys PGP public keyring PGP secret keyring Signer, Encryptor, Verifier, Decryptor The following figure illustrates the overall setup with regard to the tenant (for a situation where a keystore containing a public-private key pair is deployed on the tenant as a security artifact). 30 2015 SAP SE or an SAP affiliate company. All rights reserved. Security Elements

Security Elements 2015 SAP SE or an SAP affiliate company. All rights reserved. 31

5 Setting Up a Test HTTPS Connection (Basic Authentication) To set up a test connection between the customer system and the tenant, you can use the basic authentication option. Related Information Security Elements for Basic Authentication [page 15] Setting Up Basic Authentication (Inbound) [page 32] Setting Up Basic Authentication (Outbound) [page 33] 5.1 Setting Up Basic Authentication (Inbound) To enable a customer system to send messages to a tenant using basic authentication, the key tasks are to configure the involved customer system and the load balancer (that controls inbound processing at SAP), and to design the related integration flow. SAP provides the tenant and cluster and configures the system to accept inbound messages authenticated through user credentials. The customer is responsible for the corresponding configuration tasks in the customer system. The sequence of steps is identical for both operating models. Process You - the customer - must have received the mail from SAP containing the information about your tenants. To enable a customer system to send a message to the tenant, do the following: 1. Go to SAP Community Network (SCN: http://scn.sap.com/ ) and request a user. To enable the customer system for authentication based on user credentials, a communication user has to be created for the customer system. SCN users are used for this purpose. You are therefore asked to request a dialog user in SCN and you use this dialog user for the communication between the customer system and the tenant. 2. Provide SAP with the user name (from step 1). This user has to be granted the required authorization on the SAP side. 3. Configure the customer system (that is to send messages to the tenant) to support basic authentication. The details of the steps depend on the kind of system you are using. 32 2015 SAP SE or an SAP affiliate company. All rights reserved. Setting Up a Test HTTPS Connection (Basic Authentication)

Make sure that the message sent from the customer system to the tenant contains the communication user (from step 1) in the message header. Make sure that the keystore of the customer system contains the load balancer root certificate. The load balancer authenticates itself as the server against the customer system using an SSL certificate. This additional security measure is required to protect the user credentials of the customer system during communication when the customer system calls the tenant. Related Information Security Elements for Basic Authentication [page 15] Configuring a Tenant to Support HTTPS/Basic Authentication (Inbound) [page 39] 5.2 Setting Up Basic Authentication (Outbound) To enable the tenant to send a message to the customer system using basic authentication, the key tasks are to configure the involved customer system and the tenant (that is responsible for outbound messaging), and to design the related integration flow. SAP provides the tenant and cluster. The customer is responsible for the corresponding configuration tasks in the customer system. The following steps depend on the applied operating model: In the SAP-managed operating model, SAP also enables the tenant to send messages to a customer system using the basic authentication option and designs the integration flows. In the customer-managed operating model, the customer enables the tenant to send messages to a customer system using the basic authentication option and designs the integration flows. Process for SAP-Managed Operating Model You - the customer - must have received the mail from SAP containing the information about your tenants. To enable the tenant to send a message to the customer system, do the following: 1. In the customer system, create the user under which the tenant is to send messages. 2. Provide SAP with the user (and password) under which the tenant is to send messages. 3. Provide SAP with the customer system server root certificate. SAP requires this artifact to configure the required SSL handshake. Note The customer system authenticates itself as the server against the tenant using an SSL certificate. This additional security measure is required to protect the user credentials of SAP during communication when the tenant calls the customer system. Setting Up a Test HTTPS Connection (Basic Authentication) 2015 SAP SE or an SAP affiliate company. All rights reserved. 33

Process for Customer-Managed Operating Model You - the customer - must have received the mail from SAP containing the information about your tenants. To enable the tenant to send a message to the customer system, do the following: 1. In the customer system, create the user under which the tenant is to send messages. 2. Enable the tenant to support outbound basic authentication. To do this, proceed as follows: 1. Create and deploy the required User Credentials artifact on the tenant. To do this, use the Integration Operations feature. For this step, you need the credentials of the customer system. 2. To enable the required certificate-based authentication of the customer system as the server, create a tenant keystore, import the customer system server root certificate, and deploy the keystore on the tenant. 3. In the related integration flow, open the related receiver channel, select Connect Using Basic Authentication, and enter the credential name. This is the name of the User Credentials artifact deployed on the corresponding tenant. This artifact contains the required information (user name and password). Related Information Security Elements for Basic Authentication [page 15] Configuring a Tenant to Support HTTPS/Basic Authentication (Outbound) [page 39] 34 2015 SAP SE or an SAP affiliate company. All rights reserved. Setting Up a Test HTTPS Connection (Basic Authentication)

6 Setting Up an HTTPS Connection (Certificate-Based Authentication) For productive scenarios based on the HTTPS transport protocol, it is mandatory to use certificate-based authentication. Related Information Security Elements for Certificate-Based Authentication [page 17] Setting Up Certificate-Based Authentication (Inbound) [page 35] Setting Up Certificate-Based Authentication (Outbound) [page 36] 6.1 Setting Up Certificate-Based Authentication (Inbound) To set up certificate-based authentication through HTTPS, the key tasks are to configure the customer system keystore and to enable the load balancer to accept inbound calls using this authentication option. SAP provides the tenant and tenant cluster and configures the load balancer. The customer is responsible for the corresponding configuration tasks related to the customer system. The sequence of steps is identical for both operating models. Process The following prerequisites must be met: You - the customer - have received the mail from SAP containing the information about your tenants. You have been provided with a list of trusted root certificates supported by the load balancer. To enable a customer system to send messages to the tenant, do the following: 1. Configure the customer system to support certificate-based authentication (as the client). This includes the following tasks: 1. Set up the client PSE and generate the client certificate (key pair). 2. Create the certificate signing request (CSR) for the client certificate. 3. Send the CSR to a certification authority to get the client certificate signed. Make sure that you use a certification authority that is also listed in the keystore of the load balancer. 4. Import the load balancer root certificate into the client PSE. Setting Up an HTTPS Connection (Certificate-Based Authentication) 2015 SAP SE or an SAP affiliate company. All rights reserved. 35

5. Configure the Web service consumer (logical port). 2. SAP configures the load balancer so that it supports certificate-based authentication of inbound messages. 3. SAP designs the related integration flow for inbound messaging. Related Information Security Elements for Certificate-Based Authentication [page 17] Configuring a Tenant to Support HTTPS/Certificate-Based Authentication (Inbound) [page 40] Load Balancer Root Certificates Supported by SAP [page 79] 6.2 Setting Up Certificate-Based Authentication (Outbound) To set up certificate-based authentication for HTTPS, the key tasks are to configure the customer system keystore and to enable the tenant to send messages using this authentication option. SAP provides the tenant and tenant cluster. The customer is responsible for the corresponding configuration tasks related to the customer system. Process for SAP-Managed Operating Model The following prerequisites must be met: You - the customer - have received the mail from SAP containing the information about your tenants. You have been provided with the tenant client root certificate and the tenant client certificate. To enable a customer system to send a message to the tenant, do the following: 1. Configure the customer system to support certificate-based authentication (outbound with regard to the tenant). This includes the following tasks: 1. Set up the server PSE. In particular, make sure that you import the tenant client root certificate into the server PSE. 2. Configure user mapping. As messages from the tenant have to run under a technical user, the corresponding user mapping has to be configured in the back-end system, transaction SM30, table VUSREXTID. You use the tenant client certificate for this purpose. 3. Configure the WS Provider endpoint (customer system as Web service provider). 2. Provide the following information to SAP: WSDL of endpoint and customer server root certificate. 3. SAP updates the tenant client keystore with the customer server root certificate and redeploys the keystore. 36 2015 SAP SE or an SAP affiliate company. All rights reserved. Setting Up an HTTPS Connection (Certificate-Based Authentication)

4. SAP designs the related integration flow for outbound messaging. Process for Customer-Managed Operating Model The following prerequisites must be met: You - the customer - have received the mail from SAP containing the information about your tenants. To enable a customer system to send a message to the tenant, do the following: 1. Configure the customer system to support certificate-based authentication (outbound with regard to the tenant). This includes the following tasks: 1. Set up the server PSE. In particular, make sure that you import the tenant client root certificate into the server PSE. 2. Configure user mapping. As messages from the tenant have to run under a technical user, the corresponding user mapping has to be configured in the back-end system, transaction SM30, table VUSREXTID. You use the tenant client certificate for this purpose. 3. Configure the WS Provider endpoint (customer system as Web service provider). 2. Configure the tenant to support certificate-based authentication (outbound). This includes the following tasks: 1. Create the tenant (client) keystore. 2. Create the certificate signing request (CSR). 3. Request the signed certificate from the certification authority (CA). 4. Import the signed certificate into the tenant client keystore. 5. Import the customer system server root certificate into the tenant client keystore. 6. Export the tenant public key. 3. Update the tenant client keystore with this certificate (if it is not yet there). Import the server root certificate from the customer's receiver system into the tenant client keystore. 4. Design the related integration flow for outbound messaging. Related Information Configuring a Tenant to Support HTTPS/Certificate-Based Authentication (Outbound) [page 41] Load Balancer Root Certificates Supported by SAP [page 79] Security Elements for Certificate-Based Authentication [page 17] Setting Up an HTTPS Connection (Certificate-Based Authentication) 2015 SAP SE or an SAP affiliate company. All rights reserved. 37

7 Steps in Detail 7.1 Configuring a Tenant to Support Secure Messaging There are different options to set up a secure connection between a tenant and other components and to enable secure message exchange with these components. On the level of the transport protocol, you can set up communication based on both SSL and SFTP. In addition to that, you can protect the content of messages exchanged through these protocols by digital encryption and signature. Transport Level Security You can use different secure transport protocols to protect the communication on transport level. These protocols come along with certain authentication methods. Message Level Security On top of the selected transport protocol there is the option to protect the content of the exchanged messages. Message level security features allow you to digitally encrypt/decrypt or sign/verify a message (or both). Related Information Configuring a Tenant to Support HTTPS/Basic Authentication (Outbound) [page 39] Configuring a Tenant to Support HTTPS/Basic Authentication (Inbound) [page 39] Configuring a Tenant to Support HTTPS/Certificate-Based Authentication (Outbound) [page 41] Configuring a Tenant to Support HTTPS/Certificate-Based Authentication (Inbound) [page 40] Configuring Message Level Security [page 52] 7.1.1 Configuring a Tenant to Support HTTPS 38 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

7.1.1.1 Configuring a Tenant to Support HTTPS/Basic Authentication (Inbound) To configure a tenant to accept calls (from sender systems) using the basic authentication option, SAP has to perform several configuration steps to make the SAP Cloud platform accepting inbound basic authentication. In addition to that, one certificate-based authentication step has to be configured. Context These steps are performed by SAP. Next Steps On the other side of the communication, the customer back-end system must contain the load balancer server root certificate in its client keystore. Related Information Security Elements for Basic Authentication [page 15] Load Balancer Root Certificates Supported by SAP [page 79] 7.1.1.2 Configuring a Tenant to Support HTTPS/Basic Authentication (Outbound) To configure a tenant to call a receiver system using basic authentication (based on user credentials), the corresponding security artifact has to be created and deployed on the tenant. In addition to this, certificatebased authentication of the customer system as server has to be enabled. Context Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 39

Procedure 1. Start the Integration Operations feature in Eclipse and connect to the tenant. 2. In the Node Explorer position the cursor on the tenant and select Deploy Artifacts... in the context menu. A wizard is started. 3. Select the Basic Authentication artifact type and proceed ad explained in the wizard. During that step, you create user credentials (basically: user and password) for the tenant to call a (receiver) back-end system and authenticate itself to the back-end system with these credentials. Depending on the type of the connected customer system, additional attributes might be required (as explained in the wizard). 4. To enable the required certificate-based authentication of the customer system as server, perform the following step: a. Create a keystore as explained for certificate-based outbound authentication. b. Import the customer system server root certificate into the keystore. c. Deploy the keystore on the tenant. Note On the other side of communication, the related keystore of the customer system has to contain the server root certificate (the complete certificate chain). Related Information Security Elements for Basic Authentication [page 15] 7.1.1.3 Configuring a Tenant to Support HTTPS/ Certificate-Based Authentication (Inbound) To configure a tenant to accept calls (from sender systems) using the certificate-based authentication option, SAP has to perform several configuration steps to make the SAP Cloud platform accepting inbound certificate-based authentication. Context The security configuration of the inbound processing is in the responsibility of SAP. The related load balancer server keystore needs to contain the customer client root certificate (which identifies the CA that has signed the customer client certificate). The load balancer server keystore is already set up in a way that it contains a number of supported CAs. Only in case the customer works with a CA not contained in that list, SAP has to be asked to import the additional CA into the load balancer server keystore. 40 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

In addition to that, SAP has to configure the load balancer virtual server that way that it accepts calls (from sender back-end systems) using the certificate-based authentication option. 7.1.1.4 Configuring a Tenant to Support HTTPS/ Certificate-Based Authentication (Outbound) To configure a tenant to support certificate-based authentication, keystores have to be set up that obtain a specific set of certificates. Context The following keystores and certificates are required at this step of the onboarding process to enable the tenant for certificate-based outbound communication: The tenant client keystore (which will be deployed on the tenant) must contain the following certificates: Table 12: Certificates for Outbound Communication Certificate Tenant client certificate Description This certificate is created during keystore creation as explained in the section below. It contains both the public and the private key. After keystore creation, the certificate is self-signed, but it has to be signed by a CA with which both the tenant and the customer system have a trust relationship. Therefore, a certificate signing request (CSR) has to be created and sent to the CA to obtain a signed tenant client certificate from the CA. The signed certificate then has to be imported into the tenant client keystore. In many cases, there is a multi-level setup of CAs so that a certificate is signed by an intermediate CA. The trustability of the intermediate CA is guaranteed by another intermediate CA one level higher, and so on, up to the root CA at the top of the certificate chain. In this case, it is best practice to assign the certificate chain to the certificate, to enable the connected component (which has imported only the root CA into its keystore) to evaluate the chain of trust. Customer server root certificate (from the CA that has signed the customer server certificate) This certificate has to be imported into the tenant client keystore. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 41

Note This section focuses on the configuration of the certificate-based authentication option for outbound message processing with regard to the tenant: The tenant sends a message to a (receiver) customer system and authenticates itself based on SSL certificates. Procedure 1. Generate the tenant client keystore used for outbound communication. The tenant client keystore is physically one file. It contains the private key and the associated public key client certificate (as well as all intermediate certificates of the certificate chain) used to authenticate the client - the tenant in this case - when calling the server (the customer system). 2. Initiate a certificate signing request. The client certificate initially created is self-signed (owner and issuer are identical) and therefore needs to be signed by a certification authority (CA). To initiate this step, create a certificate signing request (CSR). Generate the CSR to have the recommended CA sign the certificate. 3. Request a signed certificate from a CA. Once you have performed this step, the CA sends back the signed certificate. 4. Import the signed client certificate into the keystore (and the intermediate certificates of the certificate chain). 5. Import the server root certificate from the customer's back-end (receiver) system into the tenant client keystore. 6. Export the public key from the tenant client keystore. This public key is required to configure the customer's back-end system (that is to be connected to the tenant). 7. Deploy the tenant client keystore on the tenant. Related Information Security Elements for Certificate-Based Authentication [page 17] Setting Up the Tenant Client Keystore [page 43] Creating a Certificate Signing Request [page 46] Requesting a Signed Certificate from a Certification Authority [page 48] Importing the Tenant Client Certificate Chain into the Keystore [page 49] Importing the Server Root Certificate into the Keystore [page 50] Exporting the Tenant Client Certificate from the Tenant Client Keystore [page 51] Deploying the Tenant Keystore [page 52] 42 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

7.1.1.4.1 Setting Up the Tenant Client Keystore A tenant client keystore is required for each tenant that sends messages to a receiver system (server). It is the storage location for the tenant client certificate. Additionally, the required server root certificates from the connected external systems have to be imported into the tenant client keystore. Prerequisites You have installed the KeyStore Explorer. For the procedure described in this documentation, it is assumed that you are using the KeyStore Explorer. You can download this tool from http://keystore-explorer.sourceforge.net/. Context Procedure 1. Open the KeyStore Explorer and choose New. 2. For type of keystore select JCEKS. JCEKS provides a stronger encryption than JKS. 3. Choose Tools Generate Key Pair. 4. As Algorithm select RSA or DSA, and for Key Size select 2048. 5. Choose OK. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 43

6. For Version select Version 3, and for Signature Algorithm select SHA-256 with RSA. Choose a Validity Period as required for your scenario. 7. Next to the Name field, click Edit Name. 8. In the next dialog, enter the name parts. The information you need to enter depends on who is the owner of the tenant for which the keystore and the contained client certificate are being generated. Enter the relevant information to identify your tenant as the owner of the certificate. Password Common Name (CN) Enter a meaningful common name of your choice. Organizational Unit (OU) Enter a short name for your (the customer's) organizational unit. Organization Name (O) Enter a short name for your (the customer's) organization. Locality Name (L) Enter the name of your (the customer's) location. State Name (ST) Enter the name of your (the customer's) state. Country (C) Enter the name of your (the customer's) country. You do not need to make an entry for the Email (E) field. 9. Choose OK. 10. Enter a key alias. When creating SSH keys (for SFTP), enter one the following kay aliases. Option id_rsa Description When you have selected RSA as Algorithm. 44 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Option id_dsa Description When you have selected DSA as Algorithm. 11. Choose OK. 12. Enter (and repeat) the keystore password. You need a password to protect the private key. Note There is the option to specify different passwords to protect a private key and to protect the keystore as a whole. To set up a tenant client keystore, it is mandatory that identical passwords are used. Note When you specify the password, follow the password rules as described in a separate topic. 13. The key pair has been generated successfully. 14. When you save the keystore for the first time, you have to specify the keystore password. Use the same password as for the protection of the private key. 15. When you save the keystore, enter.jks as the file extension. Results The client certificate created initially is self-signed (owner and issuer are identical) and therefore needs to be signed by a certification authority (CA). To initiate this step, create a certificate signing request (CSR). The CA sends back the signed certificate, and you can then update your keystore accordingly. Next Steps When you import an existing key pair into the keystore, and you have the choice among different files with different Key Pair Type, we recommend to choose the option PKCS #12 (in case one key pair file corresponding to this format is available). This format contains the certificate in addition to the private key. If you choose one of the other Key Pair Types, the certificate has to be specified separately. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 45

Related Information Requirements for Keystore Passwords [page 79] 7.1.1.4.2 Creating a Certificate Signing Request When a certificate is originally created, it is self-signed and has to be signed by a certification authority (CA) prior to being used for productive scenarios. To get a certificate signed by a CA, you first need to create a certificate signing request. Context To generate a certificate signing request (CSR), perform the following steps: Procedure 1. Open the keystore using the KeyStore Explorer. 2. To create a certificate signing request (CSR), select the certificate and, in the context menu, choose Generate CSR. 3. Specify the details for the CSR. Specify the following mandatory settings: Option Description Format PKCS # 10 46 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Option Signature Algorithm CSR File Description Select the recommended algorithm. Specify the name and location of the CSR file. The other settings (Challenge, Optional Company Name, Add certificate extensions to request) are optional. 4. A file with file extension.csr is generated (by default, the file name corresponds to the Common Name of the certificate). Additional background information: The Base64-encoded.csr file content looks like this: To display the decoded content of the CSR, choose ExamineExamine CSR. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 47

Results You have created a certificate signing request (CSR) and saved it on your computer. The next step is to send the CSR to a certification authority to get a signed certificate. 7.1.1.4.3 Requesting a Signed Certificate from a Certification Authority To enable the tenant to communicate as client with the customer system, you have to import a client certificate to the tenant client keystore. This certificate has to be signed by a certification authority (CA). Prerequisites You have created a certificate signing request (CSR). Using this CSR, you request a signed certificate from a certification authority (CA). The following CA is used: Verizon. Context Note that usually only authorized people can directly order a signed certificate from a CA as costs are involved. Procedure 1. Go to the website of Verizon at https://secure.omniroot.com/omniroot/index.cfm?ra_id=2144. 2. Select Verizon Public SureServer SSL G14-SHA2-3 Year and choose Submit a CSR. 3. Either upload your CSR file or paste the text from the CSR into the corresponding field. 4. Select Parse Signing Request. 5. Enter the additional information. 6. Verify the details and then submit the request. 7. You receive an email notification of the confirmation of the order. 8. You receive the signed certificate from the CA. It contains a string that begins with -----BEGIN PKCS7 and ends with -----END PKCS7-----. 9. Copy the content (including the -----BEGIN PKCS7 and -----END PKCS7-----), paste it into a notepad file and save the file the.p7r file format. 10. Double click to check the response. This opens the file in the certificate manager. 48 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

7.1.1.4.4 Importing the Tenant Client Certificate Chain into the Keystore You have to update the keystore by importing the tenant client certificate signed by a CA (CA response). By following a specific procedure, you also make sure that the whole certificate chain for the tenant client certificate is built. Prerequisites You have received the signed client certificate from your CA (also referred to as CA response). Context Note In many cases, there is a multi-level setup of CAs so that a certificate is signed by an intermediate CA. The trustability of the intermediate CA is guaranteed by another intermediate CA one level higher, and so on, up to the root CA at the top of the certificate chain. In this case, it is best practice to assign the certificate chain to the certificate, to enable the connected component (which has imported only the root CA into its keystore) to evaluate the chain of trust. When a tenant connects as a client to a server, the server has to be able to evaluate the chain of trust. To enable the server to do this, the tenant key pair (client certificate) has to contain the certificate chain. Note that you must assign the certificate chain for all newly created tenant key pairs. For old existing tenant key pairs, you do not have to add the certificate chain. Doing so could lead to compatibility issues (receiver system does not expect the certificate chain). You have first to import the tenant client root certificate and the intermediate certificate(s) before you can import the certificate signing response. Procedure 1. Open the keystore using the KeyStore Explorer. 2. Position the cursor on the key pair and choose Import CA Reply in the context menu. 3. Enter the key pair password and select OK. 4. Select the CA response file from your computer. Make sure that you select the.p7r file as created after having received the email from the signing CA. Don t select the.crt file With this measure (selecting the.pr7 file) you make sure that the certificate chain is implicitely assigned to the key pair without all individual intermediate certificates being part of the keystore's certificate list. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 49

Note When the tenant now connects to a server who only sends a certificate which is signed by an intermediate certificate, no trust relationship can be built up (because the intermediate certificate is not part of keystore certificate list). Only the key pair has assigned the whole certificate chain, but no trust relationship can be established on an individual intermediate certificate alone. This mechanism increases the security level of the connection. Related Information Certificate Chains [page 78] 7.1.1.4.5 Importing the Server Root Certificate into the Keystore The server root certificate has to be imported into the tenant client keystore. This certificate is required to identify the root CA that is at the top of the certificate chain that finally guarantees the trustability of the receiver server certificate. Context Procedure To import the server root certificate (from the receiver system), choose Tools Import Trusted Certificate and select the corresponding.crt from your computer. You must have received this file from the receiver administrator. 50 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

7.1.1.4.6 Exporting the Tenant Client Certificate from the Tenant Client Keystore To configure SSL and the required user mapping in the customer system, the customer needs the tenant client certificate (which contains the public key). Context To make the tenant client certificate available to the customer, you have to export it from the tenant client keystore first. Procedure 1. To do this, open the keystore using the KeyStore Explorer. 2. Select the key pair (certificate). 3. In the context menu, choose Export Certificate Chain. In the next dialog, the following settings are preselected: Option Export Length Description Head Only Keep this setting. It makes sure that only the certificate that contains the public key of the key pair is exported. Export Format X.509 Keep this setting. PEM Is selected. This setting makes sure that the exported file is Base64-encoded. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 51

4. For Export File, specify the file path for storing the exported certificate. 5. Choose Export. Results The file containing the public key is saved on your computer. 7.1.1.4.7 Deploying the Tenant Keystore To activate the keystore content for the runtime, you need to deploy it on the corresponding tenant first. Prerequisites To deploy the keystore, open Eclipse and choose the Integration Operations perspective. Context Perform the following steps: Procedure 1. Open the Integration Operations perspective. 2. In the Node Explorer, position the cursor on the tenant. 3. In the context menu, choose Deploy Artifact... 4. Select Keystore and choose Next. 5. Follow the instructions in the help topic (to open it, click the question mark icon). 7.1.2 Configuring Message Level Security 52 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

7.1.2.1 Creating OpenPGP Keys for the Tenant You use the tool gpg4win to create the required keys for the usage of OpenPGP. This section covers the creation of OpenPGP keys for tenants managed by SAP. This description does not apply to tenants managed by customers. Customers might have their own OpenPGP key management processes. The OpenPGP keys are maintained on the Windows VM on which the keys of the X.509 certificates are also maintained. The kind of keys required depends on the use case and the role of the tenant for which the keys are created. The following table lists the possible use cases and the required kinds of keys. Note As soon as you start gpg4win, files are created for the PGP Public Keyring and PGP Secret Keyring. Table 13: OpenPGP Keys for the Tenant Role of Tenant Sender (outbound communication) Receiver (inbound communication) Chosen Kind of Message Protection Encrypts outbound payload Encrypts and signs outbound payload Decrypts inbound payload Decrypts and verifies inbound payload Required Keys PGP Public Keyring (contains receiver's public key to encrypt payload) PGP Public Keyring (contains receiver's public key to encrypt payload) PGP Secret Keyring (contains tenant's secret key to sign payload) PGP Secret Keyring (contains tenant's secret key to decrypt payload) PGP Secret Keyring (contains tenant's secret key to decrypt payload) PGP Public Keyring (contains the sender's public key to verify payload) for verifying Related Information How OpenPGP Works [page 89] Creating PGP Keys for Encryption (Tenant Is Sender) [page 54] Creating PGP Keys for Encryption and Signing (Tenant Is Sender) [page 55] Creating PGP Keys for Decryption (Tenant Is Receiver) [page 57] Creating PGP Keys for Decryption and Verifying (Tenant Is Receiver) [page 58] Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 53

7.1.2.1.1 Creating PGP Keys for Encryption (Tenant Is Sender) Prerequisites You have installed gpg4win, created the tenant-specific directory, and created a key pair. Context For this use case, the following key artifact has to be deployed on the tenant: A PGP Public Keyring that contains the receiver s public key (required by the tenant to encrypt the payload) The following figure shows the required entities to be configured for the tenant (on the left). Procedure 1. Obtain the public key from the receiver. We recommend using a secure channel to ensure that the information originates from the correct source and that it has not been changed on its way. A signed email would be suitable, for example. 2. Import the receiver's public key into the PGP Public Keyring. 3. If a secure channel has not been used to obtain the public key from the receiver, verify the fingerprint of the public key. One option is to phone the owner of the public key and compare the fingerprint. 54 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Next Steps Using the Integration Operations feature, you deploy the PGP Public Keyring on the tenant. Related Information Installing gpg4win [page 60] Creating Tenant-Specific File Directories [page 61] Starting the GPA Tool [page 62] Creating a Key Pair [page 64] Importing a Public Key [page 67] 7.1.2.1.2 Creating PGP Keys for Encryption and Signing (Tenant Is Sender) Prerequisites You have installed gpg4win, created the tenant-specific directory, and created a key pair. Context For this use case, the following key artifacts have to be deployed on the tenant: A PGP Secret Keyring that contains the tenant's private key (required by the tenant to sign the payload) A PGP Public Keyring that contains the receiver s public key (required by the tenant to encrypt the payload) The following figure shows the required entities to be configured for the tenant (on the left). Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 55

Procedure 1. Start the GPA tool and create a new key. This action creates a PGP Secret Keyring containing a private/public key pair. 2. Obtain the public key from the receiver. We recommend using a secure channel (for example, encrypted email) for this information exchange. 3. Import the receiver's public key into the PGP Public Keyring. 4. If a secure channel was not used to obtain the public key from the receiver, verify the fingerprint of the public key. 5. Export the public key from the tenant's PGP Public Keyring. 6. Provide the receiver with the public key (ideally through a secure channel). The receiver has to import the tenant's public key into its PGP Public Keyring. Next Steps Using the Integration Operations feature, you deploy the PGP Public Keyring and the PGP Secret Keyring on the tenant. Related Information Installing gpg4win [page 60] Creating Tenant-Specific File Directories [page 61] 56 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Starting the GPA Tool [page 62] Creating a Key Pair [page 64] Importing a Public Key [page 67] Exporting the Public Key [page 66] 7.1.2.1.3 Creating PGP Keys for Decryption (Tenant Is Receiver) Prerequisites You have installed gpg4win, created the tenant-specific directory, and created a key pair. Context For this use case, the following key artifact has to be deployed on the tenant: A PGP Secret Keyring that contains the tenant's private key (required by the tenant to decrypt the payload) The following figure shows the required entities to be configured for the tenant (on the right). Procedure Start the GPA tool and create a new key. This action creates a PGP Secret Keyring containing a private/public key pair. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 57

Next Steps Using the Integration Operations feature, you deploy the PGP Secret Keyring on the tenant. Related Information Installing gpg4win [page 60] Creating Tenant-Specific File Directories [page 61] Starting the GPA Tool [page 62] Creating a Key Pair [page 64] 7.1.2.1.4 Creating PGP Keys for Decryption and Verifying (Tenant Is Receiver) Prerequisites You have installed gpg4win, created the tenant-specific directory, and created a key pair. Context For this use case, the following key artifacts have to be deployed on the tenant: A PGP Public Keyring that contains the sender's public key (required by the tenant to verify the payload obtained from the sender) A PGP Secret Keyring that contains the tenant's private key (required by the tenant to decrypt the payload obtained from the sender) The following figure shows the required entities to be configured for the tenant (on the right). 58 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Procedure 1. Start the GPA tool and create a new key. This action creates a PGP Secret Keyring containing a private/public key pair. 2. Obtain the public key from the sender. We recommend using a secure channel (for example, encrypted email) for this information exchange. 3. Import the sender's public key into the PGP Public Keyring. 4. If a secure channel was not used to obtain the public key from the sender, verify the fingerprint of the public key. 5. Export the public key from the tenant's PGP Public Keyring. 6. Provide the sender with the public key (ideally through a secure channel). The sender has to import the tenant's public key into its PGP Public Keyring. Next Steps Using the Integration Operations feature, you deploy the PGP Public Keyring and the PGP Secret Keyring on the tenant. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 59

Related Information Installing gpg4win [page 60] Creating Tenant-Specific File Directories [page 61] Starting the GPA Tool [page 62] Creating a Key Pair [page 64] Exporting the Public Key [page 66] Importing a Public Key [page 67] 7.1.2.1.5 Using gpg4win to Create PGP Keys 7.1.2.1.5.1 Installing gpg4win We recommend that you use gpg4win to create OpenPGP key material. Context Procedure 1. Download the full version of gpg4win from http://gpg4win.org/download.html. 2. Select the following components: GnuPG (GNU Privacy Guard - a command line tool) GPA (Gnu Privacy Assistant - provides a user interface to create and manage PGP keys) Gpg4win Compendium (contains the documentation of the tool) 60 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

The following figure shows the screen for the installation procedure. 3. Finish the installation procedure. 7.1.2.1.5.2 Creating Tenant-Specific File Directories A PGP Secret Keyring and a PGP Public Keyring have to be maintained for each tenant that uses OpenPGP. The GPA tool cannot maintain several PGP Secret or Public Keyrings at the same time. Therefore, you have to create a separate directory for each tenant, where you have to configure GPA and the launching of GPA separately (otherwise, keys from different tenants will be stored in the same keyring). Context Start Gnu Privacy Assistant (separately for each tenant). Procedure 1. For each tenant (using OpenPGP), create a separate file directory for maintaining the keyrings. 2. Copy the following three files into this file directory: gpa.conf Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 61

gpg.conf run_gpa.bat You can download the files from this page: https://wiki.wdf.sap.corp/wiki/display/avatar/ Documentation+Addendum. Download the following file: GPA_configuration_files.zip. 3. Adapt the file run_gpa.bat by entering the path to the tenant-specific directory. These files are required to configure the usage of the GPA tool. The file run_gpa.bat sets the shell variable GNUPGHOME to the tenant-specific directory. The files gpa.conf and gpg.conf contain configurations for GPA and GPG. The file gpg.conf, for example, determines the strength of the applied encryption. Read the comments in the configuration files for further details. 7.1.2.1.5.3 Starting the GPA Tool Context Procedure Double-click the run_gpa.bat file in the relevant tenant-specific directory. If you start GPA without executing run_gpa.bat, gpa will use the default GNUPGHOME directory. The following figure shows the user interface of the tool. 62 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 63

Next Steps As soon as you have started the GPA tool, the following files are created for the PGP Public Keyring and PGP Secret Keyring: pubring.gpg and secring.gpg (see the following screenshot of the tenant-specific directory after tool launch). These files have to be deployed later on the tenant as PGP Public Keyring and PGP Secret Keyring. 7.1.2.1.5.4 Creating a Key Pair Context OpenPGP provides the option of defining two kinds of keys: primary keys and subkeys. There is no general recommendation for when to use which type. Usually, a primary key is created for certification and signing, and a subkey is created for encryption for each tenant that uses OpenPGP,but this is just a recommendation. Procedure 1. Start the GPA tool (by double-clicking run_gpa.bat in the tenant-specific directory). 2. In the menu, select New New Keys. 3. In the Generate Key dialog, keep the Algorithm and Key Size (RSA, 2048), and specify the following attributes. 64 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

For Name, enter a string according to the following naming convention: <speaking tenant name> <tenant alias>.hci.sap.com For <speaking tenant name>, you can use the name of the company, for example (like Citi). Leave the Email and Comment fields empty. Select Expires and chose a period of 2 years. 4. Choose OK. 5. Enter a password. Note that all private keys in the secret keyring must have the same password. 6. The key is generated. If you select the key entry, more details are displayed. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 65

On the Subkeys tab, the usage of the related subkeys is displayed. 7.1.2.1.5.5 Exporting the Public Key You can export a public key in order to make it available for your communication partner (sender or receiver). Context Procedure 1. Start the GPA tool and select the key that is to be exported. 2. Choose Export. 66 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

3. Select a location on your local disk and specify a file name (extension.pub). 4. Choose Save. Results When you open the public key file with a text editor, it looks like this (example): -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.22 (MingW32) mqenbfn01nobcacn3gcpfgbj1plcvanyq2/owiuwmd1c2zwos+rqnyeclztr3dn/ dkjlbpmi4jwse8ztstrnk90odpaddhwloeuvm61utoa5tndoaa0tpdtldx3zdj7s fin2imkd++trtwhngwzy1uqfzp3oeakmjvedmcz/v55jh0thfhlkbdfksegkprkm +d3tiwd9v2ax2iikf6fmlqywstbi96q078v2noidqpsra2v8qa+boqdaqc1hnb1n 9S1xkj94mk3SlhkhayuM0MPPKI7H/7al5ugOBiyjqAczEGJzpzj6sVYUfFoQREGB AK5+Weekhgpa2n39IHUYTdhleTgMTMXpsgzrABEBAAG0JVBldGVyIEd1dHNjaGUg PHBldGVyLmd1dHNjaGVAc2FwLmNvbT6JATkEEwECACMFAlN01NoCGw8HCwkIBwMC AQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCzSBnHmxBNSeaVB/0TWgHEE74SEZLg1IBW vqgxzczvpgxrh8an+2tqgbvxtz564/uc4u3ruocvdaath76rj9eesaasvnd1zw8k 7C1O7mvg0omX4oPtJy94KbR831HHwiD+yfnml8Eq0STQwUBcHnqTFjiKX6aOg6UX CscWfHC1utlfoK4NI8KAJxFBo37ld7d2moJRJljqcD6bHeCB8Hvl6QzA3cpFTBW/ ns4abvj88sdvn5igm7r64mktmk0iaj6nl958rfj1q2lens8z1wtcbdylss5jxsqb 9XgT =jewk -----END PGP PUBLIC KEY BLOCK----- 7.1.2.1.5.6 Importing a Public Key You can import public keys provided by your communication partner. Context The administrators of the sender or receiver system provide the public keys that need to be imported into the tenant's PGP Public Keyring. Procedure 1. You obtain the public key from the sender or receiver administrator (either by e-mail or by download from a key server). 2. Start the GPA tool and select the key. 3. Choose Import. 4. Browse for the key on your local disk and add it to your keyring. 5. After the import, verify the fingerprint of the imported key. Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 67

This is important because the key could have been tampered with during its transfer from the sender or receiver. The fingerprint is displayed in the GPA tool on the Details tab. One option to verify the correctness of the fingerprint is to contact the sender/receiver administrator by phone or signed e-mail and ask whether the fingerprint is correct. 7.1.2.1.5.7 Using the GNU Privacy Guard Command Line Tool The GNU Privacy Guard command line tool provides additional functions for working with OpenPGP keys. The CPA graphical tool only contains a subset of functions that might be relevant when configuring scenarios using OpenPGP. Some use cases might require you to remove a subkey or add a new subkey. This can only be done with the command line tool. When using the command line tool, make sure that you always specify the tenant home directory in the commands, in order to make changes for a specific tenant. Example: 68 2015 SAP SE or an SAP affiliate company. All rights reserved. Steps in Detail

gpg --homedir=c:/tenantmycompany --edit-key MyCompany This command edits the key in the tenant directory C:/tenantCiti that contains the string Citi in its user ID. To consult the manual for further details, run the command: gpg --help. 7.1.2.2 Creating Keys for the Usage of PKCS#7, XML Digital Signature and WS-Security To set up message level security scenarios based on PKCS#7, XML Digital Signature or WS-Security, the required keys are created in the same way as for transport level security HTTPS. Setting up message level security based on PKCS#7, XML Digital Signature or WS-Security requires the generation of public-private key pairs of type X.509 the same standard as is used for transport level security SSL. Therefore, technically, you can use the same public key pairs for message level and transport level security (HTTPS). Depending on the scenario, however, separate key pairs might be required. Keep in mind that you can set up message level security on top of another transport security (like, for example SFTP). In that case, you in any case have to generate key pairs based on X.509 standard. To generate a new public-private key pair, proceed as described for transport level security SSL. In particular, proceed in the same way as described for the configuration of certificate-based outbound authentication (HTTPS). Note the following in addition: If you have already generated a keystore file and a separate key pair should be used for message level security, you can use the same keystore file, import the certificates required for message level security, and re-deploy the keystore file on the relevant tenant. To implement digital signature, a certificate from the sender is needed (the public key of the sender is required to verify the signature in other words, to decrypt the digest). To implement digital encryption, a certificate from the receiver is needed (the public key of the receiver is required to encrypt the symmetric encryption key). Related Information Message-Level Security [page 81] Configuring a Tenant to Support HTTPS/Certificate-Based Authentication (Outbound) [page 41] Security Elements for Message-Level Security [page 27] Steps in Detail 2015 SAP SE or an SAP affiliate company. All rights reserved. 69

8 Specific Use Cases 8.1 Technical Landscape for On Premise-On Demand Integration As one example for certificate-based connectivity, customer intends to connect a customer-based SAP onpremise system (based on SAP Application Server ABAP with SAP HCI. The following figure illustrates the required keystores and security artifacts for the mentioned landscape. Note We use the following abbreviations in this documentation: AS for SAP Application Server WD for SAP Web Dispatcher HCI for SAP HANA Cloud Integration 70 2015 SAP SE or an SAP affiliate company. All rights reserved. Specific Use Cases

In the proposed system landscape, SAP Web Dispatcher is used in the on premise customer landscape to receive incoming calls from SAP HCI. SAP Web Dispatcher (as reverse proxy) is the entry point for HTTPS requests into the customer system landscape. Communication SAP HCI to SAP Application Server In the proposed landscape, two SSL connections have to be implemented on the way in between HCI and AS, because SAP Web Dispatcher - interconnected in between - terminates all SSL calls from SAP HCI. Therefore, the folowing traust relationships have to be implemented: Trust relationship between SAP Web Dispatcher and SAP HCI. As this connection spans the Internet, it is strongly recommended to use certificates that are signed by a certification authority (CA) that both parties (SAP Web Dispatcher and SAP HCI) trust. Trust relationship between SAP Web Dispatcher and AS. As this connection resides within the customer landscape, it might be an option to use self-signed certificates for this connection. Note For reasons of simplicity, within this guide we assume that self-signed certificates are used for this connection. The following table summarizes the required certificates and the related keystores. Table 14: Keystores Keystore Certificate/Key Description HCI client keystore WD server keystore (SSL server PSE) HCI client certificate (private and public key) WD server root certificate (of the CA that has signed the server certificate) HCI client root certificate Required to authenticate SAP HCI as sender of messages. This security artifact has to be generated at SAP side and contains the public and private key of SAP HCI. The certificate has to be signed by a certification authority (CA) that both SAP (HCI) and the customer (WD) trust. Required to authenticate WD as receiver od messages. This certificate identifies the CA that has signed the WD server certificate. Required to identify SAP HCI as trusted communication partner. This certificate identifies the CA that has signed the HCI client certificate. Specific Use Cases 2015 SAP SE or an SAP affiliate company. All rights reserved. 71

Keystore Certificate/Key Description WD server certificate Required to authenticate WD as trusted communication partner to receive calls. WD client keystore (SSL client PSE) WD client certificate (private and public key) This certificate is signed by the CA to which both WD and HCI have established a trust relationship. Required to authenticate WD as sender of messages. This security artifact has to be generated at customer side and contains the public and private key of the WD. As the related communication path resides within the customer landscape, it might be sufficient to use a self-signed certificate. Note Customers can extend the use case in a way that also this certificate is signed by a CA. This is not covered in this guide. AS server keystore (SSL server PSE) WD client certificate (public key) Required to authenticate WD as sender of messages. This public key has to be imported it into the AS server keystore. Communication SAP Application Server to SAP HCI In the proposed landscape, the SSL connection is not terminiated on the way in between AS and SAP HCI (transparent proxy). Therefore, a trust relationship has to be set up between AS and SAP HCI. As this connection spans the Internet, it is strongly recommended to use certificates that are signed by a certification authority (CA) that both parties (AS and HCI) trust. The following table summarizes the required certificates and the related keystores. 72 2015 SAP SE or an SAP affiliate company. All rights reserved. Specific Use Cases

Table 15: Keystores Keystore Certificate/Key Description AS client keystore AS client certificate (private and public key) HCI server root certificate Required to authenticate AS as sender of messages. This security artifact has to be generated at customer side and contains the public and private key of AS. The certificate has to be signed by a certification authority (CA) that both SAP (HCI) and the customer (AS) trust. Required to authenticate SAP HCI as trusted receiver of messages. This certificate identifies the CA that has signed the HCI server certificate. HCI server keystore AS client root certificate Required to authenticate AS as sender of messages. This certificate identifies the CA that has signed the AS client certificate. This artifact has to be provided by the customer for SAP during the connection setup process, and the expert at SAP side has to import it into the HCI server keystore. HCI server certificate Required to authenticate HCI as trusted communication partner to receive calls. This certificate is signed by the CA to which both AS and HCI have established a trust relationship. You can find more information on this landscape in the Technical Connectivity Guide for SAP Cloud for Travel: at https://service.sap.com/ondemand under SAP Cloud for Travel and Expense. Specific Use Cases 2015 SAP SE or an SAP affiliate company. All rights reserved. 73

9 Concepts of Secure Communication There are several options to protect the message exchange. You can secure the communication on transport level by selecting the HTTPS or SFTP protocol and installing specific authentication methods. In addition to that, you can set up methods to encrypt and decrypt the content of the message and to digitally sign and verify the message. 9.1 HTTPS-Based Communication 9.1.1 Technical Landscape The following figure illustrates the general set up of components and communication paths. 74 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

For inbound SSL communication, a load balancer is interconnected between the sending customer back-end system and the tenant. Load balancer terminates inbound SSL connection (and starts a new one inside the VM landscape of SAP). On the outbound side, a customer-specific tenant is connected to a customer back-end system. Therefore, all security settings for outbound message processing have to be configured tenant-specific. The terms inbound and outbound reflect the perspective of SAP throughout this documentation. Inbound refers to message processing from a customer system to SAP (load balancer). Outbound refers to message processing from SAP (tenant) to a customer system. 9.1.2 How Basic Authentication Works When you have configured this authentication option, the sender authenticates itself against the receiver based on user credentials (username and password). When using basic authentication, consider the following with regard to security: Basic authentication has the risk that authentication credentials, for example, passwords, are sent in clear text. Using SSL as transport-level encryption method makes sure that this information is nevertheless Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 75

encrypted on the transport path. However, the authentication credentials might become visible to SAPinternal administrators at points in the network where SSL is terminated, for example, load balancers. If logging is not done properly at such devices, the authentication credentials might become part of log files. Also network monitoring tools used at such devices might expose the authentication information to administrators. Furthermore, the person to whom the authentication credentials belong (in the example above, the password owner) needs to maintain the password in a secure place. To overcome most of these security risks, it is highly recommended to use certificate-based authentication for productive scenarios. Outbound Message Processing The tenant authenticates to the receiver customer back-end through user and password. Basic authentication for HTTPS-based outbound calls works the following way: 1. The tenant (client) sends a message to the customer back-end system. The HTTP header of the message contains user credentials (name and password). To protect the user credentials during the communication step, the connection is secured using SSL. 2. The customer back-end authenticates itself as server against the tenant using a certificate (the customer back-end identifies itself as trusted server). To support this, the keystore of the customer back-end system must contain a server certificate signed by a certification authority. To be more precise, the keystore must contain the complete certificate chain. On the other side of the communication, the keystore of the connected tenant must contain the customer back-end server root certificate. 3. The tenant is authenticated by the customer back-end by evaluating the credentials against the user stored in a related data base connected to the customer back-end. Inbound Message Processing The customer back-end (client) is authenticated against the tenant through user and password. As prerequisite, a user has to be created on SAP Community Network (SCN). Basic authentication for HTTPS-based inbound calls works the following way: 1. The customer back-end (client) sends a message to the tenant. The HTTP header of the message contains user credentials (name and password). To protect the user credentials during the communication step, the connection is secured using SSL. 2. The load balancer authenticates itself as server against the customer back-end using a certificate (the load balancer identifies itself as trusted server). To enable this, the keystore of the load balancer contains a server certificate signed by a certification authority. To be more precise, the keystore of the load balancer contains a complete certificate chain from (including all intermediate certificates). On the other side of the communication, the keystore of the connected customer back-end system must contain the load balancer server root certificate. That is the certificate that identifies the certification authority (CA) that signed the load balancer s server certificate (on top of the certificate chain). The load balancer keystore is already configured so that it contains this certificate. 76 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

3. Authentication of the customer back-end: The identity of the back-end is checked by SAP evaluating the credentials against the user stored in the SCN database. 4. Authorization check: The permissions of the sending client are checked in a subsequent step according to roles assigned to the user. To enable the customer back-end to authenticate itself against SAP with basic authentication, a communication user has to be created for the back-end. As communication user, an SCN (dialog) user of the customer has to be re-used as communication user. 9.1.3 How Certificate-Based Authentication Works Outbound Message Processing The tenant authenticates to the receiver customer back-end based on a certificate. This authentication option works the following way: 1. The tenant (assigned to the customer) sends a message to the customer system. 2. The customer system authenticates itself (as trusted server) against the tenant when the connection is being set up. In this case, the customer system acts as server and the authentication is based on certificates. 3. Authentication of the tenant: The identity of the tenant is checked by the customer system by evaluating the client certificate chain of the tenant. As prerequisite for this authentication process, the client root certificate of the tenant has to be imported into the customer system keystore (prior to the connection set up). As CA who provides the root certificate, Cyber trust Public Sure Server SV CA is used. Steps 2 and 3 are referred to as mutual SSL Handshake. 4. Authorization check: The permissions of the client (tenant) are checked in a subsequent step by the customer system (not covered in the figure). Inbound Message Processing When a message is sent from an external system to SAP HCI (inbound), the SSL connection is terminated by a component interconnected between the sender (customer) system and the tenant. This component is the load balancer. Therefore, for inbound SSL connections, external systems have to authenticate against this load balancer component and the keystore of the load balancer (rather than the tenant keystore) comes into play. Certificate-based authentication for HTTPS-based inbound calls works the following way: 1. The customer system (as client) sends a message to the tenant. 2. The SAP HANA Cloud load balancer (referred to as load balancer in the following) authenticates itself against the customer system (as trusted server) when the connection is being set up. In this case, load balancer acts as server and the authentication is based on certificates. Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 77

Note The inbound communication is managed using a load balancer. 3. Authentication of the customer system: The identity of the customer system is checked by SAP HCI evaluating the client certificate chain of the customer. As prerequisite for this authentication process, the client root certificate has to be made available for SAP prior to the connection set up. Steps 2 and 3 are referred to as mutual SSL handshake. 4. Authorization check: The permissions of the client (customer system) are checked in a subsequent step. As prerequisite to the authorization check, the distinguished name (DN) of the client certificate of the customer system has to be specified when configuring the relevant integration flow prior to connection set up. 9.1.4 Certificate Chains The trust relationship between a client and a server using SSL authentication is usually based on chain certificates. The key pair used for the SSL handshake is signed by a certification authority (CA). This means that the server can assume that the public key (included in the certificate) provided by the client originates from a trusted source. The certificate that identifies the CA as a trusted participant can itself be signed by a CA at a higher level in the hierarchy. This means that a number of (intermediate) CAs can be arranged behind the actual client certificate. The highest level CA is called the root CA. The following figure shows a certificate chain with two intermediate CAs: We assume that the tenant is connected as a client to an external component (which can be referred to as the server or receiver system). To establish SSL connectivity, the server is provided with the root CA certificate nothing else. To make sure that a trust relationship between client and server can be established nevertheless, the client certificate (of the tenant) used for the SSL handshake has to contain the whole certificate chain. In other words, the client certificate has to include all intermediate CAs (excluding the root CA). This enables the server to evaluate and calculate the whole chain of trust. Therefore, during connection setup (onboarding), the tenant key pair (client certificate) has to be assigned the whole certificate chain. 78 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

The following figure illustrates this situation: 9.1.5 Requirements for Keystore Passwords To protect a keystore, you have to specify a password when creating the keystore. You have to apply the following rules when specifying passwords for keystores: The password must have a minimum length of 8 characters. The password must contain characters of at least three of the following groups: Lower-case Latin characters (a-z) Upper-case Latin characters (A-Z) Base 10 digits (0-9) Non-alphabetic characters (!@#$%...) The password must not contain any characters from outside the standard ASCI table like, for example, German umlaut characters (<ü>). Note Example for password compliant with the above rule: <xb+gku!kjhz> 9.1.6 Load Balancer Root Certificates Supported by SAP To establish a secure connection from a customer system to SAP, the customer system keystore has to contain a client certificate signed by a certification authority (CA). The load balancer that manages inbound Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 79

calls (from the customer system) has to be configured that way that its keystore contains the corresponding root certificate of the same CA that has signed the customer back-end's client certificate. The following certification authorities (CAs) are supported by the load balancer. It is recommended that the customer system uses one of these CAs. Note A certificate signed by a CA is also referred to as root certificate. Addtrust External CA Root Baltimore CyberTrust Root Certum CA Class 3 Public Primary Certification Authority COMODO High-Assurance Secure Server CA Cybertrust Public SureServer SV CA DigiCert Global Root CA DigiCert High Assurance EV Root CA DigiCert Secure Server CA Entrust Certification Authority - L1C Entrust.net Certification Authority (2048) Entrust Root Certification Authority Entrust Root Certification Authority - G2 Equifax Secure Certificate Authority Equifax Secure Certificate GeoTrust Global CA Go Daddy Class 2 Certification Authority Go Daddy Root Certificate Authority - G2 SAP Passport CA SSO_CA TC TrustCenter CA TC TrustCenter Class 2 CA II thawte Primary Root CA thawte SSL CA - G2 thawte Primary Root CA VeriSign Class 1 Public Primary Certification Authority - G3 VeriSign Class 3 International Server CA - G3 VeriSign Class 3 Public Primary Certification Authority - G5 VeriSign Class 3 Secure Server CA - G3 9.2 SFTP-Based Communication 80 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

9.2.1 How SFTP Works A tenant can connect as SFTP client to an SFTP server (the latter either hosted at SAP or in the customer landscape). In a scenario using SFTP, an SFTP client connects to an SFTP server in order to perform one of the following tasks: SFTP client writes (pushes) a file to a file directory on an SFTP server. SFTP client reads (pulls) data from the SFTP server. Typically the SFTP client periodically reads files from the SFTP server. Files are stored on the SFTP server in specific directories referred to as mailboxes. For each mailbox, a user is specified in order to control access to the data. In order to set up secure connection between the SFTP client and SFTP server, a combination of symmetric and asymmetric keys is applied. Symmetric (session) keys are used in order to encrypt and decrypt data within a data transfer session. Asymmetric key pairs (on client and server side) are used in order to encrypt and decrypt the session keys. Symmetric and asymmetric keys are used by a client and a server exchanging data via SFTP in the following way: 1. The client connects to the server. 2. The server sends his public key to the client. 3. The client checks if the server is a trusted participant by evaluating a known_hosts file at client's side: if the server's public key is listed there-in, the identity of the server is confirmed. 4. The client generates a session key (to be used for one data transfer session). 5. The client encrypts the session key with the public key of the server. 6. The client sends the encrypted session key to the server. As public and private key of one party are mathematical correlated with each other, the server can decrypt the session key using its private key. 7. The session can now be continued in an encrypted way. 8. As part of the secure data transfer (using the session key exchanged by the step before), the client sends its public key to the server. 9. The server checks if the public key of the client is known to him (evaluating an authorized_keys file on the server side). 10. The server encrypts a random number with the client's public key and sends it to the client. 11. The client decrypts the random number with its private key and sends the unencrypted random number back to the server. That way, the client authenticates itself on server side. 9.3 Message-Level Security Several standards are supported to protect the message content (message-level security). Message-level security features allow you to digitally encrypt/decrypt or sign/verify a message (or both). The following standards and algorithms are supported. Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 81

Table 16: Message-Level Security Options and Algorithms Secusrity Standard/Option Security Feature Supported Algorithms PKCS#7/CMS Enveloped Data and Signed Data PKCS#7/CMS provides a syntax for data that has cryptography applied to it such as digital signatures or digital encryption. The CMS specification can be found at: http://tools.ietf.org/html/ rfc5652 Digitally signing a message within SAP HANA Cloud Integration is based on the CMS type Signed Data. Digitally encrypting or decrypting the content of a message is based on the CMS type Enveloped Data. PKCS#7/CMS Enveloped Data and Signed Data Basic Digital Signature Option (Simple Signer) Encryption/decryption of message content Signing/verifying payload Encryption/decryption and signing/verifying payload Signing/verifying payload The following algorithms for content encryption (by the symmetric key) are supported (format Cipher/ Operation Mode/Padding Scheme): DESede/CBC/ PKCS5Padding, DES/CBC/PKCS5Padding, AES/CBC/PKCS5Padding, ARCFOUR/ECB/NoPadding, Camellia/CBC/PKCS5Padding, RC2/CBC/ PKCS5Padding, CAST5/CBC/PKCS5Padding. The following algorithms for content signing are supported (digest and encryption algorithm): SHA512/ RSA, SHA384/RSA, SHA256/RSA, SHA224/RSA, SHA/RSA, RIPEMD128/RSA, RIPEMD160/RSA, RI PEMD256/RSA, MD5/RSA, MD2/RSA, RI PEMD160andMGF1/RSA-ISO9796-2-2-3, SHAandMGF1/RSA-ISO9796-2-2-3, SHA256with DSA, SHA224withDSA, SHA/DSA. The generated signature conforms to the CAdES- BES (CMS Advanced Electronic Signatures) signature standard according to the ETSI TS 101 733 V1.7.4 specification published at: http:// www.etsi.org/deliver/etsi_ts/ 101700_101799/101733/01.07.04_60/ ts_101733v010704p.pdf. The following algorithms for content encryption (by the symmetric key) are supported (format Cipher/ Operation Mode/Padding Scheme): DESede/CBC/ PKCS5Padding, DES/CBC/PKCS5Padding, AES/CBC/PKCS5Padding, ARCFOUR/ECB/NoPadding, Camellia/CBC/PKCS5Padding, RC2/CBC/ PKCS5Padding, CAST5/CBC/PKCS5Padding. The signature algorithms: SHA512/RSA, SHA384/ RSA, SHA256/RSA, SHA224/RSA, SHA/RSA, RI PEMD128/RSA, RIPEMD160/RSA, RIPEMD256/ RSA, MD5/RSA This is a subset of the algorithms that are supported for PKCS#7/CMS Enveloped Data and Signed Data. The generated signature does not conform to the CAdES-BES (CMS Advanced Electronic Signatures) signature standard. The following algorithms for content signing are supported (digest and encryption algorithm): SHA512/ RSA, SHA384/RSA, SHA256/RSA, SHA224/RSA, SHA/RSA, RIPEMD128/RSA, RIPEMD160/RSA, RI PEMD256/RSA, MD5/RSA, MD2/RSA, RI PEMD160andMGF1/RSA-ISO9796-2-2-3, SHAandMGF1/RSA-ISO9796-2-2-3, SHA256with DSA, SHA224withDSA, SHA/DSA. 82 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

Secusrity Standard/Option Security Feature Supported Algorithms Open Pretty Good Privacy (PGP) Encryption/decryption of message content The following symmetric key algorithms for content encryption (symmetric key algorithms) are supported: TripleDES (168bit key derived from 192), CAST5 (128 bit key, as per [RFC2144]), Blowfish (128 bit key, 16 rounds), AES with 128, 192, and 256-bit key, Twofish with 256-bit key SAP HCI does not support DES. XML Signature Encryption/decryption and signing/verifying the message Signing/verifying payload The following hash algorithms are also supported for PGP signing: For DSA key: SHA-1, SHA224, SHA256, SHA384, SHA512 For key: MD2, MD5, SHA-1, RIPE-MD/160 "RIPEMD160", SH256, SHA384, SHA512, SHA224 The following signature algorithms are supported when applying XML Signature: DSA/SHA1, RSA/ SHA1, RSA/SHA256, RSA/SHA384, RSA/SHA512 XML Advanced Electronic Signature (XAdES) Supported XAdES forms: XAdES Basic Electronic Signature and XAdES Explicit Policy based Electronic Signature WS-Security Signing payload Signing/verifying SOAP body Encryption/decryption of message content The same signature algorithms like for XML Signature are supported. The default signature algorithm is set by the data in the certificate, that is, one of the following: http:// www.w3.org/2000/09/xmldsig#rsa-sha1 or http:// www.w3.org/2000/09/xmldsig#dsa-sha1. The default signature digest algorithm is: http:// www.w3.org/2000/09/xmldsig#sha1 Strong encryption is supported for the following algorithms: AES/CBC/PKCS5Padding Camellia/CBC/PKCS5Padding For these algorithms, the key lengths 192 and 256 are possible. Recommendations Some algorithms (like MD2, MD5, DES or RC4) are still supported for legacy reasons, but they are not considered secure any more. We recommend that you check the official recommendations from National Institute of Standards and Technology (NIST) or European Union Agency for Network and Information Security (ENISA) for advice on algorithms and key strengths (for example, at: https://www.enisa.europa.eu/ activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report ). Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 83

Related Information Security Elements for Message-Level Security [page 27] How PKCS#7 Works [page 84] How XML Signature Works [page 86] How WS-Security Works [page 88] How OpenPGP Works [page 89] 9.3.1 How PKCS#7 Works You have the option to digitally sign and encrypt message payloads based on PKCS#7/CMS Enveloped Data and Signed Data (PKCS stands for Public Key Cryptography Standards). Signing and Verifying a Message A digital signature ensures the authenticity of a message that way that it guarantees the identity of the signer and that the message was not altered after signing. Digitally signing a message works the following way: 1. The sender calculates out of the message content a digest (or hash value) using a digest algorithm. 2. The sender encrypts the digest using a private key (type RSA or DSA). This is actually the signing step. Note The following algorithms for content signing are supported (digest and encryption algorithm): SHA512/ RSA, SHA384/RSA, SHA256/RSA, SHA224/RSA, SHA/RSA, RIPEMD128/RSA, RIPEMD160/RSA, MD5/RSA, MD2/RSA, RIPEMD160andMGF1/RSA-ISO9796-2-2-3, SHAandMGF1/RSA-ISO9796-2-2-3, SHA256withDSA, SHA224withDSA, SHA/DSA. 3. The sender sends the encrypted digest (which corresponds to the signature) together with the message content to the receiver. 4. The receiver decrypts the digest with the public key (which is related to the senders private key). The public key has the type RSA or DSA. 5. The receiver calculates the digest out of the content of the message (which has been sent to it by the sender). The receiver uses the same digest algorithm which the sender had used. Note PKCS#7 ensures that the digest algorithm is transferred together with the signature of the message and therefore available for the receiver. This calculation is based on the message content. In case the message content has been transferred encrypted, a decryption step is needed before this step. 84 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

6. The receiver compares the decrypted digest (from the sender) with the one calculated at receiver side. In case both values (digests) are identical, the signature is verified. The following figure illustrates the process of digitally signing and verifying a message. Encrypting and Decrypting the Content of a Message Digital encryption allows you to encode the content of a message in such a way that only authorized parties can read it. Digital encryption works two-stage based on symmetric and asymmetric key technology: 1. The sender encrypts the content of the message using a symmetric key. Note The following algorithms for content encryption (by the symmetric key) are supported (format Cipher/ Operation Mode/Padding Scheme): DESede/CBC/PKCS5Padding, DES/CBC/PKCS5Padding, AES/CBC/PKCS5Padding, ARCFOUR/ECB/NoPadding, Camellia/CBC/PKCS5Padding, RC2/CBC/ PKCS5Padding, CAST5/CBC/PKCS5Padding. 2. The sender encrypts the symmetric key using a public key. Note To encrypt the symmetric key, a public key of type RSA (with the cipher or algorithm RSA/ECB/ PKCS1Padding) is used for each recipient. 3. The sender sends the encrypted message and the encrypted symmetric key to the receiver. 4. The receiver decrypts the symmetric key using a private key (which is related to the public key used by the sender). Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 85

Note For this decryption step a private key of type RSA is needed. 5. The receiver decrypts the content of the message using the decrypted symmetric key. Note Strong encryption is supported for the following algorithms: AES/CBC/PKCS5Padding Camellia/CBC/PKCS5Padding For these algorithms also the key lengths 192 and 256 are possible. The following figure illustrates the process of digitally encrypting and decrypting the content of a message. 9.3.2 How XML Signature Works A digital signature ensures the authenticity of a message that way that it guarantees the identity of the signer and that the message was not altered after signing. You have the option to digitally sign and validate a message based on the XML Signature standard (issued by the W3C consortium). Applying this standard means that the digital signature of a document itself is stored as an XML element. XML Signature can be applied to any XML document. 86 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

The following options for XML Signature are supported: Table 17: Options to Apply XML Signature Option Enveloped Signature Description Digital signature/validation is applied to XML element that contains the signature as an element (the Signature element). Using this option, the digital signature is part of the XML document to be signed/validated. Enveloping Signature Digital signature/validation is applied to content within an Object element which is part of the Signature element. That way, the Signature elements acts as an envelope for the signed content. Using this option, the digital signature is part of the XML document to be signed/validated. Note You configure the usage of XML Signature in the related integration flow. When applying XML Signature the following signature algoriths are supported: DSA/SHA1, RSA/SHA1, RSA/ SHA256, RSA/SHA384, RSA/SHA512 When applying XML Signature the following canonicalization methods are supported: C14N, C14NwithComments, exc-c14n, exc-c14nwithcomments Background Information In a simplified view, when configured correctly, digitally signing a message based on XML Signature implies the following main steps: 1. The sender of the message canonicalizes the XML message content that is to be signed. Canonicalization transforms the XML document to a standardized (reference) format. This step is required because an XML document can have more than one valid representations. Calculating a digest out of two different representations of the same document (according to step 2) results in different digests (or hash values). This would make the whole signing/validating process invalid. 2. Out of the canonicalized XML document, a digest is calculated using a digest algorithm. 3. The sender builds up a SignedInfo element that contains the digest. 4. The sender canonicalizes the SignedInfo element. 5. The sender builds a second digest for the SignedInfo element which contains the first digest. 6. The sender encrypts the digest using its private key. 7. The sender builds up the SignatureValue element which contains the encrypted digest from step 5 (the signature). 8. The message is sent to the receiver. Digitally verifying (validating) a message based on XML Signature works the following way: 1. The receiver decrypts the encrypted digest (which is part of the SignatureValue element of the received message) using the sender s public key. Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 87

2. The receiver calculates the digest out of the SignedInfo element of the message. 3. The receiver compares the two digests that result out of steps 1 and 2. That way it is the authenticity of the sender is checked. 4. The receiver canonicalizes the XML message content. 5. The receiver calculates the digest out of the XML message content. 6. The receiver compares the digest that results from the canonicalized message content with that one contained in the SignedInfo element of the message. That way, it is made sure that the content of the message has not been altered during message processing. 9.3.3 How WS-Security Works Messages can be protected according to the WS-Security standard. There are the following options: Digitally sign a message (and the other way round to verify a signed message) Digitally sign a message and to encrypt the message content (and the other way round to verify a message and to decrypt the message content) Siging a Message Signing a message (SOAP body) based on the WS-Security is an additional feature with regard to signing/ verifying on payload level based on the following standards: PKCS#7, XML DigitalSignature (see figure below). Note For more information on the WS-Security standard see https://www.oasis-open.org/committees/ tc_home.php?wg_abbrev=wss. 88 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

9.3.4 How OpenPGP Works You can use Open Pretty Good Privacy (Open PGP) to digitally sign and encrypt messages. Using OpenPGP you have the following options to protect communication at message level: You can encrypt a payload. You can sign and encrypt a payload. OpenPGP signing without encryption or just verifying without decryption are not supported. The tenant expects either an encrypted payload or a signed and encrypted payload. During runtime, the encryptor/signer processor signs and encrypts the body of the inbound message and returns the resulting OpenPGP message in the body of the outbound message. The required keys are stored in OpenPGP keyrings. The following types of keyrings exist: Table 18: PGP Keyrings Type of Keyring PGP secret keyring Description Contains the public/private key pairs of the sender. It can contain multiple key pairs, each identified by a user ID. The private key is protected with a passphrase. For PGP secret keyrings deployed on tenants, the same passphrase has to be used to access all private keys of the PGP secret keyring. PGP public keyring Contains the public keys (related to the private keys that are stored in the PGP secret keyring of the communication partner). OpenPGP Signing/Verifying A digital signature ensures the authenticity of a message by guaranteeing the identity of the signer and that the message was not altered after signing. A message is digitally signed and verified as follows: 1. The sender calculates a digest (or hash value) from the message content using a digest algorithm. The following hash algorithms are supported for PGP signing: For DSA key: SHA-1, SHA224, SHA256, SHA384, SHA512 For RSA key: MD5, SHA-1, RIPE-MD/160, SH256, SHA384, SHA512, SHA224 2. The sender encrypts the digest using a private key (type RSA or DSA). This is the actual signing step. The private key is looked up in the sender's PGP secret keyring. 3. The encrypted hash value, together with the hash algorithm that has been used, is written into the signature element that is sent to the receiver together with the payload (as PGP signature format). The key ID of the signer of the private key is also written into the PGP signature format. 4. The receiver obtains the PGP signature format. 5. The receiver selects the key ID from the signature and uses the key ID to look up the right public key in the receiver's PGP public keyring. This is the public key that corresponds to the private key used to sign the payload. In addition, the receiver checks if the user ID (associated with the key ID) corresponds to an allowed user. 6. The receiver decrypts the hash value (and verifies the payload) using the public key. Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 89

The following figure illustrates the concept. OpenPGP Encrypting/Decrypting Digital encryption allows you to encode the content of a message in such a way that only authorized parties can read it. A message is digitally encrypted and decrypted as follows: 1. The sender generates a symmetric key. 2. The sender encrypts the payload with the symmetric key. The following symmetric key algorithms for content encryption (symmetric key algorithms) are supported: TripleDES (168bit key derived from 192), CAST5 (128 bit key, as per [RFC2144]), Blowfish (128 bit key, 16 rounds), AES with 128, 192, and 256-bit key, Twofish with 256-bit key DES is not supported. 3. The sender looks up a public PGP key in the PGP public keyring. 4. The sender encrypts the symmetric key using the public PGP key (from the PGP public keyring). You can use the following key types to encrypt the symmetric key: RSA and Elgamal (DAS is not supported). 5. The sender writes the encrypted symmetric key and the key ID into the Encryption Info element of the message. The key ID is used to identify the public key used for encryption (as the PGP public keyring can contain more than one public key). The Encryption Info is sent to the receiver, together with the encrypted payload. 6. The receiver obtains the message and, based on the key ID (in the Encryption Info element), looks up the correct private key (associated with the public key used to encrypt the payload) in the PGP secret keyring. A passphrase is required to access the private key. 7. The receiver decrypts the symmetric key with the private key from the PGP secret keyring. 8. The receiver decrypts the payload with the symmetric key. 90 2015 SAP SE or an SAP affiliate company. All rights reserved. Concepts of Secure Communication

There is an option to apply compression before the encryption step. The following compression algorithms are supported: ZIP [RFC1951], ZLIB [RFC1950], BZip2. The following figure illustrates the concept. The runtime supports the following features: Signing with several private keys is supported (the resulting OpenPGP message then contains several signatures). Encryption with several public keys is supported. More precisely, the symmetric encryption key can be encrypted by several public keys (the resulting OpenPGP message then contains several Public Key Encrypted Session Key packets). Optional: OpenPGP compression and base 64 output or input is also possible. OpenPGP allows you to apply two different kinds of keys (which are not differentiated in the figures above, for purposes of simplicity): primary keys and subkeys. When you generate OpenPGP keys, a primary key with at least one subkey is created. Only the primary key can be used for certification, that is, to certify the trustworthiness of other keys. In addition, the primary key is also typically used to sign payloads. The subkey is used to encrypt payloads. Concepts of Secure Communication 2015 SAP SE or an SAP affiliate company. All rights reserved. 91

Important Disclaimers and Legal Information Coding Samples Any software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP intentionally or by SAP's gross negligence. Accessibility The information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be a binding guideline on how to ensure accessibility of software products. SAP in particular disclaims any liability in relation to this document. This disclaimer, however, does not apply in cases of wilful misconduct or gross negligence of SAP. Furthermore, this document does not result in any direct or indirect contractual obligations of SAP. Gender-Neutral Language As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a gender-neutral noun (such as "sales person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible. Internet Hyperlinks The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does not warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any damages caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. All links are categorized for transparency (see: http://help.sap.com/disclaimer). 92 2015 SAP SE or an SAP affiliate company. All rights reserved. Important Disclaimers and Legal Information

Important Disclaimers and Legal Information 2015 SAP SE or an SAP affiliate company. All rights reserved. 93

www.sap.com/contactsap 2015 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. 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. Please see http://www.sap.com/corporate-en/legal/copyright/ index.epx for additional trademark information and notices.