Date post: | 16-Apr-2017 |
Category: |
Software |
Upload: | ics-user-group |
View: | 497 times |
Download: | 6 times |
Domino SecurityPresent and FutureConnectED Review
22. März 2016Daniel Nashed (Nash!Com)
Über den Referenten
Nash!Com – IBM® Business Partner/ISVMitglied The Penumbra group - An international consortium of
selected Business Partners pooling their talent and resources
Fokus: Cross-Platform C-API, IBM® Domino® Infrastruktur, Administration, Integration, Performance, Security, Troubleshooting und IBM® Traveler
Platform Fokus: Microsoft® Windows® 32/64, Linux® und IBM AIX®
DNUG Fachgruppe IBM Domino® Infrastruktur
Autor des Domino auf Linux®/UNIX® Start Scripts
Agenda
Aktuelle Verschlüsselungs-Standards für Domino
Aktuelle Informationen und geplante Features im Bereich Domino Security
Aktuelle Änderungen im Bereich Web-Server Zertifikate und das KeyRing Tool
Fragen und Anregungen – Jeder Zeit
BSI Whitepaper – 11.2.2015
BSI TR-02102-1 "Kryptographische Verfahren: Empfehlungen und Schlüssellängen" https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinie
n/TR02102/BSI-TR-02102_pdf
Block Ciphers: AES-128, AES-192, AES-256 with
Galois-Counter-Mode (GCM) Cipher-Block Chaining (CBC) Counter Mode (CTR)
Asymmetric Encryption: ECIES 224 (after 2015 at least 250), DLIES and RSA >= 2048 Bits (after 2016 at least >= 3072 bits)
Hashing: SHA-224, SHA-256, SHA-512/256, SHA-384, SHA-512, SHA-512/224 SHA1 nicht mehr für neue Certs → Nach 2015 nur noch: SHA-256, SHA-384, SHA-512, SHA-512/256
Key Exchange:Diffe-Hellma (DHE_RSA)/ EC Diffe-Hellman (ECDHE_RSA)
Apple Transport Security (ATS)
Apple führt neuen Sicherheits-Standard (ATS) einWird seit iOS 9 und OSX 10.11 (El Capitan) verwendet
Anforderungen
TLS 1.2 >= 2048 bit RSA Key Mindestens SHA-256 Signierte Web-Server Zertifikate ECDHE → PFS supported, moderne Cipher
Bisher wird dieser Standard nur für Partner Applikationen erzwungen Wenn der Entwickler die Applikation nicht mit entsprechenden Ausnahmen compiled hat Es ist aber zu erwarten, daß Apple in den nächsten Releases die Anforderungen weiter festzieht
ActiveSync und der Safari Browser benötigt aktuell noch kein TLS 1.2 und ECDHE SSL V3 ist schon deaktiviert!
Domino TLS Support!
IBM hat aufgrund von Sicherheitsproblemen wie dem SSL V3 Bug „Poodle“ schrittweise neuere SSL/TLS Versionen eingeführt
„Poodle“ und andere Probleme haben den ursprünglichen Zeitplan, geändert Funktionen werden durch Fixpacks und Interims-Fixe bereitgestellt
Alle Konfiguration der neuen Funktionen wird bis „Domino.Next“ über notes.ini Parameter gesteuert
Aktuelle Version: Domino 9.0.1 FP5 IF1
Support für TLS 1.2 inklusive aktueller DHE und ECDHE Ciphers (seit 9.0.1 FP4 IF2)
Empfehlung: Update auf die aktuelle 9.0.1 Version mit FP und IF!!!
Domino 8.5.3 wird kein TLS 1.2 und kein SHA-256 supporten!
Aktuelle Änderungen
TLS 1.2 Verwendet intern SHA-256 statt MD5/SHA-1
Neue Cipher
Advanced Encrption Standard (AES) Galois/Counter Mode (GCM) Perfect Forward Secrecy (PFS) via
Ephemeral Diffie-Hellman (DHE) Elliptic Curve Diffie-Hellman (ECDHE)
Support für “Secure Renegotiation”
HSTS (Http Strict Transport Security) Header Information, daß der Browser über HTTPS zugreifen soll
Aktuelle Probleme und Lösungen
Bekannte Probleme, die in Domino 9.0.1 FP5 IF1 gelöst sind
SPR #KLYHA57S37 - Disable TLS Session Resumption on outbound connections by default
Problem: Session Resumption hat zu falschen TLS /Cipher Kombinationen bei STARTTLS geführt Weitere Details:
http://blog.nashcom.de/nashcomblog.nsf/dx/tls-1.2-connection-issues-with-protection.outlook.com.htm
SPR #MKENA4SQ7R - Domino TLS 1.2 Client Hello does not offer a Signature Algorithm extension causing some handshakes to fail
Fehlende Security Protocol Extension führt zu Verbindungsabrüchen in bestimmten Konstellationen Dieser Fix implementiert die entsprechende Extension
„SLOTH“ MD5 Vulnerability
Gefixed in Domino 9.0.1 FP5 IF1
SPR #KLYHA5YRVP - Recommended security fix for IBM Domino (technote 1974958)
Die „SLOTH Vulnerability“ hat mit einer Kollisions-Attacke der MD5 hash Funktion im TLS Handshake zu tun. Der Fix behebt das Problem.
CVEID: CVE-2015-7575
„DESCRIPTION: The TLS protocol could allow weaker than expected security caused by a collision attack when using the MD5 hash function for signing a ServerKeyExchange message during a TLS handshake. An attacker could exploit this vulnerability using man-in-the-middle techniques to impersonate a TLS server and obtain credentials.„
Referenz -> http://www.ibm.com/support/docview.wss?uid=swg21974958
Support für Extended Master Secret (RFC 7627)
SPR #DKENA32JMP - Add support for Extended Master Secret (RFC 7627) to TLS 1.2 Recht neue RFC, die von Google und Microsoft in ihren aktuellen Browsern
implementiert ist. → Beide Seiten müssen die Extension supporten! Reduziert ab Domino 9.0.1 FP5 IF1 mögliche Man-in-the-middle-Attacken
„The Transport Layer Security (TLS) master secret is not cryptographically bound to important session parameters such as the server certificate. Consequently, it is possible for an active attacker to set up two sessions, one with a client and another with a server, such that the master secrets on the two sessions are the same. Thereafter, any mechanism that relies on the master secret for authentication, including session resumption, becomes vulnerable to a man-in-the-middle attack, where the attacker can simply forward messages back and forth between the client and server. This specification defines a TLS extension that contextually binds the master secret to a log of the full handshake that computes it, thus preventing such attacks.“
Referenz: https://www.ietf.org/mail-archive/web/ietf-announce/current/msg14570.html
Notes Client Interims Fixe
Server und Client IFs enthalten unterschiedliche Fixe bei gleicher IF Nummer!!! Derzeit gibt es auch unterschiedliche Fixe für unterschiedliche Client Plattfomen!!
Notes 9.0.1 FP5 IF1 für Windows war ein Vorabfix, der schnell ein Installer-Problem beim Update gefixed hat
Notes 9.0.1 Fix Pack 5 Interim Fix 1 (Linux)
SPR #KLYHA5YRVP Security Bulletin: Vulnerability in MD5 Signature and Hash Algorithm affects IBM Notes
(TN #1975290)
SPR #DKENA32JMP Add support for Extended Master Secret (RFC 7627) to TLS 1.2
SPR #KLYHA57S37 Disable TLS Session Resumption on outbound connections by default
Notes Client Interims Fixe
Notes 9.0.1 Fix Pack 5 Interim Fix 2
SPR #KLYHA5YRVP
Security Bulletin: Vulnerability in MD5 Signature and Hash Algorithm affects IBM (TN #1975290) Fix ist neu für Windows in IF2, Aber unter Linux schon in IF1
SPR #AYAVA67A8Z
Security Bulletin: libpng related security vulnerabilities identified in IBM Notes (TN #1975365)
Aktueller Cipher Support – Teil 1
Alle Cipher in der Reihenfolge ihrer Verwendung von Server-Seite ECDHE und DHE Cipher
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) ECDH 256 bits (eq. 3072 bits RSA) TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f) DH 2048 bits (p: 256, g: 1, Ys: 256) TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) ECDH 256 bits (eq. 3072 bits RSA) TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e) DH 2048 bits (p: 256, g: 1, Ys: 256) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) ECDH 256 bits (eq. 3072 bits RSA) TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b) DH 2048 bits (p: 256, g: 1, Ys: 256) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH 256 bits (eq. 3072 bits RSA) TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39) DH 2048 bits (p: 256, g: 1, Ys: 256) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) ECDH 256 bits (eq. 3072 bits RSA) TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x67) DH 2048 bits (p: 256, g: 1, Ys: 256) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH 256 bits (eq. 3072 bits RSA)
Aktueller Cipher Support – Teil 2
RSA AES GCM Cipher
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d) TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c)
RSA AES CBC Cipher
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3d) TLS_RSA_WITH_AES_256_CBC_SHA (0x35) TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c) TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)
RSA 3DES Cipher
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)
„Cipher“ manuell konfigurieren
Der „Cipher Dialog“ im Server Dokument und Internet-Site Dialog wird bis zum nächsten Feature Release (9.0.2) nicht mehr verwendet
Per Default sind aktuell sichere Cipher konfiguriertÄnderungen an der Cipher Liste erfolgt über einen notes.ini Eintrag für alle Protokolle
notes.ini Eintrag SSLCIPHERSPEC=...
Enthält die Codes der Cipher aneinander gehängt Vor 9.0.1 FP4 IF2 gab es nur 2 Octet Codes Jetzt sollten 4 Octet Codes verwendet werden
Beispiel mit gemischtem 2 / 4 Octet Format:
SSLCIPHERSPEC=9D9C3D3C352F0A39676B9E9FC030C02FC028C014C027C013
Wichtiger Wiki Eintrag: http://www.lotus.com/ldd/dominowiki.nsf/dx/TLS_Cipher_Configuration
HSTS Header
Gibt die Informtion an den Client, daß er sich in nächster Zeit nur über HTTPS verbinden soll
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
Best Practice: Nur HTTPS zur Verfügung stellen und Header anpassen Standard hat eine recht kurze Gültigkeit Wird nur mitgesendet, wenn der Server nur HTTPS aktiviert hat → HTTP ggf. deaktivieren
Notes.ini
HTTP_HSTS_MAX_AGE=17280000 HTTP_HSTS_INCLUDE_SUBDOMAINS=1
Resultiert in folgendem Rating:
"Strict Transport Security (HSTS) Yes max-age=17280000; includeSubDomains"
OCSP Konfiguration
Online Certificate Status Protocol
Überträgt „gecachted“ Zertifikat-Status Information (CRL) https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol
Beispiel: Notes.ini
SSL_ENABLE_OCSP_STAPLING=1 OCSP_RESPONDER=http://evssl-ocsp.globalsign.com/responder OCSP_CLOCKSKEW=10 OCSP_LOGLEVEL=31
Ergebnis:
OCSP stapling -> Yes
Tip: Responder URL ermitteln:
openssl x509 -noout -ocsp_uri -in cert.pem
Beispiel-Ergebnis: http://ocsp.int-x1.letsencrypt.org/
SSL Test Tools
Eine der meist verwendeten SSL Test-Websites
Gibt einen guten Überblick über die SSL/TLS Sicherheit des eigenen Servers
Rating von “A” bis “F”
Detail Information über TLS Version und Cipher „Simulation“ welcher Cipher von welchem Client-Typ verwendet wird
Server Test https://www.ssllabs.com/ssltest/
Client Test https://www.ssllabs.com/ssltest/viewMyClient.html
Aktueller Status
Optional - ECDHE Curves
Unterschiedliche „Curves“ werden supportet
NIST P-256, NIST P-384, and NIST P-521 are supported.
Die schnellste (kleinste) gemeinsame supportete Curve wird verwendet
Curves können einzeln deaktiviert werden
Notes.ini
SSL_DISABLE_CURVE_P256=1 SSL_DISABLE_CURVE_P384=1 SSL_DISABLE_CURVE_P521=1
Optional – Eigene DHE Groups
Kleinste Länge für DH Groups wurde auf 2048 bit in D9.0.1 FP4 IF2 erhöht
Besserer Schutz vor Logjam AttackenBei DHE_RSA_WITH_AES_128_CBC_SHA wird immer eine 1024 bit group
Aus Kompatibilitätsgründen für Java 6 Cipher ist mittlerweile auf die Weak-List gesetzt und im Standard deaktiviert
„Custom DH Groups“ ab 9.0.1 FP4 IF2 via notes.ini SSL_DH_PARAMS notes.ini.
PEM-encoded DH Parameters Datei, die selbst generiert wird 1024 bit Custom Groups sind erlaubt, aber sollten regelmäßig erneuert werden.
Notes.ini SSL_DH_PARAMS=c:\dhparams2048.pem Erzeugen von Dateien: "openssl dhparam 2048 > dhparam2048.pem
Optional - SSL_DH_KEYSIZE
DHE Key Size wird per Default über die Stärke des Server Keys bestimmt
Notes.ini SSL_DH_KEYSIZE=n kann verwendet werden, um die Länge zu verringern
Mögliche Werte: 1024, 2048, 3072 und 4096 (seit Domino 9.0.1 FP4)
Nur benötigt, wenn wichtige Systeme sich über DHE verbinden müssen und ein Problem mit höheren Schlüssel-Stärken haben
Java 6 Problem wurde separat gelöst Entsprechender Cipher verwendet aktuell immer 1024 bit Entsprechender Cipher ist aber mittlerweile auf der „Weak List“
TLS Support für Geräte / Applikationen
Aktuelle Mobile Endgeräte supporten TLS 1.2
Review aller Applikationen z. B. auch SSL/TLS Verbindungen für Directory Assistance über LDAP!
Applikationen OpenSSL wird häufig verwendet
Ältere Versionen haben Probleme mit dem deaktivierten V2 SSL Handshake Wenn es nicht anders geht: notes.ini SSL_ENABLE_INSECURE_SSLV2_HELLO=1
Kann für SMTP Server wichtig sein – Mehr später
Java Java 1.6 unterstützt TLS 1.2 (Notes/Domino verwendet eine aktualisierte 1.6 JVM)
Aktuelle Java Patches supporten TLS 1.2 (allerdings sehr eingeschränkt) → Details nächste Folien
Notes/Domino Java
IBM Java Updater
Major Version (z.B. 9.0.1) beinhaltet volle JVM Version FP kann einen JVM patch enthalten, aber IFs enthalten keine JVM patches Separate Patch Installer für Client & Server
Aktuelle JVM → IBM Java 6SR16FP20 Zusätzlich zu 9.0.1 FP5 IF1 installiert!
Aktuelles Problem nach dem Update: Java Console funktioniert nicht mehr
Lösung: Re-Aktivieren von MD5 im ../jvm/lib/security/java.security File. Entfernen von „MD5“ aus den deaktivierten Algorithmen
jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024 jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768
Eingeschränkter TLS 1.2 Support für Java 1.6
Mit aktuellen Patches sind Verbindungen mit DHE_RSA_WITH_AES_256_CBC_SHA / 2048 bit key und TLS 1.2 möglich!
Benötigt Patch zum Austausch der Java Security Policy Files"Java Cryptography Extension"
Separter Download, der local_policy.jar und US_export_policy.jar austauscht Wird bei jedem Update überschrieben! Einschränkungen werden über geänderte Policies, die in diesen jar-Files enthalten sind, überschrieben
Weitere Details siehe: http://blog.nashcom.de/nashcomblog.nsf/dx/higher-crypt-standards-with-notesdomino-and-jvm-1.6.htm
Interessantes Detail: Der neue Mac Notes 9.0.1 64bit Client verwendet schon Java 1.8 Verbindung verwendet mit aktuellen Domino Servern ECDHE_RSA_WITH_AES_128_GCM_SHA256
Aktuelle SSL/TLS Parameter
DISABLE_SSLV3=1 Empfohlen und wichtig: Deaktiviert SSL V3
DEBUG_SSL_ALL=2 Oder nur DEBUG_SSL_HANDSHAKE=2 und DEBUG_SSL_CIPHERS=2
USE_WEAK_SSL_CIPHERS=1 Nicht empfohlen! IBM stellt sicher, daß aktuelle Cipher vorhanden sind
SSL_ENABLE_INSECURE_RENEGOTIATE=1 Nicht empfohlen! Ist nur aus Compatibilitäts-Gründen noch vorhanden
SSL_DISABLE_FALLBACK_SCSV=1 Nicht empfohlen! Deaktiviert TLS_FALLBACK_SCSV wenn Client es nicht (richtig) supporten
SSL_USE_CLIENT_CIPHER_ORDER=1 Nicht empfohlen! Erlaubt Clients die Cipher Order anzugeben
Logging - SSL/TLS Fehler
Neues Logging auch ohne Debug Einstellungen
Kann via notes.ini SSL_LOGGING_DISABLE=1 deaktiviert werden
Log-Beispiele:
TLS/SSL connection 1.2.3.4(443)-4.5.6.7(1263) failed with server certificate chain requiring support for SHA384
TLS/SSL connection 1.2.3.4(443)-4.5.6.7(3829) failed with no supported ciphers
TLS/SSL connection 1.2.3.4(443)-4.5.6.7(3416) failed with rejecting incoming SSLv3 connection
TLS/SSL connection 1.2.3.4(443)-4.5.6.7(1263) failed with server certificate chain signature alogrithms NOT supported by client
Logging von TLS Verbindungen
Neues Logging in 9.0.1 FP5
Notes.ini SSL_LOG_SUCCESS=1 Log all successful SSL/TLS handshakes
Notes.ini SSL_LOG_SUCCESS=2 Log all successful full handshakes (i.e. - don't log resumed sessions)
Notes.ini SSL_LOG_SUCCESS=N; N > 5 Log all successful SSL/TLS handshakes to server port N (25 for mail, 443 for https, etc)
09.03.2016 15:31:23 TLS1.2 connected 80.135.215.188 (52795) -> 91.250.96.67 (443) - ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xC030) with NIST P-256
09.03.2016 02:13:52 TLS1.2 resumed 80.187.109.29 (12455) -> 91.250.96.67 (443) - ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xC030)
09.03.2016 02:18:18 TLS1.0 outbound 91.250.96.67 (39071) -> 193.27.22.85 (25) - DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
Referenz – Hilfreiche OpenSSL Commands
Connect Test HTTPS openssl s_client -connect www.acme.com:443
Connect Test SMTP TLS openssl s_client -connect mail.acme.com:25 -starttls smtp
Beide geben Information über Protokoll und Cipher etc aus
Optionen um bestimmte SSL/TLS Versionen zu verwenden -tls1, -no_tls1, -no_ssl3
“wget” Verwendet OpenSSL Libs und kann für HTTPS Anfagen verwendet werden wget.exe [--secure-protocol=TLSv1] --no-check-certificate https://www.acme.com
Domino SMTP TLS Extension “STARTTLS”
SSL/TLS for SMTP
Oft mit dem TLS v1.x Protokoll verwechselt STARTTLS SMTP Protokoll Erweiterung für „Kanal-Verschlüsselung“ über SMTP Port 25
Funktionsweise
Client verbindet sich “EHLO”, Server sendet “250-STARTTLS” als eine der Erweiterungen Client schickt “STARTTLS” Client und Server verhandeln TLS Protokoll-Version und Cipher Server antwortet mit “220 Ready to start TLS” Client startet die verschlüsselte Kommunikation erneut mit “EHLO”
Referenz: “ SMTP Service Extension for Secure SMTP over Transport Layer Security”
” https://www.ietf.org/rfc/rfc3207.txt
STARTTLS Beispiel
EHLO mailout10.t-online.de250-domino.nashcom.de Hello mailout10.t-online.de ([194.25.134.21]), pleased to meet you250-TLS250-STARTTLS250-SIZE250 8BITMIMESTARTTLS220 Ready to start TLS
EHLO mailout10.t-online.de250-domino.nashcom.de Hello mailout10.t-online.de ([194.25.134.21]), pleased to meet you250-SIZE250 8BITMIMEMAIL FROM:<[email protected]> SIZE=1002250 [email protected]... Sender OKRCPT TO:<[email protected]>250 [email protected]... Recipient OKDATA354 Enter message, end with "." on a line by itself.250 Message accepted for delivery
Referenz Folie: SMTP TLS Extension – Eingehend
Config Doc: Router/SMTP/Advanced Commands and Extensions SSL negotiated over TCP/IP port: Enabled
Referenz Folie: SMTP TLS Extension – Ausgehend
Server Doc: Ports/Internet Ports/Mail: SMTP Outbound: Negotiated SSL
SMTP TLS Details und Einschränkungen
Domino prüft nicht, ob das Zertifikat von einer vertrauenswürdigen CA kommt Das Zertifikat wird aber auf technische Korrektheit geprüft (Komplette Zertifikats-Kette etc) !! Die Gegenseite prüft ggf. unser Zertifikat → „Offizielles Zertifikat verwenden!“
Eingehende Verbindungen können bei unterschiedlichen TLS Versionen und Cipher fehlschlagen
Sollte mit TLS 1.2 und aktuellen Ciphern sehr selten vorkommen
Es gibt immer noch Server, die alte OpenSSL Libs verwenden und SSLV2_HELLO Support benötigen → Best Practice ist aktuell noch für SMTP Server SSSV“_HELLO zu erlauben
Notes.ini SSL_ENABLE_INSECURE_SSLV2_HELLO=1
Fallback für ausgehende Verbindungen auf unverschlüsselte Verbindungen Notes.ini RouterFallbackNonTLS=1 In der Regel entscheidet der Client, ob die Verbindung trotzdem zustande kommt
SHA-1 Support
SHA-1 ist als „unsicher“ eingestuft
Es gibt mindestens theoretische Angriffe gegen SHA-1 Mindestens SHA-256 wird für sichere Verschlüsselung benötigt SHA-256 ist Federal Information Processing Standard (FIPS) 140-2 konform BSI rät zu SHA-256
Browser warnen bei SHA-1 basierten Zertifikaten
Beispiel: Google hat mit Warnungen schon Ende 2014 angefangen bei lang laufenden Zertifikaten Schritt für Schritt wird das Datum runtergesetzt (1.1.2017, .. 1.1.2016)
Betroffen sind alle Server und Intermediate CAs Zertifikate, die mit SHA-1 signiert sind Root Zertifikate werden anders validiert und sind nicht betroffen
SHA-256 (SHA-2) Support
Domino 9.0.x ohne die neuen Fixe supportet SHA-256 bereits in machen Bereichen
X.509 S/MIME Verschlüsselung und Signatur HTTP Passwort Hashing (Intern) Internet CA supportet SHA-256
Domino >= 9.0.1 FP2 IF1 supportet SHA-2 Zertifikate für alle Internet Protokolle und für Keyring Files
SHA-2 Support: SHA-256, SHA-384 und SHA-512 Kein Support für SHA-2 in Domino 8.5.3
Neues Keyring File Management Tool “kyrtool”
Neues Keyring Tool - “kyrtool”
Separater Download Win32/64, Linux 32/64 Client & Server → einfach in das Notes/Domino Programmverzeichnis kopieren
Importieren, Anzeigen show und Exportieren von Zertifikaten Aber kann keine Keys erzeugen oder Zertifikate Anforderungen erstellen
OpenSSL für das Erzeugen von Key-Paaren und Zertifikats-Anforderungen („CSR“) Viele andere Tools können verwendet werden Oder bestehende Zertifikate im PEM Format
Importieren von „Trusted Roots“ Entweder alle zusammen aus einer PEM Datei in richtiger Reihenfolge (Key, cert, intermediates, Root) Oder separater Import
Beispiel: Zertifikat mit OpenSSL erstellen
OpenSSL Nativ auf Linux/Unix installiert Oder auf Windows z. B. In einer cygwin Umgebung
1. Erstellen Private/Public Key openssl genrsa -out server.key 2048
2. Erstellen des „Certificate Signing Request“ (CSR) openssl req -new -sha256 -key server.key -out server.csr
3. Senden CSR zur CA Oder erstellen eines “self signed” Zertifikates für eine Test-Umgebung
openssl x509 -req -days 3650 -sha256 -in server.csr -signkey server.key -out server.pem
Resultat sollte immer im “PEM” Format sein
Verify Import File
Inhalt einer PEM Datei sollte vor dem Import immer „verifiziert“ werden
Sicherstellen, daß die Zertifikates-Kette vollständig ist und aufeinander aufbaut Key, Cert, Intermediate Certs, Root Cert
Special Tip: Anzeigen der Certs in einer Eingabe-Datei Example: kyrtool.exe show certs -i c:\domino\all.pem
kyrtool.exe verify c:\domino\all.pem Successfully read 2048 bit RSA private key INFO: Successfully read 4 certificates INFO: Private key matches leaf certificate INFO: IssuerName of cert 0 matches the SubjectName of cert 1 INFO: IssuerName of cert 1 matches the SubjectName of cert 2 INFO: IssuerName of cert 2 matches the SubjectName of cert 3 INFO: Final certificate in chain is self-signed
Keyring File erstellen
Erstellen des Keyring Files
kyrtool create -k keyring.kyr -p password Beim Erstellen muß ein Passwort eingegeben werden
Alle anderen Commands lesen das Passwort aus der “.sth” Datei
Importieren von Key, Certificate, Intermediates und Trusted Root
Kopieren von Key, Cert, Intermediates und Root Certificate in ein PEM file kyrtool import all -k keyring.kyr -i server.pem
Separates Importieren der unterschiedlichen Teile ist auch möglich
Kyrtool import all|keys|certs|roots -k keyring.kyr -i server.pem Aber ist weitaus komplizierter und Fehler anfälliger
Keyring “show” Command
Wird verwendet um Informationen aus dem Domino Keyring File anzuzeigen
Kyrtool show certs -k keyfile.kyr Zeitgt die komplette Zertifikateskette inklusive es entsprechenden Root Certs Tip: Dump aller Zertifikate und Überprüfung via „verify“
Kyrtool show keys -k keyfile.kyr Zeigt alle Keys im Keyring File
Kyrtool show roots -k keyfile.kyr Zeigt alle Trusted Roots im Keyring File
Verbose Pption “-v” kann verwendet werden für mehr Informationen Mehrere “-v”s bedeuten mehr Informationen
Referenz – Konvertierung von Formaten
Kyrtool benötigt das “PEM” Format (Text basiert - BASE64 encoded DER format) In vielen Fällen verwendet die CA binäre Formate (z.B. Microsoft CA)
OpenSSL hilft bei der Konvertierung Aber der Syntax ist nicht immer naheliegend
Konvertier PKCS#12 file (.pfx .p12) – Datei mit Keys und Certs openssl pkcs12 -in cert.pfx -out cert.pem -nodes
Konvertiert das binäre DER Zertifikates-File in das (BASE64 kodierte) PEM Format openssl x509 -inform der -in server.cer -outform pem -out server.pem
Konvertiert die binär DER kodierte Zertifikates-Kette in das (BASE64 kodierte) PEM Format openssl pkcs7 -print_certs -inform der -in certificate_chain.p7b -outform pem -out
chain.pem
Aktuelle Anforderungen im Bereich Verschlüsselung
AES 256 durchgängig für alle Verschlüsselung steht ganz oben auf der Wunschliste
Aktuell verfügbar in Notes/Domino 9
Notes.ID Verschlüsselung Notes Mail Verschlüsselung S/MIME Mail Verschlüsselung
Offen
NRPC Port Verschlüsselung Datenbank Verschlüsselung
AES 256 Mail Verschlüsselung
Eigentlich nur möglich FIPS-Einstellungen im Personen-Dokument und wenn die Notes.IDs entsprechend lange RSA Schlüsselstärken verwenden
Für Notes Mail Verschlüsselung kann aber aktuell so maximal AES 128 erreicht werden
Spezielle Notes.ini Parameter auf Client & Server erlauben AES 256 in jedem Fall unabhängig von den Einstellungen im Personen-Dokument und der Schlüssel-Stärke in den Notes.IDs!
Notes Client, Lotus Script, iNotes, Traveler, Verschlüsselung eingehender Mails im Router, …
Wichtig: Hierbei geht es um die symmetrische Verschlüsselung mit AES 256
Der symmetrische Schlüssel wird mit den RSA Schlüsseln des Users ggf. noch mit einem 630 Bit Key verschlüsselt! → Kann nur durch Key-Rollover erhöht werden
AES 256 Verschlüsselung für Mail aktivieren
S/MIME
SMIME_CAPABILITIES_SEND=AES_128:SHA_256 SMIME_FIRST_CHOICE_CONTENT_ENC_ALG=AES_256
Quelle: IBM ConnectED Präsentation 2015
Notes Mail
DEBUG_SEAL2_AES=256
Einzige Quelle: https://www.lotus.com/ldd/dominowiki.nsf/dx/securing-your-notes-id-vault-server
„Domino.Next“ – Orginal IBM ConnectED 2016 Text
Encryption of data at rest with AES (Using a FIPS 140-2 certified cryptographic library)
Notes/Domino 8.0.1 Document encryption, Notes mail encryption, ID file encryption, and Document encryption keys
Notes/Domino 8.5 Notes ID vault encryption
Notes/Domino 9.0 S/MIME and SAML encryption Encryption within the OAuth token store DB
Under consideration for Domino.Next Domino Database Encryption with AES DAOS Encryption with AES
IBM’s statements regarding its plans, directions and intent are subject to change or withdrawal without notice at IBM’s sole discretion.
„Domino.Next“ – Orginal IBM ConnectED 2016 Text
NRPC Network Port Encryption with AES
Planned for Domino.Next Running in the labs today Controlled on the Domino server Enabled by default on clients Uses a FIPS 140-2 certified cryptographic library
Multiple permutations:
Old port encryption with HMAC SHA-256 integrity checking 128 bit AES-CBC with HMAC SHA-256 integrity checking 128 bit AES-GCM for encryption and integrity checking Forward secrecy and 256 bit AES under consideration
IBM’s statements regarding its plans, directions and intent are subject to change or withdrawal without notice at IBM’s sole discretion.
„Domino.Next“
Geplanter Support für Java 1.8
Aktuell verwendet Mac 64bit schon die native Plattform-JVM
JVM 1.8 wird verwendet und separat installiert
Java 1.8 bietet lang erwartete neue Funktionalität für Entwickler & besseren TLS Support
TLS 1.2 mit aktuellen Ciphern z.B. TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023) (Forward Secrecy) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) (Forward Secrecy)
Alle Cipher: https://www.ssllabs.com/ssltest/viewClient.html?name=Java&version=8u31
IBM’s statements regarding its plans, directions and intent are subject to change or withdrawal without notice at IBM’s sole discretion.
Session Summary ala Dave Kern
Fragen & Antworten
Offene Fragen?
Jetzt oder später per Mail
Aktuelle Informationen in meinem Blog
Feedback?
Kontakt [email protected] http://blog.nashcom.de