Chi possiede un dispositivo mobile Apple sa che una delle politiche Apple prevede che per usare alcune funzionalità dai suoi dispositivi o applicativi occorre avere una connessione Internet attiva.
Questo impedisce l’uso offline di alcune funzioni, e questo ci può anche stare se queste sono legate strettamente alla Rete; non lo sono altrettanto se queste funzionalità (vedi l’accesso ad un servizio webDAV) possono essere rese disponibili da una rete locale wifi, isolata da internet anche e non solo per ragioni di sicurezza (come in alcune realtà imprenditoriali o istituzionali).
Ma l’Informatica è una scienza, e con metodo scientifico ho affrontato il problema. Prima di tutto ho creato un esperimento per verificare che tipo di verifica apps come Pages effettuavano.
Per forzare il mio iPhone a dialogare con una “rete” da me controllata ho pensato che, senza introdurre software “stravagante” nel mio iMac (cosa che detesto), se avessi detto che la rete wifi a cui era collegato aveva un proxy http, tutto il traffico sarebbe passato di lì. Ma cosa è un proxy se non un server http un po’ più complesso?
Allora se avessi attivato il mio apache (il servizio “Condivisione web” nella terminologia OSX) questo avrebbe dovuto rispondere alle richieste: allora mi sono premunito di creare una pagina php di analisi , re-dirigendo anche eventuali errori 404 verso quella pagina (vedi post precedenti sulla customizzazione degli errori in apache): il gioco era fatto.
Acceso airport e creata una rete, l’ho configurata manualmente per l’indirizzo, netmask e proxy (naturalmente mettendo il so stesso indirizzò). Provato localmente, Safari e altri software dell’iMac attivavano il mio script php, che diligentemente mi loggava i dati su un bel file.
Era turno dell’iPhone: attivato wifi, scelgo la rete, imposto credenziali, premo la freccia per le configurazioni e imposto un indirizzò di rete e maschera coerente con quanto fatto su iMac: imposto indirizzo e porta per il proxy (indicando indirizzo dell’iMac su rete wifi) e imposto auto login a off ( importante in quanto questo mi ha creato disturbi nella connessione alla rete creata).
Osservando per un po’ il traffico (la difficoltà è stata che una volta stabilito che la connessione esiste o no questo risultato rimane, e spesso occorre riavviare iOS) e ho trovato quale metodo usava una apps come Pages per controllare la disponibilità della connessione Internet; per fortuna semplicemente eseguendo una richiesta GET per il seguente URI: http://www.apple.com/library/test/success.html.
E qui sta il bello. Apache usato al posto di un proxy, senza alcuna configurazione da proxy, ad una richiesta del genere, se nella sua document root ha il documento richiesto lo fornisce. É dunque bastato creare il percorso /Library/WebServer/Documents/library/test/ e collocarci un file success.html ( tra l’altro banale e reperibile semplicemente su internet con analoga richiesta):
</p> Success Success
a questo punto il mio finto proxy su iMac ha reso disponibile la funzionalità webDAV di Pages: non è rimasto che configurare apache per esportare un percorso via webDAV ed ho ottenuto la mia cartella condivisa per Pages nella mia rete locale, senza Internet e per tutti i dispositivi mobile.
Prossimi approfondimenti:
1. Come a configura webDÀV su OSX/apache2
2. Come semplificare la configurazione della rete: che ne pensate di un DHCP?
Per chi volesse approfondimenti su analoghe implementazioni mediante sistemi Linux può seguire la storia su altro blog.
Prometto di rilasciare gli articoli su configurazione webdav e dhcp, però, purtroppo devo segnalare (per onestá) che il tentativo di imbrogliare Pages è fallito. Non comprendo ancora il motivo, ma ora, pur non essendo variata la versione di Pages, da qualche giorno non riconosce più la presenza di una connessione internet come sembrava far prima, anzi: non contatta più Apple al sito citato nel post, ma sembra non accedere a nulla. In qualche altro tentativo sembrava fare una HTTP CONNECT al sito https://configurations.apple.com. Ma in successivi tentativi nemmeno questo è accaduto.
Per il momento non ho risposte…
Spero prossimamente… Oppure in un contributo… Mica posso fare tutto io!!! 😉
Rettifico il mio sconfortato commento.
Il sistema per fregare Pages funziona su iOS 5.1.1 iPhone 4, ma non su iOS 5.1 iPad 3 !!!
Potrebbe essere che la specializzazione per device, o la release iOS crei differenti comportamenti del software.
Ho installato il mio fidato wireshark…
L’indagine continua….
Sempre più perplesso!