North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: Non-English Domain Names Likely Delayed

  • From: Neil Harris
  • Date: Tue Jul 19 15:21:59 2005

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