Blog de GlobalSign

15 jun 2018

¿Qué es la indicación de nombre de servidor (SNI)?

Nota: Es importante aclarar que usamos el término técnico correcto certificado TLS en lugar de SSL, puesto que los protocolos TLS (que sustituyeron a los protocolos SSL) son los empleados en la actualidad. Para obtener información adicional, puede consultar nuestra publicación TLS vs. SSL.

La indicación de nombre de servidor (SNI) permite al servidor alojar de forma segura varios certificados TLS para múltiples sitios web bajo una misma dirección IP. La SNI añade el nombre de host del servidor (sitio web) al protocolo de intercambio TLS como extensión en el mensaje "CLIENT HELLO". De este modo, el servidor reconoce el sitio web que debe presentar cuando se utilizan IPs compartidas. Por norma general, las empresas que usan IPs compartidas bajo un único servidor son empresas de hosting que se enfrentan a un problema cotidiano: "¿Cómo logro que mi servidor seleccione y presente el certificado correcto?"

A continuación, analizaremos el problema en mayor detalle. En un sitio HTTP, el servidor utiliza encabezados de HOST HTTP para determinar qué sitio web HTTP debe presentar. Sin embargo, cuando se utiliza el protocolo TLS (el empleado en HTTPS), es necesario crear la sesión segura antes de poder establecer la sesión HTTP. Hasta este momento, no hay disponible ningún encabezado de host.

De modo que el dilema es el siguiente: si usamos HTTPS, el protocolo de intercambio TLS del navegador no puede completarse si no se dispone de un certificado TLS. Sin embargo, el servidor no sabe qué certificado presentar porque no puede acceder al encabezado de host.

¿En qué consiste la SNI y cómo puede solucionar este problema?

La indicación de nombre de servidor (SNI) es una extensión del protocolo TLS. El cliente especifica el nombre de host al cual desea conectarse usando la extensión SNI en el protocolo de intercambio TLS. Esto permite al servidor (por ejemplo, Apache, Nginx o un balanceador de carga como HAProxy) seleccionar la clave privada y la cadena de certificados correspondiente necesarios para establecer la conexión desde una lista o base de datos usando una misma dirección IP.

Cuando se recurre a la SNI, el nombre de host del servidor se incluye en el protocolo de intercambio TLS, lo que permite a los sitios web HTTPS contar con certificados TLS exclusivos, incluso estando alojados en una dirección IP compartida.

La pregunta ahora es ¿por qué es esto importante? ¿Por qué necesitamos contar con certificados exclusivos para IPs compartidas?

El dilema de la escasez de IPv4

La versión 4 del Protocolo de Internet cuenta aproximadamente con 4000 millones de direcciones IP. Sin embargo, ya hay más de 4000 millones de equipos conectados a Internet en todo el mundo, lo que provoca una escasez de direcciones IPv4. La versión 6 del Protocolo de Internet (IPv6, por sus siglas en inglés) debería solucionar este problema, ya que ofrecerá billones de direcciones. No obstante, existen equipos de red que aún no son compatibles con IPv6. Se estima que el 90% de los sistemas operativos más comunes para teléfonos móviles, PCs y servidores son compatibles con IPv6. Aunque estamos muy cerca de disfrutar de una compatibilidad total con IPv6, en el caso de determinados sistemas heredados que siguen requiriendo IPs compartidas, es probable que sea necesario adoptar un enfoque dual: SNI para IPv4 para un número reducido de navegadores heredados e IPs exclusivas para todos los dominios a través de IPv6 para el resto.

¿Cómo puede la SNI solucionar la escasez de IPv4?

La SNI permite al servidor alojar de forma segura varios certificados TLS para múltiples sitios web bajo una misma dirección IP.

De esta forma se necesitan y usan menos direcciones IP, aumentando así las direcciones IP libres. Si bien es cierto que en el futuro se agotarán las direcciones IPv4, esta escasez se ralentiza, dando más tiempo para que los usuarios actualicen sus sistemas y adopten navegadores, routers y servidores compatibles.

La SNI también simplifica en gran medida la configuración y gestión de múltiples sitios web, ya que todos ellos pueden direccionarse hacia la misma dirección IP. Otra ventaja adicional es que un simple escaneado de la dirección IP no revela el certificado, lo que incrementa la seguridad en términos generales.

¿Cuáles son las desventajas de la SNI?

Aunque resulta evidente que la SNI es una excelente solución para IPs compartidas, también entraña una pequeña desventaja, que solo afecta a un número muy reducido de usuarios de Internet, en particular aquellos que usan navegadores o sistemas operativos heredados.

La SNI no es compatible con navegadores y servidores web heredados. Los navegadores modernos (en general aquellos que tienen menos de 6 años) aceptan la SNI. Sin embargo, existen dos principales navegadores heredados que tienen problemas con la SNI: Internet Explorer para Windows XP (o una versión anterior, que según los cálculos se utilizó para acceder a sitios web por parte del 3,18% de los usuarios en abril de 2018) y Android 2.3 o anterior (utilizado por aproximadamente el 0,3% de los usuarios de Android). Si el navegador o SO heredado no es compatible con SNI, el protocolo de intercambio seleccionará el certificado predeterminado, lo que puede generar un error de discrepancia de nombre común.

