doag 2015 enterprise_securitymitlda_pundpki-pub
TRANSCRIPT
1DOAG Konferenz 2015
Enterprise Security mit LDAP und PKIVarianten der zentralen Benutzerverwaltung für Oracle Datenbanken
2DOAG Konferenz 2015
database intelligence | operations excellence | bi solutions
„we go the extra mile“
Jan Schreiber, Pablo Stapff
Loopback.ORG GmbH, Hamburg
3DOAG Konferenz 2015
• Oracle Architektur & Performance
• Database Operations und Security
• Data Warehouse und Business Intelligence
Loopback.ORG GmbHdatabase intelligence | operations excellence | bi solutions
@LoopbackORG Blog: blogs.loopback.org
4DOAG 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?“
5DOAG Konferenz 2015
6DOAG 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
7DOAG Konferenz 2015
Was tun?
8DOAG 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
9DOAG Konferenz 2015
Lösungsansatz #1a:Oracle Internet Directory als
zentrales Verzeichnis
DB FARM
OID
Anwender
(AUTH)
Windows (pGina)
Anwendung XYZ
UNIX PAMWeb-Anwendung
10DOAG 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
11DOAG Konferenz 2015
OID-Anbindung und Enterprise User Security (EUS): Funktionsweise
Database client
authentification
Leonard.Nimoy
(1) ConnectLeonard.Nimoy/BIGDB
EUS-enabled
Oracle DBBIGDB
Überprüft Passwort
Hash, ordnet User Rollen und Schema
zu (2) RequestLeonard.Nim
oy(3) ReturnedLeonard.Nim
oy(4) RequestSchema &
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
12DOAG Konferenz 2015
Datenpflege mit ODSM
13DOAG Konferenz 2015
TNS-Konfiguration für OIDcat $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)))
14DOAG Konferenz 2015
Registrieren der Datenbank
15DOAG 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
16DOAG Konferenz 2015
Anmeldung mit EUSSYS@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"
17DOAG 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)
18DOAG 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.
19DOAG Konferenz 2015
Verzeichnisanbindung #1b: Active Directory
20DOAG 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 seinVirtualisierung:
• Nur AD-Schemaänderung:Orclcommonattribut
e• Rollentrennung
DBA/AD
OID Active Directory Verzeichnisintegration
DB FARM
OVD
Database Client
SqlPlus, Java, etc
(AUTH)Map Users,Schema,Rol
es
HashesGroups
OIDHashes
Groups
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
HashesGroups
oidpwdcn.dll
orclCommonAttribute
21DOAG Konferenz 2015
AD-Integration mit Oracle Unified Directory (OUD) & Kerberos
DB FARM
OUD
Database Client
SqlPlus, Java, etc
(EUS)Map Users,
Schema,RolesGroups
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
Kerberos Ticket
22DOAG 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“
24DOAG Konferenz 2015
Lösungsansatz #2: PKI-Authentifizierung
Private Key Private KeyBenutzer / Applikation Datenbank
Zertifizierungsstelle (CA)
User.csr
SSL Handshake
User/CACerts
DB.csr
DB/CACerts
25DOAG 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
26DOAG Konferenz 2015
PKI: Zertifikate und WalletsDatenbank-Server1. Leeres Wallet erstellen2. 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
Client1. Leeres Wallet erstellen2. 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
27DOAG 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
28DOAG 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
29DOAG Konferenz 2015
Display Wallet[oracle@linux11 ~]$ orapki wallet display -wallet /u01/app/oracle/product/11.2.0/dbhome_1/network/pkiOracle PKI Tool : Version 11.2.0.3.0 - ProductionCopyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Requested Certificates:User Certificates:Subject: CN=LOOPDSTrusted Certificates:Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=USSubject: CN=LBO Root Certificate II,OU=LoopCA,O=Loopback.ORG GmbH,O=Loopback.ORG,L=Hamburg,ST=No-State,C=DESubject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=USSubject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=USSubject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=USSubject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
30DOAG Konferenz 2015
PKI: Listener-Konfiguration
SSL_CLIENT_AUTHENTICATION = FALSEWALLET_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)) ) )
31DOAG Konferenz 2015
PKI: TNS-KonfigurationSQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS)NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)SSL_CLIENT_AUTHENTICATION = TRUEWALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_BASE/admin/loopds/pki) ) )
32DOAG Konferenz 2015
Anmeldung mit User/Passwort und SSL$ sqlplus user/[email protected]> 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
33DOAG Konferenz 2015
PKI: Anmeldung mit ZertifikatSQL> create user JANS identified externally as 'CN=jans';SQL> grant create session to JANS;
$ sqlplus /@DB12CConnected.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
34DOAG Konferenz 2015
35DOAG 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
36DOAG 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 2048openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pemopenssl ca -policy policy_anything -config loopca-url.cnf -out Certs/$1.pem\
-infiles Reqs/$1.req
37DOAG Konferenz 2015
38DOAG Konferenz 2015
Certificate Chaining
39DOAG 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
40DOAG 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
41DOAG Konferenz 2015
Public Key Cryptography Standards (PKCS)
42DOAG 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.
43DOAG 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.
44DOAG Konferenz 2015
Vielen Dank für Ihr Interesse.