Einleitung
Das Secure Sockets Layer (SSL) Protokoll dient zum Sichern von Verbindungen auf der Transportschicht (Transport Layer Security, TLS). Das Protokoll TLS ist die Nachfolgebezeichnung des Protokolls SSL (Wikipedia: Seit Version 3.0 wird das SSL-Protokoll unter dem neuen Namen TLS weiterentwickelt und standardisiert, wobei Version 1.0 von TLS der Version 3.1 von SSL entspricht)
(Abbildung entnommen aus Wikipedia)
Die Verwendung der Transport Layer Security (TLS) bietet folgenden Schutz:
- Authentifizierung
Die Kommunikationspartner (Server, Client oder beide) können authentifiziert werden. - Integrität und Vertraulichkeit der Daten
Die zwischen dem Client und dem Server übertragenen Daten sind verschlüsselt, wodurch der Schutz der Integrität und Vertraulichkeit geboten wird. Ein Abhörer kann auf die Daten nicht zugreifen oder sie manipulieren.
SAP betreibt den Applikationsserver Netweaver in drei Variationen:
- AS ABAP
- AS Java
- Double Stack (AS ABAP + AS JAVA)
Schlüssel und Zertifikate werden für den AS ABAP und den AS Java an unterschiedlichen Orten abgelegt:
- Auf dem AS ABAP wird bei Verwendung der SAP Cryptographic Library für SSL oder SNC jedes Schlüsselpaar in einer Datei, einer Persönlichen Sicherheitsumgebung (Personal Security Environment, PSE) abgelegt. Um die PSEs zu pflegen, verwenden Sie den Trust-Manager (Transaktion STRUST).
- Für SSL auf dem AS Java werden die Schlüsselpaare in Keystore-Einträgen in Keystore-Sichten abgelegt. Um die Schlüssel zu pflegen, verwenden Sie den Keystore-Service.
Folgende Informationen umfaßt die PSE bzw. Keystore-Sicht:
- Public-Key-Schlüsselpaar des Servers
das für die verschiedenen Sicherheitsfunktionen (Signieren, Signaturen verifizieren, Nachrichten ver- und entschlüsseln) zu verwenden ist - Zertifikatsliste
die Liste der vertrauenswürdigen Kommunikationspartner
Je nachdem, ob der AS ABAP bzw. AS JAVA als Client oder Server einer SSL-Verbindung arbeitet, sind unterschiedliche PSEn/Keystore-Sichten zu verwenden:
- SSL-Server-PSE/service_ssl Keystore:
Der SAP Applikationsserver arbeitet als Server einer SSL Verbindung - SSL-Client-PSE/neuer Eintrag im Keystore:
Der SAP Applikationsserver arbeitet als Client einer SSL Verbindung
Bevor Sie SSL auf einem SAP Netweaver Applikationsserver verwenden können, müssen Sie diesen zunächst dafür konfigurieren (siehe: AS ABAP für SSL-Unterstützung konfigurieren bzw. Transport Layer Security on the AS Java).
Schlüsselpaare erzeugen
Als Verschlüsselungstechnik wird die Public-Key-Technologie verwendet (siehe auch: Vertrauensbeziehung aufbauen). In diesem Fall wird jeder Komponente ein Schlüsselpaar ausgestellt, das aus privatem und öffentlichem Schlüssel besteht. Der private Schlüssel wird sicher auf dem Server abgelegt und der öffentliche Schlüssel wird in Form eines Public-Key-Zertifikats an die Kommunikationspartner verteilt. Die Vertrauensbeziehung wird durch Überprüfen des öffentlichen Schlüssels des Kommunikationspartners, der mit dem Public-Key-Zertifikat geliefert wird, eingerichtet.
Für die serverseitige Authentifizierung wird also für den Server eine Schlüsselpaar erzeugt, der Server erhält den privaten Schlüssel und der Client den öffentlichen Schlüssel. Bei clientseitiger Authentifizierung erhält der Client den privaten Schlüssel und der Server den öffentlichen Schlüssel.
Ein Zertifikat kann man selbst erstellen (selbstsignierte Zertifikate) oder von einer vertrauenwürdigen CA (z.B. Verisign etc.) ausstellen lassen. Der Vorteil von selbst signierten Zertifikaten gegenüber gekauften ist ganz einfach, sie kosten NICHTS!
Es besteht die Möglichkeit eine freie Lösung, wie z.B. OpenSSL zu verwenden (siehe: Howto selbstsigniertes SSL Zertifikat erstellen) oder mit SAP Hilfsmitteln zu arbeiten (siehe: PSE für den Server mit SAPGENPSE anlegen).
Für die Verwendung von SAP Hilfsmitteln ist es wichtig, daß folgende Voraussetzungen erfüllt sind:
- Die SAP Cryptographic Library ist auf dem Server installiert.
- Die Umgebungsvariable SECUDIR wurde auf den Ablageort der PSE gesetzt.
Um selbstsignierte Zertifikate unter Verwendung von SAP Hilfsmitteln zu erzeugen, gehen Sie wie folgt vor. Generieren Sie mit dem Befehl get_pse die PSE des Servers, die das Public-Key-Schlüsselpaar und ein Publik-Key-Zertifikat enthält. Wenn Sie eine vertrauenswürdige CA verwenden, können Sie auch den Befehl get_pse verwenden, um eine Zertifikatsanforderung zu generieren. Standardmäßig wird alles erzeugt, allerdings können Sie mit den Optionen -noreq oder -onlyreq die Zertifikatsanforderung explizit auslassen (= selbstsignierte Zertifikate) oder erzeugen. Der Befehl sapgenpse ist unter Linux im Verzeichnis /sapmnt/<SYSID>/exe/ zu finden.
Beispiel: PSE und selbstsigniertes Zertifikat für den Anwendungsserver erzeugen
Mit der folgenden Befehlszeile erzeugen Sie eine PSE für den Anwendungsserver (<SID>= ABC), die ein selbstsigniertes Zertifikat enthält. Eine Zertifikatsanforderung ist nicht erforderlich. Die PSE befindet sich in D:usrsapABCDVEBMGS28secABC.pse. Die PIN, die die PSE schützt, lautet abcpin. Der Distinguished Name des Servers lautet CN=ABC, OU=Test, O=MyCompany, C=DE.
sapgenpse get_pse -p D:usrsapABCDVEBMGS28secABC.pse
-noreq -x abcpin "CN=ABC, OU=Test, O=MyCompany, C=DE"
Hinweis: Setzen der Umgebungsvariablen ist eventuell notwendig:
export LD_LIBRARY_PATH=/sapmnt/NWA/exeexport SECUDIR=/usr/sap/NWA/DVEBMGS00/sec
Die Syntax zum Befehl sapgenpse ist unter PSE für den Server mit SAPGENPSE anlegen zu finden.