¿Qué es SNI (Server Name Indication) y cómo funciona?

SNI (Server Name Indication)

Ejecutar varios sitios web HTTPS bajo la misma dirección IP es una práctica normal hoy en día. Pero no siempre fue así. Al principio, necesitabas una dirección IP dedicada para cada dominio que quisieras asegurar. Sin embargo, la llegada de Server Name Indication (SNI) cambió todo el panorama de SSL. En este artículo le explicamos qué es SNI, cómo funciona y por qué puede necesitarlo. Para entender mejor todo el proceso, tenemos que dar un paso atrás en el tiempo, antes de la creación del SNI.

Índice

  1. Antes de SNI: Hosts basados en nombres y su incompatibilidad con HTTPS
  2. ¿Qué es el SNI?
  3. ¿Por qué utilizar SNI?
  4. ¿Cómo funciona el SNI?
  5. ¿Cuáles son las ventajas del SNI?
  6. ¿Cuáles son las diferencias entre SNI y SAN?
  7. Certificados Wildcard frente a certificados SNI
  8. ¿Qué navegadores soportan SNI?
  9. ¿Tiene desventajas el SNI?
  10. ¿Por qué no está más extendido el SNI?
  11. ¿Qué es el SNI cifrado (ESNI)?

Antes de SNI: Hosts basados en nombres y su incompatibilidad con HTTPS

Hace más de una década, sólo una pequeña parte de los sitios web utilizaban el protocolo HTTPS. HTTP seguía siendo el rey. Hoy en día, si desea alojar varios sitios web HTTP en la misma dirección IP, puede utilizar hosts basados en nombres. Por ejemplo, si ejecuta tres sitios HTTP en la misma dirección IP, cuando un usuario se conecta a un sitio en particular, éste utiliza un encabezado HTTP único que contiene el nombre de host. En respuesta, su servidor identifica y hace coincidir esta cabecera, y envía al usuario el destino deseado.

Este enfoque funciona hasta que HTTPS entra en la ecuación y entonces ya no. Dado que SSL/TLS requiere un “handshake” para establecer una conexión segura entre un cliente y un servidor, la cabecera HTTP con el nombre de host necesario no puede descargarse antes de que se haya completado el “handshake”. El servidor simplemente no sabe con qué sitio web debe coincidir y enviar al usuario. Aquí es donde SNI viene al rescate.

¿Qué es el SNI?

SNI es una extensión del protocolo TLS (Transport Layer Security) que permite a varios sitios web compartir la misma dirección IP. Permite a los servidores web alojar varios certificados SSL/TLS en la misma IP, una ventaja esencial para los sitios que utilizan HTTPS para cifrar su comunicación con los usuarios.

Ahora bien, todos sabemos que TLS es el protocolo criptográfico que asegura los datos sensibles en el transporte (y si no lo sabes, aquí tienes una rápida descripción técnica de los certificados SSL/TLS), pero por sí solo, en determinadas situaciones, TLS dista mucho de ser perfecto. Una de estas situaciones esenciales es la ejecución de varios certificados SSL en la misma dirección IP. TLS no puede hacerlo a menos que reciba un poco de ayuda de una extensión.

Al igual que las extensiones de su navegador añaden más características y mejores funciones, SNI es una extensión del protocolo TLS/SSL que permite a los usuarios alojar varios certificados SSL en una única dirección IP. SNI lo hace insertando la cabecera HTTP en el handshake SSL/TLS.

Antes de que SNI se convirtiera en una extensión de TLS en 2003, cada sitio web que se quería cifrar requería una dirección IP única. Esto ha provocado enormes costes, pero lo que es más preocupante, un rápido consumo de direcciones IPv4. Las direcciones IP únicas no son infinitas. Por ejemplo, el Protocolo de Internet versión 4 tiene aproximadamente cuatro mil millones de direcciones.

Antes de la aparición de SNI, existía la preocupación real de que las direcciones IPv4 se agotaran antes de la llegada de la nueva IPv6. SNI consiguió aliviar estos temores y ralentizar el agotamiento de IPv4. Otra buena noticia: IPv6 cuenta con 340 billones de direcciones. Son 340 seguidos de 36 ceros. Esta cantidad debería bastar para el futuro previsible.

¿Por qué utilizar SNI?

SNI permite a los propietarios de sitios web proteger las comunicaciones con sus usuarios y clientes facilitando la gestión de certificados SSL. Sin SNI, cada sitio web necesitaría una dirección IP única para utilizar el cifrado HTTPS, lo que podría resultar caro para las pequeñas empresas y las compañías con un presupuesto ajustado.

SNI también facilita la gestión de sitios web, ya que ahora los servidores web pueden alojar varios certificados SSL/TLS en la misma dirección IP. Esto significa que los propietarios de sitios web pueden añadir o eliminar fácilmente sitios web de sus cuentas de alojamiento.

¿Cómo funciona el SNI?

Cuando visita un sitio web a través de HTTPS, su navegador y el servidor del sitio web necesitan establecer una conexión segura a través del protocolo de enlace SSL/TLS. Durante este proceso, el navegador web envía un mensaje al servidor que incluye el nombre de host del sitio web.

En el caso de SNI, el nombre de host del sitio web se incluye en el mensaje Client Hello, lo que permite al servidor seleccionar el certificado correcto que debe utilizar en el mensaje Server Hello. Como resultado, el servidor puede alojar varios certificados SSL en la misma dirección IP.

La mayoría de los servidores web y navegadores modernos admiten SNI, pero es posible que las versiones más antiguas no. En estos casos, el navegador web puede recibir un certificado SSL genérico en lugar del correcto, lo que puede provocar la aparición de advertencias o errores.

