25/03/2008 Abstract: In questo articolo viene presentato il paradigma del Security-By-Contract (SxC), un approccio per migliorare la sicurezza nei dispositivi mobili sviluppato nel contesto del progetto europeo S3MS.
L'intuizione di base è che un'applicazione software viene scaricata insieme ad un "contratto" che descrive tutte le interazioni rilevanti, in termini di sicurezza, che l'applicazione avrà col dispositivo mobile sul quale verrà eseguita.
Il contratto dovrà essere quindi accettato dal dispositivo in funzione di una policy di sicurezza definita dall'utente o dall'operatore della rete. Tale paradigma non sostituirà gli attuali sistemi di sicurezza ma li migliorerà, fornendo un meccanismo di sicurezza flessibile, semplice e scalabile.
Autori:
Nicola Dragoni, Fabio Massacci Dipartimento di Ingegneria e Scienza dell'Informazione - Università di Trento.
1. Il Problema della Sicurezza nei Dispositivi Mobili
Negli ultimi anni i dispositivi mobili sono diventati ormai oggetti di uso comune. Si pensi ad esempio ai telefoni cellulari, che hanno raggiunto una potenza di calcolo in grado di eseguire applicazioni software sempre più complesse (giochi, strumenti per l'ufficio quali agenda, calendario, email, ecc.).
Non a caso vengono ormai lentamente sostituiti dagli "smart phones" (telefoni intelligenti), anche chiamati Personal Digital Assistant (PDA), proprio perchè in grado di svolgere funzioni eseguite in passato solo con un PC.
Questa crescita di mercato dei dispositivi mobili non è stata però supportata da una crescita comparabile nel software disponibile: la potenza di calcolo e di comunicazione è enorme comparata ad un vecchio PC degli anni 80, eppure non abbiamo che una frazione infinitesimale del software che avevamo sui nostri vecchi PC.
Perchè per i dispositivi mobili è disponibile così poco software?
Una delle ragioni risiede nel modello di sicurezza adottato dai dispositivi. Per chiarire questo punto consideriamo a titolo esemplificativo l'approccio usato dalla piattaforma per dispositivi mobili JAVA MIDP 2.0 (Mobile Information Device Profile). Il modello di sicurezza della piattaforma è basato su un "rapporto di fiducia": un'applicazione software viene eseguita sul dispositivo solo se la sua origine è in qualche modo certificata e ci si fida di tale certificazione. In estrema sintesi, l'applicazione è accettata solo se è provvista di una firma digitale conosciuta (relativa a chi ha sviluppato l'applicazione) e della quale ci si fida. Il livello di fiducia determina quindi i privilegi che l'applicazione avrà sul dispositivo, segregandola in un appropriato "dominio di fiducia".
Tale modello ha due problematiche principali. La prima è che una firma digitale può essere solamente accettata o rifiutata, ovvero l'interoperabilità in un dominio è totale o assente. E' possibile ad esempio proibire ad un'applicazione di connettersi ad Internet, ma non è possibile proibire che si connetta utilizzando uno specifico protocollo o solo ad un determinato dominio. Se un utente ha un servizio di pagamento disponibile sul proprio cellulare e scarica, ad esempio, un'applicazione per pagare il parcheggio, l'utente non potrà proibire a tale applicazione di pagare parcheggi per l'intera città .
In sintesi, l'utente non può configurare le proprie preferenze di sicurezza e privacy per le applicazioni software che utilizza sul proprio dispositivo mobile.
La seconda problematica che caratterizza l'attuale modello di sicurezza utilizzato dai dispositivi mobili consiste nella mancanza di una "semantica" della firma digitale. Questo è un problema sia per gli sviluppatori delle applicazioni che per gli utenti finali.
Consideriamo il punto di vista degli utenti finali. Un utente è costretto ad accettare il software che scarica senza sapere in realtà quali garanzie in termini di sicurezza quell'applicazione potrà fornire.
Ad esempio, un utente potrebbe fidarsi di SuperGame Inc ma potrebbe non voler scaricare ed eseguire giochi che non si stoppano quando la batteria del suo dispositivo è ad un livello inferiore al 20%. Tale scelta al momento non è possible.
Prendiamo ora in esame il punto di vista dei produttori di software mobile. Uno sviluppatore non ha alcun modo di dichiarare quali azioni rilevanti per la sicurezza il suo software rispetterà , in modo tale che poi tali azioni siano controllabili automaticamente dal dispositivo dell'utente.
Firmando il software dichiara solamente che il suo codice è sicuro, ma senza poter fornire in realtà alcuna garanzia concreta.
La principale conseguenza è che sviluppare un'applicazione per il mercato dei dispositivi mobili è un'operazione complessa e onerosa visto che gli sviluppatori devono convincere gli operatori che il loro software è sicuro e non farà niente di dannoso. La necessità di un "rapporto di fiducia" con l'operatore per poter sviluppare un servizio è quindi un grosso ostacolo per gli sviluppatori di software mobile. Infine, tale modello aumenta la responsabilità degli operatori per il software che sarà eseguito su dispositivi, in quanto unici responsabili dell'accettazione (in termini di fiducia) di tale codice.
Per informazioni:
Nicola Dragoni nicola.dragoni [AT] disi.unitn.it
Fabio Massacci fabio.massacci [AT] disi.unitn.it
2. L'approccio Security-By-Contract (SxC) 3. Monitorare un'Applicazione con la Tecnica di Inline Monitoring