[要約] RFC 4013は、ユーザー名とパスワードのための文字列の準備プロファイルであるSASLprepについての要約と目的を提供しています。このRFCの目的は、国際化されたユーザー名とパスワードの文字列を正規化し、セキュリティ上の問題を回避することです。

Network Working Group                                        K. Zeilenga
Request for Comments: 4013                           OpenLDAP Foundation
Category: Standards Track                                  February 2005
        

SASLprep: Stringprep Profile for User Names and Passwords

SASLPrep:ユーザー名とパスワードのStringPrepプロファイル

Status of This Memo

本文書の位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の現在のエディションを参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2005).

Copyright(c)The Internet Society(2005)。

Abstract

概要

This document describes how to prepare Unicode strings representing user names and passwords for comparison. The document defines the "SASLprep" profile of the "stringprep" algorithm to be used for both user names and passwords. This profile is intended to be used by Simple Authentication and Security Layer (SASL) mechanisms (such as PLAIN, CRAM-MD5, and DIGEST-MD5), as well as other protocols exchanging simple user names and/or passwords.

このドキュメントでは、比較のためにユーザー名とパスワードを表すUnicode文字列を準備する方法について説明します。このドキュメントは、ユーザー名とパスワードの両方に使用される「StringPrep」アルゴリズムの「SASLPrep」プロファイルを定義します。このプロファイルは、シンプルな認証とセキュリティレイヤー(SASL)メカニズム(Plain、Cram-MD5、Digest-MD5など)、および単純なユーザー名やパスワードを交換する他のプロトコルで使用することを目的としています。

1. Introduction
1. はじめに

The use of simple user names and passwords in authentication and authorization is pervasive on the Internet. To increase the likelihood that user name and password input and comparison work in ways that make sense for typical users throughout the world, this document defines rules for preparing internationalized user names and passwords for comparison. For simplicity and implementation ease, a single algorithm is defined for both user names and passwords.

認証と承認における単純なユーザー名とパスワードの使用は、インターネット上で広まっています。ユーザー名とパスワードの入力と比較が世界中の一般的なユーザーにとって意味のある方法で機能する可能性を高めるために、このドキュメントは、比較のために国際化されたユーザー名とパスワードを準備するためのルールを定義します。簡単になり、実装を容易にするために、ユーザー名とパスワードの両方に対して単一のアルゴリズムが定義されています。

The algorithm assumes all strings are comprised of characters from the Unicode [Unicode] character set.

アルゴリズムは、すべての文字列がUnicode [Unicode]文字セットの文字で構成されていると想定しています。

This document defines the "SASLprep" profile of the "stringprep" algorithm [StringPrep].

このドキュメントは、「stringprep」アルゴリズム[StringPrep]の「SASLPrep」プロファイルを定義します。

The profile is designed for use in Simple Authentication and Security Layer ([SASL]) mechanisms, such as [PLAIN], [CRAM-MD5], and [DIGEST-MD5]. It may be applicable where simple user names and passwords are used. This profile is not intended for use in preparing identity strings that are not simple user names (e.g., email addresses, domain names, distinguished names), or where identity or password strings that are not character data, or require different handling (e.g., case folding).

このプロファイルは、[Plain]、[Cram-MD5]、[Digest-MD5]などの単純な認証およびセキュリティ層([SASL])メカニズムで使用するように設計されています。簡単なユーザー名とパスワードが使用される場合に適用される場合があります。このプロファイルは、単純なユーザー名(電子メールアドレス、ドメイン名、区別名など)ではないアイデンティティ文字列を準備することを目的としていません。また、文字データではない、または異なるハンドリングを必要とするIDまたはパスワード文字列(例:ケース、ケース、ケース折りたたみ)。

This document does not alter the technical specification of any existing protocols. Any specification that wishes to use the algorithm described in this document needs to explicitly incorporate this document and provide precise details as to where and how this algorithm is used by implementations of that specification.

このドキュメントは、既存のプロトコルの技術的仕様を変更しません。このドキュメントで説明されているアルゴリズムを使用したい仕様は、このドキュメントを明示的に組み込み、その仕様の実装によってこのアルゴリズムがどこでどのように使用されるかについての正確な詳細を提供する必要があります。

2. The SASLprep Profile
2. SASLPREPプロファイル

This section defines the "SASLprep" profile of the "stringprep" algorithm [StringPrep]. This profile is intended for use in preparing strings representing simple user names and passwords.

このセクションでは、「StringPrep」アルゴリズム[StringPrep]の「SASLPrep」プロファイルを定義します。このプロファイルは、単純なユーザー名とパスワードを表す文字列の準備に使用することを目的としています。

This profile uses Unicode 3.2 [Unicode].

このプロファイルは、Unicode 3.2 [Unicode]を使用します。

