Subject: [Webpush] Kathleen Moriarty's No Objection on draft-ietf-webpush-vapid-03: (with COMMENT)

From: Kathleen Moriarty <[email-masked]>
Date: Tue, 15 Aug 2017 11:50:24 -0700

Kathleen Moriarty has entered the following ballot position for
draft-ietf-webpush-vapid-03: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-webpush-vapid/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for your work on this draft.

In section 3, it seems that you are just signing the JWK and that seems fine
from the text and the purpose listed - origin server authentication.

Then in section 3.2, there's a reference to I-D.ietf-webpush-encryption saying,
"An application server MUST select a different
   private key for the key exchange".  This makes me think that encryption is
   used as well, but I think it would be helpful to see the point made more
   clear here or in the security considerations section.  Is confidentiality
   provided/required or just integrity for this draft?

---

From: Martin Thomson <[email-masked]>
Date: Wed, 16 Aug 2017 11:11:03 +1000

>    provided/required or just integrity for this draft?

There are two separate mechanisms.  -encryption sends a message to the
user agent.  That message has confidentiality and integrity protection
- the push service can't see or modify that message.  In the envelope
of that message, we have this JWT.  The confidentiality/integrity
protection for that is HTTPS.  Confidentiality is required to prevent
theft of the token, as stated in the security considerations.  What I
now realize is that I didn't actually reiterate the requirement for
HTTPS from 8030.

  https://github.com/webpush-wg/webpush-vapid/pull/41

The text you cite is included specifically to maybe prevent someone
from incorrectly using the same key for signing (in -vapid) and
encryption (in -encryption).  Unfortunately, this specific type of
misuse is possible in a lot of codebases and does happen.

---

From: Kathleen Moriarty <[email-masked]>
Date: Wed, 16 Aug 2017 11:34:26 -0400

Hi Martin,

>   https://github.com/webpush-wg/webpush-vapid/pull/41

Thanks for adding text, there wasn't mention of confidentiality being
required  or HTTPS in the version I read, so that is a helpful
addition.
> misuse is possible in a lot of codebases and does happen.

OK, if it's possible to edit the cited text to make it more clear, I
think that would be helpful to any implementer that comes along later.

-- 

Best regards,
Kathleen

---

From: Martin Thomson <[email-masked]>
Date: Thu, 17 Aug 2017 10:45:29 +1000

> think that would be helpful to any implementer that comes along later.

I made a change in response to Ben's review that might help:
https://github.com/webpush-wg/webpush-vapid/pull/44/commits/3269c22c083793b52da9dff51273843e3dc0d3f7