Installation, Configuration, and Administration Guide SAP NetWeaver Single Sign-On SP4 Secure Login Library

Download as pdf or txt
Download as pdf or txt
You are on page 1of 71
At a glance
Powered by AI
The document discusses various cryptographic concepts and standards including RSA, SSL, PKCS, PKI, and X.509. It also mentions several software vendors and products.

Some common cryptographic standards and protocols mentioned include RSA, SSL, PKCS, PKI, and X.509. RSA is an encryption algorithm, SSL and TLS are protocols for secure network connections, PKCS are standards for cryptography, PKI is for certificate management, and X.509 is a standard format for certificates.

A token in security can refer to either a physical device or software that provides authentication by allowing access to a private key to perform cryptographic operations. The private key can be persistent or non-persistent.

Installation, Configuration, and Administration Guide SAP NetWeaver Single Sign-On SP4 Secure Login Library

PUBLIC Document Version: 1.4 September 2012

2012 SAP AG. 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 AG. The information contained herein may be changed without prior notice.

Apple, App Store, iBooks, iPad, iPhone, iPhoto, iPod, iTunes, MultiTouch, Objective-C, Retina, Safari, Siri, and Xcode are trademarks or registered trademarks of Apple Inc. IOS is a registered trademark of Cisco Systems Inc. RIM, BlackBerry, BBM, BlackBerry Curve, BlackBerry Bold,

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Excel, Outlook, PowerPoint, Silverlight, and Visual Studio are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, z10, z/VM, z/OS, OS/390, zEnterprise, PowerVM, Power Architecture, Power Systems, POWER7, POWER6+, POWER6, POWER, PowerHA, pureScale, PowerPC, BladeCenter, System Storage, Storwize, XIV, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, AIX, Intelligent Miner, WebSphere, Tivoli, Informix, and Smarter Planet are trademarks or registered trademarks of IBM Corporation. Linux is the registered trademark of Linus Torvalds in the United States and other countries.

BlackBerry Pearl, BlackBerry Torch, BlackBerry Storm, BlackBerry Storm2, BlackBerry PlayBook, and BlackBerry App World are trademarks or registered trademarks of Research in Motion Limited. Google App Engine, Google Apps, Google Checkout, Google Data API, Google Maps, Google Mobile Ads, Google Mobile Updater, Google Mobile, Google Store, Google Sync, Google Updater, Google Voice, Google Mail, Gmail, YouTube, Dalvik and Android are trademarks or registered trademarks of Google Inc. INTERMEC is a registered trademark of Intermec Technologies Corporation. Wi-Fi is a registered trademark of Wi-Fi Alliance. Bluetooth is a registered trademark of Bluetooth SIG Inc. Motorola is a registered trademark of Motorola Trademark Holdings

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are trademarks or registered trademarks of Adobe Systems Incorporated in the United States and other countries. Oracle and Java are registered trademarks of Oracle and its affiliates.

LLC. Computop is a registered trademark of Computop Wirtschaftsinformatik GmbH. SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems Inc. HTML, XML, XHTML, and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology.

BusinessObjects Explorer, StreamWork, SAP HANA, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries. Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd. Business Objects is an SAP company.

Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere, and other Sybase products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Sybase Inc. Sybase is an SAP company. Crossgate, m@gic EDDY, B2B 360, and B2B 360 Services are registered trademarks of Crossgate AG in Germany and other countries. Crossgate is an SAP company. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group 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. Disclaimer Some components of this product are based on Java. Any code change in these components may cause unpredictable and severe malfunctions and is therefore expressively prohibited, as is any decompilation of these components. Any Java Source Code delivered with this product is only to be used by SAPs Support Services and may not be modified or altered in any way.

Open LDAP http://www.openldap.org/ The OpenLDAP Public License Version 2.8, 17 August 2003 Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source form must retain copyright statements and notices, 2. Redistributions in binary form must reproduce applicable copyright statements and notices, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution, and 3. Redistributions must contain a verbatim copy of this document. The OpenLDAP Foundation may revise this license from time to time. Each revision is distinguished by a version number. You may use this Software under terms of this license revision or under the terms of any subsequent revision of the license. THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER

Terms for Included Open Source Software


This SAP software contains also the third party open source software products listed below. Please note that for these third party products the following special terms and conditions shall apply.

CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The names of the authors and copyright holders must not be used in advertising or otherwise to promote the sale, use or other dealing in this Software without specific, written prior permission. Title to copyright in this Software shall at all times remain with copyright holders. OpenLDAP is a registered trademark of the OpenLDAP Foundation. Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, California, USA. All Rights Reserved. Permission to copy and distribute verbatim copies of this document is granted. PCRE http://www.pcre.org/ PCRE LICENCE PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 8 of PCRE is distributed under the terms of the "BSD" licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. The basic library functions are written in C and are freestanding. Also included in the distribution is a set of C++ wrapper functions. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED THE BASIC LIBRARY FUNCTIONS Written by: Email domain: Philip Hazel cam.ac.uk TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR Email local part: ph10 * Neither the name of the University of Cambridge nor the name of Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. THE "BSD" LICENCE Copyright (c) 2007-2010, Google Inc. All rights reserved. Contributed by: Google Inc. THE C++ WRAPPER FUNCTIONS Copyright (c) 1997-2010 University of Cambridge All rights reserved. University of Cambridge Computing Service, Cambridge, England.

CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SSLeay http://www2.psy.uq.edu.au/~ftp/Crypto/ssleay/ Copyright (C) 1995-1998 Eric Young ([email protected]) All rights reserved. This package is an SSL implementation written by Eric Young ([email protected]). The implementation was written so as to conform with Netscapes SSL. This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson ([email protected]). Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The licence and distribution terms for any publically available version or derivative of this code cannot be changed. I.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.] THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young ([email protected])" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson ([email protected])"

Typographic Conventions
Type Style Example Text Description Words or characters quoted from the screen. These include field names, screen titles, pushbuttons labels, menu names, menu paths, and menu options. Cross-references to other documentation Emphasized words or phrases in body text, graphic titles, and table titles Technical names of system objects. These include report names, program names, transaction codes, table names, and key concepts of a programming language when they are surrounded by body text, for example, SELECT and INCLUDE. Output on the screen. This includes file and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools. Exact user entry. These are words or characters that you enter in the system exactly as they appear in the documentation. Variable user entry. Angle brackets indicate that you replace these words and characters with appropriate entries to make entries in the system. Keys on the keyboard, for example, F2 or ENTER.

Icons
Icon Meaning Caution Example Note Recommendation Syntax Additional icons are used in SAP Library documentation to help you identify different types of information at a glance. For more information, see Help on Help General Information Classes and Information Classes for Business Information Warehouse on the first page of any version of SAP Library.

Example text

EXAMPLE TEXT

Example text

Example text

<Example text>

EXAMPLE TEXT

Contents
1 What is Secure Login? ....................................................................... 9
1.1 System Overview ..................................................................................... 10 1.2 Main System Components ..................................................................... 10

2 Secure Login Library Installation .................................................... 12


2.1 Prerequisites ............................................................................................ 12 2.2 Installation on a Microsoft Windows Operation System .................... 13 2.3 Installation on a UNIX/Linux Operating System .................................. 15 2.4 Updating the Secure Login Library ....................................................... 17 2.5 Uninstallation ........................................................................................... 17

3 Secure Login Library Configuration................................................ 18


3.1 SNC X.509 Configuration ........................................................................ 18 3.2 SNC Kerberos Configuration ................................................................. 22 3.3 Using Kerberos for SNC with Users in Different Domains ................ 28 3.4 Authentication with X.509 Certificates and Kerberos ........................ 29

4 Configuration Options ...................................................................... 30


4.1 Enable Trace ............................................................................................. 30 4.2 Command Line Tool SNC ....................................................................... 31
4.2.1 Display Software Version Numbers ............................................................................ 32 4.2.2 Display Security Token Information ............................................................................ 32 4.2.3 Test SNC Function...................................................................................................... 33 4.2.4 Create PSE Environment ............................................................................................ 33 4.2.5 Distributing PSEs in a Cluster Environment ............................................................... 34 4.2.6 Register PKCS#12 to PSE ......................................................................................... 34 4.2.7 Unregister Security Token from PSE .......................................................................... 35 4.2.8 Create Kerberos Keytab ............................................................................................. 35 4.2.9 Import Trusted Certificate to PSE ............................................................................... 36 4.2.10 Remove Trusted Certificate from PSE...................................................................... 36 4.2.11 Create Root CA Token ............................................................................................. 36 4.2.12 Create SNC Server Token ........................................................................................ 37

4.3 Communication Protocol Parameters .................................................. 37


4.3.1 Reference of the Communication Protocol Parameters (Server) ............................... 38 4.3.2 Reference of the Communication Protocol Parameters (Client) ................................ 40

4.4 Use Cases of the Communication Protocol Parameters .................... 42


4.4.1 Configuring Certificate Lifetime in sigsession and ParallelSessions Mode ................ 42 4.4.2 Configuring sigsession Mode ...................................................................................... 42 4.4.3 Configuring ParallelSessions Mode ............................................................................ 44 4.4.4 Define Symmetric Algorithm ....................................................................................... 45 4.4.5 Uppercase Distinguished Name ................................................................................. 46 4.4.6 Alternative Name DN Feature ..................................................................................... 47 4.4.7 Shorten Long Distinguished Names ........................................................................... 49 4.4.8 User Schemas for SNC Names .................................................................................. 50

4.5 User Mapping ........................................................................................... 51

5 Using Certificate Revocation Lists .................................................. 54


5.1 Downloading CRLs with the CRL Tool ................................................. 54 5.2 Configuring the CRL Tool ....................................................................... 56

6 Use Cases .......................................................................................... 60

09/2012

Installation Guide: Secure Login Library

6.1 Support for Authentication with Kerberos and X.509 on AS ABAP . 60


6.1.1 Prerequisites ............................................................................................................... 60 6.1.2 Installation and Configuration Steps ........................................................................... 61

7 Troubleshooting ................................................................................ 63
7.1 SNC Library Not Found ........................................................................... 63 7.2 Credentials Not Found ............................................................................ 63 7.3 No User Exists with SNC Name ............................................................. 64

8 List of Abbreviations ........................................................................ 65 9 Glossary ............................................................................................. 67

09/2012

1 What is Secure Login?

1 What is Secure Login?


Secure Login is an innovative software solution created specifically to improve user and IT productivity and to protect business-critical data in SAP business solutions through secure single sign-on to the SAP environment. Secure Login provides strong encryption, secure communication, and single sign-on between a wide variety of SAP components. Examples: SAP GUI and SAP NetWeaver platform with Secure Network Communications (SNC) Web GUI and SAP NetWeaver platform with Secure Socket Layer SSL (HTTPS) Third party application server, supporting X.509 certificates In a default SAP setup, users enter their SAP user name and password on the SAP GUI logon screen. SAP user names and passwords are transferred through the network without encryption. To secure networks, SAP provides a Secure Network Communications interface (SNC) that enables users to log on to SAP systems without entering a user name or password. The SNC interface can also pass calls through the Secure Login Library to encrypt all communication between the SAP GUI and a SAP server, thus providing secure single sign-on to SAP. Secure Login allows you to benefit from the advantages of SNC without the need to set up a Public Key Infrastructure (PKI). Secure Login allows users to authenticate via one of the following authentication mechanisms:

Windows Domain (Active Directory Server) RADIUS server LDAP server SAP NetWeaver server Smart card authentication

