ios7 y portales cautivos: cambios a la URL de request de Apple

Parece que en ios7 la URL a la que el dispositivo envía una request para comprobar si tiene una connection a Internet después de conectarse a wifi ha cambiado (¡para mucho peor!).

en ios6 y antes, la request fue:

GET /library/test/success.html HTTP/1.0 Host: www.apple.com User-Agent: CaptiveNetworkSupport/1.0 wispr Connection: close 

( fuente )

Pero ahora en ios7, puede acceder a 'hasta 200' (según cisco ).

Habiendo probado esto yo mismo, puedo confirmar que las requestes se envíen aleatoriamente a appleiphonecell.com, cautive.apple.com, airport.us, ibook.info, entre otros.

Entonces, mi pregunta es: ¿Alguien tiene una list completa de estas URL (tal vez es solo un dominio de Apple)? Ejecutamos un portal cautivo en nuestro wifi, pero solo para que los usuarios sepan que necesitan conectarse a la VPN luego de conectarse a wifi. Al hacer clic en "cancelar" en la página de inicio de session del portal cautivo, a veces se presenta la opción "usar sin internet", que luego permitirá que el usuario se conecte a la VPN, pero a veces, onclick en 'cancelar' no se obtiene esta opción y simplemente se desconecta connection wifi de inmediato, lo que significa que el usuario no puede conectarse a la VPN.

Antes solo podíamos forjar una respuesta a la URL específica (library / test / success.html) que luego dejaría conectado wifi. ¡Podemos hacerlo nuevamente si tuviéramos una list de los sitios a los que puede acceder, de lo contrario, tendríamos que volver a la table de dibujo con nuestro portal cautivo! (O espere una actualización de ios7 que corrija la opción de "usar sin Internet", que no aparece siempre). Creo que lo veremos hacer basado en el agente de usuario por ahora si eso es posible.

Edite la actualización, parece que UA se mantiene consistente al less con 'CaptiveNetworkSupport' siendo el denominador común, por lo que cambiaremos a UA checking por el momento.

Lo suficientemente interesante, www.appleiphonecell.com y captive.apple.com se resuelven actualmente en las direcciones de Akamai.

 ~/ > host captive.apple.com captive.apple.com is an alias for captive.apple.com.edgekey.net. captive.apple.com.edgekey.net is an alias for e7279.e9.akamaiedge.net. e7279.e9.akamaiedge.net has address 23.212.87.91 

Pero airport.us y sus amigos se resuelven directamente a la networking Class A de Apple.

 ~/ > host airport.us airport.us has address 17.149.160.87 airport.us has address 17.172.224.81 

