Re: IDNA section 3.1 requirement 3
James Seng <[email protected]> Fri, 18 Mar 2005 05:45:49 +0800
| Newsgroups | gmane.ietf.idn |
|---|---|
| Message-ID | <[email protected]> |
I agree that that the discussion on how to represent the IDNs correctly to the users on the apps is very important given the recently spoofing attack. I am also concern about "standardizing" how applications should flag out IDN or determine dangerous IDNs etc. I dont see why we need standardization in this area when we never really standardize the "lock icon" for https or etc. Instead, I think we should let market force work this out, and lets apps developers innovates on how to display these IDN properly. OTOH, I think it is useful to document the considerations. Does this confuse anyone? -James Seng On 17-Mar-05, at PM 11:37, Mark Davis wrote: > I agree with John. Use of the raw punycode in place of the represented > characters will cause more user confusion, not less. User sees: > > xn--tlralit-byabbe.fr versus xn--tlralit-byabb390f.fr > > Presented with a collection of apparently random letters, eyes quickly > glaze > over, and people really can't distinguish between two names in any > sensible > fashion. Users are not going to memorize which gobbledygook is the one > they > want. And this is, over course, vastly magnified once you are outside > of > Latin script IDNs. > > While I agree on the need to present some mechanism for distinguishing > cases > (see tr36), raw punycode is not a good choice. It would even be better > to > present raw IP addresses (not that I am really suggesting that). > > Mark > > ----- Original Message ----- > From: "John C Klensin" <[email protected]> > To: "IETF idn working group" <[email protected]> > Sent: Wednesday, March 16, 2005 15:43 > Subject: Re: [idn] IDNA section 3.1 requirement 3 > > >> Adam, >> >> I see where you are going here, but, to some considerable >> extent, I think it is a waste of time or worse. >> >> Please take a step back from looking at coding, disclaimers, and >> this type of recommendation and put yourself into the place of >> the application developer who, other than the registrars and >> registries, is the market for the IDNA technology. Those >> application developers, at least the ones who intend to survive, >> are quite sensitive to user reactions: users who are unhappy >> with user interfaces tend to have thoughts about going >> elsewhere. The IETF has, for years, avoided getting involved >> with user interface design for many reasons; being the source of >> that unhappiness is one of the reasons. >> >> You are now proposing to transform an IDNA rule that, given >> contemporary operating system and display designs, was >> essentially meaningless (but harmless) into a fairly complex set >> of rules. If the current rule contracted the experience >> application designers wanted to deliver to their users, they >> would ignore it... and have been doing so. If the new rule is >> at variance with the target experience, it, too, will be ignored. >> >> Let's look at a few of the things we know about user behavior >> and reactions: >> >> * They do not like looking at punycode or similar "no >> obvious meaning" and/or "ugly" constructions. If too much >> of it is displayed, they will be unhappy. >> >> * They don't like the unpredictable and unexpected. If they >> are used to seeing native characters and punycode suddenly >> pops up, there had better be a good, and plausible, and >> immediately accessible explanation. >> >> * They get really irritated with repeated and intrusive >> warnings that they don't know how to interpret and what to >> do about. With too many pop-up alerts, the usual response >> is to click "ok" every time and to go looking for a way to >> shut the alerts off. Given that there are many legitimate >> cases that fall into your "display punycode" categories, >> especially in the vicinity of certain scripts and languages, >> the application would generate a lot of false positives and >> the user would learn to ignore whatever is written there. >> >> Make whatever suggestions and recommendations you think >> appropriate, but wrapping them in conformance language about >> what SHOULD/MUST be done just brings discredit on the protocol/ >> algorithm core of IDNA. >> >> Just my opinion. >> >> john >> >> --On Wednesday, March 16, 2005 10:13 PM +0000 "Adam M. Costello" >> <[email protected]> wrote: >> >>> Consider a domain name containing a slash-homograph. >>> >>> As it stands, IDNA section 3.1 requirement 3 tells >>> applications that they "SHOULD" display the non-ACE form. The >>> security considerations section, much later, "suggests" that >>> applications provide visual indications of various anomalies >>> (from which one could extrapolate that the slash-homograph >>> would benefit from a visual indication). >>> >>> I think we've seen that these security concerns need to be >>> less buried, that "visual indications" are too burdensome on >>> implementations, and that in some cases (like this one) the >>> recommendation to display the non-ACE form ought to be >>> withdrawn, or even reversed (that is, recommend the ASCII >>> form). >>> >>> There I propose a technical change to IDNA section 3.1 >>> requirement 3. For reference, here it is as it stands now in >>> RFC-3490 (with one typo corrected): >>> >>> 3) ACE labels obtained from domain name slots SHOULD be >>> hidden from users when it is known that the environment >>> can handle the non-ACE form, except when the ACE form is >>> explicitly requested. When it is not known whether or >>> not the environment can handle the non-ACE form, the >>> application MAY use the non-ACE form (which might fail, >>> such as by not being displayed properly), or it MAY use >>> the ACE form (which will look unintelligible to the user). >>> Given an internationalized domain name, an equivalent domain >>> name containing no ACE labels can be obtained by >>> applying the ToUnicode operation (see section 4) to each >>> label. When requirements 2 and 3 both apply, >>> requirement 2 takes precedence. >>> >>> Here is my proposed replacement: >>> >>> --begin-- >>> >>> 3) When a domain label occupying or obtained from a domain >>> name slot is to be shown to a user, it SHOULD NOT simply >>> be shown in whatever form it was found in; before being >>> shown it SHOULD be forced into either ASCII form (which >>> can be obtained by applying ToASCII) or non-ACE form >>> (which can be obtained by applying ToUnicode, see >>> section 4), according to the first applicable of the >>> following rules: >>> >>> a) If requirements 2 and 3 both apply, requirement 2 >>> takes precedence, and the ASCII form MUST be used. >>> >>> b) When the user has explicitly requested to see one >>> form or the other, that form SHOULD be shown. >>> >>> c) When it is known that the environment cannot handle >>> the non-ACE form, the ASCII form SHOULD be shown. >>> >>> d) If the non-ACE form contains any character outside >>> Unicode categories L (letter), N (number), and M >>> (mark), other than U+002D hyphen-minus, the ACE form >>> SHOULD be shown. >>> >>> e) If the application determines that showing the >>> non-ACE form would pose too great a risk of >>> misleading the user, the ASCII form MAY be shown. >>> Applications MAY use complex heuristics to estimate >>> this risk, but SHOULD try to minimize the negative >>> impact on legitimate usage of internationalized domain names. >>> >>> f) When it is not known whether the environment can >>> handle the non-ACE form, the application MAY show the >>> non-ACE form (which might fail, such as by not being >>> displayed properly), or it MAY show the ASCII form >>> (which will look unintelligible to the user if it is >>> an ACE). >>> >>> g) In general, when rules a-f do not apply, the non-ACE >>> form SHOULD be shown. >>> >>> Rules c, d, and e above apply tests to "the" non-ACE >>> form, but in fact there can be many non-ACE forms that >>> differ only in capitalization and/or normalization. If >>> a given non-ACE label fails some test, it MAY be >>> converted to an equivalent non-ACE label by applying the >>> map and/or normalize steps of [NAMEPREP] (or all the >>> steps), and then given another chance to pass the test. >>> >>> --end-- >>> >>> Thoughts? >>> >>> AMC >>> >>> >> >> >> >> >> >> > >