AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy OpenSSL Sicherheitsupdates

Ein Thema von Assertor · begonnen am 3. Jun 2008 · letzter Beitrag vom 19. Dez 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#1

AW: Indy OpenSSL Sicherheitsupdates

  Alt 31. Aug 2020, 18:08
Dass mag zwar für die DLLs gelten, jedoch die 'Developer Snapshots' als Zip gehen nicht mehr und deren Links laufen ins Leere..
Das ist doch nun wirklich nicht schwer... https://github.com/IndySockets/Indy
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Indy OpenSSL Sicherheitsupdates

  Alt 21. Jun 2021, 22:05
Moin,

ich benötige für eine Programmfunktion eine HTTPS-Verbindung zu einem Datenserver, die ich gerne mit IdHTTP-Komponente aus Indy10 (Delphi 10.3) umsetzen würde.

Ich dachte, die Abfrage relativ schnell umsetzen zu können, doch ich habe nicht mit den Unzulänglichkeiten der IDE gerechnet. Man sollte meinen, dass HTTPS heute als Standard angesehen wird.

Als die Meldung "SSL-Bibliothek konnte nicht geladen werden." auf dem Bildschirm erschien, suchte ich zunächst vergeblich in den Eigentschaften der Komponente nach der Lösung. Google sagte mir dann, man müsse die libeay32.dll und ssleay32.dll in sein Programmverzeichnis kopieren, um das Protokoll nutzen zu können.

Die Vorgehensweise wird u.a. in einem Tutorial auf dieser Forenseite beschrieben. Nur dumm, dass die Links zu den DLLs überall veraltet sind. Indy Project verweist aua urheberrechtlichen Gründen auf GitHub als Downloadseite.

Nur was soll man hier nun auswählen? Ist das der letzte Stand und wie erfährt man von möglichen Updates?

Ich wäre für aktuelle Infos mehr als dankbar. Der Zeitaufwand für die bisherige Recherche, die in vielen toten Links endete, war nicht ohne.

Danke im Voraus.
Ingo
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#3

AW: Indy OpenSSL Sicherheitsupdates

  Alt 21. Jun 2021, 23:01
Das kann ich gut verstehen. Die Situation mit den Win32-Binaries für OpenSSL ist wirklich nicht schön. Darüber habe ich mich auch schon oft geärgert. Also ich verwende die 1.0.2s mit Indy 10. Die letzte Minor-Version aus dem 1.0.2-Zweig ist die "u". Dabei jeweils auf 32- und 64 Bit achten, je nach Bedarf. Da musst du auch aufpassen wenn du dein Programm auslieferst, weil die Dateinamen der DLLs bei 32 und 64 Bit identisch sind.

Soweit ich weiß braucht Indy 10 keine speziellen OpenSSL-DLLs mehr, wie es noch bei Indy 9 der Fall war. Man könnte sie also aus den offiziellen Quellen selbst kompilieren. Was ich aber noch nie gemacht habe mangels tieferes Wissen über C++.

Wirklich ein Problem ist aber, dass Indy so weit hinten dran ist mit der Unterstützung für OpenSSL 1.1.1. Schließlich ist der 1.0.2-Zweig schon seit zwei Jahren aus dem aktiven Support raus. Es gibt inzwischen lauffähige Entwicklersnapshots, aber stabil ist das IMHO noch nicht.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (21. Jun 2021 um 23:08 Uhr)
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 07:03
Das kann ich gut verstehen. Die Situation mit den Win32-Binaries für OpenSSL ist wirklich nicht schön. Darüber habe ich mich auch schon oft geärgert. Also ich verwende die 1.0.2s mit Indy 10. Die letzte Minor-Version aus dem 1.0.2-Zweig ist die "u". Dabei jeweils auf 32- und 64 Bit achten, je nach Bedarf. Da musst du auch aufpassen wenn du dein Programm auslieferst, weil die Dateinamen der DLLs bei 32 und 64 Bit identisch sind.

