IDNA2003

IDNA2003

[4] IDNA2003 は、IDN (国際化ドメイン名) の利用について定めた仕様 IDNA の2003年版です。

[12] IDNA2003 ははじめて標準化された版であり、 はじめは単に「IDNA」と呼ばれていましたが、改訂版の IDNA2008 の登場により区別のために 「2003」と付けられました。

[11] RFC 5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework http://tools.ietf.org/html/rfc5890#section-1.1

[5] IDNA2008 により IDNA2003 は置き換えられ廃止されていますが、非互換な変更を含むため、 実際にはまだ IDNA2003 が使われています。

[17] IDNA2003 では、既存のプロトコルや実働しているシステムへの変更無しで IDN を扱うために、 IDNASCII文字に転写し、 IDNASCIIドメイン名との変換を末端のアプリケーション内で行います。この ASCII文字への転写法としては Punycode が採用されています。また、似た文字正規化の方法として Nameprep が規定されています。 IDNA を実装するには、 PunycodeNameprep を実装しなければなりません RFC 3490 1.3

仕様書

IDNA2003 を構成するもの

演算

ドメイン名に対する演算

[27] ドメイン名は次のように処理します。

  1. [21] まず、 ASCIIUnicode符号化されていない文字列なら、 Unicode に変換します。
  2. [22] Stringprep でいうところの蓄積文字列照合文字列のいずれかを決定します。
  3. [23] ラベル分離子によってドメイン名をそれぞれのラベルに分割します。
  4. [24]ラベルに対して、 STD 3 におけるホスト名ASCII文字に関する制限を適用するかどうかを決めます。
    • これは IDNA 以前から必要な作業であり、 IDNA 仕様はどちらにするか特に推奨するものではない、とされています。
    • この制限を適用するなら、 UseSTD3ASCIIRules フラグを設定します。
  5. [25] ToASCIIToUnicode のどちらか、適切な方を適用します。
  6. [26] ToASCII を適用したなら、ラベル分離子をすべて U+002E FULL STOP に置き換えます。

ラベルに対する演算

[18] IDNA2003 ではラベルに対して次の2つの演算が定義されています。

IDNA2008 との関係

[10] IDNA2008 により RFC 3490RFC 3491 は廃止され、全面的に改訂されています。 RFC 3492 は改訂されずにそのまま IDNA2008 でも利用されています。

[29] RFC 6797 - HTTP Strict Transport Security (HSTS) ( ( 版)) http://tools.ietf.org/html/rfc6797#section-8

[30] RFC 6797 - HTTP Strict Transport Security (HSTS) ( ( 版)) http://tools.ietf.org/html/rfc6797#section-8

[14] RFC 5731 - Extensible Provisioning Protocol (EPP) Domain Name Mapping ( 版) https://tools.ietf.org/html/rfc5731#section-2.1

The syntax for domain and host names described in this document MUST

conform to [RFC0952] and [RFC1123]. At the time of this writing, RFC

3490 [RFC3490] describes a standard to use certain ASCII name labels

to represent non-ASCII name labels.

[15] RFC 7622 - Extensible Messaging and Presence Protocol (XMPP): Address Format ( 版) https://tools.ietf.org/html/rfc7622#section-5

Interoperability Note: For backward compatibility, many existing

XMPP implementations and deployments support IDNA2003 [RFC3490]

for domainparts, and the stringprep [RFC3454] profiles Nodeprep

and Resourceprep [RFC3920] for localparts and resourceparts.