Re: U-labels and draft-obispo-epp-idn-00

Andrew Sullivan <[email protected]>
Newsgroups gmane.ietf.provreg
Message-ID <[email protected]>
On Wed, Feb 15, 2012 at 05:58:50AM +0100, Patrik Fältström wrote:
> 
> In this case, what the client should send is _not_ a U-label. You know better than anyone else what an A-label and U-label is, and you give examples below on unicode strings that are passed around that are not U-labels. Remember that there is by definition a 1:1 mapping between A-labels and U-labels.
> 

The examples I gave are not U-labels, no.  But they're Unicode forms
of IDNA2003-compliant systems that happen to generate Punycode forms
that are perfectly good A-labels.  If I got a candidate U-label that
didn't match the A-label, I could detect this.  If I just get the
A-label, I can't.

> And the question is then what to do if it is the case that:
> 
> 1. That unicode string is passed to the registry
> 
> 2. The registry do not believe that unicode string can be represented by the A-label that is also sent
> 

If I ran the circus, this would be a fatal error for the
registration.  Moreover, RFC 5891, section 4.2.1, agrees with me:

   If both the U-label and A-label forms are available, the registry
   MUST ensure that the A-label form is in lowercase, perform a
   conversion to a U-label, perform the steps and tests described below
   on that U-label, and then verify that the A-label produced by the
   step in Section 4.4 matches the one provided as input.  In addition,
   the U-label that was provided as input and the one obtained by
   conversion of the A-label MUST match exactly.  If, for some reason,
   these tests fail, the registration MUST be rejected.

> > In the case where the U-label contained "ß", the chances are at the
> 
> > very least non-zero, at least today and for the near future: last I
> > checked (about 30 seconds ago) libidn2 isn't in the Debian stable
> > distribution, just for instance.  Similarly with ZWNJ and ZWJ.
> 
> So, the reason why we want to do this is to ensure there is no bug in the libraries used by various parties?

There's no _bug_ in libidn when it maps ß to ss.  That's what it's
supposed to do.  Moreover, if the input string was (say) üß, then the
result would in fact be a Punycode-form IDNA2003 string that happened
also to be an IDNA2008 A-label.  It just wouldn't be the right one,
because in IDNA2003 üß becomes üss before the Punycode
transformation.  The point of requiring the U-label is to be able to
catch this sort of corner case.

In complicated typographic systems like Arabic this is loads worse,
because not only are ZWNJ and ZWJ mapped away in IDNA2003, but many
people won't be able to see that.  But a machine could spot it and
throw an error.

Best,

A

-- 
Andrew Sullivan
[email protected]
_______________________________________________
provreg mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/provreg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.