El uso de XP y las versiones 2.3 o anteriores de Android continuará descendiendo, por lo que los problemas de compatibilidad serán cada vez menores. También conviene recordar que Windows XP no es compatible con TLS 1.1 o TLS 1.2 y, a raíz de los próximos requisitos de PCI, sus usuarios dejarán de poder visitar muchos sitios web.

Aunque el uso de estos navegadores es cada vez menor, es cierto que un porcentaje de los usuarios de Internet actualmente experimentará problemas al visitar un sitio web HTTPS si accede a través de una SNI.

Aquí se encuentra una lista completa de navegadores y versiones compatibles y no compatibles con SNI.

Un modo de superar este problema es usar un TLS multidominio como certificado predeterminado, que permite enumerar todos los dominios de la IP compartida en un certificado (a continuación se explica en más detalle).

Otro aspecto a destacar de la SNI es que la conexión se inicia sin cifrar en TLS 1.2, lo que expone a los clientes a control y vigilancia. Aunque la versión TLS 1.3 ha resuelto este inconveniente, aún no es totalmente compatible. Por ello, recomendamos estar preparados para dar el paso a TLS 1.3 tan pronto como su adopción esté ampliamente generalizada.

En cualquier caso, estos inconvenientes no consiguen empañar las claras ventajas de la SNI. Recomendamos usar SNI siempre que resulte posible.

Diferencias entre SNI y SANs

Los certificados multidominio (denominados en ocasiones certificados de SAN) también resultan válidos para gestionar la escasez de IPv4. A diferencia de la SNI, los certificados TLS multidominio no entrañan las desventajas de incompatibilidad con navegadores o servidores. Funcionan como cualquier otro certificado TLS y permiten cubrir hasta 200 dominios en un mismo certificado. Por su parte, la SNI permite alojar millones de dominios en la misma dirección IP.

Entonces, ¿por qué no recurrimos simplemente a los certificados multidominio?

En el caso de los certificados multidominio, es necesario añadir todos los dominios al certificado en cuestión. Estos dominios se enumeran como Nombres Alternativos de Sujeto, o SANs. Si se desea añadir o eliminar un SAN, o es necesario revocar o renovar un certificado, el certificado debe sustituirse y volver a implantarse en todos los dominios. Además, es posible visualizar quiénes comparten el mismo certificado. En estos casos, las organizaciones que reciben sus certificados de una empresa de hosting que, por ejemplo, utiliza certificados multidominio para sus clientes, podrían preferir no verse obligados a compartir un certificado con sus competidores.

Además, esto aumenta el tamaño del certificado, que sigue aumentando conforme se añaden más y más nombres. Si bien hablamos solo de kilobytes, esta información debe descargarse antes de poder descargar ningún otro elemento del sitio web. En resumen, el volumen de kilobytes bloquea la descarga del sitio web durante uno o varios milisegundos, dependiendo de la conexión a Internet. Aunque no es mucho, cuando la competencia por posicionarse en Google es ardua, unos pocos milisegundos de velocidad de carga de una página pueden marcar una gran diferencia.

Otro inconveniente importante es que los certificados multidominio no son compatibles con SANs OV (validación de organización) o EV (validación ampliada) cuando son compartidos entre empresas. Por ejemplo, en el caso de la empresa de hosting mencionada anteriormente con dominios de múltiples empresas incluidos como SANs en un único certificado, estos dominios estarían validados a nivel de dominio (DV). Los distintos niveles de validación hacen referencia a la cantidad de información que se verifica antes de emitir el certificado. DV implica que el propietario del sitio web demostró tener un control administrativo sobre el dominio, mientras que OV y EV verifican, además, información sobre la identidad del propietario del sitio (p. ej., su existencia jurídica y operativa).

Algunos usuarios populares de certificados multidominio son Cloudflare y Google. Google solo los utiliza para los clientes más antiguos que no tienen compatibilidad con SNI.

Entonces, ¿cuál es mi mejor opción, SNI o certificados multidominio?

En términos generales, si bien es cierto que la SNI y los certificados multidominio reportan los mismos resultados, es decir, reducen el número de direcciones IPv4 necesarias, lo hacen de forma diametralmente opuesta:

La SNI permite contar con certificados exclusivos para cada dominio (es decir, muchos certificados), pero todos ellos comparten la misma dirección IP. Los certificados multidominio, por su parte, solamente utilizan un certificado para muchos dominios, por lo que se usa una única dirección IP para muchos dominios.

Es evidente la utilidad tanto de la SNI como de los certificados multidominio, bien por separado o en combinación. Con ambas soluciones, el usuario puede seguir alojando certificados para clientes sin preocuparse por problemas de compatibilidad o direcciones IP dedicadas.

Si desea hablar con GlobalSign sobre la solución más adecuada para usted, póngase en contacto con nosotros hoy mismo.

Share this Post

Write for Us

Apply Now