Soweit ich weiß braucht Indy 10 keine speziellen OpenSSL-DLLs mehr, wie es noch bei Indy 9 der Fall war. Man könnte sie also aus den offiziellen Quellen selbst kompilieren. Was ich aber noch nie gemacht habe mangels tieferes Wissen über C++.

Wirklich ein Problem ist aber, dass Indy so weit hinten dran ist mit der Unterstützung für OpenSSL 1.1.1. Schließlich ist der 1.0.2-Zweig schon seit zwei Jahren aus dem aktiven Support raus. Es gibt inzwischen lauffähige Entwicklersnapshots, aber stabil ist das IMHO noch nicht.
Moin Codehunter,

vielen Dank für Deine Ausführungen, die für mich ein wenig Licht ins Dunkel bringen. Ich werde es mit den 1.0.2u einfach ausprobieren. Sollte es nicht funktionieren, muss ich die Anforderung vorerst zurückstellen.

Viele Grüße
Ingo
  Mit Zitat antworten Zitat
mezen

Registriert seit: 13. Jul 2011
Ort: Lippstadt
30 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 07:09
@ioster:
TLS ist kein leichtes Protokoll und bringt einige Eigenschaften mit sich, TLS ist schwierig "mal eben" zu begreifen und entsprechend dem Verständnis sinnhaft und zielgerichtet einzusetzen.

Aktuelle Infos kurzgefasst:
  • Indy nutzt OpenSSL
  • Indy 9 brauchte spezielle OpenSSL Binaries, welche für Indy angepasst waren. Indy 10 braucht das nicht mehr und es reichen unveränderte aus
  • Mitgeliefertes Indy kann nur maximal OpenSSL 1.0.2 (und daher TLS 1.2)
  • OpenSSL 1.0.2 ist Ende 2019 aus dem Support gefallen und wird nicht mehr mit Sicherheitsupdates versorgt
  • Aktuell neuste und stabile Version ist OpenSSL 1.1.1, Vorgänger war OpenSSL 1.1.0, dessen Vorgänger OpenSSL 1.0.2 war
  • Nachfolger OpenSSL 3 ist aktuell frisch in der Beta, nach etwas über 1 Jahr in der Alpha
  • Bisher genutzten OpenSSL Binaries wurden von https://opendec.wordpress.com/ erstellt, welcher seine Build Umgebung nicht mehr auf Versionen nach 1.0.2 umgestellt hat
  • OpenSSL Version 1.1.0 hat API Änderungen gegenüber OpenSSL 1.0.2, was auch Änderungen in Indy selber benötigt

So weit, so schlecht die Infos.
Aber es gibt weiterhin Hoffnung: Es gibt bereits Anpassungen für Indy, damit Indy auch OpenSSL 1.1.1 nutzen kann: https://www.delphipraxis.net/204185-...tls-1-3-a.html. Dies befindet sich noch im GitHub PR und wartet darauf, dass es nach Indy gemergt wird. Die Änderung läuft auch stabil, ist bei unseren Kunden bereits dauerhaft aktiv und viel genutzt.

@ioster:
Du willst dir vllt als Alternative THttpClient von Emba angucken. Dies ist ein Versuch mittels System APIs, und nicht mit Indy, HTTP nutzbar zu machen. Und das sogar plattformübergreifend (was Indy ja auch bereits kann). Auf Windows wird dafür auf die WinAPIs für WinHTTP zurück gegriffen. Somit brauchst du keine OpenSSL DLLs, da Windows das eigene SChannel nutzt.

@Codehunter:
Danke für deinen Bump bei meinem MR. Aktuell laufen die Änderungen gut, wie ich schrieb, auch schon bei unseren Kunden im Einsatz. Ich muss nur halt warten bis Remy mit dem Review fertig ist. Da er aber nur rein den Code anguckt, und das doch ein paar viele Zeilen beinhaltet, dauert das leider. Mehr kann ich leider nicht tun.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
928 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 07:09
Und falls es nicht unbedingt Indy sein muss: bei der Implementierung mit TNetHTTPClient (und TNetHTTPRequest) wird automatisch https über die vorhandenen OS-Komponenten gelöst. Das ist deutlich zukunftssicherer, geht aber nicht für alle Anwendungsfälle.
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 07:17
Moin,

