Genereer typosquats in dnstwist-stijl voor een domein en controleer welke daarvan in het DNS worden omgezet.
Homoglyf-controle
De tool zelf is in het Engels; op deze pagina wordt uitgelegd hoe deze werkt in uw taal.
Gebruik Homoglyf-controle
Wat het doet
Plak een domeinnaam, URL of tekst om elk label in Unicode en Punycode te bekijken, evenals het schrift en het UTS #39-prototype van elk teken, en om te zien of de naam verschillende schriften combineert of als een andere ASCII-naam wordt gelezen.
Het draait volledig in je browser: er wordt niets van wat je invoert geüpload.
Hoe gebruik je Homoglyf-controle
- Plak de naam. Plak een domeinnaam, een URL, een e-mailadres, meerdere regels of een volledig bericht. Ontkrachtte vormen zoals hxxps:// en [.] worden geaccepteerd, en xn---labels worden gedecodeerd.
- Voeg het echte domein toe (optioneel). Typ het domein dat je had verwacht in het veld ‘Vergelijk met het echte domein’, bijvoorbeeld het echte domein van je bank.
- Voer de controle uit. De controle vindt plaats terwijl je typt, of wanneer je op Enter of Check drukt. Met Shift+Enter voeg je een nieuwe regel toe.
- Lees het vonnis. In het gekleurde vak staat ‘Lookalike-risico’, ‘Controleer dit’, ‘Ziet er goed uit’ of ‘Opmerkingen’, met één regel per bevinding. Bij een melding met meerdere hosts wordt een tabel weergegeven met één resultaat per host.
- Zoek de afwijkende letters. Verdachte tekens zijn gemarkeerd in het gemarkeerde domein. In de tabel ‘Tekens’ wordt elk teken vermeld met zijn codepunt, schrift en de ASCII-letter die het nabootst.
- Kopieer het of stuur het door. Kopieer de Unicode- of Punycode-vorm, of gebruik ‘Verzenden naar…’ om het domein op te zoeken via ‘DNS over HTTPS Lookup’ of ‘Abuse Contact Lookup’.
Voorbeeld
Cyrillisch-achtig teken in 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[.]exarnpleDit wordt gedecodeerd naar аррӏе.example: alle vijf letters zijn Cyrillisch en worden uitgesproken als ‘apple’, dus het label wordt gemarkeerd als ‘verwarrend binnen hetzelfde schrift’ en elk teken wordt gemarkeerd. Met ‘Load example’ wordt ook ‘apple.example’ in het vergelijkingsveld geplaatst, dat dezelfde structuur heeft.
Wat er wordt gecontroleerd
| Signaal | Wat dit betekent |
|---|---|
| Verschillende lettertypen op één etiket | Latijnse tekens vermengd met Cyrillische of Griekse tekens binnen één label worden rood weergegeven. Combinaties die door UTS #39 worden geaccepteerd, zoals Latijnse tekens met Japanse tekens, worden alleen vermeld als een teken op ASCII lijkt. |
| Een kopie van het volledige script | Elke letter is afkomstig uit een ander alfabet, maar het label leest als een ASCII-woord, zoals het Cyrillische ‘аррӏе’ voor ‘apple’. Dit is rood. |
| Verschil dat uitsluitend in de klemtoon ligt | Een woord als ‘wället’ lees je als ‘wallet’ als je het accent over het hoofd ziet. Dit is een gele. Controleer deze bevinding. |
| UTS #39-prototype | De tabel ‘Tekens’ geeft aan welke ASCII-letter of -cijfer elk teken nabootst, aangeduid als ‘lijkt op ASCII’, ‘niet-ASCII’ of ‘ASCII’. |
| Beperkingsniveau | Van ‘Alleen ASCII’ naar ‘Onbeperkt’, conform UTS #39. ‘Minimaal beperkend’ en ‘Onbeperkt’ worden in het rood weergegeven omdat deze de meest risicovolle combinaties toestaan. |
| Onzichtbare tekens en browsertoewijzing | Als de browser de host zou herschrijven, bijvoorbeeld door een teken met nulbreedte weg te laten of letters met volledige breedte om te zetten in normale letters, krijg je een gele waarschuwing en verschijnt het veld ‘Wat de browser opent’. Als de browser de host niet kan toewijzen, worden onzichtbare tekens daarin rood weergegeven. |
| Vreemde stippen | Ideografische punten of punten met volledige breedte (U+3002, U+FF0E, U+FF61) worden in browsers als punten weergegeven, maar kunnen door filters glippen die platte tekst vergelijken. |
| Gebroken Punycode | Een xn---label dat niet correct wordt gedecodeerd, is rood. |
| ASCII-trucs | Gewone ASCII-namen waarin een 0 voor de letter o, een 1 voor de letter l, 'rn' voor de letter m of 'vv' voor de letter w wordt gebruikt, krijgen een opmerking. Gebruik het vergelijkingsveld om dit te controleren. |
| Vergelijkingsresultaat | Hetzelfde domein, Verwarrend (dezelfde structuur), Verwarrend als hoofdletters en kleine letters buiten beschouwing worden gelaten, Verschilt alleen in accenten, 1 of 2 aanpassingen nodig (waarschijnlijk typo-squatting) of Niet verwarrend. |
Nog meer voorbeelden
De Cyrillische letter „а“ in een Latijnse naam, vergeleken met „wallet.example“
wаllet.exampleRisico op verwarring: het label "wаllet" bevat een mix van schriftsoorten (Latijns + Cyrillisch, beperkingsniveau: minimaal beperkend); 1 teken lijkt op ASCII en het wordt gelezen als "wallet". Punycode-vorm xn--wllet-4ve[.]example. Vergelijking: Verwarrend, beide skeletten zijn wallet[.]exarnple.
Cijfer 1 in plaats van l, vergeleken met wallet.example
wa1let.exampleZiet er netjes uit: hostnaam uitsluitend in ASCII: geen homoglyfen, geen gemengde schriften. Volgens een opmerking bevat het label een „1“ (die als „l“ kan worden gelezen). Vergelijking: Verwarrend, omdat beide namen de basisstructuur wallet[.]exarnple hebben.
Letter met accent, vergeleken met wallet.example
wället.exampleLet eens op: het label „wället“ wordt gelezen als „wallet“ als je de accenten over het hoofd ziet. Punycode-vorm: xn--wllet-gra[.]example, beperkingsniveau: Single Script. Vergelijking: het enige verschil zit in de accenten.
Veelgestelde vragen
Wat controleert de tester?
Elk label wordt vanuit Punycode gedecodeerd met een RFC 3492-decoder; elk teken krijgt zijn Unicode-script en zijn UTS #39-prototype uit confusables.txt (Unicode 18.0), en het label ondergaat een controle op gemengde scripts en krijgt een UTS #39-beperkingsniveau toegewezen. Labels waarvan alle letters als ASCII worden gelezen, worden gemarkeerd als ‘whole-script confusables’.
Kan het een lookalike over het hoofd zien of een echt domein als verdacht markeren?
Ja. UTS #39 heeft betrekking op tekens die op elkaar lijken, niet op typefouten, dus een verwisselde of ontbrekende letter komt alleen naar voren via de bewerkingsafstand in het vergelijkingsveld, en ASCII-trucs zoals ‘rn’ voor ‘m’ worden als opmerkingen vermeld. Legitieme niet-Latijnse namen, bijvoorbeeld sommige Cyrillische domeinen onder .рф, kunnen als Latijnse woorden worden gelezen en als zodanig worden gemarkeerd.
Wordt er iets via het netwerk verzonden?
Nee. Het decoderen, het herkennen van het schrift en het raadplegen van de tabel met verwisselbare tekens vinden op deze pagina plaats; de Punycode-vorm wordt gegenereerd door de URL-parser van je browser en er wordt geen DNS-opzoeking uitgevoerd.
Wat betekenen de beperkingsniveaus?
Ze zijn afkomstig uit Unicode UTS #39. „ASCII-Only” maakt uitsluitend gebruik van standaard ASCII. „Single Script” maakt gebruik van één schriftsysteem. „Highly Restrictive” staat Latijn toe in combinatie met Chinees, Japans of Koreaans. ‘Moderately Restrictive’ staat Latijn toe in combinatie met één ander gangbaar schrift, met uitzondering van Cyrillisch en Grieks. ‘Minimally Restrictive’ staat andere combinaties toe, en ‘Unrestricted’ betekent dat een teken buiten het identificatieprofiel valt.
Waarom geeft de tool aan dat de browser onder een andere naam wordt geopend?
Browsers normaliseren hostnamen met behulp van de UTS #46-toewijzing. Deze zet onder andere letters met volledige breedte om in normale letters en verwijdert onzichtbare tekens, zoals de spatie met nulbreedte en het zachte koppelteken. De link opent vervolgens de toegewezen naam, terwijl de oorspronkelijke tekst nog steeds door filters kan glippen die onbewerkte tekenreeksen vergelijken.
Hoeveel hosts kan ik tegelijkertijd controleren?
Plak een lijst of een bericht en de tool selecteert maximaal 50 hostnamen, waarbij IP-adressen worden overgeslagen. Er wordt tekst van maximaal 20.000 tekens geanalyseerd, en ook eventuele niet-ASCII-woorden buiten de hostnamen worden gecontroleerd.