Internet DRAFT - draft-thomson-webpush-aggregate

draft-thomson-webpush-aggregate







WebPush                                                       M. Thomson
Internet-Draft                                                   Mozilla
Intended status: Standards Track                        October 08, 2014
Expires: April 11, 2015


                      Web Push Channel Aggregation
                   draft-thomson-webpush-aggregate-00

Abstract

   The Web Push protocol provides a means of ensuring constant network
   availability of devices that would otherwise have limited
   availability.  This document describes extensions to that protocol
   that enable the efficient delivery of messages to multiple devices.
   This allows an application to request that a web push server deliver
   the same message to a potentially large set of devices.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 11, 2015.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of




Thomson                  Expires April 11, 2015                 [Page 1]

Internet-Draft              Push Aggregation                October 2014


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  List Registration Service . . . . . . . . . . . . . . . . . .   2
     3.1.  Creating an Aggregated Channel  . . . . . . . . . . . . .   3
     3.2.  Aggregation Channel Request Format  . . . . . . . . . . .   3
     3.3.  Determining Aggregation Set Status  . . . . . . . . . . .   4
     3.4.  Modifying the Aggregation Set . . . . . . . . . . . . . .   4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  Registration of Link Relation Type  . . . . . . . . . . .   5
     5.2.  Registration of MIME Media Type . . . . . . . . . . . . .   5
   6.  Normative References  . . . . . . . . . . . . . . . . . . . .   5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   The delivery of the same message to large numbers of devices is a
   common feature of push notification services.  This document
   describes a mechanism based on the Web Push protocol
   [I-D.thomson-webpush-http2].

   A new link relation is added to the Web Push registration response.
   This identifies a service that can be used to create a push channel
   endpoint that aggregates multiple individual push channels.

   Applications can use the aggregated channel to deliver the same push
   message on all of the aggregated channels with a single request.
   This makes the large-scale delivery of identical messages more
   efficient.

2.  Terminology

   In cases where normative language needs to be emphasized, this
   document back on established shorthands for expressing
   interoperability requirements on implementations: the capitalized
   words "MUST", "MUST NOT", "SHOULD" and "MAY".  The meaning of these
   is described in [RFC2119].

3.  List Registration Service

   A new link relation [RFC5988], "....:push:aggregate", is provided in
   response to a push registration or channel creation request.  This




Thomson                  Expires April 11, 2015                 [Page 2]

Internet-Draft              Push Aggregation                October 2014


   link relation identifies an aggregation service that can be used to
   create a new aggregated push channel.

   If the link relation is provided in response to a push registration
   creation request, it applies to all channels created on that
   registration; if the link relation is provided in response to a
   channel creation request, it applies to just that channel.

   Applications that send notifications to a large number of users first
   establish a list of devices that have the same aggregation service
   URI.  Push servers provide a small number of different values for the
   aggregate link relation.

   Note:  Though the use of different push servers will ensure that
      applications will need to support multiple aggregation services, a
      large number of endpoints diminishes the value of having messages
      distributed by the push server.

   Absence of the "...:aggregate" link relation indicates that the push
   server does not support channel aggregation.

3.1.  Creating an Aggregated Channel

   A new aggregated channel is created by sending an HTTP POST request
   to the aggregation service URI.  The request contains

   The response is identical to the response to the "channel" resource,
   as described in Section 5 of [I-D.thomson-webpush-http2].  The 201
   (Created) response contains the identity of the aggregated channel in
   the Location header field.

   Messages pushed to the aggregated channel URI (see Section 3 of
   [I-D.thomson-webpush-http2]) are forwarded to all of the channels
   that are included in the provided list.

3.2.  Aggregation Channel Request Format

   The content of this request is a JSON [RFC7159] object.  The keys in
   the object are the URIs of the channels being aggregated.  The
   corresponding value is an object containing the following keys:

   expires:  A date and time in [RFC3339] format that identifies when
      the provided channel becomes invalid.  The push server MUST remove
      the channel from the aggregation set when this time expires.  This
      field is optional, in which case the channel does not expire.

   pubkey:  The public key to be used for encrypting messages on ths
      channel.  This field is optional.  [[TBD: This - primarily the



Thomson                  Expires April 11, 2015                 [Page 3]

Internet-Draft              Push Aggregation                October 2014


      corresponding CPU load - is probably the largest problem with this
      security architecture.]]

   This format is identified using a MIME media type of "application/
   push-aggregation+json" Section 5.

   Push aggregation services MUST support gzip Content-Encoding for this
   format.

3.3.  Determining Aggregation Set Status

   Editors note: This might needs to live on a different URI to avoid
   confusion about what is being PUT there (for pushing) and all this
   stuff.

   A GET request to the aggregated channel URI does not provide the last
   message sent.  Instead, it produces the current set of channels that
   are included in "application/push-aggregation+json" format.

3.4.  Modifying the Aggregation Set

   A PATCH request to the aggregated channel URI can be used to update
   the set of channels that are included in the set.  This uses an
   request body containing a JSON Merge
   [I-D.ietf-appsawg-json-merge-patch] document.

4.  Security Considerations

   This protocol provides an application a way to use a relatively small
   message to cause a large amount of data to be sent.  This adds
   considerably to the denial of service risks the protocol poses to
   devices.  The basic mitigations in [I-D.thomson-webpush-http2] apply,
   though these are significantly more important.

   Of particular concern is access control to the aggregated channel
   URI.  The aggregate channel URI is only used by the entity that
   requests its creation; therefore, this can be ensured by making the
   URI difficult to guess.  That is, the same entropy requirements apply
   to aggregated channel URIs as for other channel URIs.

   Messages sent over aggregated push channels do not have
   confidentiality and integrity protection, unless applications provide
   a mechanism within the message payload.  Since the information is
   pushed to multiple recipients, these channels are unsuitable for
   confidential information.






Thomson                  Expires April 11, 2015                 [Page 4]

Internet-Draft              Push Aggregation                October 2014


5.  IANA Considerations

   TODO: expand with details

5.1.  Registration of Link Relation Type

   A link relation for the link aggregation resource is registered
   accordinging to the rules in [RFC5988].

5.2.  Registration of MIME Media Type

   A new MIME media type, "application/push-aggregation+json" is
   registered according to the rules in TODO.

6.  Normative References

   [I-D.ietf-appsawg-json-merge-patch]
              Hoffman, P. and J. Snell, "JSON Merge Patch", draft-ietf-
              appsawg-json-merge-patch-07 (work in progress), August
              2014.

   [I-D.thomson-webpush-http2]
              Thomson, M., "Generic Event Delivery Using HTTP Push",
              draft-thomson-webpush-http2-00 (work in progress), May
              2014.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3339]  Klyne, G., Ed. and C. Newman, "Date and Time on the
              Internet: Timestamps", RFC 3339, July 2002.

   [RFC5988]  Nottingham, M., "Web Linking", RFC 5988, October 2010.

   [RFC7159]  Bray, T., "The JavaScript Object Notation (JSON) Data
              Interchange Format", RFC 7159, March 2014.

Author's Address

   Martin Thomson
   Mozilla
   331 E Evelyn Street
   Mountain View  94041
   United States

   Email: martin.thomson@gmail.com





Thomson                  Expires April 11, 2015                 [Page 5]