Re: [Webpush] Stephen Farrell's Discuss on draft-ietf-webpush-protocol-11: (with DISCUSS and COMMENT)

Brian Raymor <Brian.Raymor@microsoft.com> Fri, 14 October 2016 01:55 UTC

Return-Path: <Brian.Raymor@microsoft.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D1F812954F; Thu, 13 Oct 2016 18:55:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.011
X-Spam-Level:
X-Spam-Status: No, score=-2.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.com
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 QyPBEogV9tz8; Thu, 13 Oct 2016 18:54:58 -0700 (PDT)
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0138.outbound.protection.outlook.com [104.47.33.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EE08D1293E9; Thu, 13 Oct 2016 18:54:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yqmu2XFWnOQwwMVrBUCP+5UbuVpqaRLickOLb/UJH8s=; b=ms9jhSp+haqmQwHOmKM3yE3t6ijxjIBrHN7ZS8Koi9old0brX/UUxh/jJViLZYuSZTNiG4tUxhnEjT9Z2QptVDvBiBsqlKMOmrwVvHle95dBYgJ7WTPwIPKkS0ZDqv0VX4CVGXfCC8jAvGnVkJddJ9iLd9qenixbrnMs+ZTupAQ=
Received: from CY1PR03MB2380.namprd03.prod.outlook.com (10.167.8.6) by CY1PR03MB2379.namprd03.prod.outlook.com (10.166.207.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.12; Fri, 14 Oct 2016 01:54:56 +0000
Received: from CY1PR03MB2380.namprd03.prod.outlook.com ([10.167.8.6]) by CY1PR03MB2380.namprd03.prod.outlook.com ([10.167.8.6]) with mapi id 15.01.0659.020; Fri, 14 Oct 2016 01:54:55 +0000
From: Brian Raymor <Brian.Raymor@microsoft.com>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, The IESG <iesg@ietf.org>
Thread-Topic: RE: Stephen Farrell's Discuss on draft-ietf-webpush-protocol-11: (with DISCUSS and COMMENT)
Thread-Index: AdIlvWyJLZNmmxx8RgyeO1/5pOE+bg==
Date: Fri, 14 Oct 2016 01:54:55 +0000
Message-ID: <CY1PR03MB238089D350CD6A78DB9E80BE83DF0@CY1PR03MB2380.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Raymor@microsoft.com;
x-originating-ip: [174.61.159.182]
x-ms-office365-filtering-correlation-id: 4d281f4f-1888-4fce-f23c-08d3f3d518d6
x-microsoft-exchange-diagnostics: 1; CY1PR03MB2379; 7:EqShBmDedBt2Nmmmmp/e/XsdCuLQNVODwhwlcg09l3Jdq8YXoY0v5jNBHj+Sqnr5ovUVKlg8CvG44XQTUtpt4huj8yrygJMvyy3H+3Wzavxab32Dad4A6+oyKappioC/LTmjXaX7S06ie3SndhFYfmFgmERxon1kHUhlQ+/u5vHYPryBT9HbEYG9HaZ9TTzqBAa2SuM2WsGzhvUYFfO2moxTSw3mFwLA/bAIsfzrWd/oDsnKztwPfdfhC6mWacxwVqgLu7OUTfcX/unCPweNHU2xW6PWEdPpTGmLxtlNaHscyOrFGsZ4qUcQvOUGSXiaHsZ8+2fGGeEmv5FZiQjJMngsQNkr165pwxY0dQaKieoJUEE/EnBILRKBnDprBr3n
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB2379;
x-microsoft-antispam-prvs: <CY1PR03MB2379A98DB2D101260757BA4683DF0@CY1PR03MB2379.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(278428928389397)(166708455590820)(100405760836317)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(61426038)(61427038); SRVR:CY1PR03MB2379; BCL:0; PCL:0; RULEID:; SRVR:CY1PR03MB2379;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(7916002)(199003)(51914003)(189002)(9686002)(99286002)(8936002)(5002640100001)(54356999)(105586002)(86362001)(106356001)(4326007)(50986999)(81166006)(81156014)(189998001)(5001770100001)(97736004)(86612001)(10400500002)(586003)(5005710100001)(66066001)(7696004)(19625215002)(122556002)(8990500004)(10290500002)(5660300001)(19300405004)(87936001)(3846002)(790700001)(6116002)(102836003)(10090500001)(16236675004)(19580395003)(92566002)(15975445007)(2900100001)(2906002)(33656002)(7846002)(3660700001)(76576001)(3280700002)(7736002)(19617315012)(230783001)(77096005)(101416001)(68736007)(74316002)(8676002)(7906003); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR03MB2379; H:CY1PR03MB2380.namprd03.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_CY1PR03MB238089D350CD6A78DB9E80BE83DF0CY1PR03MB2380namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2016 01:54:55.8074 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2379
Archived-At: <https://mailarchive.ietf.org/arch/msg/webpush/UqfyAeXvPEsjoG5wVn3fwNcMFPk>
Cc: "draft-ietf-webpush-protocol@ietf.org" <draft-ietf-webpush-protocol@ietf.org>, "shida@ntt-at.com" <shida@ntt-at.com>, "webpush-chairs@ietf.org" <webpush-chairs@ietf.org>, "webpush@ietf.org" <webpush@ietf.org>
Subject: Re: [Webpush] Stephen Farrell's Discuss on draft-ietf-webpush-protocol-11: (with DISCUSS and COMMENT)
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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, 14 Oct 2016 01:55:02 -0000


> (1) This might just me being confused (in which case,

> sorry) but I'm not quite clear on how with works with the

> SOP.  Given you (reasonably) recommend a different port

> (which is a different origin than 443) are you saying

> here that the SOP doesn't apply to the client? (Well,

> actually you don't say, so I'm not sure:-) If the SOP

> applies, how is the port change handled? If the SOP does

> not apply, then what does? (Given that I assume some UAs

> at least will not change their handling of the SOP no

> matter what we say here.)



If SOP == "Same Origin Policy", can you explain its relevance

in this case? Martin and I reviewed but did not understand

the comment.



> (2) So-called "capability URLs" (is that a new term here?



There's a CAP-URI reference:



   [CAP-URI]  Tennison, J., "Good Practices for Capability URLs", FPWD

              capability-urls, February 2014,

              <http://www.w3.org/TR/capability-urls/>.



> seems like it could be the topic for a useful

> informational rfc) are clearly weak, but also clearly as

> good as we'll get for some things.  However, those also

> become known over time, (in which case they are toast;-)

> so why don't you need to provide a way for a push service

> to say "hey, instead of <this-URL> in future you'll need

> to use <that-URL>"? If that could be done as an extension

> later, then I'd be ok with that in terms of clearing the

> discuss, but then I think you'd need to mention it, so

> that applications and UAs don't build in an assumption

> that these URLs are fixed for all time (while also

> needing to be kept "secret" as with other bearer tokens).



These URI(s) are not fixed for all time. The expectation is that

subscriptions will either be explicitly expired by the push service/user agent

as necessary or refreshed.



For example:



https://tools.ietf.org/html/draft-ietf-webpush-protocol-11#section-7.3



   In some cases, it may be necessary to terminate subscriptions so that

   they can be refreshed.  This applies to both push message

   subscriptions and receipt subscriptions.



   A push service MAY expire a subscription at any time.  If there are

   outstanding requests to an expired push message subscription resource

   (Section 6) from a user agent or to an expired receipt subscription

   resource (Section 6.3) from an application server, this MUST be

   signaled by returning a 404 (Not Found) status code.



To further illustrate, this is how the W3C Push API exposes this feature:


https://w3c.github.io/push-api/#the-pushsubscriptionchange-event



> (3) Why is it not correct to encourage mutual-auth TLS

> for the application to push-service connections?  I'm not

> arguing to make that mandatory, but it's not that hard in

> many cases and is very useful, esp since without some

> client auth just knowing the URL will often enable a

> sender to send a crap load of updates to possibly many

> bandwidth/power-challenged UAs. (This is only a discuss

> because of that potential DoS vector.)



Martin presented a range of alternatives in an earlier version of vapid:



https://tools.ietf.org/html/draft-thomson-webpush-vapid-01#section-2



which resulted in many discussions on the mailing list, such as:



https://mailarchive.ietf.org/arch/msg/webpush/oPK2Bk1bsNE8Tb-YLGz4gZAIg7o



The current version of vapid is the outcome of working group consensus.



> (4) Is it really honest to say that the W3C Push API,

> webpush encryption and vapid are only informative

> references? The first seems easy to make normative, the

> second I think really needs to exist before we ought

> recommend this all get out into the wild and I'm not

> clear if one could sensibly make a service for this

> without the 3rd. Yes that might add some delay to the RFC

> being issued, but that might be the right thing to do.

> Why is it right to not wait on those two IDs and the w3c

> rec? This is mainly a discuss in case the answer is "we

> know nobody's gonna do webpush-encryption ever" in which

> case I'd like to be convinced that implementing and

> deploying based on this draft without reading those

> references defines a good standard. I'm not saying that

> it does not, I'm saying I'm not yet convinced.



WebPush is similar to WebSockets in the sense that there's a related API under

development at the W3C. I'd note that RFC6455 uses an informative reference

to the W3C WSAPI. The expectation is that there will be multiple API surfaces for

WebPush similar to the situation for WebSockets.



WebPush includes informative references to vapid and message encryption as

examples. In response to comments from Ben Campbell during the review, Martin

created a pull request which clarifies this:



https://github.com/webpush-wg/webpush-protocol/pull/138/files



The consensus in the working group was that other implementations/scenarios outside

the browser (such as IoT) would pursue their own approaches to address the requirements.



----------------------------------------------------------------------

COMMENT:

----------------------------------------------------------------------



> - Thanks for the MUST use TLS. That's totally necessary

> here. (Even if maybe not sufficient:-)



>- I just want to check this is correct: I think it'd be

> potentially useful to be able to pad the traffic here

> with NOOP pushed messages.



<snip>



Applications could absolutely choose to do this if the

benefits outweighed the costs.



> - section 6: (A nit) I think this could be clearer if you

> better explained how the subscriptions and push messages

> are correlated. While the current text is fine, since

> it's clear eventually from the examples, it might be

> better to not assume so much familiarity with h2.



The tension is that WebPush is basically an "application" of

server push which requires some familiarity with HTTP/2.