Punycode-Konverter (internationalisierte Domainnamen)

Wandelt internationalisierte Domainnamen (IDN) mit Nicht-ASCII-Zeichen wie Japanisch in Punycode (eine ASCII-kompatible Kodierung) um und zurück.

Wozu Punycode dient

Das DNS beherrschte von jeher nur ASCII. Dennoch wollte man Domänennamen mit **Zeichen wie Kanji und Kana**, etwa 日本語.jp, und Punycode (RFC 3492) wurde als Brücke ersonnen. Es wandelt eine Unicode-Zeichenkette umkehrbar in eine ASCII-Zeichenkette um, die mit `xn--` beginnt, und ermöglicht so internationalisierte Domänennamen, ohne das bestehende DNS anzurühren.

Dass das Ergebnis für Menschen unlesbar ist, gehört zum Entwurf: Aus 日本語.jp wird `xn--wgv71a119e.jp`. **Browser verbergen die umgewandelte Form und zeigen in der Adresszeile die ursprünglichen Zeichen**, weshalb es gewöhnlich unbemerkt bleibt. Dieser Unterschied im Erscheinungsbild **ist jedoch zugleich eine Schwäche, die sich beim Phishing ausnutzen lässt**: Gefälschte Domänen aus ununterscheidbaren Zeichen, etwa kyrillischem «а» gegen lateinisches «a», haben reale Schäden angerichtet. Dieses Werkzeug wandelt in beide Richtungen um, und **alles läuft in Ihrem Browser.**

So wandeln Sie um

  1. Wählen Sie die Richtung Wählen Sie Domänenname zu Punycode oder Punycode zu Domänenname.
  2. Tragen Sie den Domänennamen ein Tragen Sie ihn vollständig samt oberster Domäne ein, wie in 日本語.jp.
  3. Lesen Sie das Ergebnis ab Sie erhalten die mit `xn--` beginnende Zeichenkette oder die ursprünglichen Zeichen.
  4. Vergleichen Sie beides An der ASCII-Form lässt sich prüfen, **ob sich täuschende Zeichen eingeschlichen haben.**

Tipps für die Nutzung

  • Domainnamen, die aus mehreren Labels (durch `.` getrennte Teile) bestehen, werden ebenfalls automatisch Label für Label verarbeitet: Labels, die nur ASCII-Zeichen enthalten, bleiben unverändert, während nur Labels mit Nicht-ASCII-Zeichen in die Form mit dem Präfix `xn--` umgewandelt werden.
  • Im Modus "Punycode → Domainname" werden nur Labels dekodiert, die das Präfix `xn--` enthalten; alle anderen Labels bleiben unverändert.
  • Dieselbe Konvertierungslogik lässt sich nicht nur auf Domainnamen anwenden, sondern auch auf den Teil einer E-Mail-Adresse nach dem `@` (den Domainteil).
  • Wenn man einen internationalisierten Domainnamen tatsächlich in die Adressleiste des Browsers eingibt, wandeln die meisten Browser ihn intern zunächst in Punycode um, bevor sie die DNS-Auflösung durchführen.

Wofür sich das eignet

Einen internationalisierten Domänennamen eintragen oder einrichten

DNS-Zonendateien und Serverzertifikate verlangen mitunter die Punycode-Form.

Den Absender einer E-Mail prüfen

**Ein Anzeigename, der rechtmäßig wirkt, kann sich nach der Umwandlung als ganz andere Domäne erweisen.** Solche Fälle sind real.

Eine xn--Zeichenkette in einem Protokoll lesen

Finden Sie heraus, worauf sich eine in Zugriffsprotokollen oder Berichten aufgetauchte `xn--`-Zeichenkette tatsächlich bezieht.

Eine Konfigurationsdatei prüfen

Nützlich, um zu klären, ob ein internationalisierter Name in nginx- oder Apache-Konfiguration unverändert geschrieben werden darf.

Begriffe zu Punycode

Punycode
Das Verfahren, das eine Unicode-Zeichenkette umkehrbar in ASCII wandelt (RFC 3492). **Das Ergebnis beginnt stets mit `xn--`.**
Internationalisierter Domänenname
Ein Domänenname mit Zeichen außerhalb von ASCII. Intern wird er für den Weg durchs DNS in Punycode gewandelt.
xn--
Das Präfix, das eine Bezeichnung als Punycode-kodiert ausweist. Es heißt ACE-Präfix.
Bezeichnung
Jeder durch Punkte getrennte Bestandteil eines Domänennamens. **Die Umwandlung erfolgt je Bezeichnung.**
Homographenangriff
Das Bauen einer gefälschten Domäne aus ähnlich aussehenden Zeichen. **Die Umwandlung in die Punycode-Form entlarvt ihn.**
IDNA
Die Gesamtheit der Vorgaben für internationalisierte Namen im DNS. In Gebrauch ist IDNA2008 (ab RFC 5890).

