Re: [TLS] ALPN concerns

Nikos Mavrogiannopoulos <nmav@redhat.com> Mon, 09 December 2013 14:08 UTC

Return-Path: <nmav@redhat.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AFAA71AE304 for <tls@ietfa.amsl.com>; Mon, 9 Dec 2013 06:08:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.903
X-Spam-Level:
X-Spam-Status: No, score=-6.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, 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 ekBaAtzI49MH for <tls@ietfa.amsl.com>; Mon, 9 Dec 2013 06:08:07 -0800 (PST)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by ietfa.amsl.com (Postfix) with ESMTP id 636D41ADF7F for <tls@ietf.org>; Mon, 9 Dec 2013 06:08:07 -0800 (PST)
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rB9E7rZs009828 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 9 Dec 2013 09:07:54 -0500
Received: from [10.34.2.127] (dhcp-2-127.brq.redhat.com [10.34.2.127]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rB9E7oiB032027 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 9 Dec 2013 09:07:51 -0500
Message-ID: <1386598070.2375.25.camel@dhcp-2-127.brq.redhat.com>
From: Nikos Mavrogiannopoulos <nmav@redhat.com>
To: Brian Smith <brian@briansmith.org>
Date: Mon, 09 Dec 2013 15:07:50 +0100
In-Reply-To: <CAFewVt5ZYTbtmqR_vD9BW1L+Te5-JTwudPtWk9_MR589qaJBEw@mail.gmail.com>
References: <9A043F3CF02CD34C8E74AC1594475C736540E268@uxcn10-tdc06.UoA.auckland.ac.nz> <E774C81546D66E429BF56B1474C7EBBA012CE328CB@SEAEMBX01.olympus.F5Net.com> <CAFewVt5K07p4UTzpkaXMxscbUuBo-jNB=VGF_cscGY3ZhPss-Q@mail.gmail.com> <e343ad5e45ac42ad8114ac4ebc09a1ca@BL2PR03MB194.namprd03.prod.outlook.com> <CAFewVt5ZYTbtmqR_vD9BW1L+Te5-JTwudPtWk9_MR589qaJBEw@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Cc: "<tls@ietf.org>" <tls@ietf.org>, Peter Gutmann <p.gutmann@auckland.ac.nz>
Subject: Re: [TLS] ALPN concerns
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Dec 2013 14:08:09 -0000

On Mon, 2013-12-09 at 05:32 -0800, Brian Smith wrote:

> >> As far as I've been led to believe, ALPN exists primarily to allow MitM to more easily
> >> inspect what protocol the application is speaking and possibly block the application,
> >> with as low of a cost to the MitM as possible--i.e. exactly the opposite goal of
> >> everything we discussed at IETF88 in perpass and in other discussions.
> >
> > No, ALPN exists primarily to negotiate an application protocol without incurring extra
> > round-trips, to allow the server to pick the application protocol and present the
> > corresponding identity, and to align with the existing TLS extensions.
> 
> I have discussed the ALPN vs NPN issue with Eric Rescorla (co-chair of
> this working group, alongside Joseph Salowey from Cisco) multiple
> times, and each time Eric said that allowing passive MitM devices to
> know which protocol is being used is important, and that this is an
> advantage for ALPN over NPN. I will let him explain why, if it hasn't
> already been explained on the list. FWIW, I strongly disagree that it
> should be a goal to allow passive MitM to know which protocol is being
> used. In fact, I think that we should have a goal of protecting the
> protocol information so that passive MitM has a much more difficult
> time of determining with certainty the protocol being used.

I think we need to clarify not only the reason we need the protocol
negotiation in TLS but most importantly, how we expect implementations
to support it.

If we expect a lightweight super-server or a firewall to do the mapping
of the incoming protocol requests in the client hello to the appropriate
servers, then having NPN means that the firewall or super-server has to
terminate TLS in order to discover the intended protocol. That's pretty
unacceptable in many scenarios, not only because of the unnecessary load
on the firewall/super-server, but also because it makes TLS client
authentication very hard to impossible.

If we expect that the incoming protocol requests will be handled by a
single server application (that is no super-servers or a firewall will
be involved to distribute the protocols)... then NPN suits that
scenario, and provides more than ALPN. However one server handling all
possible protocols feels like a very restricted use-case.

regards,
Nikos