lunes, noviembre 19, 2007

Dominios multilingües

Voy a comentar brevemente cómo funcionan los dominios multilingües y criticar, como no, el funcionamiento de .es.

NOTA: Blogger no soporta los dominios multilingües en los enlaces y por tanto si queréis ver los ejemplos de los que hablo tendréis que copiar y pegar las direcciones en el navegador a mano. Lo siento.

Los dominios multilingües son aquellos dominios que tienen caracteres no ASCII. Por ejemplo, www.elpais.com no es multilingüe, pero www.elpaís.com sí que lo es (por cierto este último no está registrado por nadie).

Cuando se idearon los servidores DNS (que convierten los dominios en direcciones IP y que es realmente de lo que entienden los ordenadores) no se pensó en dominios multilingües. Así que para soportarlos había que chapucear un poco el DNS. Había dos opciones, o cambiar los servidores DNS de todo el mundo, con lo que eso conlleva, o cambiar los clientes de todo el mundo, que tampoco es moco de pavo. Al final se decidió optar por esta segunda solución. Para que os hagáis una idea de la gran chapuza que es esto, los navegadores actuales soportan los dominios multilingües, como por ejemplo Firefox o IE7, pero IE6 no. Y si nos vamos a otros clientes que no sean navegadores, como clientes de correo electrónico, la lista es mucho más reducida. Total, que tener un dominio multilingüe puede ser un impedimento para que te encuentren. Mi opinión: de momento es mejor no usarlos.

Bueno, la gran pregunta, ¿cómo funcionan?

Cuando tecleas en la barra de dirección una letra que no sea ASCII, el navegador lo reconocerá y procederá a realizar una conversión unívoca con caracteres ASCII. Por ejemplo, www.españa.es se convierte en www.xn-espaa-rta.es. La conversión, muy brevemente se basa en lo siguiente:

  1. Coges la palabra que tiene caracteres no ASCII, en este caso españa. El resto se queda igual (el www y el es).
  2. Quitas los caracteres no ASCII. Te queda espaa.
  3. Añades xn- delante de la palabra y añades un guión después. Te queda xn-espaa-.
  4. Conviertes el carácter con una tabla/fórmula a un número y ese número lo codificas con letras de una forma preestablecida y bidireccional. En este caso, una ñ situada en la posición 5 de una palabra de 6 letras se codifica como rta. Por tanto nos queda xn-espaa-rta.
Una vez que tenemos www.xn-espaa-rta.es, hacemos la petición al DNS de dicho dominio (y por tanto los dominios que empiezan por xn- están reservados).

Resulta que esta funcionalidad de los dominios multilingües tiene un riesgo, y es el pishing. Por ejemplo, en griego existe la a cirílica, que se representa con el siguiente símbolo: а. Parece igual que una a, pero la codificación es distinta. Por tanto www.amazon.com y www.аmazon.com son domios distintos. El primero corresponde con www.amazon.com y el segundo con www.xn--mazon-3ve.com. Por tanto si alguien te manda un enlace por correo o por un chat te pueden hacer entrar en una web falsa y pedirte números de tarjeta de crédito. La solución es que en la barra de direcciones se muestre www.xn--mazon-3ve.com, con lo que te darías cuenta, pero claro, el que registre www.españa.es no quiere que sus clientes vean www.xn-espaa-rta.es porque es bastante feo. Y ni hablamos de los chinos, que teclean en chino y se les muestra un www.xn--asghiashg.com. Muy feo.

La solución que propone Firefox (y creo que Opera también) para esto es que si un dominio de alto nivel se une al sistema multilingüe, tiene que publicar unos mecanismos para evitar pishing. Si son aceptados por Mozilla, en la barra aparecerá la dirección tal y como se escribió. Por ejemplo, www.españa.de te lleva a una web de aparcamiento de dominios y en la barra del navegador se ve www.españa.de. En cambio si entras en www.españa.com o en www.españa.es verás el típico www.xn-espaa-rta.com y www.xn-espaa-rta.es. Es decir, ni .com ni .es han hecho los deberes. .de sí que los ha hecho.

Dos notas finales:

  1. Esto de los dominios multilingües se llama IDN y la web de la Wikipedia es muy buena. Explican de forma muy profunda el algoritmo de conversión entre caracteres no ASCII y ASCII que yo he simplemente he mencionado brevemente.
  2. ¿españa = xn-espaa-rta? ESTO ES ESPAAAAAAAAAAAAAAAAAAAARTA, que dijo Leónidas (no es mío, claro está)

Tags Technorati: , ,

2 comentarios:

Groilés dijo...

Muy currado! Aunque no he pillado la diferencia entre a y a, tiene algo que ver con la paradoja de Russell??

Alex dijo...

La diferencia es de codificación en unicode, no de representación. Si por ejemplo creamos un alfabeto español diferenciado del latino, cosa que no pasa, la codificación de las letras será distinta a las del ascii. En griego parece que pasa eso.