Il est parfois difficile de distinguer les caractères ASCII disponibles dans Unicode. En cyrillique par exemple, la graphie de lettre « а » (U+0430) est très proche de la graphie de la lettre « a » en alphabet latin (U+0061). Les navigateurs web s’en arrangent très bien grâce à Punycode qui transforme une chaîne de caractères Unicode en chaîne ASCII.
En termes de sécurité informatique, cela peut poser un problème car il est ainsi possible d’enregistrer une URL qui sera graphiquement très proche d’une autre, mais qui emportera l’internaute vers un autre site. En somme, une tentative de phishing de la plus belle eau.
Dans Chrome, Firefox et Opera, une adresse comme xn--80ak6aa92e.com
ne comprend que des caractères cyrilliques qui s’afficheront sous la forme apple.com
. C’est aussi le cas de l’URL xn--e1awd7f.com
qui va s’afficher sous la forme epic.com
. Les polices utilisées par les deux navigateurs en question ne permettent pas de distinguer le vrai du faux, explique le chercheur en sécurité Xudong Zheng.
Il devient donc impossible d’identifier le site malveillant, sans consulter au préalable son certificat SSL. Et encore : selon Wordfence, un malandrin peut déposer un nom de domaine trompeur et acquérir un certificat SSL tout à fait valide auprès de LetsEncrypt, par exemple. Les utilisateurs de ces navigateurs sont donc susceptibles de tomber sur des sites d’hameçonnage dont les URL ressemblent comme deux gouttes d’eau à celles des sites légitimes. Microsoft Edge, Explorer et Safari sont immunisés, ces navigateurs présentant les URL malveillantes sous leur forme originale.
Ce type d’attaque, dite homographique, est connu depuis 2001, comme le raconte Silicon.fr. Le mécanisme de protection mis en place pour contrer ces attaques a une faille : si tous les caractères de l’URL sont remplacés par des équivalents issus d’une langue étrangère, l’adresse est en mesure de tromper les navigateurs faillibles comme c’est le cas des deux exemples ci-dessus.
Pour éviter de se faire avoir, on peut naviguer sur internet avec un des trois navigateurs qui ne présentent pas la faille. La vulnérabilité a été corrigée dans Chrome 59, elle le sera aussi dans Chrome 58. Quant à Firefox, il existe une manipulation : tapez about:config
dans la barre d’adresse, recherchez punycode
et dans le paramètre network.IDN_show_punycode
remplacez la valeur false
par true
.