フィッシングURL・ドメイン

ホモグリフチェッカー

ローカルで動作新着

ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。

ホモグリフチェッカー を使用してください

機能の説明

ドメイン、URL、テキストを貼り付けると、各ラベルのUnicode表記とPunycode表記、各文字の文字体系(スクリプト)とUTS #39のプロトタイプ、そして名前が複数の文字体系を混在させていないか、別のASCII名として読めないかがわかります。

すべてブラウザ上で動作します。入力した内容は一切アップロードされません。

ホモグリフチェッカー の使い方

  1. 名前を貼り付ける. ドメイン、URL、メールアドレス、複数行、またはメッセージ全体を貼り付けます。hxxps://や[.]のようなデファング形式も受け付け、xn--ラベルはデコードされます。
  2. 本物のドメインを追加する(任意). Compare with the real domain(本物のドメインと比較)に、想定していたドメイン、たとえば利用している銀行の本物のドメインを入力します。
  3. チェックを実行する. チェックは入力に合わせて実行されます。EnterキーまたはCheckを押してもかまいません。Shift+Enterで改行を追加します。
  4. 判定を読む. 色付きの枠に、Lookalike risk、Check this、Looks clean、Notesのいずれかが表示され、所見ごとに1行ずつ示されます。複数のホストを含むメッセージでは、ホストごとに結果を示す表になります。
  5. おかしな文字を見つける. 疑わしい文字は、強調表示されたドメイン内で印付けされます。Charactersの表には、各文字のコードポイント、文字体系、まねているASCII文字が一覧表示されます。
  6. コピーまたは引き渡し. Unicode形式またはPunycode形式をコピーするか、Send to…を使ってDNS over HTTPS LookupやAbuse Contact Lookupでドメインを調べます。

例

Punycodeで書かれたキリル文字の類似ドメイン

入力
xn--80ak6aa92e.example
出力(2026-10-20に記録)
Lookalike risk: Label "аррӏе" is written in Cyrillic but reads as the ASCII name "apple" (whole-script confusable).
Highlighted domain
аррӏе.example
Unicode form
аррӏе[.]example

Punycode (ACE) form
xn--80ak6aa92e[.]example

RESTRICTION LEVEL
Single Script
SCRIPTS
Cyrillic, Latin
READS AS
apple[.]example
Labels
UNICODE	ACE	SCRIPTS	MIXED	RESTRICTION LEVEL	SKELETON
аррӏе	xn--80ak6aa92e	Cyrillic	no	Single Script	apple
example	example	Latin	no	ASCII-Only	ASCII only
Characters
CHAR	CODE POINT	SCRIPT	UTS #39 PROTOTYPE	ID STATUS	FLAG
а	U+0430	Cyrillic	a (U+0061)	Allowed	looks like ASCII
р	U+0440	Cyrillic	p (U+0070)	Allowed	looks like ASCII
р	U+0440	Cyrillic	p (U+0070)	Allowed	looks like ASCII
ӏ	U+04CF	Cyrillic	l (U+006C)	Allowed	looks like ASCII
е	U+0435	Cyrillic	e (U+0065)	Allowed	looks like ASCII
e	U+0065	Latin	itself	Allowed	ASCII
x	U+0078	Latin	itself	Allowed	ASCII
a	U+0061	Latin	itself	Allowed	ASCII
m	U+006D	Latin	rn (U+0072 U+006E)	Allowed	ASCII
p	U+0070	Latin	itself	Allowed	ASCII
l	U+006C	Latin	itself	Allowed	ASCII
e	U+0065	Latin	itself	Allowed	ASCII
Comparison with apple[.]example
Confusable: аррӏе[.]example and apple[.]example have the same UTS #39 skeleton, so they can look identical.
SKELETON OF THE INPUT
apple[.]exarnple
SKELETON OF APPLE[.]EXAMPLE
apple[.]exarnple

аррӏе.exampleにデコードされます。5文字すべてがキリル文字でappleと読めるため、ラベルは全文字体系の紛らわしい名前(whole-script confusable)として警告され、各文字に印が付きます。Load exampleを使うと、比較欄にもapple.exampleが入ります。これは同じスケルトンを持つ名前です。

チェック対象

