[regext] Benjamin Kaduk's No Objection on draft-ietf-regext-rfc7482bis-02: (with COMMENT)

Benjamin Kaduk via Datatracker <noreply@ietf.org> Tue, 16 February 2021 05:06 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: regext@ietf.org
Delivered-To: regext@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 77AFE3A0DA1; Mon, 15 Feb 2021 21:06:45 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-regext-rfc7482bis@ietf.org, regext-chairs@ietf.org, regext@ietf.org, Mario Loffredo <mario.loffredo@iit.cnr.it>, mario.loffredo@iit.cnr.it
X-Test-IDTracker: no
X-IETF-IDTracker: 7.25.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Benjamin Kaduk <kaduk@mit.edu>
Message-ID: <161345200546.25071.6216019004046455391@ietfa.amsl.com>
Date: Mon, 15 Feb 2021 21:06:45 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/oKz6qXefLsCuYNUamVcKd1DM1CE>
Subject: [regext] Benjamin Kaduk's No Objection on draft-ietf-regext-rfc7482bis-02: (with COMMENT)
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Feb 2021 05:06:46 -0000

Benjamin Kaduk has entered the following ballot position for
draft-ietf-regext-rfc7482bis-02: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-regext-rfc7482bis/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for keeping the diff from RFC 7482 minimal -- that made things
very easy to read!

I have just a few actually substantive comments, followed by a number
of editorial/nit-level remarks.  (I recognize that actually doing
anything about many of them would be counter to the "keep diff from RFC
7482 minimal" goal I just complimented, so I don't expect all of them
to be addressed or even get a response.)

My understanding (based on the draft name and shepherd writeup) is that
this document is intended to Obsolete: RFC 7482.  If so, that should be
indicated in the header, abstract, and introduction, as (in my
understanding) the Gen-ART reviewer pointed out.

Additionally, the specification of the search path segment in Section
3.2 seems to be an attempt to replicate the generic HTTP (or even URI)
query string concept, but unfortunately it seems to not quite succeed.
Specifically, it says that the "HTTP query string is formed" with a
single pair of noun/property and search pattern (separated by equals
sign), but a generic query string allows multiple simultaneous queries,
as in
https://example.com/rdap/domains?nsLdhName=*.example.com&nsIp=192.0.2.1
It seems that we may be inadvertently in conflict with the foundational
protocol specification here, and I'm not sure if there are mitigating
factors that make it okay to limit to a single query parameter in a
divergence from the core HTTP behavior.

Also, for Section 2, RFC 8174 has an updated BCP 14 boilerplate text to
use.

On to the nits...

Throughout, we use a four-hex-digit representation of ASCII characters
(e.g., "US-ASCII value 0x002A").  Wouldn't two hex digits suffice?

Section 1

   The patterns described in this document purposefully do not encompass
   all of the methods employed in the WHOIS and other RESTful web
   services used by the RIRs and DNRs.  The intent of the patterns
   described here is to enable queries of:
   [...]

Is the intent to just not offer a replacement for (all of) those, or is
there other work to fill the gaps?  (Has the landscape changed since RFC
7482 was published?)  I suspect the first answer is to not offer full
replacement, given the later paragraph that responses to these queries
may continue to reference the other services, but it seems worth
checking.

   Likewise, future IETF standards may add additional patterns for

(nit) maybe s/standards/specifications/?  It's a long slog to STD...

   WHOIS services, in general, are read-only services.  Therefore, URL
   [RFC3986] patterns specified in this document are only applicable to
   the HTTP [RFC7231] GET and HEAD methods.

(side note) HTTP defines "safe" methods that might be a more
future-proof characterization, though I don't think there's harm in
leaving this alone.  (I mention it only due to a pedantic objection to
the use of the word "therefore", since the chain of reasoning is
arguably incomplete.)

Section 3

   of RFC 3986 [RFC3986].  For example, if the base URL is
   "https://example.com/rdap/", all RDAP query URLs will begin with
   "https://example.com/rdap/".

(editorial) Do we want to say that the examples in the rest of the file
assume this value of the base URL?

   The bootstrap registry does not contain information for query objects

(nit) This is the first instance of the word "bootstrap" in *this*
document (vs RFC 7484), so we are implicitly defining the registry as a
"bootstrap registry" unless we push the reader more strongly to read RFC
7484 before this one.  It might be a little friendlier to the reader to
introduce the "bootstrap" concept earlier and/or separately, e.g., as
part of introducing the registry.

   For help, a base URL is retrieved for any service (domain, address,
   etc.) for which additional information is required.  The query URL is
   constructed by concatenating the base URL to the help path segment
   specified in Section 3.1.6.

nit: I suggest s/concatenating ... to/concatenating ... with/, since the
"to" form seems to leave the help path segment as the primary subject of
the expression (which might lead the reader to think that it should go
first).

Section 3.1.2

   The following URL would be used to find information describing 4-byte
   Autonomous System number 65538:

(side note) Is the distinction between 2- and 4-byte AS numbers useful
to make anymore?

Section 3.2.3

   XXXX is a search pattern representing the "fn" property of an entity
   (such as a contact, registrant, or registrar) name as described in
   Section 5.1 of [I-D.ietf-regext-rfc7483bis].  [...]

(nit) 7483bis seems to not actually define the "fn" property, instead
deferring to jCard (RFC 7095), which in turn defers to vCard (RFC 6350),
which is perhaps a bit long of a reference chain to ask the reader to
follow.

Section 4.1

   Partial string searching uses the asterisk ('*', US-ASCII value
   0x002A) character to match zero or more trailing characters.  A
   character string representing a domain label suffix MAY be
   concatenated to the end of the search pattern to limit the scope of
   the search.  [...]

As written, this seems like it would allow a domain label suffix to be
concatenated to the end of (e.g.) an entity or full-name search, which
seems a bit bizzare.  Not wrong per se, just ... surprising.

   Clients SHOULD NOT submit a partial match search of Unicode
   characters where a Unicode character may be legally combined with
   another Unicode character or characters.  [...]

nit: I suggest clarifying which of "a Unicode character" and "another
Unicode character or characters" are in the literal sent by the client
and which are to be in the asterisk expansion.

Section 6.1

                                                           Strings are
   normalized using Normalization Form C (NFC) [Unicode-UAX15]; note
   that clients might not be able to do this reliably.  [...]

Is this note still accurate now?

Section 7

(side note) I get the impression that the implementations listed here
are all client-side, with the server half of the query functionality
being rolled into the server (response) behavior of RFC 7483(bis), and
thus that I should not read anything into the lack of claimed server
implementations.

Section 9

There are perhaps security/privacy considerations relating to returning
domain names as a function of the associated nameserver (in terms of the
consolidated list not necessarily being readily available elsewhere),
but since it's essentially still available by scraping techniques the
risk is not very great.

                                                          Server
   operators can also reduce their risk by restricting the amount of
   information returned in response to a search request.

Is this the risk of DoS-via-resource-consumption or some other risk
(e.g., the privacy risk covered in the following paragraph)?
If the latter, clarification might be in order.

Section 10.1

We only reference RFCs 5730 and 5733 once, as "For example, for some
DNRs, contact identifiers are specified in [RFC5730] and [RFC5733]".
Since that is just an example, it doesn't seem like those would need to
be classified as normative.