Post on 22-Aug-2019
transcript
1 DOAG Konferenz 2015
Enterprise Security mit LDAP und PKI Varianten der zentralen Benutzerverwaltung für Oracle Datenbanken
2 DOAG Konferenz 2015
databaseintelligence|opera1onsexcellence|bisolu1ons
„wegotheextramile“
Jan Schreiber, Pablo Stapff Loopback.ORG GmbH, Hamburg
3 DOAG Konferenz 2015
• Oracle Architektur & Performance
• Database Operations und Security
• Data Warehouse und Business Intelligence
Loopback.ORG GmbH databaseintelligence|opera1onsexcellence|bisolu1ons
@LoopbackORG Blog:blogs.loopback.org
4 DOAG Konferenz 2015
Problemstellung
• Die meisten Menschen können sich keine starken Passwörter merken
• Leichte Passwörter sind einfach zu brechen
• Aufgeschriebene Passwörter können in falsche Hände fallen
– Dies gilt auch für Passwortmanager
• Mehrfachbenutzung von Passwörtern erhöht das Risiko
• Audit-Risiken, tatsächliche Privilegienverteilung oft unklar
• "Wer verbirgt sich hinter diesem User?“
6 DOAG Konferenz 2015
Regulatorische Vorgaben
• Bundesdatenschutzgesetz (BDSG) • Datenschutzverordnungen (DSVO) • Landesdatenschutzgesetz (LDSG)
„Zugriffe, mit denen Änderungen an automatisierten Verfahren bewirkt werden können, dürfen nur den dazu ausdrücklich berechtigten Personen möglich sein. Die Zugriffe dieser Personen sind zu protokollieren und zu kontrollieren“ LDSG Schleswig-Holstein, §5 Abs. 2
8 DOAG Konferenz 2015
Lösungsansatz #1: Zentrales Verzeichnis
• Ist in der Regel im Unternehmen bereits vorhanden, zusätzlicher Administrationsaufwand entfällt
• Eindeutige Benutzeridentifikation
• Berechtigungsvergabe nur an einer Stelle
• Keine Schattenkonten, sofortige Sperre möglich
• 1st Level-Support kann Passwörter verwalten
• Compliance Reporting wird möglich
9 DOAG Konferenz 2015
Lösungsansatz #1a: Oracle Internet Directory als zentrales
Verzeichnis
DB FARM
OID
Anwender
(AUTH)
Windows (pGina) Anwendung XYZ
UNIX PAM Web-Anwendung
10 DOAG Konferenz 2015
• Verwaltung von Klimaforschungsdaten
• Bereits 2004 eingerichtet • 7 Datenbanken, 6500
internationale Anwender • Identifikation per OID,
X.509 DFN-Zertifikate optional
EUS & OID im Deutschen Klimarechenzentrum
11 DOAG Konferenz 2015
OID-Anbindung und Enterprise User Security (EUS): Funktionsweise
Database client authentification
Leonard.Nimoy
(1) Connect Leonard. Nimoy/ BIGDB
EUS-enabled Oracle DB
BIGDB
Überprüft Passwort Hash,
ordnet User Rollen und Schema zu
(2) Request Leonard.Nimoy
(3) Returned Leonard.Nimoy
(4) Request Schema &
Enterprise Roles
(5) Returned Schema (SPOCK) & Enterprise Roles
Oracle Internet Directory
(OID)
Ablage für User, Rollen & EUS Konfiguration
(6) Logged in as SPOCK with ROLE SCIENCE_OFFICER
13 DOAG Konferenz 2015
TNS-Konfiguration für OID
cat $TNS_ADMIN/ldap.ora# ldap.ora Network Configuration File: \
/u01/app/11.2.0/grid/network/admin/ldap.ora# Generated by Oracle configuration tools.DIRECTORY_SERVERS= (linux4:3060:3131)DEFAULT_ADMIN_CONTEXT = "dc=loopback,dc=org"DIRECTORY_SERVER_TYPE = OID
WALLET_LOCATION= (SOURCE= (METHOD=file) (METHOD_DATA= (DIRECTORY=/u01/app/oracle/admin/loopds/wallet)))
15 DOAG Konferenz 2015
Einrichtung der EUS-Mappings
eusm createMapping realm_dn="dc=loopback,dc=org" ldap_port=3060 ldap_host=oraldap1 ldap_user_dn="cn=orcladmin" ldap_user_password=XXX database_name="pkilab" map_type="ENTRY" map_dn="cn=test,cn=Users,dc=loopback,dc=org" schema=GLOBAL_CONNECT
16 DOAG Konferenz 2015
Anmeldung mit EUS
SYS@loopds1> create user global_ident identified globally;User created.SYS@loopds1> grant connect to global_ident; Grant succeeded.
oracle@zion ~]$ sqlplus test/geheimSQL*Plus: Release 11.2.0.4.0 Production on Sun Oct 14 11:53:38 2012Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionGLOBAL_IDENT@loopds1> show userUSER is "GLOBAL_IDENT"
17 DOAG Konferenz 2015
Lizenzkosten für EUS? • EUS steht nur für die Enterprise Edition (EE), nicht für
die Standard-Edition zur Verfügung. Vor 11g erforderte der Einsatz von EUS die Lizenzierung der Advanced Security Option (ASO), seitdem heißt es:
• "Usage of Enterprise User Security with Oracle Database strong authentication (PKI, Kerberos) no longer requires Oracle Advanced Security to be licensed. Strong authentication services (Kerberos, PKI, and RADIUS) and network encryption (native network encryption and SSL/TLS) are no longer part of Oracle Advanced Security and are available in all licensed editions of all supported releases of the Oracle database" (5)
18 DOAG Konferenz 2015
Lizenzkosten für OID? • Die Lizenzierung von OID oder OUD erfordert eine "Directory Services Plus"-Lizenz,
die mit etwa $50k / pro Prozessor zu Buche schlägt, oder eine Lizenzierung im Rahmen von Fusion Middleware. Für die Verwendung ausschließlich als Verzeichnisdienst für Oracle-Datenbanken ist es allerdings nicht notwendig, OID separat zu lizensierten:
• "A restricted-use license for Oracle Internet Directory (OID) is included with all editions (except for Oracle Database Express Edition) if users use the Directory Naming feature to configure Oracle Net Services. OID may not be used or deployed for other uses“
• Diese Lizenz schließt die Verwendung als Identity Management Provider allerdings nicht mit ein. Ist OID separat lizensiert, ist der Betrieb einer Repository-Datenbank in der Lizenz enthalten.
20 DOAG Konferenz 2015
Synchronisation • Keine AD-Schema-
änderungen nötig • AD Agent muss auf AD-
Kontrollern laufen und Klartext-Passwörter mitlesen
Proxy: • AD-Schema-
änderungen nötig • Password Filter muss auf
AD-Controllern laufen • AD Update Recht muss
vorhanden sein
Virtualisierung: • Nur AD-Schemaänderung:
Orclcommonattribute • Rollentrennung DBA/AD
OID Active Directory Verzeichnisintegration
DB FARM
OVD
Database Client
SqlPlus, Java, etc
(AUTH) Map Users,
Schema,Roles Hashes Groups
OID
DB FARM
Oracle OID
Database Client
SqlPlus, Java, etc
(AUTH)
Map Users, Schema,Roles
SYNC (DIP)
oidpwdcn.dll
DB FARM
OID
Database Client
SqlPlus, Java, etc
(AUTH)
Map Users, Schema,Roles
Hashes
Groups
oidpwdcn.dll
orclCommonAttribute
21 DOAG Konferenz 2015
AD-Integration mit Oracle Unified Directory (OUD) & Kerberos
DB FARM
OUD
Database Client
SqlPlus, Java, etc
(EUS)
Map Users, Schema,Roles
Groups
OracleContext
OUD Proxy Setup: • Lesender AD-Benutzer • Leserechte auf DB-
Usereinträge im AD • Oracle Context im LDAP • Software: OUD, WebLogic,
ADF • Funktioniert auch mit EUS
[linux7 Oracle_OUD1]$ ./oud-proxy-setup [linux6]$ okinit testuser [linux7]$ oklist
KerberosTicket
22 DOAG Konferenz 2015
AD/Kerberos: Vorteile
• In der (alten) UNIX-Welt erprobtes Protokoll • Standard in Active Directory • Starke, Token-basierte Authentifizierung • Active Directory Schema muss nicht mehr
erweitert oder synchronisiert werden • Single Sign On für DBA Umgebungen • Auch Linux Server lassen sich „kerberisieren“
23 DOAG Konferenz 2015
ktpass -princ ORCL/db12c@PKILAB -mapuser test +rndPass -crypto all -ptype KRB5_NT_PRINCIPAL -out c:\keytab.db12c
[oracle ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora SQLNET.AUTHENTICATION_SERVICES= (BEQ, KERBEROS5) SQLNET.KERBEROS5_REALMS = /etc/krb5.realms SQLNET.KERBEROS5_CONF=/etc/krb5.conf SQLNET.KERBEROS5_KEYTAB=/etc/keytab.db12c SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=ORCL SQLNET.KERBEROS5_CONF_MIT=true SQLNET.FALLBACK_AUTHENTICATION = TRUE
Einrichtung von Kerberos
Sehrgutbeschriebenbei:http://cmuetzli.blogspot.de/2014/08/oracle-db-security-enterprise-user.html
24 DOAG Konferenz 2015
Lösungsansatz #2: PKI-Authentifizierung
PrivateKey PrivateKeyBenutzer / Applikation
Datenbank
Zertifizierungsstelle (CA)
User.csr
SSLHandshake
User/CACerts
DB.csr
DB/CACerts
25 DOAG Konferenz 2015
SSL-PKI: Vorteile
• Verwendung von starker Kryptographie • Einfache Integration von Zwei-Faktor-
Authentifizierung (das Zertifikat als „Something you have“)
• Single Sign On • Mehrfachnutzen: – Auch im Betriebssystem mit Smartcards verwendbar
(Windows, OSX, Linux unterstützt) – Auch für S/MIME E-Mail verwendbar
• Offline-Funktion, Revocation List Abfrage optional
26 DOAG Konferenz 2015
PKI: Zertifikate und Wallets
Datenbank-Server
1. Leeres Wallet erstellen
2. Key und Zertifikat-Request stellen
3. Request durch CA signieren lassen (Z.B. CN=db12c)
4. CA Zertifikat importieren (CN=myCA)
5. Signiertes Zertifikat importieren
Client
1. Leeres Wallet erstellen
2. Key und Zertifikat-Request stellen
3. Request durch CA signieren lassen (Z.B. CN=jans)
4. CA Zertifikat importieren (CN=myCA)
5. Signierte Zertifikat importieren
27 DOAG Konferenz 2015
PKI: Server-Wallet
$ mkdir $ORACLE_BASE/admin/loopds/pki
$ orapki wallet create -wallet \ $ORACLE_BASE/admin/loopds/pki -auto_login -pwd XXX
$ orapki wallet add -wallet $ORACLE_BASE/admin/loopds/pki \ -dn 'CN=db12c' -keysize 2048 -pwd XXX
$ orapki wallet export -wallet $ORACLE_BASE/admin/loopds/pki \ -dn 'CN=db12c' \ -request ~/db12c.csr
$ orapki wallet add -wallet $ORACLE_BASE/admin/loopds/pki \ -cert myca.pem –trusted_cert –pwd XXX
$ orapki wallet add -wallet $ORACLE_BASE/admin/loopds/pki \ -cert db12c.pem –user_cert –pwd XXX
28 DOAG Konferenz 2015
PKI: Client-Wallet
$ orapki wallet create -wallet \ $ORACLE_HOME/owm/wallets/client -auto_login -pwd XXX
$ orapki wallet add -wallet $ORACLE_HOME/owm/wallets/client \
-dn 'CN=jans' -keysize 2048 -pwd XXX
$ orapki wallet export -wallet $ORACLE_HOME/owm/wallets/client \ -dn 'CN=jans' \ -request ~/jans.csr
$ orapki wallet add -wallet $ORACLE_HOME/owm/wallets/client \ -cert myca.pem –trusted_cert –pwd XXX
$ orapki wallet add -wallet $ORACLE_HOME/owm/wallets/client \ -cert jans.pem –user_cert –pwd XXX
29 DOAG Konferenz 2015
Display Wallet
[oracle@linux11 ~]$ orapki wallet display -wallet /u01/app/oracle/product/11.2.0/dbhome_1/network/pki Oracle PKI Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=LOOPDS Trusted Certificates: Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: CN=LBO Root Certificate II,OU=LoopCA,O=Loopback.ORG GmbH,O=Loopback.ORG,L=Hamburg,ST=No-State,C=DE Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
30 DOAG Konferenz 2015
PKI: Listener-Konfiguration
SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_BASE/admin/loopds/pki) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db12c.loopback.org)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = db12c.loopback.org)(PORT = 2484)) ) )
31 DOAG Konferenz 2015
PKI: TNS-Konfiguration
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS) NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME) SSL_CLIENT_AUTHENTICATION = TRUE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_BASE/admin/loopds/pki) ) )
32 DOAG Konferenz 2015
Anmeldung mit User/Passwort und SSL $ sqlplus user/pwd@DB12C Connected. SQL> select sys_context('USERENV', 'NETWORK_PROTOCOL') from dual; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') ------------------------------------------------------------------------tcps SQL> select sys_context('USERENV', 'AUTHENTICATION_METHOD') from dual; SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') ------------------------------------------------------------------------PASSWORD
33 DOAG Konferenz 2015
PKI: Anmeldung mit Zertifikat
SQL> create user JANS identified externally as 'CN=jans'; SQL> grant create session to JANS; $ sqlplus /@DB12C Connected. SQL> select sys_context('USERENV', 'NETWORK_PROTOCOL') from dual; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') --------------------------------------------------- tcps SQL> select sys_context('USERENV', 'AUTHENTICATION_METHOD') from dual; SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') ----------------------------------------------------- SSL
35 DOAG Konferenz 2015
PKI: JDBC
• Auch per JDBC kann SSL verwendet werden • Integration auch über keytool
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servernam e)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename)))"); Properties props = new Properties(); props.setProperty("user", "scott"); props.setProperty("password", "tiger"); props.setProperty("javax.net.ssl.trustStore",
"/truststore/ewallet.p12"); props.setProperty("javax.net.ssl.trustStoreType","PKCS12");
props.setProperty("javax.net.ssl.trustStorePassword","welcome123"); Connection conn = DriverManager.getConnection(url, props);
http://www.oracle.com/technetwork/topics/wp-oracle-jdbc-thin-ssl-130128.pdf
How to configure Oracle SQLDeveloper to use a SSL connection that was configured as per Note 401251.1
36 DOAG Konferenz 2015
Be a Certificate Authority (CA)
• Externer Dienstleister? • Es gibt verschiedene kommerzielle Produkte
– Auch Open Source: • EBJCA • OpenXPKI
• Alle Schritte sind in OpenSSL implementiert – Nicht mit selbstsignierten Zertifikaten zu verwechseln
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pem openssl ca -policy policy_anything -config loopca-url.cnf -out Certs/$1.pem\
-infiles Reqs/$1.req
39 DOAG Konferenz 2015
PKI mit Smartcards
• Authentifizierung an Besitz der Karte gekoppelt
• Zertifikat kann nicht kopiert werden
• Vorraussetzung: Kartenleser, Middleware, PKI und Smartcards müssen miteinander kompatibel sein
• Ansonsten wie bei SSL-Wallets
40 DOAG Konferenz 2015
Smartcard-PKI: Client-Konfiguration
orapki wallet p11_add -wallet <Wallet PFAD> \
-p11_lib <DLL PFAD>
• Middleware im Wallet verankern
• Middleware muss PKCS#11 implementieren
• Oracle liefert keine Liste kompatibler Hardware
• SmartCard-Einführung hat Projektcharakter
42 DOAG Konferenz 2015
Smartcard und Oracle Wallet
orapki wallet p11_verify -wallet . pkcs11_wallet -pwd XXX
Oracle PKI Tool : Version 11.2.0.4.0 – Production
Number of certificates found on token = 1
Cert with subject name: CN=Stapff Pablo has a matching private key on token.
Cert with subject name: CN=Stapff Pablo installed as user cert in wallet.
43 DOAG Konferenz 2015
Zusammengefasstes • Eine LDAP-Anbindung ist mit überschaubarem Aufwand
realisierbar. Lizenzkosten für OID oder OUD müssen allerdings berücksichtigt werden.
• Die Verzeichnis-Anbindung macht in der Regel nur zusammen mit Enterprise User Security (EUS) Sinn.
• Active Directory Anbindung wird in der Praxis wahrscheinlich nur mit Kerberos & OUD zu realisieren sein.
• Die Verwendung von SSL-Zertifikaten ist eine kostengünstige und mächtige Möglichkeit, die vor allem in Zusammengang mit einer unternehmensweiten PKI Sinn macht.
• Die Implementierung aller vorgestellen Lösungen ist in der Praxis etwas komplexer als in der Theorie.