Seite 1 von 1

OpenSSL 1.1.1

Verfasst: Dienstag 1. Februar 2022, 08:48
von Trollstone
Hallo zusammen,

ich versuche mich gerade an ein paar keinen Herausforderungen im Bezug auf den Zugriff auf einen LDAP Server. Mein Code konnte ich dabei ohne Probleme auf meinem Mac unter Python 3.8.9 ausführen - nach dem Update von Python auf 3.10.2 konnte die Verbindung zum LDAP Server aber aufgrund eines SSL Handshake Fehlers nicht mehr aufgebaut werden.

Erkenntnisse brachte hier erst die Debug Informationen vom LDAP Server. Hier wurde deutlich, dass das Problem beim "Aushandeln" des zu verwendenden Ciphers lag (No common ciphers found)

Die Lösung bestand am Ende darin, über das Tls Objekt den gewünschten Cipher als Parameter zu übergeben. Dies war vor SSL 1.1.1 nicht notwendig!

Code: Alles auswählen

ciphers='ALL'
#ciphers='AES256-GCM-SHA384'

# Establish LDAP connection and initialize connection (conn) object
tls = Tls(ciphers=ciphers,validate=ssl.CERT_NONE,version=ssl.PROTOCOL_TLS)
Kann mir eventuell jemand sagen, ob es für die von Python 3.10.x verwendete OpenSSL Library eine systemweite Konfiguration gibt, damit im Code nicht unbedingt der gewünschte Cipher angegeben werden muss?

Besteht unter MacOS, welches ja eine andere OpenSSL Implementierung benutzt eine Möglichkeit (temporär) im Terminal auf die OpenSSL 1.1.1 zuzugreifen, die von Python installiert wird.

Sollten meine Fragen zu profan sein, bitte ich das zu entschuldigen - ich fange gerade erst an in Python einzutauchen ;-)

VG

Thorsten

Re: OpenSSL 1.1.1

Verfasst: Dienstag 1. Februar 2022, 10:50
von DasIch
Davon ausgehend dass du vorher den default context verwendet hast, deutet dass darauf hin dass eine Seite nur noch veraltete und unsichere Optionen unterstützt, welche die andere ablehnt. Deine Lösung quasi alles zu akzeptieren was dir der Server anbietet - was unsicher ist - unterstützt dies ebenfalls. Um dies zu überprüfen müsste man man sich die Konfiguration von Client und Server genau anschauen und vergleichen.

Da du eine aktuelle Python und OpenSSL Version nutzt, dürfte es wohl am LDAP Server liegen. Ich würde mir den mal genauer anschauen und ggfs. aktualisieren. Sollte dass nicht möglich sein, könnte man sich mit der Konfiguration des LDAP Servers befassen und den Client so zu konfigurieren dass die am wenigsten unsicheren aber funktionieren Optionen verwendet werden.

Es gibt meines Wissens keine Möglichkeit dies systemweit zu ändern, dies wäre aber auch wahrscheinlich die schlechteste Lösung des Problems.