Apple CNA, Android Connectivity Check, Microsoft NCSI: Cómo funciona realmente la detección de Captive Portal
Esta referencia técnica definitiva explica cómo Apple CNA, Android connectivitycheck y Microsoft NCSI detectan los captive portals. Proporciona orientación práctica para gerentes de TI y arquitectos de red sobre la configuración de walled garden, modos de falla comunes y mejores prácticas para una implementación sin interrupciones.
🎧 Escucha esta guía
Ver transcripción
- Resumen Ejecutivo
- Análisis Técnico Detallado
- Asistente de Red Cautiva de Apple (CNA)
- Verificación de Conectividad de Android
- Indicador de Estado de Conectividad de Red de Microsoft (NCSI)
- Guía de Implementación
- Configuración de Walled Garden
- Pasos de Implementación
- Mejores Prácticas
- Solución de Problemas y Mitigación de Riesgos
- ROI e Impacto Comercial
- Referencias

Resumen Ejecutivo
La detección de Captive Portal es un componente crítico pero frecuentemente malentendido de las redes empresariales. Cuando un dispositivo se une a una red WiFi pública, el sistema operativo ejecuta una serie de sondeos en segundo plano para determinar si el acceso a internet está disponible o si un captive portal está interceptando el tráfico. Apple, Android y Windows utilizan cada uno mecanismos distintos, con diferentes URLs de sondeo, respuestas esperadas y modos de falla.
Para los gerentes de TI y arquitectos de red que implementan soluciones de WiFi para Invitados en entornos de Hostelería , Comercio Minorista o del sector público, la configuración incorrecta de estos mecanismos de detección genera una sobrecarga significativa de soporte. Los invitados pueden ver advertencias de certificado, no ver la página de bienvenida o experimentar bucles interminables de inicio de sesión. Esta guía de referencia proporciona la arquitectura técnica definitiva de Apple CNA, Android Connectivity Check y Microsoft NCSI, equipándolo con el conocimiento práctico necesario para construir walled gardens robustos e independientes del proveedor y asegurar una experiencia de conexión sin interrupciones.
Análisis Técnico Detallado
Asistente de Red Cautiva de Apple (CNA)
Cuando un dispositivo Apple (iOS o macOS) se conecta a una red, envía inmediatamente una solicitud HTTP GET a su URL de sondeo principal: http://captive.apple.com/hotspot-detect.html. El dispositivo espera una respuesta HTTP 200 OK con un cuerpo HTML específico que contenga la palabra "Success" [1].
Si la respuesta coincide con esta expectativa, el sistema operativo asume acceso completo a internet. Si la respuesta es cualquier otra cosa, como una redirección HTTP 302 o un tiempo de espera, el sistema operativo activa el Captive Network Assistant (CNA). El CNA abre WebSheet, un mini-navegador en un entorno aislado con funcionalidad limitada (sin extensiones de Safari, sin guardar contraseñas) [2].
Restricción crítica: El sondeo inicial es HTTP. Si su gateway intercepta el sondeo y redirige a una URL HTTPS, el CNA fallará de manera controlada, a menudo resultando en una advertencia de certificado o una pantalla en blanco. La redirección inicial debe permanecer en el puerto HTTP 80. Además, si permite inadvertidamente captive.apple.com a través de su walled garden, el dispositivo llegará al servidor real de Apple, recibirá la respuesta "Success" y omitirá su portal por completo.
Verificación de Conectividad de Android
Android opera bajo un principio diferente. Su sondeo principal apunta a http://connectivitycheck.gstatic.com/generate_204 (con alternativas a clients2.google.com y connectivitycheck.android.com). En lugar de esperar una respuesta HTTP 200 con contenido específico, Android espera una respuesta HTTP 204 No Content [3].
Si Android recibe un HTTP 204, asume conectividad a internet. Si recibe una redirección o una respuesta HTTP 200, marca la red como cautiva y muestra una notificación de "Iniciar sesión en la red WiFi". Al tocar esta notificación, se abre el navegador Chrome completo, lo que permite una experiencia de portal más rica en comparación con el CNA en entorno aislado de Apple.
Restricción crítica: Si su walled garden bloquea connectivitycheck.gstatic.com por completo en lugar de interceptarlo y redirigirlo, Android mostrará una advertencia de "Conectado, sin internet" y no le pedirá al usuario que inicie sesión.
Indicador de Estado de Conectividad de Red de Microsoft (NCSI)
Windows emplea un mecanismo de doble sondeo a través del servicio Network Connectivity Status Indicator (NCSI). Al conectarse, Windows realiza una solicitud HTTP GET a http://www.msftconnecttest.com/connecttest.txt (esperando una respuesta 200 con el texto "Microsoft Connect Test") y una resolución DNS para dns.msftncsi.com [4].
Si el sondeo HTTP es interceptado, Windows detecta el portal y abre el navegador predeterminado (Edge). Sin embargo, Windows es propenso a un problema de bucle post-autenticación. Después de que el usuario se autentica, Windows vuelve a ejecutar los sondeos NCSI. Si el gateway aún no ha propagado la autorización de la dirección MAC, el sondeo es interceptado nuevamente, y Windows reabre el portal, forzando al usuario a un bucle de inicio de sesión.

