< draft-ietf-precis-saslprepbis-00.txt   draft-ietf-precis-saslprepbis-01.txt >
PRECIS P. Saint-Andre PRECIS P. Saint-Andre
Internet-Draft Cisco Systems, Inc. Internet-Draft Cisco Systems, Inc.
Obsoletes: 4013 (if approved) A. Melnikov Obsoletes: 4013 (if approved) A. Melnikov
Intended status: Standards Track Isode Ltd Intended status: Standards Track Isode Ltd
Expires: August 17, 2013 February 13, 2013 Expires: September 28, 2013 March 27, 2013
Preparation and Comparison of Internationalized Strings Representing Preparation and Comparison of Internationalized Strings Representing
Simple User Names and Passwords Simple User Names and Passwords
draft-ietf-precis-saslprepbis-00 draft-ietf-precis-saslprepbis-01
Abstract Abstract
This document describes how to handle Unicode strings representing This document describes how to handle Unicode strings representing
simple user names and passwords, primarily for purposes of simple user names and passwords, primarily for purposes of
comparison. This profile is intended to be used by Simple comparison. This profile is intended to be used by Simple
Authentication and Security Layer (SASL) mechanisms (such as PLAIN Authentication and Security Layer (SASL) mechanisms (such as PLAIN
and SCRAM-SHA-1), as well as other protocols that exchange simple and SCRAM-SHA-1), as well as other protocols that exchange simple
user names or passwords. This document obsoletes RFC 4013. user names or passwords. This document obsoletes RFC 4013.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 17, 2013. This Internet-Draft will expire on September 28, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 15 skipping to change at page 2, line 15
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Simple User Names . . . . . . . . . . . . . . . . . . . . . . 4 2. Simple User Names . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Preparation . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Preparation . . . . . . . . . . . . . . . . . . . . . . . 5
3. Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Preparation . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Preparation . . . . . . . . . . . . . . . . . . . . . . . 6
4. Migration . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Migration . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. User Names . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. User Names . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Passwords . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2. Passwords . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5.1. Password/Passphrase Strength . . . . . . . . . . . . . . 8 5.1. Password/Passphrase Strength . . . . . . . . . . . . . . 9
5.2. Reuse of PRECIS . . . . . . . . . . . . . . . . . . . . . 8 5.2. Reuse of PRECIS . . . . . . . . . . . . . . . . . . . . . 9
5.3. Reuse of Unicode . . . . . . . . . . . . . . . . . . . . 8 5.3. Reuse of Unicode . . . . . . . . . . . . . . . . . . . . 9
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
6.1. Use of NameClass . . . . . . . . . . . . . . . . . . . . 9 6.1. Use of IdentifierClass . . . . . . . . . . . . . . . . . 9
6.2. Use of FreeClass . . . . . . . . . . . . . . . . . . . . 9 6.2. Use of FreeformClass . . . . . . . . . . . . . . . . . . 10
7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 10 7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10
8.2. Informative References . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Differences from RFC 4013 . . . . . . . . . . . . . 11 Appendix A. Differences from RFC 4013 . . . . . . . . . . . . . 12
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 12 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction 1. Introduction
1.1. Overview 1.1. Overview
User names and passwords are used pervasively in authentication and User names and passwords are used pervasively in authentication and
authorization on the Internet. To increase the likelihood that the authorization on the Internet. To increase the likelihood that the
input and comparison of user names and passwords will work in ways input and comparison of user names and passwords will work in ways
skipping to change at page 4, line 20 skipping to change at page 4, line 20
that the authentication identity used in the context of such that the authentication identity used in the context of such
mechanisms is a "simple user name" (see Section 2 of [RFC4422] as mechanisms is a "simple user name" (see Section 2 of [RFC4422] as
well as [RFC4013]). However, the exact form of a simple user name in well as [RFC4013]). However, the exact form of a simple user name in
any particular mechanism or deployment thereof is a local matter, and any particular mechanism or deployment thereof is a local matter, and
a simple user name does not necessarily map to an application a simple user name does not necessarily map to an application
identifier such as the localpart of an email address. identifier such as the localpart of an email address.
For purposes of preparation and comparison of authentication For purposes of preparation and comparison of authentication
identities, this document specifies that a simple user name is a identities, this document specifies that a simple user name is a
string of Unicode code points [UNICODE], encoded using UTF-8 string of Unicode code points [UNICODE], encoded using UTF-8
[RFC3629], and structured as an ordered sequence of "simpleparts" [RFC3629], and structured either as an ordered sequence of
(where the complete simple user name can consist of a single "simpleparts" (where the complete simple user name can consist of a
simplepart or a space-separated sequence of simpleparts). single simplepart or a space-separated sequence of simpleparts) or as
a simplepart@domainpart (where the domainpart is an IP literal, an
IPv4 address, or a fully-qualified domain name).
Therefore the syntax for a simple user name is defined as follows Therefore the syntax for a simple user name is defined as follows
using the Augmented Backus-Naur Form (ABNF) as specified in using the Augmented Backus-Naur Form (ABNF) as specified in
[RFC5234]. [RFC5234].
simpleusername = simplepart [1*(1*SP simplepart)] simpleusername = simplepart [1*(1*SP simplepart)]
simplepart = 1*(namepoint) / simplepart '@' domainpart
simplepart = 1*(idpoint)
; ;
; a "namepoint" is a UTF-8 encoded ; an "idpoint" is a UTF-8 encoded
; Unicode code point that conforms to ; Unicode code point that conforms to
; the "NameClass" string class defined ; the PRECIS "IdentifierClass"
; in draft-ietf-precis-framework ;
domainpart = IP-literal / IPv4address / ifqdn
;
; the "IPv4address" and "IP-literal"
; rules are defined in RFC 3986, and
; the first-match-wins (a.k.a. "greedy")
; algorithm described in RFC 3986
; applies to the matching process
;
; note well that reuse of the IP-literal
; rule from RFC 3986 implies that IPv6
; addresses are enclosed in square
; brackets (i.e., beginning with '['
; and ending with ']')
;
ifqdn = 1*1023(domainpoint)
;
; a "domainpoint" is a UTF-8 encoded
; Unicode code point that conforms to
; RFC 5890
; ;
Note well that all code points and blocks not explicitly allowed in Note well that all code points and blocks not explicitly allowed in
the PRECIS NameClass are disallowed; this includes private use the PRECIS IdentifierClass are disallowed; this includes private use
characters, surrogate code points, and the other code points and characters, surrogate code points, and the other code points and
blocks defined as "Prohibited Output" in Section 2.3 of RFC 4013. blocks defined as "Prohibited Output" in Section 2.3 of RFC 4013.
Note also that common constructions such as "user@example.com" are
allowed as simple user names when using software that conforms to
this specification, as they were under [RFC4013].
2.2. Preparation 2.2. Preparation
A simple user name MUST NOT be zero bytes in length. This rule is to A simple user name MUST NOT be zero bytes in length. This rule is to
be enforced after any normalization and mapping of code points. be enforced after any normalization and mapping of code points.
Each simplepart of a simple user name MUST conform to the definition Each simplepart of a simple user name MUST conform to the definition
of the PRECIS NameClass provided in [FRAMEWORK], where the of the PRECIS IdentifierClass provided in [FRAMEWORK], where the
normalization, casemapping, and directionality rules are as described normalization, casemapping, and directionality rules are as described
below. below.
1. Unicode Normalization Form C (NFC) MUST be applied to all 1. Unicode Normalization Form C (NFC) MUST be applied to all
characters. characters.
2. Uppercase and titlecase characters MUST be mapped to their 2. Uppercase and titlecase characters MUST be mapped to their
lowercase equivalents. lowercase equivalents.
3. Additional mappings MAY be applied, such as those defined in 3. Additional mappings MAY be applied, such as those defined in
skipping to change at page 5, line 24 skipping to change at page 5, line 48
With regard to directionality, the "Bidi Rule" provided in [RFC5893] With regard to directionality, the "Bidi Rule" provided in [RFC5893]
applies. applies.
3. Passwords 3. Passwords
3.1. Definition 3.1. Definition
For purposes of preparation and comparison of passwords, this For purposes of preparation and comparison of passwords, this
document specifies that a password is a string of Unicode code points document specifies that a password is a string of Unicode code points
[UNICODE], encoded using UTF-8 [RFC3629], and conformant to the [UNICODE], encoded using UTF-8 [RFC3629], and conformant to the
PRECIS FreeClass. PRECIS FreeformClass.
Therefore the syntax for a password is defined as follows using the Therefore the syntax for a password is defined as follows using the
Augmented Backus-Naur Form (ABNF) as specified in [RFC5234]. Augmented Backus-Naur Form (ABNF) as specified in [RFC5234].
password = 1*(freepoint) password = 1*(freepoint)
; ;
; a "freepoint" is a UTF-8 encoded ; a "freepoint" is a UTF-8 encoded
; Unicode code point that conforms to ; Unicode code point that conforms to
; the "FreeClass" string class defined ; the PRECIS "FreeformClass"
; in draft-ietf-precis-framework
; ;
Note well that all code points and blocks not explicitly allowed in Note well that all code points and blocks not explicitly allowed in
the PRECIS FreeClass are disallowed; this includes private use the PRECIS FreeformClass are disallowed; this includes private use
characters, surrogate code points, and the other code points and characters, surrogate code points, and the other code points and
blocks defined as "Prohibited Output" in Section 2.3 of RFC 4013. blocks defined as "Prohibited Output" in Section 2.3 of RFC 4013.
3.2. Preparation 3.2. Preparation
A password MUST NOT be zero bytes in length. This rule is to be A password MUST NOT be zero bytes in length. This rule is to be
enforced after any normalization and mapping of code points. enforced after any normalization and mapping of code points.
A password MUST be treated as follows, where the operations specified A password MUST be treated as follows, where the operations specified
MUST be completed in the order shown: MUST be completed in the order shown:
1. Apply Unicode Normalization Form C (NFC) to all characters. 1. Apply Unicode Normalization Form C (NFC) to all characters.
2. Map any instances of non-ASCII space to ASCII space (U+0020). 2. Map any instances of non-ASCII space to ASCII space (U+0020).
3. Ensure that the resulting string conforms to the definition of 3. Ensure that the resulting string conforms to the definition of
the PRECIS FreeClass. the PRECIS FreeformClass.
With regard to directionality, the "Bidi Rule" (defined in [RFC5893]) With regard to directionality, the "Bidi Rule" (defined in [RFC5893])
and similar rules are unnecessary and inapplicable to passwords, and similar rules are unnecessary and inapplicable to passwords,
since they can reduce the range of characters that are allowed in a since they can reduce the range of characters that are allowed in a
string and therefore reduce the amount of entropy that is possible in string and therefore reduce the amount of entropy that is possible in
a password. Furthermore, such rules are intended to minimize the a password. Furthermore, such rules are intended to minimize the
possibility that the same string will be displayed differently on a possibility that the same string will be displayed differently on a
system set for right-to-left display and a system set for left-to- system set for right-to-left display and a system set for left-to-
right display; however, passwords are typically not displayed at all right display; however, passwords are typically not displayed at all
and are rarely meant to be interoperable across different systems in and are rarely meant to be interoperable across different systems in
skipping to change at page 6, line 35 skipping to change at page 7, line 12
sections describe these differences, along with their implications sections describe these differences, along with their implications
for migration, in more detail. for migration, in more detail.
4.1. User Names 4.1. User Names
Deployments that currently use SASLprep for handling user names might Deployments that currently use SASLprep for handling user names might
need to scrub existing data when migrating to use of the rules need to scrub existing data when migrating to use of the rules
defined in this specification. In particular: defined in this specification. In particular:
o SASLprep specified the use of Unicode Normalization Form KC o SASLprep specified the use of Unicode Normalization Form KC
(NFKC), whereas this usage of the PRECIS NameClass employs Unicode (NFKC), whereas this usage of the PRECIS IdentifierClass employs
Normalization Form C (NFC). In practice this change is unlikely Unicode Normalization Form C (NFC). In practice this change is
to cause significant problems, because NFKC provides methods for unlikely to cause significant problems, because NFKC provides
mapping Unicode code points with compatibility equivalents to methods for mapping Unicode code points with compatibility
those equivalents, whereas the PRECIS NameClass entirely disallows equivalents to those equivalents, whereas the PRECIS
Unicode code points with compatibility equivalents (i.e., during IdentifierClass entirely disallows Unicode code points with
comparison NFKC is more "aggressive" about finding matches than is compatibility equivalents (i.e., during comparison NFKC is more
NFC). A few examples might suffice to indicate the nature of the "aggressive" about finding matches than is NFC). A few examples
problem: (1) U+017F LATIN SMALL LETTER LONG S is compatibility might suffice to indicate the nature of the problem: (1) U+017F
equivalent to U+0073 LATIN SMALL LETTER S (2) U+2163 ROMAN NUMERAL LATIN SMALL LETTER LONG S is compatibility equivalent to U+0073
FOUR is compatibility equivalent to U+0049 LATIN CAPITAL LETTER I LATIN SMALL LETTER S (2) U+2163 ROMAN NUMERAL FOUR is
and U+0056 LATIN CAPITAL LETTER V (3) U+FB01 LATIN SMALL LIGATURE compatibility equivalent to U+0049 LATIN CAPITAL LETTER I and
FI is compatibility equivalent to U+0066 LATIN SMALL LETTER F and U+0056 LATIN CAPITAL LETTER V (3) U+FB01 LATIN SMALL LIGATURE FI
is compatibility equivalent to U+0066 LATIN SMALL LETTER F and
U+0069 LATIN SMALL LETTER I. Under SASLprep, the use of NFKC also U+0069 LATIN SMALL LETTER I. Under SASLprep, the use of NFKC also
handled the mapping of fullwidth and halfwidth code points to handled the mapping of fullwidth and halfwidth code points to
their decomposition equivalents (see [I-D.ietf-precis-mappings]). their decomposition equivalents (see [I-D.ietf-precis-mappings]).
Although it is expected that code points with compatibility Although it is expected that code points with compatibility
equivalents are rare in existing user names, for migration equivalents are rare in existing user names, for migration
purposes deployments might want to search their database of user purposes deployments might want to search their database of user
names for Unicode code points with compatibility equivalents and names for Unicode code points with compatibility equivalents and
map those code points to their compatibility equivalents. map those code points to their compatibility equivalents.
o SASLprep mapped non-ASCII spaces to ASCII space (U+0020), whereas o SASLprep mapped non-ASCII spaces to ASCII space (U+0020), whereas
the PRECIS NameClass entirely disallows non-ASCII spaces. The the PRECIS IdentifierClass entirely disallows non-ASCII spaces.
non-ASCII space characters are U+00A0 NO-BREAK SPACE, U+1680 OGHAM The non-ASCII space characters are U+00A0 NO-BREAK SPACE, U+1680
SPACE MARK, U+180E MONGOLIAN VOWEL SEPARATOR, U+2000 EN QUAD OGHAM SPACE MARK, U+180E MONGOLIAN VOWEL SEPARATOR, U+2000 EN QUAD
through U+200A HAIR SPACE, U+202F NARROW NO-BREAK SPACE, U+205F through U+200A HAIR SPACE, U+202F NARROW NO-BREAK SPACE, U+205F
MEDIUM MATHEMATICAL SPACE, and U+3000 IDEOGRAPHIC SPACE. For MEDIUM MATHEMATICAL SPACE, and U+3000 IDEOGRAPHIC SPACE. For
migration purposes, deployments might want to convert non-ASCII migration purposes, deployments might want to convert non-ASCII
space characters to ASCII space in simple user names. space characters to ASCII space in simple user names.
o SASLprep mapped the "characters commonly mapped to nothing" from o SASLprep mapped the "characters commonly mapped to nothing" from
Appendix B.1 of [RFC3454]) to nothing, whereas the PRECIS Appendix B.1 of [RFC3454]) to nothing, whereas the PRECIS
NameClass entirely disallows most of these characters, which IdentifierClass entirely disallows most of these characters, which
correspond to the code points from the "M" category defined under correspond to the code points from the "M" category defined under
Section 6.13 of [FRAMEWORK] (with the exception of U+1806 Section 6.13 of [FRAMEWORK] (with the exception of U+1806
MONGOLIAN TODO SOFT HYPHEN, which was "commonly mapped to nothing" MONGOLIAN TODO SOFT HYPHEN, which was "commonly mapped to nothing"
in Unicode 3.2 but at the time of this writing does not have a in Unicode 3.2 but at the time of this writing does not have a
derived property of Default_Ignorable_Code_Point in Unicode 6.1). derived property of Default_Ignorable_Code_Point in Unicode 6.1).
For migration purposes, deployments might want to remove code For migration purposes, deployments might want to remove code
points contained in the PRECIS "M" category from simple user points contained in the PRECIS "M" category from simple user
names. names.
o SASLprep allowed uppercase and titlecase characters, whereas this o SASLprep allowed uppercase and titlecase characters, whereas this
usage of the PRECIS NameClass maps uppercase and titlecase usage of the PRECIS IdentifierClass maps uppercase and titlecase
characters to their lowercase equivalents. For migration characters to their lowercase equivalents. For migration
purposes, deployments can either convert uppercase and titlecase purposes, deployments can either convert uppercase and titlecase
characters to their lowercase equivalents in simple user names characters to their lowercase equivalents in simple user names
(thus losing the case information) or preserve uppercase and (thus losing the case information) or preserve uppercase and
titlecase characters and ignore the case difference when comparing titlecase characters and ignore the case difference when comparing
simple user names. simple user names.
4.2. Passwords 4.2. Passwords
Depending on local service policy, migration from RFC 4013 to this Depending on local service policy, migration from RFC 4013 to this
specification might not involve any scrubbing of data (since specification might not involve any scrubbing of data (since
passwords might not be stored in the clear anyway); however, service passwords might not be stored in the clear anyway); however, service
providers need to be aware of possible issues that might arise during providers need to be aware of possible issues that might arise during
migration. In particular: migration. In particular:
o SASLprep specified the use of Unicode Normalization Form KC o SASLprep specified the use of Unicode Normalization Form KC
(NFKC), whereas this usage of the PRECIS FreeClass employs Unicode (NFKC), whereas this usage of the PRECIS FreeformClass employs
Normalization Form C (NFC). Because NFKC is more aggressive about Unicode Normalization Form C (NFC). Because NFKC is more
finding matches than NFC, in practice this change is unlikely to aggressive about finding matches than NFC, in practice this change
cause significant problems and indeed has the security benefit of is unlikely to cause significant problems and indeed has the
probably resulting in fewer false positives when comparing security benefit of probably resulting in fewer false positives
passwords. A few examples might suffice to indicate the nature of when comparing passwords. A few examples might suffice to
the problem: (1) U+017F LATIN SMALL LETTER LONG S is compatibility indicate the nature of the problem: (1) U+017F LATIN SMALL LETTER
equivalent to U+0073 LATIN SMALL LETTER S (2) U+2163 ROMAN NUMERAL LONG S is compatibility equivalent to U+0073 LATIN SMALL LETTER S
FOUR is compatibility equivalent to U+0049 LATIN CAPITAL LETTER I (2) U+2163 ROMAN NUMERAL FOUR is compatibility equivalent to
and U+0056 LATIN CAPITAL LETTER V (3) U+FB01 LATIN SMALL LIGATURE U+0049 LATIN CAPITAL LETTER I and U+0056 LATIN CAPITAL LETTER V
FI is compatibility equivalent to U+0066 LATIN SMALL LETTER F and (3) U+FB01 LATIN SMALL LIGATURE FI is compatibility equivalent to
U+0069 LATIN SMALL LETTER I. Under SASLprep, the use of NFKC also U+0066 LATIN SMALL LETTER F and U+0069 LATIN SMALL LETTER I.
handled the mapping of fullwidth and halfwidth code points to Under SASLprep, the use of NFKC also handled the mapping of
their decomposition equivalents (see [I-D.ietf-precis-mappings]). fullwidth and halfwidth code points to their decomposition
Although it is expected that code points with compatibility equivalents (see [I-D.ietf-precis-mappings]). Although it is
equivalents are rare in existing passwords, some passwords that expected that code points with compatibility equivalents are rare
matched when SASLprep was used might no longer work when the rules in existing passwords, some passwords that matched when SASLprep
in this specification are applied. was used might no longer work when the rules in this specification
are applied.
o SASLprep mapped the "characters commonly mapped to nothing" from o SASLprep mapped the "characters commonly mapped to nothing" from
Appendix B.1 of [RFC3454]) to nothing, whereas the PRECIS Appendix B.1 of [RFC3454]) to nothing, whereas the PRECIS
FreeClass entirely disallows such characters, which correspond to FreeformClass entirely disallows such characters, which correspond
the code points from the "M" category defined under Section 6.13 to the code points from the "M" category defined under
of [FRAMEWORK] (with the exception of U+1806 MONGOLIAN TODO SOFT Section 6.13 of [FRAMEWORK] (with the exception of U+1806
HYPHEN, which was commonly mapped to nothing in Unicode 3.2 but at MONGOLIAN TODO SOFT HYPHEN, which was commonly mapped to nothing
the time of this writing is allowed by Unicode 6.1). In practice, in Unicode 3.2 but at the time of this writing is allowed by
this change will probably have no effect on comparison, but user- Unicode 6.1). In practice, this change will probably have no
oriented software might reject such code points instead of effect on comparison, but user-oriented software might reject such
ignoring them during password preparation. code points instead of ignoring them during password preparation.
5. Security Considerations 5. Security Considerations
5.1. Password/Passphrase Strength 5.1. Password/Passphrase Strength
The ability to include a wide range of characters in passwords and The ability to include a wide range of characters in passwords and
passphrases can increase the potential for creating a strong password passphrases can increase the potential for creating a strong password
with high entropy. However, in practice, the ability to include such with high entropy. However, in practice, the ability to include such
characters ought to be weighed against the possible need to reproduce characters ought to be weighed against the possible need to reproduce
them on various devices using various input methods. them on various devices using various input methods.
5.2. Reuse of PRECIS 5.2. Reuse of PRECIS
The security considerations described in [FRAMEWORK] apply to the The security considerations described in [FRAMEWORK] apply to the
"NameClass" and "FreeClass" base string classes used in this document "IdentifierClass" and "FreeformClass" base string classes used in
for simple user names and passwords, respectively. this document for simple user names and passwords, respectively.
5.3. Reuse of Unicode 5.3. Reuse of Unicode
The security considerations described in [UTR39] apply to the use of The security considerations described in [UTR39] apply to the use of
Unicode characters in user names and passwords. Unicode characters in user names and passwords.
6. IANA Considerations 6. IANA Considerations
6.1. Use of NameClass
6.1. Use of IdentifierClass
The IANA shall add an entry to the PRECIS Usage Registry for reuse of The IANA shall add an entry to the PRECIS Usage Registry for reuse of
the PRECIS NameClass in SASL, as follows: the PRECIS IdentifierClass in SASL, as follows:
Applicability: Usernames in SASL and Kerberos. Applicability: Usernames in SASL and Kerberos.
Base Class: NameClass. Base Class: IdentifierClass.
Subclass: No. Subclass: No.
Replaces: The SASLprep profile of Stringprep. Replaces: The SASLprep profile of Stringprep.
Normalization: NFC. Normalization: NFC.
Casemapping: Map uppercase and titlecase characters to lowercase. Casemapping: Map uppercase and titlecase characters to lowercase.
Additional Mappings: None. Additional Mappings: None.
Directionality: The "Bidi Rule" defined in RFC 5893 applies. Directionality: The "Bidi Rule" defined in RFC 5893 applies.
Specification: RFC XXXX. [Note to RFC Editor: please change XXXX to Specification: RFC XXXX. [Note to RFC Editor: please change XXXX to
the number issued for this specification.] the number issued for this specification.]
6.2. Use of FreeClass 6.2. Use of FreeformClass
The IANA shall add an entry to the PRECIS Usage Registry for reuse of The IANA shall add an entry to the PRECIS Usage Registry for reuse of
the PRECIS FreeClass in SASL, as follows: the PRECIS FreeformClass in SASL, as follows:
Applicability: Passwords in SASL and Kerberos. Applicability: Passwords in SASL and Kerberos.
Base Class: FreeClass Base Class: FreeformClass
Subclass: No. Subclass: No.
Replaces: The SASLprep profile of Stringprep. Replaces: The SASLprep profile of Stringprep.
Normalization: NFC. Normalization: NFC.
Casemapping: None. Casemapping: None.
Additional Mappings: Map non-ASCII space characters to ASCII space. Additional Mappings: Map non-ASCII space characters to ASCII space.
skipping to change at page 10, line 22 skipping to change at page 10, line 49
allowed and disallowed. (See also the migration issues described allowed and disallowed. (See also the migration issues described
under Section 4.) under Section 4.)
8. References 8. References
8.1. Normative References 8.1. Normative References
[FRAMEWORK] [FRAMEWORK]
Saint-Andre, P. and M. Blanchet, "Precis Framework: Saint-Andre, P. and M. Blanchet, "Precis Framework:
Handling Internationalized Strings in Protocols", draft- Handling Internationalized Strings in Protocols", draft-
ietf-precis-framework-06 (work in progress), September ietf-precis-framework-07 (work in progress), March 2013.
2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003. 10646", STD 63, RFC 3629, November 2003.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008. Specifications: ABNF", STD 68, RFC 5234, January 2008.
skipping to change at page 12, line 12 skipping to change at page 12, line 38
o As recommended in the PRECIS framwork, changed the Unicode o As recommended in the PRECIS framwork, changed the Unicode
normalization form from NFKC to NFC. normalization form from NFKC to NFC.
o Some Unicode code points that were mapped to nothing in RFC 4013 o Some Unicode code points that were mapped to nothing in RFC 4013
are simply disallowed by PRECIS. are simply disallowed by PRECIS.
Appendix B. Acknowledgements Appendix B. Acknowledgements
Thanks to Yoshiro YONEYA and Takahiro NEMOTO for implementation Thanks to Yoshiro YONEYA and Takahiro NEMOTO for implementation
feedback. Thanks also to Marc Blanchet, Joe Hildebrand, Alan DeKok, feedback. Thanks also to Marc Blanchet, Joe Hildebrand, Alan DeKok,
Simon Josefsson, Jonathan Lennox, Matt Miller, Pete Resnick, and Simon Josefsson, Jonathan Lennox, Matt Miller, Chris Newman, Pete
Andrew Sullivan for their input regarding the text. Resnick, Andrew Sullivan, and Nico Williams for their input.
This document borrows some text from RFC 4013 and RFC 6120. This document borrows some text from RFC 4013 and RFC 6120.
Authors' Addresses Authors' Addresses
Peter Saint-Andre Peter Saint-Andre
Cisco Systems, Inc. Cisco Systems, Inc.
1899 Wynkoop Street, Suite 600 1899 Wynkoop Street, Suite 600
Denver, CO 80202 Denver, CO 80202
USA USA
 End of changes. 33 change blocks. 
86 lines changed or deleted 113 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/