If a PKI has already been set up, the digital user certificates of the PKI can also be used by Secure Login. Secure Login also provides single sign-on for Web browser access to the SAP Portal (and other HTTPS-enabled Web applications) with SSL.

09/2012

1 What is Secure Login?

1.1 System Overview


Secure Login is a client/server software system integrated with SAP software to facilitate single sign-on, alternative user authentication, and enhanced security for distributed SAP environments. The Secure Login solution includes three components:

Secure Login Server Central service that provides X.509v3 certificates (out of the box PKI) to users and application server. The Secure Login Web Client is also provided. Secure Login Library Cryptographic Library for the SAP NetWeaver ABAP system. The Secure Login Library supports X.509 and Kerberos technology in parallel. Secure Login Client Client application that provides security tokens (Kerberos and X.509 technology) for a variety of applications.

The Secure Login Library is integrated with SAP software to provide single sign-on capability and enhanced security. An existing PKI structure or the Kerberos technology can be used for user authentication. You do not need to install all of the components. This depends on your use case scenario. For more information about Secure Login Server and Secure Login Client see their Installation, Configuration and Administration Guides.

1.2 Main System Components


The following figure shows the Secure Login system environment with the main system components:

Figure: Secure Login System Environment with existing PKI and Kerberos

10

09/2012

1 What is Secure Login?

The Secure Login Client is responsible for the certificate-based authentication and Kerberosbased authentication to the SAP Application Server and for secure communication. For more information about Secure Login Server and Secure Login Client see the Installation, Configuration and Administration Guide.

09/2012

11

2 Secure Login Library Installation

2 Secure Login Library Installation


This section explains how to install Secure Login Library.

2.1 Prerequisites
This section deals with the prerequisites and requirements for the installation of Secure Login Library. You can download the SAP NetWeaver Single Sign-On software from the SAP Service Marketplace. Go to https://service.sap.com/swdc and choose Support Package and Patches > Browse our Download Catalog > SAP NetWeaver and complementary products > SAP NetWeaver Single Sign-On > SAP NetWeaver Single Sign-On 1 > Comprised Software Component Versions > Secure Login Library 1.0. The Secure Login Library is available for the following operating systems: AIX 32-bit AIX 64-bit HP-UX on IA-64 64-bit HP-UX on PA-RISC 32-bit HP-UX on PA-RISC 64-bit Linux on IA32 32-bit Linux on IA-64 64-bit Linux on Power 64-bit Linux on x86_64 64-bit Linux on zSeries 64-bit MacOS X 64-bit Solaris on SPARC 32-bit Solaris on SPARC 64-bit Solaris on x64_64 64-bit TRU64 64-bit Microsoft Windows Server on IA32 32-bit Microsoft Windows on IA-64 64-bit Microsoft Windows on x64 64-bit

Hardware Requirements
Secure Login Library Hard Disk Space Random Access Memory Details 10 MB Hard Disk Space Min. 1 GB RAM

Software Requirements
Secure Login Library Operating Systems Details Microsoft Windows Server 2003 x64 64-bit Microsoft Windows Server 2003 on IA-64 64-bit Microsoft Windows Server 2008 x64 64-bit Microsoft Windows Server 2008 on IA-64 64-bit

12

09/2012

2 Secure Login Library Installation

Microsoft Windows Server 2008 R2 x64 64-bit Microsoft Windows Server 2008 R2 on IA-64 64-bit AIX 5.2, 5.3, 6.1, 7.1 Power 64-bit HP-UX 11.11, 11.23, 11.31 PA-RISC 64-bit HP-UX 11.23, 11.31 IA-64 64-bit Solaris 9, 10 SPARC 64-bit Solaris 10 x64 64-bit Linux SLES 9, 10, 11 IA-64 64-bit Linux SLES 9, 10, 11 x86_64-bit Linux SLES 9, 10, 11 Power 64-bit Linux RHEL 4, 5, 6 IA-64 64-bit Linux RHEL 4, 5, 6 x86_64-bit Linux RHEL 4, 5, 6 Power 64-bit OSF1 5.1 Alpha 64-bit Mac OS X 10.5 Universal 96 (32-bit / 64-bit) SAP Application Server SAP R/3 Release 4.6C SAP R/3 Enterprise Release 4.70 SAP Web Application Server 6.10 SAP Web Application Server 6.20 SAP Web Application Server 6.30 SAP NetWeaver 2004 SAP NetWeaver 7.0 SAP NetWeaver 7.0 EHP1 SAP NetWeaver 7.0 EHP2 SAP NetWeaver 7.3 The SAPCRYPTOLIB is required to use the transaction STRUST (PSE Management).

SAPCRYPTOLIB

For more information, see the Product Availability Map of SAP NetWeaver Single Sign-On 1.0.

2.2 Installation on a Microsoft Windows Operation System


Before starting the installation process, the Secure Login Library software SECURELOGINLIB.SAR must be available. Copy the file to the target SAP NetWeaver Application Server. Secure Login Library must be installed in a directory to which the Application Server has access at runtime. We recommend that you create this directory below the SAP NetWeaver Application Server.

09/2012

13

2 Secure Login Library Installation

Step 1 - Create Folder SLL


Create a new folder named SLL in:

<INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL
Microsoft Windows Example: D:\usr\sap\ABC\DVEBMGS00\SLL

Step 2 - Extract SECURELOGINLIB.SAR


Extract the file SECURELOGINLIB.SAR to the new folder with the SAPCAR command line tool. sapcar xvf <SourcePath>\SECURELOGINLIB.SAR R <INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL Example: sapcar xvf D:\SECURELOGINLIB.SAR R D:\usr\sap\ABC\DVEBMGS00\SLL

Step 3 - Test Secure Login Library


To verify Secure Login Library, use the following snc command:

<INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL\snc.exe
Microsoft Windows Example D:\usr\sap\ABC\DVEBMGS00\SLL\snc.exe The system displays further information about the Secure Login Library. The test is successful if the product version is displayed.

Figure: Verify Secure Login Library with the command snc

14

09/2012

2 Secure Login Library Installation

2.3 Installation on a UNIX/Linux Operating System


Before starting the installation process, the Secure Login Library software SECURELOGINLIB.SAR must be available. Copy the file to the target SAP NetWeaver Application Server. Secure Login Library must be installed in a directory to which the Application Server has access to at runtime. We recommend that you create this directory below the SAP NetWeaver Application Server. Perform the configuration steps for the Secure Login Library with the user account that will start the SAP application (for example, <SID>adm). Once configuration is complete, the <SID>adm user needs to have access rights to the Secure Login Library.

Step 1 - Create Folder SLL


Create a new folder named SLL in:

<INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL
Example: /usr/sap/ABC/DVEBMGS00/SLL

Step 2 - Extract SECURELOGINLIB.SAR


Extract the file SECURELOGINLIB.SAR to the new folder with the SAPCAR command line tool. sapcar xvf <SourcePath>/SECURELOGINLIB.SAR R <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/

Example: sapcar xvf /tmp/SECURELOGINLIB.SAR R /usr/sap/ABC/DVEBMGS00/SLL/

Step 3 - Define File Attributes in UNIX/Linux


To use shared libraries in shell (operating system UNIX/Linux), you need to set the file permission attributes with the following command: chmod +rx <INSTDIR>/<SID>/DVEBMS<instance_number>/SLL/snc lib* Example chmod +rx /usr/sap/ABC/DVEBMS00/SLL/snc lib*

09/2012

15

2 Secure Login Library Installation

To use the shell under the operating system HP-UX with the shared libraries, you need to set an attribute with the following command:

chatr +s enable <INSTDIR>/<SID>/DVEBMS<instance_number>/SLL/snc

Step 4 - Define File Owner in UNIX/Linux


Apply access rights to the user account that will start the SAP application (for example, <SID>adm). Change to the folder <INSTDIR>/<SID>/DVEBMS<instance_number>/SLL/ and use the following command: chown [OWNER]:[GROUP] * Example chown abcadm:sapsys

Step 5 - Test Secure Login Library


To verify Secure Login Library, use the snc command (in UNIX/Linux environment test with user <SID>adm):

<INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/snc
Example: /usr/sap/ABC/DVEBMGS00/SLL/snc The system displays further information about the Secure Login Library. The test is successful if the product version is displayed.

Figure: Verify Secure Login Library with the command snc

16

09/2012

2 Secure Login Library Installation

2.4 Updating the Secure Login Library


You can download the Support Package software from the SAP Service Marketplace. Go to https://service.sap.com/swdc and choose Support Package and Patches > Browse our Download Catalog > SAP NetWeaver and complementary products > SAP NetWeaver Single Sign-On > SAP NetWeaver Single Sign-On 1.0. ADAPT_LINK Simply copy the new version to the relevant folder and replace the old library files.

2.5 Uninstallation
This section explains how to uninstall Secure Login Library.

Remove Folder SLL


Remove the folder and the files in it: Microsoft Windows <INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL\ UNIX/Linux

<INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/

Deactivate SNC Library Configuration


This step is optional and required only if the Secure Login Library is configured in an SAP NetWeaver instance profile parameter. If you want deactivate SNC, define the following instance profile parameter and restart the SAP NetWeaver ABAP Application Sever: snc/enable = 0 For more information about the instance profile parameters see section 3 Secure Login Library Configuration.

09/2012

17

3 Secure Login Library Configuration

3 Secure Login Library Configuration


