doag 2015 enterprise_securitymitlda_pundpki-pub

43
1 DOAG Konferenz 2015 terprise Security mit LDAP und PKI ianten der zentralen Benutzerverwaltung Oracle Datenbanken

Upload: loopbackorg-gmbh

Post on 13-Apr-2017

147 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: DOAG 2015 enterprise_securitymitlda_pundpki-pub

1DOAG Konferenz 2015

Enterprise Security mit LDAP und PKIVarianten der zentralen Benutzerverwaltung für Oracle Datenbanken

Page 2: DOAG 2015 enterprise_securitymitlda_pundpki-pub

2DOAG Konferenz 2015

database intelligence | operations excellence | bi solutions

„we go the extra mile“

Jan Schreiber, Pablo Stapff

Loopback.ORG GmbH, Hamburg

Page 3: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 4: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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?“

Page 5: DOAG 2015 enterprise_securitymitlda_pundpki-pub

5DOAG Konferenz 2015

Page 6: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 7: DOAG 2015 enterprise_securitymitlda_pundpki-pub

7DOAG Konferenz 2015

Was tun?

Page 8: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 9: DOAG 2015 enterprise_securitymitlda_pundpki-pub

9DOAG Konferenz 2015

Lösungsansatz #1a:Oracle Internet Directory als

zentrales Verzeichnis

DB FARM

OID

Anwender

(AUTH)

Windows (pGina)

Anwendung XYZ

UNIX PAMWeb-Anwendung

Page 10: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 11: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 12: DOAG 2015 enterprise_securitymitlda_pundpki-pub

12DOAG Konferenz 2015

Datenpflege mit ODSM

Page 13: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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)))

Page 14: DOAG 2015 enterprise_securitymitlda_pundpki-pub

14DOAG Konferenz 2015

Registrieren der Datenbank

Page 15: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 16: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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"

Page 17: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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)

Page 18: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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.

Page 19: DOAG 2015 enterprise_securitymitlda_pundpki-pub

19DOAG Konferenz 2015

Verzeichnisanbindung #1b: Active Directory

Page 20: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 21: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 22: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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“

Page 23: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 24: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 25: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 26: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 27: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 28: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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 

Page 29: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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)) ) )

Page 30: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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) ) )

Page 31: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 32: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 33: DOAG 2015 enterprise_securitymitlda_pundpki-pub

34DOAG Konferenz 2015

Page 34: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 35: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 36: DOAG 2015 enterprise_securitymitlda_pundpki-pub

37DOAG Konferenz 2015

Page 37: DOAG 2015 enterprise_securitymitlda_pundpki-pub

38DOAG Konferenz 2015

Certificate Chaining

Page 38: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 39: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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

Page 40: DOAG 2015 enterprise_securitymitlda_pundpki-pub

41DOAG Konferenz 2015

Public Key Cryptography Standards (PKCS)

Page 41: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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.

Page 42: DOAG 2015 enterprise_securitymitlda_pundpki-pub

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.

Page 43: DOAG 2015 enterprise_securitymitlda_pundpki-pub

44DOAG Konferenz 2015

Vielen Dank für Ihr Interesse.