Re: [Webpush] Eric Rescorla's Discuss on draft-ietf-webpush-vapid-03: (with DISCUSS and COMMENT)

Ben Campbell <> Wed, 16 August 2017 02:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6C7A7132468 for <>; Tue, 15 Aug 2017 19:31:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.88
X-Spam-Status: No, score=-1.88 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=unavailable autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DcIqWEmmTBtp for <>; Tue, 15 Aug 2017 19:31:41 -0700 (PDT)
Received: from ( [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1F1A6132467 for <>; Tue, 15 Aug 2017 19:31:41 -0700 (PDT)
Received: from [] ( []) (authenticated bits=0) by (8.15.2/8.15.2) with ESMTPSA id v7G2VbJ9034466 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 15 Aug 2017 21:31:38 -0500 (CDT) (envelope-from
X-Authentication-Warning: Host [] claimed to be []
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Ben Campbell <>
In-Reply-To: <>
Date: Tue, 15 Aug 2017 21:31:36 -0500
Cc: Martin Thomson <>, "" <>, draft-ietf-webpush-vapid <>,, The IESG <>, Phil Sorber <>
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <>
To: Eric Rescorla <>
X-Mailer: Apple Mail (2.3273)
Archived-At: <>
Subject: Re: [Webpush] Eric Rescorla's Discuss on draft-ietf-webpush-vapid-03: (with DISCUSS and COMMENT)
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Aug 2017 02:31:42 -0000

> On Aug 15, 2017, at 9:04 PM, Eric Rescorla <> wrote:
>> On Tue, Aug 15, 2017 at 6:56 PM, Martin Thomson <> wrote:
>>> On 16 August 2017 at 09:42, Eric Rescorla <> wrote:
>>> > Ultimately, this is a WG decision, but given that there are designs
>>> > with much better security properties, I'd like to know that the WG
>>> > considered and rejected this kind of design alternative before
>>> > we advance the weaker design.
>> We discussed the implications of the bearer token design and concluded
>> that this was acceptable. 
> That's a much easier discussion to have without an alternative.
>> We didn't discuss additionally signing
>> messages in this way.  Another alternative is to describe how token
>> binding could be used to prevent token theft.
>> One complaint I get about webpush is the amount of overhead crypto
>> adds to sending messages.  Mostly from a complexity standpoint.  It's
>> a real implementation barrier.  We've forced people to jump through a
>> lot of hoops and that has made them pretty annoyed.  Deploying this as
>> a required extension could be additionally annoying, not to mention
>> incompatible with the existing deployed code.
> The flippant thing to say would be that I-Ds come with a big disclaimer
> for exactly this reason. More seriously, the future is bigger than the past
> and given that (as you observe) the vapid token is used to identify
> what you support, it seems like deploying the new thing would be
> straightforward.
> I'm not terribly sympathetic to the complexity point: this is a very modest
> amount of crypto.
>> What is nice about the specific design you describe (and my flippant
>> tokbind suggestion as well coincidentally) is that it can be
>> incrementally added to this scheme without a complete overhaul,
>> probably without even changing the scheme name, suggestions below
>> notwithstanding.
>> It could be an optional increment, if we could decide that the push
>> service doesn't require this additional protection and it was
>> primarily for the benefit of application servers.  Yes, there are
>> benefits that accrue to push services and user agents alike, but we
>> might decide that they don't gain any certainty about these benefits.
>> That suggests a second, though less satisfying, path: a new draft
>> describing the enhancement.
> I agree that that's possible, but it's kind of unsatisfying to be publishing
> a draft with this kind of known deficiency.
> Maybe the chairs or ART ADs would like to weigh in here?

Weighing in as an irresponsible (for this draft) ART AD:

My knee jerk response is to agree with Ekr. But it’s worth discussing how big of an incompatibility with existing code people are talking about. Are there a lot of deployed services that support vapid? Do people think that existing implementors will choose not to implement/deploy the additional protection?