ñandú.com.arxn--and-6ma2c.com.armünchen.dexn--mnchen-3ya.decontacto@correo.españa.escontacto@correo.xn--espaa-rta.eshttps://日本語.jp/ページhttps://xn--wgv71a119e.jp/%E3%83%9A%E3%83%BC%E3%82%B8аррӏе.comxn--80ak6aa92e.comLe label est entièrement écrit avec des lettres cyrilliques ou grecques identiques à des lettres latines. Il peut usurper un domaine connu : vérifiez la forme xn-- avant de faire confiance au lien.
Encodez ou décodez n'importe quel texte avec l'algorithme Punycode pur, sans le préfixe xn-- ni la normalisation des domaines. Utile pour déboguer votre propre implémentation.
maana-ptaComment ça marche
Le DNS n'accepte que les lettres ASCII, les chiffres et les tirets : un domaine comme ñandú.com.ar ne peut donc pas circuler tel quel. Les noms de domaine internationalisés (IDN) résolvent ce problème avec Punycode (RFC 3492) : chaque label contenant des caractères hors ASCII est encodé par un algorithme qui conserve les lettres courantes et ajoute à la fin la position des caractères spéciaux, puis reçoit le préfixe xn--. C'est ainsi que ñandú devient xn--and-6ma2c.
Avant l'encodage, IDNA normalise le nom : il le passe en minuscules, unifie les formes Unicode et convertit les points alternatifs comme le 。 japonais. Cet outil utilise le même mappage (UTS #46) que celui appliqué par le navigateur à l'ouverture d'une adresse, si bien que le résultat correspond à ce qui est finalement demandé au DNS. Pour les e-mails, il ne convertit que le domaine, et pour les URL, que l'hôte.
Il détaille aussi chaque label avec sa longueur et les écritures qu'il utilise, et vous avertit lorsqu'un domaine mélange des alphabets ou est écrit avec des lettres cyrilliques ou grecques identiques aux latines : c'est le principe des attaques homographes, où un lien semble provenir d'un site connu.
Exemples
ñandú.com.arxn--and-6ma2c.com.arSeul le label contenant des caractères spéciaux change ; com et ar restent identiques. C'est la forme à saisir dans le DNS et dans les SAN d'un certificat.faß.dexn--fa-hia.deAvec IDNA2008, le ß allemand est une lettre valide et il est encodé. Avec l'ancienne norme, il devenait ss et pointait vers fass.de, un domaine différent : c'est pourquoi certains systèmes anciens résolvent autre chose.аррӏе.comxn--80ak6aa92e.comL'homographe publié par Xudong Zheng en 2017 : cinq lettres cyrilliques qui ressemblent exactement à apple. Depuis, Chrome et Firefox affichent ce type de domaine sous sa forme xn--.пример.рфxn--e1afmkfd.xn--p1aiLes domaines de premier niveau peuvent eux aussi être internationalisés : .рф est celui de la Russie en cyrillique et s'écrit xn--p1ai dans le DNS.Cas d'usage
- Obtenir la forme xn-- d'un domaine avec accents ou caractères spéciaux pour créer des enregistrements DNS, configurer nginx ou Apache ou renseigner les SAN d'un certificat.
- Comprendre quel domaine réel se cache derrière un xn-- qui apparaît dans un journal, un signalement de phishing ou la barre d'adresse du navigateur.
- Examiner un lien suspect pour détecter des lettres cyrilliques ou grecques qui imitent les lettres latines.
- Convertir le domaine d'une adresse e-mail internationalisée pour un serveur qui ne prend pas en charge SMTPUTF8.
- Vérifier qu'un domaine international ne dépasse pas 63 caractères par label une fois encodé.
Questions fréquentes
Que signifie le préfixe xn-- ?
C'est le préfixe ACE (ASCII Compatible Encoding), qui indique que le label est en Punycode. Les labels comportant des tirets en troisième et quatrième positions ont été réservés à ces préfixes : les registres n'autorisent donc pas un domaine commençant par xn-- s'il ne s'agit pas d'un IDN valide.
Quelle forme utiliser dans le DNS, sur le serveur web et dans le certificat ?
La forme ASCII, avec xn--, à tous les endroits techniques : enregistrements DNS, server_name de nginx, ServerName d'Apache, SAN du certificat et en-têtes Host. La forme Unicode sert uniquement à l'affichage pour les personnes ; les navigateurs la convertissent avant d'effectuer la requête.
Qu'est-ce qu'une attaque homographe ?
Elle consiste à enregistrer un domaine qui ressemble à s'y méprendre à un autre en utilisant des lettres d'un autre alphabet, comme le a cyrillique à la place du a latin. Les navigateurs affichent la forme xn-- lorsqu'un label mélange des écritures ou ressemble à un domaine connu. Si un lien semble normal mais que sa forme ASCII commence par xn--, méfiez-vous.
Peut-on utiliser des accents dans une adresse e-mail ?
Dans le domaine, oui, et il peut être converti en xn-- pour n'importe quel serveur. La partie avant l'arobase, c'est une autre histoire : avec des caractères non ASCII, elle exige que tous les serveurs du parcours prennent en charge SMTPUTF8 (RFC 6531), et elle n'a pas de forme Punycode équivalente.
Pourquoi mon domaine en majuscules a-t-il changé ?
Les noms de domaine ne sont pas sensibles à la casse, et IDNA passe tout en minuscules avant l'encodage : MÜNCHEN.de et münchen.de sont le même domaine, xn--mnchen-3ya.de. Punycode pur, en revanche, conserve les majuscules : c'est pourquoi le convertisseur sans préfixe donne des résultats différents.