ich muss nochmal stören. Die DLLs aus dem 1.0.2u-Paket haben schon ein wenig gefruchtet. Allerdings bekomme ich nun die Meldung, dass ich meine Anfrage mit der falschen Protokollversion sende.

Die Meldung lautet:

Fehler beim Verbinden mit SSL.
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert
protocol version.

Laut Dienstanbieter sollen die Anfragen mit TLS 1.2 erfolgen sollen. Hat jemand sich damit schon auseinandergesetzt?

Danke
Ingo
  Mit Zitat antworten Zitat
mezen

Registriert seit: 13. Jul 2011
Ort: Lippstadt
30 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 08:40
TIdHTTP erstellt sich einen eigenen TIdSSLIOHandlerSocketOpenSSL, sofern man nicht selber einen IOHandler zuweist. Dieser selbsterstellte hat aber nur die Default Eigenschaften was TLS 1.0 entspricht.
Erzeuge einen eigenen TIdSSLIOHandlerSocketOpenSSL und setze dort SSLOptions.SSLVersions := [sslvTLSv1_2] (SSLOptions.Method ist deprecated und Überbleibsel aus Indy 9)
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Indy OpenSSL Sicherheitsupdates

  Alt 22. Jun 2021, 09:08
TIdHTTP erstellt sich einen eigenen TIdSSLIOHandlerSocketOpenSSL, sofern man nicht selber einen IOHandler zuweist. Dieser selbsterstellte hat aber nur die Default Eigenschaften was TLS 1.0 entspricht.
Erzeuge einen eigenen TIdSSLIOHandlerSocketOpenSSL und setze dort SSLOptions.SSLVersions := [sslvTLSv1_2] (SSLOptions.Method ist deprecated und Überbleibsel aus Indy 9)
Hallo mezen,

vielen Dank. Das hat mir weitergeholfen. Parallel dazu habe ich in einem anderen Forum eine Quellcode gefunden, der die Erstellung eines IOHandlers beschreibt.

Die Abfrage funktioniert jetzt bestens, aber wie soll es auch anders sein - es baut sich das nächste Hindernis auf, das Parsen des XML-Rückgabewerts. Es ist faszinierend, wie man sich in dem Thread "XML parsen, aber wie" über das Für und Wider eines XML-Parsers streitet, doch letztlich hat man auf der 3. Seite wieder einen Cliffhanger.

Viele Grüße
Ingo
  Mit Zitat antworten Zitat
Carsten Hölscher

Registriert seit: 29. Jul 2008
77 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Indy OpenSSL Sicherheitsupdates

  Alt 23. Sep 2021, 17:18
Das kann ich gut verstehen. Die Situation mit den Win32-Binaries für OpenSSL ist wirklich nicht schön. Darüber habe ich mich auch schon oft geärgert. Also ich verwende die 1.0.2s mit Indy 10. Die letzte Minor-Version aus dem 1.0.2-Zweig ist die "u". Dabei jeweils auf 32- und 64 Bit achten, je nach Bedarf. Da musst du auch aufpassen wenn du dein Programm auslieferst, weil die Dateinamen der DLLs bei 32 und 64 Bit identisch sind.
Also sehe ich das richtig, dass für 32- und 64-bit Versionen meiner exe in beiden Fälln der Dateiname ssleay32.dll und libeay32.dll lautet?

Also mal im Gesamtzusammenhang, folgender Download: https://indy.fulgan.com/SSL/

32 bit Windows: 32 bit Anwendung: dlls aus openssl-1.0.2q-i386-win32.zip
32 bit Windows: 64 bit Anwendung: geht nicht
64 bit Windows: 32 bit Anwendung: dlls aus openssl-1.0.2q-i386-win32.zip
64 bit Windows: 64 bit Anwendung: dlls aus openssl-1.0.2q-x64_86-win64.zip

Korrekt verstanden? Wenn ja halte ich das für eine etwas ungewöhnliche und verwirrende Benennung, oder gibt es einen Grund, die nicht unterschiedlich zu nennen?

Carsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz