Network Working Group K. Zeilenga Request for Comments: 4013 OpenLDAP Foundation Category: Standards Track February 2005
SASLprep: Stringprep Profile for User Names and Passwords
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.
このドキュメントでは、インターネットコミュニティ向けのインターネット標準追跡プロトコルを指定し、改善のための議論と提案を求めています。 このプロトコルの標準化状態とステータスについては、「Internet Official Protocol Standards」(STD 1)の最新版を参照してください。 このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (2005).
著作権(C)インターネット協会(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など)、および単純なユーザー名やパスワードを交換する他のプロトコルで使用することを目的としています。
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
このプロファイルは、[PLAIN]、[CRAM-MD5]、[DIGEST-MD5]などのSimple Authentication and Security Layer([SASL])メカニズムで使用するために設計されています。 単純なユーザー名と
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).
パスワードが使用されます。 このプロファイルは、単純なユーザー名(電子メールアドレス、ドメイン名、識別名など)ではないID文字列、または文字データではないID文字列、または異なる処理が必要な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.
このドキュメントは、既存のプロトコルの技術仕様を変更するものではありません。 このドキュメントで説明されているアルゴリズムを使用したい仕様は、このドキュメントを明示的に組み込んで、この仕様の実装がこのアルゴリズムをどこでどのように使用するかについて正確な詳細を提供する必要があります。
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>または<LATIN SMALL LETTER A>のいずれかとして表されます。 マッピングと禁止文字のリストでは、リストを読みやすくするために「U +」は省略されています。 文字範囲のコメントは角かっこ(「[CONTROL CHARACTERS]」など)で示されており、標準からのものではありません。
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]にあります。
This profile specifies:
このプロファイルは以下を指定します。
- non-ASCII space characters [StringPrep, C.1.2] that can be mapped to SPACE (U+0020), and
-SPACE(U + 0020)にマッピングできる非ASCIIスペース文字[StringPrep、C.1.2]、および
- the "commonly mapped to nothing" characters [StringPrep, B.1] that can be mapped to nothing.
-何にもマッピングできない「一般的に何にもマッピングされていない」文字[StringPrep、B.1]。
This profile specifies using Unicode normalization form KC, as described in Section 4 of [StringPrep].
このプロファイルは、[StringPrep]のセクション4で説明されているように、Unicode正規化形式KCの使用を指定します。
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]
This profile specifies checking bidirectional strings as described in [StringPrep, Section 6].
このプロファイルは、[StringPrep、セクション6]で説明されているように、双方向文字列のチェックを指定します。
This profile specifies the [StringPrep, A.1] table as its list of unassigned code points.
このプロファイルは、[StringPrep、A.1]テーブルを、割り当てられていないコードポイントのリストとして指定します。
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
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).
ただし、Unicode正規化の仕様の異常[PR29]により、少数の文字シーケンスを選択した場合、標準的な等価性は保証されません。 ただし、これらのシーケンスは整形式のテキストには表示されません。 この仕様は、この既知の技術的な問題にもかかわらず公開されました。 この仕様は、([Unicode]および/または[StringPrep]仕様がこの問題に対処するために更新された後)Standards Trackのさらなる進展の前に改訂されることが期待されます。
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.
ストリング準備の適用は、ブルートフォース攻撃および辞書攻撃の実行可能性に影響を与える可能性があります。 準備された文字列の数はUnicode文字列の数よりも少ないですが、使用可能な名前とパスワードの数は、ASCIIのみが使用された場合よりも多くなります。 SASLprepは、一部のUnicodeコードポイントシーケンスを準備済み文字列として削除しますが、その削除により、一般的に(標準)出力フォームが実行可能になり、無意味な入力が禁止されます。
User names and passwords should be protected from eavesdropping.
ユーザー名とパスワードは盗聴から保護する必要があります。
General "stringprep" and Unicode security considerations apply. Both are discussed in [StringPrep].
一般的な「stringprep」およびUnicodeセキュリティの考慮事項が適用されます。 [StringPrep]で両方について説明します。
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:これがプロファイルの最新バージョンであるかどうかのRFC 4013インジケーター:これはSASPprepプロファイルの最初のバージョンです。
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.
このドキュメントは、Paul HoffmanとMarc Blanchetによる「国際化文字列の準備( 'stringprep')」および「Nameprep:国際化ドメイン名のStringprepプロファイル」からテキストを借用しています。 このドキュメントは、IETF SASL WGの製品です。
[StringPrep] Hoffman, P. and M. Blanchet, "Preparation of Internationalized Strings ("stringprep")", RFC 3454, December 2002.
[StringPrep] Hoffman、P。および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コンソーシアム「The Unicode Standard、Version 3.2.0」は、「The Unicode Standard、Version 3.0」(Reading、MA、Addison-Wesley、2000. ISBN 0-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 /)。
[Glossary] The Unicode Consortium, "Unicode Glossary", <http://www.unicode.org/glossary/>.
[用語集] Unicodeコンソーシアム、「Unicode用語集」、<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。、およびM. Davis、「Unicodeテクニカルレポート#17、文字エンコードモデル」、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メカニズム」、Work in Progress。
[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メカニズムとして使用」、Work in Progress。
[PLAIN] Zeilenga, K., Ed., "The Plain SASL Mechanism", Work in Progress.
[プレーン] Zeilenga、K.、Ed。、 "The Plain SASL Mechanism"、Work in Progress。
[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
メール:Kurt@OpenLDAP.org
Full Copyright Statement
完全な著作権表示
Copyright (C) The Internet Society (2005).
著作権(C)インターネット協会(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開示のコピーおよび利用可能になるライセンスの保証、またはこの仕様の実装者またはユーザーによる一般的なライセンスまたはそのような所有権の使用許可の取得を試みた結果を取得できます。 IETFオンラインIPRリポジトリ(http://www.ietf.org/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のietf-ipr@ietf.orgに情報を送信してください。
Acknowledgement
謝辞
Funding for the RFC Editor function is currently provided by the Internet Society.
RFC Editor機能の資金は、現在インターネット協会によって提供されています。