¿Cómo detectan iOS y OS X cuando una red Wi-Fi es un punto de acceso personal?

Cuando hay una red de punto de acceso personal disponible, muestra un icono de enlace de cadena en lugar del icono de candado habitual en la lista de redes disponibles en iOS y OS X.

Menú desplegable de selección de red Wi-Fi en OS X

Mi pregunta es, ¿cómo distingue OS X estas redes? ¿Se especifica en 802.11 cómo los puntos de acceso transmiten sus SSID de manera diferente?

Te di un + solo porque me hiciste reir con el Arroz Explotado :)
Suena como una oportunidad para escapar de wireshark/sniffer promiscuo.
Eliminé mi respuesta porque aparentemente un punto de acceso personal de iPhone no es una red ad-hoc . Creo que hay otros datos que identifican la red como un punto de acceso personal, pero aún no tengo los detalles para una respuesta. (Estoy bastante seguro de que no se basa en la dirección MAC como sugirió @emotality)
Apuesto a que hay una extensión Beacon Frame IEEE802.11 específica de Apple que anuncia la conexión, como lo hacen otros (por ejemplo, CCX de Cisco). Desafortunadamente no tengo ningún dispositivo para probar.

Respuestas (4)

Creo que esta pregunta debería publicarse en el sitio de intercambio de pila de ingeniería inversa . Estás pidiendo los detalles de implementación sobre una caja negra...

De hecho, investigué un poco /System/Library/CoreServices/Menu Extras/AirPort.menuy/System/Library/Frameworks/CoreWLAN.framework/

Hay un método privado de CWNetworkcalled isPersonalHotspot, tipo de:

char -[CWNetwork(Private) isPersonalHotspot](void * self, void * _cmd) {
    eax = [*(self + 0x4) objectForKey:@"IOS_IE"];
    eax = LOBYTE(eax != 0x0 ? 0x1 : 0x0) & 0xff;
    return eax;
}

Parece que solo está comprobando algunos identificadores. Creo SFRemoteHotspotDevicey WiFiXPCEventProtocolpuede tener más detalles de bajo nivel, pero no lo comprobé.

Por cierto, también hay una propiedad para identificar si es una red CarPlay

@interface CWNetwork : NSObject <NSCopying, NSSecureCoding>
... //redacted
@property(readonly) BOOL isPersonalHotspot;
@property(readonly) BOOL isCarPlayNetwork;
... //redacted

Apple controla el hardware, los controladores y el sistema operativo, supongo que pueden agregar fácilmente metadatos adicionales al transmitir la señal WiFi para que su Mac sepa si agrega el ícono de la cadena o no.

Si alguien descubre exactamente cómo Apple hizo el truco, por favor hágamelo saber. :)

Apple habla con Apple, conocen sus propios productos y saben cuándo es un dispositivo Apple o no. Apple puede tener su propio rango de direcciones MAC o simplemente ver toda la información que hay sobre este dispositivo, es decir:

Si vas a Acerca de esta Mac, Informe del sistema, Red, Wifi. Verá los siguientes detalles sobre esta red/dispositivo.

Detalles Wi-Fi

Compruebe en las interfaces: tipo de tarjeta, dirección MAC o configuración regional. Estos pueden ser posiblemente todos los "Identificadores de Apple". Al crear un punto de acceso con su iPhone, Apple decidió compartir la información con su Mac para mostrar que es un dispositivo Apple.

Debo decir que, al principio, realmente dudaba que esto pudiera ser una posibilidad, ya que ninguna de esa información, excepto MAC, se comparte en 802.11, pero después de leerla, estoy empezando a pensar que su teoría podría tener algún mérito. Aparentemente, la primera 3 octetos de una dirección MAC indican el fabricante del dispositivo, y Apple usa una parte separada del fabricante de la dirección MAC en todos sus iDevices.
Ahora bien, si de alguna manera pudiera falsificar el BSSID de un punto de acceso para que aparezca como un iDevice, posiblemente podría confirmar o refutar esta teoría... ¿Alguien sabe cómo se podría lograr esto? (¿O si se puede lograr en absoluto?)
Lol, no, no creo que sea una buena idea hacer preguntas sobre piratería aquí: P, pero puede marcar la respuesta como correcta si respondió a su pregunta. :D
Creo que este no es el caso. Incluso los puntos de acceso creados con dispositivos Android muestran el icono de "cadena".
¿Dónde viste que sucediera esto, Suraj Thapar?

El ícono de la cadena muestra que la conexión a Internet se está conectando a través de otro dispositivo. No es específicamente para puntos de acceso personales.

Aparte del hecho de que las conexiones Wi-Fi casi siempre están unidas a otro dispositivo de red, esto no explica realmente por qué los puntos de acceso creados en dispositivos Android no aparecen con un icono de cadena.
En macOS Sierra, los puntos de acceso creados con dispositivos Android muestran el icono de cadena.

Además, los hotpots en iOS también se identifican como 172.20.10.x.

No recibirá tráfico DHCP a menos que se haya asociado con el AP.