[Pidgin] #3456: TLS handshake error(unexpected length packet) when recieving MSN contact list

Pidgin trac at pidgin.im
Sat Feb 14 15:27:02 EST 2009


#3456: TLS handshake error(unexpected length packet) when recieving MSN contact
list
--------------------------------------+-------------------------------------
 Reporter:  bsdunx                    |           Owner:  khc
     Type:  defect                    |          Status:  new
Milestone:                            |       Component:  MSN
  Version:  2.2.1                     |      Resolution:     
 Keywords:  gnutls tls handshake msn  |   Launchpad_bug:     
--------------------------------------+-------------------------------------

Comment(by darkrain42):

 Replying to [comment:17 gagern]:
 > Using TLS in preference to TLS 1.0 is not a bug, as
 [http://tools.ietf.org/html/rfc4346#section-1.1 RFC 4346 section 1.1]
 mentions several security relevant improvements from TLS 1.0 to TLS 1.1.
 Always sending version 1.1 in the client hello is not a bug, as
 [http://tools.ietf.org/html/rfc2246#section-7.4.1.2 RFC 2246 section
 7.4.1.2] states that the client should indicate the highest protocol
 version it can handle. It is up to the server to give a lower protocol
 version in its reply hello, which will then be used for the communication.
 The server closing the connection instead is simply a bug there.

 In reading [http://tools.ietf.org/html/rfc4346#appendix-E RFC4346 (tls
 1.1) Appendix E] and examining wireshark, I noticed something. The Client
 Hello contains two version fields; one in the SSL Record Layer and one in
 the Client Hello. For tls1.1, both are set to TLS 1.1 (`0x0302`), but
 Appendix E indicates that, for backward-compatibility, the record layer
 SHOULD be version SSL3.0 (`0x0300`, I assume) (and the Client Hello
 version 1.1). My reading is that doing this is the appropriate way to
 support >=SSL3.0 (since Microsoft's server doesn't understand TLS1.1).

 I may be reading that wrong and I also am not sure that gnutls allows what
 I just described, but I'm going to take a closer look and possibly add
 another test to the cli debug app and test setting the record layer to
 `0x0300` and `0x0301`.

 > If you want to have the nss behaviour, you can simply choose to
 indiscrimately disable TLS 1.1 and higher for each and every connection
 established with gnutls. A simple call to
 [http://www.gnu.org/software/gnutls/reference/gnutls-gnutls.html#gnutls-
 protocol-set-priority gnutls_protocol_set_priority] in ssl_gnutls_connect
 would do the trick. The danger is that this configuration option would be
 likely to stay in place unrevised for a really long time, making pidgin
 use outdated and insecure protocols for all connections far into the
 future, just because some MSN server right now is buggy.
 >
 > So if you can think of a way to actually enforce revisiting this bug
 here say every year or so, and to check whether the restriction to TLS
 <1.1 is still required, then this might be a viable workaround for now. If
 not, I'm not a pidgin developer so I can't forbid this approach, but I
 would vote against it.

 I wholeheartedly think this is a very Bad Idea (the reasons you outlined
 plus the possibility of discoveries of further exploits in TLS 1.0). Your
 other suggestion (limiting just MSN soap connections) is better.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/3456#comment:20>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list