¿Cuáles son las ventajas del SNI?

SNI ha cambiado por completo el panorama del alojamiento a la hora de instalar y gestionar certificados SSL. He aquí sus principales ventajas:

  • Alojamiento multidominio. Con SNI, puede alojar y proteger varios sitios web en un único servidor y dirección IP. SNI reduce significativamente los costes de alojamiento y agiliza la gestión de SSL.
  • Flexibilidad. SNI ofrece la flexibilidad de añadir o eliminar sitios web de un servidor sin tener que reconfigurarlo ni obtener direcciones IP adicionales.
  • Mejor utilización de los recursos. SNI permite una mejor utilización de recursos como las direcciones IP, que pueden ser escasas y caras. Al alojar varios sitios en la misma IP, se ralentiza el agotamiento de IPv4, el protocolo central que nos ayuda a conectarnos a la Red.

¿Cuáles son las diferencias entre SNI y SAN?

Tanto SNI como SAN son métodos para admitir varios certificados SSL en un único servidor. Sin embargo, difieren en la forma de prestar este apoyo. La principal diferencia entre SNI y SAN es que SNI es una tecnología del lado del servidor, mientras que SAN es una función del certificado.

Como ya sabe, SNI permite a un servidor web alojar varios certificados en una única dirección IP. Cuando un cliente se conecta al servidor, SNI permite al servidor determinar qué certificado utilizar en función del nombre de dominio proporcionado por el cliente en la solicitud inicial.

Los SAN, por su parte, son una característica de los certificados SSL que permite que un único certificado proteja varios nombres de dominio bajo una misma instalación. Un certificado SAN incluye una lista de nombres de dominio adicionales (también conocidos como Subject Alternative Names) que puede proteger con el mismo certificado.

En cuanto a la compatibilidad, la mayoría de los navegadores y servidores web modernos admiten SNI y SAN. Sin embargo, algunos sistemas heredados podrían ser incompatibles con ellos.

Certificados Wildcard frente a certificados SNI

Un certificado SSL Wildcard protege un dominio y todos sus subdominios (ilimitados) bajo un único certificado SSL. Wildcard es otra característica de los certificados SSL, al igual que los SAN. Si su sitio web tiene varios subdominios, como new.yourwebsite.com o blog.yourwebsite.com, es conveniente y rentable obtener una opción de SSL comodín.

Los certificados SNI no existen, ya que SNI no es una característica intrínseca de los certificados SSL, sino una extensión de TLS en el lado del servidor. Si su servidor admite SNI, puede añadir cualquier tipo de SSL en varios dominios con la misma dirección IP.

¿Qué navegadores soportan SNI?

SNI es ahora compatible con el 99% de los navegadores y los principales sistemas de servidores. Chrome, Mozilla, Opera, Safari y otros navegadores menos conocidos admiten SNI. Puede implementar SNI en Apache, Nginx, Ubuntu, Debian, CentOS y muchos otros sistemas populares. Algunas de las bibliotecas que soportan SNI son Open SSL, GnutTLS, Python, Oracle y Java. Siempre que necesite proteger varios sitios web en una única dirección IP, utilice SNI en su beneficio.

¿Qué ocurre si el navegador no admite SNI?

Si un navegador web no es compatible con SNI, no podrá establecer una conexión segura con un servidor que utilice SNI para alojar varios certificados SSL/TLS. Como resultado, el usuario no podrá acceder al sitio web. Además, el usuario recibirá un mensaje de error indicando que el sitio web en cuestión no es seguro.

¿Tiene desventajas el SNI?

Aunque el SNI tiene importantes ventajas, también puede presentar algunos inconvenientes. Una es que SNI puede ser más lento que utilizar una dirección IP dedicada o una solución no SNI. Esto se debe a que el servidor debe realizar un paso adicional para identificar el certificado SSL/TLS correcto para establecer una conexión segura.

Otra desventaja es que no todos los navegadores y servidores soportan SNI. Si utiliza un navegador o una plataforma heredados, puede tener problemas de compatibilidad, lo que puede provocar errores o vulnerabilidades de seguridad.

¿Por qué no está más extendido el SNI?

Algunas organizaciones prefieren utilizar direcciones IP dedicadas por motivos de seguridad. Estas medidas pueden proporcionar protección adicional contra ciberataques como la suplantación de IP. Muchos sistemas heredados no admiten SNI, así que eso también es un factor. Pero, a medida que la encriptación se hace omnipresente, la implantación de SNI gana adeptos.

¿Qué es el SNI cifrado (ESNI)?

El SNI cifrado (ESNI) es una nueva tecnología diseñada para resolver algunas de las posibles vulnerabilidades de seguridad asociadas al SNI. ESNI cifra la información SNI para que no pueda ser interceptada por terceros, protegiendo la privacidad del usuario e impidiendo que los atacantes espíen el proceso de enlace TLS para determinar qué sitios web visitan los usuarios.

Los navegadores y servidores web aún no admiten ESNI de forma generalizada.

¿Qué navegadores admiten ESNI?

Actualmente, Firefox es el único navegador popular que ofrece soporte SNI.

Conclusión

Este artículo ha cubierto la Indicación de Nombre de Servidor desde todos los ángulos y aspectos. Ahora que ya sabe qué es SNI, puede adoptarlo para sus sitios web y proyectos. La mayoría de los sistemas son compatibles con SNI, ya que es una extensión esencial en el entorno de alojamiento web actual. Dado que HTTPS es el nuevo estándar web, SNI facilita la migración desde el obsoleto protocolo HTTP.

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.