You perform the SNC configuration for the SAP NetWeaver server system using the instance profile. Use the transaction RZ10 to maintain the SNC profile parameters. The Secure Login Library can be configured to accept user authentications based on Kerberos tokens and X.509 certificates. Both authentication mechanisms can be used in parallel. You can create or import X.509 certificates in the Trust Manager using the transaction STRUST. To configure the Secure Login Library for Kerberos, you can use a command line tool. For the complete description of the SNC interface and parameters, see the SAP SNC manual (http://help.sap.com). If you want to manage your PSEs in the Trust Manager, you must use SAPCRYPTOLIB. SAPCRYPTOLIB comes with the SAP NetWeaver AS ABAP. If you do not run an SAP NetWeaver AS ABAP, download SAPCRYPTOLIB from the SAP Service Marketplace. Go to https://service.sap.com/swdc, choose Search for Software Downloads, and look for the relevant download package.

You must set the environment variable secudir if you use SAP NetWeaver AS ABAP 7.0. Otherwise SAP NetWeaver AS ABAP 7.0 does not start.

3.1 SNC X.509 Configuration


This section describes the SNC X.509 certificate configuration.

Prerequisites
The Secure Login Library uses X.509 client or server certificates for SNC connections. It supports either no key usage in X.509 certificates or one or more supported key usages. The supported key usages depend on whether the X.509 certificate is used for client-server or server-server communication. Make sure the X.509 certificates are configured with supported values. For a list of the key usages the Secure Login Library supports for SNC, see the following tables. Key Usage for X.509 Client Certificates for Client-Server Communication Certificate Fields [No key usage field] Key Usage Key Usage Key Usage Values [No values] Digital Signature Data Encipherment Key Encipherment Mode [No mode] sigsession, ParallelSessions mode Encryption Encryption

18

09/2012

3 Secure Login Library Configuration

Key Usage for X.509 Server Certificates for Client-Server and Server-Server Communication Certificate Fields [No key usage field] Key Usage Values [No values] Digital Signature Mode [No mode] sigsession, ParallelSessions mode (client-server only) Encryption

SNC Parameters
Log on to the SAP NetWeaver Application Server using SAP GUI. Start the transaction RZ10 and define the following SNC parameters in Instance Profile.

Parameter snc/enable snc/gssapi_lib

Value 1 0 Activate SNC Deactivate SNC

Define the SNC library. Microsoft Windows <Path>\SLL\secgss.dll HP-UX <Path>/SLL/libsecgss.sl Solaris / Linux / AIX <Path>/SLL/libsecgss.so Define the SNC name of the SAP servers security token. X.509 Certificate Token p:<X.509_Distinguished_Name> Example:

snc/identity/as

p:CN=ABC, OU=SAP Security


Hint: If X.509 certificate token and Kerberos tokens are used in parallel, define the X.509 certificate distinguished name. This value is case sensitive. snc/data_protection/max snc/data_protection/min snc/data_protection/use snc/r3int_rfc_secure snc/r3int_rfc_qop snc/accept_insecure_cpic snc/accept_insecure_gui 3 2 3 0 8 1 1 Accept insecure communication Use this value if both insecure and secure communication is to be allowed for SAP GUI. 0 Disallow insecure communication Use this value only if secure communication is to be allowed only (no insecure communication) for SAP GUI.

09/2012

19

3 Secure Login Library Configuration

U User-defined (User Management SU01) Use this value if insecure or secure communication for SAP GUI application is to be configured in the user management tool (SU01). We recommend that you set this value to 1. If you want to enforce higher security, change this value to 0 (for all) or U (user dependent). snc/accept_insecure_rfc snc/permit_insecure_start snc/force_login_screen 1 1 0

Import X.509 Certificate


Start transaction STRUST and import the SAP server certificate. The SAP server certificate must be available in a PSE format. For a client/server communication, the certificates must be provided by a Public Key Infrastructure (PKI). If no PKI is available the Secure Login Server (out of the box PKI) can be used to provide certificates. From the PSE menu, choose Import.

Figure: Transaction STRUST Import X.509 Certificate Load the PSE file by entering the password, navigate back to the PSE menu, choose Save as, and select SNC SAPCryptolib.

20

09/2012

3 Secure Login Library Configuration

Figure: Save PSE as SNC SAPCryptolib If the certificate distinguished name of the PSE file does not match the SNC name configuration set in the instance profile parameter (snc/identity/as), an error message appears. This verification check is performed only if SNC is activated. You can see trusted certificates that have been imported with the transaction STRUST if you enter the following command: Microsoft Windows: <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/snc O <SAPServiceSID> Linux: <INSTDIR>/<SID>adm/DVEBMGS<instance_number>/SLL/snc O <SIDadm> Example Microsoft Windows: /usr/sap/ABC/DVEBMGS00/SLL/snc O SAPServiceABC UNIX/Linux: /usr/sap/ABCadm/DVEBMGS00/SLL/snc O absadm

Restart SAP NetWeaver Application Server


Verify the following checklist and restart the SAP NetWeaver Application Server.

Secure Login Library is installed and if required in shell, the environment variable SECUDIR is defined. File access rights are defined for Secure Login Library. SNC parameters are defined in the instance profile. Correct path and filename configuration for the SNC library. Correct definition of the SNC name (case sensitive). X.509 certificate for the SAP System has been imported using STRUST.

09/2012

21

3 Secure Login Library Configuration

3.2 SNC Kerberos Configuration


This section describes the SNC Kerberos configuration.

SNC Parameter
Log on to the SAP NetWeaver Server using SAP GUI. Start transaction RZ10 and define the following SNC parameters In the instance profile.

Parameter snc/enable snc/gssapi_lib

Value 1 0 Activate SNC Deactivate SNC

Define the SNC library. Microsoft Windows <Path>\SLL\secgss.dll HP-UX <Path>/SLL/libsecgss.sl Solaris / Linux / AIX <Path>/SLL/libsecgss.so Define the SNC name of the SAP servers security token. Kerberos Token p:CN=<ServicePrincipalName> Example:

snc/identity/as

p:CN=SAP/[email protected]
Hint: If X.509 certificate token and Kerberos tokens are used in parallel, define the X.509 certificate distinguished name. This value is case-sensitive. snc/data_protection/max snc/data_protection/min snc/data_protection/use snc/r3int_rfc_secure snc/r3int_rfc_qop snc/accept_insecure_cpic snc/accept_insecure_gui 3 2 3 0 8 1 1 Accept insecure communication Use this value if insecure and secure communication should be allowed for SAP GUI. 0 Disallow insecure communication Use this value only if secure communication is to be allowed (no insecure communication) for SAP GUI. U User-defined (User Management SU01) Use this value if insecure or secure communication for SAP GUI is to be configured in the user management tool

22

09/2012

3 Secure Login Library Configuration

(SU01). We recommend that you set this value to 1. If you want to enforce higher security, change this value to 0 (for all) or U (user-dependent). snc/accept_insecure_rfc snc/permit_insecure_start snc/force_login_screen 1 1 0

Microsoft Windows Account for SAP Server


In order to verify user Kerberos authentication, the Secure Login Library requires a Kerberos keytab which you can create using the command line tool, provided by Secure Login Library. The Kerberos keytab contains Kerberos principals and encrypted keys that are derived from the Microsoft Windows user password. Therefore a Microsoft Windows account in Microsoft Active Directory is required.

Create a Microsoft Windows Account


Create a new Microsoft Windows Account. We recommend the format Kerberos<SID>.

Figure: Create a Microsoft Windows Account Define a password and choose the option User cannot change password and Password never expires.

09/2012

23

3 Secure Login Library Configuration

Figure: Create a Microsoft Windows Account Make sure the password is as complex as possible.

Define Service Principal Name


The Service Principal Name will be used to provide Kerberos service tokens to the requested users. This Service Principal Name is also required for the SNC name configuration. Start the Microsoft Windows tool ADSIEDIT; choose the Microsoft Windows user (in our example: KerberosABC) and define the field servicePrincipalName.

Figure: Define Service Principal Name The mandatory format is SAP/Kerberos<SID>.

24

09/2012

3 Secure Login Library Configuration

Figure: Define Service Principal Name

Check for Multiple Service Principal Names


If the Secure Login Client does not get a service ticket from the domain server, this may be due to the fact that the Service Principal Name used has been assigned several times in the Active Directory system. Use the following command to check this: Example: setspn T * -T foo -X

Create Kerberos Keytab


You create the Kerberos keytab using a command line tool provided by Secure Login Library. This Kerberos keytab is stored in the Personal Security Environment (pse.zip), which is a container for security tokens. Perform the configuration steps with the user account that will start the SAP application (for example, <SID>adm). This does not apply for the Microsoft Windows operating system.

Create PSE Environment


Log on to the operating system where the Secure Login Library is installed. Open a command line window and change to the Secure Login Library folder. Microsoft Windows <INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL\ UNIX/Linux <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/ Temporarily define the environment variable SECUDIR to perform the subsequent configuration steps.

09/2012

25

3 Secure Login Library Configuration

Microsoft Windows set SECUDIR=<INSTDIR>\<SID>\DVEBMGS<instance_number>\sec UNIX/Linux (depends on shell) setenv SECUDIR <INSTDIR>/<SID>/DVEBMGS<instance_number>/sec export SECUDIR=<INSTDIR>/<SID>/DVEBMGS<instance_number>/sec

If no Personal Security Environment (PSE) is available; enter the following command to create a PSE:

snc crtpse x <PSE_management_password>


The PSE management password is used if the PSE environment (pse.zip) is copied to another host system. By default, a PSE can be used by the host system (if correct hostname), or using this management password. For more information, see section 4.2 Command Line Tool SNC. Use the command snc to verify the location in which the PSE (pse.zip) was created. The PSE is created in the path in which the environment variable SECUDIR is defined.

Figure: Verify PSE Location PSE directory must point to the <INSTDIR>/<SID>/DVEBMS<instance_number>/sec folder. The environment variable SECUDIR is defined automatically by the SAP server process. Define this environment variable manually (shell) if you need to access the PSE (for example, using the snc command line application).

Generate Kerberos Keytab in PSE Environment


To create a Kerberos keytab in the PSE, enter the following command. The Service Principal Name and the password of the Microsoft Windows account are required.

snc crtkeytab s SAP/Kerberos<SID>@<DOMAIN> -p <password>


Example

26

09/2012

3 Secure Login Library Configuration

snc crtkeytab s SAP/[email protected] -p **********

The domain name needs to be defined in uppercase.

snc crtkeytab s SAP/[email protected] -p **********


Use the command snc to verify if the Kerberos keytab was generated.

Figure: Verify Kerberos keytab

Restart SAP NetWeaver Application Server


Verify the following checklist and restart the SAP NetWeaver Application Server.

Secure Login Library is installed and if required in shell; the environment variable SECUDIR is defined. File access rights are defined for Secure Login Library. SNC parameters are defined in the instance profile. Correct path and filename configuration for the SNC library. Correct definition of the SNC name (case sensitive). PSE Environment was created and the Kerberos keytab has been imported using the Secure Login Library command line tool.

Verify SAP Server SNC Status


After you have restarted the SAP NetWeaver Application Server; verify the SNC status in the log file dev_w0. The result should be SNC (Secure Network Communication) enabled. Example: <INSTDIR>\<SID>\DVEBMGS<instance_number>\work\dev_w0 N SncInit(): Initializing Secure Network Communication (SNC) N PC with Windows NT (mt,ascii,SAP_UC/size_t/void* = 16/64/64) N SncInit(): found snc/data_protection/max=3, using 3 (Privacy Level) N SncInit(): found snc/data_protection/min=2, using 2 (Integrity Level) N SncInit(): found snc/data_protection/use=3, using 3 (Privacy Level) N SncInit(): found snc/gssapi_lib=D:\usr\sap\ABC\DVEBMGS00\SLL\secgss.dll

09/2012

27

3 Secure Login Library Configuration

N File "D:\usr\sap\ABC\DVEBMGS00\SLL\secgss.dll" dynamically loaded as GSS-API v2 library. N The internal Adapter for the loaded GSS-API mechanism identifies as: N Internal SNC-Adapter (Rev 1.0) to SECUDE 5/GSS-API v2 N SncInit(): found snc/identity/as=p:CN=ABC, OU=SAP Security N N Thu May 05 16:42:15 2011 N SncInit(): Accepting Credentials available, lifetime=Indefinite N SncInit(): Initiating Credentials available, lifetime=Indefinite M ***LOG R1Q=> p:CN= ABC, OU=SAP Security [thxxsnc.c 265] M SNC (Secure Network Communication) enabled

Another possibility is to use transaction ST11 and open dev_w0.

If there are problems with the SNC configuration, the SAP server system will no longer start. A quick solution is to disable SNC. Open the instance profile configuration file and configure the parameter snc/enable = 0. Restart the SAP NetWeaver Application Server and verify the SNC installation and configuration.

3.3 Using Kerberos for SNC with Users in Different Domains


Use Case
You use Kerberos for SNC and you have users in several Active Directory domains. In such an environment, it would be the best to have a trust relationship between the different domains. Every user would then be able to receive an authentication ticket from the Domain Controller for this users domain. As a consequence, the user would be able to use this ticket for the server, which might be in a different domain. Since it is not so easy to configure trust relationship for different domains, the Secure Login Library also supports another option.

Configuring Kerberos Users for Different Domains (ABAP Server)


You have different Active Directory domains that are managed by different Domain Controllers. Proceed as follows: 1. Create users with service principal name in each domain. The user names are identical whereas the domain names differ. This user name is supposed to be used for an ABAP server. Example You have created the user name KerberosNW1 in the Active Directory domain DOMAIN1.COM with the service principal name

28

09/2012

3 Secure Login Library Configuration

SPN=SAP/[email protected]. In the second domain called DOMAIN2.COM, you have created a user with the same user name (KerberosNW1). Its service principal name is SPN=SAP/[email protected].

2. Create keytabs for both service principal names. 3. To configure snc/identity/as, enter the value p:CN=SAP/Kerberos<SID>. Now the ABAP server accepts Kerberos authentication tickets from this user because keytabs for both domains are available. There is a keytab for each domain. It is also possible to set the SNC name of the server automatically to p:CN=SAP/Kerberos<SID>. The user logs on, and the client receives a Kerberos authentication ticket for SAP/KerberosNW1 from the respective domain controller. The user name SAP/Kerberos<SID> is known in each domain. The server authenticates the ticket because the keytabs of all domains are registered in the server. See also SAP Note 1763075.

3.4 Authentication with X.509 Certificates and Kerberos


Use Case
You already have an authentication method in place that is based on SNC server certificates. All users use the message server to authenticate at the application server. During the authentication process, the message server always sends the same SNC name since it is only able to use one single name. This means that the SNC name in the Network tab is a fixed entry entered by the CA for certificate-based authentication. To add users who are able to log on with Kerberos, you need to have a name in the CN part (of the SNC name) that enables users to perform a Kerberos authentication as well. Depending on the authentication method of the client, the Secure Login Client uses the existing CN part for certificate-based authentication or tries to map the CN part to a Service Principal Name that can be used for Kerberos authentication. If this is not possible, the Secure Login Client converts the CN part as described in SAP Note 1696905.

09/2012

29

4 Configuration Options

4 Configuration Options
This section describes some useful configuration and troubleshooting issues.

4.1 Enable Trace


To enable trace, you need to create the files sec_log_file_filename.txt and sec_log_file_level.txt in the following folder: Microsoft Windows %HOMEDRIVE%%HOMEPATH%\sec or C:\sec UNIX/Linux $HOME/sec or /etc/sec Both files must exist (for example, with level = 0) when the application server is started, if you want to be able to activate traces later (by changing the trace level). The file sec_log_file_filename.txt contains the name of the trace file. The name may contain %.PID.% which is replaced by the process ID. A typical SAP WebAS creates multiple work processes, so use this feature to avoid parallel access to the same file by all processes. Microsoft Windows Example sec_log_file_filename.txt C:\sec\log-%.PID.%.txt UNIX/Linux Example sec_log_file_filename.txt /etc/sec/log-%.PID.%.txt

The file sec_log_file_level.txt contains the trace level as a single digit. Example sec_log_file_level.txt 4 Value 0 1 2 3 4 Details No trace Errors Errors and warnings Errors, warnings, and logs Errors, warnings, logs, and information messages

30

09/2012

4 Configuration Options

4.2 Command Line Tool SNC


We recommend that you use the trust manager (ABAP transaction STRUST) for all actions related to the Personal Security Environment (PSE). For more information on the trust manager, see the SAP Help Portal at Trust Manager. Use the SNC command line tool only for functions that are not covered by the trust manager, for example Kerberos keytab functions. The SNC command line tool enables you to perform the following tasks:

Display security token Information Create a Personal Security Environment (pse.zip). Import X.509 certificates Certificate management Create and import a Kerberos keytab Create a root CA token and an SNC server token

You get detailed help when you enter snc H in the command line.

SNC Tool Commands


Command snc status snc test Description Shows the current status of the security tokens (Kerberos keytab and X.509 certificates) Tests the SNC function. Using the registered key for client and server authentication, this command performs a certificate-based login for testing Registers a security token to the PSE. This command uses either the absolute path to the certificate file (PKCS#12 format) or the token URI. Removes a security token which is registered in the Personal Security Environment (PSE) Displays the list of trusted certificates. You can add trusted certificates to the PSE or remove them. Creates a PSE (pse.zip file) with system credentials in the path specified in the variable SECUDIR.Using the system credentials enables you to access the PSE without knowing the PSE password. You can also use a key file for enhanced protection of the PSE. Adds or removes system credentials for a specific host or a user in a PSE. You can also use a key file for enhanced protection of the PSE. Manages a keytab object in the PSE Creates a Kerberos keytab file. You need to know the Service Principal Name and the password of the Microsoft Windows Kerberos service user. Creates a root CA token with private key and X.509 certificate. This command saves the token as PKCS#12 and PSE file in the current path.

snc register

snc unregister snc trust snc crtpse

snc cred

snc keytab snc crtkeytab

snc createroot

09/2012

31

4 Configuration Options

snc createserver

Creates an SNC server token with private key and X.509 certificate including the root certificate. This command saves the token as PKCS#12 and PSE file in the current path.

If not defined, set the environment variable SECUDIR to: before using the snc command.

<INSTDIR>/<SID>/DVEBMGS<instance_number>/sec

To call the snc command, add the <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL directory to the PATH variable or call snc together with the following path: Microsoft Windows <INSTDIR>\<SID>\DVEBMGS<instance_number>\SLL\snc.exe UNIX <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL/snc

4.2.1 Display Software Version Numbers


Go to the installation directory and use the command snc or snc status to display the version numbers of the installed software. You get the following output: Example: Product version

: Secure Login Library 1.0. SP 4 PL xx : CryptoLib 8.3.7.2 : windows-x86-64 Support Package SP0/ATS SP1 SP2 SP3 SP4

CryptoLib Version 8.3.2 8.3.3 8.3.4. 8.3.5 8.3.7

4.2.2 Display Security Token Information


Use the snc status command to display the security tokens (Kerberos keytab and X.509 certificates). The level of details increases with the qualifiers v,V, -w, and W, from very basic to very detailed. snc status V

32

09/2012

4 Configuration Options

Use the following command to save the status in a zip file with many details. snc status W f snc_status.zip To display the status for a specific user, use the following command: snc O <user_name> status -v

Example: snc O abcadm status v snc O SAPServiceABC status -v

4.2.3 Test SNC Function


Use the following command to test the SNC function with a certificate-based login. snc test n <certificate_name> Example: snc test n CN=server, O=SAP AG, C=DE

4.2.4 Create PSE Environment


Use the following command to create a Personal Security Environment (PSE). snc crtpse P <PSE_master_password> The PSE (pse.zip) is created in the path specified by the environment variable SECUDIR. By default, only the host system, where this PSE is created, and all users have access to the PSE. It is not possible to use this PSE (pse.zip) with another host system, without creating new credentials. Add new credentials for a new host name snc cred P <PSE_master_password> -n <credential_name> s

<new_host_name>

Add new credentials for a new user snc cred P <PSE_master_password> u <new_user> Add new credentials and encrypt content snc cred P <PSE_master_password> -n <credential_name> f

<server_key_file>

09/2012

33

4 Configuration Options

The server key file is a file on the server with random content which is used to encrypt credentials in the PSE. You can use any kind of file type which is larger than 32 Byte. Do not change the path and content of the credentials because, if you do so, you cannot access the credentials any longer.

4.2.5 Distributing PSEs in a Cluster Environment


To distribute PSEs in a cluster environment with the servers SERVA, SERVB, and SERVC, you must add your credentials to the PSE for every server. After that the PSE is valid for all these servers and is ready for distribution. Use the following steps. 1. Generate a PSE on SERVA with the following command: snc crtpse P <PSE_master_password> 2. Register your PKCS#12 file to the PSE for the SERVA server. The passwordprotected PKCS#12 file is only valid for SERVA. To do so, use the following command: snc register f <full_file_path><file_name>.p12 -x <token_password> n Always specify the full path name of the P12 file. The service is unable to work with relative path names. The respective credentials are saved automatically. 3. Now you need to add your credentials to the PSE and make it valid for SERVB as well. For this purpose, proceed with the following command for SERVB. snc cred P MyPassword n ForEntireCluster s SERVB u <SERVB_SID>adm 4. Proceed with the corresponding command and add the credentials for SERVC to the PSE. snc cred P MyPassword n ForEntireCluster s SERVC u <SERVC_SID>adm 5. Copy the file pse.zip from SERVA to the servers SERVB and SERVC. Now you have successfully distributed your PSE with your credentials to the entire cluster.

4.2.6 Register PKCS#12 to PSE


Use this command to register a key/certificate pair in PKCS#12 format in the Personal Security Environment: snc register f <full_file_path><file_name>.p12

34

09/2012

4 Configuration Options

Example snc register f C:\Certificate\cert.p12 Use the command snc status V to verify the import. If you do not want to worry about the location of the PKCS#12 file, copy it into pse.zip, and register it. To do so, use the following command: Example: snc register f cert.p12 n

4.2.7 Unregister Security Token from PSE


Use this command to remove a security token which is registered in the Personal Security Environment. You can unregister the security token by specifying the file with the absolute path. Example snc unregister P <PSE_master_password> f C:\Certificate\cert.p12 Use the command snc status V to display the value for toksw: If the registered token was copied into the pse.zip file, get the token URI with the status command. snc status V Use the information you receive from the status command to unregister the token URI. snc unregister u <URI_from_status>

4.2.8 Create Kerberos Keytab


When you want to create a Kerberos keytab in the PSE, you need the Service Principal Name and the password of the Microsoft Windows Kerberos service user. To create a Kerberos keytab in the PSE, enter the following command: snc crtkeytab s SAP/Kerberos<SID>@<DOMAIN> -p <Kerberos_service_user_password> Example snc crtkeytab s SAP/[email protected] -p **********

09/2012

35

4 Configuration Options

4.2.9 Import Trusted Certificate to PSE


Use this command to import a certificate (for example, a trusted Root CA certificate) into the Personal Security Environment: snc trust a <certificate_file> Example snc trust a C:\Certificate\RootCA.cer

4.2.10 Remove Trusted Certificate from PSE


Use this command to remove a certificate (for example, a trusted Root CA certificate) from the Personal Security Environment. snc trust d <Distinguished_Name> Example snc trust d CN=Certificate, OU=SAP Security Use the command snc status v to display the certificate Distinguished Name.

4.2.11 Create Root CA Token


If no PKI (public-key infrastructure) for SNC connections is available in your company, you can create it with snc createroot and snc createserver. Use the command snc createroot to create a root CA token with private key and X.509 certificate. snc createroot r <root_CA_file_name> -P <CA_password> -N

<root_SNC_name>

Example snc createroot r sncrootcatoken P ******** -N CN=SAP SNC RootCA, O=Company, C=DE Result: sncrootcatoken.p12 sncrootcatoken.pse sncrootcatoken.crt After the creation, the root CA token is stored as PKCS#12, PSE, and CRT file (certificate only) in the current path.

36

09/2012

4 Configuration Options

4.2.12 Create SNC Server Token


Use the command snc createserver to create an SNC server token with private key and X.509 certificate and root certificate. snc createserver r <root_file_name> -P <CA_password> -p

<P12_password>

In the following example, you use the root CA token created in 4.2.11 Create Root CA Token to issue a server token. Example snc createserver r sncrootcatoken -s server n CN=server, O=SAP AG, C=DE P <CA_password> -p <P12_password> Result: server.p12 server.pse server.crt After the creation, the server token is stored in the current path as PKCS#12, PSE, and CRT file (certificate only). Use the trust manager (see Trust Manager) to import the PSE file as SNC SAPCryptolib PSE.

4.3 Communication Protocol Parameters


In the file gss.xml, you can configure the SNC communication protocol for server-to-server and client-to-server communication. You can, for example, configure formats for the Distinguished Name. You can shorten long and complicated names, integrate elements such as e-mail addresses, define the communication protocols to use, configure algorithms for the protection of application data, keys, and algorithms for encryption and digital signatures. Example Include one value in the parameters. List several values in a list separated by blanks. Use the following syntax: <namecharset>latin1</namecharset> <protocol_2010> <ciphers>aes256 aes128 rc4</ciphers> </protocol_2010>

09/2012

37

4 Configuration Options

4.3.1 Reference of the Communication Protocol Parameters (Server)


The following table contains the parameters that are valid for SNC on the server: Configuration Parameters of gss.xml (Server Functions Only) Parameter namecharset Values utf8 latin1 Description Character set used to exchange names with the application. Default: latin1 Replaces excessively long name components with shorter ones. Useful when a server application stores the client name in a database field with an insufficient maximum size. <long_client_name> Enter the complete client name for name conversion. Enter the abbreviated client name to save storage space in the database. During SNC communication, the client sends the Distinguished Name (DN) of the client certificate in mixed case by default. Set to true to send the DN in uppercase. Subject alternative name from the user certificate to be sent as the SAP SNC name. Enter the options separated by a space. The server tries the subject alternative names in order. It takes the first option it can used. Specifies whether to use the 1993

nameconversions (with parameter options)

searchstr

replstr

<short_client_name>

UpperCaseClientName

true false

ClientNameSource

AltNameEMail AltNameEMailWithoutDomain AltNameDNS AltNameDName AltNameIP AltNameUPN AltNameUPNWithoutDomain Subject <SNC_CRYPTOLIB_protocol>

protocol_1993 (with

38

09/2012

4 Configuration Options

parameter options)

communication protocol, which is compatible to SAPCRYPTOLIB 5.5. true false Specifies whether or not the 1993 communication protocol is used. Default: true List of encryption algorithms available. The system uses the first one that is possible. Default: all List of available hash algorithms: The system uses the first algorithm that is possible. Default: all Specifies whether the client key used for digital signatures is accepted as an authentication method. Default: true Specifies whether the client key used for encryption is accepted as an authentication method. Default: true Accepted lifetime of temporary keys (digital signature to keep the session alive) in seconds. Default: 86400 (24 hours) Defines whether the server accepts the 2010 communication protocol Enables/disables the use of the 2010 protocol. This protocol supports authentication with X.509 and Kerberos certificates. Accepted lifetime of temporary keys (digital signature to keep the session

use

algs_encr

aes256t aes192 aes128 des3

algs_hash

sha512 sha 384 sha256 sha1 ripemd160

acceptsigmode

true false

acceptencrmode

true false

acceptedttl

<temporary_key_lifetime>

protocol_2010 (with parameter options)

<SNC_CRYPTOLIB_protocol>

use

true false

acceptedttl

<temporary_key_lifetime>

09/2012

39

4 Configuration Options

alive) in seconds. Default: 86400 (24 hours) ciphers aes256 aes128 rc4 Algorithms used for handshake and application data protection. Default: all Algorithms used for handshake and application data protection. Default: HMAC-SHA256 HMAC-SHA1

data_macs

HMAC-SHA256 HMAC-SHA1 HMAC-SHA512 HMACRIPEMD160

4.3.2 Reference of the Communication Protocol Parameters (Client)


A gss.xml file also exists in the client. You must specify the same communication protocol on both sides (client and server). Depending on your SNC CRYPTOLIB, use either protocol_1993 or protocol_2010. The following table contains the parameters that are valid for SNC on the client: Configuration Parameters of gss.xml (Client Functions Oonly) Parameter protocol_1993 (with parameter options) Values <SNC_CRYPTOLIB_protocol> Description Specifies whether to use the 1993 communication protocol, which is compatible to SAPCRYPTOLIB 5.5. Specifies whether or not to use the 1993 communication protocol. Default: true List of encryption algorithms available. The system uses the first one that is possible. Default: all List of available hash algorithms: The system uses the first algorithm that is possible. Default: all

use

true false

algs_encr

aes256 aes192 aes128 des3

algs_hash

sha512 sha 384 sha256 sha1 ripemd160

40

09/2012

4 Configuration Options

authop

enc (encryption certificate) sig (signature certificate) sigsession (signature certificates for key cached for further sessions) auto (automatic)

Specifies the authentication mode in the client. Default: auto

age

<period_in_seconds>

Specifies a period of the key validity before the signing (in seconds). This period acts as a tolerance period if system times vary by a couple of minutes. Default: 600 Validity of temporary key in seconds. Default: None Defines whether the server accepts the 2010 communication protocol Enables/disables the use of the 2010 protocol. This protocol support authentication with X.509 and Kerberos certificates. Algorithms used for handshake and application data protection. Default: all Algorithms used for handshake and application data protection. Default: HMAC-SHA256 HMAC-SHA1 Enable use of signature certificate with a temporary key. Default: false Validity of temporary key in seconds. Default: 86400 (one day)

ttl

<period_in_seconds>

protocol_2010 (with parameter options)

<SNC_CRYPTOLIB_protocol>

use

true false

ciphers

aes256 aes128 rc4

data_macs

HMAC-SHA256 HMAC-SHA1 HMAC-SHA512 HMACRIPEMD160

ParallelSessions

true/false

ParallelSessionsTTL

<period_in_seconds>

09/2012

41

4 Configuration Options

4.4 Use Cases of the Communication Protocol Parameters


4.4.1 Configuring Certificate Lifetime in sigsession and ParallelSessions Mode
Every time you use a token (smart card or soft token) to authenticate, you enter a PIN.If you do not want to be forced to enter this PIN every time you open a session, you have the following options: In sigsession mode, the client creates a temporary key, which has a period of validity specified in age and ttl. (age is the server system time offset relative to the client system time.) During this period, the session remains valid. ttl is the validity of the certificate in seconds. It is the time the key cache remains valid. The default is 180 s starting 60 s earlier. In ParallelSessions mode, the parameter ParallelSessionsTTL specifies the validity period of the temporary key. This period of time is identical with the maximum session length.

Whenever you reauthenticate, the temporary key and the associated session length are reused for a new session.

4.4.2 Configuring sigsession Mode


If you use the 1993 protocol on the client and server, you must choose from the following authentication modes: enc: encryption certificate sig: signature certificates and sign a temporary RSA key with it sigsession: signature certificate and sign a temporary RSA key with it. This temporary key is cached for further sessions until you close the last session.

Example If you use a token (smart card or soft token) to authenticate, you enter a PIN. In sigsession mode, the client creates a temporary key, which gets a period of validity specified in age and ttl. age is the server system time offset relative to the client system time. During this period, the session remains valid. ttl is the validity of the certificate in seconds. The default is 180 s starting 60 s earlier. If the value in ttl in the client exceeds the server value of acceptedttl, the SNC

42

09/2012

4 Configuration Options

connection produces an error message. Use the following syntax for the configuration: Configuration example Client configuration of gss.xml: <protocol_1993> <authop>sigsession</authop> <age>300</age> <ttl>1899</ttl> </protocol_1993> Server configuration of gss.xml: <protocol_1993> <acceptsigmode>true</acceptsigmode> <acceptedttl>2000</acceptedttl> </protocol_1993>

To specify the lifetime of a certificate in sigsession, proceed as follows: 1. Set a value for the system time tolerance in the parameter age in the gss.xml file of the client, for example, 300. 2. Set a value in parameter ttl in the same file, for example, 3900. 3. Save the file. 4. Set the same value for acceptedttl as in ttl (3900) in the gss.xml file of the server. 5. Save the file. 6. Restart the server. To calculate the desired lifetime of the certificate, subtract the period specified in age from the period specified in ttl. This results in a desired lifetime of 3600 s. Example 3900 s 300 s = 3600 s To illustrate the behavior of the client and server parameters in the gss.xml files, see the following figure.

09/2012

43

4 Configuration Options

Ensure that the configuration of acceptedttl (server gss.xml) and ttl (client gss.xml) are identical. The vertical dotted lines indicate the time when the certificate is issued or when it is verified. If you verify the validity of the certificate within the period specified by ttl, the verification is successful. Outside the period specified in the ttl parameter, the verification fails.

4.4.3 Configuring ParallelSessions Mode


Use parallel session mode for the 2010 protocol. Example If you use a token (smart card or soft token) to authenticate, you must enter a PIN. In parallel session mode, the client creates a temporary RSA key, which is cached for re-authentication in further sessions until you close the last session. 1. Enter true in ParallelSessions. 2. Enter a period of time (in seconds) in ParallelSessionsTTL to specify the period of time during which reauthentication can occur. 3. Restart the server. If the value in ParallelSessionsTTL in the client exceeds the server value of acceptedttl, the SNC connection produces an error message.

Configuration example Client configuration of gss.xml: <protocol_2010>

44

09/2012

4 Configuration Options

<ParallelSessions>true</ParallelSessions> <ParallelSessionsTTL>1800</ParallelSessionsTTL> </protocol_2010> Server configuration of gss.xml: <protocol_2010> <acceptedttl>2000</acceptedttl> </protocol_2010>

4.4.4 Define Symmetric Algorithm


This section explains how to define the symmetric algorithm, which is used to secure communication. By default, the Secure Login Library provides the following symmetric algorithm (priority in this order).

AES256 AES192 (old protocol 1993 only) AES128 3DES (old protocol 1993 only) RC4 (new protocol 2010 only)

Secure Login Library has implemented two protocols named protocol_1993 (old) and protocol_2010 (new). The old protocol is compatible with SAP Crypto Library (SAPCryptoLib). The new protocol supports X.509 certificates and Kerberos tokens in parallel. If SAP GUI establishes a secure communication to the SAP NetWeaver Application Server, the symmetric algorithm is agreed between both partners. It is possible to force the use of, for example, the AES256 symmetric algorithm. You can define this in the Secure Login Library configuration file gss.xml.

Parameter <algs_encr>XXX</algs_encr>

Details Use this parameter to define the symmetric algorithm for the old protocol, which is defined in section <protocol_1993>. This protocol is compatible with SAP Crypto Library (SAPCryptoLib). By default, the strongest symmetric algorithm that is available on both sides is agreed. It is possible in the Secure Login Library to allow the acceptance of only aes256, for example. You can define the following algorithms: aes256

09/2012

45

4 Configuration Options

aes192 aes128 des3 Default is <empty>. The symmetric algorithm is arranged during the authentication process. <ciphers>XXX</ciphers> Use this parameter to define the symmetric algorithm for the new protocol, which is defined in section <protocol_2010>. This protocol supports the Kerberos solution. By default, the strongest symmetric algorithm that is available on both sides is agreed. It is possible in the Secure Login Library to allow only the acceptance of only AES256, for example. You can define the following algorithms: AES256 AES128 RC4 Default is <empty>. The symmetric algorithm is arranged during the authentication process.

gss.xml
<gss> <server> <protocol_1993> <algs_encr>xxx</algs_encr> </protocol_1993> <protocol_2010> <ciphers>xxx</ciphers> </protocol_2010> </server> </gss>

4.4.5 Uppercase Distinguished Name


To support case insensitivity for user certificate names used by SNC, the GSS Distinguished Names presented to SAP SNC may be converted to uppercase. This can be defined in the Secure Login Library configuration file gss.xml.

Parameter <UpperCaseClientName>XXX </UpperCaseClientName>

Details Define the configuration in parameter <UpperCaseClientName>. true The distinguished name is provided in uppercase.

46

09/2012

4 Configuration Options

false The distinguished name is provided in mixed case. Default is false.

gss.xml
<gss> <server> <UpperCaseClientName>xxx</UpperCaseClientName> </server> </gss>

4.4.6 Alternative Name DN Feature


It is possible to use the Subject Alternative Name from the user certificate that is presented to the SAP SNC interface. You can define this in the Secure Login Library configuration file gss.xml.

Parameter <ClientNameSource>XXX </ClientNameSource>

Details Defines the configuration in parameter <ClientNameSource>. AltNameEMAIL RFC 822 name. AltNameDNS DNS name AltNameDNAME Directory name AltNameURI URI AltNameIP IP address AltNameUPN otherName with object identifier. Here the Microsoft User Principal Name is used (otherName type with OID 1.3.6.1.4.1.311.20.2.3). AltNameEMAILWithoutDomain RFC 822 name without domain. Here you can use the local part of an E-mail address without the domain part (j.smith instead of [email protected]). AltNameUPNWithout Domain otherName with object identifier and without domain. Here the Microsoft User Principal Name is used (otherName type with OID 1.3.6.1.4.1.311.20.2.3) without the domain part of the e-mail address.

09/2012

47

4 Configuration Options

Subject Distinguished Name Default is <empty>. In this case, the Subject (Distinguished Name) is used.

gss.xml
<gss> <server> <ClientNameSource>xxx</ClientNameSource> </server> </gss>

You can enter several values separated by commas or spaces. The system uses the first value. If this is not possible, it proceeds to the second value etc. An error occurs when no value can be used. Example 1 The Secure Login Library uses the URI. If the URI is not available, it uses the subject (Distinguished Name). <ClientNameSource>AltNameURI Subject</ClientNameSource> Example 2 The Secure Login Library uses the E-mail address and, as first alternative, the Microsoft User Principal Name. If the second alternative value is not available, an error occurs. <ClientNameSource>AltNameEMAIL AltNameUPN</ClientNameSource>

If users change their own attributes (for example, through a self-service), and these attributes are used by the user certificate (issued by the Secure Login Server), a situation may occur in which these users are able to assign additional rights to themselves. Thus these users might get rights they are not supposed to have. For this case, we recommend that you implement access restrictions for the change of user attributes.

An AS ABAP uses, for example, certificate-based logon with the users e-mail addresses in the Distinguished Names. The string in the certificate has the following format: [email protected] This means that the users e-mail address is used for the user mapping in SNC. If an administrator enables the user to change his or her own data, for example, e-mail address, first name, last name etc. through a self-service, this user now has the possibility to enter, for example, his or her managers e -mail address ([email protected]) as

48

09/2012

4 Configuration Options

attribute. Since this data is usually maintained centrally, this change would also affect the Secure Login Server. If the certification user mapping feature of the Secure Login Server is configured with the e-mail address as an attribute of the certificate, the user receives a certificate with the Distinguished Name [email protected]. This user is now able to log on to the AS ABAP as his or her manager.

4.4.7 Shorten Long Distinguished Names


It is possible to shorten parts of the distinguished name (SNC Name) from the user certificates that are presented to the SAP SNC interface. The character limit for SAP server systems is 255 characters (in older systems 80 characters). For example, you can remove entire parts such as a company name which are identical for all users. You can define this in the Secure Login Library configuration file gss.xml.

Parameter <searchstr>XXX</searchstr>

Details In the <nameconversions> section, use the <searchstr> parameter to define the part of the distinguished name to be shortened. Example: OU=Very Long Organization Unit Name In the <nameconversions> section, the <replstr> parameter is used to define the part of the distinguished name to be replaced. Example: OU=Short Name

<replstr>XXX</replstr>

gss.xml
<gss> <nameconversions> <searchstr>VeryLongNameComponent</searchstr> <replstr>ShorterNameComponent</replstr> </nameconversions> <nameconversions> <searchstr>AnotherVeryLongNameComponent</searchstr> <replstr>AnotherShorterNameComponent</replstr> </nameconversions> </gss>

09/2012

49

4 Configuration Options

4.4.8 User Schemas for SNC Names


The SNC names for a certificate-based logon consist of user schema attributes for example, CN (common name), O (organization), OU (organizationalUnit), or C (country). These attributes comply with the RFC2256 default for user schemas. For more information, see the Summary of the X.500(96) User Schema for Use with LDAPv3 . Previous releases of SAPCRYPTOLIB and old SECUDE releases still use a user schema with obsolete attributes. The table below shows RFC2256-compliant attributes and the corresponding obsolete SAPCRYPTOLIB or SECUDE attributes, and the related keywords. Keyword surname street title serialNumber businessCategory description stateOrProvinceName RFC2256-Compliant Attribute (Default) SN STREET TITLE SERIALNUMBER BUSINESSCATEGORY DESCRIPTION ST Obsolete SAPCRYPTOLIB or SECUDE Attribute S ST T SN BC D SP

Default Settings
The default user schema of the Secure Login Library is RFC2256. The configuration is located in the file base.xml. For more information about base.xml, see 5.2 Configuring the CRL Tool. By default, the configuration of the user schema in the file base.xml is empty (meaning RFC2256). If you prefer, you can also enter RFC2256 for clarity. Example 1 <name> <encoding>UTF8</encoding> <schema></schema> <!secude/'sapcryptolib' of 'rfc2256' (default) specifies the schema for order and keywords of name components --> </name>

Example 2 <name> <encoding>UTF8</encoding> <schema>rfc2256</schema> <!secude/'sapcryptolib' of 'rfc2256' (default) specifies the schema for order and keywords of name components --> </name>

50

09/2012

4 Configuration Options

Setting for SAPCRYPTOLIB or SECUDE Release


If customers want to keep their old user schema attributes, overwrite the user schema setting. To switch the Secure Login Library to use the attributes for obsolete SAPCRYTOLIB or SECUDE releases, open the base.xml file and enter the schema sapcryptolib or secude. Example 1 <name> <encoding>UTF8</encoding> <schema>sapcryptolib</schema> <!secude/'sapcryptolib' of 'rfc2256' (default) specifies the schema for order and keywords of name components --> </name>

Example 2 <name> <encoding>UTF8</encoding> <schema>secude</schema> <!secude/'sapcryptolib' of 'rfc2256' (default) specifies the schema for order and keywords of name components --> </name>

4.5 User Mapping


This section details how to define the user mapping in SAP user management. For user authentication using security tokens (X.509 certificate or Kerberos token), this mapping is required to define which security token belongs to which SAP user. For smooth and straightforward integration, we recommend that you use the SAP NetWeaver Identity Management solution to manage user mapping.

Manual Configuration
Start the user management tool by calling transaction SU01. Choose the SNC tab. If you are using Kerberos authentication, enter the Kerberos user name in the SNC name field. If you are using X.509 certificate based authentication, enter the X.509 Certificate Distinguished Name in the SNC name field. Note that the definition of the SNC name is case sensitive.

09/2012

51

4 Configuration Options

Kerberos Example
In this example the SNC Name p:[email protected] belongs to the user SAPUSER.

X.509 Certificate Example


In this example, the SNC name p:CN=SAPUSER, OU=SAP Security belongs to the user SAPUSER.

For more information about how to perform user mapping, see the Secure Login Library Installation, Configuration, and Administration Guide.

52

09/2012

4 Configuration Options

Set External Security Name for All Users


You can use transaction SNC1 (report RSUSR300) to configure the SNC name in batch mode. Note that the definition of the string is case sensitive. With this tool you can choose all SAP Users *, a list of SAP users or SAP user groups. You can use the option Users without SNC names only to overwrite SNC names. This batch tool will takes an SAP user and uses the components <previous_character_string><SAP_user_name><following_character_string> to build the SNC Name.

Kerberos Example
In this example, SNC names are generated with the following string for all users without an SNC name.

p:[email protected]

X.509 Certificate Example


In this example, SNC names are generated with the following string for all users without an SNC name:

p:CN=user_name, OU= SAP Security

09/2012

53

5 Using Certificate Revocation Lists

5 Using Certificate Revocation Lists


The Secure Login Library supports certificate revocation lists (CRLs). This enables you to make sure that revoked certificates are not accepted. The CRL issued by the Certificate Authority (CA) contains the revoked certificates. The CA issues CRLs at regular intervals. They contain a list of certificates that have been declared as invalid. CAs regularly update certificate revocation lists. They must be replaced regularly by a new CRL or by a CRL that has not yet expired. CAs place certificate revocation lists at CRL distribution points. The Secure Login Library provides a tool that enables you to regularly download new CRLs from CRL distribution points (LDAP or HTTP) to the local cache. Storing CRLs in the local cache ensures fast accessing of the CRLs. You can schedule the download using a cron job. Storing CRLs in the cache improves system performance. Otherwise performance suffers when the Secure Login Library has to download CRLs from an external CRL distribution point. To use the CRL functions, make the appropriate settings in the configuration files. For more information, see 5.2 Configuring the CRL Tool. The local cache for the CRLs is \SECUDIR\dbcrl.

Limitations
The Secure Login Library covers only basic functions on the server side, such as checking client certificates with CRLs, getting CRLs from a distribution point, and storing it in a local cache. The Secure Login Library has the following limitations: Customers cannot use the extension IssuingDistributionPoint in CRLs with the Secure Login Library. No use of delta CRLs At present the Secure Login Library assumes that, in a given environment, all CAs provide CRLs. This means that multiple PKIs using different revocation checking policies and one PKI with CAs using different revocation checking policies are not supported. Usually UNIX does not come with an LDAP client. To use the CRL tool to get CRLs from LDAP, you must provide an OpenLDAP client (liboldap.*). The Secure Login Client does not check CRLs.

5.1 Downloading CRLs with the CRL Tool


The main function of the CRL tool is to enable you to download CRLs from the CRL distribution point and to make them available in the local cache \SECUDIR\dbcrls. When the application server checks certificates, it uses the downloaded CRL. Run the CRL tool at regular intervals to ensure that the most recent CRL is located in the local cache. We recommend using a cron job to schedule the regular download. Make sure the server process has read authorization for the CRL (files) in the cache directory. We recommend using the same user or, in a UNIX environment, granting read authorization with the umask command.

54

09/2012

5 Using Certificate Revocation Lists

To display detailed help, use crtl H.

CRL Tool Commands


Command crl get Description Downloads a CRL from a given CRL distribution point using a given URL (Web server or LDAP server). For an Active Directory server, the user must be a domain user, and ADS has to be configured in ldap.xml. Shows the current status of the configuration and of the module Shows the CRLs currently located in the local cache Removes the CRL from the local cache Shows the content of a CRL file Stores a CRL in the local cache. If the certificates contain a CRL distribution point, specify its location with -u so that the CRL can be found during certificate verification.

crl status crl list crl remove crl show crl store

Examples of Getting a CRL from a CRL Distribution Point


In the following examples you see the commands for getting a CRL from a CRL distribution point. Use the following command to get a CRL and store it in a file: crl get u <LDAP_server> -f <CRL_file> Example crl get u ldap:///sap.example.com -f file.crl Use the following command to get a CRL and store it in a cache without a distribution point: crl get -u <LDAP_server> store Example crl get u ldap:///sap.example.com store Use the following command to get a CRL and store it in a cache using the same distribution point (the URL in the store command must be the path of the CRL distribution list). crl get -u <LDAP_server> store -u <LDAP_server> Example crl get u ldap:///sap.example.com u ldap:///sap.example.com

09/2012

55

5 Using Certificate Revocation Lists

Use the following command to get a CRL and store it in a cache using a different distribution point (the URL in the store command must point to the CRL distribution point specified in the certificate). crl get u <HTTP_server> store -u <LDAP_server> Example crl get u http://server/ store -u ldap:///sap.example.com

5.2 Configuring the CRL Tool


The following configuration files are available in the \SLL folder: pkix.xml base.xml ldap.xml The parameters are similar to tags surrounding the values. You may use uppercase or lowercase for entering values.

pkix.xml
In the configuration file pkix.xml, you can configure whether a CRL check is used at all. CRL checking is active if the parameter revCheck is set to the value CRL. The default setting of this parameter is no (no use of CRLs). After you have entered changes in the configuration files, restart your ABAP server so that the newly-set parameters take effect.

Example <pkix> <profile> <acceptNoBCwithKeyUsage>true</acceptNoBCwithKeyUsage> <revCheck>CRL</revCheck> <certificatePolicies>noCheck</certificatePolicies> </profile> </pkix> The following table contains all parameters and parameter options that are available in pkix.xml. Configuration parameters of pkix.xml Parameter profile (with parameter options) Values <CRL_checking_profile> Description CRL checking profile

56

09/2012

5 Using Certificate Revocation Lists

accceptNoBCwithK eyUsage

true/false

pkix.xml defines that CA certificates must have the BasicConstraint extension. Default: true Enables/disables revocation checking. Default: NO List of trusted certificate policy object identifiers separated by a semicolon (;). Default: noCheck

revCheck

NO/CRL

certificatePolic ies

noCheck/<trusted_certificate_p olicy_object_identifiers>

If the parameter acceptNoBCwithKeyUsage has the value true, the system checks whether certificates without the BasicContraints extension have the keyCertSign key usage. In this case, they are accepted as CA certificates. If the parameter acceptNoBCwithKeyUsage has the value false, the certificates are not accepted.

base.xml
You can configure the cache and the verification of the CRL download in the file base.xml. If you use CRLs that are located in the cache, performance will improve considerably. By default, the parameter verificationonlineaccess is set to false to disable the function that verifies the CRLs online, for example on an LDAP server or HTTP server. If you want to activate CRL verification with the cache, set the parameter usepkicache to true (default setting is false). Example 1 If you want to define a different location for the cache directory, you may optionally use the parameter pkicachedir and enter the location there (for multiple servers accessing the cache, you could use an NFS cache). <base> <verificationonlineaccess>false</verificationonlineaccess> <usepkicache>true</usepkicache> <pkicachedir>\usr\sap\T2D\DVEBMGS00\sec</pkicachedir> </base> Example 2 Set the parameter verificationonlineaccess to false. If you do not want to define a different location for the cache directory, set the parameter usepkicache to true. In this case, you need not enter any value in pkicachedir.

09/2012

57

5 Using Certificate Revocation Lists

<base> <verificationonlineaccess>true</verificationonlineaccess> <usepkicache>false</usepkicache> <pkicachedir></pkicachedir> </base> Example 3 If you want to carry out a CRL check from a remote LDAP directory, set the parameter verificationonlineaccess to true and set the parameter usepkicache to false. In this case, you need not enter any value in pkicachedir. <base> <verificationonlineaccess>true</verificationonlineaccess> <usepkicache>false</usepkicache> <pkicachedir></pkicachedir> </base> Example 4 If you want to make a CRL request from a proxy server, you must enter the host name and the port number of the proxy server. <base> <proxy> <url>host.example.com:8003</url> </proxy> The following table contains all parameters and parameter options that are available in base.xml. Configuration parameters of base.xml Parameter verification onlineaccess usepkicache Values true/false true/false Description If set to true, missing CRLs and certificates are being searched online. Default: false Specifies whether a CRL check uses a cache directory or a remote LDAP directory. Default: false Location of dbcert and dbcris directories. Default: <PSE_directory> Defines the proxy if you use a proxy server for the CRL request. Host name and port number ot the proxy This parameter does not support proxy URLs.

pkicachedir proxy (with parameter options) url

<directory_pat h> <proxy>

<host_name:p ort>

58

09/2012

5 Using Certificate Revocation Lists

name (with parameter options) escape delimi ter encodi ng schema

<Distinguished _Name> doublequote /backslash UTF8/T.61 sapcryptoli b/rfc2256

Distinguished Name

Delimiters of the values. Default: doublequote

Character set used for encoding Distinguished Names in ASN.1. Default: UTF8 Schema for the sequence and keywords of the name elements. Default: rfc2256

ldap.xml
You only need to modify this file in an Active Directory environment. If an LDAP URL that does not contain the server name is used as a CRL distribution point (in the default setting, the relevant section is commented out), define the name of the LDAP server in the configuration file ldap.xml. If you are in a Microsoft Windows domain and Active Directory is used as LDAP server, you must enter the value ADS in the parameter name. Example <ldap> <server> <name>ADS</name> </server> </ldap>

Configuration parameters of ldap.xml Parameter timeout Values <milliseconds> Description Timeout of the LDAP server in milliseconds. Default: 40000 Network timeout in milliseconds. Default: 800 Definition of LDAP server used for CRL Enter ADS if Active Directory is used as an LDAP server. Default: no value

nettimeout

<milliseconds>

server (with parameter options) name

<Active_Directory> ADS

09/2012

59

6 Use Cases

6 Use Cases
This section gives an instruction for the most frequently used use cases of NetWeaver Single Sign-On. It provides a rough overview of the steps you take if you want to set up such a solution, and you find multiple helpful references and links.

6.1 Support for Authentication with Kerberos and X.509 on AS ABAP


You want to use Kerberos authentication technology for the client-to-server communication and thus enable single sign-on and secure server-to-server communication using SNC. We assume that there is a Microsoft domain user who requests to authenticate at a Secure Login Client. The Secure Login Client issues a Kerberos service token and authenticates at AS ABAP system 1 with SNC. The server-to.server communication uses X.509 certificates.

6.1.1 Prerequisites
You have installed Secure Login Client on the client workstations in a Microsoft domain. Secure Login Library is installed in the AS ABAP systems 1 and 2. This makes an SNC communication with X.509 certificates possible.

This setup is also possible if SAPCRYPTOLIB is installed in the AS ABAP system 2.

60

09/2012

6 Use Cases

The following SAP NetWeaver Single Sign-On components must be installed in the following environment:

Systems Microsoft Windows client AS ABAP system 1 AS ABAP system 2

Software Components Secure Login Client Secure Login Library (SNC library) Secure Login Library or SAPCRYPTOLIB (SNC library)

6.1.2 Installation and Configuration Steps


Procedure 1. In Microsoft Active Directory, create a technical user that can be used in an AS ABAP. Specify a Service Principal Name for this user (see options 1 and 2). 2. Install the Secure Login Library as SNC security library on AS ABAP system 1. For more information, see the Secure Login Library Installation section in the Installation, Configuration, and Administration Guide of SAP NetWeaver Single Sign-On, Secure Login Library available on http://help.sap.com/nwsso10. 3. Install the Secure Login Library or SAPCRYPTOLIB as SNC security library on AS ABAP system 2. For the installation procedure of SAPCRYPTOLIB on an AS ABAP, see Installing the SAP Cryptographic Library on the AS ABAP (http://help.sap.com/saphelp_nw73ehp1/helpdata/en/49/236897bf5a1902e10000000 a42189c/frameset.htm) on the SAP Help Portal. 4. Configure the SNC parameters on both AS ABAP systems (1 and 2) in the Instance Profile. Use the transaction RZ10 (see Maintaining Profiles (http://help.sap.com/saphelp_nw73ehp1/helpdata/en/c4/3a616a505211d189550000e 829fbbd/frameset.htm) on the SAP Help Portal). 5. On AS ABAP system 1, use the Service Principal Name of the Microsoft Active Directory technical user, create a Kerberos keytab file in the Secure Login Library environment, and save it in the security token container pse.zip (see Installation, Configuration, and Administration Guide for SAP NetWeaver Single Sign-On 1.0, Secure Login Library, SNC Kerberos Configuration, Create Kerberos Keytab ). Generate X.509 certificates in transaction STRUST (for more information on the trust manager, see http://help.sap.com/saphelp_nw73ehp1/helpdata/en/4c/5bdb17f85640f1e10000000a 42189c/frameset.htm). If you use self-signed certificates, import them from the AS ABAP system 2. Option 1 a) Create an X.509 certificate for the AS ABAP, for example CN=KerberosABC, OU=SAP Security, C=DE. Create a Microsoft Service Principal Name for the technical user of the AS ABAP system, for example SAP/[email protected]. b) Start the transaction RZ10 in the AS ABAP. c) Choose your instance profile.

09/2012

61

6 Use Cases

Choose Extended Maintenance and Change. Go to the parameter name snc/identities/as. Enter p:CN=KerberosABC, OU=SAP Security, C=DE The Secure Login Client (1.0 SP02, patch 03 and higher) converts the SNC name for Kerberos use. If SAP GUI receives the SNC name p:CN=KerberosABC, OU=SAP Security, C=DE, the Secure Login Client rebuilds the Service Principal Name, for example, to CN=SAP/[email protected]. This happens if the Secure Login Client uses a Kerberos profile, and SAP GUI has no Kerberos name. For more information, see SAP Note 1696905. Option 2 Create an X.509 certificate for the AS ABAP system Example: CN=SAP/[email protected] Unlike some PKI vendors, Secure Login Server can generate a certificate with special characters, for example @. For more information, see the Installation, Configuration, and Administration Guide for SAP NetWeaver Single Sign-On 1.0, Secure Login Library, Authentication with X.509 Certificates and Kerberos. 6. On AS ABAP system 2, generate X.509 certificate in transaction STRUST (for more information on the trust manager, see http://help.sap.com/saphelp_nw73ehp1/helpdata/en/4c/5bdb17f85640f1e10000000a 42189c/frameset.htm). If you use self-signed certificates, import them from the AS ABAP system 1. 7. Restart the AS ABAP systems 1 and 2. 8. Install the Secure Login Client on your Windows client(s) (see Installation, Configuration, and Administration Guide for SAP NetWeaver Single Sign-On 1.0, Secure Login Client, Secure Login Client Installation), and enable SNC in SAP GUI (see Installation, Configuration, and Administration Guide for SAP NetWeaver Single Sign-On 1.0, Secure Login Client, Enable SNC in SAP GUI). 9. To configure the SNC user mapping, start transaction SU01 on the AS ABAP system 1 (see Installation, Configuration, and Administration Guide for SAP NetWeaver Single Sign-On 1.0, Secure Login Client, User Mapping). Depending on the communication direction, configure secure network communication (SNC) in transaction SM59 (see http://help.sap.com/saphelp_nw73ehp1/helpdata/en/7e/6ca46b1ee4468a98280ff00d b4d97d/frameset.htm). 10. Depending on the communication direction, configure secure network communication (SNC) in transaction SM59 (see http://help.sap.com/saphelp_nw73ehp1/helpdata/en/7e/6ca46b1ee4468a98280ff00d b4d97d/frameset.htm) for AS ABAP system 2.

d) e) f) g)

