ドメインのdnstwist方式のタイポスクワットを生成し、DNSで名前解決できるものを確認します。
ホモグリフチェッカー
ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。
ホモグリフチェッカー を使用してください
機能の説明
ドメイン、URL、テキストを貼り付けると、各ラベルのUnicode表記とPunycode表記、各文字の文字体系(スクリプト)とUTS #39のプロトタイプ、そして名前が複数の文字体系を混在させていないか、別のASCII名として読めないかがわかります。
すべてブラウザ上で動作します。入力した内容は一切アップロードされません。
ホモグリフチェッカー の使い方
- 名前を貼り付ける. ドメイン、URL、メールアドレス、複数行、またはメッセージ全体を貼り付けます。hxxps://や[.]のようなデファング形式も受け付け、xn--ラベルはデコードされます。
- 本物のドメインを追加する(任意). Compare with the real domain(本物のドメインと比較)に、想定していたドメイン、たとえば利用している銀行の本物のドメインを入力します。
- チェックを実行する. チェックは入力に合わせて実行されます。EnterキーまたはCheckを押してもかまいません。Shift+Enterで改行を追加します。
- 判定を読む. 色付きの枠に、Lookalike risk、Check this、Looks clean、Notesのいずれかが表示され、所見ごとに1行ずつ示されます。複数のホストを含むメッセージでは、ホストごとに結果を示す表になります。
- おかしな文字を見つける. 疑わしい文字は、強調表示されたドメイン内で印付けされます。Charactersの表には、各文字のコードポイント、文字体系、まねているASCII文字が一覧表示されます。
- コピーまたは引き渡し. Unicode形式またはPunycode形式をコピーするか、Send to…を使ってDNS over HTTPS LookupやAbuse Contact Lookupでドメインを調べます。
例
Punycodeで書かれたキリル文字の類似ドメイン
xn--80ak6aa92e.exampleLookalike 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.exampleLookalike risk:ラベル「wаllet」は文字体系が混在しています(Latin + Cyrillic、制限レベル:Minimally Restrictive)。1文字がASCIIに似ており、「wallet」と読めます。Punycode形式はxn--wllet-4ve[.]example。比較:Confusable、両方のスケルトンはwallet[.]exarnpleです。
lの代わりに数字の1(wallet.exampleと比較)
wa1let.exampleLooks clean:ASCIIのみのホストで、ホモグリフも文字体系の混在もありません。ラベルに「1」(lと読める)が含まれるという注記が付きます。比較:Confusable。両方の名前がスケルトンwallet[.]exarnpleを持つためです。
アクセント付きの文字(wallet.exampleと比較)
wället.exampleCheck 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の単語も確認されます。