O que é o SNI (Server Name Indication) e como ele funciona?

Atualmente, a execução de vários sites HTTPS no mesmo endereço IP é uma prática normal. Mas esse nem sempre foi o caso. Inicialmente, você precisava de um endereço IP dedicado para cada domínio que quisesse proteger. No entanto, a chegada do Server Name Indication (SNI) mudou todo o cenário do SSL.

Neste artigo, explicamos o que é a SNI, como ela funciona e por que você pode precisar dela. Para entender melhor todo o processo, precisamos voltar um pouco no tempo antes da criação do SNI.


Índice

  1. Antes do SNI: hosts baseados em nomes e sua incompatibilidade com HTTPS
  2. O que é o SNI?
  3. Por que usar o SNI?
  4. Como o SNI funciona?
  5. Quais são as vantagens do SNI?
  6. Quais são as diferenças entre SNI e SANs?
  7. Certificados curinga vs. certificados SNI
  8. Quais navegadores são compatíveis com a SNI?
  9. Há alguma desvantagem no SNI?
  10. Por que o SNI não é mais difundido?
  11. O que é SNI criptografado (ESNI)?

Antes do SNI: hosts baseados em nomes e sua incompatibilidade com HTTPS

Há mais de uma década, apenas uma pequena parte dos sites estava usando o protocolo HTTPS. HTTP ainda era o rei. Atualmente, se você quiser hospedar vários sites HTTP no mesmo endereço IP, poderá usar hosts baseados em nomes. Por exemplo, se você executar três sites HTTP no mesmo endereço IP, quando um usuário se conectar a um site específico, ele usará um cabeçalho HTTP exclusivo que contém o nome do host. Em resposta, seu servidor identifica e corresponde a esse cabeçalho e envia ao usuário o destino desejado.

Essa abordagem funciona até o momento em que o HTTPS entra na equação, mas depois não funciona mais. Como o SSL/TLS exige um handshake para estabelecer uma conexão segura entre um cliente e um servidor, o cabeçalho HTTP com o nome de host necessário não pode ser baixado antes que o handshake seja concluído. O servidor simplesmente não sabe a qual site corresponder e para qual enviar o usuário. É aqui que a SNI vem em socorro.


O que é o SNI?

A SNI é uma extensão do protocolo TLS (Transport Layer Security) que permite que vários sites compartilhem o mesmo endereço IP. Ele permite que os servidores da Web hospedem vários certificados SSL/TLS no mesmo IP, um benefício essencial para sites que usam HTTPS para criptografar sua comunicação com os usuários.

Agora, todos sabemos que o TLS é o protocolo criptográfico que protege os dados confidenciais no transporte (e, se você não souber, aqui está uma rápida visão geral técnica dos certificados SSL/TLS), mas, por si só, em determinadas situações, o TLS está longe de ser perfeito. Uma dessas situações essenciais é a execução de vários certificados SSL no mesmo endereço IP. O TLS não pode fazer isso, a menos que receba um pouco de ajuda de uma extensão

Assim como as extensões do seu navegador adicionam mais recursos e melhor funcionalidade, a SNI é uma extensão do protocolo TLS/SSL que permite aos usuários hospedar vários certificados SSL em um único endereço IP. A SNI faz isso inserindo o cabeçalho HTTP no handshake SSL/TLS.

Antes de a SNI se tornar uma extensão do TLS em 2003, cada site que você queria criptografar exigia um endereço IP exclusivo. Isso resultou em custos enormes, mas, o que é mais preocupante, no rápido consumo de endereços IPv4. Os endereços IP exclusivos não são infinitos. Por exemplo, o Protocolo de Internet versão 4 tem cerca de quatro bilhões de endereços.

Antes do surgimento do SNI, havia preocupações reais de que os endereços IPv4 se esgotariam antes da chegada do novo IPv6. A SNI conseguiu aliviar esses temores e desacelerar o esgotamento do IPv4. Em outras boas notícias, o IPv6 tem cerca de 340 undecilhões de endereços. Isso é 340 seguido de 36 zeros. Esse valor deve ser suficiente para o futuro próximo.


Por que usar o SNI?

O SNI permite que os proprietários de sites protejam as comunicações com seus usuários e clientes, facilitando o gerenciamento de certificados SSL. Sem a SNI, cada site precisaria de um endereço IP exclusivo para usar a criptografia HTTPS, o que poderia ser caro para pequenas empresas e empresas com orçamento apertado.

A SNI também facilita o gerenciamento de sites, pois os servidores da Web agora podem hospedar vários certificados SSL/TLS no mesmo endereço IP. Isso significa que os proprietários de sites podem facilmente adicionar ou remover sites de suas contas de hospedagem.


Como o SNI funciona?

Quando você visita um site por HTTPS, seu navegador da Web e o servidor do site precisam estabelecer uma conexão segura por meio do handshake SSL/TLS. Durante esse processo, o navegador da Web envia uma mensagem ao servidor que inclui o nome do host do site.

No caso do SNI, o nome do host do site é incluído na mensagem Client Hello, o que permite que o servidor selecione o certificado correto a ser usado na mensagem Server Hello. Como resultado, o servidor pode hospedar vários certificados SSL no mesmo endereço IP.

A maioria dos servidores e navegadores da Web modernos é compatível com a SNI, mas as versões mais antigas talvez não sejam. Nesses casos, o navegador da Web pode receber um certificado SSL genérico em vez do correto, o que pode causar a exibição de avisos ou erros.


Quais são as vantagens do SNI?

