要約
- RFC 3490はDNS自体をUnicode化せず、アプリケーション内にIDNAを置いた。
ToASCIIはラベルを拒否できた一方、ToUnicodeは失敗を返さず、処理できなければ元の入力を返した。 - したがって、文字列が表示されたことは、有効なIDNAラベル、登録受理、ゾーン挿入、名前解決、DNSSEC認証、あるいは支配権の証明ではなかった。それぞれ別の受領証が必要だった。
RFC 3490には、一見すると万能性をうたうような一文がある。ToUnicodeは決して失敗しない。しかし仕様が約束したのは、すべての入力を正しい国際化ドメイン名へ変えることではない。途中の処理に失敗したら、その場で元の入力を返すことだった。表示する対象は残る。妥当性が生まれるわけではない。
この非対称性は2003年の設計目標から生じた。IDNAはDNSサーバー、リゾルバー、ワイヤ形式を変更しなかった。処理はアプリケーションの中に収まり、人間向けのUnicodeと既存DNS向けのASCIIの間に薄い変換層を置いた。国際化のために世界中の基盤を一斉更新するのではなく、端のアプリケーションだけを更新できる構造だった。
仕様は適用場所も「domain name slot」として限定した。DNSのQNAME、名前解決関数の引数、メールヘッダーの@より後ろ、URIのhost部分など、ドメイン名を運ぶと明示された欄である。文章中に名前らしい文字列が出ただけでは該当しない。同じ外形でも、置かれた文脈が異なれば同じ規則を受けない。
DNSへ向かうToASCIIは拒否可能だった。ラベルごとに処理し、非ASCII入力にはNameprepを適用する。必要なら従来の文字・数字・ハイフン規則を検査し、非ASCII列が予約済み接頭辞から始まることを許さず、Punycodeで符号化してxn--を付け、最後に長さが1から63コードポイントか確認する。どれか一つでも失敗すれば操作は失敗し、そのラベルを含む名前はIDNとして使ってはならなかった。
人へ戻るToUnicodeには別の役割があった。ACE接頭辞を確認し、取り除き、Punycodeを復号する。そして得られたUnicode列へ再びToASCIIを適用し、保存しておいたASCII入力と大文字小文字を無視して一致するか確かめる。この往復が成立した場合だけ、復号した形を返す。見かけ上接頭辞を持つだけの文字列に、勝手な等価性を与えないための鏡だった。
往復が成立しなければ、関数は中間のUnicode列を成功品として見せず、元のラベルへ戻った。RFC 3490は、ToUnicode後にもACE接頭辞が残るラベルは有効なACEラベルではなく、中間で作られたUnicode列とも等価ではないと説明した。戻り値があることは表示経路の連続性を示すだけで、合格を示さない。
ここから証拠の階段が見える。文字を描画できること。ToASCIIを通ること。レジストリが言語や文字体系の方針に従って受理すること。A-labelがゾーンに入ること。DNS応答が返ること。DNSSEC検証が通ること。利用者が画面の名前を意図した主体だと理解すること。前の段は次の段を自動的に証明しない。
DNSSECに関するRFC 3490の注意は、この境界をさらに明確にする。署名対象はDNSに置かれたASCIIドメイン名であり、Unicode表示や両者の対応関係ではない。暗号的に正しい応答でも、目に見える綴りが誰を意味するか、誰がその名を支配すべきかまでは認証しない。
またIDNAは言語問題を一括解決しなかった。DNSは正確な一致を続ける。似た字形、同音、異なる綴り、繁体字と簡体字、言語固有の同一視は自動統合されない。ゾーン管理者はさらに厳しい登録規則を設けられる。符号化は相互運用の仕組みであり、名前の社会的正当性を決める法廷ではなかった。
RFC 4690はその後、類似文字、登録方針、Unicode更新、移行の難しさを整理した。2010年のRFC 5890とRFC 5891はA-labelとU-labelを定義し、登録と検索を別のプロトコルとして明示した。登録では二つの形の厳密な一致を求め、不一致を拒否できる。検索側はより寛容でも検証を残す。比較が成功しても妥当性を意味しない、とRFC 5891は明記した。
RFC 5895は入力時のmappingを共通プロトコルではなく、処理前のローカル判断として位置づけた。これはHeng Luの最小初期仕様という原則に通じる。世界共通の層は相互運用に必要な最小限を決め、言語、入力、表示、登録方針は文脈を持つ場所で決める。薄い共通層は、弱さではなく責任範囲の明晰さである。
RFC 3490の方式は後に置き換えられた。それでも、「必ず値を返す関数」を検証器と取り違えないという教訓は残る。ToUnicodeは人に何を見せるかを扱い、ToASCIIは古いDNS面へ何を渡せるかを扱った。登録、存在、応答、認証、支配は、その先で別々に確かめる事実だった。
情報源
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