62

09/2012

7 Troubleshooting

7 Troubleshooting
This section provides further information about how to perform troubleshooting for Secure Login Library.

7.1 SNC Library Not Found


The SNC library and configuration are verified when the SAP ABAP server starts. Problem SNC library cannot be found. Checklist Possible Issues

Verify SAP trace file dev_w0. Verify if Secure Login Library is installed correctly. Verify the installation described in section 2 Secure Login Library Installation. Verify the SNC configuration. Log on to SAP ABAP server using SAP GUI and start transaction RZ10. Choose the instance profile and verify the value of the parameter snc/gssapi_lib. For more information, see section 3 Secure Login Library Configuration. Verify SNC library file access rights for the user starting the SAP server. Verify the SNC library status with the command snc status v or snc O <user_name> status v. Enable Secure Login Library trace and analyze the problem. For more information, see section 4.1 Enable Trace.

7.2 Credentials Not Found


The SNC library and configuration are verified when the SAP ABAP server starts. Problem Could not get credentials. Checklist Possible Issues

Verify SAP trace file dev_w0. Verify if Secure Login Library is installed correctly. Verify the installation described in section 2 Secure Login Library Installation. Verify the SNC configuration. Log on to SAP ABAP server using SAP GUI and start transaction RZ10. Choose the instance profile and verify the SNC configuration. For more information, see section 3 Secure Login Library Configuration.

