1 Internet Draft Paul Hoffman
2 draft-hoffman-idn-reg-01.txt IMC & VPNC
5 Intended status: Best Current Practice (BCP)
8 A Method for Registering Internationalized Domain Names
12 This document is an Internet-Draft and is in full conformance with all
13 provisions of Section 10 of RFC2026.
15 Internet-Drafts are working documents of the Internet Engineering Task
16 Force (IETF), its areas, and its working groups. Note that other groups
17 may also distribute working documents as Internet-Drafts.
19 Internet-Drafts are draft documents valid for a maximum of six months
20 and may be updated, replaced, or obsoleted by other documents at any
21 time. It is inappropriate to use Internet-Drafts as reference material
22 or to cite them other than as "work in progress."
24 The list of current Internet-Drafts can be accessed at
25 http://www.ietf.org/ietf/1id-abstracts.txt
27 The list of Internet-Draft Shadow Directories can be accessed at
28 http://www.ietf.org/shadow.html.
33 This document describes some suggested practices for registering
34 internationalized domain names (IDNs) in a zone. Before accepting
35 registrations of domain names into a zone, the zone's registry should
36 decide which codepoints in the Unicode character set the zone will
37 accept. The registry should also decide whether particular characters in
38 a registered domain name should cause registration of multiple
39 equivalent domain names; these domain names might be added to the zone
40 or blocked from registration. This document also describes how to handle
41 character variants in registering IDNs, and how to publish tables that
42 list the character variants.
47 IDNA [IDNA] specifies an encoding of characters from the Unicode
48 character set [UNICODE] which is backwards-compatible with the current
49 definition of hostnames. This implies that domain names encoded
50 according to IDNA will be able to be transported between peers using any
51 existing protocol, including DNS.
53 IDNA, through its requirement of Nameprep [NAMEPREP], uses tables that
54 are based only on the characters themselves; no attention is paid to the
55 intended language (if any) for the domain name. However, for many domain
56 names, the intended language of one or more parts of the domain name
57 actually does matter to the registry for the names and to users.
59 If there are no constraints on registration in a zone, people can
60 register characters that increase the risk of misunderstandings,
61 cybersquatting, and other forms of confusion. A similar situation exists
62 despite the introduction of IDNA exemplified by domain names such as
63 example.com and examp1e.com (note that the latter domain contains the
64 digit "1" instead of the letter "l").
66 For some human languages, there are characters and/or strings that have
67 equivalent or near-equivalent usages. If someone is allowed to register
68 a name with such a character or string, the registry might want to
69 automatically associate all the names that have the same meaning with
70 the registered name. The registry can also decide if the names that came
71 from one registration should go into the zone, be blocked from other
72 people registering them, or a combination of these two actions.
74 This document describes three things:
76 - suggested practices for describing character variants
78 - a method for using a zone's character variants to determine which
79 names should be associated with a registration
81 - a format for publishing a zone's table of character variants
83 [IDN-CJK] offers a somewhat different proposal to the problem of
84 registration policy. That document uses a different registration
85 philosophy than what is described here, and is focused on a small number
90 [[ Need to outline what is presented in the proposal. Include:
92 - registration bundles keyed on the base registration
96 - some names are in the zone, others only block
98 - does not prohibit human processing, but does not encourage it
100 - tables based on languages
105 This document does not deal with how to handle whois data for associated
106 registrations, and does not deal with registrar-registry protocols.
107 These topics are likely to be of great importance to registries and
108 registrants, and should be dealt with in other documents.
110 This document deals directly only with variants of single characters,
111 not variants of strings (although variants themselves can be strings).
112 Thus, the methods described here is not be sufficient to help all
113 languages. Registries which cover languages where it would make
114 linguistic sense to create variants from strings should define their own
117 The procedures described here do not take into account mapping that is
118 dependant on the position of characters in a domain name. Many languages
119 (such as Hebrew and Greek) have rules that would cause different
120 variants to be used based on whether a character appears at the
121 beginning or end of a word, or whether a character appears next to a
122 specific character. Adding rules for these kinds of mappings are
123 possible, but difficult. Not only would the table format need to be
124 expanded to deal with positional variants, the order in which the
125 characters are tested for whether they create variants would also have
130 Characters in this document are given as their Unicode codepoints on
131 U+xxxx format or with their official names.
133 The following terms are used in this document.
135 A "string" is an sequence of one or more characters.
137 This document discusses characters that have equivalent or
138 near-equivalent characters or strings. The "base character" is the
139 character that has one or more equivalents. The "variant(s)" are the
140 character(s) and/or string(s) that are equivalent to the base character.
141 Note that these might not be true equivalent characters: a base
142 character might have a mapping to a particular variant character, but
143 that variant character does not have to have a mapping to the base
146 The "base registration" is the single name that the registrant requested
149 A "registration bundle" is the set of all labels that comes from
150 expanding the base characters for a single name into their variants.
152 A "registry" is the administrative authority for a DNS zone. That is,
153 the registry is the body that makes and enforces policies that are used
154 in a particular zone in the DNS.
157 2. Starting to add IDNs to a zone
159 There are four primary considerations when adding IDNs to a zone:
161 - Which characters should be allowed to be registered
163 - If any of the characters that are allowed to be registered have
164 variants that should affect the registration process
166 - How registration bundles are created and maintained
168 - If there are registration bundles, how they will affect the zone
169 itself and future registrations
171 2.1 Choosing characters that may be registered
173 A zone has to decide which characters are allowed to be registered.
174 Before IDNA was standardized, the only characters allowed were the ASCII
175 letters, digits, and the hyphen character. With IDNA, that list is much
178 The first decision for a zone is whether or not they want to allow
179 IDNA-based labels. If not, they can simply prohibit any label that
180 begins with the IDNA ACE prefix "xn--". Zones with this policy can
181 safely ignore the rest of this document.
183 If a zone decides to allow IDNA-based labels, it needs to decide which
184 characters are allowed to be registered. It further needs to decide
185 which characters are allowed to be in the zone, and which characters can
186 be registered but not appear in the zone.
188 Some options for what zones will want to include are:
190 - the ASCII characters plus just enough characters to represent just one
193 - just enough characters to represent a small number of languages
195 - enough characters to represent many languages
197 - any character allowed by IDNA
199 The decision on what to include may be influenced by administrative
200 issues for the zone, such as languages that are normally associated with
201 the zone, or agreements that the zone has made with governmental bodies
202 or other organizations. For example, ICANN has a set of rules on how
203 some top-level domains must act with respect to IDNs [ICANN-IDN]. A zone
204 does not need to declare which languages it does or does not allow in
205 the names in its zone, but making such a declaration makes it clearer to
206 registrants what characters the zone does and does not allow.
208 It is strongly recommended that a registry act conservatively when
209 starting accepting IDNA-based domain names, even if the registry does
210 not use the ideas described in this document. Registries should start
211 with the smallest number of characters as possible to represent the
212 needs of the zone's registrants. If a registry follows the advice in
213 this document, more characters can be added to the zone later, but once
214 characters are labels that are in a zone, they cannot be removed without
215 causing a lot of administrative problems. The most notable problem with
216 making some characters not allowed in names is that a registry could be
217 forced to remove actively-used names from its zone, thereby causing
218 instability for users of the zone and angering the names' owners.
220 2.2 Choosing variants
222 The area of character variants is rife with problems. There is no
223 universal agreement about which base characters have variants, or if
224 they do, what those variants are. For example, in some regions of the
225 world and in some languages, LATIN SMALL LETTER O WITH DIAERESIS and
226 LATIN SMALL LETTER O WITH STROKE are variants of each other, while in
227 other regions, most people would think that LATIN SMALL LETTER O WITH
228 DIAERESIS has no variants. In some cases, the list of variants is
229 difficult to enumerate. For example, it has taken years for the Chinese
230 language community to create variant tables for use in IDNA, and the
231 tables are not widely-accepted at the time of this writing.
233 Thus, the first thing a registry should ask is whether or not any of the
234 characters that they want to use have variants. If not, the registry's
235 work is much simpler. This is not to say that a registry should ignore
236 variants if they exist: adding variants after a registry has started to
237 take registrations is nearly as difficult administratively as removing
238 characters from the list of acceptable characters. That is, if a
239 registry later decides that two characters are variants of each other,
240 and there are actively-used names in the zones that differ only on the
241 new variants, the registry might have to transfer ownership of one of
242 the names to a different owner.
244 The list of character variants used in a zone should be stable. Although
245 it is possible to add variants for characters later, doing so can cause
246 confusing with registrants.
248 Of course, zone managers should inform all current registrants when the
249 registration policy for the zone changes. This includes when IDN
250 characters are allowed in the zone the first time, when characters are
251 added later, and when character variant tables change.
253 In many languages there are two variants for a character, but one
254 variant is strongly preferred. A registry might only allow the base
255 registration in the preferred form, or it might allow any form for the
256 base registration. If the variant tables are created carefully, the
257 resulting bundles will be the same, but some registries will give
258 special status to the base registration such as its appearance in whois
261 2.3 Creation and maintenance of registration bundles
263 Another ramification of having variants is that they will cause zones to
264 have bundles of names. Describing registration bundles to typical
265 registrants will be a very difficult task. (Many current registries have
266 a hard time explaining to registrants what they can or cannot do with
267 their single registrations.) It is likely that registrants can better
268 understand this by having the bundle be identified by the base
271 A registration bundle must be maintained as a single unit. This is not
272 to say that each names in a bundle is treated the same, but that the
273 administration of each name should be done in the context of the entire
274 bundle. Different names in a bundle should not have different
277 Adding additional IDN characters to a zone where some or all labels in a
278 registration bundle are resolved in the zone. A registrant who had a
279 single name could become the owner of group of names, and would be
280 expected to manage that group of names according to the zone's policies.
281 Because managing a group of names is inherently more difficult than
282 managing a single name, zone administrators need to avoid creating new
283 rules that would force current registrants to change the way the manage
286 2.3.1 Overlapping registration bundles
288 Depending on how the registry creates its tables, it is possible for
289 registration bundles to overlap, meaning that two different people own
290 rights to a name. This can cause significant problems for the registry
291 in explaining to users what their rights are for names that contain
292 variants of the name they registered.
294 Clearly, a registrant cannot register a name that already exists as the
295 base registration for another bundle. However, a registrant can register
296 a name which has a variant that exists in the bundle of an existing
297 registration. That is, bundles can have names that are the same, but the
298 zone can never have two different entries for the same name.
300 The basic registration rule for most zones is "first come, first served
301 unless the registration is misleading". That rule should probably be
302 extended to the names in a registration bundle. That is, the first
303 registrant whose bundle contains a name gets to have rights over that
304 name. Because of this, the registry must associate a registration date
307 When a second bundle is created that contains a variant name that
308 already exists in an earlier bundle, the registry can inform the new
309 registrant that not all of the names in its bundle are usable in the
310 same fashion. Further, if the registrant of the first bundle allows its
311 registration to expire while the second bundle still exists, the owner
312 of the second bundle gains control over the overlapping names which
313 before were controlled by the owner of the first bundle.
315 2.4 Choosing how to use variants
317 A registry has three options for how to handle the case where the
318 registration bundle has more than one label. The policy options are:
320 1) Resolve all labels in the zone, making the zone information identical
321 to that of the registered label.
323 2) Block all labels other than the registered label so they cannot be
324 registered in the future.
326 3) Resolve some labels and block some other labels.
328 In all cases, at least the registered label should appear in the zone.
329 It would be almost impossible to describe to name owners why the name
330 that they asked for is not in the zone, but some other name that they
333 2.4.1 Advantages and disadvantages of the options
335 Option 1 will cause end users to be able to find names with variants
336 more easily, but will result in larger zone files. For some language
337 tables, the zone file could become so large that it could negatively
338 affect the ability of the registry to perform name resolution. If the
339 base registration contains several characters that have equivalents, the
340 owner could end up having to take care of large number of zones. For
341 instance, if DIGIT ONE is a variant of LATIN SMALL LETTER L, the owner
342 of the domain name all-lollypops.example.com will have to manage 32
345 Option 2 does not increase the size of the zone file, but it may cause
346 end users to not be able to find names with variants that they would
347 expect. If the base registration contains characters that have
348 equivalents, Internet users who don't know what the base characters used
349 in the registration will not know what character to type in to get a DNS
350 response. For instance, if DIGIT ONE is a variant of LATIN SMALL LETTER
351 L, and LATIN SMALL LETTER L is a variant of DIGIT ONE, the user who sees
352 "pale.example.com" will no know whether to type a "1" or a "l" after the
353 "pa" in the first label.
355 Option 3 is likely to cause the most confusion with users because
356 including some variants will cause a name to be found, but using other
357 variants will cause the name to be not found. For example, even if
358 people understood that DIGIT ONE and LATIN SMALL LETTER L were variants,
359 a typical DNS user wouldn't know which character to type because they
360 wouldn't know whether this pair were allocating variants or blocking
361 variants. However, this option can be used to balance the desires of the
362 name owner (that every possible attempt to enter their name will work)
363 with the desires of the zone administrator (to make the zone more
364 manageable and possibly to be compensated for greater amounts of work
365 needed for a single registration).
367 2.4.2 Operational characteristics
369 With any of these three options, the registry must keep a database that
370 links each label in the registration bundle to the base registration.
371 This link needs to be maintained so that changes in the non-DNS
372 registration information (such as the label's owner name and address) is
373 reflected in every member of the registration bundle as well.
375 If the registry chose option 1, when the zone information for the base
376 registration changes, the zone information for all the members of the
377 registration bundle must change in exactly the same way. The zone
378 information for every member of the registration bundle must remain
379 identical as long as any of the members of the registration bundle
380 remain in the zone. A registry can keep the zone information for the
381 registration bundle identical using a database, or using DNAME records,
382 or using a combination of the two.
384 If the registry chose option 2, when the zone information for the base
385 registration changes, the blocked information for all the members of the
386 registration bundle must be identical to that of the base registration,
387 and must remain identical as long as the base registration remains in
388 the zone. A registry can keep the zone and blocked name information for
389 the registration bundle identical using a database.
391 If the registry chose option 3, it must use an unspecified method to
392 keep the elements in the registration bundle cohesive. Because of the
393 administrative difficulty involved, this option must only be used under
394 carefully-controlled circumstances. Further, the rules for which names
395 in the bundle appear in the zone and which are blocked must be explained
396 to name owners. It is particularly important to explain the
397 ramifications of overlapping registration bundles, if the registry's
398 variant policies allow their creation.
401 3. Language-based tables
403 The registration strategy described in this document uses a table that
404 lists all characters allowed for input and any variants of those
405 characters. Note that the table lists all characters allowed, not only
406 the ones that have variants.
408 Each table is specific to a single language or a specified group of
409 languages. Although a multi-language table can be produced, it may be
410 simpler to keep each table language-specific and only use the table for
411 the language of the desired registration. For example, it is probably
412 easy to create a single table that would handle both Japanese and
413 French; it would probably be much harder to create a single table that
414 would handle both Arabic and Persian.
416 It is widely expected that there will be different tables for a single
417 language or group of languages created by different people. Many
418 languages are spoken in many different countries, and each country might
419 have a different view of which characters should or should not be
420 considered needed for that language. For example, some people would say
421 that the Latin characters are needed for various Indic languages, while
422 others would say that they are not.
424 A table that covers a wide variety of languages will probably allow a
425 much wider range of characters to be used in names. At the same time,
426 that table cannot easily use character variants because variants for one
427 language will be different from the variants used in a different
428 language. To handle conflicting variants among languages, the registry
429 can choose to have no variants for any base characters, or can choose to
430 have variants for a subset of the languages that are expressible in the
433 The set of processing rules for a language has to be carefully crafted
434 so that all expected variants will be created, and no unexpected
435 variants are created. The procedure in this document assumes that the
436 zone uses just one table when registering a particular name, but a set
437 of tables that are searched in a specified order can be treated like a
438 larger table with a processing order.
440 3.1 Intended language for a registration
442 In order to use a language-based table for processing, the registry has
443 to know the language of the name being registered. This information
444 could come by asking the registrant, or by the fact that a registry has
445 rules that only allows a single language. However, the requirement of
446 knowing the intended language leads to a very difficult problem: many
447 valid domain names have no inherent language. Examples of domain names
448 that do not have a language include:
450 - trade names and family names
452 - names that are acronyms, all-numeric or a combination of the two
453 ("jln", "3000", "jln3000")
455 - names that purposely have more than one language in them
458 - proper names that are made up ("glowow")
461 4. Registration procedure
463 This procedure has three inputs:
465 - the proposed base registration
467 - the language for the proposed base registration
469 - the processing table associated with that language
471 The output of the process is either failure (the base registration
472 cannot be registered at all), or a registration bundle that contains one
473 or more labels ( always including the base registration). As described
474 earlier, the registration bundle should be stored with its date of
475 creation so that issues with overlapping elements between bundles can
476 later be resolved on a first-come, first-served basis.
478 There are two steps to processing the registration:
480 1) Check whether the proposed base registration exists in any bundle. If
481 it does, stop immediately with a failure.
483 2) Process the base registration with the CreateBundle process described
486 Note that the process must be executed only once. The process must not
487 be run on any output of the process, only on the proposed base
490 4.1 Human intervention in registration
492 Some registries will want registration to be completely automatic, that
493 is, with no human intervention. Other registries will want to have human
494 intervention (or at least checking) of registrations. For example, if a
495 registry has a rule that registration cannot have harmful words, that
496 registry needs to have a human check each registration. Another example
497 where human intervention would be needed is a registry that allows
498 multiple languages in its zone but does not trust the registrants to say
499 the intended language of a registration.
501 A table should not have more than one entry for a particular base
502 character. A table with more than one variant rule for the same base
503 character requires that some names be evaluated by humans and will open
504 the registration process to dispute. Such human intervention in the
505 registration process may be unavoidable for some languages or for some
506 registries, but it should be avoided if there is a desire for
507 predictability in the registration process.
509 The description below does not specify where human intervention would
510 happen because there are so many possibilities, based on the type of
511 checking that a registry might want. It makes sense that a check might
512 be made before step 1 or step 3 to be sure that the base registration
513 meets any semantic rules for the zone, and that the intended language is
514 in fact appropriate for the base registration. Some registries might
515 also want another set of checks after step 5 to be sure that all the
516 entries in the bundle are semantically appropriate for the zone. For
517 example, if a zone prohibits mixed-script registrations, that check
518 should be made both before step 1 (to check the base registration) and
519 after step 5 (to check whether the variant-creation step created any
520 mixed-script items in the bundle).
522 4.2 Description of CreateBundle
524 The CreateBundle process determines if a registration bundle can be
525 created and, if so, fills that bundle only with valid labels.
527 During the processing, an "temporary bundle" contains partial labels,
528 that is, labels that are being built and are not complete labels. The
529 partial labels in the temporary bundle consist of strings.
531 The steps in the CreateBundle process are:
533 1) Split the base registration into individual characters, called
534 "candidate characters". Compare every candidate character against the
535 base characters in the table. If any candidate character does not exist
536 in the set of base characters, the system must stop and not register any
537 names (that is, it must not register either the base registration or any
538 labels that would have come from character variants).
540 2) Perform the steps in ToASCII for the base registration. If ToASCII
541 fails for the base registration, the system must stop and not register
542 any of the label (that is, it must not register either the base
543 registration or any created labels, even if those labels would have
544 passed ToASCII). If ToASCII succeeds, add the result to the registration
547 3) For every candidate character in the base registration, do the
550 3a) Create the set of characters that consists of the candidate
551 character and any variants.
553 3b) For each character in the set from step 3a, duplicate the
554 temporary bundle that resulted from the previous candidate character,
555 and add the new character to the end of each partial label.
557 4) The temporary bundle now contains zero or more labels that consist of
558 Unicode characters. For every label in the temporary bundle, do the
561 4a) Process the label with ToASCII to see if ToASCII succeeds. If it
562 does, put the label into the registration bundle. Otherwise, do not
563 process this label from the temporary bundle any further; it will not
564 go into the registration bundle.
566 5) The resulting registration bundle with the base registration and
567 possibly other labels. Finish.
569 4.3 Example of expansion of a base registration into a bundle
571 [[ Need at least one worked-through example of step 3 with interesting
572 variant situations ]]
577 The format of the table is meant to be machine-readable but not
578 human-readable. It is fairly trivial to convert the table into one that
579 can be read by people.
581 Each character in the table is given in the "U+" notation for Unicode
582 characters. The lines of the table are terminated with either a carriage
583 return character (ASCII 0x0D), a linefeed character (ASCII 0x0A), or a
584 sequence of carriage return followed by linefeed (ASCII 0x0D 0x0A). The
585 order of the lines in the table may or may not matter, depending on how
586 the table is constructed.
588 Each line in the table starts with the character that is allowed in the
589 registry, which is also called the "base character". If the base
590 character has any variants, it is followed by a vertical bar character
591 ("|", ASCII 0x7C) and the variant string. If the base character has more
592 than one variant, the variants are separated by a colon (":", ASCII
593 0x3A). Strings are given with a hyphen ("-", ASCII 0x2D) between each
596 The following is an example of how a table might look. The entries in
597 this table are purposely silly and should not be used by any registry as
598 the basis for choosing variants. For the example, assume that the
600 - allows the FOR ALL character (U+2200) with no variants
601 - allows the COMPLEMENT character (U+2201) which has a single variant
602 of LATIN CAPITAL LETTER C (U+0043)
603 - allows the PROPORTION character (U+2237) which has one variant which
604 is the string COLON (U+003A) COLON (U+003A)
605 - allows the PARTIAL DIFFERENTIAL character (U+2202) which has two
606 variants: LATIN SMALL LETTER D (U+0064) and GREEK SMALL LETTER DELTA
609 The table would look like:
615 Implementors of table processors should remember that there are tens of
616 thousands of characters whose codepoints are greater than 0xFFFF. Thus,
617 any program that assumes that each character in the table is represented
618 in exactly six octets ("U", "+", and exactly four octets representing
619 the character value) will fail with tables that use characters whose
620 value is greater than 0xFFFF.
624 The following shows examples of the first two of the registry's options
625 as described in Section 2.4 (putting all labels in the zone; putting
626 only the base registration in the zone and blocking the rest). The third
627 option (resolving some labels but blocking others) is an extension of
628 these two and is not shown here.
630 The examples assume that the registry for the zone example.com uses the
631 following very short table, which says that LATIN SMALL LETTER L
632 (U+006C) has a single variant, DIGIT ONE (U+0031).
636 A registrant approaches the zone and requests a registration for the
637 name pale.example.com, for which there are two name servers
638 (x.example.com and y.example.com). After processing the base
639 registration "pale", the registration bundle contains "pale" and "pa1e".
641 6.1 Example 1: allocating multiple labels
643 Assume that the registry for the zone example.com uses option 1
644 (allocating multiple labels) as its registration policy.
646 The registry allocates pale.example.com and pa1e.example.com to the
647 registrant. The registry also creates a link in its registration
648 database from pa1e.example.com to pale.example.com so that any changes
649 to either the non-zone information or the zone information for one name
650 will be reflected in the other name.
652 The registry adds the following four records to the example.com zone:
655 pale IN NS x.example.com.
656 pale IN NS y.example.com.
657 pa1e IN NS x.example.com.
658 pa1e IN NS y.example.com.
660 Note that the registry might instead use DNAME records for allocating
661 labels. If the registry uses DNAMEs, the registry would instead add
662 the following three records to the example.com zone:
665 pale IN NS x.example.com.
666 pale IN NS y.example.com.
667 pa1e IN DNAME pale.example.com.
669 An end user who requests the name server for pa1e.example.com will get a
670 positive response with the correct information.
672 6.2 Example 2: blocking labels
674 Assume that the registry for the zone example.com uses option 2
675 (blocking labels) as its registration policy.
677 The registry allocates pale.example.com to the registrant and blocks
678 pa1e.example.com from being registered by anybody. The registry also
679 creates a link in its registration database from pa1e.example.com to
680 pale.example.com so that any changes to the non-zone information for
681 pale.example.com will be reflected in the blocked name.
683 The registry adds the following two records to the example.com zone:
686 pale IN NS x.example.com.
687 pale IN NS y.example.com.
689 An end user who requests the name server for pa1e.example.com will get a
690 response of "no such name".
693 7. Owner implications of multiple labels
695 The creation of a registration bundle for equivalent or near-equivalent
696 labels in a zone at the time of registration leads to many delegations.
697 This leads to records in parallel zones which must be synchronized. That
698 is, the owner of a registration bundle must keep the same information in the
699 zone for each label in the bundle.
701 Using the examples from Section 6, assume that the owner of the label
702 "pale" and "pa1e" creates a subdomain, "www". If the owner of
703 "example.com" used multiple delegations for the labels, the owner of
704 "pale" and "pa1e" would use two records:
706 $ORIGIN pale.example.com.
709 $ORIGIN pa1e.example.com.
712 An alternative for these two records, which helps the registrant
713 keep their names in synch, would be:
715 $ORIGIN pale.example.com.
718 $ORIGIN pa1e.example.com.
719 www IN CNAME www.pale.example.com.
721 If the owner of "example.com" used a DNAME record to make "pale" and
722 "pa1e" equivalent, the owner of "pale" and "pa1e" could instead use one
725 $ORIGIN pale.example.com.
729 8. Security considerations
731 Apart from considerations listed in the IDNA specification, this
732 document explicitly talks about rules that a registry can define as part
733 of the policy which can be applied in a zone. A registry can apply an
734 variants table which solves some problems with homographs already
735 outlined in the security consideration section of IDNA. This might be
736 considered good for security because it will reduce the possible
737 confusion for the user, and lower the risk that the user will "connect"
738 to a service which was not intended.
740 Poorly-designed tables can cause security problems. For example, if a
741 table creates variants for base characters that are not really variants,
742 and names using those incorrect variants are allocated in the zone, an
743 unsuspecting end user will get unexpected positive answers to DNS
744 queries. For example, if the base character "a" has a variant of "e",
745 and those variants are allocated in the zone, a user who looks up
746 "bed.example.com" will get the information for "bad.example.com", even
747 though the user could easily see that these two labels are different.
749 Users will likely expect that variants will be the same in zones and may
750 make assumptions based on those expectations. However, the variants and
751 how they are used will probably be different between zones, even for two
752 zones that use the same language. This could lead to spoofing users by
753 registering names that leverage the differences in rules between the
759 9.1 Normative References
761 [IDNA] Faltstrom, P., Hoffman, P. and A. Costello, "Internationalizing
762 Domain Names in Applications (IDNA)", RFC 3490, March 2003.
764 [NAMEPREP] Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep Profile
765 for Internationalized Domain Names (IDN)", RFC 3491, March 2003.
767 [UNICODE] The Unicode Consortium. The Unicode Standard, Version 3.2.0
768 is defined by The Unicode Standard, Version 3.0 (Reading, MA,
769 Addison-Wesley, 2000. ISBN 0-201-61633-5), as amended by the Unicode
770 Standard Annex #27: Unicode 3.1 (http://www.unicode.org/reports/tr27/)
771 and by the Unicode Standard Annex #28: Unicode 3.2
772 (http://www.unicode.org/reports/tr28/).
774 9.2 Non-normative References
776 [ICANN-IDN] ICANN, "Deployment of Internationalized Domain Names",
777 <http://www.icann.org/announcements/announcement-20jun03.htm>
779 [IDN-CJK] "Internationalized Domain Names Registration and
780 Administration Guideline for Chinese, Japanese, and Korean",
781 draft-jseng-idn-admin.
784 10. IANA considerations
786 There are no IANA considerations for this document. The tables described
787 in this document can be created by anyone. Tables at IANA are often
788 considered to be authoritative, but languages have no one who is
789 authoritative for them. It is unclear what value, if any, there is for
790 someone to know what table a particular zone says it is using for
791 registration. Further, the tables are expected to be updated at
792 irregular times as new characters are added to the list of acceptable
793 characters. Therefore, it is probably unwise for IANA to keep a registry
800 Internet Mail Consortium and VPN Consortium
802 Santa Cruz, CA 95060 USA
808 Should we even talk about DNAMEs? Do they make enough sense technically
809 and operationally for them to be deployed today?
811 What more can we say about human intervention in the processing that
812 will help registries that are dealing with difficult languages or
815 Need to have a nice, readable overview in Section 1.1.
817 Need to have a complex, fully-worked-out example in Section 4.3