[regext] Re: RDAP versioning draft feedback

"Gould, James" <jgould@verisign.com> Sun, 03 November 2024 21:50 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 4EC3DC1E6428 for <regext@ietfa.amsl.com>; Sun, 3 Nov 2024 13:50:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 0R83LAplucpe for <regext@ietfa.amsl.com>; Sun, 3 Nov 2024 13:50:27 -0800 (PST)
Received: from mail3.verisign.com (mail3.verisign.com [72.13.63.32]) by ietfa.amsl.com (Postfix) with ESMTP id 886E5C1E722D for <regext@ietf.org>; Sun, 3 Nov 2024 13:50:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=35106; q=dns/txt; s=VRSN; t=1730670627; h=from:to:date:message-id:mime-version:subject; bh=QWvKPUIaUN6L6aXBnUTs5TArtLav06FqgTavr6LBIQc=; b=hC7QmdKTApoQVDwZUZ8ofg4HC3FXlRJf86qoE3qILLWuO038Bu7JrxsM 9onK5g5M50vobnJ8eRwt8C7aR5+JyqdyvJ58dfzrFGngcpO34WFJLrK33 bMsNyd8Drr0nQdmGUUVXF+OBJeSUmaX0p4J7ksxHYzGADt8nhD3ivHtY/ QFYJ4NChd33TvHBJ9WwyXbplm5omSG4uavhK2mDZD8idIDAxaoSZXpO4q 9DhH+XnZ1mdDZaVMKATqeb120JNWXbJrkd4mjPzleFbCl0OhfzQNHr/cl GIfOyA1dkQtAswCZWV6fa+VRF5pqoVxodNJG7lVFydDlk2QkMaM6LgeEx w==;
X-CSE-ConnectionGUID: 3OlRtfqhTj2GEG1ztYS6sQ==
X-CSE-MsgGUID: r62EPajHRCu8LKcf35lKeQ==
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:GYhM4a1bB021B8gVOfbD5Txwkn2cJEfYwER7XKvMYbSIYAOW5UVek zNIDGmGO+HKPDXFz+oGPt+xoBgAvcXRyN9iSVRk/ihnQy5BopaZW43GJEr6Y32Zd8adHRM64 pkVMdOQJZ1oF3WC+Bn2b+Xv83Mn3vnXS9IQZAKl1gVZHGeIHw990Es98wJAvrNVvDSZP++sk d/5+sTVNVL70DN9aWtJ4fqN8kwy4KT7tGhI4gFlaaka4AaOxnIYMskSdPq7R5fariu4PcbhH rqek+vplo/9101wYj9wuu+jKiXmepaLYE7TzCAQA/Hy6vR7jnRa+r4hM/YBYltghTyMntRgo P1ArpXYpT0BZ8Ugo8xDFUABe81CFfceouOeeCDk6Zb7I3DuKBMA/d0/VCnaAqVFoo6bMUkWn dQEJTYEaAy0hu7e6NqTVul2i80/G9LgNYUZt2sI5Wmx4SEOGM2rrw3ivLe07R9o7ix8Na+2i /kxMFKDWC/9jyhnYT/7Prplxbv12SOvG9FvgAn9SaIfuwA/xSQviOS9aIK9ltaiHa25lW7Az o7KEviQ7rj3+7VzxBLcmk9AiNMjkgugf4YoCLOh9sJo2nK+6TUBFCwtC0CC9KzRZk6WA7qzK mQ+wAx3ko4fxBTxCMf2WAeg5neI+AAGQNwWGOo/gO2P4vOMpV/GXS5dE2UHNI1OWMweHFTG0 neLkNT0ATBHrrCPSGmc+bHSpjS3UcQQBTRcNH9cEFtYizXliJtt1D/3R9RDKoWo3vnWEj+rn jSpoRFr0t3/iuZOjc1X52vvgTu3qpnRVSY8/ATRGGSo8mtRfoOqapy0wVnW8fgGK5yWJmRtp 1AOgc7H8+YDHcnX0TeTWqMIHars7fHDOifa2BhxBYInsT+q/hZPYLxt3d23H28xWu5sRNMjS Ba7Vd95jHOLAEaXUA==
IronPort-HdrOrdr: A9a23:4e7vo6krwsjkoCJPTbMIIqAFscHpDfLx3DAbv31ZSRFFG/Fw8P re+cjztCWE6gr5N0tBpTntAse9qBDnmqKdiLN5VYtKNzOW21dAQrsC0aLShxPtHCHk/vNQ2O NKY8FFZOHYPBxfgdzh6Ae1V/Qt0LC8mpyAtKP7w212RQ9nL5t86Rx0Yzz3LmRtSBJYCYECGJ 2Q28pCq1ObEkgqUg==
X-Talos-CUID: 9a23:fgmogWuEzfdZr83e/gLcy22Y6It+VXnn0HnJI3O6U0lEZ+SHVW6rprhdxp8=
X-Talos-MUID: 9a23:+VqABg8RZqYB+x/HTGURstmQf902uYmWAUItq74b6+2nPiIrZjO+gQ3iFw==
X-IronPort-AV: E=Sophos;i="6.11,255,1725321600"; d="png'150?scan'150,208,217,150";a="36980585"
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; Sun, 3 Nov 2024 16:50:23 -0500
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; Sun, 3 Nov 2024 16:50:23 -0500
From: "Gould, James" <jgould@verisign.com>
To: "jasdips@arin.net" <jasdips@arin.net>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [EXTERNAL] [regext] RDAP versioning draft feedback
Thread-Index: AQHbLjpiORcVsocHuUqgn+EVjB4jJw==
Date: Sun, 03 Nov 2024 21:50:23 +0000
Message-ID: <D613F970-8889-4E02-953A-35D3B058824C@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.90.24102013
x-originating-ip: [10.170.148.18]
Content-Type: multipart/related; boundary="_004_D613F97088894E02953A35D3B058824Cverisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Message-ID-Hash: RNCXPC6ZXIERDAMVL475BMAO6W4RWQ4X
X-Message-ID-Hash: RNCXPC6ZXIERDAMVL475BMAO6W4RWQ4X
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.9rc6
Precedence: list
Subject: [regext] Re: RDAP versioning draft feedback
List-Id: Registration Protocols Extensions Working Group <regext.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/Bcny2QfAo-J-FOqUthXthepPlfY>
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>

