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
- Wählen Sie die Richtung Wählen Sie Domänenname zu Punycode oder Punycode zu Domänenname.
- Tragen Sie den Domänennamen ein Tragen Sie ihn vollständig samt oberster Domäne ein, wie in 日本語.jp.
- Lesen Sie das Ergebnis ab Sie erhalten die mit `xn--` beginnende Zeichenkette oder die ursprünglichen Zeichen.
- 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
Ü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.