ñandú.com.arxn--and-6ma2c.com.armünchen.dexn--mnchen-3ya.decontacto@correo.españa.escontacto@correo.xn--espaa-rta.eshttps://日本語.jp/ページhttps://xn--wgv71a119e.jp/%E3%83%9A%E3%83%BC%E3%82%B8аррӏе.comxn--80ak6aa92e.comラベル全体が、ラテン文字とそっくりなキリル文字またはギリシャ文字で書かれています。有名なドメインになりすましている可能性があるため、リンクを信頼する前に xn-- 形式を確認してください。
xn-- プレフィックスの付加やドメインの正規化を行わず、純粋な Punycode アルゴリズムで任意のテキストをエンコードまたはデコードします。独自実装のデバッグに役立ちます。
maana-pta仕組み
DNS は ASCII の英字、数字、ハイフンしか受け付けないため、ñandú.com.ar のようなドメインはそのままでは扱えません。国際化ドメイン名(IDN)はこれを Punycode(RFC 3492)で解決します。ASCII 以外の文字を含む各ラベルは、通常の文字をそのまま残して特殊文字の位置を末尾に付け加えるアルゴリズムでエンコードされ、先頭に xn-- プレフィックスが付けられます。こうして ñandú は xn--and-6ma2c になります。
エンコードの前に、IDNA は名前を正規化します。小文字に変換し、Unicode の表記の違いを統一し、日本語の 。 のような代替のドットを変換します。このツールはブラウザーがアドレスを開くときに適用するのと同じマッピング(UTS #46)を使用するため、結果は最終的に DNS に問い合わせられる内容と一致します。メールアドレスはドメイン部分のみ、URL はホスト部分のみを変換します。
さらに、各ラベルを長さと使用している文字体系ごとに分解して表示し、ドメインが複数の文字体系を混在させている場合や、ラテン文字と同一に見えるキリル文字・ギリシャ文字で書かれている場合に警告します。これは、リンクを有名なサイトのものに見せかけるホモグラフ攻撃の基本的な手口です。
例
ñandú.com.arxn--and-6ma2c.com.ar変わるのは特殊文字を含むラベルだけで、com と ar はそのままです。DNS や証明書の SAN に登録すべきなのはこの形式です。faß.dexn--fa-hia.deIDNA2008 ではドイツ語の ß は有効な文字であり、エンコードされます。以前の標準では ss に変換されて別のドメインである fass.de を指していたため、一部の古いシステムでは異なる宛先に解決されます。аррӏе.comxn--80ak6aa92e.comXudong Zheng が 2017 年に公開したホモグラフです。apple とまったく同じに見える 5 つのキリル文字で構成されています。それ以降、Chrome と Firefox はこの種のドメインを xn-- 形式で表示しています。пример.рфxn--e1afmkfd.xn--p1aiトップレベルドメインも国際化できます。.рф はキリル文字によるロシアのドメインで、DNS では xn--p1ai と表記されます。ユースケース
- 日本語やアクセント付きのドメインの xn-- 形式を取得し、DNS レコード、nginx や Apache の設定、証明書の SAN に登録する。
- ログ、フィッシングの報告、ブラウザーのアドレスバーに現れた xn-- の背後にある実際のドメインを把握する。
- 不審なリンクを調べ、ラテン文字を模倣したキリル文字やギリシャ文字を検出する。
- SMTPUTF8 に対応していないサーバー向けに、国際化メールアドレスのドメインを変換する。
- 国際化ドメインをエンコードした後、各ラベルが 63 文字を超えないことを確認する。
よくある質問
xn-- プレフィックスはどういう意味ですか?
ラベルが Punycode であることを示す ACE(ASCII Compatible Encoding)プレフィックスです。3 文字目と 4 文字目がハイフンのラベルはこうしたプレフィックス用に予約されているため、有効な IDN でない限り、レジストリでは xn-- で始まるドメインを登録できません。
DNS、Web サーバー、証明書ではどの形式を使えばよいですか?
技術的な設定ではすべて xn-- 付きの ASCII 形式を使います。DNS レコード、nginx の server_name、Apache の ServerName、証明書の SAN、Host ヘッダーなどです。Unicode 形式は人に表示するためだけのもので、ブラウザーは問い合わせの前に変換します。
ホモグラフ攻撃とは何ですか?
別の文字体系の文字(例: ラテン文字の a の代わりにキリル文字の a)を使って、他のドメインと同じに見えるドメインを登録する攻撃です。ブラウザーは、ラベルが複数の文字体系を混在させている場合や有名なドメインに似ている場合に xn-- 形式で表示します。見た目は普通のリンクなのに ASCII 形式が xn-- で始まる場合は注意してください。
メールアドレスに ASCII 以外の文字を使えますか?
ドメイン部分は使用でき、どのサーバー向けにも xn-- に変換できます。@ より前の部分は事情が異なります。ASCII 以外の文字を含む場合は、経路上のすべてのサーバーが SMTPUTF8(RFC 6531)に対応している必要があり、それに相当する Punycode 形式もありません。
大文字を含むドメインが変わってしまったのはなぜですか?
ドメイン名は大文字と小文字を区別せず、IDNA はエンコードの前にすべてを小文字に変換します。MÜNCHEN.de と münchen.de は同じドメイン xn--mnchen-3ya.de です。一方、純粋な Punycode は大文字を保持するため、プレフィックスなしの変換では異なる結果になります。