
## この記事でわかること

- Homoglyph 攻撃の仕組み（Unicode UTS#39 confusables）
- Punycode（RFC 3492）の役割と落とし穴
- ブラウザでの判別方法
- Web 担当者向けの検出・対策

## Homoglyph 攻撃とは

![Homoglyph 攻撃の仕組み](/blog/homoglyph-kogeki/mechanism.svg)

「**見た目が同じ文字**」を ASCII の代わりに使って、正規ドメインそっくりの偽ドメインを作る攻撃です。Unicode 標準 [UTS#39 - Unicode Security Mechanisms](https://www.unicode.org/reports/tr39/) で confusable（紛らわしい）と分類されている文字が悪用されます。

代表的な置換例（example の中で）:

| ASCII | Unicode 代替 | 文字名 |
|---|---|---|
| a | а | Cyrillic A |
| e | е | Cyrillic E |
| o | о | Cyrillic O |
| p | р | Cyrillic ER |
| c | с | Cyrillic ES |
| x | х | Cyrillic Kha |
| i | і | Cyrillic I |
| l | 1 | 数字 1 |
| o | 0 | 数字 0 |

## Punycode の役割

ドメインに非 ASCII 文字を使うために、Unicode を ASCII 表記にエンコードする方式が **Punycode（RFC 3492）**。例:

- `еxample.com`（先頭が Cyrillic е）→ `xn--xample-9bd.com`

ブラウザはアドレスバーで `xn--xample-9bd.com` ではなく **見た目通りの `еxample.com`** を表示することがあり、ユーザは判別困難です。

### 各ブラウザの IDN 表示ポリシー

| ブラウザ | デフォルト挙動 |
|---|---|
| Chrome / Edge | 同一スクリプト内（全部 Cyrillic 等）なら Unicode 表示、混在は Punycode 表示 |
| Firefox | ホワイトリスト方式（信頼できる TLD のみ Unicode 表示） |
| Safari | 第二レベルドメインの混在文字を検出して Punycode 表示 |

混在攻撃（ASCII + Cyrillic 混合）は多くのブラウザで Punycode 表示されますが、**全部 Cyrillic** の場合は Unicode 表示でユーザに気付かれません。

## 検出方法

![Homoglyph 検出フロー](/blog/homoglyph-kogeki/detection.svg)

### 1. UTS#39 confusables から候補を生成

ドメイン番人の [類似ドメイン棚卸し 単発チェック](/typosquat/check) は、UTS#39 confusables の高頻度サブセット（24 文字対応）で候補を生成します。

### 2. RDAP で登録状況を確認

各候補が登録済か未登録かを RDAP で確認。登録済は次のステップへ。

### 3. ブラウザでの実機確認

実際にブラウザで開いて、Punycode 表示か Unicode 表示かを確認。Unicode 表示なら **危険度高**。

### 4. WHOIS の登録者情報を確認

「最近登録された」「外国の捨てメールアドレスで登録」「Whois Privacy で隠している」等のシグナルがあれば攻撃用と判断。

## 対策

### 1. 自社ブランドの主要 Homoglyph を防御取得

`example.com` の場合、特に注意すべき:
- `еxample.com`（Cyrillic e）
- `examp1e.com`（数字 1）
- `exampl0.com`（数字 0）

これらを自社で予防的に取得しておく（年 $10〜20）。費用対効果は十分。

### 2. EV SSL 証明書の併用

EV 証明書はアドレスバーに会社名を表示します（一部ブラウザ）。Homoglyph 偽ドメインは EV 取得が困難なので、**ブランド識別の補助**になります。

### 3. ユーザ教育

URL を直接タイプするのではなく **ブックマーク**から開くように社内案内。リンク経由でも、URL のホバー表示確認を習慣化。

### 4. DMARC ポリシーの強化

なりすましメール対策として `_dmarc.example.co.jp` を `p=reject` まで強化。詳しくは [DMARC 設定方法](/blog/dmarc-setup-guide) を参照。

## まずは現状を把握しましょう

ドメイン番人の [類似ドメイン棚卸し 単発チェック](/typosquat/check) で 30 秒で確認できます。Cyrillic / Greek の高頻度 homoglyph を含む 200+ 候補を網羅。

棚卸しと是正対応の支援は [類似ドメイン棚卸し＋ブランド保護診断](/contact)（5 万円〜）でご相談ください。

関連記事:
- [Typosquatting とは](/blog/typosquatting-toha)
- [Punycode を悪用した偽ドメインの仕組み](/blog/punycode-taisaku)
- [偽ドメインを検出する方法 5 選](/blog/nise-domain-kenshutsu)

総合点検は [無料のドメイン診断](/diagnose) を、SSL 単独は [SSL 単発チェック](/ssl/check) をご利用ください。