Häufig gestellte Fragen

Punycode (RFC 3492) ist ein Kodierungsverfahren, das Domainnamen mit Unicode-Zeichen – etwa Japanisch, Chinesisch oder Arabisch –, sogenannte internationalisierte Domainnamen (IDN), in Zeichenketten umwandelt, die ausschließlich aus den ASCII-Zeichen bestehen, die das DNS verarbeiten kann. Das konvertierte Label erhält dabei das Präfix `xn--`.

Das DNS (Domain Name System) wurde ursprünglich unter der Annahme entworfen, dass ausschließlich ASCII-Zeichen verwendet werden, weshalb Domainnamen mit japanischen Zeichen oder Emojis nicht direkt aufgelöst werden können. Punycode wandelt Domainnamen mit Nicht-ASCII-Zeichen in ASCII-Zeichenketten um und ermöglicht so internationalisierte Domainnamen, ohne die bestehende DNS-Infrastruktur zu verändern.

`xn--` wird als "ACE-Präfix" (ASCII Compatible Encoding) bezeichnet und signalisiert dem DNS sowie kompatibler Software, dass es sich bei diesem Label um einen mit Punycode kodierten internationalisierten Domainnamen handelt. Erkennen Browser dieses Präfix, dekodieren sie es in der Regel und zeigen dem Nutzer die ursprüngliche Unicode-Zeichenkette an.

Ja, dies ist als Phishing-Technik unter dem Namen "IDN-Homograph-Angriff" bekannt. Es gibt dokumentierte Fälle, in denen eine mit optisch fast identischen, aber unterschiedlichen Zeichen kodierte Punycode-Domain (z. B. `xn--80ak6aa92e.com`) – etwa dem kyrillischen "а" statt des lateinischen "a" – genutzt wurde, um eine legitime Domain vorzutäuschen. Führende Browser wirken dem entgegen, indem sie bei einer verdächtigen Zeichenmischung die Punycode-Form (die mit `xn--` beginnende Zeichenkette) statt der dekodierten Version in der Adressleiste anzeigen.
Tool-kun

Übrigens – die Geschichte dahinter, wie "Katze" und "日本語" zu Domainnamen wurden

Die Diskussion über internationalisierte Domainnamen (IDN) begann Ende der 1990er-Jahre, doch die Standardisierung nahm viel Zeit in Anspruch. Es wurden mehrere Ansätze vorgeschlagen, um Nicht-ASCII-Zeichen zu verarbeiten, ohne den Kern des DNS zu verändern. Letztlich setzte sich der Punycode-Ansatz durch – Kodierung und Dekodierung auf Anwendungsebene (clientseitig), ohne den DNS-Server selbst zu verändern –, der 2003 als RFC 3492 standardisiert wurde.

Der Name "Punycode" soll auf eine Verbindung von "Unicode" und "an amusing pun" (ein amüsantes Wortspiel) zurückgehen; der Algorithmus selbst ist eine für Domainnamen spezialisierte Variante eines allgemeineren Kodierungsverfahrens namens Bootstring (eine von IBM-Forschern entwickelte Universalmethode zur Kodierung eines beliebigen Zeichensatzes in einen eingeschränkten Zeichensatz). Dass selbst die Herkunft des Namens "Punycode" mit einem Augenzwinkern verbunden ist, zeigt den typischen Humor der Entwickler-Community.

Heute werden Domainnamen mit den unterschiedlichsten Sprachen und Symbolen tatsächlich registriert und genutzt – japanische Domains (`.jp`) ebenso wie Emoji-Domains (reale Beispiele wie `💩.la` existieren) –, doch im Hintergrund läuft dabei stets dieser Punycode-Konvertierungsprozess ab. Selbst die elegante japanische Domain, die in der Adressleiste des Browsers angezeigt wird, wird im Datenverkehr mit dem DNS-Server als schlichte, mit `xn--` beginnende ASCII-Zeichenkette übertragen.