Guía de Implementación
Para asegurar una detección confiable de captive portal en todos los dispositivos, debe configurar su zona de pre-autenticación (walled garden) para manejar los requisitos específicos de cada sistema operativo.

Configuración de Walled Garden
Su walled garden debe incluir los siguientes hosts. Fundamentalmente, debe interceptar y redirigir el tráfico HTTP a estos hosts, en lugar de simplemente permitir que pasen a internet.
- Apple:
captive.apple.com,www.apple.com,www.appleiphonecell.com,www.itools.info - Android:
connectivitycheck.gstatic.com,clients2.google.com,connectivitycheck.android.com - Windows:
www.msftconnecttest.com,dns.msftncsi.com,www.msftncsi.com(para clientes heredados)
Pasos de Implementación
- Configurar Resolución DNS: Asegúrese de que las solicitudes DNS para las URLs de sondeo se resuelvan correctamente dentro de la zona de pre-autenticación.
- Interceptar Sondeos HTTP: Configure su gateway para interceptar las solicitudes HTTP GET a las URLs de sondeo y devolver una redirección HTTP 302 a la página de bienvenida de su portal.
- Mantener HTTP para la Redirección Inicial: La redirección inicial debe servirse a través de HTTP (puerto 80). Posteriormente, puede redirigir al usuario a una página de inicio de sesión HTTPS, pero el primer salto debe ser HTTP en texto plano para satisfacer a Apple CNA.
- Propagar Autorización Rápidamente: Asegúrese de que su gateway actualice inmediatamente sus reglas de firewall tras una autenticación exitosa para permitir que los sondeos NCSI pasen, evitando bucles de Windows.
Mejores Prácticas
- Adoptar RFC 8910 (Captive Portal API): Los sistemas operativos modernos (iOS 16+, Android 11+) son compatibles con la opción DHCP 114, que proporciona una señal positiva de la presencia de un Captive Portal a través de una URL API designada [5]. Esto elimina la dependencia de la intercepción de sondas y es el enfoque recomendado a prueba de futuro.
- Pruebas en Todas las Plataformas: Nunca asuma que un portal funciona basándose únicamente en pruebas con un iPhone. Exija una matriz de pruebas que incluya dispositivos iOS, Android puro y Windows 10/11.
- Aproveche las Plataformas Automatizadas: La gestión manual de las URL de sonda en evolución es propensa a errores. Plataformas como Purple actualizan automáticamente las definiciones de walled garden a medida que Apple, Google y Microsoft modifican su infraestructura, asegurando una recopilación de datos de WiFi Analytics consistente.
Solución de Problemas y Mitigación de Riesgos
| Síntoma | Causa Raíz | Resolución |
|---|---|---|
| Apple CNA no se abre; el usuario ve una advertencia SSL. | El gateway intercepta la sonda y redirige directamente a HTTPS. | Asegúrese de que la intercepción y redirección inicial utilicen el puerto HTTP 80. |
| El dispositivo Apple se conecta sin mostrar el portal. | Se permite el paso de captive.apple.com a través del walled garden hacia internet. |
Elimine captive.apple.com de la lista de permitidos; asegúrese de que sea interceptado. |
| Android muestra "Conectado, sin internet". | connectivitycheck.gstatic.com está bloqueado por el firewall. |
Permita la URL de la sonda en el walled garden, pero intercéptela y rediríjala. |
| Windows solicita al usuario iniciar sesión varias veces (en bucle). | El gateway tarda en aplicar las reglas MAC post-autenticación; NCSI sigue siendo interceptado. | Optimice la propagación de reglas del gateway; asegúrese de que msftconnecttest.com pase post-autenticación. |
ROI e Impacto Comercial
Una arquitectura robusta de detección de Captive Portal impacta directamente en los resultados finales. En un hotel de 500 habitaciones o un gran entorno minorista, los fallos del Captive Portal generan un volumen desproporcionado de tickets de soporte de TI. Al eliminar estos puntos de fricción, los establecimientos reducen los gastos generales de soporte, mejoran las puntuaciones de satisfacción de los huéspedes y aumentan la tasa de captura de datos de primera parte.
Cuando los usuarios se conectan sin problemas, interactúan con sus páginas de bienvenida, lo que le permite ofrecer marketing dirigido, integrarse con programas de lealtad y generar ingresos medibles, como se detalla en nuestra guía Indoor Positioning System: UWB, BLE, & WiFi Guide . Para los establecimientos que operan internacionalmente, un portal confiable garantiza una recopilación consistente de datos de cumplimiento, apoyando los marcos discutidos en la Brazil LGPD and Guest WiFi: A Compliance Guide .
Referencias
[1] Soporte de Apple, "Usar redes Wi-Fi cautivas en tu iPhone o iPad," 2024. [2] SecureW2, "¿Qué es Apple Captive Network Assistant?," 2023. [3] Desarrolladores de Android, "Soporte de API de Captive Portal," Características de Android 11, 2020. [4] Microsoft Learn, "Detección de Captive Portal y Experiencia del Usuario en Windows," Desarrollador de Hardware de Windows, 2025. [5] IETF, "RFC 8910: Identificación de Captive Portal en DHCP y Anuncios de Router," 2020.
Términos clave y definiciones
Captive Network Assistant (CNA)
Apple's built-in mechanism for detecting captive portals and displaying them in a sandboxed mini-browser (WebSheet) rather than the full Safari browser.
IT teams must ensure their splash pages are responsive and do not rely on advanced browser features, as the CNA environment is highly constrained.
Network Connectivity Status Indicator (NCSI)
The Windows service responsible for determining internet connectivity by probing specific Microsoft domains via HTTP and DNS.
Understanding NCSI is critical for preventing the common 'Windows looping' issue where users are repeatedly prompted to sign in.
Walled Garden
A restricted network environment that allows unauthenticated users access to a specific list of approved hostnames or IP addresses.
Properly configuring the walled garden is the foundation of captive portal deployment, ensuring OS probes are handled correctly.
HTTP 204 No Content
An HTTP status code indicating the server successfully processed the request but is not returning any content.
This is the specific response Android devices expect from `connectivitycheck.gstatic.com` to confirm full internet access.
RFC 8910 (Captive Portal API)
An IETF standard that uses DHCP option 114 to explicitly notify a device of a captive portal's presence and provide the portal URL.
This modern standard replaces unreliable probe interception and is supported by newer versions of iOS and Android.
WebSheet
The sandboxed, limited-functionality mini-browser used by Apple's CNA to render captive portal splash pages.
Portal designers must test their pages in WebSheet, as it lacks features like password saving and full cookie support found in standard browsers.
MAC Authorisation
The process by which a gateway grants network access to a specific device based on its Media Access Control address after successful portal authentication.
Delays in applying MAC authorisation cause post-authentication probes (like Windows NCSI) to fail, leading to poor user experiences.
Probe Interception
The technique of capturing an operating system's background connectivity check and forcibly redirecting it to a captive portal login page.
This is the legacy, yet most common, method for triggering captive portals, requiring precise HTTP 302 redirects.
Casos de éxito
A 300-room hotel reports that guests using iPhones are connecting to the guest WiFi but are not being prompted with the captive portal splash page. Android and Windows users are unaffected.
- Review the walled garden (pre-authentication) allowlist on the gateway.
- Identify that
captive.apple.comhas been added as a permitted passthrough host. - Remove
captive.apple.comfrom the passthrough list. - Configure the gateway to intercept HTTP requests to
captive.apple.comand redirect them (via HTTP 302) to the portal URL.
A conference centre's IT team receives complaints that Windows 11 users are authenticating successfully but are immediately prompted to sign in again, creating an endless loop.
- Verify that the captive portal gateway is successfully authorising the client's MAC address post-authentication.
- Inspect the post-authentication firewall rules to ensure traffic to
www.msftconnecttest.comanddns.msftncsi.comis permitted. - Adjust the gateway configuration to ensure MAC authorisation is applied instantaneously, preventing subsequent NCSI probes from being intercepted.
Análisis de escenarios
Q1. You are deploying a captive portal for a large retail chain. The security team insists that all network traffic, including the initial portal redirect, must be encrypted using HTTPS. What is the technical implication of this policy?
💡 Sugerencia:Consider how Apple's Captive Network Assistant (CNA) handles initial probe requests.
Mostrar enfoque recomendado
Enforcing HTTPS for the initial redirect will break Apple CNA detection. The CNA probe is an HTTP GET request. If the gateway intercepts this and redirects to an HTTPS URL, the CNA will not follow the redirect gracefully, resulting in a certificate error or a failure to open the portal. The initial interception must use HTTP port 80; the user can subsequently be redirected to an HTTPS page for authentication.
Q2. A stadium network engineer reports that Android devices are showing a 'Connected, no internet' warning without prompting the user to sign in. How should the walled garden be adjusted?
💡 Sugerencia:Think about the difference between blocking a probe and intercepting it.
Mostrar enfoque recomendado
The engineer needs to ensure that connectivitycheck.gstatic.com is allowed to resolve via DNS within the walled garden, but the HTTP traffic must be intercepted and redirected. Currently, the firewall is likely dropping the traffic entirely, causing Android to assume the internet is down rather than detecting a captive portal.
Q3. A venue wishes to implement RFC 8910 (Captive Portal API) to improve the user experience. What infrastructure changes are required to support this?
💡 Sugerencia:RFC 8910 relies on a positive signal during the IP assignment phase.
Mostrar enfoque recomendado
The venue must update its DHCP server or access points to advertise DHCP option 114. This option must provide the URL of the Captive Portal API endpoint. When compatible devices (iOS 16+, Android 11+) receive this option during the DHCP handshake, they will immediately fetch the API and prompt the user, bypassing the need for HTTP probe interception.



