Android e la sicurezza… mobile
La sicurezza è oggi un aspetto importante anche per i sistemi operativi mobili.
Uno dei sistemi operativi più diffusi è Android, giunto alla versione 4.
A differenza di quanto è avvenuto per i computer, gli sviluppatori di Android hanno avuto la possibilità di lavorare in un mondo in cui rischi e soluzioni per la protezione dei dispositivi erano già noti.
Proprio per questo, e per alcune peculiarità che si descrivono di seguito, Android si può considerare uno dei primi sistemi operativi nati con un orientamento alla sicurezza.
Architettura del sistema
Android è composto da tre blocchi principali: dispositivo hardware, che fornisce funzionalità specifiche con cui ci si può interfacciare; sistema operativo, che media l’accesso alle risorse da parte delle applicazioni; ambiente applicativo, composto da applicazioni native e macchina virtuale Dalvik su cui girano le applicazioni personalizzate.
Kernel
Android è una personalizzazione del kernel Linux, un progetto Open Source.
Gli sviluppatori del sistema hanno selezionato attentamente i moduli del kernel, ne hanno creati di nuovi ed eliminati altri, in modo da ottenere un sistema il più possibile piccolo, performante, funzionale e sicuro per l’utente o sviluppatore.
Inoltre, Android eredita dal kernel Linux un modello di permessi basato su utenti, in cui ad ogni processo corrisponde in generale un diverso utente del sistema, in modo che le aree di lavoro dei diversi processi siano il più possibile isolate.
A partire dalla versione 3.0 (destinata ai soli tablet) tutti i dati dell’utente sono cifrati con una chiave derivata dalla password dell’utente.
La modifica del bootloader di Android, quindi la possibilità di inserire un secondo sistema operativo a fianco di esso, comporta la cancellazione di tutti i dati dell’utente, in modo che il secondo sistema non li possa leggere.
Applicazioni
La macchina virtuale ospita le applicazioni. Diversamente dalla Java Virtual Machine, Dalvik oltre a creare un ambiente protetto (Sandbox) risiede direttamente all’interno del sistema, rendendo molto più veloce la computazione. Per contro, l’accesso alle risorse della macchina virtuale deve essere protetto tanto quanto l’accesso al sistema operativo stesso.
Ogni applicazione, come detto, ha un proprio utente, ma ha anche un proprio manifesto, un file XML in cui sono indicate tutte le risorse protette a cui l’applicazione deve accedere.
All’atto dell’installazione, sono specificati all’utente finale tutti i permessi di cui l’applicazione ha bisogno per lavorare; i permessi sono monolitici, quindi accettati tutti, in blocco, o nessuno. Per accedere a risorse protette, il sistema fornisce apposite API (interfacce); l’accesso diretto ai dati della SIM non è contemplato tra le API del sistema, ma può essere definito solo dall’operatore mobile.
I permessi sono validi dall’installazione alla disinstallazione.
Aggiornamenti
Esistono due modi per aggiornare il sistema operativo: il costruttore del dispositivo e/o l’operatore mobile possono scegliere di pubblicare per un certo periodo gli aggiornamenti oppure forzarli su tutti i dispositivi nello stesso momento (Over-The-Air); oppure, gli aggiornamenti sono scaricati singolarmente dall’utente (side-loaded).La sicurezza è oggi un aspetto importante anche per i sistemi operativi mobili.
Uno dei sistemi operativi più diffusi è Android, giunto alla versione 4.
A differenza di quanto è avvenuto per i computer, gli sviluppatori di Android hanno avuto la possibilità di lavorare in un mondo in cui rischi e soluzioni per la protezione dei dispositivi erano già noti.
Proprio per questo, e per alcune peculiarità che si descrivono di seguito, Android si può considerare uno dei primi sistemi operativi nati con un orientamento alla sicurezza.
Architettura del sistema
Android è composto da tre blocchi principali: dispositivo hardware, che fornisce funzionalità specifiche con cui ci si può interfacciare; sistema operativo, che media l’accesso alle risorse da parte delle applicazioni; ambiente applicativo, composto da applicazioni native e macchina virtuale Dalvik su cui girano le applicazioni personalizzate.
Kernel
Android è una personalizzazione del kernel Linux, un progetto Open Source.
Gli sviluppatori del sistema hanno selezionato attentamente i moduli del kernel, ne hanno creati di nuovi ed eliminati altri, in modo da ottenere un sistema il più possibile piccolo, performante, funzionale e sicuro per l’utente o sviluppatore.
Inoltre, Android eredita dal kernel Linux un modello di permessi basato su utenti, in cui ad ogni processo corrisponde in generale un diverso utente del sistema, in modo che le aree di lavoro dei diversi processi siano il più possibile isolate.
A partire dalla versione 3.0 (destinata ai soli tablet) tutti i dati dell’utente sono cifrati con una chiave derivata dalla password dell’utente.
La modifica del bootloader di Android, quindi la possibilità di inserire un secondo sistema operativo a fianco di esso, comporta la cancellazione di tutti i dati dell’utente, in modo che il secondo sistema non li possa leggere.
Applicazioni
La macchina virtuale ospita le applicazioni. Diversamente dalla Java Virtual Machine, Dalvik oltre a creare un ambiente protetto (Sandbox) risiede direttamente all’interno del sistema, rendendo molto più veloce la computazione. Per contro, l’accesso alle risorse della macchina virtuale deve essere protetto tanto quanto l’accesso al sistema operativo stesso.
Ogni applicazione, come detto, ha un proprio utente, ma ha anche un proprio manifesto, un file XML in cui sono indicate tutte le risorse protette a cui l’applicazione deve accedere.
All’atto dell’installazione, sono specificati all’utente finale tutti i permessi di cui l’applicazione ha bisogno per lavorare; i permessi sono monolitici, quindi accettati tutti, in blocco, o nessuno. Per accedere a risorse protette, il sistema fornisce apposite API (interfacce); l’accesso diretto ai dati della SIM non è contemplato tra le API del sistema, ma può essere definito solo dall’operatore mobile.
I permessi sono validi dall’installazione alla disinstallazione.
Aggiornamenti
Esistono due modi per aggiornare il sistema operativo: il costruttore del dispositivo e/o l’operatore mobile possono scegliere di pubblicare per un certo periodo gli aggiornamenti oppure forzarli su tutti i dispositivi nello stesso momento (Over-The-Air); oppure, gli aggiornamenti sono scaricati singolarmente dall’utente (side-loaded).
salve, bel blog
avete una mail dove potervi scrivere? grazie.
Contatta pure l’Associazione Forseti tramite la pagina dei contatti (http://www.forseti.it/contatti.php).