Re: [Webpush] Application server authentication new years edition

Costin Manolache <costin@gmail.com> Wed, 06 January 2016 18:02 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 6B0CD1A0053 for <webpush@ietfa.amsl.com>; Wed, 6 Jan 2016 10:02:01 -0800 (PST)
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 owwC6aOIvoGx for <webpush@ietfa.amsl.com>; Wed, 6 Jan 2016 10:01:58 -0800 (PST)
Received: from mail-oi0-x229.google.com (mail-oi0-x229.google.com [IPv6:2607:f8b0:4003:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 366401A0031 for <webpush@ietf.org>; Wed, 6 Jan 2016 10:01:58 -0800 (PST)
Received: by mail-oi0-x229.google.com with SMTP id y66so298261832oig.0 for <webpush@ietf.org>; Wed, 06 Jan 2016 10:01:58 -0800 (PST)
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=srHe8Z+Z6knAzptY+V3RtxSrXiBS9MzFd8vOSGnghUs=; b=q7EYEZbzD8iQ1bPZSJnnU3s2yztvUGgHVm9P36rH7/ZcDUZHxcspBXnVcJo4dqQnp0 E5G5fmPkBKtha6h/aPCg7tF8s5teyuRlyOMiJdzm1pSb9H8g/K7UrVy9XHTu6EtAw16P 83KzqU4KQ3PEkb/Auh1AbAfUOhUUdQ4BeBPpaTHWaT5p+CpOKSmxP/xjyZtpxyU6J7Wd 8Uu84EKEMmWrCNW5K3QmAVSWGwL5p10RqIMGpaE6/K8eucOgO3nwDbMtYrCgEfvHx6kl RL5ccNPr3An11DtysJFHQVetUJHIN9msvritvi2get25pAweabGiS54KefQ5fjKKN77h rhGg==
MIME-Version: 1.0
X-Received: by 10.202.204.136 with SMTP id c130mr69642935oig.93.1452103317589; Wed, 06 Jan 2016 10:01:57 -0800 (PST)
Received: by 10.76.8.74 with HTTP; Wed, 6 Jan 2016 10:01:57 -0800 (PST)
In-Reply-To: <CABkgnnUYkuu9pjuqLDhiWLNWzkr9ZfYRNny4ZvSKRTWie2bQyA@mail.gmail.com>
References: <CABkgnnXBHXfY6Gz-FKGVUUoOwyJo9zaw1rWceSqVp94FypDbJA@mail.gmail.com> <CAP8-Fq=PhUcj5aaE6dvF2_+-HmVrGDyk41QBzkVxiNMxUakoag@mail.gmail.com> <CABkgnnUYkuu9pjuqLDhiWLNWzkr9ZfYRNny4ZvSKRTWie2bQyA@mail.gmail.com>
Date: Wed, 06 Jan 2016 10:01:57 -0800
Message-ID: <CAP8-FqnSqtMb5bT14tkycYXOOP+Xmoa9SMjuP5KkeN_ri+_NVQ@mail.gmail.com>
From: Costin Manolache <costin@gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="001a1137b1126c149e0528ae263f"
Archived-At: <http://mailarchive.ietf.org/arch/msg/webpush/91wzfAgAHyo5JeDSGnABlnySbYU>
Cc: Ben Bangert <bbangert@mozilla.com>, Costin Manolache <costin@google.com>, "webpush@ietf.org" <webpush@ietf.org>
Subject: Re: [Webpush] Application server authentication new years edition
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: <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: Wed, 06 Jan 2016 18:02:01 -0000

On Wed, Jan 6, 2016 at 1:16 AM, Martin Thomson <martin.thomson@gmail.com>
wrote:

> On 6 January 2016 at 15:55, Costin Manolache <costin@gmail.com> wrote:
> > It is important to define what "voluntary" means :-). My understanding is
> > that it involves
> > a choice made by an entity, either the app server and push service.
>
> I hope that the draft makes it clear enough: "voluntary" refers to the
> choice at the app server whether to provide this information.
>
> > The only 'voluntary' choice an app server has is to not use
> > a push service and UAs that requires authentication/authorization.
>
> Right, and I don't think that this is a choice we want to force people
> into making.  That has some fairly dire market effects.
>

At the same time you can't force push service providers to accept
 unauthenticated/unauthorized sending either. Or require them to
provide unlimited (and free) service to everyone regardless of how much
they're abusing/hurting users or networks.



> > For authentication:  2.1(certificate) would be my preference, and is a
> well
> > known and established
> > mechanism, followed by 2.6, 2.3
>
> Both 2.1 (certs) and 2.6 (token binding) require access to the TLS
> connection.  Token binding has the added concern that it is a new
> mechanism that might not be well deployed.
>
> When I inquired, certs did seem possible, but Mozilla folks (JR can
> speak to this better than I), had some operational concerns.  JWT
> hoists the authentication information up into HTTP, which was a lot
> easier to manage.
>

How about 2.1 AND 2.3 ? Push servers should support both, clients should
use what they can.

I think there are some benefits in 2.1.



>
> > -2.4 doesn't cover authentication,
> > -2.5 seems too complicated (2.5 maps to Oauth1, 2.3 to Oauth2 - we know
> the
> > outcome)
>
> I agree.  We don't really know how to solve the signing problem, and
> not from a lack of trying.
>
> > -2.2 is what we use now, but doesn't work well with 3. - subscription
> > association - if
> > public keys are used.
> >
> > For authorization - or "subscription association" - big +1 :-)
>
> Yeah, I like the subscription association feature too.  I think that
> it's an important consideration in choosing a mechanism.
>

And it may be the way to allow the choice on app server side - either by
having an 'isAuthorizationRequired()' or an error code when attempting to
subscribe without a public key.

If they subscribe without the sender id, than on some push services send
will fail - and they can't do anything about it.



>
> > For contact - each of the authentication schemes in the draft provide a
> way
> > to include contact info, and
> > the choice for senders is to include it or not, and the choice for push
> > services is to throttle/reject
> >  or not. The tricky part is if any additional verification will be done
> by
> > push services.
> > I guess some providers (in particular free services) may be ok with a
> more
> > relaxed verification
> > or even allow some rate-limited sending without contact info, I
> personally
> > don't mind it - if we
> > can't contact a sender in case of problems we just block it.
>
> That's the policy that we've discussed having.  I think that it is
> very important to allow requests from all comers, even without
> authentication.  Of course, services should be prepared to cut off
> those unauthenticated requests very quickly as load increases.
>

Of course, you have the choice and I'm very curious to know how it works,
but based on our experience we are not ready to make the same choice :-)

I'm personally ok to not require contact info ( with understanding that if
it is missing
the sender accepts some limitations ). Unfortunately it's not my choice,
people who
support the service may have a different opinion, and each service provider
may
make a choice or another.

However authorization and authentication are a different story than contact
info.

Costin