La mezcla de caracteres de diferentes scripts en un ataque de homógrafo IDN es un vector de ataque común para estafas de phishing. Por lo tanto, algunos navegadores muestran el nombre IDN codificado en Punycode en lugar del decodificado para que los usuarios estén conscientes de que están visitando un sitio web que mezcla caracteres de diferentes scripts.
Por ejemplo, puedes pensar que estás visitando apple.stackexchange.com
, pero en realidad estás visitando аpple.stackexchange.com
. ¿Puedes ver la diferencia? El segundo utiliza U+0430 letra pequeña a cirílica (а
), en lugar de U+0061 letra pequeña a latina (a
), por lo que se codifica como xn--pple-43d.stackexchange.com
.
Este aviso de seguridad y la corrección de errores correspondiente en el rastreador público de errores de WebKit parecen implicar que Safari utiliza un análisis caso por caso de caracteres/glfos individuales, incluido su contexto circundante, para decidir si mostrar los caracteres como IDN decodificado o Punycode codificado en bruto. Cambios del parche:
Codificar en Punycode U+15AF cuando no está en contexto con otros puntos de código aborigen canadienses
Por lo tanto, parece que, según alguna heurística desconocida dentro de Safari (WebKit), почивнидни.com
se considera "peligroso", mientras que детскиградини.бг
no lo es. Como se puede ver en el parche mencionado anteriormente, lo que se considera "peligroso" puede cambiar de una versión de parche a otra, por lo que no hay garantía de que lo que se muestra de una manera hoy se muestre de la misma manera mañana.
Solía haber alguna información básica disponible de Apple [versión archivada de https://support.apple.com/kb/TA22996
desde la Máquina del Tiempo], pero no es muy informativa.
Es importante tener en cuenta que no hay nada incorrecto en esto. De hecho, почивнидни.com
no es un nombre de dominio legal en el Sistema de Nombres de Dominio, ya que las etiquetas DNS solo pueden contener caracteres ASCII a
–z
, 0
–9
, y -
. El nombre de dominio DNS real que está registrado con la zona DNS .com
es realmente es xn--b1aekbb1acci5f.com
, y el certificado TLS realmente es emitido a xn--b1aekbb1acci5f.com
también.
En general, un falso positivo (mostrar el Punycode cuando no hay peligro de confusión) está bien, ya que es solo una molestia menor. Un falso negativo (mostrar el IDN cuando puede ser confundido con un dominio real y confiable) puede ser catastrófico. Por lo tanto, tiene sentido inclinarse hacia el lado de la precaución y preferir mostrar un dominio en su forma de Punycode en lugar de uno en su forma de IDN.