09/2012

63

7 Troubleshooting

Verify SNC library file access rights for the user starting the SAP server. Verify if the SNC certificate was provided to the Secure Login Library PSE environment. Start a command line shell and change to the Secure Login Library folder <INSTDIR>/<SID>/DVEBMGS<instance_number>/SLL. Set the environment SECUDIR=<INSTDIR>/<SID>/DVEBMGS<instance_number>/sec Use the command: snc O <SAP_service_user> status v Microsoft Windows Example: snc O SAPServiceABC status v Linux Example: snc O abcadm status v

Enable the Secure Login Library trace and analyze the problem. For more information, see section 4.1 Enable Trace.

7.3 No User Exists with SNC Name


Problem If the error message No user exists with SNC name occurs and your login fails, a server with a default Secure Login Library configuration cannot find the SNC name in the database. For further information, see the SAP Note 1635019.

64

09/2012

8 List of Abbreviations

8 List of Abbreviations
Abbreviation ADS CA CAPI CRL CSP DN EAR HTTP HTTPS IAS JAAS JSPM LDAP NPA PIN PKCS PKCS#10 PKCS#11 PKCS#12 PKI PSE RADIUS RFC RSA SAR SCA SLAC SLC SLL SLS SLWC SNC Meaning Active Directory Service Certification Authority Microsoft Crypto API Certification Revocation List Cryptographic Service Provider Distinguished Name Enterprise Application Archive Hyper Text Transport Protocol Hyper Text Transport Protocol with Secure Socket Layer (SSL) Internet Authentication Service (Microsoft Windows Server 2003) Java Authentication and Authorization Service Java Support Package Manager Lightweight Directory Access Protocol Network Policy and Access Services (Microsoft Windows Server 2008) Personal Identification Number Public Key Cryptography Standards Certification Request Standard Cryptographic Token Interface Standard Personal Information Exchange Syntax Standard Public Key Infrastructure Personal Security Environment Remote Authentication Dial-In User Service Remote function call (SAP NetWeaver term) Rivest, Shamir and Adleman SAP Archive Software Component Archive Secure Login Administration Console Secure Login Client Secure Login Library Secure Login Server Secure Login Web Client Secure Network Communication (SAP term)