Character names in this document use the notation for code points and names from the Unicode Standard [Unicode]. For example, the letter "a" may be represented as either <U+0061> or <LATIN SMALL LETTER A>. In the lists of mappings and the prohibited characters, the "U+" is left off to make the lists easier to read. The comments for character ranges are shown in square brackets (such as "[CONTROL CHARACTERS]") and do not come from the standard.

このドキュメントの文字名は、Unicode標準[Unicode]のコードポイントと名前の表記を使用します。たとえば、文字「a」は<u 0061>または<ラテンの小さな文字a>として表される場合があります。マッピングと禁止された文字のリストでは、「u」はリストの読み取りを容易にするために省略されています。キャラクターの範囲に対するコメントは、四角い括弧(「[コントロール文字]」など)で表示され、標準からは届きません。

Note: A glossary of terms used in Unicode can be found in [Glossary]. Information on the Unicode character encoding model can be found in [CharModel].

注:Unicodeで使用される用語の用語集は、[用語集]で見つけることができます。Unicode文字エンコードモデルに関する情報は、[Charmodel]に記載されています。

2.1. Mapping
2.1. マッピング

This profile specifies:

このプロファイルは次のように指定します。

- non-ASCII space characters [StringPrep, C.1.2] that can be mapped to SPACE (U+0020), and

- 非ASSASCIIスペース文字[StringPrep、c.1.2]はスペースにマッピングできます(U 0020)、および

- the "commonly mapped to nothing" characters [StringPrep, B.1] that can be mapped to nothing.

- 「一般的にマッピングされていない」文字[StringPrep、B.1]は、何もマッピングできません。

2.2. Normalization
2.2. 正規化

This profile specifies using Unicode normalization form KC, as described in Section 4 of [StringPrep].

このプロファイルは、[StringPrep]のセクション4で説明されているように、Unicode正規化フォームKCを使用して指定します。

2.3. Prohibited Output
2.3. 禁止出力

This profile specifies the following characters as prohibited input:

このプロファイルは、次の文字を禁止された入力として指定します。

- Non-ASCII space characters [StringPrep, C.1.2] - ASCII control characters [StringPrep, C.2.1] - Non-ASCII control characters [StringPrep, C.2.2] - Private Use characters [StringPrep, C.3] - Non-character code points [StringPrep, C.4] - Surrogate code points [StringPrep, C.5] - Inappropriate for plain text characters [StringPrep, C.6] - Inappropriate for canonical representation characters [StringPrep, C.7] - Change display properties or deprecated characters [StringPrep, C.8] - Tagging characters [StringPrep, C.9]

- 非ASCIIスペース文字[StringPrep、c.1.2] - ASCIIコントロール文字[StringPrep、c.2.1] - 非ASCII制御文字[StringPrep、c.2.2] - プライベート使用文字[StringPrep、C.3] - 非非文字コードポイント[StringPrep、C.4] - サロゲートコードポイント[StringPrep、C.5] - プレーンテキスト文字に不適切[StringPrep、C.6] - 標準表現文字に不適切[StringPrep、C.7] - 表示ディスプレイの変更プロパティまたは非推奨文字[StringPrep、C.8] - タグ付け文字[StringPrep、C.9]

2.4. Bidirectional Characters
2.4. 双方向の文字

This profile specifies checking bidirectional strings as described in [StringPrep, Section 6].

このプロファイルは、[StringPrep、セクション6]で説明されているように、双方向文字列のチェックを指定します。

2.5. Unassigned Code Points
2.5. 割り当てられていないコードポイント

This profile specifies the [StringPrep, A.1] table as its list of unassigned code points.

このプロファイルは、[StringPrep、A.1]テーブルを、割り当てられていないコードポイントのリストとして指定します。

3. Examples
3. 例

The following table provides examples of how various character data is transformed by the SASLprep string preparation algorithm

次の表は、SASLPrep文字列準備アルゴリズムによってさまざまな文字データがどのように変換されるかの例を示します。

   #  Input            Output     Comments
   -  -----            ------     --------
   1  I<U+00AD>X       IX         SOFT HYPHEN mapped to nothing
   2  user             user       no transformation
   3  USER             USER       case preserved, will not match #2
   4  <U+00AA>         a          output is NFKC, input in ISO 8859-1
   5  <U+2168>         IX         output is NFKC, will match #1
   6  <U+0007>                    Error - prohibited character
   7  <U+0627><U+0031>            Error - bidirectional check
        
4. Security Considerations
4. セキュリティに関する考慮事項

This profile is intended to prepare simple user name and password strings for comparison or use in cryptographic functions (e.g., message digests). The preparation algorithm was specifically designed such that its output is canonical, and it is well-formed.

