Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
confusable-vision — 793 verwechselbare Paare, die in Unicode TR39 fehlen, weltweit erster skriptübergreifender Datensatz, schriftartenbewusste SSIM-Bewertung über 230 Schriftarten und 22.000+ Zeichen | Kitploit
Tools/GitHubGitHub/paultendo/confusable-vision
OSINT (Open-Source-Intelligence)AufklärungWebsicherheitBedrohungsanalyseLieferkettensicherheitPapers & ForschungLernen & BildungKuratierte Ressourcen
GitHubpaultendo/confusable-vision

confusable-vision

793 verwechselbare Paare, die in Unicode TR39 fehlen, weltweit erster skriptübergreifender Datensatz, schriftartenbewusste SSIM-Bewertung über 230 Schriftarten und 22.000+ Zeichen

Repository anzeigen
115vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

confusable-vision

Empirische Glyphen-Ähnlichkeitsbewertung mittels Vektorkontur-Strahlenabtastung. Rendert Unicode-verwechselbare Zeichenpaare über 245 Systemschriftarten hinweg, misst strukturelle Ähnlichkeit direkt aus den Schriftkonturen (keine Rasterung) und erzeugt bewertete JSON-Artefakte mit schriftartspezifischen kontinuierlichen Distanzwerten.

Wichtige Ergebnisse aus 52,6 Millionen Einzelzeichen- und 190 Millionen Multizeichen-Vergleichen über 22.581 Zeichen und 12 Schriftsysteme:

  • 249.976 einzigartige Einzelzeichen-Verwechselbarkeitspaare in 245 Schriftarten, 12 Schriften, 66 schriftübergreifenden Paaren. 764.395 Funde insgesamt auf Schriftartenebene.
  • 2.524.275 einzigartige Multizeichen (Bigramm) Verwechselbarkeitspaare inklusive rn/m in 95 Schriftarten (33 unter Distanz 0,40) und oy/kyrillisch uk in 16 Schriftarten.
  • Schriftartspezifische kontinuierliche Distanzwerte, keine binären Listen. Jedes Paar hat einen gemessenen Strahlabstand pro Schriftart, was schriftartbewusste Zuversicht für nachgelagerte Sicherheitswerkzeuge bietet.
  • 305% mehr Funde als SDF, 29% schneller. Die angereicherte Fünf-Schicht-Strahlsignatur ist eine strikte Obermenge der SDF-Ergebnisse; ausschließlich bei SDF gefundene Paare konnten bei manueller Überprüfung nicht reproduziert werden.

Die Ausgabe speist direkt in namespace-guard für die Laufzeiterkennung von Verwechselbarkeiten in Paketnamen, Domainnamen und Identifikatoren.

Wie es funktioniert

RaySpace wirft parallele Strahlen durch Schriftkonturen in 36 Winkeln und erfasst fünf Informationsebenen pro Glyphe: Kreuzungsanzahlen, Kreuzungspositionen, Kreuzungswinkel, Ping-Distanzen (Strichbreite an jeder Kreuzung) und Ping-Max (Gegenbreite zwischen Kreuzungen). Dies erzeugt eine kompakte Signatur pro Zeichen pro Schriftart. Zwei Signaturen werden mit einer gewichteten L1-Distanz über alle fünf Ebenen verglichen.

Eine dreistufige Filterkaskade macht den erschöpfenden Vergleich handhabbar:

  1. Advance-Breitenfilter (15% Toleranz) eliminiert Paare mit unterschiedlichen Zeichenbreiten. Entfernt 63% der Kandidaten.
  2. Strahlenvergleich (Schwellwert 2,0, verschärft auf 1,0 für große Schriftpaare). Entfernt weitere 33%.
  3. Nur 3,3% der Kandidaten überleben und werden Funde.

Die Signaturdatenbank (294.646+ Einträge über 245 Schriftarten; mehr mit --include-uppercase) wird einmal vorberechnet. Die Entdeckung läuft dann als single-threaded Arithmetik auf der Datenbank und führt 52,6 Millionen Paarvergleiche in 31 Minuten ohne Worker-Threads oder GPU durch.

Schnellstart

root@kitploit:~
npm install

# 1. Erstelle die Strahlsignaturdatenbank (Voraussetzung, ~24 Min.)
npx tsx scripts/build-signature-bank.ts

