IDNとは?
IDN(Internationalized Domain Name)は、元のDNS仕様で使用される従来のASCIIセット以外の文字を含むドメイン名です。 IDNsは、中国語(中文)、アラビア語(月次)、Cyrillic(пример.com)などのネイティブスクリプトでドメイン名を有効にします。
なぜIDNSのマット
元のDNSは英語のスピーカーのために設計され、ドメイン名を制限します。
- 手紙 a-z (ケースの無感覚)
- 番号 0-9
- ハイフン(開始時または終了時)
言語がラテン語を使わない10億人を除外しました。 IDNsは、インターネットを有効化することで民主化します。
- Native Language Addresses: ユーザーは自分の言語でURLを入力することができます
- ブランド保護: 企業は複数のスクリプトで名前を固定することができます
- 文化アクセシビリティ:インターネット参加の障壁を削減
IDNsの仕組み:Punycode接続
DNS インフラストラクチャは ASCII だけを理解しているため、IDNs は、Punycode と呼ばれる巧妙なエンコーディングシステムを使用します。 IDNを登録またはアクセスする場合:
1. ユーザータイプ:中国語(簡体字)
2. ブラウザエンコード:xn--fiq228c.com (Punycode表現)
3. DNS Resolves:標準ASCIIルックアップ
4. *Browser Displays: 日本語
"xn--" 接頭辞は、Punycode 符号化された文字列を表します。 ユーザに透明で起こります。
プニーコード例
| サインイン | プニーコード |
|---|---|
| メニュー | xn--mnchen-3ya.de |
| お問い合わせ | xn--fiq228c.com |
| правда.рф | xn--80afi6cg.xn--p1aiの |
TLD間でIDNサポート
IDNサポートはTLDにより異なります。
###フルサポート
ほとんどの現代gTLDおよび多くのccTLDsサポートIDNs:
- .com、.net、.org(Verisign)
- .de (ドイツ文字)
- .jp(日本語)
- .cn (中国語)
##国際化TLD
一部の TLD は IDNs 自身です:
- .рф (ロシア、Cyrillic)
- 中国(中国)
- .インド、デバナガリ
- .العربية (サウジアラビア、アラビア語)
限定またはサポートなし
一部の TLD は、IDN を制限したり、まったくサポートしません。 ターゲット TLD の IDN サポートを常に確認します。
セキュリティの考慮事項:ホモグラフ攻撃
IDNs は、homograph 攻撃によるセキュリティリスクを導入しています、異なるスクリプトから視覚的に類似した文字が受容性のドメインを作成します。
apple.com (legitimate - Latin letters)
аpple.com (attack - Cyrillic 'а' looks like Latin 'a')
ホログラフ攻撃に対する保護
ブラウザの行動: 現代のブラウザは、Unicodeフォームの代わりに疑わしいIDNのPunycodeを表示し、攻撃を明らかにします。 Registry Policy : 文字セットが単一のドメインで組み合わせる制限がいくつかあります。 ドメイン監視**: DomScanのtyposquattingの検出のような用具はあなたのブランドの登録されていた均衡を識別できます。IDNサポートの実施
開発者向けドメインツール:
検証
// Check if domain contains non-ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
変換
// Convert to Punycode for DNS queries
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
RDAP Queries # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
ほとんどのRDAPサーバーは両方のフォームを受け入れます:
# Both work
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
ベストプラクティス
IDNs と連携する場合:
1. 常に内部でPunycodeの形態を貯え、処理します
2. ユーザにUnicodeフォームを表示
3. セキュリティ機能の同点検出を実施
4. 登録前の TLD 固有の IDN ポリシーを確認する