String Profile for Internet Small Computer Systems Interface (iSCSI) Names
Extracted elements (18)
Currently-prohibited ASCII characters in the ranges U+0000–U+002C, U+002F, U+003B–U+0040, U+005B–U+0060, and U+007B–U+007F are reserved for future use in protocol elements such as URIs, which is why they are excluded from iSCSI names.
iSCSI names require both transcribability (case-insensitive for human use) and byte-for-byte comparison efficiency (case-sensitive for embedded implementations). The solution normalizes names to lower-case with restricted punctuation to satisfy both goals simultaneously.
This stringprep profile has additional iSCSI naming rules that are checked outside of the profile itself, as defined in the iSCSI protocol [RFC3720] and naming specification [RFC3721]. Implementations must apply both layers.
Any upper-case characters input via a user interface MUST be mapped to their lower-case equivalents when generating iSCSI names.
Characters appearing in RFC 3454 tables C.1.1, C.1.2, C.2.1, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, and C.9 MUST NOT be used within an iSCSI name.
If the iSCSI processing specifies use of a list of unassigned code points, table A.1 from RFC 3454 MUST be used as that list.
Mapping tables B.1 and B.2 from RFC 3454 MUST be used when generating iSCSI names from Unicode characters.
The following ASCII character ranges MUST NOT be used in iSCSI names: U+0000–U+002C, U+002F, U+003B–U+0040, U+005B–U+0060, U+007B–U+007F. The dash (U+002D), dot (U+002E), and colon (U+003A) are not prohibited.
The ideographic full stop character U+3002 MUST NOT be used in an iSCSI name, as it is often used as if it were U+002E (dot) in domain name input mechanisms in Asia.
This profile MUST be used with the iSCSI protocol when generating or comparing iSCSI names.
This profile specifies checking bidirectional strings as described in RFC 3454 section 6.
Unicode normalization form KC (NFKC) MUST be used with this profile, as described in RFC 3454.
An iSCSI name is a string of UTF-8 characters that includes a type designator, a naming authority based on domain names, and a unique part within the naming authority. Names must be globally unique and transcribable.
For ASCII-only iSCSI names, the allowed characters are: dash (U+002D), dot (U+002E), colon (U+003A), lower-case letters (U+0061–U+007A), and digits (U+0030–U+0039).
This profile uses Unicode 3.2 as the character repertoire for input and output, as defined in RFC 3454 Appendix A.
This document is a stringprep profile and has been registered in the IANA 'Stringprep Profiles' registry, as described in the IANA Considerations section of RFC 3454.
If iSCSI names are interpreted and compared differently by different implementations, an initiator could gain access to the wrong target or be denied access to a legitimate target, undermining both access control and correctness.
ISO/IEC 10646 contains many visually similar characters, and this profile does not map similar-looking characters together. Users performing visual matching of iSCSI names (e.g., trusted third-party names) may be deceived by homoglyph substitution.