Desde estas direcciones IP puede encontrar muchos más nombres de host que tienen el mismo logging PTR. Al agregar la ruta /library/test/success.html mayoría de las veces resulta en una respuesta directa o una networkingirección a la misma página en el nombre de host de www.apple.com .

 ~/ > host 17.149.160.87 87.160.149.17.in-addr.arpa domain name pointer airport.us. 87.160.149.17.in-addr.arpa domain name pointer ibook.info. 87.160.149.17.in-addr.arpa domain name pointer macbookair.net. 87.160.149.17.in-addr.arpa domain name pointer macintosh.me. 87.160.149.17.in-addr.arpa domain name pointer applecare.info. 87.160.149.17.in-addr.arpa domain name pointer macintosh.info. 87.160.149.17.in-addr.arpa domain name pointer itunes.info. 87.160.149.17.in-addr.arpa domain name pointer itunes.us. 87.160.149.17.in-addr.arpa domain name pointer iphoto.us. 87.160.149.17.in-addr.arpa domain name pointer applecare.us. 87.160.149.17.in-addr.arpa domain name pointer macbook.us. 87.160.149.17.in-addr.arpa domain name pointer itunesmobile.com. 87.160.149.17.in-addr.arpa domain name pointer ipod.us. 87.160.149.17.in-addr.arpa domain name pointer itunestelevision.com. 87.160.149.17.in-addr.arpa domain name pointer macosxversions.com. 87.160.149.17.in-addr.arpa domain name pointer itunes.me. 87.160.149.17.in-addr.arpa domain name pointer itunesaircheck.com. 87.160.149.17.in-addr.arpa domain name pointer mac.us. 87.160.149.17.in-addr.arpa domain name pointer macbookair.us. 87.160.149.17.in-addr.arpa domain name pointer ipod.me. 87.160.149.17.in-addr.arpa domain name pointer applestore.info. 87.160.149.17.in-addr.arpa domain name pointer iphone.me. 87.160.149.17.in-addr.arpa domain name pointer osxlionlaunchpad.com. 87.160.149.17.in-addr.arpa domain name pointer macgestures.com. 87.160.149.17.in-addr.arpa domain name pointer macbookair.org. 87.160.149.17.in-addr.arpa domain name pointer mac.info. 87.160.149.17.in-addr.arpa domain name pointer macos.us. 87.160.149.17.in-addr.arpa domain name pointer myipod.net. 87.160.149.17.in-addr.arpa domain name pointer itunesu.net. 87.160.149.17.in-addr.arpa domain name pointer appleiphonecell.com. 87.160.149.17.in-addr.arpa domain name pointer firewire.us. 87.160.149.17.in-addr.arpa domain name pointer airport.info. 87.160.149.17.in-addr.arpa domain name pointer itunesparty.com. 87.160.149.17.in-addr.arpa domain name pointer applecomputer.info. 87.160.149.17.in-addr.arpa domain name pointer appletv.info. 87.160.149.17.in-addr.arpa domain name pointer applecomputers.us. 87.160.149.17.in-addr.arpa domain name pointer idvd.us. 87.160.149.17.in-addr.arpa domain name pointer osx.info. 87.160.149.17.in-addr.arpa domain name pointer macbookair.info. 87.160.149.17.in-addr.arpa domain name pointer itunesu.org. 87.160.149.17.in-addr.arpa domain name pointer itunesuniversity.com. 87.160.149.17.in-addr.arpa domain name pointer imovie.us. 87.160.149.17.in-addr.arpa domain name pointer theapplestore.org. 87.160.149.17.in-addr.arpa domain name pointer macbookpro.org. 87.160.149.17.in-addr.arpa domain name pointer apple.me. 87.160.149.17.in-addr.arpa domain name pointer itools.info. 87.160.149.17.in-addr.arpa domain name pointer thinkdifferent.us. 87.160.149.17.in-addr.arpa domain name pointer thinkdifferent.info. 87.160.149.17.in-addr.arpa domain name pointer macintosh.us. 87.160.149.17.in-addr.arpa domain name pointer ipod.info. 87.160.149.17.in-addr.arpa domain name pointer applescript.us. 87.160.149.17.in-addr.arpa domain name pointer quicktime.info. 87.160.149.17.in-addr.arpa domain name pointer macosxlionairdrop.com. 87.160.149.17.in-addr.arpa domain name pointer itunesshow.com. 87.160.149.17.in-addr.arpa domain name pointer airtunes.net. 87.160.149.17.in-addr.arpa domain name pointer ipod.net. 87.160.149.17.in-addr.arpa domain name pointer macos.info. 87.160.149.17.in-addr.arpa domain name pointer imac.info. 87.160.149.17.in-addr.arpa domain name pointer imac.us. 87.160.149.17.in-addr.arpa domain name pointer appleiosv.com. 87.160.149.17.in-addr.arpa domain name pointer ipodnano.me. 

En nuestras testings, parecía que el CNA también desencadena requestes no solo con "CaptiveNetworkSupport", sino también con un identificador común de Usuario-Agente de WebKit. ¿Has tenido éxito en comprobar solo el encabezado User-Agent para CaptiveNetworkSupport ?

Esto es realmente un desastre.

Buscar agente de cautivo 'CaptiveNetworkSupport'. Probé esto en mi server web nginx y funciona perfectamente en todos los dispositivos iOS.

 if ($http_user_agent ~* (CaptiveNetworkSupport)) { return 200; } 

Añade esos en
/etc/lighttpd/lighttpd.conf

 $HTTP["host"] =~ "^(appleiphonecell.com|captive.apple.com|www.itools.info|www.ibook.info|www.aiport.us|www.thinkdifferent.us|www.apple.com)" { server.document-root = "/www/library/test/" index-file.names = ( "success.html" ) dir-listing.activate = "disable" server.error-handler-404 = "/success.html" #accesslog.filename = "/var/log/lighttpd/apple-access.log" #server.errorlog = "/var/log/lighttpd/apple-error.log" url.rewrite = ( "^/(.*/)" => "/success.html", ) } 

Probado en iOS6 y iOS7

Se ha publicado una solución en forma de una configuration para el server Lighttpd:

http://forum.daviddarts.com/read.php?9,8879

Esa solución se basa en la comprobación UA para CaptiveNetworkSupport, aunque iOS también intentará cargar las mismas URL aleatorias largas del website de Apple utilizando el WebKit UA.