Mention stringprep API changes.
[libidn.git] / draft-ietf-ips-iscsi-string-prep-03.txt
blobb93be153e79a953600c344d775f82167e8b27354
7 Internet Draft                                                Mark Bakke
8 <draft-ietf-ips-iscsi-string-prep-03.txt>                          Cisco
9 Standards Track
10 Expires April 2003
12 October 2002
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 internationlized 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 April 2003                   [Page 1]
60 Internet Draft       String Profile for iSCSI Names         October 2002
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 April 2003                   [Page 2]
116 Internet Draft       String Profile for iSCSI Names         October 2002
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 inport or other information that contains international
133    characters.
135    In particular, it defines the following, as required by [STRINGPREP]:
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 April 2003                   [Page 3]
172 Internet Draft       String Profile for iSCSI Names         October 2002
175 3.  Character Repertoire
177    This profile uses Unicode 3.1, as defined in [STRINGPREP] Appendix
178    A.1.
181 4.  Mapping
183    This profile specifies mapping using the following tables from
184    [STRINGPREP].  The following mapping tables MUST be used when
185    generating iSCSI names from Unicode characters.
187       Table B.1
188       Table B.2
191 5.  Normalization
193    Unicode normalization form KC MUST be used with this profile, as
194    described in [STRINGPREP].
197 6.  Prohibited Output
199    This profile specifies prohibiting using the following tables from
200    [stringprep].  Characters appearing within these tables MUST NOT be
201    used within an iSCSI name.
203       Table C.1
204       Table C.2
205       Table C.3
206       Table C.4
207       Table C.5
208       Table C.6
209       Table C.7
210       Table C.8
211       Table C.9
213    Important note: this profile MUST be used with the iSCSI protocol.
214    The iSCSI protocol has additional naming rules that are checked
215    outside of this profile.
217    In addition, this profile adds the following prohibitions.  The full
218    set of prohibited characters are those from the tables above plus
219    those listed individually below.
226 Bakke                      Expires April 2003                   [Page 4]
228 Internet Draft       String Profile for iSCSI Names         October 2002
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 [URI].
244    The other characters in the range U+0000 to U+007F that are not
245    currently allowed are prohibited in iSCSI names to reserve them for
246    future use in protocol elements.  Note that the dash (U+002D), dot
247    (U+002E), and colon (U+003A) are not prohibited.
249    The following characters MUST NOT be used in iSCSI names:
251       0000-002C; [ASCII CONTROL CHARACTERS and SPACE through ,]
252       002F; [ASCII /]
253       003B-0040; [ASCII ; through @]
254       005B-0060; [ASCII [ through `]
255       007B-007F; [ASCII { through DEL]
258 7.  Unassigned Code Points in Internationalized Domain Names
260    If the processing in [iSCSI] specifies that a list of unassigned code
261    points be used, the system uses table A.1 from [STRINGPREP] as its
262    list of unassigned code points.
265 8.  Security Considerations
267    ISO/IEC 10646 has many characters that look similar. In many cases,
268    users of security protocols might do visual matching, such as when
269    comparing the names of trusted third parties. This profile does
270    nothing to map similar-looking characters together.
272    iSCSI names may be used by an initiator to verify that a target it
273    has discovered is the correct one, and by a target to verify that an
274    initiator is to be allowed access.  If these names are interpreted
275    and compared differently by different iSCSI implementations, an
276    initiator could gain access to the wrong target, or could be denied
277    access to a legitimate target.
282 Bakke                      Expires April 2003                   [Page 5]
284 Internet Draft       String Profile for iSCSI Names         October 2002
287 9.  IANA Considerations
289    This is a profile of stringprep. When it becomes an RFC, it should be
290    registered in the stringprep profile registry.
293 10.  Summary
295    This document describes a stringprep profile to be used with programs
296    generating names for iSCSI initiators and targets.
299 11.  Normative References
302 [RFC2119]   Scott Bradner, "Key words for use in RFCs to Indicate
303             Requirement Levels", March 1997, RFC 2119.
305 [STRINGPREP]
306             Paul Hoffman and Marc Blanchet, "Preparation of
307             Internationalized Strings ("stringprep")", draft-hoffman-
308             stringprep-03, May 2002.
310 [ISCSI]     J. Satran, et. al.  "iSCSI", draft-ietf-ips-iscsi-12.txt,
311             June 2002.
314 12.  Informative References
317 [NDT]       K. Voruganti, et. al.  "iSCSI Naming and Discovery
318             Requirements", draft-ietf-ips-iscsi-name-disc-05, May 2002.
320 [NAMEPREP]  Paul Hoffman and Marc Blanchet.  Nameprep: A Stringprep
321             Profile for Internationalized Domain Names.  draft-ietf-idn-
322             nameprep-10, May 2002.
324 [SAM2]      ANSI T10.  "SCSI Architectural Model 2", March 2000.
326 [RFC2044]   F. Yergeau, "UTF-8, a transformation format of Unicode and
327             ISO 10646", October 1996, RFC 2044.
329 [Unicode3.1]
330             The Unicode Standard, Version 3.1.0: The Unicode Consortium.
331             The Unicode Standard, Version 3.0. Reading, MA, Addison-
332             Wesley Developers Press, 2000. ISBN 0-201-61633-5, as
333             amended by: Unicode Standard Annex #27: Unicode 3.1
334             <http://www.unicode.org/unicode/reports/tr27/tr27-4.html>.
338 Bakke                      Expires April 2003                   [Page 6]
340 Internet Draft       String Profile for iSCSI Names         October 2002
343 [ISO10646]  ISO/IEC 10646-1:2000. International Standard -- Information
344             technology -- Universal Multiple-Octet Coded Character Set
345             (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
347 [URI]       For example: Roy Fielding et al., "Uniform Resource
348             Identifiers: Generic Syntax", August 1998, RFC 2396; Robert
349             Hinden et. al, "IPv6 Literal Addresses in URL's", December
350             1999, RFC 2732. Note that there are many other RFCs that
351             define additional URI schemes.
353 Author Contact Information
355        Mark Bakke
356        Cisco Systems, Inc.
357        6450 Wedgwood Road
358        Maple Grove, MN
359        USA 55311
361        Voice:  +1 763-398-1000
362        E-Mail: mbakke@cisco.com
365 13.  Full Copyright Statement
367    Copyright (C) The Internet Society (2001).  All Rights Reserved.
369    This document and translations of it may be copied and furnished to
370    others, and derivative works that comment on or otherwise explain it
371    or assist in its implementation may be prepared, copied, published
372    and distributed, in whole or in part, without restriction of any
373    kind, provided that the above copyright notice and this paragraph are
374    included on all such copies and derivative works.  However, this
375    document itself may not be modified in any way, such as by removing
376    the copyright notice or references to the Internet Society or other
377    Internet organizations, except as needed for the purpose of
378    developing Internet standards in which case the procedures for
379    copyrights defined in the Internet Standards process must be
380    followed, or as required to translate it into languages other than
381    English.
383    The limited permissions granted above are perpetual and will not be
384    revoked by the Internet Society or its successors or assigns.
386    This document and the information contained herein is provided on an
387    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
388    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
389    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
390    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
394 Bakke                      Expires April 2003                   [Page 7]
396 Internet Draft       String Profile for iSCSI Names         October 2002
399    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
401 Acknowledgement
403    Funding for the RFC Editor function is currently provided by the
404    Internet Society.
450 Bakke                      Expires April 2003                   [Page 8]