Re: Thunderbird 3.1 SSL/TLS Renegotiation

John Feuerstein <[email protected]>
Newsgroups gmane.mail.perdition.user
Message-ID <[email protected]>
Hello Simon,

thanks for the quick response. The given patch works fine for me!
Could you create another -rc or bugfix release including this?

> From: Simon Horman <[email protected]>
> 
> ssl: Set session_id
> 
> This allows session re-negoatiation to work
> in conjunction with the verification of client certificates.
> 
> In particular, it allows Thunderbird 3.1 to connect to perdition using TLS.
> 
> An alternate work-around is to disable all certificate verification using
> --ssl_no_client_cert_verify or disable client certificate verification
> using --ssl_no_cert_verify (introduced in 1.19-rc1).
> 
> This relates to Mozilla Bug #575915
> https://bugzilla.mozilla.org/show_bug.cgi?id=575915
> 
> Signed-off-by: Simon Horman <[email protected]>
> 
> Index: perdition/perdition/ssl.c
> ===================================================================
> --- perdition.orig/perdition/ssl.c	2010-07-27 10:37:40.000000000 +0900
> +++ perdition/perdition/ssl.c	2010-07-27 10:38:41.000000000 +0900
> @@ -528,6 +528,14 @@ SSL_CTX *perdition_ssl_ctx(const char *c
>  		return NULL;
>  	}
>  
> +	/* Set context for session */
> +	if (!SSL_CTX_set_session_id_context(ssl_ctx,
> +					    (unsigned char *)PACKAGE,
> +					    strlen(PACKAGE))) {
> +		VANESSA_LOGGER_DEBUG("SSL_CTX_set_session_id_context");
> +		goto err;
> +	}
> +
>  	/*
>  	 * Set the available ciphers
>  	 */


Regarding the other problem described by Joachim:
(please don't hijack threads... hard to follow for others reading the
archives!)

> Fatal Error reading authentication information from client
> 192.168.10.100:34680->192.168.10.100:143: Exiting child

... I also get this on each login using Thunderbird 3.1.1.
However, this doesn't seem "fatal" to the real IMAP session.
It seems like TB opens an additional connection to the server to check
capatibilities, then closes it without sending any authentication. The
authentication is then done on the initial connection (probably after
STARTTLS...) instead.

The debug log confirms this (PID 6245 is this mysterious connection that
just sends nothing (EOF?) after capability, while PID 6243 is the
initial connection that continues just fine...):

> perdition.imap4[6243]: Connect:  192.168.10.100:34679->192.168.10.100:143·
> perdition.imap4[6243]: SELF:   "* OK [CAPABILITY IMAP4 IMAP4REV1 STARTTLS] perdition ready on 0N\030\303\377\177 000297fe\r\n"·
> perdition.imap4[6245]: Connect:  192.168.10.100:34680->192.168.10.100:143·
> perdition.imap4[6245]: SELF:   "* OK [CAPABILITY IMAP4 IMAP4REV1 STARTTLS] perdition ready on 0N\030\303\377\177 000297fe\r\n"·
> perdition.imap4[6245]: CLIENT: "1 STARTTLS\r\n"·
> perdition.imap4[6245]: SELF:   "1 OK Begin TLS negotiation now\r\n"·
> perdition.imap4[6243]: CLIENT: "1 STARTTLS\r\n"·
> perdition.imap4[6243]: SELF:   "1 OK Begin TLS negotiation now\r\n"·
> perdition.imap4[6243]: SSL connection using CAMELLIA256-SHA·
> perdition.imap4[6245]: SSL connection using CAMELLIA256-SHA·
> perdition.imap4[6243]: CLIENT: "2 capability\r\n"·
> perdition.imap4[6243]: SELF:   "* CAPABILITY IMAP4 IMAP4REV1\r\n"·
> perdition.imap4[6243]: SELF:   "2 OK CAPABILITY\r\n"·
> perdition.imap4[6245]: CLIENT: "2 capability\r\n"·
> perdition.imap4[6245]: SELF:   "* CAPABILITY IMAP4 IMAP4REV1\r\n"·
> perdition.imap4[6245]: SELF:   "2 OK CAPABILITY\r\n"·
> perdition.imap4[6243]: CLIENT: "4 login \"[email protected]\" \"foobar\"\r\n"·
> perdition.imap4[6243]: username_add_domain: username_add_domain 0 1·
> perdition.imap4[6243]: username_add_domain: username_add_domain 0 4·
> perdition.imap4[6245]: CLIENT: ""·
> perdition.imap4[6245]: token_read: token_fill_buffer·
> perdition.imap4[6245]: read_line: token_read·
> perdition.imap4[6245]: imap4_in_get_auth: read_imap4_line 1·
> perdition.imap4[6245]: main: protocol->in_get_auth·
> perdition.imap4[6245]: Fatal Error reading authentication information from client 192.168.10.100:34680->192.168.10.100:143: Exiting child·
> perdition.imap4[6243]: REAL:   "* OK IMAP4 Ready 10.10.4.4 0001ce47\r\n"·
> perdition.imap4[6243]: SELF:   "flim07 CAPABILITY\r\n"·
> perdition.imap4[6243]: REAL:   "* CAPABILITY IMAP4 IMAP4REV1 STARTTLS\r\n"·
> perdition.imap4[6243]: REAL:   "flim07 OK CAPABILITY\r\n"·
> perdition.imap4[6243]: SELF:   "flim08 LOGIN {15}\r\n"·
> perdition.imap4[6243]: REAL:   "+ OK ready for additional input\r\n"·
> perdition.imap4[6243]: SELF:   "[email protected] {10}\r\n"·
> perdition.imap4[6243]: REAL:   "+ OK ready for additional input\r\n"·
> perdition.imap4[6243]: SELF:   "foobar\r\n"·
> perdition.imap4[6243]: REAL:   "flim08 OK SUCCESS - REAL MAIL SERVICE\r\n"·
> perdition.imap4[6243]: SELF:   "4 OK SUCCESS - PROXY\r\n"·
> perdition.imap4[6243]: Auth: 192.168.10.100:34679->192.168.10.100:143 client-secure=starttls authorisation_id=NONE authentication_id="[email protected]" server="127.0.0.1:10143" protocol=IMAP4 server-secure=plaintext status="ok"·
> ...

... so perhaps you can catch this in imap4_in_get_auth() or just leave
it this way. (After all, it's just TB trying to be smart...)

Best regards,
John
______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.