Sync with RFC.
[libidn.git] / draft-ietf-ips-iscsi-string-prep-04.txt
blob00ad1e0a2110b3274739beeddbc7fe745c01dbac
7 Internet Draft                                                Mark Bakke
8 <draft-ietf-ips-iscsi-string-prep-04.txt>                          Cisco
9 Standards Track
10 Expires September 2003
12 March 2003
15                      String Profile for iSCSI Names
19 Status of this Memo
21    This document is an Internet-Draft and is in full conformance with
22    all provisions of Section 10 of RFC2026.
24    Internet-Drafts are working documents of the Internet Engineering
25    Task Force (IETF), its areas, and its working groups.  Note that
26    other groups may also distribute working documents as Internet-
27    Drafts.
29    Internet-Drafts are draft documents valid for a maximum of six months
30    and may be updated, replaced, or obsoleted by other documents at any
31    time.  It is inappropriate to use Internet- Drafts as reference
32    material or to cite them other than as "work in progress."
34    The list of current Internet-Drafts can be accessed at
35    http://www.ietf.org/ietf/1id-abstracts.txt
37    The list of Internet-Draft Shadow Directories can be accessed at
38    http://www.ietf.org/shadow.html.
40 Copyright Notice
42    Copyright (C) The Internet Society (2001).  All Rights Reserved.
44 Abstract
46    The iSCSI protocol provides a way for hosts to access SCSI devices
47    over an IP network.  The iSCSI end-points, called initiators and
48    targets, each have a globally-unique name that must be transcribable,
49    as well as easily compared.
51    This document describes how to prepare internationalized iSCSI names
52    to increase the likelihood that name input and comparison work in
53    ways that make sense for typical users throughout the world.
58 Bakke                    Expires September 2003                 [Page 1]
60 Internet Draft       String Profile for iSCSI Names           March 2003
63 Acknowledgements
65    This draft was produced as a result of discussions on iSCSI name
66    formats with Joe Czap, Jim Hafner, Howard Hall, Jack Harwood, John
67    Hufferd, Marjorie Krueger, Lawrence Lamers, Todd Sperry, Joshua
68    Tseng, and Kaladhar Voruganti, as well as discussions on the
69    normalization of names into identifiers with Paul Hoffman and Marc
70    Blanchet.
72    Thanks also to Bob Snively for suggesting the use of the nameprep
73    process for iSCSI name normalization.
75    Most of this draft was copied from the stringprep profile for
76    nameprep [NAMEPREP], written by Paul Hoffman and Marc Blanchet.
79 1.  Introduction
81    The iSCSI protocol [iSCSI] provides a way for hosts to access SCSI
82    [SAM2] devices over an IP network.  The iSCSI end-points, called
83    initiators and targets, each have a globally-unique name, defined in
84    [NDT].
86    An iSCSI name is a string of UTF-8 [RFC2044] characters that includes
87    a type designator, a naming authority based on domain names, and a
88    unique part within the naming authority.  The unique part may be
89    generated based on anything the naming authority deems useful, and
90    may include user input.
92    These names may need to be transcribed (sent between two
93    administrators via email, voice, paper, etc), so a case- insensitive
94    comparison would be desirable.  However, these names must often be
95    compared by initiator and target implementations, most of which are
96    done in simple, embedded software.  This makes case-sensitive
97    comparison highly desirable for these implementors.
99    However, a completely case-sensitive implementation would result in
100    identifiers such as "example-name" and "Example-Name" being
101    different, which could lead to confusion as these names are
102    transcribed.
104    The goal, then, is to generate iSCSI names that can be transcribed
105    and entered by users, and also compared byte-for-byte, with minimal
106    confusion.  To attain these goals, iSCSI names are generalized using
107    a normalized character set (converted to lower case or equivalent),
108    with no white space allowed, and very limited punctuation.
110    For those using only ASCII characters (U+0000 to U+007F), the
114 Bakke                    Expires September 2003                 [Page 2]
116 Internet Draft       String Profile for iSCSI Names           March 2003
119    following characters are allowed:
121    - ASCII dash character ('-' = U+002d)
122    - ASCII dot character ('.' = U+002e)
123    - ASCII colon character (':' = U+003a)
124    - ASCII lower-case characters ('a'..'z' = U+0061..U+007a)
125    - ASCII digit characters ('0'..'9' = U+0030..U+0039)
127    In addition, any upper-case characters input via a user interface
128    should be mapped to their lower-case equivalents.
130    This document specifies the valid character set for iSCSI names,
131    along with the rules for normalizing and generating iSCSI names based
132    on user input or other information that contains international
133    characters.
135    In particular, it defines the following, as required by [RFC3454]:
137    - The intended applicability of the profile: internationalized iSCSI
138      names.
140    - The character repertoire that is the input and output to
141      stringprep: Unicode 3.1, specified in section 2.
143    - The mappings used: specified in section 3.
145    - The Unicode normalization used: specified in section 4.
147    - The characters that are prohibited as output: specified in section
148      5.
150    This profile MUST be used with the iSCSI protocol.
153 2.  Terminology
155    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
156    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
157    document are to be interpreted as described in [RFC2119].
159    Examples in this document use the notation for code points and names
160    from the Unicode Standard [Unicode3.1] and ISO/IEC 10646 [ISO10646].
161    For example, the letter "a" may be represented as either "U+0061" or
162    "LATIN SMALL LETTER A". In the lists of prohibited characters, the
163    "U+" is left off to make the lists easier to read. The comments for
164    character ranges are shown in square brackets (such as "[SYMBOLS]")
165    and do not come from the standards.
170 Bakke                    Expires September 2003                 [Page 3]
172 Internet Draft       String Profile for iSCSI Names           March 2003
175 3.  Character Repertoire
177    This profile uses Unicode 3.1, as defined in [RFC3454] Appendix A.1.
180 4.  Mapping
182    This profile specifies mapping using the following tables from
183    [RFC3454].  The following mapping tables MUST be used when generating
184    iSCSI names from Unicode characters.
186       Table B.1
187       Table B.2
190 5.  Normalization
192    Unicode normalization form KC MUST be used with this profile, as
193    described in [RFC3454].
196 6.  Prohibited Output
198    This profile specifies prohibiting using the following tables from
199    [stringprep].  Characters appearing within these tables MUST NOT be
200    used within an iSCSI name.
202       Table C.1
203       Table C.2
204       Table C.3
205       Table C.4
206       Table C.5
207       Table C.6
208       Table C.7
209       Table C.8
210       Table C.9
212    Important note: this profile MUST be used with the iSCSI protocol.
213    The iSCSI protocol has additional naming rules that are checked
214    outside of this profile.
216    In addition, this profile adds the following prohibitions.  The full
217    set of prohibited characters are those from the tables above plus
218    those listed individually below.
226 Bakke                    Expires September 2003                 [Page 4]
228 Internet Draft       String Profile for iSCSI Names           March 2003
231 6.1.  Inappropriate Characters from Common Input Mechanisms
233    u+3002 is used as if it were u+002e in many domain name input
234    mechanisms used by applications, particularly in Asia.  The character
235    u+3002 MUST NOT be used in an iSCSI name.
237       3002; ideographic full stop
240 6.2.  Currently-prohibited ASCII characters
242    Some of the ASCII characters that are currently prohibited in iSCSI
243    names by [NDT] are also used in protocol elements such as URIs.  Some
244    examples are described in [RFC2396] and [RFC2732].  Note that there
245    are many other RFCs that define additional URI schemes.
247    The other characters in the range U+0000 to U+007F that are not
248    currently allowed are prohibited in iSCSI names to reserve them for
249    future use in protocol elements.  Note that the dash (U+002D), dot
250    (U+002E), and colon (U+003A) are not prohibited.
252    The following characters MUST NOT be used in iSCSI names:
254       0000-002C; [ASCII CONTROL CHARACTERS and SPACE through ,]
255       002F; [ASCII /]
256       003B-0040; [ASCII ; through @]
257       005B-0060; [ASCII [ through `]
258       007B-007F; [ASCII { through DEL]
261 7.  Unassigned Code Points in Internationalized Domain Names
263    If the processing in [iSCSI] specifies that a list of unassigned code
264    points be used, the system uses table A.1 from [RFC3454] as its list
265    of unassigned code points.
268 8.  Security Considerations
270    ISO/IEC 10646 has many characters that look similar. In many cases,
271    users of security protocols might do visual matching, such as when
272    comparing the names of trusted third parties. This profile does
273    nothing to map similar-looking characters together.
275    iSCSI names may be used by an initiator to verify that a target it
276    has discovered is the correct one, and by a target to verify that an
277    initiator is to be allowed access.  If these names are interpreted
278    and compared differently by different iSCSI implementations, an
282 Bakke                    Expires September 2003                 [Page 5]
284 Internet Draft       String Profile for iSCSI Names           March 2003
287    initiator could gain access to the wrong target, or could be denied
288    access to a legitimate target.
291 9.  IANA Considerations
293    This is a profile of stringprep. When it has been reviewed and
294    approved by the IESG, it should be registered in the IANA "Stringprep
295    Profiles" registry.  This process is described in the IANA
296    Considerations section of [RFC3454].
299 10.  Summary
301    This document describes a stringprep profile to be used with programs
302    generating names for iSCSI initiators and targets.
305 11.  Normative References
308 [RFC2119]   Scott Bradner, "Key words for use in RFCs to Indicate
309             Requirement Levels", RFC 2119, March 1997.
311 [RFC3454]   Paul Hoffman and Marc Blanchet, "Preparation of
312             Internationalized Strings ("stringprep")", RFC 3454,
313             December 2002.
315 [iSCSI]     J. Satran, et. al.  "iSCSI", Work In Progress, draft-ietf-
316             ips-iscsi-20.txt, January 2003.
319 12.  Informative References
322 [NDT]       K. Voruganti, et. al.  "iSCSI Naming and Discovery", Work in
323             Progress, draft-ietf-ips-iscsi-name-disc-09, March 2003.
325 [NAMEPREP]  Paul Hoffman and Marc Blanchet.  Nameprep: A Stringprep
326             Profile for Internationalized Domain Names.  Work in
327             Progress, draft-ietf-idn-nameprep-11, June 2002.
329 [SAM2]      ANSI T10.  "SCSI Architectural Model 2", March 2000.
331 [RFC2044]   F. Yergeau, "UTF-8, a transformation format of Unicode and
332             ISO 10646", RFC 2044, October 1996.
338 Bakke                    Expires September 2003                 [Page 6]
340 Internet Draft       String Profile for iSCSI Names           March 2003
343 [RFC2396]   T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource
344             Identifiers", RFC 2396, August 1998.
346 [RFC2732]   R. Hindon, B. Carpenter, L Masinter, "Format for Literal
347             IPv6 Addresses in URLs", RFC 2732, December 1999.
349 [Unicode3.1]
350             The Unicode Standard, Version 3.1.0: The Unicode Consortium.
351             The Unicode Standard, Version 3.0. Reading, MA, Addison-
352             Wesley Developers Press, 2000. ISBN 0-201-61633-5, as
353             amended by: Unicode Standard Annex #27: Unicode 3.1
354             <http://www.unicode.org/unicode/reports/tr27/tr27-4.html>.
356 [ISO10646]  ISO/IEC 10646-1:2000. International Standard -- Information
357             technology -- Universal Multiple-Octet Coded Character Set
358             (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
361 13.  Author Contact Information
363        Mark Bakke
364        Cisco Systems, Inc.
365        6450 Wedgwood Road
366        Maple Grove, MN
367        USA 55311
369        Voice:  +1 763-398-1000
370        E-Mail: mbakke@cisco.com
373 14.  Full Copyright Notice
375    Copyright (C) The Internet Society (2001).  All Rights Reserved.
377    This document and translations of it may be copied and furnished to
378    others, and derivative works that comment on or otherwise explain it
379    or assist in its implementation may be prepared, copied, published
380    and distributed, in whole or in part, without restriction of any
381    kind, provided that the above copyright notice and this paragraph are
382    included on all such copies and derivative works.  However, this
383    document itself may not be modified in any way, such as by removing
384    the copyright notice or references to the Internet Society or other
385    Internet organizations, except as needed for the purpose of
386    developing Internet standards in which case the procedures for
387    copyrights defined in the Internet Standards process must be
388    followed, or as required to translate it into languages other than
389    English.
394 Bakke                    Expires September 2003                 [Page 7]
396 Internet Draft       String Profile for iSCSI Names           March 2003
399    The limited permissions granted above are perpetual and will not be
400    revoked by the Internet Society or its successors or assigns.
402    This document and the information contained herein is provided on an
403    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
404    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
405    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
406    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
407    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
409 Acknowledgement
411    Funding for the RFC Editor function is currently provided by the
412    Internet Society.
450 Bakke                    Expires September 2003                 [Page 8]