admincamp 2016 - securing ibm collaboration with tls (german)
TRANSCRIPT
Notes & Domino –> mit Verse und On-Premises AdminCamp 2016 – Sept. 19-21
Absicherung der IBM Collaboration Umgebungen
mit TLS
20. September 2016, Admincamp 2016
Alexander Novak, [email protected], Tel.: +49 89 38 40 850
edcom Software & Consulting GmbH, Baierbrunner Straße 39, 81379 München
www.edcom.de / noviblog.net
Seite 2 AdminCamp 2016 – Sept. 19-21
Begriffe
Domino & TLS Einstellungen/Konfiguration
Domino SSL Key Erstellung (Kyrtool)
Websphere SSL Konfiguration
Agenda
Seite 3 AdminCamp 2016 – Sept. 19-21
Hybrides Verschlüsselungsprotokoll, das Daten im Internet sicher
transferiert werden.
Solche Techniken werden vor allem eingesetzt, wenn vertrauliche
Daten (zum Beispiel Bankgeschäfte im Internet) übermittelt werden.
SSL 3.0 (veraltet)
SSL 3.1 = TLS 1.0 (Rename)
TLS 1.0 bis TLS 1.2
TLS 1.3 (in Bearbeitung)
Protokolle: HTTP, IMAP, POP3, SMTP, LDAP
SSL (Secure Socket Layer) / TLS (Transport Layer Security)
Seite 4 AdminCamp 2016 – Sept. 19-21
Seite 5 AdminCamp 2016 – Sept. 19-21
Im Protokoll Transport Layer Security (TLS) legt die Cipher Suite fest,
welche Algorithmen zum Aufbau einer gesicherten Datenverbindung
verwendet werden sollen.
Dabei identifiziert jede Cipher Suite eine Kombination aus vier
Algorithmen:
Schlüsselaustausch: RSA, DH (auch ADH, ECDH), PSK
Authentifizierung: RSA, DSA (auch ECDSA), PSK
Hashfunktion: MD5, SHA
Verschlüsselung: keine, RC4, DES, 3DES, AES
Cipher Suite
Seite 6 AdminCamp 2016 – Sept. 19-21
RSA:= Rivest Shamir Adleman
Asymetrisches Verfahren (public/privat) zum Verschlüsselung und digitalen Signieren
Wird oft mit symetrischen Verfahren kombiniert (z.B. 3DES, AES)
DH:= Diffie-Hellmann
Schlüsselaustauschprotokoll zur Erzeugung geheimer Schlüssel für zwei
Kommunikationspartner
DSA:= Digital Signature Algorithm
Standard Algorythmus der US-Regierung für digitale Signaturen
EC*:= Elliptic Curve * (z.B. ECDH, ECDSA)
Technik zur Übertragung der Schlüssel in elliptischen Kurven
Verschlüsselungstechniken/algorithmen
Seite 7 AdminCamp 2016 – Sept. 19-21
PSK:= Pre-Shared Key
Verschlüsselung mit vorher vereinbartem Schlüssel = Verteilungsproblem
Wird oft bei WLANs eingesetzt
RC4:= Rons Code
Symmetrische Stromverschlüsselung
NOT SECURE
Einsatz durch das IETF (Internet Engineering Task Force) seit Feb. 2015 verboten
DES:= Data Encryption Standard
Symmetrische Blockverschlüsselung (56Bit), Mehrfahrnutzung (TripleDES / 3DES)
Gilt als NOT SECURE
Verschlüsselungstechniken/algorithmen
Seite 8 AdminCamp 2016 – Sept. 19-21
AES := Advanced Encryption Standard
Symmetrische Blockverschlüsselung (128, 192, 256 Bit)
Nachfolger von DES; Vorgabverschlüsselung für Regierungen
AE AD := Authenticated Encryption with Associated Data
Symmetrische Blockverschlüsselung
Prüfung der Daten auf Vertraulichkeit, Integrität und Authentizität
Schutz vor Angriffen gegenüber Hashes und Cipher Block Chaining (CBC)
Verschlüsselungstechniken/algorithmen
Seite 9 AdminCamp 2016 – Sept. 19-21
Betriesmodi für Blockchiffres Definition wie mit einer Blockchiffre (AES, DES, AEAD) verschlüsselt werden soll
CBC := Cipher Block Chaining Mode
CTR := Counter Mode
GCM := Galois/Counter Mode
GMAC := Galois Message Authentication Mode (GCM nur Authentifizierung)
HMAC := Keyed-Hash Message Authentication Code Nachrichtenauthentifizierungscode basierend auf Hash-Funktionen
Gewissheit über den Ursprung von Daten/Nachrichten zu erhalten und ihre Integrität zu
überprüfen.
Verschlüsselungstechniken/algorithmen
Seite 10 AdminCamp 2016 – Sept. 19-21
PFS := Perfect Forward Secrecy
Eigenschaft der Schlüsselaustauschprotokolle (z.B. DH)
Verhindert die Entschlüsselung älterer Datenübermittlungen wenn der
Langzeitschlüssel aufgedeckt (kompromittiert) wurde
HSTS := HTTP Strict Transport Security
ein Sicherheitsmechanismus für HTTPS-Verbindungen, der vor der
Aushebelung der Verbindungsverschlüsselung durch eine SSL downgrade
(TLS>SSL) Attacke schützen soll
Verschlüsselungstechniken/algorithmen
Seite 11 AdminCamp 2016 – Sept. 19-21
MD5 := Message Digest Algorithm 5
ist eine weit verbreitete kryptologischer Hashfunktionen, die aus einer beliebigen
Nachricht einen 128-Bit-Hashwert erzeugt.
MD5 gilt inzwischen als NOT SECURE, da es mit überschaubarem Aufwand möglich ist,
unterschiedliche Nachrichten zu erzeugen, die den gleichen MD5-Hashwert aufweisen
SHA := Secure Hash Algorithm
bezeichnet eine Gruppe standardisierter kryptologischer Hashfunktionen.
SHA-1 mit 128 Bit, SHA-2 Familie, SHA-3 Familie
SHA-1 gilt seit 2005 NOT SECURE und es wird vom BSI seit 2010 empfohlen diesen
nicht mehr zu verwenden
SHA-1 wird aktuell und zukünftig von den Browser geblockt
SHA1-basierte SSL-Zertifikate und Browserwarnungen
Verschlüsselungstechniken/algorithmen
Seite 12 AdminCamp 2016 – Sept. 19-21
SHA-1 (160 Bit Länge) << DO NOT USE http://de.wikipedia.org/wiki/Secure_Hash_Algorithm
SHA-2 / SHA-256 (224 Bit, 256 Bit, 384 Bit und 512 Bit) http://de.wikipedia.org/wiki/SHA-2
SHA-3 „Keccak“ (128 Bit, 256 Bit)
Neues Hashverfahren (Aug. 2015) mit „Zustandsvektor“, jedoch scheinbar langsam
http://de.wikipedia.org/wiki/SHA-3
Secure Hash Algorithm (SHA) Techniken
Seite 13 AdminCamp 2016 – Sept. 19-21
Man in the Middle
Abfangen des Datentransfers (eine Art Proxy)
ohne Kenntnis des Anwenders
BEAST := Browser Exploit Against SSL/TLS
Cipher Block Chaining (CBC) Verwundbarkeit (Man in the Middle)
SSL renegotiation
SSL Neuverhandlung
HTTP/s Sicherheitslücken
Seite 14 AdminCamp 2016 – Sept. 19-21
Padding Oracle On Downgraded Legacy Encryption
... ist eine schwerwiegende Sicherheitslücke in verschiedenen Internet-
Protokollen, wodurch über verschlüsselte Verbindungen private Daten von
Clients und Servern ausgelesen werden können (Quelle: Wikipedia)
Sicherheitslücke bei SSL V3.0 und seit Ende 2014 auch TLS V1.0/1.1
SSL Downgrade & Cipher Block Chaining (CBC) Angriff
Referenz(en)
https://www.openssl.org/~bodo/ssl-poodle.pdf
http://de.wikipedia.org/wiki/Poodle
HTTP/s Sicherheitslücken - Poodle
Seite 15 AdminCamp 2016 – Sept. 19-21
... ein schwerwiegender Programmfehler in älteren Versionen der Open-Source-
Bibliothek OpenSSL, durch den über verschlüsselte TLS-Verbindungen private
Daten von Clients und Servern ausgelesen werden können. (Quelle: Wikipedia)
Sicherheitslücke bei OpenSSL V1.0.1 – 1.0.1f
Lücke wurde mit Version 1.0.1g (April 2014) behoben
Referenz(en)
http://de.wikipedia.org/wiki/Heartbleed
Jan. 2016: Weitere Sicherheitslücke in OpenSSL V1.0.1 und V1.0.2
OpenSSL fixt kritische Sicherheitslücke fixed mit V1.0.1r/V1.0.2f
HTTP/s Sicherheitslücken - Heartbleed
Seite 16 AdminCamp 2016 – Sept. 19-21
FREAK := Factoring RSA Export Keys
Schwachstelle im RSA 512 Bit Schlüssel (cipher = RSA_Export); trotz höherer cipher wird
vom Angreifer ein „fall back“ auf den unsicheren RSA 512 Bit Schlüssel erzwungen
https://de.wikipedia.org/wiki/FREAK_%28Sicherheitsl%C3%BCcke%29
Domino ist davon nicht betroffen
Websphere IFIX: PI36563 - Interim fix to remove the RSA_Export and RC4 ciphers
RC4 Bar Mitzvah Attacke
Angriff auf die RC4 Chiffres
https://en.wikipedia.org/wiki/Bar_mitzvah_attack
RC4-SHA Cipher deaktivieren bzw entfernen
HTTP/s Sicherheitslücken
Seite 17 AdminCamp 2016 – Sept. 19-21
Blockchiffren (cipher)
AES-128, AES-192, AES-256 mit folgenden Betriebsarten
Galois-Counter-Mode (GCM)
Cipher-Block Chaining (CBC)
Counter Mode (CTR)
Asymetrische Verschlüsselung (encryption)
Diffie-Hellman
EC Diffie-Hellmann (ECDHE)
RSA
Hashing
SHA-256, SHA-512/256, SHA-384 und SHA-512
SHA3-256, SHA3-384, SHA3-512
BSI Empfehlung (Feb. 2016) BSI TR-02102 Kryptographische Verfahren: Empfehlungen und Schlüssellängen
Seite 18 AdminCamp 2016 – Sept. 19-21
Begriffe
Domino & TLS Einstellungen/Konfiguration
Domino SSL Key Erstellung (Kyrtool)
Websphere SSL Konfiguration
Agenda
Seite 19 AdminCamp 2016 – Sept. 19-21
IBM Domino 2014 HTTP Stack bietet nur SSL V3.0
Kein natives TLS Protokoll
TLS nur mit IBM HTTP Server
IHS Plug-in mit IBM Domino 9.x
Standalone
Auf Druck der Kunden wurden Interims Fixes (IF) für TLS 1.0
(HTTP, SMTP, LDAP, POP3 & IMAP) entwickelt
SSLv3 POODLE Angreifbarkeit (CVE-2014-3566)
Fix (Nov 2014)
IBM Notes/Domino 9.0.1 FP2 IF1 & 9.0 IF6
IBM Notes/Domino 8.5.3 FP6 IF4, 8.5.2 FP4 IF2, 8.5.1 FP5 IF2
IBM Domino HTTP Stack 2014
Seite 20 AdminCamp 2016 – Sept. 19-21
Weitere Fix(es) wg. Poodle Angriffe im TLS v1.0
TLS POODLE Angreifbarkeit (CVE-2014-8730)
Fix (Dez. 2014)
IBM Notes/Domino 9.0.1 FP2 IF3 & 9.0 IF7
IBM Notes/Domino 8.5.3 FP6 IF6, 8.5.2 FP4 IF3, 8.5.1 FP5 IF3
Automatische Deaktivierung
SSL V2 IMAP
SSL V3 via Notes.ini := DISABLE_SSLV3=1
SSL renegotiation
Alle schwachen Cipher (<128Bit) wurden entfernt
Ciphersuite TLS_FALLBACK_SCSV (verhindert das Erzwingen der SSLV3-Verbindung)
„reordering“ Cipher Liste um AEC cipher zuerst zu nutzen
SSLv3 POODLE Angreifbarkeit der IBM JVM 1.6 SR16 FP1
Aktualisierung der IBM JVM 1.6 SR16 FP2 für IBM Notes/Domino 9.0.1 FP2 & 8.5.3 FP6
Security Bulletin: Multiple vulnerabilities in IBM Java SDK affect IBM Notes and Domino
IBM Notes/Domino Fix – Dez 2014
Seite 21 AdminCamp 2016 – Sept. 19-21
Implementierung von TLS 1.0 (Nov 2014)
IBM Notes/Domino 9.0.1 FP2 IF1 & 9.0 IF6
IBM Notes/Domino 8.5.3 FP6 IF4, 8.5.2 FP4 IF2, 8.5.1 FP5 IF2
SHA-2 Support (Nov 2014)
IBM Notes/Domino 9.0.1 FP2 IF1 & 9.0 IF6
Implementierung von TLS 1.2 (Apr 2015)
IBM Domino 9.0.1 FP3 IF2 & IBM Notes 9.0.1 FP3 IF3
HTTP, SMTP, LDAP, POP3 & IMAP
https://www-10.lotus.com/ldd/dominowiki.nsf/dx/TLS_1.2
Perfect Forward Secrecy (PFS) via Ephemeral Diffie-Hellman (DHE)
Authenticated Encryption with Associated Data (AEAD) mit Advanced Encryption Standard (AES)
Implementierung von HTTP Strict Transport Security (HSTS)
IBM Notes/Domino Security Fix Historie
Seite 22 AdminCamp 2016 – Sept. 19-21
„two image parsing buffer overflow“ in Dojo (Mai 2015)
IBM Notes/Domino 9.0.1 FP3 IF3
IBM Notes/Domino 8.5.3 FP6 IF6
http://www-01.ibm.com/support/docview.wss?uid=swg21883245
Implementierung von Eliptic Curve DHE (ECDHE) (Okt 2015)
IBM Domino 9.0.1 FP4 IF2
Apple App Transport Security verwenden ECDHE Cipher
http://www-01.ibm.com/support/docview.wss?uid=swg21966059
Domino GIF processing “overflow“ (Okt 2015)
IBM Notes/Domino 9.0.1 FP4 IF3
IBM Notes/Domino 8.5.3 FP6 IF10
http://www-01.ibm.com/support/docview.wss?uid=swg21969050
IBM Notes/Domino Security Fix Historie
Seite 23 AdminCamp 2016 – Sept. 19-21
MD5 SLOTH TLS 1.2 Verwundbarkeit (Jan 2016)
IBM Domino 9.0.1 FP5 IF1
IBM Notes 9.0.1 FP5 IF1 (Linux), FP5 IF2 (Windows), FP1 IF1 (Mac 64 Bit)
http://www-01.ibm.com/support/docview.wss?uid=swg21974958
Support für Extended Master Secret (TLS 1.2)
Deaktivierung der „TLS Session Resumption“ (Wiederaufnahme der bestehenden Verbindung) für
ausgehende Verbindungen
IBM Java SDK V6SR16FP15 SLOTH TLS1.2 Verwundbarkeit (Feb 2016)
IBM Notes/Domino 9.0.1 FP5 JVM Patch - V6SR16FP20
Multiple Vulnerabilities in IBM Java SDK affect IBM Domino
How to use the IBM Notes & Domino JVM installer
<ProgramFiles>\jvmpatcher.log
IBM Notes/Domino Security Fix Historie
Seite 24 AdminCamp 2016 – Sept. 19-21
Flexera InstallShield Verwundbarkeit (Juni 2016)
IBM Notes 8.5-9.0.1 Installer, IBM ICAA 1.0.
Trojaner im „untrusted“ Suchpfad kann bei der InstallShield Installation evlt. Adminrechte auf dem
System erlangen
Workaround: <systemdir</mapistub.dll & mapi32.dll to <installdir>
IBM ICAA InstallShield vulnerable to DLL planting (CVE-2016-2542)
IBM Notes InstallShield vulnerable to DLL planting (CVE-2016-2542)
IBM Traveler XML External Entity Injection (XXE) Verwundbarkeit (Juli 2016)
IBM Traveler 9.0.1 FP11
IBM Domino 8.5.3 – 9.0.1
XML External Entities Injection Vulnerability in IBM Traveler (CVE-2016-3039)
IBM Notes/Domino Security Fix Historie
Seite 25 AdminCamp 2016 – Sept. 19-21
IBM Java SDK V6SR16FP25 Verwundbarkeit (Aug 2016)
IBM Notes/Domino 8.5.3 FP6 / 9.0.1 FP6 JVM Patch - V6SR16FP30
IBM Notes/Domino 9.0.1 FP7 - JVM FP30 included
Multiple Vulnerabilities in IBM Java SDK affect IBM Notes/Domino
How to use the IBM Notes & Domino JVM installer = <ProgramFiles>\jvmpatcher.log
AES & SHA-2 Support für Notes Encryption (Sept. 2016)
IBM Notes / Domino 9.0.1 FP7
Authentication encryption = SHA-2 anstatt SHA-1 (HMAC-SHA 256 = Vorgabe FP7)
Port ecryption = AES oder SHA-2 anstatt RC4
HMAC-SHA256, AES-CBC, AES GCM, Forward Secrecy
Authentication & port encryption enhancements in Notes and Domino 9.0.1 FP7
IBM Notes/Domino Security Fix Historie
Seite 26 AdminCamp 2016 – Sept. 19-21
Die Java Klasse HttpsURLConnection verbindet sich mit dem
TLSV1.0 Protokoll
IBM Domino 9.0.1FP3 IF2+
TLSv1.2 Verbindung für Java Agents (HttpsURLConnection class)
erzwingen
Notes.ini
JavaUserOptionsFile=C:\Dominoprog\JVM\jvmOptions.txt
jvmOptions.txt
https.protocols=TLSv1.2
Config Domino to connect over TLSv1.2 running Java agents HttpsURLConnection class
IBM Domino Java Agents TLS Parameter
Seite 27 AdminCamp 2016 – Sept. 19-21
DISABLE_SSLV3=1
Deaktivierung von SSLV3
SSL_DISABLE_TLS_10=1
Deaktivierung von TLS 1.0 (9.0.1FP3IF3+)
SSL_DISABLE_TLS_12=1
Deaktivierung von TLS 1.2 (9.0.1FP5+)
SSL_DISABLE_RENEGOTIATE=1
Unterbindet die SSL Neuverhandlung
SSL_DISABLE_FALLBACK_SCSV=1
Deaktivierung der Fallback_SCSV Funktion > reduziert die Sicherheit
IBM Domino TLS Parameter
Seite 28 AdminCamp 2016 – Sept. 19-21
IBM Domino SSL/TLS Cipherorder – 9.0.1 F3
TLS 1.0 / SSLv3 - Default vs. complete
DHE_RSA_WITH_AES_256_CBC_SHA (39)
RSA_WITH_AES_256_CBC_SHA (35)
RSA_WITH_AES_128_CBC_SHA (2F)
DHE_RSA_WITH_AES_128_CBC_SHA (33)
RSA_WITH_3DES_EDE_CBC_SHA (0A)
RSA_WITH_RC4_128_SHA (05)
TLS 1.2 - Default vs. complete
DHE_RSA_WITH_AES_256_GCM_SHA384 (9F)
DHE_RSA_WITH_AES_128_GCM_SHA256 (9E)
DHE_RSA_WITH_AES_256_CBC_SHA256 (6B)
DHE_RSA_WITH_AES_256_CBC_SHA (39)
DHE_RSA_WITH_AES_128_CBC_SHA256 (67)
RSA_WITH_AES_256_GCM_SHA384 (9D)
RSA_WITH_AES_128_GCM_SHA256 (9C)
RSA_WITH_AES_256_CBC_SHA256 (3D)
RSA_WITH_AES_256_CBC_SHA (35)
RSA_WITH_AES_128_CBC_SHA256 (3C)
RSA_WITH_AES_128_CBC_SHA (2F)
DHE_RSA_WITH_AES_128_CBC_SHA (33)
RSA_WITH_3DES_EDE_CBC_SHA (0A)
RSA_WITH_RC4_128_SHA (05)
Seite 29 AdminCamp 2016 – Sept. 19-21
IBM Domino SSL/TLS Cipherorder – 9.0.1 FP4+
TLS 1.0 / SSLv3 - Default vs. complete
ECDHE_RSA_WITH_AES_256_CBC_SHA (C014)
DHE_RSA_WITH_AES_256_CBC_SHA (0039)
ECDHE_RSA_WITH_AES_128_CBC_SHA (C013)
RSA_WITH_AES_256_CBC_SHA (0035)
RSA_WITH_AES_128_CBC_SHA (002F)
RSA_WITH_3DES_EDE_CBC_SHA (000A)
RSA_WITH_RC4_128_SHA (0005)
TLS 1.2 – Default vs. complete
ECDHE_RSA_WITH_AES_256_GCM_SHA384 (C030)
DHE_RSA_WITH_AES_256_GCM_SHA384 (009F)
ECDHE_RSA_WITH_AES_128_GCM_SHA256 (C02F)
DHE_RSA_WITH_AES_128_GCM_SHA256 (009E)
ECDHE_RSA_WITH_AES_256_CBC_SHA384 (C028)
DHE_RSA_WITH_AES_256_CBC_SHA256 (006B)
ECDHE_RSA_WITH_AES_256_CBC_SHA (C014)
DHE_RSA_WITH_AES_256_CBC_SHA (0039)
ECDHE_RSA_WITH_AES_128_CBC_SHA256 (C027)
DHE_RSA_WITH_AES_128_CBC_SHA256 (0067)
ECDHE_RSA_WITH_AES_128_CBC_SHA (C013)
RSA_WITH_AES_256_GCM_SHA384 (009D)
RSA_WITH_AES_128_GCM_SHA256 (009C)
RSA_WITH_AES_256_CBC_SHA256 (003D)
RSA_WITH_AES_256_CBC_SHA (0035)
RSA_WITH_AES_128_CBC_SHA256 (003C)
RSA_WITH_AES_128_CBC_SHA (002F)
RSA_WITH_3DES_EDE_CBC_SHA (000A)
RSA_WITH_RC4_128_SHA (0005)
Seite 30 AdminCamp 2016 – Sept. 19-21
SSL_USE_CLIENT_CIPHER_ORDER=1
Deaktiviert die Ciphervorgabe vom Domino Server (Client Cipherhandling) > unsicher
SSLCIPHERSPEC=CipherHexwerte
Überschreibt die Vorgabe Cipherliste & -reihenfolge
https://www-10.lotus.com/ldd/dominowiki.nsf/dx/TLS_Cipher_Configuration
<FP4 = 2stellig SSLCipherSpec=9F9E6B39679D9C3D353
>FP4 = 4stellig SSLCipherSpec=C030009F009D
USE_WEAK_SSL_CIPHERS=1
Ermöglicht die Nutzung “schwacher” Cipher > unsicher
Zusätzliche Cipher werden danach via SSLCIPHERSPEC= definiert
IBM Domino SSL/TLS Cipher
Seite 31 AdminCamp 2016 – Sept. 19-21
DHE Cipher verwenden die Schlüssellänge des Domino Keyrings
(z.B. 2048/4096 Bit)
Java Clients V1.6 / 1.7 kann nur DHE 1024 Bit Schlüssellänge
Problem mit DHE Cipher > 1024 Bit
Lösung
1024 Bit Schlüssellänge für DHE Cipher
SSL_DH_KEYSIZE=1024
SSL_DH_PARAMS=c:\domprog\dhparams1024.pem
Eigene DH Cipher via „openssl dhparam 1024“ erstellen
ABER: SSL Labs bewertet 1024 DHE Schlüssel als „weak“
DHE Cipher Probleme mit Java
Seite 32 AdminCamp 2016 – Sept. 19-21
Authentication & port encryption enhancements in Notes and Domino 9.0.1 FP7
PORT_ENC_ADV=sum
Port Encryption Optionen (HMAC-SHA256, AES-128 CBC, AES-128 GCM, Forward Secrecy)
Sum=127 (Bitweise Aktivierung aller Optionen)
TICKET_ALG_SHA=value (Vorgabe FP7 = 256)
Zuweisung des Cryptographic Algorithmus für die Authentifizierung
1 = HMAC-SHA1, 256 = HMAC-SHA256 (Def.)
384 = HMAC-SHA 384, 512 = HMAC-SHA 512
DEBUG_PORT_ENC_ADV=1
Anzeigen von Fehlermeldungen bzgl. der neuen Algorithmen
LOG_AUTHENTICATION=1
Zeigt an welcher Algorithmus beim der Authentifizierung verwendet wird.
IBM Domino 9.0.1 FP 7 - N/D encryption
Seite 33 AdminCamp 2016 – Sept. 19-21
Test für SSL/TLS
Externe Webseiten per SSLLabls
https://www.ssllabs.com/ssltest/index.html
https://www.ssllabs.com/ssltest/viewMyClient.html
Interne/Externe Webseiten
TESTSSLServer.exe
OpenSSL (Linux / Windows)
HTTPs Test: openssl s_client -connect webhost.dns:443
SMTP TLS Test: openssl s_client -connect mailhost.dns:25 -starttls smtp
Weitere Optionen sind -tls1, -no_ssl3
Seite 34 AdminCamp 2016 – Sept. 19-21
Domino 8.5.3 FP6 IF9 DISABLE_SSLV3=1
SHA-1 !!!
SHA-2
TLS 1.0
Domino Security Best Practices (09/2016)
Domino 9.0.1 FP7 DISABLE_SSLV3=1
SSL_DISABLE_TLS_10=1
PORT_ENC_ADV=127
TLS 1.2 (wenn möglich)
SHA 2 Zertifikat(e)
Default Cipherorder
Seite 35 AdminCamp 2016 – Sept. 19-21
Domino FP3+
Zugriff via Java Console nur noch mit Notes 9.0.1 FP3+ möglich (Disable SSLV3)
http://www-01.ibm.com/support/docview.wss?uid=swg21695943
Notes FP4
Probleme bei Zugriffen auf IBM Connections wg. deaktivierten Ciphern
Domino FP5 & Java Patch SR16FP20 (SPR# RSSNA6UU79)
Keine Zugriff auf Java Console – MD5 Algroithmen sind deaktiviert
Fix in FP6 oder Reaktivierung der MD5 Algorithmen (domprog/jvm/..../java.security)
http://www-01.ibm.com/support/docview.wss?uid=swg21977125
Sametime 8.5.x/9.0 LDAPs Verbindung schlägt fehl
Option 1: Verwenden SSL V2 Protokoll (SSL_ENABLE_INSECURE_RENEGOTIATE=1)
Option 2: Update Sametime 9.0.1 mit TLS Patch und Neukonfiguration
Problemfälle mit 9.0.1 und TLS/Cipher
Seite 36 AdminCamp 2016 – Sept. 19-21
DB Einstellung für SSL
„Require SSL connection“
Server / Token Einstellung für
das Login
„Force login on SSL“
Globale SSL Umleitung
HTTP, LDAP & IMAP Ports
„Redirect to SSL“
Domino & SSL Aktivierung
Seite 37 AdminCamp 2016 – Sept. 19-21
Domino Redirect Loginseite muss Anonym
erreichbar sein, ansonsten wird diese nicht
richtig angezeigt
Bildresourcen werden nicht geladen
REDIRECT TO SSL = TRUE
Notes.ini := HTTPPublicUrls=/redir.nsf/*
8.5.3 := HTTPPublicUrls=/redir.nsf/
iNotes-LoginBanner65short.gif:/redir.nsf/StylesheetLogin:/redir.nsf/Login.js
9.0.x := HTTPPublicUrls=/redir.nsf/
IBMLogo.gif:/redir.nsf/StylesheetLogin:/redir.nsf/Login.js
Redirect Login Page
Seite 38 AdminCamp 2016 – Sept. 19-21
SMTP Inbound
Configdok := „SSL negotiated over TCPIP“
SMTP Outbound
Serverdok := “negotiated SSL“ via Port 25
SMTP w/o SSL > Failover wenn TLS Outbound nicht verfügbar ist
RouterFallbackNonTLS=1
Domino SMTP TLS
Seite 39 AdminCamp 2016 – Sept. 19-21
Begriffe
Domino & TLS Einstellungen/Konfiguration
Domino SSL Key Erstellung (Kyrtool)
Websphere SSL Konfiguration
Agenda
Seite 40 AdminCamp 2016 – Sept. 19-21
DER := Dateiformat für ein Binary X.509-Zertifikat
Base64 := Dateiformat für ein Base64 codiertes
(Text) X.509-Zertifikat
PKCS#12 := Dateiformat für privaten Schlüssel
(meist durch Passwort geschützt)
Dateiendungen
.CRT := kennzeichnet Dateien, die das fertige Zertifikat enthalten
Alternativ auch .CER oder .PEM (Base64-kodiertes X.509-Zertifikat)
.CSR := Zertifizierungsanforderung für CA (eigene oder offizielle)
.P12 := Zertifikatsdatei bzw. -speicher inkl. privater Schlüssel und/oder weiterer Schlüssel
Zertifikatsspeicher/datenbanken := .JKS, .CMS, .P12
Dateiformate für Zertifikate
Seite 41 AdminCamp 2016 – Sept. 19-21
certsrv.nsf / certreq.nsf
Domino Keyring Datenbanken
NEU := KYRTOOL (Kommandozeile)
Am besten in Verbindung mit OpenSSL nutzbar
Kann keine eigenen „private key“ Request erstellen
SHA-2 Support nur für IBM Domino 9.0.x
SHA-2 Keyrings in Domino 8.5.x funktionieren nicht !!!
iKeyman gskit V5
Läuft nur unter Windows 2003/XP
Domino Keyring Tools
Seite 42 AdminCamp 2016 – Sept. 19-21
Download KYRTOOL
KYRTOOL ins IBM Notes Client Verzeichnis kopieren (Notes.dll wird benötigt)
Download OpenSSL
OpenSSL (pre build für Windows von Shining Light) installieren
http://slproweb.com/products/Win32OpenSSL.html
OpenSSL DLL Dateien NICHT in das Windows Verzeichnis kopieren
OpenSSL Konfigurationsdatei zuweisen und ggfls. konfigurieren
set OPENSSL_CONF=c:\OpenSSL\openssl.cnf (Win64 Bit binaries)
Domino KYRTOOL & OpenSSL
Seite 43 AdminCamp 2016 – Sept. 19-21
IBM Wiki: Generating a keyring file with a third party CA SHA-2 cert
using OpenSSL and kyrtool
1. Privaten Schlüssel (RSA / 2048 Bit) erstellen
>openssl.exe genrsa–out serverpriv.key 2048
2. CSR (Certificate Signing Request) für die eigene/externe CA
generieren
>openssl.exe req -new -sha256 -key serverpriv.key –out serverreq.csr
Eingabe der Requestdaten (Name des Servers = CN, Organisation, OU, Country,
Mailadresse, etc.)
3. CSR Datei oder Inhalt bei der Internet-CA hinterlegen und auf das
gestempelte Zertifikat (CRT) warten
Seite 44 AdminCamp 2016 – Sept. 19-21
4. Alle Zertifikate in eine Datei zusammenführen
>type serverpriv.key servercert.crt ca-intermediate.crt ca-root.crt > allservercerts.txt
optional können diese auch einen Texteditor nacheinander zusammen kopiert werden
Richtige Reihenfolge beachten da ansonsten die Kette (CHAIN) nicht richtig erkannt
wird !! 1.. private Key, 2. gestempeltes Zertifikat, 3. CA2, 4. RootCAs
5. Domino Keyring erstellen und mit Kennwort schützen (stash file/sth)
>kyrtool create –k dominokey.kyr –p password
6. Zertifikate bzw. Schlüssel in die Domino Keyring Datei importieren
>kyrtool import all -k dominokey.kyr –i allservercerts.txt
IBM Wiki: Generating a keyring file with a third party CA SHA-2 cert
using OpenSSL and kyrtool
4. Alle Zertifikate in eine Datei zusammenführen
>type serverpriv.key servercert.crt ca-intermediate.crt ca-root.crt > allservercerts.txt
optional können diese auch einen Texteditor nacheinander zusammen kopiert werden
Richtige Reihenfolge beachten da ansonsten die Kette (CHAIN) nicht richtig erkannt
wird !! 1.. private Key, 2. gestempeltes Zertifikat, 3. CA2, 4. RootCAs
5. Domino Keyring erstellen und mit Kennwort schützen (stash file/sth)
>kyrtool create –k dominokey.kyr –p password
6. Zertifikate bzw. Schlüssel in die Domino Keyring Datei importieren
>kyrtool import all -k dominokey.kyr –i allservercerts.txt
Seite 45 AdminCamp 2016 – Sept. 19-21
Domino Keyring – Kyrtool Befehle
Zertifikate bzw. Schlüssel auf Gültigkeit prüfen
>kyrtool verify allservercerts.txt
Zertifikate in der Domino Keyring Datei prüfen bzw. anzeigen
>kyrtool show keys -k dominokey.kyr (nur Serverzertifkat – inkl. privater Schlüssel)
>kyrtool show certs -k dominokey.kyr (nur Ausstellerzertifkate)
Seite 46 AdminCamp 2016 – Sept. 19-21
Import von bestehenden Zertifikaten in eine Domino Keyring Datei
z.B. Wildcard Zertifikate *.timetoact.de / *.edcom.de
Inklusiver privater Schlüssel und kompletter Zertifikatskette (=chain) – sofern exportiert
P12/PCKS Dateien sind normalerweise durch Passwort geschützt
Voraussetzung für den Import ist das die Schlüsseldatei in
Textformat vorliegt (PEM Format)
>openssl pkcs12 –in SSLkey.pkcs/.p12 -out SSLKeyAll.pem –nodes
Optional >openssl pkcs12 –in SSLkey.pkcs/.p12 -out SSLCertsOnly.pem –nodes –nokeys
Optional >openssl pkcs12 –in SSLkey.pkcs/.p12 -out SSLPrivKeyOnly.pem –nodes –nocerts
Import des konvertierten Zertifikates in das Domino Keyring
>kyrtool import all -k dominokey.kyr –i SSLKeyAll.pem
Domino Keyring - PKCS/P12 Import
Seite 47 AdminCamp 2016 – Sept. 19-21
Certsrv.nsf
Self-signed 512 Bit mit MD5 encryption
Cert-sign-req (CSR) 512/1024 & 2048 Bit
mit MD5 encryption
Certreq.nsf (CA Prozess)
MD5, SHA1 encryption mit 512/1024 & 2048 Bit
SHA-2 Fix – IBM Domino 9.0.1 FP3
SPR# DKEN9PJNBC - Allow certreq.nsf to create SSL keyring files containing certificates signed using SHA-256, SHA-384, and SHA-512.
SHA in Domino
Seite 48 AdminCamp 2016 – Sept. 19-21
OPENSSL Konfig Datei
OPENSSL.CNF
Zuweisung mehrerer DNS Einträge im
Zertifikat um Browserfehlermeldung zu
unterbinden
OpenSSL – Alias URL zuweisen
.......
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature,
keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = im.novitest.local
DNS.2 = dom.novitest.local
IP.1 = 192.168.1.1
IP.2 = 192.168.69.14
.......
Seite 49 AdminCamp 2016 – Sept. 19-21
Begriffe
Domino & TLS Einstellungen/Konfiguration
Domino SSL Key Erstellung (Kyrtool)
Websphere SSL Konfiguration
Agenda
Seite 50 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
SSL Verwaltung
Keystore := Verwaltung der eigenen Zertifikate
... \<wasdmgrprofile>\config\cells\<cellname>\trust.p12
Truststore := Querzulassungen zu anderen Servern / root Zertifikaten
... \<wasdmgrprofile>\config\cells\<cellname>\key.p12
Konfiguration via Websphere ISC oder IBM ikeyman
Password „WebAS“
Seite 51 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
Websphere generiert ein „self-signed“ SSL Zertifikat
Auf Basis des Hostnamen
Network Deployment generiert eigene Root CA (dmgr hostname)
“self signed“ Serverschlüssel ist ein Jahr gültig und erneuert sich selbstständig
Seite 52 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
offizielle SSL Zertifikate für Extranet und mobile Access (Verisign, Cybertrust, Trustcenter, etc.)
SSL Request erstellen (CSR) & empfangen (CRT/CER)
Import Privat Key Format *.P12 (z.B. Wilcard Zertifikate)
Zuweisung des SSL Schlüssel an den WAS Server
Import der SSL Zertifikate in andere WAS Zellen (Trust)
Media Server TLS (Video Manager)
Connections Sametime TLS „Querzulassung“
Seite 53 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
Request erstellen (in der WAS ISC) SSL certificate and key management > Key stores and certificates
> CellDefaultKeyStore > Personal certificate requests > NEW
Signiertes CA Zertifikat importieren SSL certificate and key management > Key stores and certificates > CellDefaultKeyStore > Personal certificates > Receive cert from CA
Seite 54 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate P12
Ist der „personal request“ nicht mehr vorhanden (z.B. bei Verlängerungen)
kann ein „Renewal“ nicht mehr eingelesen werden (ISC Fehlermeldungen)
P12 „private“ Key importieren (z.B. bei Wildcard Zertifikaten)
P12 Dateien werden durch Passwörter geschützt
SSL certificate and key management > Key stores and certificates > CellDefaultKeyStore > Personal certificates > Import certificates from a key file or key store
Seite 55 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
Zuweisung der SSL Zertifikate dem Websphere Anwendungsserver SSL certificate and key management > Manage endpoint security configurations > Inbound > WebsphereServer (z.B.
STProxyServer)
SSL certificate and key management > Manage endpoint security configurations > Outbound > WebsphereServer (z.B.
STProxyServer)
Seite 56 AdminCamp 2016 – Sept. 19-21
Websphere – SSL Zertifikate
Websphere Network Deployment hat evtl. Probleme die Schlüsselspeicher
(keystore, trustore) zwischen dem Deployment Manager und Knotes zu
synchronsieren
Folge = WAS Server lassen sich nicht richtig beenden (hängt beim Beenden), da der
Schlüsselaustausch auf eine Bestätigung wartet
Manuelle Synchronisation
<wasnodeprofile>\bin\retrievesigners –host dmgrhost –port dmgrsoapport
SOAP Port für dmgr ist normalerweise 8879 – bei Sametime SSC allerdings 8703
Sametime > retrievesigners –host ssc.novitest.local –port 8703
Seite 57 AdminCamp 2016 – Sept. 19-21
Websphere – TLS & Cipherlist
SSL Protokollversion einstellen SSL certificate and key management > SSL configurations > CellDefaultSSLSettings > Quality of protection (QoP) settings
SSL_TLS := SSLv3 und TLSv1 Vorgabe
SSL := SSLv3
TLS := TLSv1 only
TLSv1 := TLSv1 only
SSL_TLSv2 := ist SSLv3 und TLSv1, TLSv1.1, TLSv1.2
TLSv1.1 := TLSv1.1 only
TLSv1.2 := TLSv1.2 only
SSLV3 wird mit Websphere 8.5.5 FP3 IF Patches oder 8.5.5 FP4+ automatisch
deaktiviert
JVM Argument := -Dcom.ibm.jsse2.disableSSLv3=true
http://www-01.ibm.com/support/docview.wss?uid=swg21687173
Seite 58 AdminCamp 2016 – Sept. 19-21
Websphere – TLS & Cipherlist
Cipherliste anpassen SSL certificate and key management > SSL configurations > CellDefaultSSLSettings > Quality of protection (QoP) settings
Seite 59 AdminCamp 2016 – Sept. 19-21
Sametime & Connection TLS
Websphere
Protokoll auf TLSv1.2 (kein TLS1.0) umstellen
Websphere 8.5.5 FP4+ deaktiviert SSLv3 per Code
Sametime 8.5 - 9.0
Sametime Poodle Hotfix vom 5. Feb. 2015 einspielen oder neueste Fixes (Fixcentral)
Sametime Community TLS benötigt noch weitere Konfigurationsschritte
Connections 3.0 – 5.0
WebSphere, IHS & Plugins müssen gefixed (IBM Link) werden
Connections 5.5 (IHS & Websphere) TLS V.12
How to Force IBM Connections 5.5 CR1 to Use TLSv1.2
Seite 60 AdminCamp 2016 – Sept. 19-21
Sametime TLS für Community & LDAP IBM Doku: Security Considerations for TLS Configuration
1. Domino Keyring (SHA-2) für Sametime Community erstellen
2. SSL Software Support (ST 9 SDK) installieren
3. KeyDBs via IBM iKeyman erstellen und externes LDAP Server
Zertifikate einlesen
Keytrust.p12 := Externes LDAP Zertifikat und/oder Zertifikatskette (root) einlesen
Keystore.p12 := Eigenes Domino/Sametime Zertifikat und/oder Zertifikatskette (root) einlesen
TIPP – Umwandlung der Domino/OpenSSL privaten Schlüssel und
signiertes Zertifikatsdatei in P12 Format
openssl pkcs12 -export -in st9certdatei.pem -inkey st9priv.key -out st9.p12
Seite 61 AdminCamp 2016 – Sept. 19-21
Sametime Community TLS
Zuweisung der Schlüsseldatebanken (Keystore/P12)
Seite 62 AdminCamp 2016 – Sept. 19-21
Sametime Community TLS Verbindungen
Sametime Community Server > Sametime Community Server
Sametime Community Server > LDAP Server
Sametime Client > Sametime MUX/Community Server
Strict TLS vs. legacy RC2 encryption
Seite 63 AdminCamp 2016 – Sept. 19-21
Seite 64 AdminCamp 2016 – Sept. 19-21
Beurteilung bitte nicht vergessen!
Securing IBM Collaboration Environment
Seite 65 AdminCamp 2016 – Sept. 19-21
APPENDIX
Seite 66 AdminCamp 2016 – Sept. 19-21
1. Privaten Schlüssel (RSA / 2048 Bit) erstellen
>openssl.exe genrsa –out server.key 2048
2. CSR (Certificate Signing Request) für die CA generieren
>openssl.exe req -new -sha256 -key server.key –out server.csr
Eingabe der Requestdaten (CN, Org, OU, Country, etc.)
3. OpenSSL „self-signed“ Zertifkat generieren (3560 Tage gültig)
>openssl.exe x509 -req -days 3650 -sha256 -in server.csr -signkey server.key-out server.pem
4. Alle Zertifikate (server.crt, CA-Root, CA-Intermediate) in eine Datei zusammenführen
>type server.key server.pem > selfsigned-key.txt
optional können diese auch einen Texteditor nacheinander zusammen kopiert werden
5. Domino Keyring erstellen und mit Kennwort schützen (stash file/sth)
>kyrtool create –k dominokey.kyr –p password
IBM Wiki: Generating a keyring file with a self-signed SHA-2 cert
using OpenSSL and kyrtool
Seite 67 AdminCamp 2016 – Sept. 19-21
IBM Wiki: Generating a keyring file with a self-signed SHA-2 cert
using OpenSSL and kyrtool
6. Zertifikate bzw. Schlüssel auf Gültigkeit prüfen
>>kyrtool verify selfsigned-key.txt
7. Zertifikate bzw. Schlüssel in die Domino Keyring Datei importieren
>kyrtool import all -k dominokey.kyr –i selfsigned-key.txt
8. Zertifikate in der Domino Keyring Datei prüfen
>kyrtool show keys -k dominokey.kyr (nur Serverzertifkat – inkl. privater Schlüssel)
>kyrtool show certs -k dominokey.kyr (nur Ausstellerzertifkate)
9. Domino Keyring Datei(en) auf Domino Server portieren und einbinden
>copy dominokey.kyr + dominokey.sth > Domino Datenverzeichnis
Seite 68 AdminCamp 2016 – Sept. 19-21
DEBUG_SSL_ALL=1/2
Debug für SSL (inlusive Handshake & Cipher)
DEBUG_SSL_HANDSHAKE=1/2
Zeigt Protokollversionen an
DEBUG_SSL_CIPHERS=1/2
Zeigt Informationen zu den Ciphern
DEBUG_SSL_DHE=1/2
DHE Cipher Debugging (9.0.1 FP3)
SSL_LOGGING_DISABLE=1
Unterbindet alle Domino Console Meldungen zu SSL
IBM Domino SSL/TLS Parameter