Re: 9.2.2 Cipher fallback and FF<->Jetty interop problem

Greg Wilkins <gregw@intalio.com> Thu, 18 September 2014 04:29 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1802C1A02DC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 17 Sep 2014 21:29:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.931
X-Spam-Level:
X-Spam-Status: No, score=-7.931 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.652, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a-NwtSm4-DVL for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 17 Sep 2014 21:28:58 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 937371A01E0 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 17 Sep 2014 21:28:58 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1XUTHh-0007ty-1P for ietf-http-wg-dist@listhub.w3.org; Thu, 18 Sep 2014 04:25:33 +0000
Resent-Date: Thu, 18 Sep 2014 04:25:33 +0000
Resent-Message-Id: <E1XUTHh-0007ty-1P@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <gregw@intalio.com>) id 1XUTGk-0006WH-QT for ietf-http-wg@listhub.w3.org; Thu, 18 Sep 2014 04:24:34 +0000
Received: from mail-we0-f182.google.com ([74.125.82.182]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <gregw@intalio.com>) id 1XUTGe-0005Rj-N2 for ietf-http-wg@w3.org; Thu, 18 Sep 2014 04:24:34 +0000
Received: by mail-we0-f182.google.com with SMTP id k48so258233wev.13 for <ietf-http-wg@w3.org>; Wed, 17 Sep 2014 21:24:01 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=4cp2G/bpxU/pBm9XyhqHZ4Vs/s7g8k3mUjibEzwbKCw=; b=itwuGEzl/vkT+WBIaLZ/Xt3oqyO9KDG/rvLTvuVyQ8wH1RBFmLBxjgAxg6q0baWsB9 4FdbxAlS+SRPuMU227SUHE285QxGLQYqgj6c1FcMeEP4HQlCLdTVeMFjkE8FhYoRb11O mFHgQMISPEsNZNJH6PHLR1roKzs25noEP9wOH/0RzUtECzQbdfuTftqVkyzo9Dy1eZQC p6PtHr7G0jSfFXdgqD7tgAlnGoSt1oqHS531Aay3bygLdcvl+BoN2Tf17OU/FKcPQrqZ yv1glw1ifKkaFVmOXQitZjfhMj942ybrNgk4c0nhp11zDyJLlK6v+1VCsu4dI0Ja8hKx 6zXA==
X-Gm-Message-State: ALoCoQnX3L5/skT+H9ihSihVSooWWJtZttaboedqDMoEzcUF4CVMPYx+yjRqVGzxNMmV0ec8xLpf
MIME-Version: 1.0
X-Received: by 10.180.99.195 with SMTP id es3mr9932075wib.67.1411013899203; Wed, 17 Sep 2014 21:18:19 -0700 (PDT)
Received: by 10.194.169.98 with HTTP; Wed, 17 Sep 2014 21:18:19 -0700 (PDT)
In-Reply-To: <CABkgnnU6C+TzJzdeQZhwXucuPUrPh1yyp1cpRd9jSePMjAnONQ@mail.gmail.com>
References: <CAH_y2NF+sP9BmYuD4QbeHpwC_uj67itzaAFCnRVC6f--KDYOgg@mail.gmail.com> <CAOdDvNopynmwvwWLXvuC0q7skunFXcfRoVHe9s7BKcoCwaBgWQ@mail.gmail.com> <CAH_y2NGXz7e3ejqy_rD=39=yYp3+cS1Dm6c3yFEYZg6tsUp5VQ@mail.gmail.com> <CABkgnnWAdm1TLP2XCKNU-6RPACLfooQV73R7Gpoemv+9PNULCA@mail.gmail.com> <CAH_y2NFLjok-NRJtOw1vmSy68sf393iSOgA4K599q0BSBqbNgA@mail.gmail.com> <CABkgnnU-CMtv8KvYU9n+QoPBOBshtQv3RfLy2qw=qVNb2O-qGg@mail.gmail.com> <CAH_y2NHrbH5Objwhq9E89QexhQtND4uOdy8q7OEckTCU17WqKg@mail.gmail.com> <CAH_y2NErRd4rxinSzEH3-uTjdWVkZu9o6sSKSf47LxfPFTRONw@mail.gmail.com> <20140917073241.GA7665@LK-Perkele-VII> <CAFewVt4pxE+9NpzYuzMKGmEdrDXzk50mC99ZbrM6M-uEoKXrHA@mail.gmail.com> <CAH_y2NGYcDvPcxDvaTRBP3p4Pnb7gw39WUDY3bNVnOGQjBgciQ@mail.gmail.com> <CAFewVt7+UAJYfKAR6DRZi_mqdzSaYw6L-pT1qg=UyOaP1ojhTw@mail.gmail.com> <CAH_y2NEhAEaPiUgi_vX6Oimw+Y-k3WrnL0gJZKPxQ8KZVuFVfw@mail.gmail.com> <CABkgnnU6C+TzJzdeQZhwXucuPUrPh1yyp1cpRd9jSePMjAnONQ@mail.gmail.com>
Date: Thu, 18 Sep 2014 14:18:19 +1000
Message-ID: <CAH_y2NEHZbWLof=ZWEa2UdjBw1Bf+kQCHzPkrhcSU80WaDibeA@mail.gmail.com>
From: Greg Wilkins <gregw@intalio.com>
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Brian Smith <brian@briansmith.org>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="f46d04426f9c3c4c7205034f460b"
Received-SPF: permerror client-ip=74.125.82.182; envelope-from=gregw@intalio.com; helo=mail-we0-f182.google.com
X-W3C-Hub-Spam-Status: No, score=-3.8
X-W3C-Hub-Spam-Report: AWL=-3.069, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7
X-W3C-Scan-Sig: lisa.w3.org 1XUTGe-0005Rj-N2 40cdfaffde631a4017d06b8ad6d14657
X-Original-To: ietf-http-wg@w3.org
Subject: Re: 9.2.2 Cipher fallback and FF<->Jetty interop problem
Archived-At: <http://www.w3.org/mid/CAH_y2NEHZbWLof=ZWEa2UdjBw1Bf+kQCHzPkrhcSU80WaDibeA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/27116
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On 18 September 2014 12:14, Martin Thomson <martin.thomson@gmail.com> wrote:

