jueves, noviembre 09, 2006

Los dominios de una letra (Director's Cut)

En uno de los comentarios a la entrada anterior Luis escribe que "no está permitido registrar dominios con una sola letra" y pienso que haría falta aclarar un par de cosas al respecto.

No hay ninguna restricción en los RFC 1034, 1035, 1123 ó 2181 (las especificaciones más representativas) que prescriba tal cosa. Más bien todo lo contrario, RFC 2181 clarifica:

The length of any one label is limited to between 1 and 63 octets

Prima facie no existe pues ninguna razón que prohíba p. ej. el dominio s.a.nz. Pero como se puede juzgar por el tamaño de esta entrada, la situación es algo más compleja :-)

En 1993 se publica RFC 1535, que documenta un problema de seguridad con una implementación de DNS bastante extendida. Basicamente el problema consiste en clientes de DNS que utilizan listas de búsqueda cuando el dominio a resolver no acaba con un punto ("no es absoluto", se suele decir). Éste es, por ejemplo, un escenario concreto:

Si el usuario User@Machine.Tech.ACES.COM trata de conectar a la máquina UnivHost.University.EDU, el cliente de DNS afectado por este problema detecta que el nombre de la máquina-destino a resolver no es absoluto, y en vez de buscar en el DNS la dirección IP de UnivHost.University.EDU tratará primero de encontrar una dirección IP de cualquiera de las siguientes combinaciones:

UnivHost.University.EDU.Tech.ACES.COM.
UnivHost.University.EDU.ACES.COM.
UnivHost.University.EDU.COM.
UnivHost.University.EDU.

Por así decirlo, el cliente trata de buscar la máquina primero en el entorno local. ¿Os figuráis por qué esto es un problema de seguridad? Si por casualidad la máquina UnivHost.University.EDU.COM. existiera, el usuario se conectaría a ella sin saber que se está conectando a la máquina equivocada. Si esta máquina estuviera en poder de Los Malos Malosos, ellos podrían sonsacarle información confidencial, digamos su contraseña.

Ahora la pregunta es: ¿y qué tiene que ver este rollo con la longitud de los nombres de dominio? El problema que describe RFC 1535 se podría erradicar si todas las implementacionas erróneas desaparecieran de golpe de la faz de la tierra. Pero como esto no es muy realista, la manera de solucionar el problema es más retorcida: evitar que no se registre a segundo nivel ningún dominio que ya exista a primer nivel. Si el dominio EDU.COM estuviera prohibido (porque EDU ya es un dominio de primer nivel), el problema no podría ocurrir en esta constelación.

Existen dos tipos de dominios de primer nivel (o TLDs, por sus iniciales en inglés): gTLDs (generic TLDs) y ccTLDs (country code TLDs). Los ccTLDs, que están asociados a países, están tomados de la lista de códigos ISO 3166-1 alpha 2, y siempre constan de dos caracteres ("ES" para España, "DE" para Alemania, etc). En estos momentos existen 244 elementos en esa lista y si estuviera prohibido registrar todos los elementos de esa lista bajo cualquier TLD, habríamos minimizado el problema descrito en RFC 1535. Desgraciadamente, la lista no es estática y se adapta según nuevos países aparecen en el mapa (como ocurrió el pasado mes de Septiembre con la inclusión de Serbia y Montenegro). ¿Qué hacer si el dominio me.de estaba registrado antes de Septiembre (algo permitido, porque "ME" todavía no estaba en la lista) y de repente "ME" se convierte el TLD de Montenegro? Retirar me.de a su dueño legítimo sería ilegal. ¿No sería pues más seguro todavía prohibir todos los dominios de dos letras para defenderse de posibles cambios futuros en la lista del ISO? Ciertamente. Y ésa es la posición de DENIC y de muchos otros registros de nombres de dominio de todo el mundo: prohibir todos los dominios de dos letras de segundo nivel a raíz del problema documentado en RFC 1535*.

"¿Y los gTLDs? ¿No tendrían que prohibirse también como dominios de segundo nivel?"

Sí, así es. Los gTLDs originales (com, net, org, edu, gov, mil, int y arpa) están también prohibidos como nombres de dominio bajo DE (y bajo muchos otros TLDs). Sin embargo, la lista de gTLDs también cambia con el tiempo y, como mencionaba, no es posible rescindir contratos existentes con dueños de nombres de dominio de segundo nivel (p.ej. name.de) cuando un nuevo gTLD (p.ej. name) es creado.

"Vale, los dominios de dos letras están prohibidos a razón de RFC 1535. Pero no hay TLDs de una letra. ¿Hay alguna razón técnica para prohibir dominios de segundo nivel de una letra?"

En realidad no. Pero sería bastante difícil explicarle a la gente que los dominios de una letra están permitidos pero los de dos no. Mucho más fácil es decir "la longitud mínima es de tres caracteres" y sanseacabó. Total, el sacrificio no es muy grande: se pierden unos veintitantos nombres de un espacio de un tamaño total de O(10^63) :-)

"¿Pero hay dominios de una letra?"

Sí, sí que los hay**. Porque algunos registros ignoran el problema.

"¿Dado que el problema se documentó en 1993, quizá ya no es actual?"

Sí, sí lo es. En nuestros servidores de nombres de dominio seguimos recibiendo unas 14.000 consultas por minuto mal direccionadas para dominios de la forma ejemplo.TLD.DE (en vez de ejemplo.TLD, cuya consulta nunca debería haber llegado a nosotros en primer lugar, sino a los servidores del TLD correspondiente), lo que significa que todavía hay mucho software anticuado por ahí suelto que utiliza listas de búsqueda.

* Aunque existen tres dominios de dos letras bajo DE cuyo origen se remonta a tiempos pre-1535 y no pueden ser borrados.
** Ése es un ejemplo de segundo nivel. En niveles más bajos de la jerarquía hay muchos más.

2 comentarios:

ch_in_sv dijo...

http://news.com.com/ también es un caso raro, no?

Marcos dijo...

COM es uno de los TLDs que no prohíbe el registro de un TLD (tanto genérico como de país) como nombre de dominio a segundo nivel. De hecho, muchos de los códigos 3166-1 bajo COM han sido registrados por esta empresa, que luego te revende tu nombre de dominio favorito a tercer nivel.

COM.COM está registrado por CNET Networks. Lo cual es una interesante jugada: por una parte tienen su propia página web (p.ej news.com.com), pero por otra parte, reciben mucho tráfico de pobres internautas afectados por las listas de búsqueda (RFC 1535). Y en los tiempos de PPC, tráfico significa dinero.