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: 561



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

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.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Criando um jogo de pacman usando javascript e pixi.js (parte 1)

Desenvolvimento dos conceitos mais básicos do clássico pacman, como: mapa, animação, deslocamento e detector de colisões.

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).

Criando o esqueleto de um jogo de tiro 2D visto de cima usando P5.js

Usando lógicas matemáticas como trigonometria para criar e calcular o esqueleto de um jogo de tiro 2D em javascript

Veja também

O usuário malicioso joga a isca e espera a vítima pacientemente

Phishing tem esse nome pois a vítima se torna só mais um peixe na rede. Ter conhecimento de phishing é o melhor jeito de evitar ser um desses peixes

A comunicação entre dispositivos existe graças aos protocolos

Alguns desses protocolos é o HTTP que usamos em nossos navegadores. Sem esses protocolos teríamos alguns problemas na comunicação de dispositivos através da internet.

Algoritmo de chave assimétrica

O algoritmo de chave assimétrica, ou algoritmo de chave pública, utiliza uma chave pública para encriptação e uma chave privada para a desencriptação.

Blockchain Parte1

Blockchain pode ser interpretado como uma caderneta bancária, nela é registrado o histórico de todas as transações realizadas na nossa conta bancária.

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.

Websockets

Protocolo que atua sobre o protocolo HTTP para múltiplas transferências de dados com uma única conexão com o intuito enviar e receber dados em tempo real.