Skip to content
AdminKit

Homograph Attack

What is Homograph Attack?

A homograph attack registers or links to a domain whose characters look identical to a trusted one but come from a different script, such as Cyrillic 'а' in place of Latin 'a', so a victim reads the fake as genuine. AdminKit's IDN homograph check shows a domain's Punycode and Unicode forms and flags mixed scripts and confusable characters.

By AdminKit team, Netbase JSC · Updated

A homograph attack abuses internationalized domain names to imitate a trusted domain with characters that look the same but are different code points, usually from another script. Because Unicode contains many visually identical letters, such as Latin “a” and Cyrillic “а”, an attacker can register a name that renders exactly like a bank or software vendor’s domain and use it in phishing links or email. Underneath, the DNS only carries ASCII: the IDNA framework in RFC 5890 maps each Unicode label (the U-label) to an ASCII A-label beginning with xn—, using the Punycode encoding from RFC 3492. That A-label is where the deception shows: a lookalike domain that seems to be plain Latin text has an xn— form that does not match the real one.

How are homograph lookalikes detected?

Unicode Technical Standard #39 defines the main tools. Its skeleton() function maps characters to shared prototypes, so two strings with equal skeletons are confusable. It separates mixed-script confusables, which share no script, from whole-script confusables, where each string is also written in a single script, and it defines restriction levels such as Highly Restrictive that limit which scripts may mix in one identifier. Browsers and registries apply rules of this kind to decide when to show the xn— form instead of Unicode; Google Chrome, for example, documents its IDN display policy, under which some domains are shown in Punycode to protect against homograph attacks. Unlike typosquatting, which waits for a user to mistype a name, a homograph domain is read correctly and still deceives.

AdminKit’s IDN homograph check shows any domain’s Punycode and Unicode forms side by side and flags mixed scripts and confusable characters. Homograph attacks are part of AdminKit’s DNS cluster; the full AdminKit glossary lists other related terms.

Frequently asked questions

Why does a homograph domain look identical to the real one?

Unicode contains many characters from different scripts that render the same or nearly the same in common fonts, such as Latin 'a' (U+0061) and Cyrillic 'а' (U+0430). A domain built from those lookalikes is a different name in the DNS but appears the same on screen.

How can you see the real form of a suspicious domain?

Convert it to its ASCII-Compatible Encoding, the A-label starting with xn--. A domain that looks like plain Latin text but has an xn-- label contains non-ASCII characters and deserves a closer look.

What is the difference between mixed-script and whole-script confusables?

Unicode UTS #39 calls two strings mixed-script confusables when they look alike but share no script, and whole-script confusables when each of them is also written in a single script. A label written entirely in Cyrillic lookalikes is a whole-script confusable and is harder to catch than one that mixes Latin and Cyrillic.

Does IDNA2008 itself prevent homograph attacks?

No. IDNA2008 (RFC 5890 and related RFCs) defines which code points are valid in domain labels, but many lookalike characters are valid; protection comes from registry policies, browser display rules and checks based on Unicode's confusable data.