A sigla DNS é a sigla de Domain Name System (System of Domain Names). Esse sistema de nomenclatura hierárquica para redes, além de ser distribuído, atua como tradutor dos nomes de domínio.
Eo sistema DNS É uma das tecnologias fundamentais para o funcionamento da Internet como a conhecemos agora. Graças a este sistema, podemos acessar o endereço IP do servidor que queremos acessar através da Internet. Ele atua como se fosse uma lista telefônica ou plataforma dedicada a traduzir os nomes de um site em um IP com o qual localizar o servidor web. Isso permite que os usuários acessem de forma rápida e fácil serviços hospedados em servidores conectados à Internet. DNS também são conhecidos como servidor de nome ou servidor de nome.
Quando nos conectamos à Internet, nosso ISP (Provedor de serviços de Internet) nos atribui um direção IP. Este endereço pode ser uma série de 12 números (no caso de IPv4) ou 32 caracteres em formato hexadecimal (no caso de IPv6) Em ambos os casos, um PC pode lidar facilmente com esses formatos de endereço. Por outro lado, para uma pessoa isso não seria uma tarefa fácil.
É muito difícil memorizar, por exemplo, um endereço como 172.217.3.78, que é o endereço IPv4 do Google. Ou o endereço 91.121.161.210, que corresponde ao endereço Bit4Me Academy IPv2. As coisas ficam ainda mais complicadas quando, como usuários, acessamos vários sites e serviços. E se torna um desafio quando os endereços desses serviços são dinâmico (Eles mudam com o passar dos dias).
Diante dessa situação, a melhor maneira é ter um banco de dados de nomes de domínio ao qual se relacione com um endereço IP. Os nomes de domínio são mais fáceis de lembrar e facilitam a navegação na Internet. Por exemplo, escrever Wikipedia.com não é o mesmo que escrever 208.80.154.224.
Como funciona o DNS
A infraestrutura operacional desse tipo de servidor é dividida em uma série de camadas com funções bem definidas. Essas camadas são responsáveis por registrar, solicitar e resolver nomes de domínio.
Essas camadas de operação são as seguintes:
Camada # 1: clientes ou resolvedores
Esta é a primeira camada de operação do DNS. Este é o mais próximo dos computadores dos usuários. A principal função dos clientes DNS é realizar solicitações (consultas) para resolver domínios para servidores DNS. Em outras palavras, eles são responsáveis por solicitar as informações para que possamos navegar na Internet resolvendo os domínios.
Qualquer sistema operacional com a capacidade de se conectar à Internet, tem funções desses clientes. Isso é feito para facilitar a navegação na web. As tarefas desses clientes são:
- Questione o servidor DNS para os domínios que o usuário acessa.
- Interprete as respostas do servidor DNS sobre os domínios solicitados.
- Retorne as informações para o programa que fez a solicitação (navegadores da web, Programas P2P, entre outros).
Geralmente esses clientes aplicam certas técnicas, como cache DNS, para permitir que a navegação seja muito mais rápida. Isso graças ao fato de que as solicitações respondidas corretamente pelo servidor DNS são armazenadas localmente. Dessa forma, a resolução de nomes leva muito menos tempo do que enviar informações a um servidor remoto e esperar por uma resposta dele.
Outros recursos exibidos por esses clientes são DNS sobre TLS (DNS sobre TLS) E DNSSEC (Extensões de segurança DNS). Ambos são camadas de segurança que dependem de uma operação de duas partes (o servidor e o cliente devem oferecer suporte às opções). Isso evita que o tráfego DNS seja analisado ou corrompido por terceiros mal-intencionados. No caso de DNS-over-TLS, ele criptografa a conexão do cliente com servidores remotos. Enquanto DNSSEC, protege criptograficamente as respostas dos servidores DNS, graças a um sistema de criptografia assimétrica.
Outra função dos clientes é servir de memória cache para o DNS. Com esse recurso, os clientes procuram resolver os endereços do servidor mais rapidamente e fornecer aos usuários uma experiência de navegação mais tranquila.
Camada 2: Servidores
Servidores DNS são computadores que Eles respondem a solicitações e resolvem nomes de domínio por meio de um sistema estruturado em árvore. Esses servidores possuem um banco de dados com nomes de domínio e seus respectivos endereços IP registrados. Desta forma, sempre que um cliente DNS faz um pedido (consulta), o servidor o recebe, procura o domínio em questão na sua base de dados e envia uma resposta. Essa resposta é o endereço IP do domínio do qual o cliente solicitou informações. Graças a esta operação, podemos navegar com segurança na Internet digitando nomes simples em nossos navegadores.
Geralmente, esses servidores são conectados à Internet usando endereços IP estáticos (eles nunca mudam). Esses endereços IP são aqueles que normalmente são configurados automaticamente quando nos conectamos à Internet por meio de nosso ISP. No entanto, também podemos alterá-los para endereços de outros servidores IP de nossa preferência. Um exemplo disso são os endereços IP 8.8.8.8 e 8.8.4.4. Ambos os endereços correspondem ao DNS do serviço Google DNS. Também existe a possibilidade de utilizar os endereços 1.1.1.1 e 1.0.0.1 da DNS Cloudflare , o último com suporte para DNSSEC e DNS-over-TLS. Por outro lado, também é importante observar que existem servidores DNS públicos e privados.
Neste caso, podemos ver que as opções de segurança devem ser fornecidas no lado do servidor para tê-las. É inútil ter um cliente DNS com suporte DNSSEC, se o servidor não oferecer suporte para ele. Essa falta de recursos é apenas uma das muitas falhas do modelo cliente-servidor. Um modelo centralizado que se presta a ações como espionagem, phishing ou censura.
Os servidores DNS geralmente são construídos por um software muito simples, portanto, não têm um painel de controle gráfico. Isso para criar um software resistente, com muito pouco consumo e que suporte um grande número de requisições por segundo.
Camada # 3: Zonas de autoridade
Devido à estrutura em árvore na qual o sistema DNS foi projetado, ele pode ser subdividido. Cada uma dessas divisões é chamada de Zonas de Autoridade. Uma zona de autoridade é um banco de dados completo para uma subárvore que faz parte da árvore raiz do sistema DNS.
Cada zona está sob uma autoridade e pode delegar o gerenciamento de uma parte da árvore. A origem da árvore DNS contém a zona raiz que contém as delegações para os TLDs (domínio de nível superior). Cada TLD, por sua vez, constituiria uma zona DNS, assim como os domínios de segundo nível e assim por diante. Cada uma dessas zonas pode estar sob uma autoridade diferente. Esses servidores ou grupos deles são aqueles que, por exemplo, lidam com a resolução de nomes de subdomínios como .es ou .org. Em suma, são essas zonas que delimitam os tipos de registros e domínios de um servidor DNS.
Importância do DNS na infraestrutura da Internet
Neste ponto, podemos dizer que a utilidade e a importância do DNS são inquestionáveis. Graças à infraestrutura DNS, podemos desfrutar da Internet e de seus serviços. Facilitar o acesso do usuário às plataformas é a chave para sua superlotação e, a essa altura, o DNS cumpriu perfeitamente essa premissa. O fato de que só precisamos digitar um nome de domínio (por exemplo, bit2me.com) e chegar ao site é muito relevante. Especialmente quando a opção inicial é digitar uma sequência de números ou caracteres hexadecimais bastante crípticos.
Além disso, a abertura e distribuição do sistema permitem que a Internet cresça continuamente. Por exemplo, uma empresa pode criar um servidor DNS que pode ser usado para resolver seus recursos internos. Mas, ao mesmo tempo, é capaz de resolver (ou não) os recursos externos dessa mesma empresa (próprios ou não). Essa flexibilidade é única e é uma das razões do rápido e contínuo crescimento da rede.
No entanto, apesar de sua importância, o esquema centralizado e autorizado apresentou sérios problemas. Por exemplo, a manipulação de registros DNS é a forma mais comum de censura no mundo. Governos em todo o mundo o aplicam para evitar que certos sites ou serviços sejam acessados de um determinado território. Diante dessa situação, podemos perceber porque também é importante ter opções descentralizadas que evitem esse tipo de ação. Não só para dar liberdade, mas também para dar mais transparência e universalização do acesso.
Descentralizado ou distribuído?
Costumamos dizer que o DNS é 'centralizado'porque tem um componente cliente-servidor centralizado. Ele também tem um ponto central onde pode falhar. Essa fragilidade está localizada na gestão de sua estrutura radicular, realizada por IANA/ICANN.
Por outro lado, o DNS também é um sistema distribuído uma vez que envolve uma infinidade de computadores em todo o mundo. É por isso que, como a maioria das redes, o DNS é um sistema distribuído.
Como o blockchain pode ajudar a melhorá-los?
A tecnologia blockchain tem demonstrado grande capacidade de transformar diferentes cenários do mundo atual. E precisamente um desses cenários é a tecnologia por trás do DNS. A estrutura centralizada, baseada em autoridade e criptograficamente fraca do sistema atual se mostrou insuficiente. A facilidade de realizar ataques de negação de serviços é assustador. Mas não é a única coisa que pode ser feita. O fato, por exemplo, de que normalmente as solicitações de nossas equipes são feitas em texto simples e sem uso do criptografia, já é motivo de preocupação. Qualquer pessoa com conhecimento pode espionar o que fazemos com nossos equipamentos (computadores ou smartphones). Na verdade, eles podem redirecionar nossa navegação para sites com a capacidade de roubar nossos dados sem perceber até que seja tarde demais. Diante dessa situação, o blockchain se apresenta como uma forma de solucionar definitivamente esses problemas.
Um serviço DNS em blockchain seria criptograficamente seguro, descentralizado, não autorizado, resistente a ataques, imutável e sem censura. Isso é muito melhor do que o que temos agora com o serviço DNS atual. Um bom exemplo deste tipo de sistema pode ser visto em Namecoin, um blockchain dedicado a se tornar um sistema DNS rodando na tecnologia blockchain.
Com isso em mente, é compreensível dizer que a tecnologia blockchain pode ajudar a melhorar a tecnologia DNS. Melhorias de segurança, privacidade e não censura por grupos poderosos.
Vantagens e desvantagens
Vantagens
- O sistema é fácil de implementar e escalar. A capacidade de replicar, equilibrar as cargas da rede e ser tolerante a falhas tornou o DNS um pilar fundamental da Internet.
- Requer pouco poder de computação. Receber e responder a clientes DNS não é um trabalho caro do ponto de vista computacional. Por causa disso, os requisitos de hardware para estabelecer serviços DNS massivos são baixos.
- O impacto na navegação é mínimo. Normalmente, um serviço DNS bem configurado leva menos de 1 segundo para responder. Desta forma, o impacto no tempo para estabelecer a conexão entre o usuário e a máquina final é mínimo.
- Oferece um serviço que "estabiliza" o acesso a serviços na Internet. Muitos servidores na Internet oferecem seus serviços usando endereços IP dinâmicos. Isso significa que seus endereços IP mudam em algumas horas ou dias. No entanto, apesar disso, o serviço pode atualizar os registros de IP de um domínio. Graças a isso, o nome de domínio irá apontar para o novo IP e podemos continuar acessando usando o mesmo.
Desvantagens
- Seu esquema centralizado o torna especialmente vulnerável. Um agente malicioso, por exemplo, pode interceptar as comunicações entre o cliente e o servidor e alterá-las. Com isso consegue redirecionar o cliente (usuário) para onde ele quiser, podendo roubar dados.
- O sistema padrão envia informações em texto simples sem criptografia. Quando o DNS nasceu, a preocupação com a segurança era mínima e o uso de criptografia foi reservado. Por isso, o DNS é um protocolo que envia e recebe informações em texto simples. Qualquer pessoa pode interceptar a comunicação e saber que pedimos (como clientes) e que o servidor nos responde.
- Não é descentralizado e sua segurança criptográfica é complexa de implementar. Isso significa, por exemplo, que o sistema não é resistente a ataques de negação de serviço. Além disso, sua capacidade de proteção é complexa e isso impede que seu uso se generalize. Esta é a principal razão pela qual DNS-over-TLS e DNSSEC não são amplamente usados.