Source: http://docplayer.es/951145-Extensiones-al-protocolo-epp-para-el-sistema-de-registro-de-dominios-uy.html
Timestamp: 2016-10-27 23:19:33+00:00

Document:
⭐Extensiones al protocolo EPP para el sistema de registro de dominios.uy
Extensiones al protocolo EPP para el sistema de registro de dominios.uy
Download "Extensiones al protocolo EPP para el sistema de registro de dominios.uy"
Claudia Torregrosa Casado
1 Instituto de Computación Facultad de Ingeniería Universidad de la República Proyecto de Grado Extensiones al protocolo EPP para el sistema de registro de dominios.uy Autores: Pablo Cal Ernesto Pin Tutor: Pablo Rodríguez Usuario responsable: Sergio Ramírez SeCIU Tribunal corrector: Carlos Martínez Pedro Piñeyro Leonardo Vidal Mayo de 2011 Montevideo, Uruguay2 Resumen El Extensible Provisioning Protocol (Protocolo Extensible de Provisión, EPP) es un protocolo para el registro centralizado de objetos. Su principal característica es la extensibilidad, la cual lo hace apto para el registro de una gran variedad de objetos. Además, hace posible modificar el mapeo del protocolo a diversos objetos para adaptarlo a las necesidades de su usuario. La primer intención del protocolo fue el registro centralizado de nombres de dominio de Internet, con la información asociada de servidores de nombres y personas que responden por dichos dominios, para su posterior publicación en el Servicio de Nombres de Dominio (Domain Name Service, DNS). Esto se logró a través del mapeo del protocolo a los objetos domain (que representan un nombre de dominio), host (los cuales representan a los servidores de nombre que responden por los dominios), y contact (utilizados para almacenar la información relativa a las personas). En Uruguay, la tarea de registro de nombres de dominio, es llevada a cabo por el Servicio Central de Informática Universitaria (SeCIU), el cual tiene delegado el registro de los dominios.com.uy a la estatal Administración Nacional de Telecomunicaciones (ANTEL). Actualmente, estos registros son disjuntos, pero es interés del servicio, el centralizarlos y abrir la posibilidad de más registradores para los diversos sub-dominios. Para esto, SeCIU, plantea el uso de EPP como protocolo de comunicación entre los registrars y el registry central. Por tal motivo, se plantea este proyecto, el cual busca reducir la brecha existente entre los requerimientos de SeCIU respecto al registro de dominios, y la utilización de EPP para cubrirlos. Palabras clave DNS, dominio, zona, EPP, registry, registrar, registrant.3 Tabla de contenidos 1. Introducción Presentación Contexto de trabajo Objetivos Marco de trabajo Sistema de Nombres de Dominio Sistemas de Registro de Nombres de Dominio Protocolo Extensible de Provisión Extensiones a EPP Software de Repositorio Desarrollo Definición de Extensiones para el Registro de Dominios.UY Repositorio Extendido de Dominios Modelo de pruebas Final I Marco de trabajo 9 2. DNS Introducción El Sistema de Nombres de Dominio Características claves del diseño del DNS Extensiones de seguridad para DNS Beneficios Modificaciones a DNS Proceso de Validación Firmado de una Zona Gestión de Claves Limitaciones de DNSSEC ii4 TABLA DE CONTENIDOS iii 2.4. El Servidor de Nombres BIND Sistemas de Registro Introducción Registro de dominios.uy Registro de Nombres de Dominio en SeCIU Sistema Integral de Gestión de Dominios Registro de Nombres de Dominio en ANTEL Validación de nombres de dominio Registro de dominios.cl Registro de dominios.pl Reglas para el registro de Nombres Utilización de EPP Registro de dominios.br Dominios de segundo nivel Soporte para DNSSEC EPP Introducción El protocolo EPP Comandos del EPP Identificación de objetos Mensajes básicos Códigos de resultado Consideraciones de seguridad Extendiendo el EPP Marco de trabajo para las extensiones Guías para extender el protocolo Utilizando EPP Contactos Hosts Nombres de dominio de Internet Resumen del capítulo Extensiones a EPP Introducción Extensiones para el dominio.coop Extensiones para IDN Extensiones para DNSSEC Extensiones para el dominio.pl Extensiones para el dominio.br5 TABLA DE CONTENIDOS iv 5.7. Período de gracia Resumen del capítulo Software de Repositorio Introducción OpenReg CoCCA FRED Otros sistemas Librerías EPP Universal Registry/Registrar Toolkit Perl EPP Library (Net::EPP) PHP EPP Library (Net_EPP_Client) NeuLevel Registrar Toolkit Net::DRI EppClient API Clientes EPP genéricos Clientes EPP específicos Extendiendo OpenReg Modificación del XML de entrada de un comando EPP Modificación del XML de salida de un comando EPP Creación de un nuevo comando EPP Modificación de generación de archivo de zona Corrección de problemas de portabilidad Conclusiones II Desarrollo Extensiones para.uy Introducción Manejo de Dominios Críticos Problema Solución Implementación Registro de nombres IDN Problema Solución Implementación Extensiones DNSSEC Solución6 TABLA DE CONTENIDOS v Implementación Validación de acciones Problema Solución Implementación Listados de objetos Problema Solución Período de Gracia Problema Solución Implementación Auditoría de acciones Problema Solución Implementación Repositorio Extendido de Dominios Introducción Modelo de Casos de Uso Actores Casos de uso Casos de uso críticos Registro de dominios con conflictos IDN Registrar un dominio que necesita autorización previa Tipos de datos Modelo de Arquitectura Vista lógica y de componentes Vista de subsistemas Vista de implementación y despliegue Modelo de implementación Tecnologías empleadas Implementación de extensiones Implementación de un Agente Legislador Implementación de un Agente Ejecutor Modelo de pruebas Introducción Entorno de pruebas Casos de prueba Creación de dominio especial7 TABLA DE CONTENIDOS vi Creación de dominio IDN DNSSEC Reportes Dominios Críticos Logs Pruebas de Performance Conclusiones III Final Conclusiones Conclusiones Sistemas de repositorio DNSSEC Repositorio Extendido de Dominios Conocimientos Adquiridos Evaluación del trabajo Trabajo a futuro Tareas fuera del alcance Problemas conocidos Oportunidades de mejora Bibliografía 192 IV Apéndices 197 A. Ejecución del Modelo de Pruebas 198 B. Instalación y configuración D-REX 241 C. Manual de uso de las aplicaciones 252 Glosario 263 Lista de Figuras 270 Lista de Cuadros 2728 Capítulo 1 Introducción 19 CAPÍTULO 1. INTRODUCCIÓN Presentación Desde el año 1990, el dominio de primer nivel.uy, es administrado por el Servicio Central de Informática Universitaria (SeCIU) dependiente de la Universidad de la República (UdelaR). En 1994, la zona.com.uy le fue delegada a la Administración Nacional de Telecomunicaciones (ANTEL), quien a partir de 2000, la administra a través de ANTELDATA, su servicio de datos. De esta manera, SeCIU queda encargado de la administración del resto de los dominios bajo.uy:.edu.uy,.org.uy,.net.uy,.gub.uy y.mil.uy. Actualmente, SeCIU, se encuentra implementando un sistema de registro de nombres de dominio basado en el Extensible Provisioning Protocol (EPP) con la intención de centralizar dicho registro en una única base, y abrir la posibilidad de que existan registradores externos, como pueden ser las diversas empresas que actualmente se dedican a vender servicios de administración de dominios (registro, alojamiento, etc.) [1]. EPP está especificado en XML, y define objetos y operaciones sobre los mismos. Además se especifica un mecanismo para definir extensiones al protocolo para la creación de nuevos objetos y nuevas operaciones. El proyecto presentado en este documento, consiste en estudiar el protocolo EPP y sus mecanismos de extensión, y aplicarlos al Sistema de Registro de Dominios UY, evaluando sus necesidades al respecto Contexto de trabajo El servidor EPP de SeCIU está implantado en base a un desarrollo de software libre llamado OpenReg (ver Sección 6.2). El mismo implementa los objetos y comandos EPP estándar definidos en las RFC correspondientes para el registro de nombres de dominio ([2], [3], [4]). Debido a que cada país puede tener particularidades en sus políticas de registro de dominios, puede suceder que ciertos procedimientos o datos requeridos no estén debidamente contemplados en el EPP estándar. Por lo tanto, se debe estudiar profundamente el protocolo y sus mecanismos de extensión, así como las extensiones que pudieran existir, y evaluar las necesidades del registro en Uruguay, para definir nuevas extensiones que permitan adaptar el uso de EPP a las particularidades existentes en dicho registro Objetivos La propuesta de trabajo, comprende el dominar los sistemas de base subyacentes (DNS y EPP), así como la comprensión del funcionamiento de otros sistemas de registro de nombres de dominio diferentes al uruguayo, el estudio10 CAPÍTULO 1. INTRODUCCIÓN 3 de herramientas que implementen EPP, y la interiorización con los mecanismos de extensión del protocolo. Asimismo, se deberán estudiar extensiones existentes para evaluarlas contra las necesidades de SeCIU, y para utilizarlas como insumos en la definición e implementación de nuevas funcionalidades específicas de la realidad uruguaya. Se divide la propuesta en los siguientes ítem: 1. Interiorización en el funcionamiento de los sistemas de registro de dominios. 2. Estudio del DNS y su administración. 3. Estudio de las extensiones de seguridad del DNS (DNSSEC ). 4. Relevamiento del Sistema de Registro de Dominios UY. 5. Relevamiento de otros sistemas de registros. 6. Estudio del protocolo EPP y los mecanismos de extensión. 7. Relevamiento y análisis de las herramientas de software existentes relativas al EPP, y de extensiones ya definidas. 8. Estudio de los aspectos del EPP relativos al DNSSEC y análisis del impacto de su implantación (cambios al diseño de la bases de datos, procedimientos, etc.). 9. Estudio del actual sistema del SeCIU que implementa el EPP. 10. Análisis y definición de nuevos objetos y procedimientos, así como posibles mejoras al actual sistema. 11. Definición de nuevas extensiones al protocolo EPP. 12. Programación de las extensiones definidas. Para abarcar dichos puntos, se dividió el trabajo en tres grandes etapas claramente diferenciadas: Marco de trabajo, Desarrollo y Final, las cuales se presentan en la próximas secciones.11 CAPÍTULO 1. INTRODUCCIÓN Marco de trabajo La primer etapa del trabajo, consiste en entender el contexto en el cual se va a trabajar, es decir, analizar el marco de trabajo en el cual está inscrito el proyecto. Esto abarca los puntos 1 al 8 de la lista anterior, y, claramente, es la etapa más importante en cuanto a tiempo y relevancia del trabajo aquí presentado. A continuación, se introducen los temas tratados en esta parte Sistema de Nombres de Dominio El Sistema de Nombres de Dominio de Internet (DNS), es un protocolo de capa de aplicación que resuelve direcciones de máquinas a partir de sus nombres ([5], [6] y diversas actualizaciones). La comprensión de este sistema, es clave en una investigación que aborda un sistema que provee la capacidad de registro de estos nombres, como lo es EPP. A (muy) grandes rasgos, DNS es una base de datos ampliamente distribuida, que almacena el espacio de nombres de dominio, y los recursos asociados a éstos, en una estructura arbórea dividida en zonas, asociadas a los diferentes sub-árboles. Los interesados en este sistema, o, dicho de otra forma, los actores involucrados, son los resolvers y los nameservers, o servidores de nombres. Los primeros, consultan a los segundos, para averiguar a qué dirección IP corresponde un determinado nombre de dominio o cuáles son los recursos de un determinado dominio. Este sistema, no es inmune a los ataques maliciosos, que buscan, por ejemplo, que los servidores respondan a las consultas con direcciones o datos falsos. Por este motivo, DNS, se extiende con las Extensiones de Seguridad para DNS, DNSSEC, que introduce el firmado de las zonas, buscando garantizar autenticidad e integridad de los datos obtenidos en una consulta. Todos estos puntos, son tratados con mayor profundidad en el Capítulo Sistemas de Registro de Nombres de Dominio La administración del cctld (Country Code Top Level Domain).UY, correspondiente a la República Oriental del Uruguay, es realizada por la Universidad de la República, a través de SeCIU, estando delegada la administración de la zona.com.uy a ANTEL. Resulta de interés el analizar las características de cada sistema de registros, para evaluar en qué manera puede ayudar la extensión del protocolo EPP (presentado en el Capítulo 4). El Sistema Integral de Gestión de Dominios (SIGD) es la herramienta desarrollada por SeCIU para el Sistema de Registro de Nombres de Dominio12 CAPÍTULO 1. INTRODUCCIÓN 5.UY. Es una aplicación Web basada en páginas dinámicas que cumple el papel de registrar ante un servidor EPP que actúa como registry, y que permite que sus usuarios registren y administren sus nombres de dominios. En la Sección 3.2.2, se presentan los detalles más relevantes de esta aplicación, como lo son su arquitectura, aspectos de persistencia, e interacción con el registry. De la misma manera, resulta interesante realizar una investigación sobre los sistemas implementados por otros cctld o gtld (Generic Top Level Domain), analizando particularidades en el proceso, prestando especial atención al uso que éstos dieren a EPP, para ayudar a la definición de nuevos aspectos en el dominio.uy, así como brindar la posibilidad de reutilización de elementos existentes. El Capítulo 3, presenta los aspectos más importantes del registro de nombres de dominio.uy por parte de las instituciones actuales, y se realiza un análisis de las proyecciones a futuro sobre este escenario. Asimismo, se realiza un análisis similar para el registro de nombres en los dominios.cl (Chile),.PL (Polonia) y.br (Brasil). La elección de estos cctld surge de particularidades existentes en sus procesos, así como de la utilización que hacen de determinadas tecnologías Protocolo Extensible de Provisión EPP es un protocolo que permite la provisión de diversos objetos de registros (registries), que son quienes almacenan centralmente los objetos, hacia registradores (registrars) que interactúan con los registrantes (registrants), interesados en registrar objetos. Las operaciones que los registrars pueden realizar en los repositorios, son las típicas de una colección. Se pueden crear nuevos objetos que se almacenen en el repositorio, modificar los que ya se tienen registrados y renovar su validez, borrarlos y transferirlos. Si bien el protocolo está pensado para diversos dominios de aplicación, su primer fin, y uso principal, es el de registro de nombres de dominio en Internet. Asimismo, este proyecto se enmarca en una institución (SeCIU) que se dedica, entre otras tareas, al registro de nombres bajo el dominio.uy. Es por estos motivos, que el foco de la investigación presentada en el Capítulo 4, es EPP aplicado a nombres de dominio Extensiones a EPP A pesar de que la primera intención de EPP es el registro de nombres de dominios de Internet, y sus contactos y nameservers asociados, está planteado de una manera genérica (para cualquier tipo de objeto) y extensible.13 CAPÍTULO 1. INTRODUCCIÓN 6 Los mecanismos de extensión definidos, son los que permiten adaptar un protocolo genérico, por ejemplo, para su uso con los nombres de dominio [7]. Aparte de las extensiones para los mapeos referentes a los nombres de dominio, que se analizan en el Capítulo 4, existen otro tipo de extensiones que diversos interesados han ido definiendo para adaptar el protocolo a sus necesidades. En el Capítulo 5, se presentan, de todo el universo de extensiones, algunas que resultan de interés para el proyecto, y así poder tener una visión del trabajo ya realizado en el tema, y tener presentes algunos elementos manejados por otros agentes, a la hora de definir las extensiones necesarias para el Sistema Registro de Nombres de Dominio.UY Software de Repositorio Existen diversas soluciones de software que implementan Sistemas de Registro Centralizado. Algunas, como OpenReg, el sistema utilizado por SeCIU, implementan EPP estándar. Pero ésta no es la única, ya que existen otras soluciones que implementan el servicio, incluso, realizando extensiones propias al protocolo básico. Por ejemplo, el sistema FRED, realiza un manejo diferente de los nameservers asociados a cada registro. Además, existen otras alternativas de repositorios, que no implementan EPP, o lo implementan de manera incompleta. En el Capítulo 6, se realiza un relevamiento de tales sistemas de registro centralizado. Las características fundamentales tomadas en cuenta a la hora de este análisis, son las interfaces ofrecidas, el modelo de datos manejado, y el tipo de licenciamiento ofrecido. De esta manera, se analizan en profundidad tres sistemas que implementan EPP: los ya mencionados en el párrafo anterior, y CoCCA. Luego, se hace mención a otras alternativas que no utilizan EPP o que lo implementan de manera parcial. En la Sección 6.6, se presentan varias librerías que operan del lado del cliente, permitiendo conectarse a servidores EPP para ejecutar comandos, buscando, con dicho análisis, ofrecer los puntos de vista que deberían ser tomados en cuenta para elegir una. También existen diversos aplicativos que permiten conectarse a servidores EPP para realizar diversas tareas sin necesidad de programar. Estos clientes, pueden ser genéricos, o estar desarrollados para un registry específico, y se analizan en las secciones 6.7 y 6.8, respectivamente. Además, debido a que es el sistema utilizado en SeCIU, se presta especial atención a OpenReg, analizando, en la Sección 6.9, los aspectos relativos a las modificaciones que hay que realizar en su código para implementar extensiones EPP.14 CAPÍTULO 1. INTRODUCCIÓN Desarrollo Definición de Extensiones para el Registro de Dominios.UY En el Capítulo 3, se analizan las características más importantes del registro de dominios.uy. Éste, especialmente el realizado por SeCIU, posee ciertas reglas que no son contempladas por la versión estándar de EPP. Por ejemplo, en SeCIU, está definido que los dominios gubernamentales (.gub.uy) deben cumplir con cierto proceso de validación, asunto que no está contemplado en el protocolo. Como se analiza en el Capítulo 5, otros registries han enfrentado este tipo de problemas y adaptado EPP a sus necesidades a través de extensiones. En el Capítulo 7, se presenta un trabajo de extensión que, tomando como insumos estas extensiones y los requerimientos particulares de SeCIU, y utilizando los mecanismos de extensión de EPP, adapta el protocolo a las características del negocio en Uruguay Repositorio Extendido de Dominios En el Capítulo 8, se presenta un desarrollo realizado sobre la base del sistema EPP empleado en SeCIU, OpenReg, que agrega extensiones y gestión de los procesos asociados a éstas. Para realizar dicho desarrollo, se empleó una metodología ágil, basada en la generación de código, y centrada en las extensiones a cubrir. Se tomó como punto de partida la extensión más sencilla, que permitió un acercamiento a la plataforma involucrada. Luego, utilizando como punto de partida las interacciones requeridas por las extensiones definidas, se realizaron los casos de uso del sistema. Mediante la identificación de los casos críticos del sistema, se definió una arquitectura, sobre la cual se trabajó hasta obtener el sistema. El resultado de este desarrollo es el prototipo de un sistema que permite el registro de dominios y la ejecución de las acciones asociadas, denominado Repositorio Extendido de Dominios, D-REX. Este prototipo se divide en dos partes fundamentales: el repositorio OpenReg y la aplicación Web de Administración del Repositorio Central de Openreg, ARCO Modelo de pruebas Para verificar la correctitud de cualquier sistema de software, es necesario probarlo. Las pruebas pueden ser sobre las funcionalidades, sobre el desempeño, y sobre muchos otros aspectos. Además, la realización de éstas, puede15 CAPÍTULO 1. INTRODUCCIÓN 8 tener diversos objetivos. En el caso de D-REX, apuntan a determinar la factibilidad de un prototipo desde el punto de vista funcional, para validar los procesos implementados. Los objetivos del modelo de pruebas, el entorno de pruebas, y los casos de prueba, son analizados con detalle en el Capítulo Final El trabajo realizado a lo largo del proyecto, permitió un conocimiento profundo del protocolo EPP, del protocolo DNS, y de diversas extensiones realizadas a ambos, entre las que se destaca DNSSEC. Además, se realizó un inventario de herramientas para servidores y clientes EPP. Asimismo, del análisis detallado de varios sistemas de registro de dominios, entre los que se encuentra el de Uruguay, surgió un conjunto de extensiones que permiten extender EPP, adaptándolo a varias necesidades de este registro. Varias de las extensiones definidas, pudieron ser implementadas y probadas, demostrando así, la factibilidad del marco de trabajo propuesto, y proporcionando un buen conjunto de guías para extender las posibilidades, tanto de los protocolos de base, como del sistema de registro de nombres. Los anteriores elementos, son analizados en el Capítulo 10. En el mismo capítulo, se detallan los aspectos que están fuera del alcance del proyecto.16 Parte I Marco de trabajo 917 Capítulo 2 Sistema de Nombres de Dominio 1018 CAPÍTULO 2. DNS Introducción En la década de 1960, el Departamento de Defensa de los Estados Unidos creó una red experimental de computadoras, llamada Arpanet, que interconectaba importantes centros de investigación en ese país. En sus comienzos, gracias a que la cantidad de hosts era reducida, el mapeo entre nombres y direcciones de host era mantenido mediante un archivo HOSTS.TXT que era actualizado y distribuido periódicamente. Con el correr de los años Arpanet sufrió un crecimiento explosivo, y este aumento en la cantidad de hosts de la red hizo que el esquema utilizado se volviera inmanejable. Los principales problemas de la utilización de un archivo de nombres son: 1. La distribución del archivo HOSTS.TXT se había vuelto muy costosa en términos de tráfico y de carga de los servidores. 2. El mecanismo no tenía como defenderse frente a las colisiones de nombres de host, provocando que si se agregaban dos nodos con el mismo nombre existía la posibilidad de generar problemas de conectividad de parte de la red. 3. La consistencia del archivo era un problema, ya que en la práctica el tiempo entre que surgía una modificación o un nuevo host era menor al tiempo que tomaba que todos los nodos actualizaran el archivo. Por estos motivos, se decidió llevar a cabo una investigación para diseñar el sucesor del archivo HOSTS.TXT. Éste surgió en el año 1984, cuando fueron publicadas las RFC 882 y 883 que describen al Sistema de Nombres de Dominio, conocido como DNS por su sigla en inglés [5][6]. Para evitar los problemas de distribución del archivo HOSTS.TXT, se diseñó DNS de modo que la descentralización fuese un factor clave. Al descentralizar la administración de los nombres de host, se logró simplificar la tarea de mantener los datos actualizados. Además, el problema del tráfico se subsanaba, al eliminar la restricción que obligaba a que la información estuviera en un punto, permitiendo que la carga se repartiera entre diferentes servidores. Otro factor clave es la jerarquización. Gracias a ella, desaparecen los problemas de colisión de nombres y se ayuda a delimitar la delegación de los diferentes segmentos dentro del espacio de los hosts de la red. DNS no está exento de problemas: en los 90, Steven M. Bellovin descubre vulnerabilidades en la seguridad del protocolo. En 1999, surge las Extensiones de seguridad para DNS (DNSSEC ), el primer intento de solución a estos19 CAPÍTULO 2. DNS 12 problemas. En años posteriores, DNSSEC evolucionó para poder ser implantado en toda la red, y poder convertir a DNS en un protocolo más seguro y menos vulnerable. En lo que sigue de este Capítulo, se describen las principales características del servicio DNS, se analizan sus extensiones de seguridad, y se presenta brevemente una de las implementaciones más populares, BIND El Sistema de Nombres de Dominio Características claves del diseño del DNS Nombres de dominio Los nombres de dominio se organizan bajo una estructura de árbol invertido que se muestra en la Figura 2.1. Al nodo raíz se lo denomina con.. A los dominios correspondientes al primer nivel de hijos, se los denomina TLD (Top Level Domains, dominios de primer nivel), y está compuesto por los gtld (TLDs genéricos, com por ejemplo.edu), los cctld (Country Code TLD, TLD de código de país), y el dominio especial.arpa, que se utiliza para aspectos de la infraestructura de Internet, por ejemplo el.in-addr.arpa, para el mapeo inverso de direcciones a nombres de dominio. La administración de estos dominios se delega a diferentes organizaciones, por ejemplo, SeCIU en Uruguay. Cada uno de estos dominios se divide en diferentes sub-dominios, por ejemplo com.uy y edu.uy, pero esta subdivisión no es igual para todos los TLD. Por citar un ejemplo, Gran Bretaña utiliza co.uk y no com.uk. A su vez, la estructura de sub-dominios se sigue repitiendo dentro de cada dominio. Los host tienen nombres de domino apuntando a ellos. Por ejemplo margarita.fing.edu.uy, donde margarita, es el nombre del host, el cual pertenece al sub-dominio fing, el cual a su vez pertenece al sub-dominio edu del cctld uy. Además del nombre, es posible que los host tengan alias apuntando a ellos. Esta estructura, si bien es mucho más compleja que el archivo HOSTS, es lo que garantiza que no exista colisión de nombres. Siguiendo con el ejemplo, el sub-dominio iie.fing.edu.uy puede elegir el nombre margarita sin que exista colisión con otro host con igual nombre, pero de diferente sub-dominio. Administración de zonas Cada dominio consiste en un número de sub-dominios, y la administración de cada uno de ellos puede delegarse o no a otra organización. Una zona20 CAPÍTULO 2. DNS 13 Figura 2.1: Árbol de DNS es una parte del espacio de nombres de dominio, administrada de manera autónoma, y surge de la delegación de un sub-dominio, correspondiente a una rama del árbol de la Figura 2.1. Las organizaciones, por lo tanto, administran zonas, las cuales están compuestas por sub-dominios. De la misma manera, los servidores de nombres de dominio, toman como unidad de administración la zona y no el dominio. La razón para que esto sea así, es que un dominio puede contener sub-dominios delegados, los cuales no se deben administrar. Actores de la resolución de nombres Los dos actores principales en la resolución de nombres, son los resolvers y los nameservers. Los resolvers son los clientes que utilizan el sistema de nombres de dominio, y son librerías cuya función es resolver nombres de dominio a los diferentes programas que lo requieran, como por ejemplo un navegador o un cliente FTP. Las acciones que realizan son consultar a los nameservers, interpretar la respuesta y retornar la información al programa que la solicitó. Los nameservers son los programas que contienen la información de las diferentes zonas y responden a los resolvers. Existen varias maneras de clasificar nameservers. Éstos pueden ser autoritativos o no autoritativos, recursivos o iterativos, y primarios o secundarios. Un nameserver es autoritativo cuando está respondiendo por un dominio que depende de él. Los servidores iterativos, en caso de no poder contestar autoritativamente a una consulta, responden con una referencia a otro nameserver, mientras que los recursivos son capaces de consultar otros nameservers para encontrar la información buscada. Finalmente, los primarios cargan la información de la zona desde archivos y los secundarios obtienen la información desde otros nameservers,21 CAPÍTULO 2. DNS 14 utilizando transferencias de zonas. Como un nameserver podría ser primario para una zona, y secundario para otra, se lo llama primario (o secundario) cuando es primario (o secundario) para la mayor parte de las zonas en las que es autoritativo. En la práctica, los nameservers se configuran como recursivos cuando forman un servicio de conectividad, y como autoritativos cuando se tienen dominios propios. Consultas De manera similar a lo que ocurre con los nameservers, las consultas pueden clasificarse en dos tipos: recursivas o iterativas. En el caso de las consultas recursivas, el nameserver consultado debe, o bien responder con el dato solicitado, o bien con un error, por ejemplo que el dominio buscado no existe. El nameserver no puede simplemente responder con una referencia a otro nameserver. Por lo tanto, si él no tiene la respuesta a la consulta solicitada, deberá consultar a otros nameservers hasta obtener la respuesta y devolverla al resolver solicitante. En las consultas iterativas, el nameserver nunca envía nuevas consultas a otros nameservers, sino que contesta con los datos que ya posee. Si tiene el dato localmente, lo responde, y si no, a partir de los datos de su zona, retorna una referencia a otro nameserver más cercano al buscado, tomando en cuenta la posición de éstos en la estructura jerárquica. Resolución de nombres Debido a las limitaciones de los resolvers, los nameservers no sólo pueden resolver nombres correspondientes a las zonas para las que son autoritativos, sino también respecto a zonas donde no lo son. Debido a la estructura de árbol invertido de los nombres de dominio, alcanza con conocer la raíz del árbol para que, recorriendo las ramas, se pueda llegar a cualquiera de las hojas. Los nameservers raíz se denominan root nameservers y su funcionamiento es crucial para que toda Internet siga en pie. Por esto se encuentran distribuidos, siendo actualmente 13 los root nameservers, nombrados desde la A hasta la M. El proceso de resolución de un nombre de dominio, por ejemplo lulu.fing.- edu.uy, comienza cuando un resolver consulta a su nameserver local por el nombre lulu.fing.edu.uy. Si esta solicitud parte desde fuera de la red de fing, el nameserver local no tendrá información autoritativa de la zona fing.edu.uy. Las consultas de los resolvers son normalmente recursivas, por lo que el na-22 CAPÍTULO 2. DNS 15 meserver deberá hacer el trabajo completo de obtener el dato buscado. Si ya tuviese ese dominio (o parte de él) en su caché, podría ahorrarse el realizar la consulta, pero, en el supuesto de que no sea así, el nameserver deberá consultar a uno de los root nameservers por el host lulu.fing.edu.uy. Las consultas que realiza el nameserver local para encontrar el dato buscado, normalmente son iterativas. Por lo tanto, el nameserver raíz contestará con una referencia al nameserver de la zona uy. El proceso se repite tres veces más, primero consultando al nameserver de la zona uy (obteniendo una referencia al nameserver de la zona edu.uy), luego consultando al nameserver de la zona edu.uy y finalmente consultando al nameserver de la zona fing.edu.uy, el cual es autoritativo y responde al nameserver local con el dato buscado, el cual a su vez se lo responde al resolver que inició la consulta. Registros Los servidores de nombres de dominio no se utilizan únicamente para el mapeo de nombres de dominio a direcciones, sino que se pueden consultar varios tipos de registros de recursos. Éstos, llamados también resource records, tienen los siguientes campos: 1. Nombre 2. Tipo 3. Clase 4. TTL (Time To Live) 5. Largo de RData 6. RData (datos específicos del resource record) En las siguientes secciones se detallan los tipos de registros más usuales. Registros de tipo A El tipo de registro A es utilizado para mapear nombres de dominio a direcciones IP versión 4. El campo nombre del registro contiene el nombre de dominio, mientras que el campo RData contiene la dirección IP. Un ejemplo de este tipo de registro puede verse en el Cuadro 2.1. En la resolución de nombres, éste es el tipo normalmente buscado como resultado final por los resolvers, porque una vez conocida la dirección IP correspondiente al nombre de dominio consultado, es posible establecer la comunicación de manera directa.23 CAPÍTULO 2. DNS 16 Registros de tipo AAAA lulu.fing.edu.uy IN A Cuadro 2.1: Ejemplo de un registro A De manera análoga a los registros A, los registros AAAA se utilizan para mapear nombres de dominio a direcciones IP, pero en este caso se trata de direcciones IP versión 6. La razón para que se nombre con 4 letras A, es que las direcciones IPv6 son 4 veces más largas que las direcciones IPv4 (128 bits contra 32 bits). En el Cuadro 2.2 se puede observar un ejemplo de este tipo de registro. seciu.edu.uy IN AAAA 2001:1328:6::5 Cuadro 2.2: Ejemplo de un registro AAAA Registros de tipo CNAME DNS permite especificar más de un nombre para un mismo host. Se denomina nombre canónico al nombre oficial, o sea, el nombre para el cual existe un registro de tipo A que lo define. Los otros nombres del host serán alias que apuntan al nombre canónico. Para estos últimos, deberá existir registros de tipo CNAME con cada uno de sus nombres, todos indicando en el campo RData el nombre de dominio apuntado. Ver Cuadro 2.3 por un ejemplo de esto IN CNAME margarita.fing.edu.uy. Cuadro 2.3: Ejemplo de un registro CNAME Las razones para utilizar registros CNAME son varias. La más común de ellas es cuando existen varios servicios ejecutándose en una misma dirección IP y se necesita diferenciarlos (por ejemplo un servidor HTTP que responde por varios dominios, o un servidor FTP y otro HTTP en el mismo host). Durante la resolución de un nombre de dominio, al encontrarse con un registro CNAME, se sustituye el nombre buscado por el nombre canónico devuelto y se ejecuta nuevamente la consulta. Registros de tipo NS Los registros NS indican, para un dominio dado, cuales son los nameservers autoritativos que responden por él. Un ejemplo de este tipo de registro24 CAPÍTULO 2. DNS 17 puede verse en el Cuadro 2.4. fing.edu.uy IN NS ns.fing.edu.uy. Cuadro 2.4: Ejemplo de un registro NS La importancia de este tipo de registro radica en que permite conocer, para cada dominio, qué nameserver debe ser consultado para una zona dada. Registros de tipo PTR Otra funcionalidad ofrecida por DNS, es la posibilidad de, a partir de una dirección IP, obtener los nombres de dominio que apuntan a ella. Debido a que los registros se encuentran indexados por nombre, sería necesario hacer una búsqueda exhaustiva entre todos los dominios, lo cual sería altamente ineficiente. La solución a este problema consiste en crear una región del espacio de nombres de dominio que utilice las direcciones como índices. Dicho espacio es el dominio in-addr.arpa. Para el caso de las direcciones IPv4, el dominio in-addr.arpa contiene hasta 256 sub-dominios, y esto se repite 4 veces. De esta forma, estos 4 niveles de sub-dominios se corresponden a las 4 partes de una dirección IP cuando es escrita en el formato xxx.xxx.xxx.xxx) lográndose una indexación por direcciones IP. A modo de ejemplo, un host con la IP se corresponde con el nombre de dominio in-addr.arpa. Como se sigue la misma estructura jerárquica, en la que se va de lo general a lo particular, los nombres de dominio de in-addr.arpa quedan ordenados al revés de la notación habitual. La razón para esto es que, como para cada organización las direcciones comparten el mismo prefijo, se simplifica la delegación si los primeros dígitos de las direcciones, que son comunes a las direcciones, se toman como sub-dominios de más alto nivel que los últimos dígitos. Un ejemplo de esto puede verse en el Cuadro in-addr.arpa IN PTR lulu.fing.edu.uy. Cuadro 2.5: Ejemplo de un registro PTR Otros tipos de registros Existen muchos otros tipos de registros. Por citar algunos, los registros SOA describen la zona en la que se encuentra el dominio (especificando servidores de nombres, contacto, y varios datos técnicos más), los registros MX25 CAPÍTULO 2. DNS 18 se utilizan para obtener la lista de servidores de correo para un nombre de dominio dado, o los registros SRV que son utilizados en la implementación de nuevos protocolos. En la Sección se detallan aquellos tipos de registros necesarios para dar soporte a DNSSEC. Caché Para acelerar el proceso de resolución de nombres de dominio, los nameservers almacenan una copia de los datos que ya consultaron para ahorrar consultas. Además de guardar el dato buscado en las consultas anteriores, guardan los datos intermedios, es decir, las referencias a otros nameservers que tuvieron que ser consultados antes de alcanzar el nodo buscado. De esta forma, una consulta por un host anteriormente buscado, no necesita comenzar desde los servidores raíz, sino que reutiliza parcialmente las consultas anteriores. Debido a que los datos no son estáticos y van cambiando, se define un tiempo de vida (TTL, Time To Live) que especifica cuanto tiempo se le permite al servidor almacenar el dato en caché. No existe un valor ideal para este parámetro, ya que un valor pequeño maximiza la coherencia de los datos, mientras que un valor alto maximiza la performance evitando consultas. Por lo tanto, se debe siempre elegir un valor que balancee estos dos aspectos. Además del valor de TTL usual, se almacenan TTL negativos. Una vez que un servidor autoritativo respondió que un dominio no existe, los demás pueden guardar esta respuesta negativa. El TTL negativo, especifica por cuánto tiempo se puede seguir contestando que no existe el objeto consultado sin volver a consultar al servidor autoritativo Extensiones de seguridad para DNS: DNSSEC Los comienzos de DNSSEC se remontan a 1990 cuando Steven Bellovin descubre vulnerabilidades en el protocolo DNS. Estas vulnerabilidades son recién publicadas en un artículo en el año En 1999, DNSSEC ve la luz en la RFC 2535 [8]. Esta especificación de DNSSEC se comienza a utilizar a comienzos de la década del 2000, pero son detectados problemas en lo que respecta a escalabilidad que hacen inviable su utilización en grandes redes, en particular, el cambio de clave de una zona implicaba un gran volumen de datos a intercambiar. Esto llevó a que en 2005, se desarrollara una segunda especificación26 CAPÍTULO 2. DNS 19 llamada DNSSEC BIS (RFC 4033[9], RFC 4034[10] y RFC 4035[11]). Esta nueva versión tiene como principal novedad un nuevo tipo de registro de recurso llamado DS (Delegation Signer) el cual soluciona el problema antes mencionado al agregar un nivel más de indirección en los puntos de delegación. Ese mismo año, Suecia se convierte en el primer cctld en comenzar a utilizar DNSSEC. Posteriormente trasciende a los medios el Ataque Kaminsky, una vulnerabilidad del sistema DNS basada en Cache Poisoning [12]. Si bien no pasó a mayores, obligó a parchear los servidores DNS y dio mayor impulso a DNSSEC. A pesar de que el objetivo de DNSSEC es lograr un aumento en la seguridad, su especificación tiene un efecto colateral que es permitir la enumeración de una zona. Este tema provoca controversias, al posibilitar la exposición de los datos guardados por DNS, aspecto contrario a las buenas prácticas respecto a la privacidad de los datos. En el año 2008, se plantea una solución a este problema agregando una extensión llamada NSEC3, la cual utiliza hashing para esconder los nombres reales de los registros y de esta manera evitar exponer los datos de las zonas [13] Beneficios DNSSEC ofrece tres aspectos claves: autenticación del origen de los datos, verificación de integridad de los datos y autenticidad de no existencia. Lo que no brinda DNSSEC es confidencialidad de los datos, ya que esto no fue considerado como un requerimiento. La verificación de integridad se logra gracias a la generación de firmas digitales criptográficas de la información de los diferentes registros DNS, los cuales a su vez también se guardan como registros DNS (llamados registros RRSIG). La Autenticación del origen de los datos, se realiza utilizando una cadena de confianza que se forma a partir de los cortes de zonas, al comparar la clave pública de la zona hija con un digest de ella en la zona padre. Para que la seguridad quede garantizada, sólo se necesita que el nameserver que está ejecutando la consulta recursiva, tenga un punto de entrada seguro, el cual se toma como inicio en la cadena de confianza. Este punto de entrada podría ser la zona raíz, que fue firmada recientemente, o podría utilizarse un punto de entrada seguro, llamado Trusted Anchor, conocido de antemano (por ejemplo configurado estáticamente). Finalmente, la autenticidad de no existencia, se logra gracias al nuevo tipo de registro NSEC. Cuando se consulta por un registro inexistente, lo que se retorna es un registro NSEC el cual indica el intervalo de no existencia dentro de la zona en orden canónico. La razón para hacer esto es que, por27 CAPÍTULO 2. DNS 20 performance, las respuestas no se firman on-line, sino que son firmadas de antemano, por lo que no existe manera de saber por cual registro se preguntará. Por lo tanto, la solución encontrada al problema es firmar los intervalos de no existencia antes de que sean publicados. De esta manera, el nameserver que está ejecutando la consulta tiene la confirmación de que el registro buscado cae dentro de un intervalo en el que no existe ningún registro dentro de la zona Modificaciones a DNS Para que DNSSEC funcione, son necesarios algunos cambios al protocolo DNS. Se agregan cuatro nuevos tipos de registros de recursos: firma de registro de recurso (RRSIG), clave DNS pública (DNSKEY ), firmante de la delegación (DS) y próximo seguro (NSEC, NSEC3 ). Además, se agregan dos nuevos bits en el cabezal de los mensajes: chequeo deshabilitado (CD) y datos autenticados (AD). Para soportar los tamaños más grandes en los mensajes al agregar estos registros, se necesita también soporte para EDNS0 [14]. Por último, DNSSEC requiere el agregado otro bit adicional, llamado DO, para que los resolvers puedan indicar, en sus consultas, que desean recibir registros DNSSEC. Registro DNSKEY El registro DNSKEY se emplea para guardar las claves públicas del proceso de firmado. Se utilizará esta información para validar las firmas de los demás registros de recursos. Cuadro 2.6: Registro DNSKEY Es habitual encontrar dos registros DNSKEY en las zonas firmadas. Uno, llamado ZSK (Zone Signing Key), con valor de flags 256, es el utilizado para firmar los registros, y tiene una vida útil corta. El segundo, llamado KSK (Key Signing Key) con valor de flags 257, tiene vida útil mayor, y con ella se firman las claves ZSK. El objetivo de esta separación es brindar mayor seguridad, y a la vez disminuir el impacto de los cambios de clave, ya que con esta jerarquización se puede cambiar la clave ZSK sin invalidar la clave KSK. Por lo tanto,28 CAPÍTULO 2. DNS 21 Campos generales Nombre Especifica el dueño (ej. uy.) TTL TTL del registro (ej ) Clase Clase del registro: IN Tipo Tipo de registro: DNSKEY Campos específicos Flags Banderas (ej. 256 indica clave de zona) Protocolo Identifica el Protocolo, en este caso 3 Algoritmo Identifica el Algoritmo utilizado (ej. 5 es RSA/SHA1 ) Clave Clave pública codificada como Base64 Cuadro 2.7: Detalle de los campos de un registro DNSKEY aquellos registros que dependan de la clave KSK no se verán afectados ante un cambio de ZSK. Ejemplos de esto son los registros DS y los Security Entry Point (explicados más adelante en este Capítulo). Registro RRSIG El registro RRSIG guarda las firmas de los registros de recursos para un nombre, clase y tipo dado, permitiendo que sean validados. Dentro de una zona firmada, todos los registros autoritativos de la misma deben tener un registro RRSIG correspondiente. Esto produce un cambio respecto a la especificación original de DNS: ésta dice que si un registro CNAME está presente para un nombre, éste es el único tipo de registro permitido para ese nombre. Con DNSSEC, una zona firmada tendrá además del registro CNAME, registros RRSIG y NSEC para el mismo nombre. Cuadro 2.8: Registro RRSIG La firma se calcula a partir de la información del registro RRSIG, y de los registros cubiertos.29 CAPÍTULO 2. DNS 22 Campos generales Nombre Especifica el dueño (ej. ultra.seciu.uy.) TTL TTL del registro (ej ) Clase Clase del registro: IN Tipo Tipo de registro: RRSIG Campos específicos Tipo cubierto Tipo de registro sobre el que aplica la firma (ej. registro A de ultra.seciu.uy.) Algoritmo Identifica el Algoritmo utilizado (ej. 5 es RSA/SHA1 ) Cant. Etiquetas Número de etiquetas en el nombre original. El objetivo de este campo es determinar si el registro original fue o no generado a partir de comodines, ya que para poder validar la firma es necesario reconstruir el nombre utilizado. A modo de ejemplo, ultra.seciu.uy. tiene 3 etiquetas, mientras que *.seciu.uy. tiene 2 TTL Original TTL del registro cubierto Expiración Fecha de expiración de la firma Comienzo Fecha de inicio de la validez de la firma Etiqueta de Clave Identifica la clave utilizada para firmar el registro Firmante Es el nombre de quien firma el registro (ej. seciu.uy.) Firma Firma codificada como Base64 Cuadro 2.9: Detalle de los campos de un registro RRSIG firma = firmar (RRSIG_RDAT A RR (1) RR (2)...) RRSIG_RDATA es la información del registro RRSIG (excluyendo la firma) en un formato específico. Para cada uno de los registros cubiertos, RR (i) = nombre tipo clase T T L largo (RDAT A) RDAT A Los valores de los campos algoritmo, firmante y etiqueta de la clave permiten identificar cual registro DNSKEY debe ser utilizado para validar la firma.30 CAPÍTULO 2. DNS 23 Registro NSEC El registro NSEC muestra dos cosas. Primero, indica el siguiente registro de recurso al buscado, según el orden canónico de la zona. Segundo, retorna la lista de tipos de registro de recurso existentes para el registro solicitado. Se utiliza esta información para proveer la no existencia autenticada de datos DNS. El orden canónico de una zona corresponde a un orden alfabético creciente basado en las etiquetas según su importancia (de derecha a izquierda). O sea: el primer nivel de ordenación se realiza según la última etiqueta (por ejemplo uy), luego según la penúltima etiqueta (por ejemplo com), etc. Cuadro 2.10: Registro NSEC Campos generales Nombre Especifica el dueño e inicio del intervalo de no existencia (ej. a.gub.uy.) TTL TTL del registro (ej ) Clase Clase del registro: IN Tipo Tipo de registro: NSEC Campos específicos Próximo Dominio Indica el fin del intervalo de no existencia, o sea, el próximo domino en el orden canónico (ej. b.gub.uy.) Mapa de Tipos Lista de tipos de registros existentes para el dueño (ej. a.gub.uy.) Cuadro 2.11: Detalle de los campos de un registro NSEC a.gub.uy IN NSEC b.gub.uy A RRSIG NSEC Cuadro 2.12: Ejemplo de un registro NSEC El ejemplo de la Figura 2.12 podría ser utilizado para probar dos aspectos: primero, que, por ejemplo, no existe un registro AAAA asociado a a.gub.uy.,31 CAPÍTULO 2. DNS 24 y segundo, que no existe un dominio algo.gub.uy., ya que según el orden canónico, de existir estaría antes que b.gub.uy. Registro DS Los registros DS apuntan a registros DNSKEY utilizados en el proceso de autenticación. Para esto guardan la etiqueta de la clave, el algoritmo, y un digest de la clave. Un punto muy importante es que los registros DS y DNSKEY se guardan en zonas diferentes: el registro DS se guarda en el lado padre de una delegación, mientras que el correspondiente registro DNSKEY está en la zona hija. Durante el proceso de autenticación, el nameserver que está ejecutando la consulta recursiva validará que el digest indicado por el registro DS en la zona padre, se corresponda con la clave DNSKEY encontrada en la zona hija. Este tipo de registro no existía en la primera especificación de DNSSEC, pero fue agregado posteriormente en DNSSEC BIS ya que simplifica el proceso de cambio de claves. De todos modos, cuando una zona cambia su clave, es necesario que notifique, a su padre, el registro DS actualizado. Cuadro 2.13: Registro DS Campos generales Nombre Especifica el dueño (ej. presidencia.gub.uy.) TTL TTL del registro (ej ) Clase Clase del registro: IN Tipo Tipo de registro: DS Campos específicos Etiqueta de Clave Identifica la Clave DNSKEY a la que apunta el registro DS (ej ) Algoritmo Indica el algoritmo utilizado en la construcción de la clave DNSKEY Tipo de Digest Indica el algoritmo utilizado en el cómputo del digesto (ej. 1 es SHA-1 ) Digest Valor del digest Cuadro 2.14: Detalle de los campos de un registro DS32 CAPÍTULO 2. DNS 25 Un ejemplo de registro DS es el del Cuadro Su correspondiente registro DNSKEY se muestra en el Cuadro presidencia.gub.uy IN DS CF416942C662990F5CA04410A5DC4F99A4EDC5C0 Cuadro 2.15: Ejemplo de un registro DS presidencia.gub.uy IN DNSKEY AwEAAblaEaapG4inrQASY3HzwXwBaRSy5mkj7mZ30F +hui7zl8g0u7dv7ufnsequlsc57ohotbza+tqiv/mgq ed8fy4xgcgzyihsyvyvgo9iwg3o0vobyy/zv0z7an fra7z3ly51ci6m/qozucdlnm0ytcjgilakwuklbhmap 9NJPuKVt8A7OHab00r2RDEVjiLWIIuTbz74gCXOVfA mvw07c8c= Cuadro 2.16: Ejemplo de un registro DNSKEY correspondiente al registro DS Proceso de Validación DNSSEC requiere que los servidores de nombres soporten la extensión EDNS0, que consiste en varias modificaciones a los mensajes intercambiados por DNS. Estos mensajes normalmente estaban limitados a 512 bytes cuando son enviados con UDP, pero, sin embargo, hoy la mayoría de los hosts conectados a Internet son capaces de aceptar paquetes de mayor tamaño. En este sentido, DNSSEC especifica que los nombres de dominio deben soportar tamaños de mensajes de al menos 1220 bytes, siendo deseable que soporten mensajes de 4000 bytes de extensión. La razón para este requisito es que DNSSEC requiere que, además de los datos que ya se envían en una consulta DNS, se agreguen firmas de los registros, por lo que los tamaños de los mensajes DNS necesitan ser agrandados. Para el proceso de validación existen dos variantes, dependiendo de si se trata de un nameserver recursivo o de un stub resolver. En el primer caso, el proceso comienza cuando el resolver marca el bit de DO en la consulta. A modo de ejemplo, supongamos que se quiere validar el registro de tipo A devuelto para En teoría, la validación comenzaría comprobando el registro DS para br. de la zona raíz. A continuación se verificaría la zona.br, validando el registro DNSKEY para ver si corresponde al registro DS anterior. Luego, se verificaría si existe una zona nic.br., repitiéndose el proceso anterior de verificar el corte de la zona con su registro DS. Finalmente se33 CAPÍTULO 2. DNS 26 verificaría si la firma RRSIG del registro de tipo A de Esta conexión padre-hijo en cada delegación de zona, es lo que se conoce como cadena de confianza. Por ejemplo, si en un punto de la validación nos encontramos que en el padre existe un registro DS, mientras que en el hijo los registros no están firmados, o la firma no coincide, es posible que estemos ante un ataque de tipo man in the middle o frente a un problema de configuración de la zona. En el caso del stub resolver, éste reenvía la consulta a un servidor de nombres recursivo y utiliza el bit AD (Datos Autenticados) de la respuesta como indicativo para determinar si los datos retornados pudieron ser verificados. También existe la posibilidad de que el resolver marque la consulta con el bit de CD (Chequeo Deshabilitado), para que las verificaciones de las firmas las realice él mismo Firmado de una Zona Las implementaciones del firmado de zonas, varían mucho de un cctld a otro. Entran en juego diversas consideraciones, fundamentalmente, de seguridad que llevan, por ejemplo, a utilizar hardware específico para el firmado, en lugar de software. Sin embargo, se puede delinear este proceso mediante los pasos aquí indicados. Los ejemplos se utilizan BIND (ver Sección 2.4) ya que es la implementación de DNS de referencia a nivel mundial y, en particular, es la utilizada en SeCIU. Lo primero que se debe hacer es habilitar DNSSEC en los servidores autoritativos. Esto se hace modificando su archivo de configuración de BIND y agregando la siguiente opción: options { dnssec-enable yes; } Es importante utilizar versiones actualizadas de BIND, ya que el soporte para DNSSEC se encuentra únicamente a partir de la versión 9.3, y en particular, para poder utilizar NSEC3, se necesita la versión 9.6 o posterior. Además, se requiere que las librerías OpenSSL se encuentren instaladas en los servidores. El siguiente paso es habilitar, además, la validación de DNSSEC en los servidores recursivos. Esto es necesario únicamente en éstos servidores, ya que, como fue explicado, los servidores autoritativos no realizan validación alguna, sino que son los servidores recursivos quienes se encargan de corroborar las firmas de los registros devueltos por los servidores consultados durante34 CAPÍTULO 2. DNS 27 la resolución de la consulta recursiva. Para el caso de BIND, la configuración para los servidores recursivos es la siguiente: options { dnssec-enable yes; dnssec-validation yes; } Luego es necesario generar las claves ZSK (utilizada para firmar la zona) y KSK (utilizada para firmar otras claves) para cada una de las zonas administradas. Por ejemplo, para generar la clave ZSK utilizando el algoritmo RSA/SHA1 y claves de 1024 bits de largo, se utiliza el siguiente comando: dnssec-keygen -a RSASHA1 -b n ZONE <nombre_de_zona> Para generar la clave KSK utilizando el algoritmo RSA/SHA1 y claves de 4096 bits de largo, se utiliza el siguiente comando: dnssec-keygen -a RSASHA1 -b n ZONE -f KSK <nombre_de_zona> En ambos casos, se generan dos archivos con extensiones key y private, correspondientes a las claves pública y privada respectivamente. En los archivos de zona es necesario agregar las claves públicas. Esto se puede lograr de varias formas. Por ejemplo, utilizando el comando $INCLU- DE dentro del archivo, o sino, simplemente, anexando el contenido de ambos archivos de clave púbica al archivo de zona. Una vez completados estos pasos, se debe proceder a firmar el archivo de zona. Esto permite obtener un nuevo archivo de zona que incluye los registros RRSIG, NSEC y DNSKEY, que tiene la extensión signed. El comando a ejecutar es el siguiente: dnssec-signzone [-o <nombre_de_zona>] [-N <incremento>] [-k <archivo_ksk] <archivo_de_zona> [<archivo_zsk>] Finalmente, se debe actualizar los servidores de nombres autoritativos primarios para que apunten al nuevo archivo de zona firmado en vez del archivo sin firmar. En el caso de BIND, esto implica reemplazar: zone "<nombre_de_zona>" { file "<dir>/<archivo_de_zona>"; };35 CAPÍTULO 2. DNS 28 Con: zone "<nombre_de_zona>" { file "<dir>/<archivo_de_zona>.signed"; }; Sólo falta recargar la configuración de los servidores para empezar a servir registros firmados. En BIND esto se logra ejecutando: rndc reconfig rndc flush Para que los registros firmados que se están sirviendo puedan ser validados, es necesario notificar a la zona padre, insertando en ésta un registro DS de tal forma que se pueda crear una cadena de confianza. Para generar este registro se debe ejecutar nuevamente el comando dnssec-signzone pero esta vez utilizando el argumento -g. dnssec-signzone -g [-o <nombre_de_zona>] [-N <incremento>] [-k <archivo_ksk] <archivo_de_zona> [<archivo_zsk>] El archivo obtenido debe suministrarse por algún medio seguro al registry, lo cual normalmente es realizado a través del registrar. Una vez que el registry recibió el archivo correspondiente, debe anexarlo a la zona padre de la misma forma que fueron anexadas las claves públicas a la zona hija (comando $INCLUDE, etc). A partir de la próxima publicación de la zona padre, el registro DS de la zona hija quedará disponible, por lo que los servidores de nombres recursivos podrán validarlo con el registro DNSKEY correspondiente, formándose así una cadena de confianza Gestión de Claves Normalmente, se utilizan dos claves para minimizar las interacciones necesarias en los cambios de claves. Una se denomina KSK (Key Signing Key) y la otra es la ZSK (Zone Signing Key). La diferencia fundamental entre ambas, es que se utilizan para firmar diferentes registros: la KSK se utiliza para firmar únicamente las claves contenidas en una zona, mientras que la ZSK se utiliza para firmar los registros de recursos. Debido a esto, la KSK tiene un período de vigencia mayor (normalmente en el entorno de 1 o 2 años) que la ZSK (algunos meses). Como la KSK se utiliza para firmar la ZSK, y la ZSK para firmar los registros, sólo se requiere la clave de KSK para validar un registro firmado.36 CAPÍTULO 2. DNS 29 Dentro de las buenas prácticas de DNSSEC, se especifica que las claves privadas deben mantenerse off-line por seguridad, y deben planificarse cambios de clave periódicos para minimizar la posibilidad de que pueda ser descubierta. La RFC 5011 [15] describe los mecanismos de actualización que deben ser utilizados para cambios de clave, especialmente para casos de urgencia cuando la clave privada fue comprometida Limitaciones de DNSSEC DNS fue diseñado bajo la premisa de que todos los datos almacenados son, por definición, públicos. Dos usuarios diferentes que realizan consultas idénticas, van a obtener respuestas idénticas. En este aspecto, ni DNS ni DNSSEC brindan ningún mecanismo de control del tipo de listas de acceso o similares. Además, tampoco se brinda confidencialidad ya que las respuestas no se encuentran encriptadas. DNSSEC tampoco brinda protección respecto a los ataques de denegación de servicio, y, en algunos casos, puede agravar la problemática provocada por éstos, ya que existen variaciones del ataque específicamente diseñadas para servidores de nombres de domino DNSSEC. Básicamente explotan dos debilidades: hecho de que se requiere un trabajo de cálculo importante para validar las firmas, y que, como las respuestas tienden a ser bastante grandes en bytes respecto al tamaño de las consultas, es posible utilizarlas como agente multiplicador durante un ataque. Otro asunto importante, es que DNSSEC aumenta bastante el nivel de complejidad respecto a DNS, lo cual aumenta las posibilidades de que un error de configuración deje zonas aisladas. Además, esta complejidad agregada, incrementa la posibilidad de defectos en los programas utilizados, y se necesita de una infraestructura importante para soportar el proceso de firmado. A lo anterior se suma el efecto colateral ya mencionado: al utilizar DNS- SEC se expone el contenido de la zona entera a que pueda ser consultada. Esta información de la estructura de la zona, podría ser utilizada con malas intenciones. Esto se conoce como Enumeración de Zona, y se basa en la propiedad de los registros NSEC que apuntan al siguiente registro válido. Si bien el carácter público de los datos almacenados no fue modificado, el punto de discusión es que, cualitativamente, existe una diferencia importante entre consultar los registros asociados a partir de un nombre, y que exista un mecanismo que permita listar el contenido completo de los registros de una zona. Este último aspecto fue solucionado recientemente con una extensión a DNSSEC la cual tiene como novedad la creación del nuevo tipo de registro NSEC3, que, en lugar de apuntar al siguiente registro, guarda un hash del37 CAPÍTULO 2. DNS 30 siguiente nodo, logrando evitar así este problema El Servidor de Nombres BIND BIND es un acrónimo que quiere decir Berkeley Internet Name Domain y es, hoy por hoy, la implementación más popular de un software de nombres de dominio [16]. La configuración se realiza en base a archivos de zonas, como el que se muestra en la Figura 2.2. Figura 2.2: Archivo de zona en BIND El registro SOA, indica los datos de la autoridad para esa zona y los registros NS, indican cuáles son los servidores de nombres de la zona. Finalmente, se encuentra la lista de registros (por ejemplo los A, PTR, CNAME, etc). Por cada zona, se requieren dos archivos: uno para la resolución de nombres normal y otro para la resolución de nombres inversa. En éste último caso, los registros son direcciones con el formato in-addr.arpa. Además, es necesario un archivo más para la dirección de loopback.38 CAPÍTULO 2. DNS 31 Finalmente, como fue explicado anteriormente, el servidor de nombres necesita conocer los servidores raíz, para lo cual se utiliza otro archivo que contiene esta información. El mismo está publicado en Internet, y es responsabilidad de los administradores del servidor contar con una copia actualizada. Estos archivos indicados anteriormente se especifican en un archivo de configuración habitualmente llamado named.conf. Se recomienda tener al menos dos servidores corriendo para cada zona. La configuración habitual consiste en definir uno de ellos como primario y el otro como secundario. Sus archivos de zonas serán diferentes. En el caso del primario, su registro SOA indicará que es maestro, y el archivo tendrá toda la información de la zona. En el secundario, su registro SOA indicará que es esclavo y desde qué nameserver deberá transferir su zona.39 Capítulo 3 Sistemas de Registro de Nombres de Dominio 3240 CAPÍTULO 3. SISTEMAS DE REGISTRO Introducción Uno de los principales objetivos del proyecto, es adaptar el protocolo EPP (ver Capítulo 4) al dominio de primer nivel.uy, apuntando a obtener un registro centralizado. Por tal motivo, es de especial importancia analizar todos los aspectos y procesos asociados al registro de nombres de dominios en Uruguay, para evaluar la utilidad de EPP para este sistema y proponer nuevas extensiones que adapten el protocolo a esta realidad. También puede resultar interesante realizar una investigación sobre los sistemas de registro de otros países, para obtener ideas aplicables al proyecto y a la mejora del sistema uruguayo. En lo que sigue del capítulo, se presentan, en profundidad, las características principales del Sistema de Registro.UY, y se muestran las más sobresalientes de otros dominios que eran de interés para el usuario responsable del proyecto Registro de dominios.uy Desde el año 1990, el dominio de primer nivel.uy, es administrado por el Servicio Central de Informática Universitaria (SeCIU). En 1994, la zona.com.uy le fue delegada a la Administración Nacional de Telecomunicaciones (ANTEL), quien, a partir de 2000, la administra a través de ANTEL, su servicio de datos. Queda así configurado, un escenario donde existen dos registradores (registars), cada uno con un registro (registry) propio, siendo estos dos disjuntos entre sí. Las reglas para el uso de ambos sistemas de registros, se encuentran definidas en el Instructivo Técnico de por SeCIU [17] y en las Condiciones de Uso de ANTEL [18]. El registro de nombres de dominio de Internet, implica diversas obligaciones por parte de los registrants, que pueden ser las personas que tengan interés directo en registrar dichos nombres, o intermediarios contratados por dichas personas, que además, pueden ofrecer otro tipo de servicios, como el alojamiento o hosting. En ambos casos, el procedimiento de registro es el mismo, definiendo cada registry, por separado, cuál es este procedimiento. En las sub-secciones a continuación, se presentan los puntos necesarios para comprender los procedimientos de registro en cada registry, y para evaluar sus necesidades y posibilidades de mejora. La información aquí presentada, fue extraída de las respectivas páginas web de ambas instituciones. En un futuro, se planea abrir el negocio de registro de nombres de dominio a otras instituciones registradoras, utilizando para ello el protocolo EPP para41 CAPÍTULO 3. SISTEMAS DE REGISTRO 34 comunicarse con una base de datos centralizada en SeCIU. Además, se planea abrir el registro de dominios plano.uy (sin dominio de segundo nivel, por ejemplo, presidencia.uy) y el registro de nombres IDN Registro de Nombres de Dominio en SeCIU Se puede dividir el registro de dominios en dos aspectos importantes: las entidades involucradas y los procedimientos para registrarlas. A continuación, se describen los datos recabados sobre las entidades y los procedimientos ejecutados para registrar nombres. Luego, se describen los procedimientos que permiten modificar los datos de los dominios registrados, y realizar sus bajas. Entidades involucradas en el registro de Dominios El registro de los dominios administrados por SeCIU (.org.uy,.net.uy,.edu.uy,.mil.uy y.gub.uy) comprende dos etapas: el registro de personas y el registro del dominio propiamente dicho. Durante el registro de personas, se registran individuos que luego podrán asociarse a dominios, como titular o como alguno de los contactos del mismo. Para registrarse, se deben proporcionar datos que permiten identificar y contactar a la persona: Nombre de la organización, institución o persona física Número de RUT 1, o de Cédula de identidad (si se trata de una persona física). Dirección (postal) Localidad Departamento Teléfono Fax Correo electrónico. 1 Registro Único Tributario, registro de contribuyentes al sistema tributario en Uruguay. Proporciona el número identificador para todos los contribuyentes que tributan alguna clase de impuestos ante la Dirección General Impositiva.42 CAPÍTULO 3. SISTEMAS DE REGISTRO 35 El nombre, la dirección, la localidad y el departamento, y el correo electrónico, son datos obligatorios. Además, no puede existir otra persona registrada con el mismo correo. A todas las personas registradas, sean físicas o jurídicas, se les asigna un identificador denominado NIC-Handle, el cual puede ser usado para vincular a la persona a diversos dominios. Para el registro de dominios, es necesario contar con un nombre de dominio que no haya sido registrado previamente y una descripción de la actividad a la cual está destinado el nombre. Además, se necesita asociar al dominio personas que cumplan los siguientes roles: Titular: es el titular para el uso del dominio Contacto Administrativo: es la persona que será designada a efectos de relacionarse con SeCIU en cuanto a la comunicación de los actos de disposición, modificación o cancelación del registro, a quien serán dirigidas las comunicaciones concernientes al cobro, dudas de datos o citaciones. Contacto Técnico: es quien se encargará de relacionarse con el SeCIU en los aspectos técnicos de la gestión del nombre de dominio. Contacto de Pago: es el encargado de relacionarse con SeCIU en los aspectos concernientes al cobro de las tarifas correspondientes. A este contacto serán dirigidas todas las comunicaciones concernientes al cobro. A los efectos de la delegación de autoridad en la resolución del dominio, se deben proporcionar 2 servidores, uno primario y otro secundario, que contengan la información autoritativa correspondiente. Adicionalmente, se pueden agregar hasta 11 servidores más. En todo caso, si el servidor a asociar se encontrase dentro del dominio objeto del registro, se necesita, además, su dirección en formato IPv4 o IPv6. El procedimiento para el registro de estos datos y el registro de los dominios, ha sido modificado recientemente (setiembre de 2009), cambiando sustancialmente la forma en que éste se realiza. Entre otras cosas, es un sistema basado en usuarios registrados, que pueden realizar las diferentes operaciones de alta, baja o modificación. A pesar de esto, las consideraciones aquí hechas, siguen siendo la base conceptual para los procesos actuales para el registro de dominios, los cuales son presentados a continuación, contrastados con los anteriores.43 CAPÍTULO 3. SISTEMAS DE REGISTRO 36 Procedimientos para el registro de dominios Previo a la implantación del actual Sistema Integral de Registro de Dominios (ver Sección 3.2.2), en el sistema anterior, el registro de personas y de dominios, se realizaba mediante dos formularios distintos: uno para las personas y otro para los dominios. En el formulario de personas, se registraban los datos de una persona para actuar como titular o alguno de los contactos de los dominios a registrar, debiéndose completar este procedimiento para cada persona nueva a registrar. Este proceso, culminaba con la asignación del identificador antes mencionado (NIC-Handle). En la actualidad, el registro de personas, está integrado al registro de dominios en un único wizard o asistente, que guía al usuario durante los pasos del registro. El primer paso para el registro de dominios, es indicar el nombre del dominio, el dominio de segundo nivel que corresponda (.org.uy,.net.uy,.edu.uy,.gub.uy, o.mil.uy) y una descripción de la actividad a la que se destina el dominio. Adicionalmente, para los dominios educacionales (.edu.uy) se debe indicar si el dominio es para una institución pública, ya que estas no deben pagar ninguna tarifa por el dominio. A continuación, se deben indicar el titular del dominio, y los contactos administrativo, técnico y de pago. El procedimiento para estas personas es idéntico: se puede indicar el NIC-Handle de una persona ya registrada, o indicar los datos de una persona nueva. Si se indican los datos de una persona nueva, a dicha persona se le asigna su respectivo NIC-Handle para poder ser utilizado en las demás asociaciones del dominio con las personas. Aquí, se plantea otra diferencia al proceso previo: las personas nuevas, actualmente, no son registradas hasta que se completó el proceso de registro del dominio (si bien sus NIC-Handle están disponibles durante el mismo). En resumen, si un usuario inicia un proceso de registro de dominios, creando nuevas personas, y no lo finaliza, dichas personas no podrán ser utilizadas en nuevos procesos, salvo que se ingresen nuevamente todos sus datos. Una vez asociadas las personas a los distintos contactos, se deben indicar los servidores de nombres que responderán de manera autoritativa a las consultas sobre el dominio. Se precisan 2, uno primario y otro secundario, y, en el sistema actual, no así en el anterior, se pueden indicar hasta 11 servidores adicionales. Luego de indicados los servidores, el usuario tiene la opción de seguir registrando más dominios, dentro del mismo proceso, o de generar el documento de pago correspondiente a los dominios registrados durante éste. El usuario tiene la opción de elegir el período de tiempo por el cual registrar el dominio (entre 1 y 5 años), cuando antes se registraban, por defecto, durante 1 solo. Inmediatamente de finalizado el procedimiento, de manera automática,44 CAPÍTULO 3. SISTEMAS DE REGISTRO 37 todos los dominios registrados son activados, y, 20 minutos después, quedan disponibles en Internet. Anteriormente, antes de activar el dominio registrado (recordar que en el procedimiento se podía registrar 1 por vez), se seguían algunos pasos de verificación que requerían el envío de faxes, y la intervención de un operador humano, quien, a veces, realizaba llamadas telefónicas para confirmar la validez del dominio registrado. El plazo disponible para hacer el pago correspondiente, es de 10 días, luego de los cuales el dominio es dado de baja. En el caso de los dominios gubernamentales, militares, o de educación pública, tanto en la actualidad como en el pasado, se requiere un paso de verificación adicional, que implica el envío de una nota oficial que certifique que el/los dominio/s, efectivamente, pertenecen a una institución de los tipos mencionados. Los dominios con estas características, no son activados mientras no se reciba dicha nota. Procedimientos para bajas y modificaciones de Dominios En el sistema anterior, cada dominio tenía una clave secreta asociada, que los usuarios podían utilizar para acceder a las modificaciones o bajas de dominios. Quien tuviera dicha clave, podía acceder a un formulario para la modificación, o a uno de baja, para el dominio asociado a la clave ingresada. Para las modificaciones, se disponía de un formulario similar al de alta del dominio, con todos los campos modificables en blanco. El usuario, completaba los que deseaba modificar y enviaba el formulario. No se podían modificar el nombre del dominio, la descripción de la actividad, y el nombre del titular, y si se deseaba modificar los servidores de nombres, había que llenar los dos pares < nombre, IP >, modificando el que se deseara y poniendo los datos ya registrados en el que no (o modificando ambos). En todos los casos, los campos que no se completaban quedaban tal como estaban. Para el caso que se deseara iniciar el proceso de baja de un dominio, el usuario ingresaba con la clave asociada al mismo al formulario de bajas, y como resultado de esto, se enviaba un correo de confirmación al contacto administrativo del dominio. En ambos casos, bajas y modificaciones, como resultado se obtenía una página que debía ser impresa, firmada, y enviada por fax a SeCIU, para confirmar la modificación/baja del dominio. Si el dominio en cuestión era militar (.mil.uy) o gubernamental (.gub.uy), se requería, además, que dicha página fuera impresa en papel membretado o acompañada de nota oficial. Como ya fue mencionado más arriba, el sistema actual está basado en usuarios. Los usuarios se registran con sus correos electrónicos, y, al ingresar al sistema, el usuario adquiere los permisos de aquellos contactos cuya direc-45 CAPÍTULO 3. SISTEMAS DE REGISTRO 38 ción de correo coincide con la identificación del usuario. Los permisos que se pueden adquirir, según el tipo de contacto, son: El contacto administrativo tiene autorización para modificar todos los datos del dominio, excepto la titularidad, y para gestionar los aspectos relativos al pago. También tiene autorización para iniciar el procedimiento de baja, el cual deberá ser autorizado por el titular del dominio. El contacto técnico tiene autorización para modificar, solamente, los datos de los servidores de nombres. El contacto de pago únicamente puede gestionar los aspectos relativos al pago. Existen, además del procedimiento iniciado por el titular o el contacto administrativo, circunstancias bajo las cuales los dominios son dados de baja automáticamente: se pueden dar de baja dominios por solicitud de una autoridad competente, o por el no pago de la renovación. Continúa existiendo el concepto de dominio critico: un dominio crítico, sólo puede ser dado de baja de manera manual por parte del registro central (SeCIU) Sistema Integral de Gestión de Dominios El SIGD (Sistema Integral de Gestión de Dominios), es la aplicación desarrollada por SeCIU para efectuar su rol de registrar, comunicándose con el software de registry utilizado. Ofrece funcionalidades relativas al registro de dominios y a la facturación de los mismos, como la generación, búsqueda, eliminación y cancelación de documentos de pago. También se ofrecen funcionalidades asociadas a la contabilidad del sistema. Entre ellas se encuentran el alta, baja, y modificación de tarifas, el manejo de los diversos tipos de tarifas y de las bonificaciones. Las funcionalidades contables permiten, además, recibir los datos de facturas pagas en centros externos a SeCIU, y diversas consultas sobre el estado contable del sistema. Es importante destacar el concepto de dominio crítico. Un dominio es crítico si no puede ser dado de baja, salvo de manera manual. Esto significa que, un dominio crítico, no será borrado automáticamente, por ejemplo, a pesar de que haya expirado su período de registro, o que se haya excedido el plazo para el pago de la factura de alta. Los dominios críticos se configuran directamente sobre la base de datos (SIGD no ofrece una funcionalidad para46 CAPÍTULO 3. SISTEMAS DE REGISTRO 39 incluir o excluir un dominio de la categoría crítico). Existen dos maneras para dar esta calidad a los dominios: Por extensión Se indica un conjunto de dominios a través de su extensión. Todos los dominios que tengan una extensión considerada crítica, serán considerados como críticos. Por ejemplo, si se dice que los dominios.gub.uy son críticos, entonces el dominio presidencia.gub.uy es crítico. Por atributo Para cada dominio que se considera crítico, se marca un atributo que lo define como tal. Arquitectura Figura 3.1: Arquitectura del SIGD La arquitectura del SIGD puede apreciarse en la Figura 3.1. Como allí se muestra, es una aplicación Web monolítica que ofrece sus funcionalidades a través de diversas páginas. Dicha aplicación reside en un servidor Web, y accede a una base de datos que replica la base de OpenReg, agregando las47 CAPÍTULO 3. SISTEMAS DE REGISTRO 40 tablas necesarias para cumplir con las funcionalidades específicas del registrar, como ser facturación, manejo de usuarios, etc. El acceso a la base de datos se realiza utilizando JDBC estándar, encapsulando la lógica de acceso en una clase, y responsabilizando de dicho acceso a las diversas clases que representan las entidades de la base de datos. Existen, además de la aplicación web, algunos demonios encargados de manejar los vencimientos de los pagos de los dominios registrados. Uno, se encarga de enviar los avisos automáticos (por correo electrónico) a los contactos de los dominios cuyo pago está por vencer, para lo cual analiza la información de la base web. El segundo, realiza las tareas administrativas relativas a los vencimientos efectivos de dichos dominios (suspensión y baja definitiva). Para esto, analiza la información almacenada en la misma base, y envía los comandos EPP correspondientes a la modificación y borrado de los dominios al servidor OpenReg. En un servidor diferente, se encuentra activo el servicio de OpenReg, con el cual SIGD se comunica utilizando un transporte TCP estándar. Para la comunicación este servidor, se utiliza la librería EPP Registry/Registrar Toolkit (epp-rtk) Registro de Nombres de Dominio en ANTEL El registro de Nombres de Dominio.com.uy, como se mencionó anteriormente, está delegado a ANTEL. Dicha delegación, se rige por normas contenidas en un convenio específico, que determina, entre otros aspectos, los datos a guardar para el registro de dominios. Dichos datos, no difieren de los registrados por SeCIU, siendo la única diferencia importante, el proceso mediante el cual se registran los dominios [19]. Para registrar un dominio.com.uy, en primera instancia se debe chequear la disponibilidad del nombre. Si el nombre está disponible, se puede proceder a registrarlo. En caso de que el usuario no estuviera loggeado en el sistema, al elegir registrar el dominio, se lo redirige a una página para que realice el login. Es necesario contar con una cuenta de ADINET 2 para poder acceder al registro de dominios en ANTEL. El primer paso del registro es indicar titular y contactos para el dominio. El usuario registrante, tiene la opción de indicar un NIC-Handle existente, o crear un contacto nuevo. En este caso, se tiene la opción de crear contactos o titulares (se registran en formularios separados), a diferencia del registro de SeCIU, por separado del proceso de registro de dominios. En el caso de los contactos, el nombre se ingresa en campos separados, y en el caso de los 2 Portal de ANTEL que brinda diversos servicios,48 CAPÍTULO 3. SISTEMAS DE REGISTRO 41 titulares, se ingresa en un único campo, ya que se contempla explícitamente la posibilidad de titularidad para organizaciones. Luego se ingresan dirección, correo electrónico, teléfono y, en el caso de los titulares, el fax. Una vez confirmados los datos, se ingresa la información de pago. Para pagar el registro de dominio, el usuario debe registrar sus datos en Idóneo Pagos 3 (también utilizando la cuenta de ADINET para autenticarse). Este registro se hace por única vez. Se dispone de una página de administración, donde el usuario podrá consultar el estado de sus dominios y realizar procesos de modificación y baja. Los estados de un dominio, pueden ser los siguientes: Pendiente de pago. No se terminó de pagar el dominio. En proceso de alta. Se registró el dominio y hay que esperar unos minutos para que se active. Activo. El dominio está pagado y funcionando. Por defecto, el dominio es alojado en los servidores de nombres de AN- TEL. Para modificar esto, el usuario debe acceder a la página de administración del dominio, donde deberá realizar la delegación correspondiente. En dicha página, además, el usuario podrá modificar los registros del dominio (opción administrar), cambiar los contactos técnico o financiero, o iniciar el proceso de baja del dominio. La única persona capaz de realizar todas estas modificaciones, es el administrador del dominio, o sea, quien lo registra. Los datos correspondientes a todos los dominios bajo.uy, se almacenarán en una base de datos centralizada administrada por SeCIU, la cual será accedida por ANTEL a través de un servicio de altas, bajas y modificaciones, basado en el protocolo EPP Validación de nombres de dominio Los nombres de dominio a registrar, deben, en ambos casos (SeCIU y AN- TEL), cumplir con ciertos requerimientos. En resumen, serán validos nombres de dominio conteniendo únicamente caracteres alfanuméricos y guiones (ASCII 0x2D), no pudiendo ser un guión el primer carácter del nombre [20]. Existen restricciones sobre los nombres de dominio posibles, como por ejemplo, que los nombres elegidos no atenten contra la moral y las buenas 3 Sistema de pagos para comprar productos o servicios a través de Internet con cargo a una factura de ANTEL,49 CAPÍTULO 3. SISTEMAS DE REGISTRO 42 costumbres. Además, el nombre elegido no podrá comenzar con la secuencia de caracteres xn--, ni contener un guión en la tercer o cuarta posición. Tampoco se podrán elegir nombres que sean confundibles con instituciones u otras oficinas del Estado, o con organizaciones internacionales, aún cuando se trate de diferentes sub-dominios. Tampoco se admitirán nombres que sean iguales, análogos o confundibles con algún derecho de propiedad intelectual. A los efectos de resolver conflictos al respecto, SeCIU, define un mecanismo de arbitraje basado en el reglamento de arbitrajes definido por el Centro de Conciliación y Arbitraje 4 de la Cámara de Comercios y Servicios del Uruguay Registro de dominios.cl El Registro de Nombres del Dominio CL, denominado NIC-Chile 6, es administrado por el Departamento de Ciencias de la Computación de la Universidad de Chile 7 y posee ciertas características (por ejemplo, ver más abajo, Período de Publicidad) que hacen interesante su estudio. Su respectivo reglamento[21], establece las condiciones para el registro, las cuales se resumen a continuación. Pueden solicitar nombres de dominio.cl, personas naturales, residentes o avecinadas en Chile, y personas jurídicas, públicas o privadas, y Corporaciones de derecho público o privado, constituidas en Chile, o debidamente autorizadas para operar en Chile. Las personas naturales o jurídicas que no residen en Chile, deben realizar el trámite a través de un representante con domicilio en el país, quien actuará como contacto administrativo, y será considerado como el solicitante a los efectos de la reglamentación. Las solicitudes se envían de manera electrónica, y una vez recibidas, son publicadas por NIC-Chile, para que, en un plazo de 30 días, denominado Período de Publicidad, quienes se sintieran afectados por la solicitud ingresada, pudieran presentar las suyas para ese nombre de dominio. Cada solicitante dispone un plazo de 20 días para hacer efectivo el pago de la solicitud, luego del cual, se considerará que el solicitante desistió de adquirir el nombre. Una vez recibido el pago y transcurrido el período de publicidad, si no hubieran más solicitudes para el nombre involucrado, NIC-Chile, lo asignará al solicitante. Si al final del período de publicidad, existieran varias solicitudes en trámite para el nombre, se iniciará un procedimiento de mediación y Network Information Center Chile, 750 CAPÍTULO 3. SISTEMAS DE REGISTRO 43 arbitraje, mediante el cual, el nombre será finalmente asignado [21]. Para ingresar una solicitud, se deben indicar el número de RUT 8 y un correo electrónico para la comunicación oficial entre el NIC y el titular del dominio. Opcionalmente, asociados al titular, se pueden ingresar observaciones, un teléfono, y el giro en el cuál se desempeña el solicitante. Luego, se piden un contacto administrativo y uno técnico, los cuales deben tener asociados un nombre, una organización (se pide el nombre de la misma), el correo electrónico, la dirección, y el teléfono (el cual es opcional para el contacto administrativo). La información de DNS es opcional, y consiste del nombre y la dirección IP de los servidores. Se pueden ingresar un servidor primario, y hasta 3 servidores secundarios, y, opcionalmente, 4 más, llegando hasta un máximo de 7. Los usuarios pueden utilizar un servicio de DNS secundario provisto por NIC-Chile. Los datos requeridos para la facturación, incluyen el número de RUT, el domicilio, la comuna 9, la ciudad, el giro comercial, y la persona a la cual se enviará la factura. Existe la posibilidad de que estos datos, sean los mismos que luego se utilizarán para la generación del cupón de pago. El cliente tiene la opción de que la factura, le sea enviada en forma electrónica, o por correo tradicional. Para finalizar el registro, el cliente confirma los datos proporcionados, y debe indicar su conocimiento y aceptación de las normas que rigen el registro de dominios.cl. Una vez hecho esto, se informa de la inscripción del dominio, y se muestra un enlace para consultar las diferentes formas de pago. La generación de los archivos de la zona CL (para el sistema de DNS), se realiza cada 30 minutos, con las modificaciones recibidas hasta 10 minutos antes. Esto, incluye dominios nuevos que han sido pagados, o dominios antiguos en los cuales se actualizó la información de servidores de nombres. Para modificar los datos de un dominio, el cliente debe ingresar el nombre de dicho dominio, y luego, a través de un formulario, cambiar los datos que desee. No es posible modificar ni el número de RUT ni el nombre del titular, y, para realizar cualquier modificación, se requiere de un código de verificación que es enviado por correo electrónico a las casillas de correo vigentes para el dominio. El cliente, puede dar de baja un dominio accediendo directamente al sitio de NIC-Chile utilizando un código de autorización que es enviado a las casillas registradas para contacto del dominio. Si el titular del dominio, no tiene 8 Rol Único Tributario: número que identifica a todas las personas naturales o jurídicas en Chile, susceptibles de pagar impuestos 9 Las comunas de Chile son la división político-administrativa menor y básica del país. Corresponde a lo que en términos genéricos se conoce como municipio.51 CAPÍTULO 3. SISTEMAS DE REGISTRO 44 acceso a dichas casillas, puede generar un formulario para solicitarlo, el cual debe ser enviado vía fax. Una vez que el cliente tiene el código de autorización, puede modificar el nombre de dominio y quitar los servidores de nombres, y en la siguiente generación de zona, dicho dominio no será tenido en cuenta. Además, son causales de baja automática: No tener el pago al día. Para el caso de los dominios que cumplieron su fecha de expiración, se avisa por correo electrónico de la baja. No tener servidores de nombres asociados. Tener servidores de nombres que dependan de otros dominios.cl que no están en la zona. Por orden judicial Registro de dominios.pl Los nombres de dominio polacos (dominio.pl) son administrados por NASK, instituto pionero en el desarrollo de Internet en Polonia. Una de las particularidades de este registro, es la utilización de EPP en las transacciones con los registrars. Además de utilizarlo, lo utilizan extendido, lo cual resulta de sumo interés para el trabajo aquí presentado Reglas para el registro de Nombres Para registrar un nombre de dominio, se debe entrar en un acuerdo en el cual intervienen las siguientes partes: NASK. Es la Red de Investigación y Académica de Computadoras, una entidad de Investigación y Desarrollo con sede en Varsovia, Polonia. Socio. Es una entidad asociada a NASK a través de un acuerdo de cooperación para el servicio técnico y administrativo. Ofertante. Es una entidad o persona natural que ha enviado una oferta a NASK directamente o a través de un Socio, para entrar en el acuerdo. El ofertante propone una oferta para entrar en el acuerdo. Suscriptor Es un ofertante que ha entrado en el acuerdo con NASK52 CAPÍTULO 3. SISTEMAS DE REGISTRO 45 La oferta se realiza a través del sitio web de NASK 10. Implica proveer un nombre para el dominio, la información de los servidores de nombres, y los datos del ofertar, sea una persona natural o de otro tipo. Luego de ingresada la oferta, se debe obtener una versión impresa, la cual debe ser claramente firmada y enviada por fax en un plazo no mayor a 7 días. Todas las ofertas tienen asignado un identificador único a los efectos del trato entre el ofertar y NASK. Cualquier modificación o baja de dominios, debe ser realizada por escrito, a través de formularios que están disponibles en el sitio correspondiente [22] Utilización de EPP NASK actúa como un Thin Registry 11 centralizado, permitiendo que compañías o instituciones especializadas en el registro de nombres realicen sus registros utilizando EPP. El servicio EPP ofrecido por NASK, incluye ciertas modificaciones al mapeo básico del protocolo para el registro de nombres de dominio. Se extiende el comando create para posibilitar la reserva de nombres, agregando la extensión book. Cuando un registrar envía una solicitud para crear un dominio con esta extensión, nadie podrá solicitar el nombre por un determinado período de tiempo. Se crea el objeto future, que representa la intención de un registrante de obtener un nombre de dominio cuando éste quede disponible. Otra extensión es la realizada al comando create, al cual se le agrega el elemento reason para que el registrar exprese la razón por la cual debería obtener dicho nombre de dominio. También es posible, a través del agregado del elemento consentforpublishing a los comandos create, update, y info, en caso de que el contacto involucrado sea una persona privada, ocultar los datos privados de dicha persona a las consultas WHOIS que la impliquen. Por último, existe el concepto de individual. A través del elemento individual agregado a los comandos create, update, y info, es posible indicar si el contacto involucrado en el comando, representa una persona privada. Algunas de estas extensiones, están explicadas con mayor detalle en la Sección Un registro fino, o thin registry, es aquel en que parte de la información social asociada a las entidades registradas, está distribuida entre un registro compartido y los registradores que lo utilizan [23]. En contraposición, un registro grueso, o thick registry, es aquel que centraliza toda la información sobre los dominios, incluyendo, por ejemplo, datos de facturación [24].53 CAPÍTULO 3. SISTEMAS DE REGISTRO Registro de dominios.br El Registro de Nombres del Dominio BR, es gestionado por Registro.br 12, el cual es parte del NIC.br 13. Esta organización es la encargada de gestionar diversos aspectos relativos a Internet en Brasil. Se encuentra dividida en diferentes áreas según sus funciones. Registro.br, como ya fue mencionado anteriormente, es la encargada del registro de dominios. Otras secciones son CERT.br 14, CETIC.br 15, CEPTRO.br 16 y W3C Brasil 17. Los pasos para registrar un nuevo dominio son similares a los de registros vistos, contando con una interfaz web para ello. A diferencia de estos, el registro de Brasil cuenta con un sistema de ticket electrónico integrado al proceso de registro. Registro del usuario. Se solicitan los datos personales habituales (nombre, , dirección, teléfono y contraseña). Luego de completarlo, se envía un con un enlace al cual el solicitante debe ingresar dentro de las 24 horas para confirmar el registro. Una vez hecho esto, se recibe por un identificador del contacto. En caso de contar además con un contacto técnico o de pago, se debe repetir el proceso. Ingresar al sistema. Se debe ingresar al sistema con el identificador del paso anterior y la contraseña correspondiente. Registrar el nuevo dominio. Se debe completar el nombre, el sub-dominio, y número de CNPJ o CPF 18. Es posible especificar un contacto técnico o de pago (se ingresan los identificadores devueltos por el primer paso). Si se omiten se asume que el usuario que está registrando el dominio tomará estos roles. Son necesarios al menos dos servidores DNS configurados para hacer efectivo el registro. Si se omiten durante el registro, se tienen dos semanas para informarlos (utilizando el número de ticket que brinda el sistema). 12 Registro de Domínios para a Internet no Brasil, 13 Núcleo de informação e Coordenação de Ponto BR 14 Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil, 15 Centro de Estudos sobre as Tecnologias da Informação e da Comunicação, 16 Centro de Estudos e Pesquisas en Tecnologia de Redes e Operações, 17 World Wide Web Consortium Brasil, 18 Cadastro de Pessoas Físicas54 CAPÍTULO 3. SISTEMAS DE REGISTRO 47 Envío del formulario. Al completar el formulario, si no ocurre ningún error en la validación automática, el registrante recibe por correo electrónico su número de ticket. Este estará disponible para consultar mientras la solicitud no se completa (se activa el dominio o se cancela la solicitud) Espera del registro. Si el dominio que desea está en una categoría que necesita documentación específica, la solicitud quedará en espera hasta recibir la misma para su liberación. Si la documentación no es recibida dentro del tiempo estipulado, la solicitud se cancela automáticamente. Las solicitudes canceladas no se pueden reactivar, siendo necesario realizar nuevamente el registro. Cuando el dominio está registrado o se cancela el ticket, se le notifica por al solicitante. Después del registro. Después de recibir el correo electrónico con la confirmación y las instrucciones de pago, el dominio quedará visible en Internet en la próxima publicación de DNS (30 minutos) Dominios de segundo nivel El registro de dominios de Brasil tiene la particularidad de que se encuentra subdividido en una gran cantidad de dominios de segundo nivel. Genéricos. Los sub-dominios genéricos son com.br y net.br. Pueden ser solicitados tanto por personas físicas como jurídicas. Para personas jurídicas. A modo de ejemplo se citan agr.br (para empresas agrícolas y granjas) art.br (para artes: música, pintura, etc) y b.br (bancos). La lista es bastante amplia y pueden consultarse en Para profesionales libres. Esta categoría es sólo para personas físicas, y contempla muchas profesiones. A modo de ejemplo adm.br (administradores), adv.br (abogados) y arq.br (arquitectos). El listado se encuentra en Para personas físicas. Este grupo está compuesto por los siguientes subdominios: blog.br, flog.br, nom.br, vlog.br y wiki.br. Algunos sub-dominios dentro de la categoría de personas jurídicas requieren documentación especial: Para am.br es necesario el número de CNPJ y el comprobante de ANATEL para radiodifusión sonora AM.55 CAPÍTULO 3. SISTEMAS DE REGISTRO 48 Para coop.br es necesario el número de CNPJ y el comprobante de registro en la Organización de Cooperativas del Brasil. Para edu.br el número de CNPJ, comprobación de la actividad específica a través de un documento del MEC, y algún documento que compruebe que verifique que el nombre a registrar no es genérico. Para fm.br el número de CNPJ y el comprobante de ANATEL para radiodifusión sonora FM. Para g12.br el número de CNPJ. Para gov.br el número de CNPJ y comprobación de que la entidad pertenece al gobierno federal. Para mil.br se requiere la autorización del Ministerio de Defensa. Para org.br el número de CNPJ y documentación probatoria de la naturaleza no gubernamental sin fines de lucro. En los casos en que la institución es un consulado o una embajada, se requiere CNPJ. Para psi.br el número de CNPJ y comprobación de que la entidad es un proveedor de acceso a Internet Soporte para DNSSEC El Registro de Brasil tiene disponible utilizar DNSSEC para todos sus subdominios, sin embargo, para los subdominios b.br y jus.br, su uso es obligatorio. Estos dos subdominios corresponden a entidades bancarias y a entidades del Poder Judicial respectivamente.56 Capítulo 4 EPP, Protocolo Extensible de Provisión 4957 CAPÍTULO 4. EPP Introducción EPP es un protocolo flexible diseñado para la asignación de objetos dentro de registros en Internet. El mismo, surge como resultado del grupo de trabajo provreg 1 de la IETF, que vio la necesidad de desarrollar una herramienta que permitiera la interacción entre aplicaciones propias de los diversos registrars y diferentes registries. Dicho grupo plantea la creciente distinción, en la Administración del registro dentro del Servicio de Nombres de Dominio (DNS), entre la operación de un Registro back-end para almacenar los objetos registrados, y servicios de front-end brindados por los registrars a los registrants. Especialmente, fija la necesidad de permitir el acceso de diversos registrars a un mismo registry. De manera opuesta, interesa que un registrar pueda acceder a diversos registries, sin importar el protocolo, incluso si los registries difieren en su modelo operacional. La solución propuesta, proporciona un servicio de provisión de nombres de dominio, donde provisión significa registrar, renovar, modificar, borrar y transferir los objetos provistos [25]. Esta solución, es un protocolo con estado, transaccional e idempotente, basado en XML, y su última versión (en Julio de 2009) se encuentra especificada en la RFC 4930 [26] El protocolo EPP EPP es un protocolo XML con estado para la capa de aplicación que puede soportar varios protocolos de transporte. Protegidos usando la seguridad de capas inferiores, los clientes intercambian datos de seguridad y opciones disponibles, para luego entrelazarse en un diálogo (iniciado por el cliente) de comando-respuesta. Todos los comandos son atómicos, es decir, terminan o fallan completamente, además de idempotentes, ya que la aplicación repetida del mismo comando, tiene el mismo efecto de red que haberlo aplicado una sola vez. En la Figura 4.1 se muestra la máquina de estados que define el protocolo, con las transiciones que producen los diversos comandos y eventos. 158 CAPÍTULO 4. EPP 51 Figura 4.1: Máquina de estados del EPP59 CAPÍTULO 4. EPP Comandos del EPP Manejo de sesiones EPP Para manejar las sesiones de usuario, se proveen los comandos login y logout. En respuesta a un greeting (saludo) enviado por un servidor EPP activo, el cliente responderá con un comando login, indicando información de usuario y datos sobre los objetos a manejar y opciones tomadas, para establecer una sesión de trabajo con el servidor. La sesión abierta, se terminará cuando el servidor la corte por inactividad o duración excesiva, o cuando el cliente envíe un comando logout. EPP check El comando check, permite chequear la disponibilidad de un objeto en el repositorio. En un mismo comando check, se puede consultar por varios objetos. La respuesta a este comando, indica si el objeto está disponible o no, y, opcionalmente y en caso de no disponibilidad, un texto (específico de cada servidor) indicando la razón de la no disponibilidad. EPP info Para obtener información sobre los objetos almacenados, los clientes autorizados disponen del comando info. Con dicho comando, el servidor mostrará la información sobre el objeto consultado, que es específica de cada tipo de objeto, además del Identificador de Objeto del Repositorio (ROID). EPP poll Con el comando poll, los clientes obtienen los mensajes de servicio que les envía el servidor. Estos mensajes pueden ser creados ante eventos que no requieren intervención alguna de un cliente, como ser borrado o renovación automática por expiración, o como resultado de comandos que requieran notificaciones (además de la respuesta al ejecutor del comando, la cual no debe ser sustituida por el mensaje de servicio). Asimismo, algunos comandos, como la creación de ciertos objetos, pueden requerir un procesamiento off-line. En estos casos, luego de ejecutado el comando, se responde inmediatamente anunciando que la ejecución de la acción solicitada, fue retrasada. A medida que dicha solicitud se va procesando, el cliente es notificado mediante mensajes. El servidor, envía los mensajes de a uno, y los va desencolando a medida que obtiene los acuses de recibo del cliente.60 CAPÍTULO 4. EPP 53 EPP transfer El comando de consulta transfer, permite, a los clientes autorizados, consultar el estado de las solicitudes de transferencia pendientes o completadas. En respuesta a este comando, el servidor indica algunas informaciones administrativas sobre el estado de transferencia del objeto consultado. El asunto de las transferencias, será abordado más adelante en éste capítulo. Comandos de modificación Por último, se puede alterar el estado de objetos del repositorio con los comandos de transformación de objetos. Utilizando los comandos create, delete y update, los clientes pueden realizar altas, bajas y modificaciones de objetos (respectivamente). Para los objetos que tienen un período de vida limitado, es posible extender el período de validez con el comando renew. Además de actuar como comando de consulta, el comando transfer permite manejar cambios en la esponsorización cliente-objeto. Cuando un cliente desea asumir la esponsorización de un objeto, ejecuta un comando transfer, el cual es procesado por el servidor, de manera de completar el proceso de transferencia del objeto. El la Figura 4.2, se puede ver dicho proceso. Las notificaciones que se envían a los involucrados, pueden ser colocadas en las colas de mensajes asociadas, y luego obtenidas con el comando poll, o pueden ser enviadas por algún medio off-line. Para el caso de expiración de solicitudes, el protocolo no indica un plazo ni la acción a tomar. Estos son asuntos locales a cada servidor, que deben estar debidamente documentados. Todos los objetos transferibles, deben tener asociada la respectiva información de autorización, necesaria para realizar los cambios Identificación de objetos Algunos objetos, como los servidores de nombres y contactos, pueden tener utilidad en varios repositorios. Esto puede llevar a inconsistencias que perjudiquen a Internet. Por ejemplo,cambiar un servidor de nombres en un repositorio, pero no en otro, podría llevar a respuestas erróneas sobre las consultas DNS. Es por esto, que se define un identificador global único (GUID), asignado cuando un objeto es creado, que debe ser indicado al cliente en cada respuesta entregada, para que éste pueda obtener información detallada sobre el o los objetos involucrados en la respuesta. Este GUID, es conocido como Repository Object Identificator (ROID). Los valores específicos de los GUID, se asignan en base a políticas del repositorio, pero se sugiere que sean construidos según el siguiente algoritmo:61 CAPÍTULO 4. EPP 54 Figura 4.2: Proceso de transferencia de objetos62 CAPÍTULO 4. EPP Dividir el universo de los repositorios proveedores de objetos en clases de objetos de repositorio. 2. A cada repositorio dentro de una clase de repositorio se le asigna un identificador mantenido por la IANA. 3. Cada repositorio, es responsable, localmente, de asignar identificadores únicos para cada objeto contenido en él. 4. El GUID, se forma concatenando el identificador local y el del repositorio, separados por un guión (ASCII 45). Por ejemplo, el servicio ofrecido por SeCIU es identificado por la cadena uynic, y dentro de SeCIU los dominios se identifican por su FQDN. Por lo tanto, el ROID del dominio fing.edu.uy dentro del repositorio de SeCIU, sería fing.edu.uy-uynic Mensajes básicos Los clientes, intercambian información con el servidor a través de mensajes que tienen determinados componentes. Sin entrar en detalles, aquí se describen o enumeran algunos de ellos. Al iniciar una conexión, o al enviar un mensaje hello, que no tiene elementos a destacar, el servidor responde con un greeting. Dicho saludo, contiene información descriptiva del repositorio disponible. Uno de los elementos es el denominado svcmenu, que describe los servicios proporcionados por el servidor, indicando versiones soportadas, idiomas soportados, URI los espacios de nombres de los objetos manejados, y de las extensiones de objetos soportadas.en este saludo, también se describen las políticas tomadas por el servidor sobre su colección de datos. Los elementos de esa sección, describen el acceso que pueden tener los clientes sobre la información, y afirmaciones sobre la información guardada, que describen el propósito de la colección, los receptores de los datos y la retención de datos. Opcionalmente, se proporciona información sobre el ciclo de vida de la política. El resto de los mensajes, que permiten a los clientes interactuar con el servidor, se refieren a los comandos y sus respuestas. Los comandos, contienen un elemento que indica de qué comando EPP se trata, el cual puede tener como hijos, entidades definidas por el protocolo o el comando. Luego, se pueden indicar aspectos sobre las extensiones de comandos definidas por el servidor, y, finalmente, un identificador de transacción para poder asociar el cliente y el comando.63 CAPÍTULO 4. EPP 56 Las respuestas contienen elementos que describen el éxito ó la falla del comando (los resultados de éxito o falla no se mezclan). En caso de éxito, se provee un único resultado, mientras que en caso de falla, se proveen varios resultados que permiten documentar las condiciones de falla. En todo caso, se provee un código de respuesta y una descripción de su significado. El resto de la información permite identificar los objetos involucrados en la operación, para diagnóstico de errores, describe el estado de la cola de mensajes que el servidor tiene para el cliente, en caso de estar respondiendo a un comando poll (ver Sección 4.2.1), y puede contener información especifica al comando y al objeto asociado Códigos de resultado Todas las respuestas a comandos EPP incluyen un código de resultado que indica el resultado de la ejecución del comando que la originó. Para describir el éxito o fracaso de un comando, EPP utiliza un código de 4 dígitos, que se construye de manera similar al utilizado en los comandos de SMTP. Siguiendo dicha línea, el primer dígito indica el éxito o el fracaso del comando, mientras que el segundo indica la categoría del resultado. Existen 6 categorías, que se muestran en el Cuadro 4.1. x0zz x1zz x2zz x3zz x4zz x5zz Sintaxis del protocolo Reglas específicas de la implementación Seguridad Manejo de datos Sistema servidor Manejo de conexiones Cuadro 4.1: Categorías de resultados según código Los restantes dos dígitos, proveen el detalle de la respuesta, dentro de cada categoría. Además del código, la respuesta debe incluir una descripción legible del estado del resultado. En el Cuadro 4.2 se pueden ver algunos códigos específicos y su descripción Consideraciones de seguridad EPP sólo provee servicios simples de autenticación y autorización de clientes, haciéndolo vulnerable a los ataques más comunes. Cualquier servicio de seguridad más robusto, debe ser provisto por protocolos de capas inferiores. En particular, EPP debería ser desplegado sobre una capa de transporte, o64 CAPÍTULO 4. EPP 57 Códigos de éxito 1000 Command completed successfully 1001 Command completed successfully; action pending Códigos de error 2001 Command syntax error 2101 Unimplemented command 2200 Authentication error 2303 Object does not exists 2400 Command failed 2500 Command failed; server closing connection Cuadro 4.2: Códigos de resultado y descripciones protegido con un protocolo de aplicación, que lo dote de confidencialidad, integridad 2 y una autenticación cliente/servidor fuerte. Para evitar intentos de adivinar contraseñas por repetición, EPP podría limitar el número de intentos de login fracasados. El mecanismo utilizado por EPP para dar el servicio de autenticación, es una variante de PLAIN SASL que aumenta o complementa los servicios disponibles en los protocolos de otras capas [27]. Para autorizar transferencias de objetos, EPP utiliza información asociada a los objetos, la cual debe ser intercambiada a través de un servicio que provea privacidad e integridad, evitando divulgación y/o modificación, mientras ésta está en tránsito. Además, las instancias de EPP, deberían ser protegidas contra ataques de replay 3. Si bien la idempotencia de los comandos de EPP garantizaría algo de esto, aún es posible realizar algún ataque de este tipo, por ejemplo, haciendo replay de un comando create luego de que un comando delete tuvo éxito para un determinado objeto. En la práctica, se utiliza SSL para encriptar el canal de comunicación, evitando así que los atacantes puedan aprovechar la información transmitida Extendiendo el EPP EPP fue desarrollado, originalmente, como un estándar de Internet para el registro de nombres de dominio, para uso entre registradores y registros 2 En seguridad informática, confidencialidad significa que la información intercambiada sólo puede ser vista por los involucrados en el negocio, e integridad se refiere a que, la información intercambiada, no puede ser modificada en el camino entre emisor y receptor 3 En seguridad informática, se habla de replay, cuando se habla de utilizar información válida vista antes65 CAPÍTULO 4. EPP 58 de dichos objetos. A pesar de esto, el protocolo fue diseñado teniendo en cuenta la posibilidad de extenderlo para ser usado en otros contextos de provisión. Por lo tanto, el protocolo está representado en XML, y la especificación del mismo describe funciones generales del protocolo, y no objetos a ser administrados por el protocolo, permitiendo un bajo acoplamiento entre la funcionalidad mínima requerida, y la lógica operacional del manejo de objetos. Se proveen diversos mecanismos de extensión. Dichos mecanismos, dotan de gran flexibilidad al protocolo, pero, en ningún caso, deben ser aplicados para modificarlo. Una extensión, agrega funcionalidades, no quita o modifica las existentes. Por otro lado, las extensiones en sí mismas, deberían ser extensibles. Debido a que los mecanismos de extensión de EPP pueden llevar a malos diseños, se hace necesario una guía que explique lineamientos para realizar las decisiones de manera ordenada, sin llegar a cometer errores. En esta sección, se presentan el marco de trabajo que permite extender el protocolo, y las guías provistas para hacerlo en buena forma Marco de trabajo para las extensiones Las extensiones se pueden hacer en tres niveles: sobre el protocolo, sobre los objetos o sobre los comandos y sus respuestas. También existe la posibilidad de agregar información de autenticación a los objetos manejados. Extensiones al protocolo Las extensiones al protocolo, son aquellas que refieren a nuevas funcionalidades agregadas. La sintaxis del XML para EPP, permite, a través del elemento <extension>, agregar dichas funcionalidades. Estas extensiones deben ser definidas cada una por su lado, sin alterar la especificación base del protocolo. Extensiones a los objetos EPP proporciona un marco de trabajo extensible para el manejo de objetos que define las operaciones que pueden realizarse sobre los objetos. Este marco, coloca la definición de las operaciones en el contexto específico de un objeto, lo cual posibilita agregar mapeos para nuevos objetos sin alterar el protocolo básico. Nuevamente, estas extensiones deben ser definidas cada una por su lado, sin alterar la especificación base del protocolo. Extensiones comando-respuesta Se pueden extender los comandos existentes (y los agregados también), agregando elementos <extension> como66 CAPÍTULO 4. EPP 59 hijos de los respectivos elementos <command>. Las respuestas, que dependerán del contexto indicado por el comando, se extienden de manera similar. Extensión de la información de autenticación Algunos objetos, pueden requerir el adjuntado de información de autenticación. Por ejemplo, se puede querer asociar una contraseña a un nombre de dominio en Internet. En caso de necesitarse esto, dicha información deberá ser especificada teniendo en cuenta la posibilidad de múltiples formas de autenticación Guías para extender el protocolo De lo anterior, surge que existen diversas maneras de extender EPP, pero, cuál elegir? El aplicarlas de manera indiscriminada, podría llevar a malos diseños, o diseños que requieran modificaciones al protocolo. La RFC 3735 [7], proporciona una guía que permite, avanzando en grado de complejidad, escoger un mecanismo de extensión, o descartar EPP como la solución buscada. Dicha guía, se resume a continuación. 1. Extensión comando-respuesta. Esta es la manera más simple para extender el protocolo, y, por lo tanto, debería ser considerada primero. El usuario deberá contestar la pregunta se puede desarrollar la tarea, extendiendo un mapeo de objeto existente, o modificándolo levemente? Si la respuesta fuese afirmativa, usar el mecanismo de extensión de comando-respuesta, es lo más adecuado. 2. Extensión de objetos. Si no existiera ningún mapeo de objetos, cuya modificación sirviera para completar los requerimientos, se debe considerar el mecanismo de extensión de objetos, que implica agregar nuevos objetos. La utilización de este mecanismo, será resultado de una respuesta afirmativa a la pregunta se puede cumplir la tarea utilizando los comandos y estructuras de respuesta de EPP, aplicados a un nuevo objeto? Ahora, el usuario debería definir un nuevo tipo de objeto, lo cual implica, además, definir cómo actúan los comandos sobre él Extensión del protocolo. Si ninguna de las alternativas anteriores fuera de utilidad, se debería considerar extender el protocolo, agregando nuevos comandos, respuestas u otros tipos de estructuras, para ser utilizados con objetos nuevos o preexistentes. Previo a la utilización de 4 de aquí, que se hable de mapeo de objetos, ya que los objetos se mapean a los comandos del protocolo67 CAPÍTULO 4. EPP 60 este mecanismo, se deberá contestar afirmativamente si se puede completar la tarea, agregando a EPP nuevos comandos, respuestas u otras estructuras, aplicados a objetos nuevos o existentes? Finalmente, si la respuesta a la última pregunta es negativa, se puede afirmar que EPP no es la respuesta al problema planteado Utilizando EPP EPP puede ser utilizado en diversos ámbitos, donde sea necesario un contexto de provisión de objetos contenidos en un repositorio central. En esta sección, se presentan a manera introductoria las extensiones existentes para el manejo de nombres de dominio de Internet, analizando la información manejada por el protocolo, a través de los comandos de transformación y consulta (ver Sección 4.2.1), aplicados a contactos, hosts y nombres de dominios. El detalle de las extensiones se puede consultar en las RFC respectivas (4933[28], 4932[29] y 4931[30]). Las extensiones planteadas en dichos documentos, hacen referencia a detalles sobre los tipos que pueden tener los atributos de cada objeto. Dicho detalle, está fuera del alcance de esta introducción, pero resulta interesante analizar lo relativo al estado de los objetos. Los objetos, en general, pueden tomar algunos de los estados que se describen a continuación. clientdeleteprohibited, serverdeleteprohibited Cualquier pedido para borrar el objeto debe ser ignorado. clientupdateprohibited, serverupdateprohibited Para estos estados, todo intento de actualizar el objeto, salvo cambiar este estado, debe ser rechazado. ok Este es el estado normal de un objeto que no tiene operaciones pendientes o prohibiciones. Es indicado o borrado por el servidor a medida que otros estados son indicados o borrados. pendingxx Un comando de transformación XX (create, update, transfer, renew o delete) fue efectuado sobre el objeto, pero su acción fue postergada por el servidor. La postergación de ciertas acciones, es asunto del servidor, y puede deberse a diversas acciones, como la de revisiones humanas o acciones de terceros. En el caso de los hosts, un estado pendiente, también, puede deberse a una transferencia del nombre de dominio que lo subordina.68 CAPÍTULO 4. EPP 61 Los objetos de tipo host y contacto también pueden tener asociado el estado linked, el cual indica si el objeto tiene al menos una relación activa con algún otro objeto, como un nombre de dominio. Por otro lado, hosts y dominios, pueden tener asociado los estados clienttransferprohibited y servertransferprohibited, en cuyo caso, el objeto así marcado, no puede ser transferido, ya sea por el cliente o por el servidor, respectivamente. Finalmente, los objetos de tipo nombre de dominio, pueden ser etiquetados con alguno de los siguientes estados: clienthold, serverhold La información de delegación del servicio DNS, no debe ser publicada para el objeto. clientrenewprohibited, serverrenewprohibited Las solicitudes para renovar la validez del objeto deben ser rechazadas. inactive Aún no se ha asociado información de delegación al objeto. Ciertas combinaciones de estados, no están permitidas: ok solo se puede mezclar con linked para hosts y contactos. Para nombres de dominio, no se puede combinar con ningún otro estado. pendingdelete no se puede combinar ni con clientdeleteprohibited, ni con serverrenewprohibited. pendingtransfer no se puede combinar ni con clienttransferprohibited, ni con servertransferprohibited (contactos y nombres de dominio). pendingupdate no se puede combinar ni con clientupdateprohibited, ni con serverupdateprohibited. linked se puede combinar con cualquier estado. pendingrenew no se puede combinar ni con clientrenewprohibited, ni con serverrenewprohibited. Por último, los estados pendingcreate, pendingdelete, pendingrenew, pendingtransfer, y pendingupdate, no deben ser combinados entre sí.69 CAPÍTULO 4. EPP Contactos Los contactos representan a personas asociadas a los dominios provistos por el repositorio central. Un objeto de este tipo, por lo tanto, contendrá información relativa a personas, como ser información postal y social sobre dicha persona. Ejemplo de esta información, son el nombre del contacto, su teléfono, su correo electrónico, la organización a la cual pertenece, y su dirección. La dirección, se desglosa en sus diversos componentes: calle y número, ciudad, país, código postal, etc. Opcionalmente, se puede indicar a los clientes qué información requiere procesamiento especial del servidor, antes de ser divulgada a terceros.esta indicación, se realiza a través del elemento <contact:disclose>, indicando si se prefiere permitir o denegar la divulgación de un determinado atributo, y si se trata de la versión local o internacionalizada del mismo. Todas las solicitudes en este sentido, deben ir en acuerdo con las políticas de la colección de datos del servidor, anunciadas en el greeting (ver Sección 4.2.3). Este tipo de objeto, tiene la propiedad de ser transferible entre los clientes de un repositorio, y, por lo tanto, le es aplicable el comando transfer (ver Sección 4.2). Cuando un cliente desee transferir un contacto, deberá proporcionar su identificador y la información de autenticación necesaria, y podrá, luego, consultar los mensajes originados por el servidor durante el proceso de transferencia, ya sea con el mismo comando transfer, o con el comando poll Hosts Los hosts son objetos que existen para la delegación de dominios, y, por lo tanto, contienen la información necesaria a los efectos de delegación, esto es, nombre y dirección IP. Existen, además, otros datos que permiten trazar el ciclo de vida del objeto, a través de fechas e identificación de los clientes que intervinieron en dicho ciclo de vida. Un dato importante sobre los objetos de este tipo, es el estado, el cual ya fue descrito con detalle anteriormente, en esta misma sección. También es importante destacar que se almacena quién es el cliente patrocinador del objeto, o sea, quién lo puede administrar o transformar. Existen varios tipos de hosts: internos/externos y los que están subordinados, o no, a algún dominio. Un host es externo o interno relativo al repositorio en que se encuentra almacenado, mientras que un host estará subordinado o no, si es usado para la delegación de algún dominio. Pueden existir hosts que no estén subordinados a ningún dominio, y pueden haber dominios, dentro del repositorio, que utilicen hosts externos, es decir, en otro repositorio.70 CAPÍTULO 4. EPP Nombres de dominio de Internet Un nombre de dominio de Internet tiene asociado su FQDN, los hosts a los que se delegan los servicios de resolución del dominio, diversos contactos, el cliente patrocinador (un registry EPP), e información sobre su período de validez. Los hosts asociados, deben existir previo al registro del nombre, y se pueden especificar con el FQDN de un host registrado, o indicando éste y la dirección IP asociada. Un nombre de dominio, puede tener asociados contactos de varios tipos (técnicos, administrativos, de pago, etc.) y tiene asociado un contacto para representar a al persona que registra el nombre (el titular de dicho nombre). El período de validez indica un intervalo de tiempo durante el cual el nombre es válido, y este puede ser renovado con el comando renew. Los nombres de dominio, pueden ser transferidos con el comando transfer. Cuando un nombre de dominio es transferido, se puede extender su período de validez, y todos los objetos de tipo host subordinados, deben ser incluidos como parte del proceso de transferencia. DNS habilita la definición de diversos tipos de registros asociados a un dominio, pero este mapeo sólo define los necesarios para la delegación de servicios y resolución, es decir NS, A y AAAA. Funcionalidades de otros tipos de registros DNS, como por ejemplo MX y CNAME, podrían ser desarrolladas a través de la extensión de EPP. Hasta aquí se presentaron las descripciones de los objetos involucrados en el negocio de registro de nombres de dominio de Internet. En la Figura 4.3, se puede apreciar un diagrama que muestra cómo se asocian entre sí. Figura 4.3: EPP aplicado a la provisión de Nombres de Dominio de Internet71 CAPÍTULO 4. EPP Resumen del capítulo EPP es un protocolo diseñado para comunicar un registro (registry) de objetos, con los interesados en registrar (almacenar) objetos en este repositorio (registrars). Está basado en XML, y su forma extensible lo hace apto para almacenar diversos tipos de objetos. Los objetos almacenados pueden ser manejados y consultados a través de comandos de transformación (como alta, baja y modificación) y consulta. Los mecanismos de extensión, permiten adaptar el protocolo genérico (ver [1]) a las necesidades de almacenamiento de objetos del interesado. Existen 3 formas de realizar extensiones (ver [7]). La primera es la extensión de comandos y respuestas, que consiste en modificar levemente objetos existentes y extender el mapeo de los comandos a estos objetos, para adaptarlos al uso requerido. En segunda instancia, se puede recurrir a las extensiones de objetos, que consiste en agregar nuevos objetos y definir cómo actúan los comandos de EPP sobre los mismos. Por último, se puede extender el protocolo agregando nuevos comandos. Si ninguno de estos procedimientos ayuda a resolver el problema, se puede afirmar que EPP no es una solución para el mismo. El uso principal de EPP, y principal razón para su desarrollo, es el almacenamiento y gestión de nombres de dominios de Internet, para su posterior publicación en el Sistema de Nombres de Dominio (DNS). A tales efectos, existen extensiones para el mapeo del protocolo a los nombres de dominio, a los hosts (que cumplen funciones de servidores de nombres para los dominios), y a los contactos, que son las personas relacionadas al dominio, como puede ser un dueño, un contacto para gestiones administrativas, etc.72 Capítulo 5 Extensiones existentes de EPP 6573 CAPÍTULO 5. EXTENSIONES A EPP Introducción EPP posee diversos mecanismos de extensión que permiten adaptar el protocolo a las necesidades específicas de los agentes interesados en brindar un registro de objetos centralizados utilizando dicho protocolo. Dichos mecanismos, abarcan la extensión de las interacciones comando respuesta, las extensiones a comandos, y las extensiones al propio protocolo. El primero, agrega elementos a las solicitudes del cliente y a las respuestas del servidor, sobre los comandos existentes en el protocolo, aplicados a los objetos ya definidos. La segunda posibilidad, implica agregar nuevos objetos al protocolo y definir como actúan los comandos existentes sobre dichos objetos. La última posibilidad a considerar, es la de extender el protocolo propiamente dicho, agregando nuevos comandos. En las siguientes secciones, se presentan los resultados de una investigación basada en Internet sobre extensiones existentes al protocolo EPP y sus mapeos a los objetos implicados en el negocio del registro de nombres de dominio. La misma, se realizó utilizando el buscador de Google, y contó con asesoramiento de los especialistas de SeCIU en el asunto Extensiones para el dominio.coop El TLD.COOP, es un dominio restringido destinado a organizaciones cooperativas 1. Como tal, cada nombre registrado bajo éste, debe sufrir un proceso de verificación para asegurar que el nombre está realmente asociado a una organización de este tipo. A tales efectos, se introduce el concepto de registrant, el cual no es más que un contacto de EPP que ha sido verificado como perteneciente a una organización cooperativa. Cualquier contacto verificado como registrant del dominio.coop, puede registrar nombres dentro de éste. En la figura 5.1, puede verse el proceso seguido para comprobar la elegibilidad de un contacto como registrant. El proceso de verificación, se inicia cuando un contacto es utilizado como registrant por primera vez. Dentro del mismo, se distinguen dos entidades participantes: el socio de verificación (VP por sus siglas en Inglés) y el sponsor. El VP es una persona u organización externa que acuerda ayudar a dotcoop 2 para confirmar la elegibilidad de un registrant. Un sponsor, es otra cooperativa, u organización de cooperativas, que puede proveer información acerca de la elegibilidad del patrocinado Organización encargada de administrar el TLD.COOP74 CAPÍTULO 5. EXTENSIONES A EPP 67 Figura 5.1: Proceso de verificación para registrants del TLD.COOP Cuando un registrant es confirmado como elegible, su estado es verified. Si el registrant no puede ser verificado automáticamente, pasa a un estado pendiente, donde puede ser aceptado (pasaría a verificado) o rechazado. Si es rechazado, tiene un plazo para apelar. Si las apelaciones en plazo no tienen efecto, o si el plazo se cumple, se rechaza la solicitud. Algunos registrants verificados, pueden ser elegidos para ser auditados. Cuando un registrant es auditado, puede resultar que se confirme su elegibilidad o que sea rechazado. Los dominios registrados por un registrant que no está verificado, no pueden ser activados para el sistema de DNS. Para soportar este proceso, se extiende el contacto EPP agregando una lista de patrocinadores, un estado de verificación, una preferencia de lenguaje, y una preferencia de lista de correo. Los patrocinadores son contactos, pero, como en el EPP estándar sólo se pueden relacionar contactos con dominios, es necesaria esta extensión para poder relacionar al contacto patrocinado con sus sponsor. La preferencia de lenguaje, es para permitir a los registros, comunicarse con los contactos en su lenguaje, y la lista de correo sirve para que el registro envíe información a los registrants [31].75 CAPÍTULO 5. EXTENSIONES A EPP Extensiones para IDN IDN (Internationalized Domain Name, o Nombre de Dominio Internacionalizado), es un nombre de dominio que puede tener caracteres fuera del conjunto ASCII. Ejemplo de éstos, son los nombres en idiomas con lenguajes ideográficos, como el Chino o el Japonés, o los nombres en lenguajes como el Francés o el Español, que pueden tener acentos, y, en el caso del Español, la letra eñe. Debido a que los sistemas DNS fueron diseñados basándose en caracteres ASCII, se hace necesaria una manera de poder soportar nombres no-ascii, basándose exclusivamente en caracteres ASCII. Esta manera define una codificación para los nombres no-ascii, y dos operaciones para realizar las traducciones en uno y otro sentido [32]. Las aplicaciones IDN deben soportar los siguientes estándares: Nameprep [33], Stringprep [34], y Punycode [35]. Los dos primeros, indican la manera en que se deben preparar las cadenas de caracteres para las transferencias de nombres IDN, y el último, define cómo se codifican dichos nombres. La codificación implica la utilización de un prefijo conocido como ACE (ASCII Compatible Encoding, o Codificación Compatible con ASCII ), el cual marca que una etiqueta está internacionalizada. Este prefijo, que es la cadena xn--, no puede ser utilizado como parte del nombre de ningún dominio. Además, la codificación, implica guiones en ciertas posiciones de la cadena de caracteres, lo cual hace que tampoco se puedan usar estos caracteres en dichas posiciones del nombre. La utilización de nombres IDN, introduce varias dificultades. La más importante de todas, es el tamaño del repertorio de caracteres posibles, lo cual hace que la tarea de codificación-decodificación no sea sencilla. Esta dificultad, se ataca restringiendo el conjunto de caracteres que soporta un registro, lo cual obliga a que el registro indique el conjunto de caracteres soportados. Otra dificultad, más sutil, es la de los caracteres confundibles: caracteres de diferentes alfabetos, que a la vista son muy similares, pero que significan distintas cosas. Además, surgen problemas cuando se tratan nombres equivalentes. Por ejemplo: república es lo mismo que republica?, qué se debe hacer con los nombres equivalentes que se utilizan cuando no está disponible IDN (como peña, penha, penia, etc.)? Es necesario incluir políticas para dirimir estas cuestiones. En cuanto al manejo de los nombres por parte del sistema DNS, no existen problemas: a nivel de dicho protocolo, se manejan todos los nombres con la codificación punycode, que no incluye caracteres no-ascii y puede ser manejada por los servidores de nombres. Se deja todo el trabajo de76 CAPÍTULO 5. EXTENSIONES A EPP 69 codificación-decodificación a las aplicaciones interesadas en resolver nombres. Por lo tanto, los registries, antes de generar los archivos de zona, deben asegurarse de realizar éste trabajo. Para esto, se pueden tomar dos enfoques: que el registrar envíe el nombre en formato punycode, o que lo envíe en formato IDN y que el registro se encargue de la traducción. Si el enfoque es el primero, el registry permanece sin cambios, mientras que si es el segundo, es necesario agregar elementos que posibiliten no sólo la traducción, si no, también, el manejo de errores que pueden ocurrir al intentar traducir caracteres no soportados. Por estos motivos, no sería necesario modificar el protocolo EPP, salvo que se quiera agregar el soporte en el registro. Si fuera esta la opción, sería necesario agregar extensiones para indicar la lista de idiomas y caracteres soportados, y, eventualmente, las políticas que se toman para atacar las dificultades antes expuestas. En [36] se define una extensión a EPP para indicar, mediante una extensión a los nombres de dominio que muestra, mediante una etiqueta, el idioma usado en el registro. En [37], se indican los procedimientos para registros IDN en el TLD.PL., asociado a Polonia, cuyo alfabeto incluye caracteres no-ascii. Allí se puede ver cómo se definen los caracteres permitidos, y cómo se permite el registro IDN sin modificar el EPP estándar Extensiones para DNSSEC SeCIU tiene planes de agregar soporte para las extensiones de seguridad DNSSEC a su servicio de DNS. Como fue explicado en la Sección 2.3, DNS- SEC agrega cuatro nuevos tipos de registros de recursos a DNS. De ellos, los registros DNSKEY, RRSIG y NSEC, son agregados al archivo de zona durante el proceso de firmado, por lo que no se requiere ninguna interacción con EPP. Sin embargo, no ocurre lo mismo con el registro DS. Es necesario que ante un cambio de clave en un dominio firmado, se notifique al registry actualizando el digest contenido en el registro DS. Para realizar dicha actualización, se utiliza EPP. Por lo tanto, la única interacción entre DNSSEC y EPP, es que el primero utiliza al segundo como mecanismo de gestión de los registros de tipo DS, para que éstos puedan ser publicados desde el repositorio central, lo cual puede verse en la figura 5.2. En la RFC 4310 [38] se plantean las extensiones necesarias a los comandos info, create y update de EPP para dar soporte para que el registry pueda gestionar y publicar los registros DS, necesarios para el correcto funcionamiento de DNSSEC. Además, se contemplan los casos de actualizaciones de los registros DS debido a cambios de claves KSK, tanto planificados como77 CAPÍTULO 5. EXTENSIONES A EPP 70 Figura 5.2: Relación entre DNSSEC, EPP y registros DS casos de emergencia. A continuación, se presenta un análisis de las extensiones definidas en la RFC mencionada. Extensión de la respuesta del comando info aplicado a Dominios Esta extensión consiste en que la respuesta del comando info contenga la información de delegación del dominio, la cual fue aportada por el registrar en una invocación previa de un comando create o update. Luego de la Sección <resdata> de EPP, la cual contiene la información del dominio, se agrega la Sección <secdns:infdata> la cual contendrá una o más etiquetas <secdns:dsdata>, cada una de las cuales describe la información de delegación proporcionada. Cada uno de los elementos <secdns:dsdata> contendrá los nodos listados a continuación. <secdns:keytag> Este elemento contiene el valor de tag de la clave utilizada para generar el digest. <secdns:alg> Contiene el código numérico asignado al algoritmo utilizado para generar las claves criptográficas. <secdns:digesttype> Contiene el código numérico que se corresponde con el algoritmo utilizado para generar el digest. <secdns:digest> Contiene el digest de la clave DNSKEY. <secdns:maxsiglife> Este nodo es opcional, en caso de estar presente indica una preferencia para el número de segundos de expiración a partir de la generación de la firma del registro DS. En caso de existir varios registros <secdns:dsdata> para un dominio, los valores de <secdns:maxsiglife> deberían ser iguales. <secdns:keydata> Este nodo también es opcional, en caso de estar presente indica los valores de entradas de datos utilizados para el cálculo del digesto. Contiene:78 CAPÍTULO 5. EXTENSIONES A EPP 71 <secdns:flags>: banderas que indican el tipo de clave. <secdns:protocol>: indica el código del protocolo utilizado. <secdns:alg>: número de algoritmo utilizado para la clave. <secdns:pubkey>: clave pública utilizada. Los detalles de los valores permitidos para cada uno de estos nodos se encuentran en la RFC 4034 [10]. En caso de cualquier tipo de error al obtener esta información, se debe retornar una respuesta de error EPP. En los Cuadros 5.1 y 5.2 se muestran ejemplos de respuestas exitosas al comando info, cuando un dominio tiene asociada información de seguridad. El segundo ejemplo, contiene los nodos opcionales. Cada ejemplo, asume la parte estándar de EPP, mostrando únicamente la información agregada. <extension> <secdns:infdata xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns:secdns-1.0 secdns-1.0.xsd"> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest>49fd46e6c4b45c55d4ac</secdns:digest> </secdns:dsdata> </secdns:infdata> </extension> Cuadro 5.1: Respuesta al comando info para un nombre con información DNSSEC Extensión del comando create aplicado a Dominios Bajo el nodo <extension> se agrega un nodo <secdns:create> el cual identifica la extensión. Este a su vez contendrá uno o más nodos <secdns:dsdata>, los cuales tienen la información de delegación, y ya están detallados en la sección anterior para el comando info (ver Sección 5.4). El servidor deberá responder con un código de error EPP en caso que los valores recibidos no sean apropiados, ya sea por un problema sintáctico como por razones políticas del registry.79 CAPÍTULO 5. EXTENSIONES A EPP 72 <extension> <secdns:infdata xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest>49fd46e6c4b45c55d4ac</secdns:digest> <secdns:maxsiglife>604800</secdns:maxsiglife> <secdns:keydata> <secdns:flags>256</secdns:flags> <secdns:protocol>3</secdns:protocol> <secdns:alg>1</secdns:alg> <secdns:pubkey>aqpj////4q==</secdns:pubkey> </secdns:keydata> </secdns:dsdata> </secdns:infdata> </extension> Cuadro 5.2: Respuesta al comando info para un nombre con información DNSSEC y nodos opcionales.80 CAPÍTULO 5. EXTENSIONES A EPP 73 Los Cuadros 5.3 y 5.4 muestran la información que se agrega al comando create para satisfacer los requerimientos de DNSSEC. <extension> <secdns:create xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest> 49FD46E6C4B45C55D4AC </secdns:digest> </secdns:dsdata> </secdns:create> </extension> Cuadro 5.3: Comando create para un nombre con información DNSSEC Extensión del comando update aplicado a Dominios Para satisfacer los requerimientos de información de DNSSEC en el registry, bajo el nodo <extension>, deberá existir un nodo <secdns:update> el cual identifica la extensión. Contendrá 3 secciones: <secdns:add> Especifica información a agregar. Contiene uno o más nodos <secdns:dsdata>. <secdns:rem> Especifica información a quitar. Contiene uno o más nodos <secdns:keytag> que son usados para identificar la información a quitar. <secdns:chg> Especifica información a cambiar. Contiene uno o más elementos <secdns:dsdata> con los que se sobreescribirá la información existente para el dominio. Además, el nodo <secdns:update> podrá contener el atributo urgent como mecanismo para solicitar, al registry, el procesamiento prioritario de su solicitud. Si esta actualización no puede ser completada con alta prioridad, se deberá retornar el código de error EPP 2306, parameter value policy error.81 CAPÍTULO 5. EXTENSIONES A EPP 74 <extension> <secdns:create xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest> 49FD46E6C4B45C55D4AC </secdns:digest> <secdns:maxsiglife>604800</secdns:maxsiglife> <secdns:keydata> <secdns:flags>256</secdns:flags> <secdns:protocol>3</secdns:protocol> <secdns:alg>1</secdns:alg> <secdns:pubkey>aqpj////4q==</secdns:pubkey> </secdns:keydata> </secdns:dsdata> </secdns:create> </extension> Cuadro 5.4: Comando create para un nombre con información DNSSEC y nodos opcionales82 CAPÍTULO 5. EXTENSIONES A EPP 75 Los Cuadros 5.5, 5.6, 5.6, 5.7 y 5.8, muestran la información extendida para diversas actualizaciones, que incluyen información de seguridad. El primero, muestra un ejemplo de invocación al comando update para agregar información de delegación, mientras que, en el segundo, dicha información está siendo quitada. En el tercer Cuadro, se está realizando una modificación urgente, tal como lo muestra el atributo urgent con valor 1 dentro del nodo <secdns:update>. Finalmente, en el Cuadro 5.8 se muestra un ejemplo de una actualización incluyendo la información opcional. <extension> <secdns:update xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:add> <secdns:dsdata> <secdns:keytag>12346</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest> 38EC35D5B3A34B44C39B </secdns:digest> </secdns:dsdata> </secdns:add> </secdns:update> </extension> Cuadro 5.5: Extensión al comando update para agregar información DNSSEC 5.5. Extensiones para el dominio.pl Los nombres de dominio polacos, son registrados dentro del TLD.PL. Las extensiones más interesantes para este dominio, son las que se refieren a la reserva de nombres de dominio, para lo cual, se extiende el comando create aplicado al objeto dominio, agregando el elemento <book>, y la creación del objeto future. También resulta interesante la creación del comando report para obtener diversas listas relativas a los objetos registrados. El elemento <book>, fue agregado al comando create estándar para indicar que el nombre de dominio involucrado en dicho comando, va a ser reservado,83 CAPÍTULO 5. EXTENSIONES A EPP 76 <extension> <secdns:update xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:rem> <secdns:keytag>12345</secdns:keytag> </secdns:rem> </secdns:update> </extension> Cuadro 5.6: Extensión al comando update para quitar información DNSSEC <extension> <secdns:update urgent="1" xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:chg> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest> 49FD46E6C4B45C55D4AC </secdns:digest> </secdns:dsdata> </secdns:chg> </secdns:update> </extension> Cuadro 5.7: Extensión al comando update para modificar información DNS- SEC de manera urgente.84 CAPÍTULO 5. EXTENSIONES A EPP 77 <extension> <secdns:update xmlns:secdns="urn:ietf:params:xml:ns:secdns-1.0" xsi:schemalocation="urn:ietf:params:xml:ns: secdns-1.0 secdns-1.0.xsd"> <secdns:chg> <secdns:dsdata> <secdns:keytag>12345</secdns:keytag> <secdns:alg>3</secdns:alg> <secdns:digesttype>1</secdns:digesttype> <secdns:digest> 49FD46E6C4B45C55D4AC </secdns:digest> <secdns:maxsiglife>604800</secdns:maxsiglife> <secdns:keydata> <secdns:flags>256</secdns:flags> <secdns:protocol>3</secdns:protocol> <secdns:alg>1</secdns:alg> <secdns:pubkey>aqpj////4q==</secdns:pubkey> </secdns:keydata> </secdns:dsdata> </secdns:chg> </secdns:update> </extension> Cuadro 5.8: Extensión al comando update para modificar información DNS- SEC de manera urgente con información opcional.85 CAPÍTULO 5. EXTENSIONES A EPP 78 mas no registrado. Cuando se omite dicho elemento, el dominio es registrado de manera normal, mientras que en su presencia, el nombre es reservado por un determinado período de tiempo. Durante este período, la única acción posible es el registro por parte del cliente que lo reservó. Una vez transcurrido el tiempo de reserva, si no se ha confirmado, el registro del nombre en cuestión es bloqueado por otro período de tiempo, luego del cual el nombre queda disponible para reserva o registro. Es relevante notar que no es obligatoria la reserva de un nombre previo a su registro: el paso de reserva es opcional. El fin de la creación del objeto future es similar a la extensión <book>, en cuanto a que se refieren a la reserva de nombres. La diferencia, es que el elemento <book> es utilizado para reservar nombres que no están registrados, mientras que, el objeto future se utiliza para manifestar el interés de un cliente en registrar un nombre de dominio ya registrado, cuando el período de expiración del mismo se cumpla sin que exista intención, del propietario del nombre, de renovarlo. Una vez culminada la validez de un dominio, al no haber sido renovado, el sistema chequea la existencia de un objeto future con dicho nombre (el del dominio expirado). En caso de no existir tal objeto, el dominio queda, nuevamente, disponible para su reserva o registro. Si existiera un future para el dominio, automáticamente se crea una reserva para dicho nombre (con la extensión <book>) asociada al cliente que creó el future. Una vez creada la reserva, el objeto es eliminado. El objeto future, puede ser manejado utilizando los comandos de EPP [39]. Para obtener listados sobre los objetos registrados en el repositorio, se introduce el comando report. Para su utilización, el cliente debe indicar sobre qué tipo de objeto desea realizar la consulta (dominio, contacto, host, o future), utilizando, en cada caso, un elemento adecuado (contenido dentro del comando) con los datos para el criterio de búsqueda. El sistema, responderá con una lista de los objetos pertenecientes al usuario, que cumplan con el criterio de búsqueda [40]. También, se dispone de una extensión que permite, al cliente, ocultar determinada información a los sistemas de WHOIS, que permiten hacer consultas sobre la información almacenada en los sistemas de registros de nombres (consentforpublishing), y otra que sirve para identificar un determinado contacto como una persona física, en contraposición a organizaciones (individual) Extensiones para el dominio.br El registro de dominios en Brasil, realiza una extensión al mapeo de contactos de EPP. Dicha extensión se utiliza para representar a organizaciones86 CAPÍTULO 5. EXTENSIONES A EPP 79 que registran dominios, como podría ser, por ejemplo, un banco o cualquier empresa [41]. Esto, a diferencia del contacto EPP, que representa personas individuales, ya sean físicas o jurídicas, diluyéndose el significado de organización. Puede verse a las organizaciones, entendidas en este contexto, como un grupo de contactos normales que comparten determinada información social. A su vez, las organizaciones que no dispongan de oficinas locales (en Brasil), pueden recurrir a una organización apoderada (proxy) que los represente. La definición de este tipo de organizaciones, se realiza off-line. Más interesantes resultan las extensiones relativas al registro de nombres de dominio. Se define un ticket, que es un identificador secuencial asociado al registro de un Nombre de Dominio, y que garantiza el principio de Primero en Llegar, Primero en ser Servido, o FCFS (First Come, First Served), en las solicitudes sobre el nombre. Luego del borrado o expiración de un nombre de dominio, se lo somete a un período de liberación durante el cual, los interesados en dicho nombre, pueden pedir su registro. Si hay suficientes solicitudes, en orden por el ticket suministrado, se elige a quien tenga derecho sobre el nombre y se le asigna. En caso contrario, el nombre puede pasar al espacio disponible de nombres o a una lista de nombres a ser ofrecidos en un próximo período de liberación [42]. Los pedidos de registro de nombres, pueden tener su estado en pending- Create, lo cual significa que el registro del nombre está latente, en espera de procedimientos fuera de línea, ya sea por parte del registrante, el registrador (o cliente patrocinador) o el registro. Se diferencian tres tipos diferentes de esperas: Documentation Pending. Dependiendo de la categoría del Nombre de Dominio, puede ser necesario que el registrante tenga que presentar algún documento para probar que puede utilizar dicho nombre. En este caso, se asocia un doc pending y la lista de los documentos correspondientes. DNS Pending. Todo dominio debe tener un conjunto de servidores de nombre que respondan de manera autoritativa. Si dichos servidores no pueden responder por el dominio, se asocia este pendiente hasta que el problema se resuelva. Release Proccess Pending. Este tipo de pendiente, indica el final y el resultado del proceso de liberación. Un punto a destacar, es el algoritmo de equivalencia, el cual es muy sencillo. Primero, se define que los caracteres acentuados son equivalentes a su versión sin acentuar, y que la ce con cedilla (c es equivalente a ç y C a Ç),87 CAPÍTULO 5. EXTENSIONES A EPP 80 y luego, se define que dos nombres de dominio son equivalentes, si de la aplicación del algoritmo sobre éstos se obtiene el mismo resultado. Desafortunadamente, la documentación consultada, no define ninguna política sobre nombres equivalentes. En un área relacionada, el registro.br ofrece la posibilidad de nombres IDN, para lo cual define una tabla de caracteres válidos [43] Extensiones para brindar un período de gracia Durante 2002, la ICANN, desarrolló una propuesta para dotar a los nombres de dominio DNS, de un período de gracia, durante el cual las acciones tomadas sobre dicho nombre en un contexto de registro central compartido, tal como el que busca ser EPP, pudieran ser revertidas o revocadas. En particular, se desarrolló el denominado Redemption Grace Period (RGP, Período de Gracia para Redención), que permite revisar el borrado de nombres del registro central, antes de que estos sean eliminados definitivamente del repositorio [44]. En la figura 5.3, puede verse un diagrama de estados, donde se muestra el ciclo de un nombre al cual se le aplica un comando de borrado, y el proceso seguido durante el RGP. Al principio del proceso, un dominio está en el estado ok de EPP, o cualquier otro que permita el procesamiento de un comando delete de EPP. El RGP comienza una vez que se recibe dicho comando. Si se desea restaurar el dominio, se debe enviar una orden restore utilizando una versión extendida del comando update. Cuando se procesa exitosamente dicho pedido, el registry espera que el registrar envíe un reporte de restauración. Si el reporte es satisfactorio, el dominio pasa nuevamente al estado inicial. Si no se recibe el reporte, se vuelve a esperar un restore. Cuando pasa un determinado tiempo sin recibir el restore, el dominio pasa a esperar su eliminación, la cual es realizada una vez que se termina el período durante el cual el dominio puede permanecer en estado pendingdelete. Finalizado el borrado, el dominio queda disponible para ser registrado nuevamente. Como se menciona en el párrafo anterior, existe una extensión a EPP a través del comando update, pero ésta no es la única. Otras extensiones destinadas a dar soporte a este requerimiento, son el agregado de un estado de RGP al objeto dominio, y la correspondiente extensión para revisar el estado RGP de un dominio, así como la modificación del comando update para soportar, además de las solicitudes de restauración, los correspondientes reportes.88 CAPÍTULO 5. EXTENSIONES A EPP 81 Figura 5.3: Diagrama de estados del RGP89 CAPÍTULO 5. EXTENSIONES A EPP 82 Además del RGP, existen otros tipos de períodos de gracia: Add Grace Period. Es un período que ocurre luego del registro inicial, durante el cual, si el dominio es borrado por el registrar, el registry otorga un crédito al registrar por el costo del registro. Auto-renew Grace Period. Es similar al anterior, ya que el registry otorga un crédito al registrar si el dominio es borrado durante este período. Este período ocurre luego de que el dominio termina su período de validez y es renovado automáticamente por el registry, y el crédito es por el costo de la renovación. Renew Grace Period. Es idéntico al anterior, pero comienza cuando el dominio es renovado explícitamente por el registrar. Existen algunas controversias respecto a la utilización de Períodos de Gracia. Por ejemplo, el AGP, ha sido utilizado por cybersquatters 3 para determinar cuáles son los dominios más rentables. Éstos, registran los nombres, y durante el AGP, aplican técnicas para determinar si el dominio es rentable. Si no lo fuera, el dominio es borrado, y el squatter recobra el dinero invertido en el registro [45] Resumen del capítulo Existen diversas extensiones que diferentes interesados han realizado al EPP estándar para adaptarlo a sus necesidades. El gtld.coop, destinado a cooperativas, incorpora un proceso de validación para determinar si determinada persona u organización puede registrar dominios en esta zona. El registry recurre a los Validation Partner, quienes ayudan a confirmar la elegibilidad del contacto como registrant de.coop, y los sponsors, que son otras cooperativas, u organizaciones de cooperativas, que pueden proporcionar información sobre el mismo. La incorporación del proceso, se realiza agregando la información al objeto contacto, y extendiendo los comandos de manera acorde. Los Nombres de Dominio Internacionalizados, son nombres de dominio que contienen caracteres fuera del repertorio ASCII, por ejemplo, pingüinos.org.uy. El DNS es capaz de manejar estos nombres si son almacenados 3 El domain tasting es la práctica destinada a obtener provecho económico, registrando nombres de dominio que tienen alta probabilidad de ser registrados por otras organizaciones, y es realizada por los cybersquatters. El cybersquatter, registra el nombre, para luego vendérselo al interesado por un costo mayor al usual.90 CAPÍTULO 5. EXTENSIONES A EPP 83 en formato punycode, definido por los estándares Stringprep y Nameprep. Como este código sólo contiene caracteres ASCII, es posible proveer nombres de este tipo sin modificar EPP, siempre y cuando los registrars los registren en el formato correcto. Puede ser útil modificar los comandos de consulta y de creación para tomar en cuenta los nombres internacionalizados, y modificar el objeto dominio para que éste indique el idioma utilizado, y extender los comandos de consulta y transformación para que puedan manejar este dato. La incorporación de DNSSEC implica que el registry deba proveer el registro DS asociado a un dominio. Para esto, es necesario agregar un atributo al objeto dominio y extender los comandos de transformación (para manejar la asociación) y los de consulta (para mostrarla). En el cctld de Polonia, es posible reservar nombres y manifestar interés en nombres registrados para cuando éstos queden disponibles. Con la extensión book al comando create de dominios es posible realizar la reserva, y mediante el agregado del objeto future es posible manifestar la intención de adquirir un nombre. Finalmente, el agregado del comando report, permite que los registrars obtengan listados de los objetos que tienen registrados. Dentro del registro brasileño, se destacan la introducción de un ticket asociado al registro de un nombre, y la diferenciación del estado pendingcreate en un dominio. El ticket permite garantizar el principio FCFS y conocer el estado de la solicitud de registro. Mediante la diferenciación de pendientes, es posible determinar el motivo por el cual está retrasada una acción. Por último, está definido un algoritmo de similaridad entre nombres IDN y nombres ASCII, con el cual es posible determinar si son equivalentes. Los Períodos de Gracia definidos por la ICANN, buscan habilitar un período durante el cual es posible revertir una acción luego de realizada. El más importante es el Redemption Grace Period, que permite deshacer el borrado de un nombre. Esto se logra modificando el comportamiento del comando delete y modificando el objeto dominio para indicar el estado del mismo. Existen otros cuyo uso es controversial. En particular, el Add Grace Period (que ocurre luego de la creación de un dominio) permite ataques de Domain Tasting.91 Capítulo 6 Software de Repositorio para Registro de Nombres de Dominio 8492 CAPÍTULO 6. SOFTWARE DE REPOSITORIO Introducción En este capítulo se analizan diversos software que implementan protocolos registry-registrar, poniendo especial énfasis en OpenReg, que es el utilizado por SeCIU. También, se hace un análisis de librerías que permiten a los desarrolladores, producir aplicaciones que se conecten a servidores EPP para enviar comandos, y se analizan algunas herramientas existentes que hacen esta tarea. Las soluciones analizadas, fueron evaluadas, en primera instancia, por el protocolo que implementaran, y en segunda instancia por el sistema de licenciamiento ofrecido. Con este criterio se relegaron opciones que no implementaran EPP, o que no existieran versiones libres de las mismas OpenReg OpenReg 1, es el sistema EPP utilizado por SeCIU como repositorio de objetos. Además de Uruguay, es utilizado también por el cctld Venezuela. Fue desarrollado por ISC 2, y originalmente estaba pensado para gestionar la zona org. Se encuentra desactualizado, ya que su última versión data del año Soporta las RFC 3730 a 3734 ([46], [47], [48], [49], [50], y [7]), que definen el protocolo EPP y sus mapeos a nombres de dominio, contactos y hosts, así como el transporte subyacente al protocolo y las guías para extenderlo, cuya última versión se especifica en la RFC 5730 [1]. Ofrece una interfaz EPP y un servicio de WHOIS. Está desarrollado en Perl y utiliza PostgreSQL como motor de base de datos. En la figura 6.1 puede verse los componentes de la aplicación. Éstos son: EPP Front-end. Implementa el protocolo EPP. Este demonio es el encargado de recibir los pedidos de los diferentes registrars y devolver sus respectivas respuestas. Decodifica los XML de los pedidos EPP y envía las acciones al demonio xaction a través del canal MsgBus. El demonio xaction valida el pedido según el registrar que lo envía, y realiza las operaciones necesarias en la base de datos, para luego enviar la respuesta al EPP Front-end a través, nuevamente, del canal MsgBus. Protocolo MsgBus. Este protocolo es implementado por el demonio msgq y proporciona un canal de comunicación entre procesos que pueden 1 https://www.isc.org/software/openreg/ 2 https://www.isc.org93 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 86 Figura 6.1: Módulos OpenReg94 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 87 estar corriendo en una o más máquinas. Ofrece un servicio mediante el cual los procesos se pueden registrar para recibir información en varios canales. Cuando el demonio recibe un mensaje, lo coloca en el canal adecuado y lo reciben todos los procesos suscritos a éste. Actualmente, el transporte de mensajes, se realiza sobre TCP. Demonio WHOIS. Este componente se encarga de realizar las consultas de base de datos necesarias para satisfacer los pedidos de información del servicio de WHOIS, cuya definición se encuentra en la RFC 3912 [51]. El demonio soporta búsquedas para dominios, contactos y, hosts individuales, y, adicionalmente a estas consultas básicas, ofrece un comando para reportar la información completa de un dominio dado. Demonio xaction. El demonio xaction realiza operaciones de bases de datos en nombre del EPP Front-end. Esto incluye el alta, baja y modificación de dominios, contactos y servidores de nombres. La comunicación entre el front-end y el demonio xaction se realiza mediante el intercambio de estructuras de datos a través de un canal en el MsgBus. Antes de intentar cualquier operación en la base de datos, el demonio chequea la validez de los datos recibidos para asegurarse que toda la información necesaria fue proporcionada. También chequea los permisos del registrar que pidió la operación, para asegurarse que dicha operación le es permitida. Base de Datos SRS. La base de datos SRS es una base de datos relacional, implementada en PostgreSQL, que contiene toda la información sobre los dominios, contactos y servidores de nombres, así como de las relaciones entre éstos, para un registro de dominios (registry) dado. Esta base, es tanto consultada como modificada por el demonio xaction según sea solicitado, y es tratada como una fuente de datos de sólo-lectura por el demonio WHOIS, y por los diversos generadores de reportes incluidos, incluyendo al script de generación de archivos de zona, quien se encarga de procesar los datos de la base para generar la información de la zona y publicarla en el servicio de DNS. Además de estos componentes, existen otros que se encargan del registro de información en diversos puntos de la aplicación, y otros más que realizan reportes basados tanto en la base SRS, como en los diversos logs del sistema. Por ejemplo, los generadores de reportes srs, son una colección de scripts que consultan la base SRS, y elaboran diversas estadísticas sobre el registro, presentándolas en reportes fácilmente entendibles. Lamentablemente, varios de estos componentes no están implementados.95 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 88 OpenReg tiene varias limitaciones importantes en su implementación. Las principales son: Operaciones modo "pendiente" No hay soporte para aquellas operaciones que necesiten completarse de manera diferida. Comandos no implementados Los comandos poll y transfer no están implementados. Manejo incompleto de los objetos AuthInfo No se corrobora que sean válidos al realizar cambios sobre objetos Soporte incompleto para estados No se realizan los controles necesarios para los cambios de estados de los objetos, ni se manejan adecuadamente los conflictos. Portabilidad Su implementación tiene problemas con la manera en que las versiones actuales de Perl manejan las cadenas UTF-8, por lo que no funciona con las versiones más nuevas de Perl, desde la 5.10 en adelante. Esto hace que su uso sea problemático en versiones actuales de GNU/Linux CoCCA CoCCA 3, es un sistema EPP completo que tiene funcionalidades de registry y de registrar. Para cumplir estas funciones cuenta con interfaces web de gestión, además de la interfaz EPP. Está desarrollado en Java, utilizando el servidor de aplicaciones RESIN, y el motor de base de datos PostgreSQL, e implementa la versión estándar de EPP. Posee un diseño escalable que separa el servidor EPP de la aplicación de gestión web en dos aplicaciones independientes. Es posible, incluso, ejecutar varias instancias del servidor EPP para repartir la carga. Respecto a su performance, ha sido utilizado exitosamente en registries con 1.25 millones de dominios. En la Figura 6.2 se muestra un ejemplo de como podría ser desplegado en un entorno de alta disponibilidad. La administración se realiza vía web, y los registrars pueden utilizar las interfaces EPP y web. Soporta IDN y ENUM, y tiene características de seguridad avanzadas. Por ejemplo, realiza control de Domain Tasting. Posee 396 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 89 Figura 6.2: Ejemplo de entorno CoCCA97 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 90 funcionalidades de valor agregado para el registry, como facturación automática en PDF, WHOIS personalizable, renovaciones automáticas de dominios, transferencias de dominios, restricciones configurables de nombres (tanto palabras ofensivas como nombres genéricos) y de políticas del registry. Algunos de los países que utilizan este Software son Afganistán (.af ), Christmas Island (.cx), Dominica (.dm), etc. Figura 6.3: Módulos CoCCA En la Figura 6.3 pueden observarse los componentes principales de este sistema, y como interactúan con los diferentes tipos de usuarios (administradores, registrars y usuarios). Los dos componentes a más importantes son la Aplicación de Gestión Web, que utiliza el servidor de aplicaciones RESIN, y el servidor EPP, que es una aplicación independiente basada en QuickServer 4. Debido a la doble funcionalidad de este software, para el registry y para los registrars, a nivel de datos se mantienen bases de datos independientes. Internamente utiliza una tercera base de datos para la generación de las zonas a publicar. En cuanto a su distribución, hasta la versión 2.29 se encuentra disponible en SourceForge bajo licencia GNU (con fecha 18/11/2008) siendo esa la versión analizada en esta sección. Existen versiones más nuevas, en particular la última en producción (a la fecha) es la 2.52 del 6/11/2009, pero no son libres, estando disponible sólo para los miembros de la organización. Sin 4 librería para Java para el desarrollo de servidores TCP98 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 91 embargo, existe una nota en el sitio oficial diciendo que están dispuestos a enviar la última versión a los cctld que lo soliciten sin costo alguno. CoCCA ofrece, además, el servicio de soporte, instalación y migración de datos por dólares neozelandeses anuales (aproximadamente 7100 dólares americanos al momento de realizado este relevamiento) FRED FRED 5 es desarrollado por el NIC de República Checa, y cuenta con un servidor EPP, un cliente EPP y una aplicación de administración web. Es un proyecto activo, ya que la última versión disponible es de enero Tiene una licencia GPLv2 y se basa en componentes libres o de código abierto, como Apache, PostgreSQL, Python, omniorb, etc. Está en producción en los registros de República Checa y Angola, y se está probando en los de Tanzania, Costa Rica, Ruanda y Senegal. Ofrece funcionalidades avanzadas como facturación (con interfaz bancaria), envío de a partir de plantillas, verificaciones técnicas de los nameservers, soporte IPv6, IDN, DNSSEC y ENUM, historia completa de cambios con posibilidad de rollback, período de gracia, etc. Brinda una interfaz de administración web y otra de consultas a WHOIS. Además tiene una interfaz EPP (sobre SSL) para registrars, para la cual se proporcionan dos clientes: uno para consola y otro gráfico (recientemente añadido). Estas tres interfaces de frontend, corren bajo Apache, y para la comunicación con el backend (llamado Registro Central) utilizan omni- ORB/ORBit. Este último componente, acepta las peticiones de las operaciones relativas a los dominios, los contactos u otros objetos en el registro, envía las consultas a la base de datos y devuelve los resultados a través de la interfaz correspondiente. Realiza además las tareas de mantenimiento regular, como la verificación de los registros (vencimiento del dominio, control técnico de los datos de dominio, etc) e invocación de las acciones pertinentes, basándose en los resultados de estos controles (información sobre los contactos del dominio, borrado de dominios de una zona, etc.). El registro central también, periódicamente, genera los correspondientes archivos para las zonas administradas. Estos componentes pueden verse en la figura 6.4. El modelo EPP no es el estándar. Los contactos tienen algunas modificaciones menores y la manera en que se manejan los hosts es diferente: se crea una nueva entidad, el NSSet, que agrupa hosts. De esta manera se agrega un nivel más de indirección, ya que, mientras en EPP estándar un dominio tiene 599 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 92 Figura 6.4: Módulos FRED100 CAPÍTULO 6. SOFTWARE DE REPOSITORIO 93 asociado hosts, en FRED un dominio tiene asociado un NSSet que agrupa hosts. Los contactos técnicos ya no se asocian al dominio directamente, sino que se asocian al NSSet. Esta extensión es realizada para simplificar la manera en que se modelan los dominios que comparten los mismos hosts, ya que, de este modo, estos dominios comparten el mismo handle de NSSet. Figura 6.5: EPP utilizado por FRED 6.5. Otros sistemas Durante el relevamiento realizado, se relevaron otros sistemas de registro centralizado que no poseen una interfaz EPP. Debido a esta carencia, y que el foco de este trabajo se encuentra en EPP, no se realizó un análisis profundo de los mismos. Dichos sistemas son: Codev-NIC. Es un proyecto desarrollado en conjunto por los NIC de Francia, Madagascar y Costa de Marfil 6. Está orientado a registries pequeños, y una de sus principales virtudes es la posibilidad de configurarlo según las políticas de cada registry. Su desarrollo está basado fuertemente en plantillas. Por ejemplo, se utilizan plantillas para que las políticas configuradas generen las tablas correspondientes en la base de datos. Para el acceso de los registrars cuenta con una interfaz XML-RPC, además de acceso directo a la base de datos. Esta interfaz XML-RPC no cumple con el estándar EPP. DNRS. Está desarrollado en Nueva Zelanda 7, y brinda un software cliente, que es utilizado por los registrars, y otro que actúa como servidor, y es 6 7 Mostrar más
DNS en W2000-Server ÍNDICE Definición de DNS 1 Nombres de dominio DNS 2 Descripción del espacio de nombres de dominio DNS Cómo se organiza el espacio de nombres de dominio DNS Interpretar un nombre de Más detalles T E S I S UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO PARA OBTENER EL TÍTULO DE: INGENIERO EN COMPUTACIÓN
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA T E S I S I M P L E M E N T A C I Ó N D E U N S I S T E M A S E R V I C E D E S K B A S A D O E N I T I L. PARA OBTENER EL TÍTULO DE: INGENIERO Más detalles Andrés Vignaga, Daniel Perovich. Universidad de la República, Facultad de Ingeniería, Instituto de Computación Montevideo, Uruguay
ARQUITECTURAS Y TECNOLOGÍAS PARA EL DESARROLLO DE APLICACIONES WEB Andrés Vignaga, Daniel Perovich Universidad de la República, Facultad de Ingeniería, Instituto de Computación Montevideo, Uruguay {avignaga,perovich}@fing.edu.uy Más detalles Resolución de nombres de host mediante el Sistema de nombres de dominio (DNS)
Resolución de nombres de host mediante el Sistema de nombres de dominio (DNS) Contenido Introducción 2 Presentación multimedia: Función de DNS en las infraestructuras de redes 3 Lección: Instalar el servicio Más detalles Copyright International Business Machines Corporation 2001. Reservados todos los derechos.
iseries DNS iseries DNS Copyright International Business Machines Corporation 2001. Reservados todos los derechos. Contenido DNS...................................... 1 Cuáles son las novedades en V5R1?......................... Más detalles SOFTWARE APLICADO A REDES (R02) Ing. César Mauricio Carrasco García
Página 1 de SOFTWARE APLICADO A REDES (R02) Ing. César Mauricio Carrasco García I. OBJETIVOS 1. Conocer los conceptos de redes necesarios para hacer instalaciones de los principales servicios de los servidores. Más detalles DATA WAREHOUSE PARA LA GESTIÓN DE LISTA DE ESPERA SANITARIA
DATA WAREHOUSE PARA LA GESTIÓN DE LISTA DE ESPERA SANITARIA AUTORA: TUTORA: ITZIAR ANGOITIA ESPINOSA ERNESTINA MENASALVAS RUÍZ A mis padres y hermano que se empeñaron en hacerme estudiar. Y a Rafa que Más detalles SISTEMA AUTOMATIZADO DE SOPORTE Y ATENCIÓN AL USUARIO PARA SUPERMETANOL Y SUPER OCTANOS
DESARROLLO DE UN APLICATIVO PARA MONITOREO DE RED JOHN ENRIQUE GUAYAZÁN ORTÍZ HENRY ALBERTO MACHADO SÁNCHEZ UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA BOGOTÁ Más detalles UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación SISTEMA EMAIL INBOX. Por CALIMÁN PÉREZ, ROSALBY DANIELA
UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación SISTEMA EMAIL INBOX Por CALIMÁN PÉREZ, ROSALBY DANIELA Proyecto de Grado Presentado ante la Ilustre Universidad Simón Bolívar Como Requisito Parcial Más detalles Data warehouse de soporte a datos de GSA
Data warehouse de soporte a datos de GSA Iván Arribas López 21/07/2008 Agradecimientos En primer lugar, quiero dar las gracias a mi tutora, Ernestina, por darme todo su apoyo, tiempo y paciencia. Por su Más detalles UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACION
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACION SISTEMA AUTOMATIZADO PARA LA GESTION DE SOLICITUDES EN TECNOLOGIAS DE INFORMACION TRABAJO ESPECIAL DE GRADO presentado ante Más detalles RIESGOS Y AMENAZAS EN CLOUD COMPUTING INTECO-CERT
RIESGOS Y AMENAZAS EN CLOUD COMPUTING INTECO-CERT Marzo 2011 La presente publicación pertenece al Instituto Nacional de Tecnología de la Comunicación (INTECO) y esta bajo licencia Reconocimiento-No comercial Más detalles Instituto de Ciencias Básicas e Ingeniería. Sistema de Administración de Red (S.A.R.) Versión 1.0 T E S I S
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Ingeniería en Electrónica y Telecomunicaciones Sistema de Administración de Red (S.A.R.) Versión 1.0 T E S I S Que Más detalles CAPÍTULO 1: PLANTEAMIENTO DEL PROBLEMA
CAPÍTULO 1: PLANTEAMIENTO DEL PROBLEMA 1.1 Definición del problema. 1.1.1 Síntesis. El propósito fundamental de esta tesis es presentar una solución a organizaciones que posean sistemas híbridos dentro Más detalles UNIVERSIDAD CATOLICA ANDRES BELLO DIRECCIÓN DE POSTGRADO GERENCIA DE SISTEMAS DE INFORMACIÓN
UNIVERSIDAD CATOLICA ANDRES BELLO DIRECCIÓN DE POSTGRADO GERENCIA DE SISTEMAS DE INFORMACIÓN DISEÑO Y CONSTRUCION DE UNA BASE DE DATOS DE RELACIONES ENTRE COMPONENTES DE SOFTWARE Y APLICATIVOS DESARROLLADOS Más detalles INSTITUTO TECNOLOGICO SUPERIOR DE ZONGOLICA BASES DE DATOS DISTRIBUIDAS LSC. RAFAEL JUAN CORDOBA DE LA LLAVE
INSTITUTO TECNOLOGICO SUPERIOR DE ZONGOLICA BASES DE DATOS DISTRIBUIDAS LSC. RAFAEL JUAN CORDOBA DE LA LLAVE MAYO 2014 I N T R O D U C C I O N El mundo moderno se caracteriza por exceso de tecnología. Más detalles INTRODUCCIÓN MARCO PROBLÉMICO JUSTIFICACIÓN 2. OBJETIVOS 2.1 OBJETIVO GENERAL 2.2 OBJETIVOS ESPECÍFICOS 3. MARCO REFERENCIAL 3.
INTRODUCCIÓN MARCO PROBLÉMICO JUSTIFICACIÓN 2. OBJETIVOS 2.1 OBJETIVO GENERAL 2.2 OBJETIVOS ESPECÍFICOS 3. MARCO REFERENCIAL 3.1 TÉCNICAS DE ALMACENAMIENTO DE DATOS 3.1.1 BASES DE DATOS 3.1.1.1 CARACTERÍSTICAS Más detalles Proyecto MONTE. Mpls ONline Traffic Engineering. Documentación de Proyecto de Grado
Proyecto MONTE Mpls ONline Traffic Engineering Documentación de Proyecto de Grado Ingeniería Eléctrica Isabel Amigo Fernández Bernardo Cabrera Maisonnave Juan Schandy Wood Tutores: Pablo Belzarena, Gabriel Más detalles Cloud Computing: fundamentos, diseño y arquitectura aplicados a un caso de estudio
Cloud Computing: Fundamentos, diseño y arquitectura aplicados a un caso de estudio 1 Máster Oficial en Tecnologías de la Información y Sistemas Informáticos Curso Académico 2010/2011 TESIS FIN DE MASTER Más detalles TESIS DE MAGISTER EN INGENIERÍA DEL SOFTWARE
TESIS DE MAGISTER EN INGENIERÍA DEL SOFTWARE Sistema Experto Asistente de Requeriemientos Autor: Ing. Francisco Marcelo Rizzi Directores DR. Mariano Fernández López DR. Ramón García Martínez Buenos Aires, Más detalles Arquitectura para un Sistema de Ficheros Distribuido Orientado al Ámbito de las Aplicaciones Grid y Cloud.
Arquitectura para un Sistema de Ficheros Distribuido Orientado al Ámbito de las Aplicaciones Grid y Cloud. Tesis de Máster (20 créditos). Máster Oficial: Computación Paralela y Distribuida. Autor: José Más detalles Apuntes del Curso de: Sistemas Operativos de Red (SOR) Mtro. Manuel Suárez Gutiérrez
Apuntes del Curso de: Sistemas Operativos de Red (SOR) Mtro. Manuel Suárez Gutiérrez Agosto - 2012 Temario: Introducción a la asignatura. Tema 1: Introducción a los Sistemas Operativos de Red. 1.1 Qué Más detalles UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INFORMÁTICA
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INFORMÁTICA Sistema para la Gestión de Configuraciones y Cambios (ITIL v3) para el Departamento de Administración Más detalles Integración de la Gestión de Clientes en la Plataforma de Negocio de OdPe
Universidad Politécnica de Valencia Escuela Técnica Superior de Ingeniería Informática Integración de la Gestión de Clientes en la Plataforma de Negocio de OdPe Proyecto Final de Carrera Ingeniería Técnica Más detalles INSTITUTO POLITÉCNICO NACIONAL TESIS
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD PROFESIONAL ZACATENCO REINGENIERÍA DE LA INTRANET PARA LA COMUNICACIÓN INTERNA Y EXTERNA DE LOS EMPLEADOS DE UNA Más detalles UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS ANÁLISIS DE LA REPLICACIÓN DE BASES DE DATOS RELACIONALES CASO PRACTICO AUTOR: JORGE EDUARDO CHICAIZA RUGEL TUTOR: ING. EDISON ALVAREZ M. Más detalles SISTEMA DE INFORMACIÓN DEL POSGRADO DE LA UNAM, MÓDULO DE INFRAESTRUCTURA T E S I N A UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA SISTEMA DE INFORMACIÓN DEL POSGRADO DE LA UNAM, MÓDULO DE INFRAESTRUCTURA T E S I N A QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMPUTACIÓN Más detalles LIBRO DE LA PLATAFORMA XONE
LIBRO DE LA PLATAFORMA XONE Edición: 1 Fecha: 28/10/2014 INFORMACIÓN PROPIEDAD DE COMPUTER GLOBAL SOFTWARE, S.L. Todos los derechos reservados Computer Global Software S.L. ÍNDICE 1 INTRODUCCIÓN... 5 1.1 Más detalles POLÍTICAS GENERALES* DE NOMBRES DE DOMINIO AKKY. Políticas en vigor a partir del 05 de mayo del 2012.
POLÍTICAS GENERALES* DE NOMBRES DE DOMINIO AKKY Políticas en vigor a partir del 05 de mayo del 2012. 1. DEFINICIONES. 2. DISPOSICIONES GENERALES. 3. DE LOS NOMBRES DE DOMINIO. 4. FACULTADES Y OBLIGACIONES Más detalles 2016 © DocPlayer.es Política de privacidad | Condiciones del servicio | Feedback

References: resolución 
 resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
in fine
 resolución 
 Resolución 

Resolución