09/2012

65

8 List of Abbreviations

SSL UPN WAR WAS

Secure Socket Layer User Principal Name Web Archive Web Application Server

66

09/2012

9 Glossary

9 Glossary
Authentication
A process that checks whether a person is really who they claim to be. In a multi-user or network system, authentication means the validation of a users logon information. A users name and password are compared against an authorized list.

Base64 encoding
Base64 encoding is a three-byte to four-characters encoding based on an alphabet of 64 characters. This encoding has been introduced in PEM (RFC1421) and MIME. Other uses include HTTP Basic Authentication headers and general binary-to-text encoding applications. Note: Base64 encoding expands binary data by 33%, which is quite efficient

CAPI
See Cryptographic Application Programming Interface

Certificate
A digital identity card. A certificate typically includes:

The public key being signed. A name, which can refer to a person, a computer or an organization. A validity period. The location (URL) of a revocation center. The digital signature of the certificate produced by the CAs private key.

The most common certificate standard is the ITU-T X.509.

Certification Authority (CA)


An entity which issues and verifies digital certificates for use by other parties.

Certificate Revocation List (CRL)


A group of certificates that have been declared to be invalid. The certificate revocation list is maintained and publically released by the issuing Certification Authority (CA) and typically contains the following information: The certificate's serial number The issuing CA's Distinguished Name The date of revocation.

