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

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: lcer00
lcer00 10.06.2021 um 15:46:10 Uhr
Goto Top
Hallo,

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

Grüße

lcer
Mitglied: Philipp711
Philipp711 10.06.2021 um 16:40:25 Uhr
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..
Mitglied: lcer00
lcer00 10.06.2021 um 17:59:34 Uhr
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
Mitglied: Philipp711
Philipp711 10.06.2021 aktualisiert um 19:27:22 Uhr
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...
Mitglied: Dani
Lösung Dani 10.06.2021 um 20:52:40 Uhr
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
Mitglied: Philipp711
Philipp711 10.06.2021 aktualisiert um 21:46:26 Uhr
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!
Mitglied: Dani
Dani 10.06.2021 um 23:29:38 Uhr
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
Mitglied: Philipp711
Philipp711 11.06.2021 um 12:46:15 Uhr
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!