> You can't suddenly pull a cipher suite that people rely on.  We rely
> on GCM.  We require that implementations support it.
>

Well leaving aside the aspect of requiring support for all time for a
security cipher....

My example is not saying that GCM has been revoked, only that a better
version called XYZ becomes available.

Yes, there will be implementations that pick up XYZ, but also don't
> know that it's OK.  That's expected behaviour sadly.  Not all
> implementations will be able to examine the properties of the
> available cipher suites and use properties to determine if they are OK
> to use.
>

Exactly my point!!!!  If implementations pickup XYZ and some
know it is OK but some don't, then we have connection failure.

NOT fallback to GCM

NOT fallback to http1

It is GO_AWAY with no retry.  Game Over!

Server can't be smart and pick a workable protocol+cipher combination
because
it is impossible to know what all clients out there think is an acceptable
protocol+cipher combination.

Thus you are saying that it is sadly expected behaviour that we have built
in a
total protocol failure at some future date when there is a better cipher
suite
than GCM available.


I'm not sure that this is quite right.  Unless the Java 7 code is
> singificantly different to the Java 8 code, you should have been able
> to influence suite selection so that a good suite (i.e., an acceptable
> one) was chosen.
>

It is not about tricking the selection to make it work.  It is about
designing
a standard that wont fail given normal expected conditions.

Note also that we are in discussions with the OpenJDK developers about
their ALPN
implementation.  They are pushing back about allowing ALPN extension to
influence
the cipher selection.

Also note that the problem with java 7 is that it doesn't provide any GCM
ciphers at all:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html

http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html

So part of the problem that h2 cannot be deployed on java 7 (which I think
is a pretty
big deficiency, but not what I'm currently raising).

I understand that 9.2.2 requires us to support GCM, but the example of
moving from
java7 with CDC to java 8 GCM has shown a real interoperability problem as
we lost
connectivity with FF because it has implemented the GCM restriction before
we have.
We could implement the GCM restriction, but then nothing is stopping the
same
complete failure when XYZ eventually comes along.

I've got to this point because I have been trying to implement the GCM
restriction
in jetty, but am unable to provide and implementation to

   public static String[] getH2AcceptableCiphers(String[] availableCiphers)
{}

that is robust in the face of arbitrary available ciphers.   Unless we
implement
exactly the same algorithm as FF, Chrome, Opera and all other clients, then
we will have communication failure.   If I make it a configuration lookup,
then
we will certainly have failures.

To remove any doubt whatsoever, I can absolutely can not live with 9.2.2.

regards

























-- 
Greg Wilkins <gregw@intalio.com>
http://eclipse.org/jetty HTTP, SPDY, Websocket server and client that scales
http://www.webtide.com  advice and support for jetty and cometd.