Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

IMAP mit OpenSSL 1.0.1 und KMail

113 views
Skip to first unread message

Mark Morschhäuser

unread,
Oct 4, 2012, 12:31:35 PM10/4/12
to
Hallo,

die Anmeldung am RWTH IMAP Server funktioniert nicht mit OpenSSL 1.0.1 (die
z.B. in Debian, Ubuntu und Gentoo drin ist), man muss auf OpenSSL 1.0.0j
downgraden, damit es funktioniert.
KMail erkennt keine Verschlüsselung und will diese daher ausschalten.

In der Konsole bekomme ich mit OpenSSL 1.0.1c folgendes:
======================================================
~ $ openssl s_client -connect mailbox.rwth-aachen.de:993
CONNECTED(00000003)
140672014960296:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3
alert handshake failure:s23_clnt.c:741:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 322 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

======================================================

und mit OpenSSL 1.0.0j zeigt er mir die Zertifikate und bla an.
Das Problem habe ich auch an einem Lehrstuhl mitbekommen. Ist darüber
genaueres bekannt?

Grüße,

Mark

Thomas Bächler

unread,
Oct 4, 2012, 1:34:01 PM10/4/12
to
Am 04.10.2012 18:31, schrieb Mark Morschhï¿œuser:
> Hallo,
>
> die Anmeldung am RWTH IMAP Server funktioniert nicht mit OpenSSL 1.0.1 (die
> z.B. in Debian, Ubuntu und Gentoo drin ist), man muss auf OpenSSL 1.0.0j
> downgraden, damit es funktioniert.
> KMail erkennt keine Verschlï¿œsselung und will diese daher ausschalten.

Der RWTH E-Mail Server ist total kaputt - offenbar hï¿œlt er sich nicht an
den SSL Standard. Mit der -ssl3 Option geht es zumindest mit s_client.
Bei kmail hilft dir das natï¿œrlich nicht.

Ich gehe davon aus, dass der Server sich nicht an den SSL Standard hï¿œlt
und ï¿œber den Request von openssl stolpert. Leider kenne ich keine
sinnvolle Mï¿œglichkeit, das zu debuggen.

stefan...@gmail.com

unread,
Oct 26, 2012, 9:39:18 PM10/26/12
to
Am Donnerstag, 4. Oktober 2012 19:34:03 UTC+2 schrieb Thomas Bächler:


> Der RWTH E-Mail Server ist total kaputt - offenbar hï¿œlt er sich nicht an
> den SSL Standard. Mit der -ssl3 Option geht es zumindest mit s_client.
> Bei kmail hilft dir das natï¿œrlich nicht.
>
> Ich gehe davon aus, dass der Server sich nicht an den SSL Standard hï¿œlt
> und ï¿œber den Request von openssl stolpert. Leider kenne ich keine
> sinnvolle Mï¿œglichkeit, das zu debuggen.

Soweit vollkommen korrekt.

1. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -ssl3
Funktioniert. Im ClientHello steht an Offset 4-5: 0x03 0x00, also SSLv3, dies wird vom Server akzeptiert.

2. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -tls1
Protokollversion 0x03 0x01 -> TLS 1.0 aka SSL 3.1, funktioniert

3. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -tls1_1
Protokollversion 0x03 0x02 -> TLS 1.1, funktioniert nicht.

Das Problem ist jetzt, dass die akonadi Imap-Ressource im Falle von SSL als Protokoll QSsl:AnyProtocol verwendet, womit openSSL ssl23_client_method für den Handshake verwendet wird, und die erlaubt sslv2, v3, TLS 1.0-1.2.

Leider stellt sich der Mailserver ziemlich dämlich an, wenn er nen TLS1.1/1.2 Request bekommt - er bräuchte einfach nur mit TLS1.0 antworten - im RFC 2246 steht an der Stelle leider nur ein SHOULD ...

TLS kann bei KMail nur ausgewählt werden, wenn der Server STARTTLS unterstützt - aber das ist für das Ding leider auch zu neumodisch, der RFC ist ja auch erst von Juni 1999.
Message has been deleted

Torsten Bronger

unread,
Jan 18, 2013, 1:47:18 AM1/18/13
to
Hallöchen!

stefan...@gmail.com schreibt:

> Am Donnerstag, 4. Oktober 2012 19:34:03 UTC+2 schrieb Thomas Bächler:
>
>> Der RWTH E-Mail Server ist total kaputt - offenbar hält er sich
>> nicht an den SSL Standard. Mit der -ssl3 Option geht es zumindest
>> mit s_client. Bei kmail hilft dir das natürlich nicht.
>>
>> Ich gehe davon aus, dass der Server sich nicht an den SSL
>> Standard hält und über den Request von openssl stolpert. Leider
>> kenne ich keine sinnvolle Möglichkeit, das zu debuggen.
>
> Soweit vollkommen korrekt.
>
> 1. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -ssl3
> Funktioniert. Im ClientHello steht an Offset 4-5: 0x03 0x00, also
> SSLv3, dies wird vom Server akzeptiert.
>
> 2. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -tls1
> Protokollversion 0x03 0x01 -> TLS 1.0 aka SSL 3.1, funktioniert
>
> 3. openssl s_client -msg -connect mailbox.rwth-aachen.de:993 -tls1_1
> Protokollversion 0x03 0x02 -> TLS 1.1, funktioniert nicht.

Das ist immer noch so.

Eventuell bin auch ich nun nach einem Systemupdate von diesem
Problem betroffen. Will ich aus einem Python-Skript eine Email über
den RWTH-Server versenden, mache ich das mit

s = smtplib.SMTP_SSL("relay-auth.rwth-aachen.de")
s.login("bronger+physik.rwth-aachen.de", "******")
s.sendmail("bro...@physik.rwth-aachen.de", ["empfa...@firma.de"], mail_body)

Das führt nun zu

ssl.SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Ist das wirklich das oben zitierte Problem? (Vielleicht nicht: Es
steht ja SSLv3 in der Antwort, und das soll ja funktionieren.) Wenn
ja: Wie kann ich Python sagen, es soll SSLv3 benutzen?

Tschö,
Torsten.

--
Torsten Bronger Jabber-ID: torsten...@jabber.rwth-aachen.de
oder http://bronger-jmp.appspot.com

Torsten Bronger

unread,
Jan 18, 2013, 2:29:42 AM1/18/13
to
Hallöchen!

Torsten Bronger schreibt:

> [...]
>
> s = smtplib.SMTP_SSL("relay-auth.rwth-aachen.de")
> s.login("bronger+physik.rwth-aachen.de", "******")
> s.sendmail("bro...@physik.rwth-aachen.de", ["empfa...@firma.de"], mail_body)
>
> Das führt nun zu
>
> ssl.SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL
> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
>
> Ist das wirklich das oben zitierte Problem? (Vielleicht nicht: Es
> steht ja SSLv3 in der Antwort, und das soll ja funktionieren.) Wenn
> ja: Wie kann ich Python sagen, es soll SSLv3 benutzen?

Die zweite Frage kann ich nun selber beantworten: In smtplib.py muß
man

new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile)

durch

new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile, ssl_version=ssl.PROTOCOL_SSLv3)

ersetzen. Das Problem ist gelöst. Ich wäre immer noch neugierig,
was es ausgelöst hat.
0 new messages