シグナルその意味
1つのラベル内での文字体系の混在1つのラベル内でラテン文字とキリル文字やギリシャ文字が混在している場合は赤です。ラテン文字と日本語の組み合わせなど、UTS #39が認める混在は、ASCIIに似た文字がない限り注記にとどまります。
全文字体系の類似すべての文字が別のアルファベットのものなのに、ラベルがASCIIの単語として読めるものです。たとえばappleに見えるキリル文字のаррӏеです。これは赤です。
アクセント記号だけの違いwälletのようなラベルは、アクセント記号を見落とすとwalletと読めます。これは黄色のCheck thisの所見です。
UTS #39のプロトタイプCharactersの表に、各文字がどのASCII文字や数字をまねているかが示され、looks like ASCII、non-ASCII、ASCIIのいずれかで示されます。
制限レベルUTS #39に従い、ASCII-OnlyからUnrestrictedまであります。Minimally RestrictiveとUnrestrictedは、最も危険な混在を許すため赤で表示されます。
不可視文字とブラウザによる変換ブラウザがホストを書き換える場合、たとえばゼロ幅文字を削除したり全角文字を通常の文字に変えたりする場合は、黄色の警告とWhat the browser opens(ブラウザが開く名前)の欄が表示されます。ブラウザがホストを変換できない場合、そこに含まれる不可視文字は赤になります。
変わったドット和文の句点や全角のピリオド(U+3002、U+FF0E、U+FF61)は、ブラウザではドットとして機能しますが、単純なテキスト比較を行うフィルターをすり抜けることがあります。
壊れたPunycode正しくデコードできないxn--ラベルは赤です。
ASCIIの手口oの代わりに0、lの代わりに1、mの代わりにrn、wの代わりにvvを使った単純なASCIIの名前には注記が付きます。比較欄で確認してください。
比較結果Same domain、Confusable (same skeleton)、Confusable once case is ignored、Differs only by accents、1 or 2 edits away (likely typo-squat)、Not confusableのいずれかです。それぞれ、同じドメイン、同じスケルトンで紛らわしい、大文字小文字を無視すると紛らわしい、アクセント記号だけが異なる、1〜2文字の違い(タイポスクワッティングの可能性)、紛らわしくない、を意味します。

その他の例

ラテン文字の名前に含まれるキリル文字のа(wallet.exampleと比較)

入力
wаllet.example
結果

Lookalike risk:ラベル「wаllet」は文字体系が混在しています(Latin + Cyrillic、制限レベル:Minimally Restrictive)。1文字がASCIIに似ており、「wallet」と読めます。Punycode形式はxn--wllet-4ve[.]example。比較:Confusable、両方のスケルトンはwallet[.]exarnpleです。

lの代わりに数字の1(wallet.exampleと比較)

入力
wa1let.example
結果

Looks clean:ASCIIのみのホストで、ホモグリフも文字体系の混在もありません。ラベルに「1」(lと読める)が含まれるという注記が付きます。比較:Confusable。両方の名前がスケルトンwallet[.]exarnpleを持つためです。

アクセント付きの文字(wallet.exampleと比較)

入力
wället.example
結果

Check this:ラベル「wället」は、アクセント記号を見落とすと「wallet」と読めます。Punycode形式はxn--wllet-gra[.]example、制限レベルはSingle Script。比較:Differs only by accents。

よくある質問

このチェッカーは何を検査しますか?

各ラベルをRFC 3492のデコーダーでPunycodeからデコードし、すべての文字についてUnicodeの文字体系と、confusables.txt(Unicode 18.0)に基づくUTS #39のプロトタイプを求め、ラベルごとに文字体系の混在チェックとUTS #39の制限レベルを判定します。すべての文字がASCIIとして読めるラベルは、whole-script confusableとして警告されます。

類似ドメインを見逃したり、本物のドメインを警告したりすることはありますか?

あります。UTS #39が扱うのは見た目が似ている文字であり、打ち間違いではありません。そのため、文字の入れ替えや欠落は比較欄の編集距離でしか表れず、mの代わりのrnのようなASCIIの手口は注記として示されます。非ラテン文字の正規の名前、たとえば.рф配下の一部のキリル文字ドメインは、ラテン文字の単語として読めて警告されることがあります。

ネットワーク経由で何か送信されますか?

いいえ。デコード、文字体系の判定、紛らわしい文字の表はこのページ上で実行されます。Punycode形式はブラウザ自身のURLパーサーから得ており、DNS検索は行いません。

制限レベルはそれぞれ何を意味しますか?

UnicodeのUTS #39に由来します。ASCII-Onlyは単純なASCIIだけを使います。Single Scriptは1つの文字体系だけを使います。Highly Restrictiveはラテン文字と中国語、日本語、韓国語の組み合わせを認めます。Moderately Restrictiveは、キリル文字とギリシャ文字を除く、ラテン文字ともう1つの一般的な文字体系の組み合わせを認めます。Minimally Restrictiveはその他の混在を認め、Unrestrictedは識別子プロファイルの外にある文字が含まれることを意味します。

ブラウザが別の名前を開くと表示されるのはなぜですか?

ブラウザはUTS #46のマッピングでホスト名を正規化します。この処理では、全角文字を通常の文字に変えたり、ゼロ幅スペースやソフトハイフンのような不可視文字を削除したりします。そのためリンクはマッピング後の名前を開きますが、書かれたままのテキストは、生の文字列を比較するフィルターをすり抜ける可能性があります。

一度にいくつのホストを確認できますか?

リストやメッセージを貼り付けると、IPアドレスを除いて最大50個のホスト名が抽出されます。テキストは最大20,000文字まで解析され、ホスト名以外の非ASCIIの単語も確認されます。

用語解説

PhishDestroyの調査