# 1b. Großbuchstaben Latein A-Z einbeziehen (optional)
#     Standardmäßig enthält die Datenbank nur IDNA-PVALID-Codepunkte (Kleinbuchstaben,
#     Ziffern, Symbole). Verwende --include-uppercase, um Großbuchstaben A-Z hinzuzufügen, nützlich
#     für Schriftidentifikation und visuellen Markenvergleich, wo Großbuchstaben
#     Glyphenformen eine Rolle spielen. Der Builder ist fortsetzbar, daher berechnet dies nur
#     die zusätzlichen Codepunkte.
npx tsx scripts/build-signature-bank.ts --include-uppercase

# 1c. Beliebige Codepunktbereiche einbeziehen (optional)
npx tsx scripts/build-signature-bank.ts --extra-range=0041-005A

# 2. Einzelzeichen-Entdeckung (22.581 Zeichen, 12 Schriften, ~36 Min.)
npx tsx scripts/discover-singlechar-sdf.ts --scorer=ray

# 3. Multizeichen- (Bigramm-) Entdeckung (676 Bigramme, ~63 Min.)
npx tsx scripts/discover-multichar-sdf.ts --scorer=ray

# 4. Bewerte bekannte TR39-Multizeichen-Verwechslungen (~5 Min.)
npx tsx scripts/score-multichar-sdf.ts --scorer=ray
Legacy SSIM Pipeline

Die ursprüngliche SSIM-basierte Pipeline bewertete 26,5 Millionen Vergleiche über 230 Schriftarten. Sie bleibt funktionsfähig, wird aber für alle Entdeckungs- und Bewertungsaufgaben durch RaySpace ersetzt.

root@kitploit:~
# TR39-Bewertung verwechselbarer Paare
npx tsx scripts/build-index.ts          # Render-Index (~160s, 11.370 PNGs)
npx tsx scripts/score-all-pairs.ts      # Bewerte alle Paare (~65s, 235K Vergleiche)

# Entdeckung neuartiger Verwechslungen
npx tsx scripts/build-candidates.ts          # Kandidatensatz (~23K Zeichen)
npx tsx scripts/build-index.ts --candidates  # Kandidaten rendern (~40min, 89K PNGs)
npx tsx scripts/score-candidates.ts          # Bewertung gegen lateinische Ziele (~15min, 2,9M Vergleiche)

# Extrahiere hochbewertete Funde aus beiden Pipelines
npx tsx scripts/extract-discoveries.ts

Was gefunden wurde

Top-Verwechselbarkeitspaare (Einzelzeichen, mittlere Distanz < 0,10)

"Nullen" = Schriftarten, bei denen die Konturen bitidentische Strahlsignaturen erzeugen (Distanz 0,000). Latein w/Kyrillisch ԝ ist in allen 19 Schriftarten, die beide Glyphen enthalten, identisch.

Schriftübergreifende Durchbrüche (Einzelzeichen)

Georgische Coda (U+10FF) bildet einen vierfach verwechselbaren Ring mit lateinischem o, kyrillischem o und griechischem Omikron, alle unter Distanz 0,08.

Multizeichen-Highlight-Ergebnisse

Die Entdeckung von oy/kyrillisch uk ist der herausragende neue Fund: Das lateinische Bigramm "oy" ist visuell identisch mit dem kyrillischen Digraphenbuchstaben uk (ѹ) bei Distanz 0,000 in Helvetica und 0,0005 in Arial Unicode MS.

Schwellwertkalibrierung

Drei empfohlene Betriebsstufen:

  • Streng (< 0,50): 138 Einzelzeichen-Paare, nahezu keine Fehlalarme. Geeignet für automatische Blockierung (IDN-Registrierung, Paketnamen-Validierung), bei der Fehlalarme reale Kosten verursachen.
  • Standard (< 1,00): 4.174 Einzelzeichen-Paare, gute Balance zwischen Abdeckung und Präzision. Geeignet zum Markieren und zur manuellen Überprüfung in Sicherheitswerkzeugen.
  • Explorativ (< 2,00): Vollständiger Fundus. Enthält Rauschen am oberen Ende, aber nützlich für Forschung, Schriftarten-Audit und die Erstellung von Trainingsdatensätzen.

Schriftartabfrage

Abfragen, welche verwechselbaren Paare für eine bestimmte Schriftart existieren. Nützlich für Schriftdesigner, die einen neuen Schriftschnitt ausliefern, Browser-Anbieter, die eine Systemschriftänderung evaluieren, oder jeden, der eine Anzeigeschriftart für sicherheitskritische Kontexte wie IDN-Domains wählt.