Certificate Store
Sets of security certificates belonging to user tokens or certification authorities.

CREDDIR
A directory on the server in which information is placed that goes beyond the PSE

09/2012

67

9 Glossary

(personal security environment).

Credentials
Used to establish the identity of a party in communication. Usually they take the form of machine-readable cryptographic keys and/or passwords. Cryptographic credentials may be self-issued, or issued by a trusted third party; in many cases the only criterion for issuance is unambiguous association of the credential with a specific, real individual or other entity. Cryptographic credentials are often designed to expire after a certain period, although this is not mandatory. Credentials have a defined time to live (TTL) that is configured by a policy and managed by a client service process.

CRL Distribution Point


Publicly available location where a Certification Authority (CA) hosts its certificate revocation list (CRL).

Cryptographic Application Programming Interface (CAPI)


The Cryptographic Application Programming Interface (also known variously as CryptoAPI, Microsoft Cryptography API, or simply CAPI) is an application programming interface included with Microsoft Windows operating systems that provides services to enable developers to secure Microsoft Windows-based applications using cryptography. It is a set of dynamically-linked libraries that provides an abstraction layer that isolates programmers from the code used to encrypt the data. Cryptographic Token Interface Standard A standardized crypto-interface for devices that contain cryptographic information or that perform cryptographic functions.

