AGB  ·  Datenschutz  ·  Impressum  







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

SSL mit TidPOP3

Ein Thema von OlloSoft · begonnen am 21. Feb 2008 · letzter Beitrag vom 11. Apr 2008
Antwort Antwort
OlloSoft

Registriert seit: 11. Mai 2004
14 Beiträge
 
#1

SSL mit TidPOP3

  Alt 21. Feb 2008, 15:52
Hi Leute,

ich möchte E-Mails mit der Indy (10) Komponente TidPOP3 empfangen und dabei SSL verwenden.

Die verknüpfte TIdSSLIOHandlerSocketOpenSSL Komponente funtioniert zwar, wenn ich bei den SSLOptions
.Mode = sslmUnassigned
setze, doch bei
.Mode = sslmServer
schlägt der TLS Handshake fehl -> Exception.

Was muss ich (zusätzlich) einstellen?

Für ausführliche Hinweise - evtl. auch weiterführende Info zum Thema SSL - wäre ich sehr dankbar.
Ollo
Sei respektvoll, denn du weißt nie, ob wir uns nicht mal persönlich begegnen
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: SSL mit TidPOP3

  Alt 21. Feb 2008, 15:56
Welche Exception genau?

Du musst der SSl-Komponente vorher ein Zertifikat zuweisen, außerdem musst du dir von externer Quelle noch gewisse DLLs besorgen (afaik).
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
OlloSoft

Registriert seit: 11. Mai 2004
14 Beiträge
 
#3

Re: SSL mit TidPOP3

  Alt 22. Feb 2008, 07:55
Hi Dani,

die OpenSSL Libraries libeay32.dll, libssl32.dll und ssleay32.dll liegen im Programmverzeichnis und werden dort auch gefunden.

Die Exception "Error connecting with SSL" tritt auf in der procedure TIdSSLSocket.Connect() und wird durch den Rückgabewert der function IdSslConnect() ausgelöst ->
EIdOSSLConnectError.Create(RSSSLConnectError), wobei der TIdStackSocketHandle-Parameter einen Wert <> 0 hat.

Benötige ich für einen einfachen TLS Handshake denn ein lokales Certificate?
Ollo
Sei respektvoll, denn du weißt nie, ob wir uns nicht mal persönlich begegnen
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: SSL mit TidPOP3

  Alt 22. Feb 2008, 21:20
Wie sieht denn das IdSSLIOHandlerSocketOpenSSL.OnVerifyPeer Event aus? Und wie die SSLOptions-Eigenschaft?

Ich konnte den Fehler zwischenzeitlich mal reproduzieren, aber jetzt bekomme ich AVs in libeay32.dll beim Verbinden. Muss mal schauen, ob das nach einem Neustart weg ist.

Zitat:
Benötige ich für einen einfachen TLS Handshake denn ein lokales Certificate?
Nein, mein Fehler
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
OlloSoft

Registriert seit: 11. Mai 2004
14 Beiträge
 
#5

Re: SSL mit TidPOP3

  Alt 25. Feb 2008, 08:41
Hi Dani,

Delphi-Quellcode:
// Properties der TIdPOP3 Komponente
IOHandler = IdSSLIOHandlerSocketOpenSSL
Port = 995
UseTLS = utUseImplicitTLS

// Properties der TIdSSLIOHandlerSocketOpenSSL Komponente
Port = 995
DefaultPort = 0
SSLOptions.Method = sslvSSLv3
SSLOptions.Mode = sslmServer // <- stelle ich dies auf sslmUnassigned funktioniert
                                     // der ServerConnect, allerdings ohne TLS Handshake(?!?)
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0


// Sind die Einstellungen für einen TLS Handshake OK?
// Was müsste ich ändern?




// OnVerifyPeer Event
function TForm4.IdSSLIOHandlerSocketOpenSSLVerifyPeer(Certificate: TIdX509; AOk: Boolean): Boolean;
begin
  asm int 3 end; // <- Dieser Haltepunkt wird nie erreicht.
                   // Die Exception "Error connecting with SSL" wird vorher schon ausgelöst.
  AOK := True;
  Result := True;
end;
Ollo
Sei respektvoll, denn du weißt nie, ob wir uns nicht mal persönlich begegnen
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: SSL mit TidPOP3

  Alt 25. Feb 2008, 21:05
Ich glaube SSLOptions.Mode müsste sslmClient sein, denn unsere Rolle und damit die des IOHandlers ist die des Clients. SSLOptions.VerifyMode sollte wenigstens sslvrfPeer enthalten, denn wir wollen ja, dass sich unser Gegenüber (der Server) per Zertifikat identifiziert. Dazu dürfte in der Doku allerdings gerne mehr stehen als sinngemäß "das ist eine Aufzählung der möglichen Modi" (ach nee )

Jedenfalls wird mit diesen Einstellungen wenigstens schonmal OnVerify aufgerufen. Das Zertifikat von pop.mail.yahoo.com hat danach den Fingerprint 1AB:9F:FE8:33:3E:08:C5:3E:7B:9C:31:FE:09:4A.

Direkt nach dem Verifizieren raucht allerdings immer noch die libeay32.dll mit einer AV ab.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: SSL mit TidPOP3

  Alt 11. Mär 2008, 16:45
Hallo Ollosoft,

da muß ich mich mal einschalten.

Was für ein Chaos: Warum -drei- DLLs? Du hast Dir meine OpenSSL Patches geladen, richtig? Verwendest Du die Indy10 von der Delphi Installation oder aus dem SVN?

Bitte überprüfe auch, ob die richtige IdSSLOpenSSLHeaders.pas in deinem Projektverzeichnis liegt bzw. vom Compiler gefunden und genutzt wird.

Eine AV darf es da nicht geben.

Du hast also wahrscheinlich einen Mix aus alter und neuer DLL, weil Dein Compiler die alte IdSSLOpenSSLHeaders.pas nutzt (und daher nach der ssleay32.dll fragt).

Momentdan heißen die gepatchten DLLs: libeay32.dll und libssl32.dll. Dies wird von der gepatchten IdSSLOpenSSLHeaders.pas berücksichtigt.

Ich werde auf Wunsch wieder zur alten (Delphi) Namensgebung zurückkehren, wobei meine der OpenSSL Sourcen entspricht...

Aber: Ich sehe im Moment öfter bei Verkaufssoftware, Exchange-Tools z.B., das 3 DLLs verwendet werden. Das ist definitiv falsch!

Gruß Assertor

Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: SSL mit TidPOP3

  Alt 11. Apr 2008, 01:25
Habe Delphi neu installiert und siehe da keine AVs mehr, kann sogar die unmodifizierten OpenSSL-DLLs benutzen (verwende jetzt den FPC Build).
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz