philipp711
Goto Top

Domänencontroller - LDAPS via TLS1.2

Hallo Leute,

ich habe ein kleines Verbindungsproblem zwischen einer Java-Anwendung (java11) und unserem Domänencontroller.

Ich erhalte folgenden Fehler:

javax.naming.CommunicationException: simple bind failed: dc.domain.local:636 [Root exception is javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)]

Per Openssl habe ich mal die Verbindung geckeckt um nachzusehen, welches Protokoll/Cipher denn vom Server angeboten wird:
serverconnection

Parallel dazu habe per Wireshark den TLS-Client-Hello aufgezeichnet, um zu sehen welche Protokoll/Chipers denn vom Client so angefragt werden:
client_hello

M.E. müssten die jeweils angebotenen Ciphers doch übereinsimmen...TLS-ECDHE_RSA-WITH_AES_256_CBC_SHA384 (IANA) ist doch das gleiche wie ECDHE-RSA-AES-SHA384 und dementsprechend müsste die Verbindung doch zustande kommen?!

Standardmäßig ist TLS1.0 und TLS1.1 in Java deaktiviert. Wenn ich nun in der Security-Config TLS1.1 aktiviere, funktioniert die Verbindung...Irgendwie liegt es definitiv an der Verbindung mit über TLS1.2.

Ich stehe jetzt etwas auf dem Schlauch, da ich nicht so genau weiter weiß wie ich das weiterführend Troubleshooten kann...Kann ich die Funktionalität von LDAPs auf unserem DC über TLS1.2 nochmals gegenchecken?

Dankeschön!

Content-Key: 667482

Url: https://administrator.de/contentid/667482

Printed on: April 19, 2024 at 22:04 o'clock

Member: lcer00
lcer00 Jun 10, 2021 at 13:46:10 (UTC)
Goto Top
Hallo,

vertraut der Client über den öffentlichen Schlüssel der Domänencertifizierungsstelle?

Grüße

lcer
Member: Philipp711
Philipp711 Jun 10, 2021 at 14:40:25 (UTC)
Goto Top
Zitat von @lcer00:

Hallo,

vertraut der Client über den öffentlichen Schlüssel der Domänencertifizierungsstelle?

Grüße

lcer

Jap, habe das CA-Cert per keytool Java bekannt gemacht..
Member: lcer00
lcer00 Jun 10, 2021 at 15:59:34 (UTC)
Goto Top
Hallo,

Dann wäre die Frage, ob der DC damit auch arbeitet. https://docs.microsoft.com/de-de/mem/configmgr/core/plan-design/security ...

Grüße

lcer
Member: Philipp711
Philipp711 Jun 10, 2021 updated at 17:27:22 (UTC)
Goto Top
Zitat von @lcer00:

Hallo,

Dann wäre die Frage, ob der DC damit auch arbeitet. https://docs.microsoft.com/de-de/mem/configmgr/core/plan-design/security ...

Grüße

lcer

Naja, wie im Screenshot im Anfangspost gezeigt baut openssl ja erfolgreich eine Verbindung über TLS 1.2 auf. Auch nmap mit tls-enum-script schmeißt TLS1.2 mit diversen cipher-suites als Verfügbar aus. TLS 1.2 ist demnach auf den DCs aktiviert und laut MS-Doku auch Standardmäßig an.

Da TLS 1.1 ja im gleichen Setup funktioniert, gehe ich mal von einer korrekt Konfiguration im Sinne von Vertrauenstellungen, vertauenswürdige CA, Ports, Namensauflösung, Credentials etc. aus.

Aus der nmap-Ausgabe ist außerdem ersichtlich, dass die vom Server angebotenen Cipher-Suites nahezu Deckungsgleich mit den angefragten Ciphern aus dem Wireshark-Trace sind.

Irgendwie wollen sich die beiden Parteien nicht auf TLS1.2 einigen...
Member: Dani
Solution Dani Jun 10, 2021 at 18:52:40 (UTC)
Goto Top
Moin,
ist der Screenshot von Wireshark beim Verbindungstest mit Java oder OpenSSL?
Gibt es in der Java Anwendung eine Datei ./lib/security/java.security und was steht dort drin?

M.E. müssten die jeweils angebotenen Ciphers doch übereinsimmen...TLS-ECDHE_RSA-WITH_AES_256_CBC_SHA384 (IANA) ist doch das gleiche wie ECDHE-RSA-AES-SHA384.
Richtig, ist das Gleich. Letzteres ist die "Übersetzung" in OpenSSL.

und dementsprechend müsste die Verbindung doch zustande kommen?!
Ja. Dein Screenshot von OpenSSL zeigt dies auch - Handshakre, Verify - beides okay.

Ich stehe jetzt etwas auf dem Schlauch, da ich nicht so genau weiter weiß wie ich das weiterführend Troubleshooten kann...
Debugging Utilities


Gruß,
Dani
Member: Philipp711
Philipp711 Jun 10, 2021 updated at 19:46:26 (UTC)
Goto Top
Zitat von @Dani:

Moin,
ist der Screenshot von Wireshark beim Verbindungstest mit Java oder OpenSSL?

Mit Java...

Gibt es in der Java Anwendung eine Datei ./lib/security/java.security und was steht dort drin?


Jop, gibt es. Über diese Datei aktivieren ich dann auch den TLS 1.1 Support (habs nicht genau im Kopf aber der Eintrag hieß glaube "disabledtlsprotocols" oder so).

Brauchst du den kompletten Inhalt? face-big-smile


Danke!
Member: Dani
Dani Jun 10, 2021 at 21:29:38 (UTC)
Goto Top
Moin,
Brauchst du den kompletten Inhalt? face-big-smile face-big-smile
Ne, es reicht der Abschnitt bezüglich SSL/TLS und Cipher (Suites).


Gruß,
Dani
Member: Philipp711
Philipp711 Jun 11, 2021 at 10:46:15 (UTC)
Goto Top
Habe den Fehler mittlerweile gefunden.

Als Ausgangspunkt des Problems habe ich bei der Applikation ein Update eingespielt. Die Applikation nutzt Java als "Unterbau". In der Java-Konfig war TLS1.1 und TLS1.0 explizit als disabled deklariert (zurecht). Allerdings hat die Applikation auch noch eigene Konfig-Files die durch das Update (warum auch immer) nicht aktualisiert wurden. In dieser Konfig stand explizit drin, dass nur TLS1.1 für LDAPs genutzt werden soll. Der "Spaß" hat sich also gegenseitig Ausgeschlossen...ziemlich dämlich!

Vielen Dank für die Hilfe!