root@kitploit:~
npx tsx scripts/query-font.ts --list-fonts                    # 218 Schriftarten in den Funddaten
npx tsx scripts/query-font.ts "Arial"                         # Alle Paare für Arial (SSIM >= 0.7)
npx tsx scripts/query-font.ts "Arial" --threshold 0.8         # Nur hohe Zuversicht
npx tsx scripts/query-font.ts "Arial" --compare "Georgia"     # Diff zweier Schriftarten nach SSIM-Delta
npx tsx scripts/query-font.ts "Arial" --json                  # JSON für nachgelagerte Verarbeitung

Die Schriftnamenübereinstimmung erfolgt case-insensitiv als Teilzeichenfolge, daher trifft "arial" auf Arial, Arial Black und Arial Unicode MS zu. Der Vergleichsmodus sortiert nach den größten SSIM-Unterschieden zuerst und zeigt genau an, welche Paare beim Wechsel der Schriftart besser oder schlechter werden.

Erfordert die Funddateien aus der Bewertungspipeline (gitignoriert, lokal neu generieren).

Ausgabe

Eingecheckt (CC-BY-4.0)

Generiert (gitignoriert, Pipeline ausführen, um zu regenerieren)

DateiBeschreibung
data/output/render-index/Render-PNGs + Index (SSIM-Pipeline)

Fortschritt

  • TR39-Validierung (1.418 Paare, 230 Schriftarten, SSIM-Pipeline)
  • Neuartige Verwechselbarkeitsentdeckung (793 hochbewertete Paare aus 23.317 Kandidaten, SSIM)
  • Schriftübergreifendes Scannen von Verwechselbarkeiten (12 ICANN-Schriften, 23,6 Mio. Paare, 563 Funde, SSIM)
  • Abfrage pro Schriftart und Schriftartenvergleich
  • RaySpace-Fünfschicht-Vektorkontur-Bewerter (ersetzt SDF und SSIM bei der Entdeckung)
  • Einzelzeichen-RaySpace-Entdeckung (249.976 einzigartige Paare, 245 Schriftarten, 12 Schriften)
  • Multizeichen-RaySpace-Entdeckung (2.524.275 einzigartige Bigramm-Paare, 245 Schriftarten)
  • Schriftübergreifende Entdeckung mit RaySpace (305% mehr Paare als SDF, strikte Obermenge)
  • Erzeuge confusable-weights-v2.json mit verteilungsbezogenen Datensätzen pro Paar: Mittelwert, p50, p90, Schriftartenanzahl, Null-Distanz-Anzahl, Null-Anteil und empfohlene Stufe (streng/standard/explorativ). RaySpace-Distanzen ersetzen SSIM. 4.174 Paare bei Standardschwellwert.
  • Binäres Signaturdatenbankformat (Ladezeit von 273 s auf Sekunden reduzieren)
  • Beliebige Schriftarten per Pfad bewerten, ohne die gesamte Pipeline erneut auszuführen

Verwandtes

  • namespace-guard (v0.16.0+) verbraucht confusable-weights.json zur gemessenen visuellen Risikobewertung über confusableDistance({ weights })
  • REPORT.md: vollständiger technischer Bericht aus der SSIM-Pipeline (12 Abschnitte, Analyse pro Schriftart, Anhänge)

Blogbeiträge

Ausführliche Artikel auf paultendo.github.io, die die Ergebnisse und Methodik hinter diesem Projekt beschreiben:

RaySpace-Methodik und Ergebnisse:

  • RaySpace: Messung von Glyphenähnlichkeit mit Vektorkontur-Strahlenabtastung
  • Von CT-Scannern zu verwechselbaren Zeichen: der Stand der Technik hinter RaySpace
  • Multizeichen-Verwechslungen: wenn rn zu m wird
  • 250.000 verwechselbare Paare. 102, die für Domainnamen relevant sind.