Jasdip,

Thank you for your review and feedback.  I provide responses to your feedback embedded below, prefixed with “JG:”.

--

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/>

From: Jasdip Singh <jasdips@arin.net>
Date: Friday, November 1, 2024 at 6:28 PM
To: "regext@ietf.org" <regext@ietf.org>
Subject: [EXTERNAL] [regext] RDAP versioning draft feedback


Caution: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.

Hi James, Daniel, Mario,

I read the latest draft and to help tighten this spec, have few higher-level comments.

VCHAR use:

In section 3.1, the ABNF for “versioning” in “extension-version-identifier” is “["-" 1*VCHAR]”. Since the extension version identifiers could be passed in the “extensions” parameter of the RDAP-X media type in the HTTP accept and/or content-type headers, it would be safer to constrict them to what’s allowed in those headers. E.g., for the accept header, a parameter value (per section 5.6.6 of RFC 9110) is “parameter-value = ( token / quoted-string )” where “token” is any VCHAR minus the delimiters (section 5.6.2 of RFC 9110). The reason AFAIU is to help prevent injection attacks. From security angle, good to address this.

JG – Yes, the versioning rule could be updated to match the tchar rule in section 5.6.2 of RFC 9110.  The only exception may be to remove the use of ‘-‘, since that separator is used between the extension-identifier and the versioning rules.  How about the following:

extension-version-identifier = identifier versioning
identifier = ALPHA *( ALPHA / DIGIT / "_") ; Extension Identifier
versioning = ["-" 1*versioning-char]
versioning-char = "!" / "#" / "$" / "%" / "&" / "'" / "*"
                 / "+" / "." / "^" / "_" / "`" / "|" / "~"
                 / DIGIT / ALPHA

In reviewing the ABNF, I noticed the versioning rule for the Semantic Extension Version Identifier, in Section 4.2.1, needed the ‘;’ removed.  It should be:

versioning = "-"  major "." minor


Rationale for versioning:

Section 1 says, “The RDAP Conformance values are identifiers with no standard mechanism to support structured, machine-parseable version signaling by the server.” It’d be good to elaborate with usage scenarios where such structured versioning is a value-add for clients beyond what the opaque (no inner meaning) extension identifiers from STD 95 afford. Let’s say an extension is “foo1”, then “foo99”, and later “foo2” in terms of “versions”. The server announces its support for these non-structured extensions, say, on its web site or through the “rdapConformance” member in a /help response, and the clients can then negotiate a particular non-structured version of this extension using the standard HTTP content negotiation methodology (e.g., using the RDAP-X media type). In the spirit of what-not-to-do, it is fair for a client to ask: Why should I go through the overhead of processing the “versioning_help” member? What value-add does it get me? Is it in some way a better discovery and/or negotiation method for RDAP extensions? Would be good to beef up the rationale for structured versioning.

JG – We need to ensure that RDAP-X supports the extension version identifier as well, so there should be no variance between the versioning extension and the RDAP-X extension.  We can add more rationale in Section 2 “Semantic Versioning”, where a server could support multiple versions of an extensions that are signaled as related.  For the versioning extension itself, there have been multiple versions of it that are not structurally different and not backward compatible, with the latest version being “versioning-0.3”.  Other RDAP extensions could leverage semantic versioning during development to encourage implementation with version isolation and with clear relationship between the extension version identifiers.  Do you believe that we should look to add the concept of relationships between opaque version identifiers?

RDAP-X way:

To help client implementors, beside the “versioning” query parameter examples, would be good to include one or more RDAP-X examples.

JG – You mean that you want to see examples like what is included in draft-ietf-regext-rdap-x-media-type, such as:

application/rdap-x+json;extensions="rdap_level_0 fred"

and

application/rdap-x+json;extensions="semantic_ext1-0.1 opaque_ext2"

/help path segment:

Section 3.1.6 of RFC 9082 says, “The help path segment can be used to request helpful information (command syntax, terms of service, privacy policy, rate-limiting policy, supported authentication methods, supported extensions, technical support contact, etc.) from an RDAP server.” Using a new “versioning” query parameter for /help, is this spec updating RFC 9082? Not sure but thought of asking.

JG – No, I don’t see the need to update RFC 9082.  We will discuss the scope of the draft-ietf-regext-rdap-extensions that I believe needs to formally define all forms of RDAP extension types that are known with further extensibility in the future.  The base RDAP RFCs did not do a good job at defining the methods of extensibility like what was done for EPP.  We can address this in draft-ietf-regext-rdap-extensions.  Language like “can be used” is not normative and does not include new types of helpful information or query parameters defined by an RDAP extension.

Further, beside the “versioning” extension version identifier itself, are any other extension version identifiers allowed in the “versioning” query parameter for /help? If not, good to clarify that.

JG – The “versioning” query parameter is already defined as containing a list of extension version identifiers, so there should be no problem with providing other extension version identifiers in the “versioning” query parameter for the /help.

Caution with using “versioning” query parameter in non-help path segments:

It would be good to beef up the security and privacy considerations for the risks with using “versioning” query parameters in non-help path segments vis-à-vis RDAP redirects and referrals, as the Extensions draft cautions.

JG – I don’t see the use of a query parameter as a security and privacy consideration.  Do you have an example of such security and privacy considerations included in other RDAP extensions with query parameters?

Thanks,
Jasdip