O SNI mudou todo o cenário de hospedagem ao instalar e gerenciar certificados SSL. Aqui estão suas principais vantagens:

  • Hospedagem de vários domínios. Com a SNI, você pode hospedar e proteger vários sites em um único servidor e endereço IP. A SNI reduz significativamente os custos de hospedagem e simplifica o gerenciamento de SSL.
  • Flexibilidade. A SNI oferece a flexibilidade de adicionar ou remover sites de um servidor sem precisar reconfigurar o servidor ou obter endereços IP adicionais.
  • Melhor utilização de recursos. A SNI permite uma melhor utilização de recursos, como endereços IP, que podem ser escassos e caros. Ao hospedar vários sites no mesmo IP, você diminui a exaustão do IPv4, o protocolo principal que nos ajuda a nos conectar à Web.

Quais são as diferenças entre SNI e SANs?

SNI e SANs são métodos de suporte a vários certificados SSL em um único servidor. No entanto, eles diferem na forma como fornecem esse suporte. A principal diferença entre a SNI e as SANs é que a SNI é uma tecnologia do lado do servidor, enquanto as SANs são um recurso de certificado.

Como você já sabe, a SNI permite que um servidor da Web hospede vários certificados em um único endereço IP. Quando um cliente se conecta ao servidor, a SNI permite que o servidor determine qual certificado usar com base no nome de domínio fornecido pelo cliente na solicitação inicial.

Os SANs, por outro lado, são um recurso dos certificados SSL que permite que um único certificado proteja vários nomes de domínio em uma única instalação. Um certificado SAN inclui uma lista de nomes de domínio adicionais (também conhecidos como Subject Alternative Names) que você pode proteger com o mesmo certificado.

Quanto à compatibilidade, a maioria dos navegadores da Web e servidores modernos é compatível com SNI e SANs. No entanto, alguns sistemas legados podem ser incompatíveis com eles.


Certificados curinga vs. certificados SNI

Um certificado Wildcard SSL protege um domínio e todos os seus subdomínios (ilimitados) em um único certificado SSL. O curinga é outro recurso dos certificados SSL, assim como os SANs. É conveniente e econômico obter uma opção Wildcard SSL se o seu site tiver vários subdomínios, como new.yourwebsite.com ou blog.yourwebsite.com.

Os certificados SNI não existem, pois o SNI não é um recurso intrínseco dos certificados SSL, mas uma extensão do TLS no lado do servidor. Se o seu servidor for compatível com a SNI, você poderá adicionar qualquer tipo de SSL em vários domínios com o mesmo endereço IP.


Quais navegadores são compatíveis com a SNI?

O SNI agora é compatível com 99% dos navegadores e com todos os principais sistemas de servidor. Chrome, Mozilla, Opera, Safari e outros navegadores menos conhecidos são compatíveis com a SNI. Você pode implementar o SNI no Apache, Nginx, Ubuntu, Debian, CentOS e em muitos outros sistemas populares. Algumas das bibliotecas que oferecem suporte à SNI são Open SSL, GnutTLS, Python, Oracle e Java. Sempre que precisar proteger vários sites em um único endereço IP, use a SNI a seu favor.

O que acontece se o navegador da Web não for compatível com a SNI?

Se um navegador da Web não for compatível com a SNI, ele não conseguirá estabelecer uma conexão segura com um servidor que usa a SNI para hospedar vários certificados SSL/TLS. Como resultado, o usuário não conseguirá acessar o site. Além disso, o usuário receberá uma mensagem de erro indicando que o site em questão não é seguro.


Há alguma desvantagem no SNI?

Embora a SNI tenha vantagens significativas, há algumas possíveis desvantagens. Uma delas é que a SNI pode ser mais lenta do que usar um endereço IP dedicado ou uma solução não SNI. Isso ocorre porque o servidor precisa executar uma etapa extra para identificar o certificado SSL/TLS correto para estabelecer uma conexão segura.

Outra desvantagem é que nem todos os navegadores e servidores da Web são compatíveis com a SNI. Se você usar um navegador ou uma plataforma antiga, poderá enfrentar problemas de compatibilidade, o que pode levar a erros ou vulnerabilidades de segurança.


Por que o SNI não é mais difundido?

Algumas organizações preferem usar endereços IP dedicados por motivos de segurança. Essas medidas podem oferecer proteção adicional contra ataques cibernéticos, como falsificação de IP. Muitos sistemas legados não são compatíveis com o SNI, portanto, isso também é um fator. Mas, à medida que a criptografia se torna onipresente, a implementação da SNI está ganhando ampla adoção.


O que é SNI criptografado (ESNI)?

O SNI criptografado (ESNI) é uma nova tecnologia projetada para abordar algumas das possíveis vulnerabilidades de segurança associadas ao SNI. O ESNI criptografa as informações do SNI para que não possam ser interceptadas por terceiros, protegendo a privacidade do usuário e evitando que invasores espionem o processo de handshake do TLS para determinar quais sites os usuários visitam.

O ESNI ainda não é amplamente suportado por navegadores e servidores da Web.

Quais navegadores são compatíveis com o ESNI?

Atualmente, o Firefox é o único navegador popular que oferece suporte à SNI.


Conclusão

Este artigo abordou a indicação do nome do servidor de todos os ângulos e aspectos. Agora que você sabe o que é a SNI, pode adotá-la em seus sites e projetos. A maioria dos sistemas é compatível com o SNI, pois é uma extensão essencial no atual ambiente de hospedagem na Web. Como o HTTPS é o novo padrão da Web, o SNI facilita a migração do protocolo HTTP obsoleto.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.