Directory Service
Provides information in a structured format. Within a PKI: Contains information about the public key of the user of the security infrastructure, similar to a telephone book (for example, an X.500 or LDAP directory).

Distinguished Name (DN)


A name pattern that is used to create a globally unique identifier for a person. This name ensures that identical certificates are never created for different people with the same name. The uniqueness of the certificate is additionally ensured by the name of the issuer of the certificate (that is, the certification authority) and the serial number. All PKI users require a unique name. Distinguished Names are defined in the ISO/ITU X.500 standard.

Key Usage
Key usage extensions define the purpose of the public key contained in a certificate. You can use them to restrict the public key to as few or as many operations as needed. For example, if you have a key used only for signing, enable the digital signature and/or non-repudiation extensions. Alternatively, if a key is used only for key management, enable key enciphering.

68

09/2012

9 Glossary

Key Usage (extended)


Extended key usage further refines key usage extensions. An extended key is either critical or non-critical. If the extension is critical, the certificate must be used only for the indicated purpose or purposes. If the certificate is used for another purpose, it is in violation of the CA's policy. If the extension is non-critical, it indicates the intended purpose or purposes of the key and may be used in finding the correct key/certificate of an entity that has multiple keys/certificates. The extension is then only an informational field and does not imply that the CA restricts use of the key to the purpose indicated. Nevertheless, applications that use certificates may require that a particular purpose be indicated in order for the certificate to be acceptable.

Lightweight Directory Access Protocol (LDAP)


A network protocol designed to extract information such as names and e-mail addresses from a hierarchical directory such as X.500.

PKCS#11
PKCS refers to a group of Public Key Cryptography Standards devised and published by RSA Security. PKCS#11 is an API defining a generic interface to cryptographic tokens.

PEM
See Privacy Enhanced Mail.

Personal Identification Number (PIN)


A unique code number assigned to the authorized user.

Personal Information Exchange Syntax Standard


Specifies a portable format for saving or transporting a users private keys, certificates, and other secret information.

Personal Security Environment


The PSE is a personal security area that every user requires to work with. A PSE is a security token container with security-related information. This includes the certificate and its secret private key. The PSE can be either an encrypted file or a smart card and is protected with a password.

PIN
See Personal Identification Number.

Privacy-Enhanced Mail (PEM)


The first known use of Base 64 encoding for electronic data transfer was the Privacyenhanced Electronic Mail (PEM) protocol, proposed by RFC 989 in 1987. PEM defines a "printable encoding" scheme that uses Base 64 encoding to transform an arbitrary sequence of octets to a format that can be expressed in short lines of 7-bit characters, as required by transfer protocols such as SMTP.

09/2012

69

9 Glossary

The current version of PEM (specified in RFC 1421) uses a 64-character alphabet consisting of upper- and lower-case Roman alphabet characters (A Z, az), the numerals (09), and the "+" and "/" symbols. The "=" symbol is also used as a special suffix code. The original specification additionally used the "*" symbol to delimit encoded but unencrypted data within the output stream.

Public FSD
Public file system device. An external storage device that uses the same file system as the operating system.

Public Key Cryptography Standards


A collection of standards published by RSA Security Inc. for the secure exchange of information over the Internet.

Public Key Infrastructure


Comprises the hardware, software, people, guidelines, and methods that are involved in creating, administering, saving, distributing, and revoking certificates based on asymmetric cryptography. Is often structured hierarchically. In X.509 PKI systems, the hierarchy of certificates is always a top-down tree, with a root certificate at the top, representing a CA that does not need to be authenticated by a trusted third party.

Root certification authority


The highest certification authority in a PKI. All users of the PKI must trust it. Its certificate is signed with a private key. There can be any number of CAs between a user certificate and the root certification authority. To check foreign certificates, a user requires the certificate path as well as the root certificate.

Root certification
The certificate of the root CA.

RSA
An asymmetric, cryptographically procedure, developed by Rivest, Shamir, and Adleman in 1977. It is the most widely-used algorithm for encryption and authentication. Is used in many common browsers and mail tools. Security depends on the length of the key: key lengths of 1024 bits or higher are regarded as secure.

Secure Network Communications


A module in the SAP NetWeaver system that deals with the communication with external, cryptographic libraries. The library is addressed using GSS API functions and provides SAP NetWeaver components with access to security functions.

Secure Sockets Layer


A protocol developed by Netscape Communications for setting up secure connections over insecure channels. Ensures the authorization of communication partners and the confidentiality, integrity, and authenticity of transferred data.

70

09/2012

9 Glossary

Single Sign-On
A system that administrates authentication information allowing a user to logon to systems and open programs without the need to enter authentication every time (automatic authentication).

Token
A security token (or sometimes a hardware token, authentication token or cryptographic token) may be a physical device that an authorized user of computer services is given to aid in authentication. The term may also refer to software tokens. Smart-card-based USB tokens (which contain a smart card chip inside) provide the functionality of both USB tokens and smart cards. They enable a broad range of security solutions and provide the abilities and security of a traditional Smart Card without requiring a unique input device (smart card reader). From the computer operating systems point of view a token is a USB -connected smart card reader with one nonremovable smart card present. Tokens provide access to a private key that allows the user to perform cryptographic operations. The private key can be persistent (like a PSE file, smart card, or CAPI container) or non-persistent (like temporary keys provided by Secure Login).

Windows Credentials
A unique set of information authorizing the user to access the Microsoft Windows operating system on a computer. The credentials usually comprise a user name, a password, and a domain name (optional).

X.500
A standardized format for a tree-structured directory service.

X.509
A standardized format for certificates and blocking list.

09/2012

71

You might also like