Re: [Uta] Unofficial I18ndir review of draft-ietf-uta-rfc6125bis
Peter Saint-Andre <stpeter@stpeter.im> Thu, 12 January 2023 00:25 UTC
Return-Path: <stpeter@stpeter.im>
X-Original-To: uta@ietfa.amsl.com
Delivered-To: uta@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EB1B4C18F7F3; Wed, 11 Jan 2023 16:25:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.799
X-Spam-Level:
X-Spam-Status: No, score=-2.799 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, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=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=stpeter.im header.b="f23C5m2t"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="B1RUbRLk"
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 iZtAvHQhtrrR; Wed, 11 Jan 2023 16:25:08 -0800 (PST)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9432C1782AC; Wed, 11 Jan 2023 16:25:07 -0800 (PST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id C36EF5C0148; Wed, 11 Jan 2023 19:25:06 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 11 Jan 2023 19:25:06 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stpeter.im; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1673483106; x= 1673569506; bh=+kX4hr3U2lNa5AEFh66nu1OxCss0AOrzkxN6sfkdLcA=; b=f 23C5m2tWKkCYg4sYY8cQQVFeO64rRHuwqGolo/hBiu97BpWxq5oK/EFHfzdizAgc qOw5p4hPmWIU355MOVgzXVjsHMyTUbSBfh44EXGdlPmrvb3i+6Dv8AK9gYJoabqr vboIEk3VkIChI4XhmBE9ZCrDaoG76a5py0+iTPwthczL04MMTu34DgfO7qvwacGU P+wkjMwn4zOtFU1gl6Gma3n+tUf216JxtJz2F4bhWbT7gO9Anrp9efbnuIMx1aK3 cOAvPtaVrXicaGhQ/7VdfGuu5ddMZgE26eyDNSEhnm/vMJi65DC0E6ha4K9iLiSw haRtMa7hgQe5HH2HpfO/g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1673483106; x= 1673569506; bh=+kX4hr3U2lNa5AEFh66nu1OxCss0AOrzkxN6sfkdLcA=; b=B 1RUbRLk2HURIxf+tamvbAbOIon+xoOT7PeNBa4ftzpMNHAOefiDORD6fgpH1jmvm o+kFXEDtKaUguklhQdXeksRztMEVF4RUE6DGkGT0SpqMwTjbeJxS3nAcaDwZEzio Q4jOEDJEtpB4Cf5XkBD7qfFqnXNIvhh8DYmc6fIIoeHs4lTxFGKHLBLBI7PZQsPK hSvKM67FCXJr6Q/lWunPkMWOKbpP++WteCf9H46K4QfIOaqlYsP2AEEEqT7aW4M8 mzB/BfiKE3Ik9+61RHGzwLStA09mDfjHRsaKzkAdd3BgNQ5YoSI1rx7EGmAQRG+l FZOULi642x+L12/kx3LjA==
X-ME-Sender: <xms:YlO_Y3HaeclnROEKiJvw2BNaL1_829ZO4491ZsWuZ7kqEClDvdyjeA> <xme:YlO_Y0WkRekig0Q3EHli_wZ6WUZMqOD7c-9QHSDljbkxAy1qxWXqObfZKE7sMHa6j ksbrP2M0xMnpXZ0Wg>
X-ME-Received: <xmr:YlO_Y5JHOSEx0nkMvuUi7CdQp_h8fTWdTMbNKEDyVy0blo5S6VZMQqFX8TScsDiA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrleehgddvfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfvfevfhfhufgjtgfgsehtke ertddtfeejnecuhfhrohhmpefrvghtvghrucfurghinhhtqdetnhgurhgvuceoshhtphgv thgvrhesshhtphgvthgvrhdrihhmqeenucggtffrrghtthgvrhhnpeefvdejveehudejhe fhjedtteejfffhvdejteetueevtdeivefgieduvdevudekudenucffohhmrghinhepfihh rghtfihgrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomhepshhtphgvthgvrhesshhtphgvthgvrhdrihhm
X-ME-Proxy: <xmx:YlO_Y1ERLHfzjkS5qHdSRcVTrg0dwJ0Fjgda58WYbWJ7ypXu428I7w> <xmx:YlO_Y9XpQcaFs1gA3TlIImDNqNwagstw5TXW8nrMZVH230vMDMbscA> <xmx:YlO_YwOKaGnXKscLJCCniKEx2kCTGARS4kGxPyk3VWQGTHmWRCwfYQ> <xmx:YlO_Y6h8TlJ8VPmlJUAt-qOY9i6L935wc_GKg5ynPwqNffNTOmPnog>
Feedback-ID: i24394279:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 11 Jan 2023 19:25:05 -0500 (EST)
Message-ID: <a4931dd0-fff5-7345-4f30-cffdaf9b8268@stpeter.im>
Date: Wed, 11 Jan 2023 17:25:04 -0700
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1
Content-Language: en-US
To: John C Klensin <john-ietf@jck.com>, uta@ietf.org
Cc: uta-chairs@ietf.org
References: <005b01d919ef$2c4c3410$84e49c30$@smyslov.net> <44A5714D55514EC75E1348FC@PSB>
From: Peter Saint-Andre <stpeter@stpeter.im>
In-Reply-To: <44A5714D55514EC75E1348FC@PSB>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/uta/13wmCfNyz800RYLhwtZ3KoreuN4>
Subject: Re: [Uta] Unofficial I18ndir review of draft-ietf-uta-rfc6125bis
X-BeenThere: uta@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: UTA working group mailing list <uta.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uta>, <mailto:uta-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uta/>
List-Post: <mailto:uta@ietf.org>
List-Help: <mailto:uta-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uta>, <mailto:uta-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Jan 2023 00:25:13 -0000
Hi John, Thanks for taking the time to provide feedback and my apologies for the delayed reply. Comments inline. On 12/27/22 8:21 AM, John C Klensin wrote: > Valery, > > Thanks. In skimming back through this, I noticed several typos > and evidence of editorial carelessness. The ones that might be > unclear are: > > * In (3) "other local deviations and (claimed) translation > strategies" should have been "other local deviations and > (claimed) transition strategies" > > * In (6) "IPvN, N > 6, out there, basing..." should have been > "IPvN, N > 6, out there, making..." or "IPvN, N > 6, out there, > defining...". ACK > In addition, my note assumed, I hope correctly, that WG > participants who are working with this document understand that > an arbitrary string of Unicode code points does not qualify as a > U-label. The latter requires all of the processing and validity > checking specified in the IDNA2008 documents. If anyone did > not understand that, it was the reason for the "unrestricted > Unicode strings, or even U-labels" distinction in (8)... and you > do now. Much appreciated. > --On Tuesday, December 27, 2022 15:31 +0300 Valery Smyslov > <valery@smyslov.net> wrote: > >> Hi, >> >> below is an unofficial I18NDIR review of the draft, >> performed by John Klensin (forwarded here with his permission). >> Thanks to John for doing this review. >> >> Regards, >> Valery. >> >> -----Original Message----- >> From: John C Klensin [mailto:john-ietf@jck.com] >> Sent: Monday, December 26, 2022 9:53 PM >> To: Valery Smyslov >> Cc: uta-chairs@ietf.org; ; art-ads@ietf.org; Barry Leiba >> Subject: Re: [I18ndir] I18NDIR active? >> >> (1) Given the importance of anyone intending to use a >> certificate being absolutely certain that the certificate that >> should apply is actually the certificate in hand, it seems to >> me desirable that Section 4.1 more carefully examine anything >> identified as "SHOULD" and comment on the circumstances in >> which following that rule would be inappropriate and/or the >> possible consequences of not applying it. Taken literally, §4.1 does not mandate including *any* identifier in a certificate because all ID types are "SHOULD". We might consider saying "MUST include at least one identifier" because otherwise there's nothing to match against (although it seems unlikely that any real-world CA would issue such a certificate). Point 1 states that the DNS-ID type is a baseline for interoperability, but even that can't be REQUIRED because it's legitimate for a certificate to be scoped to a particular application type via the SRV-ID or URI-ID type. We could qualify this SHOULD to reflect this reasoning. Points 2 (SRV-ID) and 3 (URI-ID) are relevant only for application protocols that specify the use of these types. Often these types would supplement the DNS-ID, unless the certificate is meant to be scoped to only the protocol in question (which is not something that the CA might know). Point 4 is discussed more fully in §7.4, which also points to RFC 9325 regarding security concerns and mitigations. (We might want to point more specifically to §3.8 and §3.9 of RFC 9325.) Point 5 opens the door to "other application-specific identifiers". In RFC 6125 we stated more specifically that such identifiers were types defined before publication of RFC 4985. The example we used in RFC 6125 was XmppAddr, but that has since been deprecated. It's unclear to me how many such application-specific identifiers are still (or were ever) in use. We might want to further qualify the text here and bring back the further context about RFC 4985. >> (2) The document makes several references to URIs, but only RFC >> 3986 appears to be referenced. In the real world in which >> certificates are established and used and in which differences >> in specifications and practices often provide opportunities for >> exploitation by would-be evildoers, there are at least two, >> probably three, URI specifications (IETF/RFC3896, WHATWG, and >> maybe W3C). Each is treated as authoritative by some Internet >> actors and they are not consistent with each other. That >> situation and its implications should be pointed out, at least >> as a Security Consideration. Hmm. There's likely value in pointing out the existence of the URL specification maintained by the WHATWG at <https://url.spec.whatwg.org/>. However, providing a detailed analysis of the differences between RFC 3986 and that "living standard" (which would be necessary in order to fully document the implications of such differences) seems out of scope for a specification about certificates. Nevertheless Rich and I will take a closer look at what might be involved and report back to the UTA WG in this thread. As to "maybe W3C", there's a plethora of pages about URLs and URIs on the W3C website, but most of them seem to point to either RFC 3986 or (eventually). >> (3) Similarly, there are, in practice, at least two different >> specifications for IDNs. While the IETF considers it obsolete, >> IDNA2003 is still referenced periodically and might constitute >> another. One of those, obviously, is as specified by RFC >> 5890ff. Another is specified, with the claim that it is a >> transition strategy but that has shown no signs in recent years >> of being used that way rather than as an alternate spec, by the >> Unicode Consortium as UTS#46 [4]. These specifications, and >> other local deviations and (claimed) translation strategies, >> are in wide use in different communities. In particular, while >> ICANN --and hence what is nominally permitted to be registered >> in the DNS near the root of tree-- at least nominally conforms >> to IDNA2008 (but has been unable to prevent some TLDs from >> registering emoji as second-level domains), WHATWG (and hence >> most or all browser vendors and implementers) have >> specification written in terms of UTS#46. The same >> considerations as in (2) above apply, only the >> incompatibilities among the specs are much greater with emoji >> in domain names being a striking difference although there are >> many more subtle cases. And, as in (2) this issue should at >> least be a Security Consideration. I fear you're right, and I also fear the scope of the work involved. As with (2) we'll need to take a closer look and report back. >> (4) Section 6.3 strongly implies that there are two types of >> domain names: the traditional, all-ASCII, variety known as the >> "preferred name syntax" in RFC 1034 Section 3.5 and IDNs. But >> it does not say that but, instead, points to RFC 1034 as a >> whole. RFC 1034 imposes no restrictions on what can be in a >> the octets that make up a label (see, e.g., Section 11 of RFC >> 2181). If you mean that the labels of the domain names you are >> considering must be IDNs, all-ASCII, or "preferred syntax" (the >> last two are different), figure out a way to say that >> explicitly. I believe that RFC 6125 and now 6125bis have had in mind "preferred name syntax", not all-ASCII (whatever the latter might mean in practice since it is much less restrictive). Pointing specifically to §3.5 of RFC 1034 should help. (And of course as you note in (3) IDN is, in practice, not a unitary construct either.) >> (5) AFAICT, the third paragraph of Section 6.3, describing IDN >> matching, is correct. You might want to say "before checking >> the domain name or comparing it with others" but that is a nit. Noted. >> (6) Under 6.4, the draft says "The iPAddress field does not >> include the IP version, so IPv4 addresses are distinguish from >> IPv6 addresses only by their length (4 as opposed to 16 >> bytes)". I don't know if that can be fixed or if this document >> would be the appropriate place to fix it, but, as long is >> there are people, companies, governments, or other entities >> out there with bright ideas about IPvN, N > 6, out there, >> basing operations on this field conditional on a heuristic >> that depends on length does not seem like a good idea. As a general rule that's true, although here we are talking (somewhat informally, I might add) about a heuristic only for IPv4 vs. IPv6, not any arbitrary IPvN where N > 6 (or N != 4 or 6). To be slightly more careful, we could say something like this: The iPAddress field does not include the IP version, so a helpful heuristic for implementors is to distinguish IPv4 addresses from IPv6 addresses by their length. >> And, >> btw, the preferred term is usually "octets" rather than >> "bytes". True. >> (7) Editorial nit: the first sentence of the penultimate >> paragraph of 6.4 isn't one. Yes, someone else already noted that, and we realized it should read: For an IP address that appears in a URI-ID, the "host" component of both the reference identity and the presented identifier must match. >> (8) If all of your processing (not just comparisons) and what >> you allow to store in certificates is based on A-labels, then >> I'm not sure what Section 7.2 means. If you allow unrestricted >> Unicode strings, or even U-labels, §6.3 does say: If the DNS domain name portion of a reference identifier is an internationalized domain name, then the client MUST convert any U-labels [IDNA-DEFS] in the domain name to A-labels before checking the domain name. In accordance with [IDNA-PROTO], A-labels MUST be compared as case-insensitive ASCII. Each label MUST match in order for the domain names to be considered to match, except as supplemented by the rule about checking of wildcard labels given below. This seemed the safest bet, since I am not sure if we can outlaw U-labels in certificates. >> in labels in certificates, >> then visual confusion by users is only one of many problems you >> invite. Indeed. >> And, even then, note, e.g., that >> trøll ( \u0074\u0072\u00F8\u006C\u006C ) >> and the identical-appearing >> \u0074\u0072\u006F\u0078\u006C\u006C >> generate different A-labels and are not a "visual confusion" >> problem as described in the cited portions of RFC 5890. UTR#36 >> (which you reference) and UTS#39 [5], especially Section 4 >> (which the document does not reference and probably should) Good point. >> are >> better in some ways, but basically point to the problems and >> possible approaches. In particular, implementing even the >> "whole script" algorithm of UTS#39 Section 4.1 (and then 5.1) >> require fairly deep understanding of whatever scripts might >> appear in the characters of any particular DNS label. That >> does not quite rise to "impossible" but is certainly well in >> the "infeasible" range, even for single-script labels, when all >> possible IDN labels are considered. Moreover, it seems highly unlikely that we could mandate such careful handling in relation to the toolchains and workflows for requesting, creating, and issuing certificates. And even if we could, the last line of defence would need to be the client software that tries to match the presented identifier(s) against the reference identifier(s). >> Again, the above is based on a very superficial reading of the >> document. It is not an official review, is not a substitute >> for one, and is almost certainly not complete. Thanks very much for providing this feedback. Once we can figure out how to address some of it, I'm sure the document will be much improved. Peter
- [Uta] Unofficial I18ndir review of draft-ietf-uta… Valery Smyslov
- Re: [Uta] Unofficial I18ndir review of draft-ietf… John C Klensin
- Re: [Uta] Unofficial I18ndir review of draft-ietf… Peter Saint-Andre
- Re: [Uta] Unofficial I18ndir review of draft-ietf… Salz, Rich
- Re: [Uta] Unofficial I18ndir review of draft-ietf… Viktor Dukhovni
- Re: [Uta] Unofficial I18ndir review of draft-ietf… Rob Sayre