[82481] in North American Network Operators' Group
Re: Non-English Domain Names Likely Delayed
daemon@ATHENA.MIT.EDU (Neil Harris)
Tue Jul 19 15:21:16 2005
Date: Tue, 19 Jul 2005 20:20:41 +0100
From: Neil Harris <neil@tonal.clara.co.uk>
To: crist.clark@globalstar.com
Cc: Iljitsch van Beijnum <iljitsch@muada.com>,
NANOG <nanog@merit.edu>
In-Reply-To: <42DD36A1.9020507@globalstar.com>
Errors-To: owner-nanog@merit.edu
Crist Clark wrote:
>
>
> If the homograph problem isn't too hard, yeah, fix it. If it is hard,
> it may not be worth it. From what I know, this isn't easy, but
> technically, not impossible.
Yes. It's _really_ not difficult to fix, particularly for domains which
also enforce a single-script-per-label rule and apply bundling using a
homograph table, or support only a single language character set.
> However, it seems rather expensive to
> implement to me, since it requires buy-in from lots of independent
> groups, and if one group decides not to play, it really screws up
> the whole works.
>
And this is what is nice about the Moz/Opera fix: it scales on a
per-registry basis, so that registries who don't buy in get their IDN's
appearing as Punycode in about 10-15% of web browsers (and rising!),
possibly more if other browser vendors adopt the same solution, creating
commercial pressure on them from their customers.
And users of those browsers still don't get spoofed by the
non-cooperators: they will just see Punycode.
In many cases, a registrar can solve the problem by putting a few words
on their site describing their existing policy, and sending a single E-mail.
In more general cases, something like the following should be quite
effective:
* Add a single extra DB field to their internal database
* Add about 100 lines of code to their registration interface, the guts
of which are on the lines of:
if contains_mixed_scripts(new_label):
return reject_application("labels may only have letters from a
single script")
if sql_lookup("SELECT * FROM REG_TABLE WHERE NORM_LABEL = %s AND
PARENT_DOMAIN = %s", homograph_normalize(new_label, parent_domain)):
return reject_application("this label looks too similar to an
existing label in the same parent domain")
# Otherwise...
really_register_new_label(parent_domain, label,
homograph_normalize(new_label), other_data)
return accept_application("your label has been registered")
-- Neil