Alle Artikel

Punycode: wie internationalisierte Domains im DNS funktionieren

Deutsche Domains mit Umlauten — müller.de, björn.de — gibt es im DNS in dieser Form gar nicht: Ein Domainname wie müller.de wird tatsächlich als xn--mller-kva.de übertragen, und genau dieses Beispiel wird in fast jeder Einführung zu IDN zitiert, weil es zeigt, wie unauffällig ein einzelner Umlaut die komplette Kodierung verändert.

Wie ein einzelner Umlaut die Zeichenkette verändert

Punycode entfernt zunächst alle Nicht-ASCII-Zeichen aus dem Label und hängt danach, durch einen Bindestrich getrennt, eine kodierte Beschreibung ihrer ursprünglichen Positionen und Codepunkte an. Bei „müller" bleibt so das Grundgerüst „mller" übrig, ergänzt um die kodierte Information zum „ü" – das Ergebnis xn--mller-kva ist vollständig deterministisch und für „müller" immer identisch.

Das Sonderzeichen ß und seine Großschreibung

Das scharfe S (ß) hat erst 2017 offiziell eine eigene Großbuchstabenform (ẞ, U+1E9E) bekommen – vorher wurde es beim Großschreiben traditionell durch „SS" ersetzt. Für Domainnamen ist das ohnehin unerheblich, da DNS-Labels nicht zwischen Groß- und Kleinschreibung unterscheiden, aber es zeigt, wie jung manche Unicode-Ergänzungen für etablierte europäische Sprachen noch sind.

Typische Anwendungsfälle

  • Prüfen, welche echte Domain sich hinter einer verwirrenden xn--...-Zeichenfolge in einer E-Mail verbirgt.
  • Eine Domain mit Umlauten in ihre Punycode-Form umwandeln, bevor sie in einem DNS-Panel eingetragen wird, das nur ASCII akzeptiert.
  • IDN-Probleme bei Zertifikaten oder E-Mail-Adressen diagnostizieren.

Homograph-Angriffe betreffen auch deutsche Marken

Ein kyrillisches „а" ist in den meisten Schriftarten von einem lateinischen „a" nicht zu unterscheiden – Angreifer nutzen das, um Domains wie „аpple.com" zu registrieren, die Punycode in eine eindeutige xn---Zeichenfolge kodiert, die aber wie eine legitime Marke aussieht. Moderne Browser erkennen eine verdächtige Mischung von Schriftsystemen in einem Label und zeigen dann direkt die rohe xn---Form an, statt sie zu entschlüsseln.

Tool ausprobieren