Newsletter #10 - janeiro de 2024
Desde novembro, quem se quiser ligar a um sistema da rede da U.Porto pode ter a confiança criptográfica de que o nome que usou para a ligação, por exemplo sigarra.up.pt, será resolvido para o endereço IP correto, no caso 193.137.35.140. Provavelmente muitos dos leitores desta notícia estarão já a bocejar, mas se se mantiverem acordados mais um pouco, vai valer a pena para perceberem o impacto. Por isso peguem na chávena de café, refresquem a cara e vamos a isso. Aos outros que já estavam entusiasmados apenas com o título, as nossas desculpas pelo interlúdio.
Agora com o café tomado, podemos usar os termos técnicos e dizer que o DNS (Domain Name System) da U.Porto tem a possibilidade de ser seguro utilizando DNSSEC.
E isto quer dizer o quê?
O sistema de nomes, como podem ver na entrada da Wikipedia, permite resolver os nomes dos “locais” que nós humanos queremos aceder para o endereço IP que as máquinas que encaminham os nossos dados usam. Pegando no sigarra.up.pt, quando o colocamos na barra do browser, ou quando clicamos num link que tenha sigarra.up.pt, o nosso computador tem de transformar o nome para o seu endereço IP: 193.137.35.140. Uma espécie de lista telefónica, onde ao selecionar o nome do Joaquim o nosso telemóvel pede para ligar ao 999888777 (este não é o número do Joaquim, não vale a pena tentar).
OK, OK. Imaginando que ainda estou interessado, onde está o SEC do DNS e para que é preciso?
Ainda bem que pergunta! O protocolo DNS não é seguro de base. É possível, embora difícil, que um ator malicioso respondesse à pergunta sobre o sigarra.up.pt com um endereço de uma máquina que ele controla. Imagine que perguntava ao Joaquim pelo número de telemóvel do irmão. O Manel que queria fazer-se passar pelo irmão do Joaquim, respondia primeiro e indicava o seu número. Se fossemos um pouco duros de ouvido até podíamos ser enganados (por acaso o Manel e o Joaquim até têm vozes parecidas). O problema com o DNS é muito semelhante. Uma máquina maliciosa pode fazer-se passar pelo servidor de DNS que costuma responder às questões da nossa máquina, e dar uma resposta falsa. Assim, a nossa máquina podia ser direcionada para um site que apesar de dizer sigarra.up.pt estava numa máquina de um malquerente. Como se clicássemos no nome “Irmão do Joaquim” e ligássemos ao Manel, pois tínhamos guardado a resposta falsa.
Ui, mas ainda não se falou em nenhum SEC do DNS. E eu já fui buscar um chá preto.
Estamos a chegar lá, e a emoção vai continuar.
Com o DNSSEC a resposta dada pelo servidor de DNS é validada criptograficamente, com uma assinatura digital que o cliente DNS pode verificar que é a correta e não sofreu alterações. Deste modo o ator malévolo não consegue falsificar a resposta. O Joaquim assinava a sua resposta onde indicava o número do irmão e o Manel não conseguia enganar-nos… agora a metáfora já esticou demais…
Podem ver as validações no analisador DNSSEC da Verisign ou no webcheck do Centro Nacional de Cibersegurança (CNCS)S e da associação DNS.PT , que também testa outros parâmetros para além de DNSSEC.
Para os que se entusiasmaram logo na introdução podem experimentar com ferramentas na linha de comando. Note-se que o servidor a quem perguntam pela resolução tem de suportar DNSSEC, não basta o servidor da U.Porto suportar DNSSEC. Experimentem:
> delv @9.9.9.9 up.pt
Ou
> dig +dnssec +short @9.9.9.9 up.pt
Notas finais:
Os nomes usados nesta notícia são fictícios e qualquer semelhança com a realidade (dos nomes, entenda-se) é pura coincidência. Nenhum Joaquim ou Manel foram feridos para escrever esta notícia.