ESNI Indicação de nome de servidor criptografado

Versão criptografada do protocolo SNI. O SNI é usado para gerenciar múltiplos certificados TLS de sites em um único servidor.

Categoria de Tecnologia

Postado em 11 outubro 2023

Atualizado em 11 outubro 2023

Palavras-chave: sni,esni,indicacao,nome,servidor,criptografia,seguranca,TLS,protocolo,certificado,ssl

Visualizações: 549



No princípio, a rede mundial de computadores (internet) não foi projetada para ser segura. Na verdade, ela foi projetada para ser apenas eficiente. De certo modo, a internet já se tornou o meio mais eficiente de comunicação. Porém, possui os seus desafios em relação a segurança e privacidade.

Posteriormente, protocolos como HTTPS foram criados para aumentar a privacidade e segurança da comunicação entre computadores. Ele é responsável por criptografar os dados até eles chegarem ao seu destino, onde são descriptografados e visualizados. O protocolo HTTPS é a mistura dos protocolos HTTP e TLS. O TLS realiza a criptografia da informação que esta sendo trocada entre os computadores, como nome de usuário e senha. Porém, essa criptografia só acontece após a conexão entre dois computadores ser estabelecida. Isso quer dizer que antes da conexão, algumas informações permanecem em texto puro. A indicação de nome do servidor criptografada (ESNI) é um recurso extra para tornar o protocolo TLS ainda mais seguro, criptografando informações que antes não eram encriptadas.

O que é a indicação de nome do servidor criptografada (ESNI)?

A indicação de nome do servidor criptografada (ESNI) se refere a criptografia do endereço de acesso (URL) na comunicação entre dois computadores conectados com a internet. A criptografia do SNI é realizada logo após a etapa de handshake do protocolo TCP (aperto de mão), ou seja, antes dos dois computadores começarem a trocar informações úteis (payload).

esni handshake aperto de maos tcp tls como

O cliente já envia uma solicitação com o URL especificado e criptografado na etapa “Cliente Hello”. O cliente já deve ter a chave antes mesmo de solicitar o URL ao servidor. A chave de criptografia de SNI é obtida no servidor DNS. A criptografia é feita com uma chave pública obtida no servidor DNS. Ao chegar no servidor de destino, onde a chave privada se encontra, o ESNI é descriptografado e as informações de SNI podem ser visualizadas.

esni chave simétrica privada pública

O ESNI é uma extensão do protocolo TLS. Por essa razão, o ESNI é processado com os protocolos vinculados ao TLS. O TLS é responsável por criptografar os dados usando chaves de criptografia, fazendo com que apenas os dois pontos (nodes) tenham acesso ao conteúdo compartilhado.

As informações criptografadas serão o DNS e o endereço IP vinculados ao endereço solicitado que será retornado para o usuário que iniciou a conexão. Com isso, caso haja algum usuário malicioso monitorando a conexão, ele não irá saber qual site está sendo acessado.

O que é a indicação de nome do servidor (SNI)?

Hoje é comum múltiplos sites vinculados em um mesmo endereço IP. Assim, o cliente pode especificar qual site (URL) ele quer acessar dentro do servidor. O protocolo TLS, cujo protocolo é responsável pelo ESNI, é usado em solicitações de HTTPS. Isso quer dizer que cada site dentro do servidor precisa ter seu próprio certificado TLS. Originalmente, o objetivo do SNI é gerenciar o certificado de cada site, permitindo a hospedagem virtual segura de múltiplos sites em um único servidor com um único endereço IP, consequentemente economizando os endereços IPs que já são escassos.

Entretanto, mesmo usando protocolos criptografados como o HTTPS, o SNI permanece legível pelo fato de que ele é enviado antes do protocolo TLS ser efetuado. Isso pode trazer algumas vulnerabilidades como man-in-the-middle e envenenamento DNS. Por isso, é recomendávelo uso do ESNI para aumentar a segurança no tráfego dos dados.

A criptografia do SNI é configurável na maioria dos servidores e suportado por vários navegadores. Ao criptografar o SNI, ele passa a ser chamado de ESNI.

O ESNI é o suficiente para a segurança?

O ESNI criptografa as informações de URL apenas após a solicitação do cliente obter a chave pública no servidor DNS. Até a solicitação chegar ao servidor DNS, as informações de SNI continuam em texto legível. Por isso, o ESNI não é o suficiente para a segurança e privacidade dos dados.

Felizmente, essa vulnerabilidade do ESNI pode ser coberta com protocolos adicionais, como DNS sobre TLS (DoT) e DNS sobre HTTPS (DoH). Serviços de servidores DNS também oferecem mais recursos para aumentar a segurança e privacidade dos dados.

Conclusão

O ESNI é a versão criptografada do protocolo SNI. O SNI gerencia múltiplos certificados TLS de sites que compartilham um mesmo servidor e endereço IP. O ESNI usa a chave pública do DNS para criptografar informações como URL solicitado pelo cliente. Quando a solicitação de acesso chega ao servidor destino, a chave privada é obtida e o URL solicitado pode ser visualizado.

Apenas o ESNI não oferece segurança suficiente. Por isso, protocolos adicionais de segurança como DoT e DoH são recomendáveis.

Projetos práticos

Integrando Laravel com o protocolo MQTT para comunicação entre dispositivos

Projeto de comunicação entre dois dispositivos ESP8266 e Raspberrypi4. Laravel irá funcionar como servidor e receptor de dados de temperatura e umidade coletados com o DHT11.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Implementando um algoritmo de pathfinding

Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).

Usando dados fornecidos pelo TSE para simular o gráfico das eleições presidenciais de 2022

Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.

Veja também

Afinal, para que servem os cookies que sempre são solicitados quando entramos em uma página?

A política de privacidade é obrigatória para qualquer site que utiliza dados pessoais do usuário. Porém, quais dados são esses especificamente?

O DNS torna a interface do navegador mais amigável aos usuários

Antes de podermos visualizar o site, o endereço que digitamos na barra de endereço do nosso navegador passa por várias etapas, para só então podermos visualizar o site pela primeira vez...

Protocolos de e-mail

Ao todo, temos três protocolos que usados para o envio e o recebimento de e-mails. Esses protocolos são SMTP, POP3 e IMAP.

Navegador

Aplicativo que adquiri e converte o conteúdo de outros servidores para a exibição de páginas na internet através de protocolos de comunicação, como o HTTP.

Portas TCP e UDP

A porta é um número de 16 bits que é adicionado no final do endereço IP, insinuando qual aplicativo está vinculado e atuando nessa porta.

IaaS (Infrastructure as a Service)

Computador virtual. Fornece infraestrutura de computação básica distribuída em vários locais, oferecendo mais flexibilidade e escalabilidade.