[Jmap] Re: Working group last call draft-ietf-jmap-webpush-vapid
Phillip Tao <ptao@apple.com> Fri, 26 July 2024 04:31 UTC
Return-Path: <ptao@apple.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D22A8C1D4CF2 for <jmap@ietfa.amsl.com>; Thu, 25 Jul 2024 21:31:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.252
X-Spam-Level:
X-Spam-Status: No, score=-2.252 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.148, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g38glbsDZHPz for <jmap@ietfa.amsl.com>; Thu, 25 Jul 2024 21:31:47 -0700 (PDT)
Received: from rn-mailsvcp-mx-lapp03.apple.com (rn-mailsvcp-mx-lapp03.apple.com [17.179.253.24]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0ACBFC1CAF3F for <jmap@ietf.org>; Thu, 25 Jul 2024 21:31:47 -0700 (PDT)
Received: from rn-mailsvcp-mta-lapp04.rno.apple.com (rn-mailsvcp-mta-lapp04.rno.apple.com [10.225.203.152]) by rn-mailsvcp-mx-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0SH700H6SR8YDE00@rn-mailsvcp-mx-lapp03.rno.apple.com> for jmap@ietf.org; Thu, 25 Jul 2024 21:31:46 -0700 (PDT)
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-26_01,2024-07-25_03,2024-05-17_01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=cc : content-type : date : from : in-reply-to : message-id : mime-version : references : subject : to; s=20180706; bh=NS8br5lxtF//pd7wNBsnWQpROrn11Za87XgkDqVklCg=; b=RChlFX2NKRqSC9jjuUyBSjpg/L+CkvAZJUiRy8Yu2p27fkNqMuyDJ0fhKlyBX4Cl22+b kaKfxn93TIRvnA0uboj/8roYgFUyRbbOyaNopZs7i1BjbWxTtH4fIWJ834Uqcz6FQVB5 5o8L6Hud1VNj/arzwXh5A0WOiaHTv+M8VqJgTP9YXcgQailTnaWDL1wBZ8dcR7Iu5P1j P/9MD+Mmzthms1nHNB35AWeL1jL8zLlm23YOpLud/ua7OzWAB2I/cOHOu8U6hzpL2Onm Eygi4zmdy+qJae3JGGolLubMqGUrgnVRDLx/sPBHQL39gOa3d520rDTWozKUeV6ybzOC jQ==
Received: from mr55p01nt-mmpp02.apple.com (mr55p01nt-mmpp02.apple.com [10.170.185.213]) by rn-mailsvcp-mta-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0SH700T6UR8YBXE0@rn-mailsvcp-mta-lapp04.rno.apple.com>; Thu, 25 Jul 2024 21:31:46 -0700 (PDT)
Received: from process_milters-daemon.mr55p01nt-mmpp02.apple.com by mr55p01nt-mmpp02.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) id <0SH72AQ00QLE1600@mr55p01nt-mmpp02.apple.com>; Fri, 26 Jul 2024 04:31:46 +0000 (GMT)
X-Va-A:
X-Va-T-CD: e86c8765869d527fcaa13c2690103df3
X-Va-E-CD: 2b62727f37d022ef1b8e83014f487017
X-Va-R-CD: a4989e8565d886b050c733a5054e52c2
X-Va-ID: 0c667639-8a93-4139-af9f-cb0c630ffbbc
X-Va-CD: 0
X-V-A:
X-V-T-CD: e86c8765869d527fcaa13c2690103df3
X-V-E-CD: 2b62727f37d022ef1b8e83014f487017
X-V-R-CD: a4989e8565d886b050c733a5054e52c2
X-V-ID: d163f8e9-251e-4620-8b65-e26f45892c23
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-26_01,2024-07-25_03,2024-05-17_01
Received: from smtpclient.apple (unknown [17.11.50.104]) by mr55p01nt-mmpp02.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPSA id <0SH72BA24R8X6G00@mr55p01nt-mmpp02.apple.com>; Fri, 26 Jul 2024 04:31:46 +0000 (GMT)
From: Phillip Tao <ptao@apple.com>
Message-id: <74D126D4-5BDE-44F8-8887-2B93D58DD7C6@apple.com>
Content-type: multipart/signed; boundary="Apple-Mail=_449459AD-C4DA-4701-A254-54C278BC7E25"; protocol="application/pkcs7-signature"; micalg="sha-256"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
Date: Thu, 25 Jul 2024 21:31:45 -0700
In-reply-to: <f3c75b7b-86c6-4255-a5a4-0e5a975c556e@app.fastmail.com>
To: Neil Jenkins <neilj=40fastmailteam.com@dmarc.ietf.org>
References: <fb1b10ae-ea36-4ee4-b84f-b62f036cfaf5@app.fastmail.com> <4b201702-ad4a-4b0e-86da-fac9f07d265e@app.fastmail.com> <7fb768b0-3c97-4668-8616-b300b03aeb1a@app.fastmail.com> <6F9D4D61-0FFC-4798-8001-73D230328EF0@apple.com> <f3c75b7b-86c6-4255-a5a4-0e5a975c556e@app.fastmail.com>
X-Mailer: Apple Mail (2.3774.600.62)
Message-ID-Hash: 3Q3W5KMW2PIYZKP5CQUR7MNNT22UGFC3
X-Message-ID-Hash: 3Q3W5KMW2PIYZKP5CQUR7MNNT22UGFC3
X-MailFrom: ptao@apple.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-jmap.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Bron Gondwana <brong@fastmailteam.com>, Daniel Gultsch <daniel@gultsch.de>, IETF JMAP Mailing List <jmap@ietf.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Jmap] Re: Working group last call draft-ietf-jmap-webpush-vapid
List-Id: JSON Message Access Protocol <jmap.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/JbZE7FCMBIokXYxMMUMzJ3_A524>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Owner: <mailto:jmap-owner@ietf.org>
List-Post: <mailto:jmap@ietf.org>
List-Subscribe: <mailto:jmap-join@ietf.org>
List-Unsubscribe: <mailto:jmap-leave@ietf.org>
The only other thing I wonder about is that RFC 8292 Section 4.2 seems to say that the application server should proactively notify the user agent when rotating keys, "requesting the creation of a new subscription". That seems like a good idea? Rather than waiting for the client to suddenly and unknowingly stop receiving pushes until the next time it happens to issue some API request. It seems like the JMAP server could push one last message with the old key that's like, "hey the VAPID key changed, please refetch the session and create a new push subscription", right before destroying that push subscription. - Phillip > On Jul 25, 2024, at 7:17 PM, Neil Jenkins <neilj=40fastmailteam.com@dmarc.ietf.org> wrote: > > I think Phillip is right — we don't actually need anything else in the API for key rotation, although we should write a section on how to handle it in the document. > > Basically, if the JMAP server updates its application server key: > It will update the value in the capabilities, which will cause the sessionState to change. > The client will see this has changed on its next API request, and refetch the session object. It should then see the applicationServerKey has changed and re-register any push subscriptions for that device. > The server should also either: > immediately delete all existing push subscriptions when it rotates the key; or > store the key id that was active at the time when a subscription is created, and continue to use the old key for pushes for a period of time after rotation, to allow the client time to detect the change and manually replace the push subscription. This would result in a more seamless change so the user doesn't miss pushes. > There is of course a small window where the client could have the old applicationServerKey and create a PushSubscription with it, while the server has already rotated and tries to use the new key. This will get a 403 from the push server though, which means the client will never receive the verification code <https://www.rfc-editor.org/rfc/rfc8620.html#section-7.2.2> for that subscription. The 403 should cause the JMAP server to just destroy the push subscription immediately. Meanwhile the client should detect in the response to /set that the session has changed, leading it to re-register the subscription as per (2) above. > > Cheers, > Neil.
- [Jmap] Working group last call draft-ietf-jmap-we… Bron Gondwana
- Re: [Jmap] Working group last call draft-ietf-jma… Bron Gondwana
- Re: [Jmap] Working group last call draft-ietf-jma… Bron Gondwana
- [Jmap] Re: Working group last call draft-ietf-jma… Neil Jenkins
- [Jmap] Re: Working group last call draft-ietf-jma… Phillip Tao
- [Jmap] Re: Working group last call draft-ietf-jma… Bron Gondwana
- [Jmap] Re: Working group last call draft-ietf-jma… Phillip Tao
- [Jmap] Re: Working group last call draft-ietf-jma… Neil Jenkins
- [Jmap] Re: Working group last call draft-ietf-jma… Phillip Tao
- [Jmap] Re: Working group last call draft-ietf-jma… Daniel Gultsch
- [Jmap] Re: Working group last call draft-ietf-jma… Phillip Tao