[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [idn] Interactions between short-term and long-term




Patrik wrote:

>>Consider, for example, franXais.com, but with c-cedilla in place of X.
>>Someone registers the ACE version of this. We make the huge changes
>>required for ACE. Users can then send mail to franXais.com.
>
>Consider another example where a user is using an existing software 
>which doesn't do nameprep, and tries to send email to a user in a 
>domain which include a character which is changed because of 
>nameprep, what then happens?
>

It works without problems. Both DNS-servers and e-mail MTAs understand how
to compare domain names.

Patrik is right in saying that DNS is not the only place where
domain names must be compared and therefore not the only place where
knowledge how to match domain names must exist.
Even existing software of today do not do this correctely. A domain name
must be matched case insensitivly, but a lot of programs (Unix have a lot
of them) do not.

But everybody do not have to understand "nameprep"!!

The basics for interoperability of text data is to agree on character
to code point mapping and normalisation. And normalisation means to
use ONE representation of a character instead of like Unicode allow
many variations. A good base would be UCS normalised using Unicode
form C (or maybe KC).
All programs should use this, otherwise interoperability will fail.

Within text data some parts will be host names, domain labels or other
DNS data. You cannot restrict input on these parts not mangle the
characters (like converting to lower case). Just think of a text editor
where it recognises I am typing a host name in the middle of some text
and starts messing around. No, the basic text input can do normalisation
but not full "nameprep". And when I edit a zone file, it will not have
"namepreped" names. It will be in normal text data format. It is the
responsibility of the DNS server to reject loading of names that
have illegal characters (though I do not know how it is going to
know what names are host names) and to apply "domain name matching rules"
when comparing domain names. A DNS server should not mangle the names
by doing forced conversion to lower case. If every program knows
"nameprep" they will know how to match names.

If we really want the world to get an easy start on interoperability
on text data, we should at protocol level use something like
UCS normalised using form C and encoded using UTF-8 (or UCS-2 or UCS-4).
And the for DNS use, define a standard library that can be used in both
DNS servers and in clients that can take a name in normalised text form
and compare them. Doing like "nameprep" wants, by converting a name
into a representation that can be used compare domain names by
binary matching, is totally wrong for me. In a way it is like
the ACE versus UTF-8 debate, ACE and "nameprep" introduces a special
form on text intermixed with normal formatted text.

   Dan