Lo sapevate che ogni volta che attivate la connessione WiFi sul vostro iPhone, iPod touch od iPad viene effettuata una chiamata ai server Apple ?
Tranquilli non c’è niente di cui preoccuparsi, ma è interessante sapere cosa avviene e perché ciò avviene.
Ogni volta che un dispositivo con iOS si connette ad una rete WiFi viene effettuata una connessione HTTP all’indirizzo www.apple.com/library/test/success.html che immancabilmente ritorna un laconico “Success”.
Probabilmente vi sarà già capitato di connettervi ad una rete WiFi con autenticazione “captive portal”, ovvero con richiesta di inserimento di login e password in una apposita pagina web a cui si viene reindirizzati indipendentemente dalla URL digitata in Safari.
I dispositivi con iOS effettuano la chiamata HTTP proprio per sollecitare l’autenticazione captive anche quando non si sta utilizzando Safari, mostrando un’apposita finestra in cui inserire questi parametri e permettendo così ad altre applicazioni, ad esempio la mail, di accedere alle rete.
Molti a questo punto si chiederanno se questa comoda funzionalità abbia delle implicazioni dal punto di vista della sicurezza e della privacy.
Per rispondere a questa domanda occorre scendere un po’ più nel tecnico e mostrare quali sono i dati che vengono inviati nell’header della richiesta HTTP quando il dispositivo con iOS contatta i server Apple
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
Come vedete non viene inviato nessun dato sensibile e chi ha provveduto a sniffare il body della richiesta HTTP non ha trovato nessun’altra informazione, nemmeno a livello di cookies.
L’unica informazione che Apple potrebbe registrare è l’indirizzo IP ed ovviamente la data in cui è stata effettuata questa chiamata, ma, non essendo accompagnata da altri dati personali, l’informazione avrebbe solo una valenza statistica, ad esempio per mostrare la diffusione degli accessi alle reti WiFi nelle varie nazioni.
Interessante notare come lo User-Agent della chiamata riporti l’indicazione di una chiamata WISPr (Wireless Internet Service Provider roaming), un protocollo che permette l’autenticazione su più reti WiFi utilizzando un concetto di roaming simile a quello delle reti cellulari.
Una rete WiFi che supporta l’autenticazione WISPr, invece di rispondere con una pagina HTML per l’inserimento di login e password, può inviare al dispositivo un XML per la richiesta delle credenziali e ricevere in automatico da questo le informazioni di login tramite un XML di risposta, magari precedentemente memorizzate.
L’unica perplessità a questo punto riguarda la robustezza e l’affidabilità del codice preposto a trattare questi XML in iOS. Una rete WiFi “malevola” potrebbe potenzialmente inviare al dispositivo un XML con del codice javascript o di dimensioni tali da provocare un buffer overflow aprendo quindi una falla di sicurezza nel dispositivo, ma questa eventualità non è stata ancora dimostrata.
Curiosamente WISPr, come talvolta accade per gli acronimi tecnologici, è anche onomatopeico, WISPr si pronuncia infatti whisper, in italiano sussurro.
Sono certo che adesso ogni volta che attiverete il WiFi sul vostro dispositivo con iOS vi sembrerà di sentire … un sussurro.
[via erratasec]