ASCII文字以外の文字をURLなどに使えるようにする国際化ドメイン名(IDN:Internationalized Domain Name)。2月のはじめ,IDNでURLの偽装が可能になることをセキュリティ・ベンダーなどが示し,IDN対応ブラウザのセキュリティ上の問題(security issue)だと指摘した。これに対して,日本レジストリサービス(JPRS)などは「この問題はブラウザの実装ではなく,レジストリの運用が原因」と反論。また,FirefoxやOperaといったブラウザは,それぞれ独自の方法でこの問題に対応した。

 国際化ドメイン名の何が問題なのか,セキュリティ・ベンダーの指摘にレジストリなどはどのように反論したのか,FirefoxやOperaといったブラウザはどう対応したのか――。本稿では,2月8日から始まった「IDNによるURL偽装問題」をまとめた。

非ASCII文字をURLに使える

 IDNでは,ASCII文字(半角英数字やハイフン)に加え,漢字やひらがな,アラビア文字といった非ASCII文字もドメイン名に利用できる(関連記事)。

 また,既存のDNS(Domain Name System)をそのまま使えるように,ASCII文字への変換処理を実施してから名前解決を行う。具体的には,IDNに対応したアプリケーション(Webブラウザなど)は,次のような処理を実施する(参考資料)。

 まず,ユーザーが入力した文字列を正規化して,アルファベットや数字については半角に統一するなどする。JPRSが公開する例では,ユーザーが「日本語ドメイン名EXAMPLE。jp」と入力した場合には,「日本語ドメイン名EXAMPLE.jp」とする。

 次に,Punycodeに変換する。「日本語ドメイン名EXAMPLE.jp」は「xn--example-6q4fyliikhk162btq3b2zd4y2o.jp」となる。以上の処理により,半角と全角の紛らわしさが解消されるとともに,従来のDNSの仕組みで名前解決できるようになる。

 ただし,正規化やPunycodeへの変換処理は“裏側”の話。ブラウザのアドレス・バーには,入力した文字列がそのまま表示される。入力された文字列(URL)をIDN対応ブラウザが内部的にPunycodeへ変換して,DNSサーバーへ名前解決のクエリーを送信し,そのURLに対応したIPアドレスを取得している。このため通常は,ユーザーがPunycodeを意識する必要はない。

 これらの処理ルールは,2003年3月にRFC(Request for Comments)として規定された。それを受けて,ほとんどのレジストリではIDNの登録受け付けを開始した。2003年7月にはJPRSが日本語JPドメイン名の登録受付を開始。2005年1月には,日本語JPドメイン名の登録数は6万3000件を超したという(プレス・リリース)。

 Internet Explorer(IE)以外のブラウザはIDNに対応済みなので,利用環境は整っている。IEについても,プラグイン・ソフトを使えば対応可能である。また,米Microsoftでは,2006年に予定されている次期Windows「Longhorn」のIEではIDNに対応するという。

 さらに2005年1月には,ファイルのパスやメール・アドレスなどにも非ASCIIを利用できる国際化URI(IRI:Internationalized URI)がRFC 3987として規定された(関連記事)。

ASCII文字をキリル文字で偽装

写真1●Firefox 1.0でデモ・サイト「paypаl.com」にアクセスした結果
 IDNでは,さまざまな文字/言語を利用できる。このことを逆手に取ったのが,2月の報告だった(関連記事)。「ほかの言語の“似た”文字を使うことで,全く異なるドメイン(URL)を,有名企業のドメインに見せかけることができる」――ことを示したのだ。

 2月7日前後,セキュリティ関連のメーリング・リストにこのことが投稿されると,複数の企業/組織や個人がデモ・サイトを用意した。写真1[拡大表示]は,デンマークSecuniaが用意したデモ・サイト(ページ)にFirefox 1.0でアクセスした画面である。

 Secuniaでは「paypаl.com」のIDNを取得し,今回のデモ・サイトを公開した。キリル文字(スラブ文字)の「а」を,ASCII文字の「a」の代わりに使って,米Paypalの「paypal.com」のサイトに見せかけたのである。

写真2●IEでデモ・サイト「paypаl.com」にアクセスした結果
 今回の問題の発見者や報告者の多くは,「こういった紛らわしい表示をするのは,ブラウザがIDNをきちんと取り扱えていないため」として,上記のような偽装を許すことを,IDN対応ブラウザのセキュリティ問題とした。Secuniaのサイトなどを見れば分かるが,主要なブラウザのほとんど――Mozilla Suite,Firefox,Opera,Camino,Safari,OmniWeb,Konqueror,Netscapeなど――で,この現象は再現される。ただし,IEでは起こらない。前述のように,IDNには対応していないからだ。IEではpaypаl.comへアクセスできない(写真2[拡大表示])。

 この問題を報じた記事に「FirefoxやMozillaなどにアドレス・バーや証明書の表示を偽装される脆弱性」といったタイトルを付けた筆者が言うのはおこがましいが,IDNにきちんと対応しているブラウザが「問題あり」とされて,対応していないブラウザが「問題なし」とされるのには違和感を覚えた。