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



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 jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

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

Tutorial de programação do jogo da serpente em javascript

Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.

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.

Criando artes de texto usando imagens

Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.

Veja também

Pessoas sem um endereço não podem utilizar os correios. Dispositivos sem um endereço não podem acessar a internet.

Quando nos conectamos à internet, nós recebemos um endereço IP. O endereço IP é o nosso endereço virtual que vai servir como localização para a transferência de dados na internet

Os bancos estão sendo substituídos pelos robôs em transações online

As criptomoedas mudaram totalmente o modo das pessoas pensarem. Usar robôs para autentificar transações online, custa muito menos comparado com os bancos em relação às taxas...

MQTT Message Queue Telemetry Transport

Protocolo de transferência de mensagens projetado especialmente para a comunicação de dispositivos IoT, sendo eficiente em sistemas com recursos limitados.

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.

Tipos de serviços de servidor

Práticas como hospedagem de sites ou negócios online necessitam de servidores conectados à internet para permitir o acesso externo ao conteúdo.

Computação em nuvem

Computação em nuvem oferece serviços através da internet que possibilitam hospedagem de sites, armazenamento de arquivos, compartilhamento de dados, etc.