Come si differenzia il modello di sicurezza di Android da UNIX?

5

Nel modello di sicurezza di UNIX, si accede come utente, quindi ogni processo avviato può accedere a tutto ciò che appartiene al proprio account utente, ovvero, il trust è basato sull'account utente, non sul particolare eseguibile.

Ma sul mio telefono Android, sembra che le cose siano leggermente diverse: ogni app sembra funzionare con il proprio account utente. È corretto? Oppure le app create dallo stesso autore vengono eseguite con lo stesso account utente? La chiave privata di firma dell'autore dà accesso all'account utente?

Inoltre, ho letto che il kernel di Linux è stato modificato per adattarsi al modello di sicurezza di Android:

In order to get a working Android system, you need the new lock type they have created, as well as hooks in the core system for their security model. In order to write a driver for hardware to work on Android, you need to properly integrate into this new lock, as well as sometimes the bizarre security model.

Sono particolarmente interessato a cosa sono queste modifiche al kernel e perché sono bizzarri?

    
posta sashoalm 11.11.2014 - 14:34
fonte

1 risposta

5

Android si basa essenzialmente sul tema di sicurezza del kernel Linux per il suo modello di sicurezza:

  1. Autorizzazioni basate sull'utente
  2. Isolamento processo
  3. Meccanismi per la comunicazione tra processi
  4. kernel modulare che può essere personalizzato (moduli non protetti rimossi / modificati)

La bizzarria sembra una parola strong, ma Android ha decisamente esagerato combinando l'isolamento del processo con le autorizzazioni basate sull'utente. Hai assolutamente ragione, per ogni app viene creato un utente. È indipendente dall'autore del programma. Se ci sono più app dello stesso autore, ciascuna app ottiene un utente creato per questo. I dati privati per ogni app sono protetti dalle autorizzazioni dell'utente, così come lo spazio del processo. In questo modo solo l'app può accedere ai suoi dati privati e lo spazio del processo è accessibile solo dall'app.

Le app possono comunicare tra loro tramite IPC e l'aggiunta principale al kernel in questo senso è Classe Binder . Questa aggiunta consente a un servizio in background di interagire con le app e i dati di corriere tra i processi. Quando viene creato in questo modo, non vive a tempo indeterminato sullo sfondo, ma viene creato con uno scopo specifico e viene ucciso una volta completato.

Per informazioni più dettagliate ti suggerisco di leggere Panoramica della sicurezza Android .

    
risposta data 11.11.2014 - 15:03
fonte

Leggi altre domande sui tag