[regext] Review of draft-ietf-regext-rdap-versioning, draft-ietf-regext-rdap-x-media-type, and draft-ietf-regext-rdap-extensions

"Gould, James" <jgould@verisign.com> Mon, 22 July 2024 14:59 UTC

Return-Path: <jgould@verisign.com>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 68B7CC14F6FD for <regext@ietfa.amsl.com>; Mon, 22 Jul 2024 07:59:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.396
X-Spam-Level:
X-Spam-Status: No, score=-4.396 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_MED=-2.3, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_SCC_BODY_TEXT_LINE=-0.01, 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=verisign.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 g1Yj3t8q1qtg for <regext@ietfa.amsl.com>; Mon, 22 Jul 2024 07:59:11 -0700 (PDT)
Received: from mail1.verisign.com (mail1.verisign.com [72.13.63.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 850F1C14F6BB for <regext@ietf.org>; Mon, 22 Jul 2024 07:59:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=55608; q=dns/txt; s=VRSN; t=1721660351; h=from:to:subject:date:message-id:mime-version; bh=eR5ohhw1pYE+/sdY7AtPfHqAQgaXIRHtHPhagVmDRRo=; b=GiSpfSTJgHQTpFsY79IY5Y+kZ9SLm68/OmXMupOi18n9meU3yXP2GSaW VUZnwzdEzO5P2+aGuHSwIyF382lrPLTmyR9cwk3PPmruA6lKgEBJaEVJm hT5C45l5NCRGQsP9CP7xpOr6X/Tc8L0L7G5H5YmPCGuN8CaNkI+Xmsvvw da85D2ur06vsFCADxfe69MAAyI7OXCnDhIrHqXJnhhxXnGd9R+5M91aSQ 2RDnjCHIfT277FwUh17XqiJ5rbtUf4dR15BK5Tc1xq3isHo30ewq+SrhW ogWCec48muV+0/R5JWhuws+JvAfF0c4iW7SC2VcmQ7/7XgM9nrE3iuU/l A==;
X-CSE-ConnectionGUID: N9Oq95SvS3y6lUFmAY/RcQ==
X-CSE-MsgGUID: UU19amf3S7SYTvvV8EM+aQ==
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:3+ILyawuCzC9+dSvOYp6t+fqxyrEfRIJ4+MujC+fZmQN5Y4bYwd3l z9ODjyGOv6UIjyiS21FGNvk8h9Uv5KGytBqSQM6pXo0RX4WosGZWYrAcU39NX/MJZTIEhM2s shCYYLKfMlpEibW+EmjaeW8oyd2jqrQGbeU5IIoW8xUbVYMpHAJ1Us6xYbV+7JVvOVVIz9hm Pv/qcGPMwP4ijIlbDpJsf2O9ho1tf+vtWMV5VdgPq5F4AOHxygeAaxEKPDqJRMUYGX28s2SH L+fke7jrgs12z93V7tJR56iKhVirob6ZFXI1zwPHfD/33CunwRquo4jLv0QdExLvDuAmtF12 b1luIe5IesTFvSkdN81DV8AQkmSAYUcoOWbeSfl65TJp6H7WyCEL8tGXRle0bIwp74f7VFmr ZQwND0LZxafsOO6qJrTYvVsnMkqMP7wN4oZvHx6pRmBZRrxacmeK0lizYYwMAYY3qiiL96HD yYqQWMHgCD7XvF6Egx/5KQWx7702yalI1W0n3rOzUY/yzC7IAVZjuCxYIKNEjCAbZ09ck2w/ goq84lla/2z2RP2JTetqxqRauHzcSzTftM1DezlzeBR20zNwlE9DTQnEmGwmKzs4qK+c4o3x 0080BAI9JcU2XzzFJ/jVBqiuDiNslgCQcFWVeY97WlhyIKNu0DAWTNCF2MaLoB33CM1bWVCO luhndzuGDhjmKOYU3OG97iS6zi1PED5KEdZNXNUHVdfvbEPpqkOs0ueR9NtS5XqtezJBy/Ok x2v7yEH0uB7Yckjkv/TEUr8qyihqZXZUiY06xnZGGW/4WtEiJWNbZausEfd4OYYdsOCUEPHu Xkf3sKZquoUC8jLijaWRqMGG7TBC+u5DQAwSGVHR/EJnwlBMVb5FWyMyFmS/HtUD/s=
IronPort-HdrOrdr: A9a23:WU+dp6jC3Ai6UMuskAGxIP2CUXBQXgcji2hC6mlwRA09TyX+rb HKoB17726XtN9/YhEdcLy7VpVoIkmyyXcd2+B4AV7IZniEhILHFuBfxLqn7THmFzb36+JRkY xxGpITNPTASXx3l9zz7gX9MdoxqePszImYwcPT1W1kQw0vUbxn9AsRMGumO1d7XxZLHqA0E5 eg5s5KzgDKRUgq
X-Talos-CUID: 9a23:CA+gHGHwa/bLL54jqmJBpWkNS50ebEaG3SnUHmG9IFcucrasHAo=
X-Talos-MUID: 9a23:RtW1YgZe2ER1FeBTigK11ThnOpxTvJ+fNF4Tr8UrnoqNDHkl
X-IronPort-AV: E=Sophos;i="6.09,228,1716249600"; d="png'150?scan'150,208,217,150";a="38488426"
Received: from BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) by BRN1WNEX02.vcorp.ad.vrsn.com (10.173.153.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.37; Mon, 22 Jul 2024 10:59:10 -0400
Received: from BRN1WNEX01.vcorp.ad.vrsn.com ([10.173.153.48]) by BRN1WNEX01.vcorp.ad.vrsn.com ([10.173.153.48]) with mapi id 15.01.2507.037; Mon, 22 Jul 2024 10:59:09 -0400
From: "Gould, James" <jgould@verisign.com>
To: "regext@ietf.org" <regext@ietf.org>
Thread-Topic: Review of draft-ietf-regext-rdap-versioning, draft-ietf-regext-rdap-x-media-type, and draft-ietf-regext-rdap-extensions
Thread-Index: AQHa3Ee0tyO/farT80m4JiWh7uh4BQ==
Date: Mon, 22 Jul 2024 14:59:09 +0000
Message-ID: <3F7C7147-048B-4E8E-85DE-C5C886F08140@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.82.24021116
x-originating-ip: [10.170.148.18]
Content-Type: multipart/related; boundary="_004_3F7C7147048B4E8E85DEC5C886F08140verisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Message-ID-Hash: ESXLV27VMBIO7HHDRCWEWMRD4WCBRVCA
X-Message-ID-Hash: ESXLV27VMBIO7HHDRCWEWMRD4WCBRVCA
X-MailFrom: jgould@verisign.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-regext.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [regext] Review of draft-ietf-regext-rdap-versioning, draft-ietf-regext-rdap-x-media-type, and draft-ietf-regext-rdap-extensions
List-Id: Registration Protocols Extensions Working Group <regext.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/L377YVNleqV7s7tJPWTGBLJIIG4>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Owner: <mailto:regext-owner@ietf.org>
List-Post: <mailto:regext@ietf.org>
List-Subscribe: <mailto:regext-join@ietf.org>
List-Unsubscribe: <mailto:regext-leave@ietf.org>

Hi,

I did a detailed review of the three drafts draft-ietf-regext-rdap-versioning, draft-ietf-regext-rdap-x-media-type, and draft-ietf-regext-rdap-extensions for alignment.  The following are my findings:


  1.  draft-ietf-regext-rdap-versioning includes support for draft-ietf-regext-rdap-x-media-type and the “versioning” query parameter for the client to provide a hint of the extension versions to include in the RDAP query and RDAP response.  The server MUST support both methods and the client MUST include a single method in the RDAP query to ensure that there are no conflicts.  This ensures that clients can specify the extension versions via a query parameter and via an HTTP header per draft-ietf-regext-rdap-x-media-type.
  2.  draft-ietf-regext-rdap-x-media-type could be merged into draft-ietf-regext-rdap-versioning, since it now represents one method of an Extension Versioning Request.
     *   An alternative is for draft-ietf-regext-rdap-x-media-type to support a more generic form of query parameters for use in any RDAP extension.
     *   The extension can stay separate if there is some advantage.
  3.  draft-ietf-regext-rdap-versioning defines a Extension Version Identifier in section 3.1 https://datatracker.ietf.org/doc/html/draft-ietf-regext-rdap-versioning#name-extension-version-identifie as:
     *   ABNF

                                                              i.      extension-version-identifier = identifier versioning

                                                             ii.      identifier = ALPHA *( ALPHA / DIGIT / "_") ; Extension Identifer

                                                           iii.      versioning = ["-" 1*VCHAR]

     *   draft-ietf-regext-rdap-x-media-type needs to also support the extension-version-identifier to use it with draft-ietf-regext-rdap-versioning, which currently uses the language:

                                                              i.      “This media type has a parameter of "extensions" which is a whitespace-separated list of RDAP extensions as defined in the IANA RDAP Extensions registry.”

           *   How about making this more generic to support additional types of extension versioning schemes, such as the language:
              *   “This media type has a parameter of "extensions" which is a whitespace-separated list of RDAP extensions, such as defined in the IANA RDAP Extensions registry.”

                                                                                                                                      i.      Use of the IANA RDAP Extensions registry will support Opaque Versioning in draft-ietf-regext-rdap-versioning, where use of “such as” will allow for additional RDAP extensions schemes.

                                                             ii.      “the values in the media type's extension parameter SHOULD match the values in the rdapConformance array in the return JSON.”

           *   The Extension Version Identifier does include the extension identifier, so the question is whether inclusion of the versioning suffix will meet the “match the values in the rdapConformance array”.
           *   How about making this more specific to directly reference the version identifiers, which would work better with draft-ietf-regext-rdap-versioning:
              *   “the extension identifier values in the media type's extension parameter SHOULD match the values in the rdapConformance array in the return JSON.”
           *   “though clients SHOULD list the extension identifier in the extensions parameter when using other protocol elements of those extensions.  Servers SHOULD NOT require the usage of extension identifiers in the extensions paramater when other extension protocol elements are used.
              *   To support draft-ietf-regext-rdap-versioning, this could be modified as:

                                                                                                                                      i.      “though clients SHOULD list the extension identifier in the extensions parameter when using other protocol elements of those extensions.  Servers SHOULD NOT require the usage of extensions identifiers in the extensions parameter when other extension protocol elements are used”

                                                                                                                                     ii.      Referencing extension instead of extension identifier would be more generic to support the Extension Version Identifier.

                                                                                                                                   iii.      Nit – replace “paramater” with “parameter”

  1.  draft-ietf-regext-rdap-x-media-type Security Considerations parameter below may be best to address in draft-ietf-regext-rdap-versioning and even more generically in draft-ietf-regext-rdap-extensions
     *   “This specification does contrast with solutions using query parameters in that those solutions require servers to blindly copy query parameters into redirect URLs in situations where such copying could cause harm, such as copying an API key intended for one server into the redirect URL of another server.”
  2.  draft-ietf-regext-rdap-x-media-type B.2 “Query Parameters Considered Harmful” could be moved to draft-ietf-regext-rdap-extensions, since query parameters are used in many places in RDAP, so providing clear guidance when a query parameter should or should not be used would be useful in draft-ietf-regext-rdap-extensions.  I don’t believe query parameters are “harmful” but has a disadvantage in the use cases presented.  The query parameter has the advantage of being a simple approach for clients to provide their hint when directly interfacing with the server.  In re-reviewing draft-ietf-regext-rdap-extensions it does look like section 12 “Redirects” includes some guidance related to query parameters, where I believe it would be beneficial to have a separate query parameter section in draft-ietf-regext-rdap-extensions.
  3.  draft-ietf-regext-rdap-x-media-type B.2.4 “Architectural Violations” and B.3 “RDAP Extension Versioning” could be removed, since I don’t see how the use of a query parameter in RDAP would be considered an architectural violation and RDAP Extension Versioning will be worked on in parallel in draft-ietf-regext-rdap-versioning.
  4.  draft-ietf-regext-rdap-versioning
     *   In section 8 “Extension Versioning”, I just want to confirm that draft-ietf-regext-rdap-versioning address the normative language and if not what needs to be added:

                                                              i.      “If a future RFC defines a versioning scheme (such as using the mechanims defined in section Section 2<https://datatracker.ietf.org/doc/html/draft-ietf-regext-rdap-extensions#extension_identifier>) an RDAP extension definition MUST explicitly denote this compliance.”

     *   Section 8.1 “Backwards-Compatible Changes”

                                                              i.      This section may not be needed with draft-ietf-regext-rdap-versioning, since the set of supported extension versions are explicitly specified, where in the case of Opaque Versioning the server could support many versions of the extension.

     *   Section 8.2 “Backwards-Incompatible Changes”

                                                              i.      IT would be helpful to include the reference to draft-ietf-regext-rdap-versioning as an option to consider in signaling support for more than one version of an extension.

     *   Section 9 “Extension Identifiers in a Response”

                                                              i.      You can update the reference of [I-D.gould-regext-rdap-versioning] to be [I-D.draft-ietf-regext-rdap-versioning].
Thanks,

--

JG

[cid87442*image001.png@01D960C5.C631DA40]

James Gould
Fellow Engineer
jgould@Verisign.com<applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgould@Verisign.com>

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com<http://verisigninc.com/>