国際化ドメイン名
国際化ドメイン名とは
国際化ドメイン名とは、 従来のドメイン名で使用されているアルファベット、 数字、ハイフンに加え、そのラベルに漢字やひらがな、 アラビア文字などのASCII以外の文字を使えるようにするもので、 英語ではIDN(Internationalized Domain Name)と呼ばれています。
この技術によって、 たとえば日本人にとっての日本語ドメイン名のように、 非英語圏のインターネットユーザにとって、 よりわかりやすい文字を使用したドメイン名を利用することができるようになります。
この国際化ドメイン名の実現にあたっては、 現在のインターネットへの影響を最小限に抑えるために、 現行のDNSの構造を壊すことがないよう、 既存のプロトコルと互換性がある仕組みが採用されています。
その仕組みとは、国際化ドメイン名を使用する際、 ユーザ側のアプリケーションにおいて、 その国際化ドメイン名を一定の法則に従って、 英数字から成るドメイン名に変換し、 ネームサーバとの通信はこれまで通り7bit ASCIIだけで構成される文字列を用いるというものです。
この方法を採用することにより、 ユーザ側のアプリケーションに国際化ドメイン名対応の仕組みを加えるだけで、 既存のDNSに変更を加えることなく、 国際化ドメイン名が利用できるようになるというメリットがあります。
国際化ドメイン名のしくみ
実際に国際化ドメイン名を使って通信を行う場合、 以下のような手順で従来同様の7bit ASCIIからなるドメイン名に変換されて通信が行われます。
「日本語ドメイン名EXAMPLE.jp」というドメイン名を例に挙げると、 以下のように変換が行われます。
「日本語ドメイン名EXAMPLE。jp」(ユーザが入力した文字列) ↓ NAMEPREPによる正規化 「日本語ドメイン名EXAMPLE.jp」 ↓ Punycodeによる変換 「xn--example-6q4fyliikhk162btq3b2zd4y2o.jp」
(1) 入力された文字列の正規化
入力された国際化ドメイン名は、NAMEPREPと呼ばれる仕組みにより、 一定の標準形に整形されます。これを正規化と呼びます。
たとえば、全角の「。」(句点)は半角の「.」(ドット)に、 全角の「jp」は半角の「jp」に変換されます。 また、アルファベットの大文字も全て小文字に変換されます。
(2) 7bit ASCII文字列への変換
上記のNAMEPREPで正規化された文字列は、 既存のDNSの仕組みに合わせた形にするために、アルファベット、数字、 ハイフンから成る従来同様のドメイン名に変換されます。 この変換にはPunycodeと呼ばれる仕組みが使われます。
たとえば、「日本語ドメイン名EXAMPLE.jp」は、
「xn--example-6q4fyliikhk162btq3b2zd4y2o.jp」
というドメイン名に変換されます。
※ 文字列の先頭にあるアルファベット2文字とハイフン2つから成る部分 (「xn--」の部分)は、 このドメイン名が国際化ドメイン名であることを示すものです。
(3) DNSへの問い合わせ
上記のようにASCII 文字列に変換された文字列からなるドメイン名を利用することにより、 従来と同様の方法でDNSへの問い合わせを行うことができます。
国際化ドメイン名を支える技術
IDNA
国際化ドメイン名を使って通信を行う際には、 ASCII文字列からなるドメイン名に変換を行った上で通信が行われることになりますが、 この変換の際に使われる技術と処理手順を規定しているものが IDNA(Internationalizing Domain Name in Application)と呼ばれる技術です。
このIDNAでは、 ユーザ側のアプリケーションで国際化ドメイン名の解釈を行うことや、 入力された文字列をNAMEPREPという仕組みで正規化すること、 既存のDNSとの互換性を保つために国際化ドメイン名をPunycode と呼ばれるアルゴリズムでASCII文字列に変換することなどが定められています。
国際化ドメイン名を利用する際には、 各アプリケーションはこのIDNAに従って国際化ドメイン名をネットワークに送出します。
STRINGPREP (Preparation of Internationalized Strings)
国際化ドメイン名で使用されるUnicodeという規格では、 アクセント記号などは他の文字と組み合わせて合成することになっていますが、 よく使われるものについては最初から合成済みの文字も定義されており、 その場合は同じ文字を表すのに二つの方法(文字コード) が存在することになります。 また、他の文字セットとの互換性のために、 一つの文字に複数の文字コードが割り当てられていることもあります。
このように、表示上は同じ文字であっても、 コンピュータの内部では異なる文字コードとなっていることがありえるわけですが、 インターネットのプロトコルにおいてそれら文字列が識別子として利用される場合には、 そのような文字を同一のものとして扱えないと混乱が生じてしまいます。
このような、「文字コードとしては異なる文字だが、 インターネットのプロトコルにおいては同じ文字として扱いたい文字」について、 あらかじめ設定しておいた基準に従って標準形へと変換(文字列の正規化) するための枠組みを規定したものがSTRINGPREPです。
NAMEPREP (A Stringprep Profile for Internationalized Domain Name)
STRINGPREPを国際化ドメイン名に対して適用するため、 その具体的な方法を規定したものがNAMEPREPです。
このNAMEPREPによる処理を行うことで、 国際化ドメイン名として入力された文字列の文字種や互換文字の統一、 ラベル区切り文字の変換などが行われます。
具体的な例を挙げると、たとえば日本語の場合は、 アルファベットの大文字・小文字は全て小文字に、全角英数字は半角に、 半角カナは全角カナに統一されます。 また、全角の「.」や句点「。」は半角の「.」に変換されます。
Punycode
国際化ドメイン名で使用されるUnicodeによる文字列を、 ASCII文字のみからなる文字列に変換するためのアルゴリズムです。
国際化ドメイン名の検討段階では、 ACE(ASCII Compatible Encoding)変換のための方式のひとつである RACE(Row-based ACE)と呼ばれるアルゴリズムが使われていましたが、 RACEよりも優れた方式としてAMC-ACE-Z (Adam M Costello氏が考案した26番目の変換方式の意) と呼ばれる方式が提案され、標準として採用されることになりました。 その後、このAMC-ACE-Zは考案者によりPunycodeと名付けられました。
国際化ドメイン名を表すプレフィックスとして、 RACEでは「bq--」が使われていましたが、 Punycodeでは「xn--」がプレフィックスとして規定されています。
各レジストリおよびブラウザのRFC準拠化状況について
株式会社日本レジストリサービス(以下JPRS)では、 日本語JPドメイン名の運用に関してRFCへの準拠化作業を完了し、 2003年9月4日よりPunycodeのみによる運用が開始されています(これに伴い、 それまでのRACEとPunycodeとの併用は終了しています)。
また、VeriSign Naming & Directory Servicesが運用を行っている日本語COM/NETドメイン名に関しても、 2003年12月13日よりRFCへの準拠化作業が開始され、 現在はRACEとPunycodeを併用する形での運用が行われています。
上記以外の、 国際化ドメイン名に関するRFCが発行された後に国際化ドメイン名の登録受付を開始したTLDにおいては、 はじめからRFCに準拠する形でPunycodeを利用した運用が行われています。
Webブラウザの国際化ドメイン名への対応状況については、 2012年3月現在、Internet Explorer (バージョン7以降)、 Mozilla Firefox、Opera、Google Chrome、Safari等、 メジャーなWebブラウザであれば、 ほぼすべてのブラウザが国際化ドメイン名に対応しています。
なお、国際化ドメイン名の導入当初においては、 レジストリやWebブラウザによりRFCへの対応状況が異なっていたことから、 JPNICでは日本語ドメイン名を扱う各レジストリ(JPRSとVeriSignNaming & Directory Services)の動向の違い、 並びに、Webブラウザの対応状況について調査を行っていました。 (参考:2004年4月当時の調査結果)
IDN TLD(国際化トップレベルドメイン名)
国際化ドメイン名の技術を、 従来の第2レベルドメインだけでなくトップレベルドメイン(TLD)にも導入し、 トップレベルドメインを表すラベルの文字列として漢字やアラビア文字、 ハングルなどを利用できるようにしたTLDを、 IDN TLD(国際化トップレベルドメイン名)と呼びます。
ccTLDにおいて、「ファスト・トラックプロセス」と呼ばれる、 暫定的なアプローチに基づいた導入が2009年11月より開始されました。 2012年2月時点では、 「.中国」や「.韓国(原文はハングル)」などをはじめ、 30以上のIDN ccTLDが利用可能になっています。
また、gTLDにおいても、 2011年12月から開始された新gTLD募集プログラムでは、 国際化ドメイン名を用いたgTLDの申請が可能となっています。
参考:インターネット1分用語解説
「IDN TLD(国際化トップレベルドメイン名)とは」
「ファスト・トラック(Fast Track)とは」
「IDN TLD(国際化トップレベルドメイン名)とは」