W3C home > Mailing lists > Public > ietf-http-wg@w3.org > October to December 2015

Re: h2 ciphers

From: Amos Jeffries <squid3@treenet.co.nz>
Date: Sat, 17 Oct 2015 03:45:57 +1300
To: Stefan Eissing <stefan.eissing@greenbytes.de>
Cc: ietf-http-wg@w3.org
Message-ID: <56210DA5.8080200@treenet.co.nz>
On 17/10/2015 2:36 a.m., Stefan Eissing wrote:
>> Am 16.10.2015 um 15:08 schrieb Amos Jeffries:
>> On 16/10/2015 11:35 p.m., Stefan Eissing wrote:
>>> In the documentation at https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility the "modern" compatibility specification includes the following ciphers:
>>> [...]
>>> but RFC 7540 includes TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ECDHE-RSA-AES128-SHA) and all those others as a MAY for INADEQUATE_SECURITY.
>>> Now, assuming I got the cipher names correct, what am I to check for? Shall I be liberal in what I accept - again?
>> The RFC is the specification. If a browser does not follow it that is a
>> bug in their implementation (or maybe just their documentation), do not
>> make matters worse by adding a bug to your code.
> I do not want to, but see my other mail about ALPN+cipher timing that seems to make this difficult.
>> HTTP/2 was designed to be implemented from a clean-slate situation.
> Insert "on the client side", please.

For us on the server side too. HTTP/2 syntax and behaviour simply did
not exist a few years ago.

If you have a legacy client, fall back to 1.1  - *as 1.1*. Not as h2
with 0.9 / 1.x syntax and security hacks.

It is actually easier for us as servers to do this failover quietly
since we get told up front by the client whether it wants h2 or only
talks 1.x.

>> Everybody is building new code based on the same spec, so there is no
>> legacy behaviours to be tolerant about. Methods of extending the
>> protocol are also explicitly defined and explicitly negotiated when used
>> to make feature support (or lack of it) a defined state within the
>> protocol itself.
> The problem seems to be that during ALPN selection, the TLS connection is not in a defined state. I seem to be unable to verify all requirements before code gives an answer to the selected protocol. And that might have nothing to do with the specification but with the TLS APIs. And there certainly is no clean slate there.

Good argument for not accepting h2 in the ALPN unless TLS/1.3 is being
negotiated. That was the ideal for the TLS situation anyway.

Illari already pointed out how to do the ordering so that h2 is
achievable within the TLS/1.2 restrictions.

The result is either h2 being used, or failover to 1.1. Any penalty paid
is on the less preferred protocol. Which just encourages its decline in
a polite and increasingly less painful way.

Received on Friday, 16 October 2015 14:47:08 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 11:11:40 UTC