このプロファイルは、暗号化関数(例:メッセージダイジェスト)で比較または使用するために、単純なユーザー名とパスワード文字列を準備することを目的としています。準備アルゴリズムは、その出力が標準的であり、よく形成されるように特異的に設計されています。

However, due to an anomaly [PR29] in the specification of Unicode normalization, canonical equivalence is not guaranteed for a select few character sequences. These sequences, however, do not appear in well-formed text. This specification was published despite this known technical problem. It is expected that this specification will be revised before further progression on the Standards Track (after [Unicode] and/or [StringPrep] specifications have been updated to address this problem).

ただし、ユニコード正規化の仕様における異常[PR29]のため、選択された少数の文字シーケンスに対して標準的な等価性は保証されていません。ただし、これらのシーケンスは、よく形成されたテキストには表示されません。この仕様は、この既知の技術的な問題にもかかわらず公開されました。この仕様は、標準トラックのさらなる進行の前に修正されることが予想されます([Unicode]および/または[StringPrep]仕様が更新されてこの問題に対処するため)。

It is not intended for preparing identity strings that are not simple user names (e.g., distinguished names, domain names), nor is the profile intended for use of simple user names that require different handling (such as case folding). Protocols (or applications of those protocols) that have application-specific identity forms and/or comparison algorithms should use mechanisms specifically designed for these forms and algorithms.

単純なユーザー名ではないID文字列を準備することではなく(例:識別名、ドメイン名など)、プロファイルは、異なるハンドリング(ケースフォールディングなど)を必要とする単純なユーザー名の使用を目的としていません。アプリケーション固有のIDフォームおよび/または比較アルゴリズムを持つプロトコル(またはこれらのプロトコルのアプリケーション)は、これらのフォームとアルゴリズム用に特別に設計されたメカニズムを使用する必要があります。

Application of string preparation may have an impact upon the feasibility of brute force and dictionary attacks. While the number of possible prepared strings is less than the number of possible Unicode strings, the number of usable names and passwords is greater than as if only ASCII was used. Though SASLprep eliminates some Unicode code point sequences as possible prepared strings, that elimination generally makes the (canonical) output forms practicable and prohibits nonsensical inputs.

文字列準備の適用は、ブルートフォースと辞書攻撃の実現可能性に影響を与える可能性があります。可能な準備された文字列の数は、可能なユニコード文字列の数よりも少ないですが、使用可能な名前とパスワードの数は、ASCIIだけが使用されたかのように大きくなります。SASLPREPは、可能な準備された文字列としていくつかのユニコードコードポイントシーケンスを排除しますが、一般に除去は(正規の)出力フォームを実行可能にし、無意味な入力を禁止します。

User names and passwords should be protected from eavesdropping.

ユーザー名とパスワードは、盗聴から保護する必要があります。

General "stringprep" and Unicode security considerations apply. Both are discussed in [StringPrep].

一般的な「StringPrep」とUnicodeセキュリティの考慮事項が適用されます。どちらも[StringPrep]で説明されています。

5. IANA Considerations
5. IANAの考慮事項

This document details the "SASLprep" profile of the [StringPrep] protocol. This profile has been registered in the stringprep profile registry.

このドキュメントは、[StringPrep]プロトコルの「SASLPREP」プロファイルを詳しく説明しています。このプロファイルは、StringPrepプロファイルレジストリに登録されています。

Name of this profile: SASLprep RFC in which the profile is defined: RFC 4013 Indicator whether or not this is the newest version of the profile: This is the first version of the SASPprep profile.

このプロファイルの名前:SASLPREP RFCでは、プロファイルが定義されています。RFC4013インジケータこれがプロファイルの最新バージョンであるかどうか:これはSASPPREPプロファイルの最初のバージョンです。

6. Acknowledgement
6. 謝辞

This document borrows text from "Preparation of Internationalized Strings ('stringprep')" and "Nameprep: A Stringprep Profile for Internationalized Domain Names", both by Paul Hoffman and Marc Blanchet. This document is a product of the IETF SASL WG.

このドキュメントは、ポール・ホフマンとマーク・ブランシェットの両方による「国際化された文字列(「StringPrep ')の準備(「StringPrep')」と「NamePrep:国際化されたドメイン名のStringPrepプロファイル」からテキストを借用しています。このドキュメントは、IETF SASL WGの製品です。

7. Normative References
7. 引用文献

[StringPrep] Hoffman, P. and M. Blanchet, "Preparation of Internationalized Strings ("stringprep")", RFC 3454, December 2002.

[StringPrep] Hoffman、P。and M. Blanchet、「国際化された文字列の準備(「StringPrep」)」、RFC 3454、2002年12月。