SSIM-Pipeline-Ergebnisse:

  • Ich habe 1.418 Unicode-Verwechselbarkeitspaare über 230 Schriftarten gerendert. Die meisten sind für das Auge nicht verwechselbar.
  • 793 Unicode-Zeichen sehen aus wie lateinische Buchstaben, sind aber (noch) nicht in confusables.txt
  • 28 CJK- und Hangul-Zeichen sehen aus wie lateinische Buchstaben
  • 248 schriftübergreifende Verwechselbarkeitspaare, die kein Standard abdeckt
  • 148x schneller: Neubau einer Unicode-Scan-Pipeline für schriftübergreifende Maßstäbe
  • Wenn Formähnlichkeit täuscht: Größenverhältnis-Artefakte bei der Erkennung von Verwechslungen
  • Der neue DDoS: Unicode-Verwechslungen können LLMs nicht täuschen, aber sie können Ihre API-Rechnung verfünffachen

Hintergrund

Beiträge, die das breitere Problemfeld abdecken, das dieses Projekt motiviert hat:

  • Ein Bedrohungsmodell für Unicode-Identifikator-Spoofing
  • Unicode-Risiko messbar machen
  • Ihr LLM liest Unicode-Codepunkte, nicht Glyphen. Das ist eine Angriffsfläche.
  • Wen schützt die Verwechselbarkeitserkennung eigentlich?
  • Unicode liefert eine Karte der Verwechslungen. Sie brauchen zwei.
  • confusables.txt und NFKC sind sich bei 31 Zeichen uneinig

Lizenz

  • Code (src/, scripts/): MIT
  • Generierte Daten (data/output/): CC-BY-4.0. Frei zur Nutzung, Weitergabe und Anpassung für jeden Zweck, einschließlich kommerzieller, mit Namensnennung.
  • Namensnennung: Paul Wood FRSA (@paultendo), confusable-vision
Tool herunterladen
QuelleZielSchriftenMittelFontsNullen
w U+0077ԝ U+051DLatein-Kyrillisch0.0001919
j U+006Aϳ U+03F3Latein-Griechisch0.0132118
i U+0069і U+0456Latein-Kyrillisch0.0186250
s U+0073ѕ U+0455Latein-Kyrillisch0.0186246
c U+0063с U+0441Latein-Kyrillisch0.0196145
o U+006Fо U+043ELatein-Kyrillisch0.0206144
j U+006Aј U+0458Latein-Kyrillisch0.0216048
x U+0078х U+0445Latein-Kyrillisch0.0235950
p U+0070р U+0440Latein-Kyrillisch0.0246146
e U+0065е U+0435Latein-Kyrillisch0.0326144
a U+0061а U+0430Latein-Kyrillisch0.0426145
QuelleZielSchriftenMittelFonts
ο U+03BFჿ U+10FFGriechisch-Georgisch0.0572
ヘ U+30D8へ U+3078Katakana-Hiragana0.12211
丶 U+4E36ヽ U+30FDHan-Katakana0.1259
二 U+4E8Cニ U+30CBHan-Katakana0.24911
口 U+53E3ロ U+30EDHan-Katakana0.26811
BigrammZielMittelFontsAnmerkungen
ll॥ U+0965 (Devanagari Doppel-Danda)0.1768Schriftübergreifend
oyѹ U+0479 (kyrillisch uk)0.32216Neuartiges schriftübergreifendes Bigramm-Verwechselbarkeitspaar
rnm U+006D0.5319533 Schriftarten unter 0,40
blы U+044B (kyrillisch yeru)0.79749Schriftübergreifend
Mittlerer SchwellwertEinzelzeichen-einzigartige PaareMultizeichen-einzigartige Paare
< 0,5013813
< 1,004.1741.631
< 1,5059.700(Rauschen)
< 2,00249.9762.524.275
DateiBeschreibung
data/output/confusable-discoveries.json110 TR39-Paare mit hohem SSIM (>= 0,7) oder pixelidentisch
data/output/candidate-discoveries.json793 neue Paare, die nicht in TR39 sind, mittlerer SSIM >= 0,7
data/output/confusable-weights.json1.397 gewichtete Kanten für die namespace-guard-Integration
data/output/cross-script-discoveries.json563 schriftübergreifende Verwechselbarkeitspaare
data/output/cross-script-summary.jsonSchriftübergreifende Zusammenfassung nach Schriftpaar
data/output/multichar-discoveries.jsonMultizeichen-Verwechselbarkeitsfunde
data/output/singlechar-sdf-scores.jsonlEinzelzeichen-RaySpace-Bewertungen
data/output/multichar-rayspace-scores.jsonlMultizeichen-RaySpace-Bewertungen
data/output/signature-bank/Strahlsignaturdatenbank (294.646 Einträge, 7,9 GB komprimiert)