Re: [TLS] Rizzo claims implementation attach, should be interesting

"Yngve N. Pettersen" <> Thu, 29 September 2011 14:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 38B5221F8D0D for <>; Thu, 29 Sep 2011 07:31:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.569
X-Spam-Status: No, score=-6.569 tagged_above=-999 required=5 tests=[AWL=0.030, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id CacE+DvIJxZe for <>; Thu, 29 Sep 2011 07:31:36 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 1EAA921F8DB7 for <>; Thu, 29 Sep 2011 07:31:35 -0700 (PDT)
Received: from lessa-ii.oslo.os ( []) (authenticated bits=0) by (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id p8TEYKm7016780 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 29 Sep 2011 14:34:23 GMT
Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes
To: "Martin Rex" <>
References: <>
Date: Thu, 29 Sep 2011 16:34:29 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: "Yngve N. Pettersen" <>
Organization: Opera Software ASA
Message-ID: <op.v2kqrrnkkvaitl@lessa-ii.oslo.os>
In-Reply-To: <>
User-Agent: Opera Mail/10.62 (Win32)
Subject: Re: [TLS] Rizzo claims implementation attach, should be interesting
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 29 Sep 2011 14:31:37 -0000

On Thu, 29 Sep 2011 16:13:03 +0200, Martin Rex <> wrote:

> Yngve N. Pettersen wrote:
>> Martin Rex wrote:
>> > Marsh Ray wrote:
>> > >
>> > > I believe there was a mitigation put in place by OpenSSL: sending an
>> > > empty (just padding) message before each app data message.
>> > >
>> > > I read somewhere that this mitigation was off by default in OpenSSL
>> > > because it [breaks] some software (an old MSIE IIRC).
>> >
>> > Why using a EMPTY (just padding) SSL record?  That looks like an
>> > obvious untested border case.
>> >
>> > How about using an initial SSL record with one byte of real data
>> > for SSLv3 and TLSv1.0 SSL with CBC cipher suites?
>> According to my testing, this breaks about as many websites,
>> unfortunately, approximately 0.15% of tested websites.
> What exactly did you do?  did you fragment the client's
> finished handshake message as well (which is the first protected
> message on a TLS connnection) ?  As previously mentioned, I would
> expect this to cause interop problems, whereas I have a slight
> hope that fragmenting only application data might work.

The test only used a split record for application data, and was only  
performed if the server supported on of the CBC ciphersuites supported by  
the prober, and a successful HTTP request for / without split record had  
been sent earlier in the test.

Determining failure required detecting two successive failures that either  
did not return a response at all, or a 400+ error code that was not the  
same as was received in the baseline request. (200/300 was considered a  
success regardless )

Five different split policies were tested (0, 1, 2, blocksize-1, blocksize  
-2 bytes), each with or without having the blocks in the same TCP record.  
The above number was with the two records in the same TCP record (as that  
had a significantly lower failure rate).

The above numbers is the combined failure rate for servers that support  
AES, or only support 3DES. (AES is presumed to be selected by these  

I have previously seen HTTPS servers mishandle two HTTP requests in the  
same record (the second was ignored); my guess is that this is the same  
thing: An assumption that a single SSL/TLS Application record contain just  
a single, complete HTTPS request. My guess is that the responsible servers  
are front-ends, firewalls or similar, not servers like Apache with modSSL  
or IIS.

At least one server return "ET is not a recognized HTTP method",  
apparently having dropped the record with the "G" part of the request.

BTW: 0.045% failed all 5 of the tests, so I consider it likely that there  
is no split policy that will work for all servers.

Yngve N. Pettersen

Senior Developer                     Email:
Opera Software ASA         
Phone:  +47 24 16 42 60              Fax:    +47 24 16 40 01