datatracker.ietf.org
Sign in
Version 5.6.2.p1, 2014-07-22
Report a bug

Stringprep Revision and Problem Statement for the Preparation and Comparison of Internationalized Strings (PRECIS)
RFC 6885

Internet Engineering Task Force (IETF)                       M. Blanchet
Request for Comments: 6885                                      Viagenie
Category: Informational                                      A. Sullivan
ISSN: 2070-1721                                                Dyn, Inc.
                                                              March 2013

               Stringprep Revision and Problem Statement
for the Preparation and Comparison of Internationalized Strings (PRECIS)

Abstract

   If a protocol expects to compare two strings and is prepared only for
   those strings to be ASCII, then using Unicode code points in those
   strings requires they be prepared somehow.  Internationalizing Domain
   Names in Applications (here called IDNA2003) defined and used
   Stringprep and Nameprep.  Other protocols subsequently defined
   Stringprep profiles.  A new approach different from Stringprep and
   Nameprep is used for a revision of IDNA2003 (called IDNA2008).  Other
   Stringprep profiles need to be similarly updated, or a replacement of
   Stringprep needs to be designed.  This document outlines the issues
   to be faced by those designing a Stringprep replacement.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6885.

Blanchet & Sullivan           Informational                     [Page 1]
RFC 6885          Stringprep Revision Problem Statement       March 2013

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Blanchet & Sullivan           Informational                     [Page 2]
RFC 6885          Stringprep Revision Problem Statement       March 2013

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   3.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  6
   4.  Stringprep Profiles Limitations  . . . . . . . . . . . . . . .  6
   5.  Major Topics for Consideration . . . . . . . . . . . . . . . .  8
     5.1.  Comparison . . . . . . . . . . . . . . . . . . . . . . . .  8
       5.1.1.  Types of Identifiers . . . . . . . . . . . . . . . . .  8
       5.1.2.  Effect of Comparison . . . . . . . . . . . . . . . . .  8
     5.2.  Dealing with Characters  . . . . . . . . . . . . . . . . .  9
       5.2.1.  Case Folding, Case Sensitivity, and Case
               Preservation . . . . . . . . . . . . . . . . . . . . .  9
       5.2.2.  Stringprep and NFKC  . . . . . . . . . . . . . . . . .  9
       5.2.3.  Character Mapping  . . . . . . . . . . . . . . . . . . 10
       5.2.4.  Prohibited Characters  . . . . . . . . . . . . . . . . 10
       5.2.5.  Internal Structure, Delimiters, and Special
               Characters . . . . . . . . . . . . . . . . . . . . . . 10
       5.2.6.  Restrictions Because of Glyph Similarity . . . . . . . 11
     5.3.  Where the Data Comes from and Where It Goes  . . . . . . . 11
       5.3.1.  User Input and the Source of Protocol Elements . . . . 11
       5.3.2.  User Output  . . . . . . . . . . . . . . . . . . . . . 12
       5.3.3.  Operations . . . . . . . . . . . . . . . . . . . . . . 12
   6.  Considerations for Stringprep Replacement  . . . . . . . . . . 13
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 14
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 14
   9.  Informative References . . . . . . . . . . . . . . . . . . . . 15
   Appendix A.  Classification of Stringprep Profiles . . . . . . . . 19
   Appendix B.  Evaluation of Stringprep Profiles . . . . . . . . . . 19

[include full document text]