sexta-feira, 7 de outubro de 2011

DNSSEC - O que é e qual a sua importância

O DNSSEC é um recurso adicionado ao DNS (serviço de nomes de internet) que é o serviço que faz a tradução de um nome DNS ex. www.google.com.br para um endereço IPv4, com o intuito de aumentar a segurança dos servidores DNS da internet para minimizar dois tipos de ataque:

Envenenamento de DNS que é quando um terceiro altera o registro DNS de servidor, para que os usuários daquele serviço sejam direcionados para uma página fraudulenta (para roubo de logins e senhas, ou informações de banco)

Man in the middle: é quando um terceiro responde a uma requisição DNS enviada por um cliente antes do servidor DNS, para que aquele trafego do usuário seja desviado para outro servidor fraudulento, também com o intuito de roubar informações.

Qual a diferença entre DNS e DNSSEC?

O DNSSEC funciona sob o conceito de chaves assimétricas onde são criadas duas chaves, uma publica e  uma privada, no registro DNS do dominio serão criados quatro novos tipos de registros:

DNSKEY -  Armazena a Chave pública fornecida durante a resolução de nomes DNS

RRSIG - Assinatura de de cada registro que é enviada para cada registro DNS, ele é enviada em toda requisição DNS para validar a integridade daquela resposta.

DS - É um ponteiro para cadeia de segurança, praticamente um Hash da chave pública (DNSKEY), ele prove relação entre a implementação de DNS entre o domínio filho (qual é destinada a consulta) e seus domínios pai, por exemplo ele garante a relação de confiança entre o domínio blogspot.com.br e o domínio .com.br e assim sussetívamente, por isso o registro DS é presente sempre na zona pai de cada domínio.

NSEC - Ele permite apontar uma resposta negativa, ele identifica o próximo nome seguro a função dele é validar a existência de um domínio e apontar alternativas (no caso de existir um subdomínio) para que o cliente possa enviar uma nova solicitação e encontrar o endereço de internet desejado.

Quando solicitamos um nome DNS para um servidor raiz, .BR por exemplo antes da resposta em si é enviada a DNSKEY deste servidor assinada para validação, após esta validação o registro A ou NS (dependendo da ocasião) é enviado para o cliente para que a resolução de nome prossiga conforme necessário, esta validação ocorre a cada espaço de nome, se procurarmos por www.datamedweb.com.br o domínio .br me enviará sua DNSKEY para análise após validação me enviará o registro NS do domínio .com.br que me enviará sua DNSKEY e um registro NS para datamedweb.com.br que me enviará o endereço IP do registro www.datamedweb.com.br, caso este nome não seja encontrado o NSEC é enviado indicando uma resposta negativa a solicitação enviada.

O DNSSEC aumenta o fluxo de pacotes durante uma resolução DNS tornando a comunicação mais lenta e não resolvendo vulnerabilidades relacionadas a negação de serviço DOS, mas esta solução é a melhor em custo/benefício para validar as informações trocadas em cliente e servidores DNS da Internet.

O DNSSEC é obrigatório abaixo dos domínios b.br (bancos) e jus.br (jurídico) e opcional em diversos domínios abaixo do .br, mais informações sobre a disponibilidade deste recurso, somo implementar e etc. na página do registro.br, vide as fontes do deste post.

É isso, achei muito bacana esta implementação de DNS, e pretendo aprofundar no assunto, vou pesquisar sobre o TSIG que é um mecanismo de segurança entre os DNS's de provedores e raízes do mundo, continuarei mesclando redes e segurança, pois cada vez mais estes pontos estarão mais relacionados.

Fonte:

registro.br

Obs: Os vídeos do tutorial de DNSSEC são mto legais!

Abraços!

Plínio Devanier de Oliveira