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
jgo...@verisign.com<applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgo...@verisign.com>

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

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

From: Jasdip Singh <jasd...@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

_______________________________________________
regext mailing list -- regext@ietf.org
To unsubscribe send an email to regext-le...@ietf.org

Reply via email to