[Unicode] The Unicode Consortium, "The Unicode Standard, Version 3.2.0" is defined by "The Unicode Standard, Version 3.0" (Reading, MA, Addison-Wesley, 2000. ISBN 0-201- 61633-5), as amended by the "Unicode Standard Annex #27: Unicode 3.1" (http://www.unicode.org/reports/tr27/) and by the "Unicode Standard Annex #28: Unicode 3.2" (http://www.unicode.org/reports/tr28/).

[Unicode] Unicodeコンソーシアム「Unicode Standard、バージョン3.2.0」は、「Unicode Standard、バージョン3.0」(Reading、MA、Addison-Wesley、2000。ISBN0-201- 61633-5)で定義されています。「Unicode Standard Annex#27:Unicode 3.1」(http://www.unicode.org/reports/tr27/)および「Unicode Standard Annex#28:Unicode 3.2」(http://www.unicode.org/Reports/TR28/)。

8. Informative References
8. 参考引用

[Glossary] The Unicode Consortium, "Unicode Glossary", <http://www.unicode.org/glossary/>.

[用語集] Unicode Consortium、「Unicode Glossary」、<http://www.unicode.org/glossary/>。

[CharModel] Whistler, K. and M. Davis, "Unicode Technical Report #17, Character Encoding Model", UTR17, <http://www.unicode.org/unicode/reports/tr17/>, August 2000.

[Charmodel] Whistler、K。and M. Davis、「Unicode Technical Report#17、Character Encoding Model」、utr17、<http://www.unicode.org/unicode/reports/tr17/>、2000年8月。

[SASL] Melnikov, A., Ed., "Simple Authentication and Security Layer (SASL)", Work in Progress.

[SASL] Melnikov、A.、ed。、「Simple Authentication and Security Layer(SASL)」、Work in Progress。

[CRAM-MD5] Nerenberg, L., "The CRAM-MD5 SASL Mechanism", Work in Progress.

[CRAM-MD5] Nerenberg、L。、「Cram-MD5 SASLメカニズム」、進行中の作業。

[DIGEST-MD5] Leach, P., Newman, C., and A. Melnikov, "Using Digest Authentication as a SASL Mechanism", Work in Progress.

[Digest-MD5] Leach、P.、Newman、C。、およびA. Melnikov、「SASLメカニズムとして消化認証を使用」、進行中の作業。

[PLAIN] Zeilenga, K., Ed., "The Plain SASL Mechanism", Work in Progress.

[Plain] Zeilenga、K.、ed。、「The Plain SASLメカニズム」、進行中。

[PR29] "Public Review Issue #29: Normalization Issue", <http://www.unicode.org/review/pr-29.html>, February 2004.

[PR29]「パブリックレビューの問題#29:正規化の問題」、<http://www.unicode.org/review/pr-29.html>、2004年2月。

Author's Address

著者の連絡先

Kurt D. Zeilenga OpenLDAP Foundation

Kurt D. Zeilenga OpenLdap Foundation

   EMail: Kurt@OpenLDAP.org
        

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2005).

Copyright(c)The Internet Society(2005)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

この文書は、BCP 78に含まれる権利、ライセンス、および制限の対象となり、そこに記載されている場合を除き、著者はすべての権利を保持しています。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

このドキュメントとここに含まれる情報は、「現状のまま」に基づいて提供されています。また、貢献者、彼/彼女が代表する組織(もしあれば)が後援する組織、インターネット協会とインターネット工学タスクフォースは、すべての保証、明示的または明示的、またはすべての保証を否認します。本書の情報の使用が、商品性または特定の目的に対する適合性の権利または黙示的な保証を侵害しないという保証を含むがこれらに限定されないことを含む。

Intellectual Property

知的財産

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the IETF's procedures with respect to rights in IETF Documents can be found in BCP 78 and BCP 79.

IETFは、知的財産権またはその他の権利の有効性または範囲に関して、この文書に記載されている技術の実装または使用、またはそのような権利に基づくライセンスがどの程度であるかについての使用に関連すると主張する可能性があるという立場はありません。利用可能になります。また、そのような権利を特定するために独立した努力をしたことも表明していません。IETFドキュメントの権利に関するIETFの手順に関する情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

IETF事務局に行われたIPR開示のコピーと、利用可能にするライセンスの保証、またはこの仕様の実装者またはユーザーによるそのような独自の権利の使用のための一般的なライセンスまたは許可を取得しようとする試みの結果を取得できます。http://www.ietf.org/iprのIETFオンラインIPRリポジトリから。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETFは、関心のある当事者に、著作権、特許、または特許出願、またはこの基準を実装するために必要な技術をカバーする可能性のあるその他の独自の権利を注意深く招待するよう招待しています。ietf-ipr@ietf.orgのIETFへの情報をお問い合わせください。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFCエディター機能の資金は現在、インターネット協会によって提供されています。