Re: [Webpush] Protocol proposal updated

Costin Manolache <costin@gmail.com> Fri, 10 October 2014 18:52 UTC

Return-Path: <costin@gmail.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C75E91ACDE9 for <webpush@ietfa.amsl.com>; Fri, 10 Oct 2014 11:52:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=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 aAw8KF5ioJin for <webpush@ietfa.amsl.com>; Fri, 10 Oct 2014 11:52:56 -0700 (PDT)
Received: from mail-wi0-x235.google.com (mail-wi0-x235.google.com [IPv6:2a00:1450:400c:c05::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4399E1ACDBD for <webpush@ietf.org>; Fri, 10 Oct 2014 11:52:56 -0700 (PDT)
Received: by mail-wi0-f181.google.com with SMTP id hi2so2969660wib.2 for <webpush@ietf.org>; Fri, 10 Oct 2014 11:52:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=xb7qKzpsnNykdXFtGKufklR4HOWcAuSKj17izUZYF9U=; b=0HgnhVgNjlsfVz72glhNhBegvy3CDLgaPbNmJ0bJin1udcpBaoUA3pzFPUiTUSBt0u sLLAOOGu0ijI71peKqgYnvzOEEuLslwHHXczOC/58VQ5WrSN2vz3gb/Dnm++BrIjlKgo h5oa33/AmOGMYeISaVaxI4l43jvKak0C+9QxWLDEMyt9mAtmAt/Ae7tlSb+0avi75SAm 0BxjSoVbWK5mjW7hN7Idyw0k8/BzeJrzZjBP8T5b6MasthEt8Pc6ugkz5Y4clN8PJREO fd0Vif8iDazRtIGRct5Sulpoz+MMpJP7karC8ZMfq3FeRXfcgfLE6lMQIPZWM8kMT3Nb 5JRw==
MIME-Version: 1.0
X-Received: by 10.194.23.106 with SMTP id l10mr4740574wjf.123.1412967174865; Fri, 10 Oct 2014 11:52:54 -0700 (PDT)
Received: by 10.217.63.202 with HTTP; Fri, 10 Oct 2014 11:52:54 -0700 (PDT)
In-Reply-To: <CABkgnnWBUzbdrBht2bGNNCpm9qET9eFeUH+NECeAjRGhoP8u2Q@mail.gmail.com>
References: <CABkgnnWBUzbdrBht2bGNNCpm9qET9eFeUH+NECeAjRGhoP8u2Q@mail.gmail.com>
Date: Fri, 10 Oct 2014 11:52:54 -0700
Message-ID: <CAP8-Fqkffe7_Q=THJTvOD9sJtiK12E6KXT9JLDbUAMsazieESg@mail.gmail.com>
From: Costin Manolache <costin@gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="047d7b472548898aef0505160e31"
Archived-At: http://mailarchive.ietf.org/arch/msg/webpush/GVLOvIIY-GD7vHEUJRoqg_wPdWE
Cc: "webpush@ietf.org" <webpush@ietf.org>
Subject: Re: [Webpush] Protocol proposal updated
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Oct 2014 18:52:59 -0000

I have a few small suggestions - I'll start with what is more blocking:

1. The push server needs some way to authenticate the sender. I understand
the Channel URL is used as a bearer token ( which is probably not
a good idea, but separate issue ), and UA can reject the message if the
encryption fails, but the push server still needs to deliver
the message if the bearer token ( channel URL ) becomes compromised.
The push server may also need quotas or TOS agreements (or in some cases
billing ? not all push servers are free) with the sender.

2. Expiration: this creates some load problems if too many devices attempt
to re-register at the same time. It would be preferable for the push server
to request renewal of registration or channel - it can do this with special
control messages send from the push server.
This will also allow the server to address some special use cases - device
registration that become invalid (it happens after some backup/restore for
example,
or on storage corruption on low memory, and few other obscure cases) or for
security reasons, if keys need to be rotated or invalidated.

3. Authentication - I think some form of authentication is needed in all
layers, use of the URL as auth, server address and identity is not very
common.
The registration, channel and sender all need to authenticate with either
shared secrets, oauthx or certificates - and the auth needs to
be managed separately, i.e. tokens may need to be rotated, invalidated, etc.

4. Encryption of messages - it needs to be specified what format it is -
can be simple openpgp (rfc4880), or anything else. Otherwise no
interoperability.
It seems the rfc requires encryption, which is great, but it still need
more authentication than 'can't decrypt the message'. I'm also not sure if
using the
 public key of the channel as a secret is the best option - but it may work
(usually public keys are treated as public).


Costin

On Wed, Oct 8, 2014 at 5:15 PM, Martin Thomson <martin.thomson@gmail.com>
wrote:

> I've just submitted an updated version of my push protocol proposal:
>
> https://tools.ietf.org/html/draft-thomson-webpush-http2
>
> And a new proposal that builds on the first for dealing with the
> delivery of the same message to multiple recipients:
>
> https://tools.ietf.org/html/draft-thomson-webpush-aggregate
>
> One feature of these proposals is that they assume the presence of
> something in the W3C API that is not currently there related to push
> message security.  If the API can force end-to-end security, I think
> it would be strictly a good thing.  I'm happy to articulate the
> proposed solution, or you can read my proposal here:
>
> https://github.com/w3c/push-api/issues/55
>
> _______________________________________________
> Webpush mailing list
> Webpush@ietf.org
> https://www.ietf.org/mailman/listinfo/webpush
>