Re: [Jmap] Secdir last call review of draft-ietf-jmap-contacts-06

Neil Jenkins <neilj@fastmailteam.com> Fri, 12 April 2024 06:29 UTC

Return-Path: <neilj@fastmailteam.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 03110C14F60D; Thu, 11 Apr 2024 23:29:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.095
X-Spam-Level:
X-Spam-Status: No, score=-7.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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=fastmailteam.com header.b="uGPJJ1JL"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="PiP4+bgs"
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 zRDPEpZTgEVP; Thu, 11 Apr 2024 23:29:40 -0700 (PDT)
Received: from wfout3-smtp.messagingengine.com (wfout3-smtp.messagingengine.com [64.147.123.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A48CC14F60E; Thu, 11 Apr 2024 23:29:06 -0700 (PDT)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfout.west.internal (Postfix) with ESMTP id 5BDB61C00136; Fri, 12 Apr 2024 02:29:05 -0400 (EDT)
Received: from imap43 ([10.202.2.93]) by compute5.internal (MEProxy); Fri, 12 Apr 2024 02:29:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:cc:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1712903344; x=1712989744; bh=socNZ5RzTnvHhucSIM941DewXp5zCe6obpPNc3kSRUI=; b= uGPJJ1JLU3biwHqwUT5Ce9ucgalTiMQ4AnO8HH4jf9Rqowbku3HdXiagj5V0M20V ZLBXtQIuAKTUNxPn2TtQlA+0X/lYYL9mdL1VtnGnKly5lDl6Dc7a4Cko3Oz1R5LK Q3G0gnhyFBjymp9LL4J39wH1vm17JlOAakIj52ZvEsTi4iIPTmcoxDyuLuI7Ikwu 9Dfe87PZ9awbZNnVjDmUsNrFchQnq66zcY3fFe63xWfCDM1F9vE4tLkNO1lpyB57 jO/tiWq7AhLXRgnSy0hWa0NYUG716o0kHB1w1wvgfHGHLAFGkLjCu3XAaeztOipt Lw6YdIZ09iNPJwVH9Mx5AQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1712903344; x=1712989744; bh=socNZ5RzTnvHhucSIM941DewXp5z Ce6obpPNc3kSRUI=; b=PiP4+bgsm2tG6u52hn/nPgp4qx10dh32ay2LOCAZKBPm fmjbQxjT5oCm2am4ozeymtt1DTD0gcLg8y4aJwDTivYWM9yYFnGBGhrAMVkE21HB an8qNLnPJ4oDNKC2WFx8082M7tj4L7rOAFoxvvAt6BHWkkNknFls/Nu8Ps1SEUi9 vZU1sWae9rMeoH/ip/aPtVwQW2a30CIJZaRbQVML0KGqgs1fpro7DNK5TH4ueEnC TWH0ejGK5nQ7SLnxGzMSci8L6Tlg3sfWD74mZ/UJdvXViH7uUF+F7n9jDbMcwJur azMOhSGiMu7TInNTlqpqO5wNTNJwaL1ycNJkQlN6sw==
X-ME-Sender: <xms:sNQYZvYvfz_0hcHCcNRlE5TrQ2bj67RQjSIgDh4Lk0rxhsvJCBdmbQ> <xme:sNQYZuaL_CBbz62vHKKum32uUrwvK0HzpsMIwoNegO1xmGl25Cb_cZuSSZVkNA9k9 AiFrul7eQ4MZw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudeitddgjeefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsegrtderreerredtnecuhfhrohhmpedfpfgv ihhlucflvghnkhhinhhsfdcuoehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtghomh eqnecuggftrfgrthhtvghrnhepkedvudethfehudelfeeitddvkeetledtjedugfffveej vdejgeethfetfefggeeunecuffhomhgrihhnpehivghtfhdrohhrghenucevlhhushhtvg hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehnvghilhhjsehfrghsthhm rghilhhtvggrmhdrtghomh
X-ME-Proxy: <xmx:sNQYZh-NoFRlEJ36kk4PiA1SOVpTBQlEM0I4oZV1pF_JjnZ3MAC4vQ> <xmx:sNQYZlpcnYYz9GK1yJSgUNA5CLbJW1t3J6pkK2MfqKzZA5Sbwo9taQ> <xmx:sNQYZqryNB0Vs4Q42SGCo3qfA_QnRh_yz_Z_japKz317YURe_pIZBQ> <xmx:sNQYZrSqLqMwT6lS0qBEH-NIiXrFxD9v3bLAX7Yg5eephwhjoTIIgQ> <xmx:sNQYZjmiLiSgEfJoZgXhusv9BH4Yshg_v9XtbkVcCCdWBrlnx2VTRxOg>
Feedback-ID: ibc614277:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 9AD542D4007D; Fri, 12 Apr 2024 02:29:04 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.11.0-alpha0-379-gabd37849b7-fm-20240408.001-gabd37849
MIME-Version: 1.0
Message-Id: <5c1aaaf3-1ed0-41ac-9ed3-f0019ac3c09c@localhost>
In-Reply-To: <171221155095.47781.827957534903822489@ietfa.amsl.com>
References: <171221155095.47781.827957534903822489@ietfa.amsl.com>
Date: Fri, 12 Apr 2024 16:28:44 +1000
From: Neil Jenkins <neilj@fastmailteam.com>
To: Shivan Sahib <shivankaulsahib@gmail.com>, secdir@ietf.org
Cc: draft-ietf-jmap-contacts.all@ietf.org, IETF JMAP Mailing List <jmap@ietf.org>, last-call@ietf.org
Content-Type: multipart/alternative; boundary="bd5f7a0023404bd59313817512ed54c8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/R2H7mcCrxVRIrSi-KltSM6J0sz8>
Subject: Re: [Jmap] Secdir last call review of draft-ietf-jmap-contacts-06
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Apr 2024 06:29:45 -0000

Hi Shivan,

Thank you for your review. I have published an updated draft <https://www.ietf.org/archive/id/draft-ietf-jmap-contacts-07.html> addressing your comments, details below.

> Section 1.4
> This section says "This document defines two additional capability URIs." but
> AFAICT it's only one i.e. urn:ietf:params:jmap:contacts

Fixed.

> Section 2
> Why does description property not have any restrictions unlike the name
> property?

The name property has a length restriction, as it's intended as a short-ish name for display. The description property does not have a length restriction (servers may enforce sanity limits, as for any property of course).

> In general, it's a bit confusing which properties are mandatory and which are
> optional: sometimes it's pretty obvious (id and name), and sometimes it's not
> (sortOrder). I would highly recommend explicitly labelling all properties as
> either mandatory (and then defining what the possible values are), or optional
> (similar, but also with a sensible default).

The current presentation follows the conventions of existing JMAP documents. As per RFC8620, Section 5.3 <https://datatracker.ietf.org/doc/html/rfc8620#section-5.3>, the "object type definition may define default values for properties.  Any such property may be omitted by the client."

As per RFC8620, Section 1.1 <https://datatracker.ietf.org/doc/html/rfc8620#section-1.1>, the "the client MUST NOT send [a server-set] property when creating a new object of this type."

> Looks like Principal is missing a reference to
> https://datatracker.ietf.org/doc/html/draft-ietf-jmap-sharing-06.

Thanks, I've added a reference.

> mayDelete property in AddressBookRights is confusing, since I first thought it
> means the ability to delete ContactCards since that's what mayRead and mayWrite
> mention.

I see how you interpreted it like this, but I'm going to stick with "mayDelete" as it's consistent with what we did in RFC8621 <https://datatracker.ietf.org/doc/html/rfc8621#section-2> for mailboxes, and if you read the description it's clear (as you found).

> Section 5
> The Security Considerations section needs to address the fact that a user query
> which uses filtering/sorting is basically untrusted input and recommend how to
> sanitize and treat the input. It should at the very least point to RFC 8620
> security guidance around parsing JSON input.

As this document is just defining a few data types within the JMAP protocol, *all* of RFC8620's security considerations apply, as already noted in the document. I'm not sure what you consider a new security consideration around filtering/sorting with this document?

Cheers,
Neil.