Sommario:
- Aggiornamenti senza soluzione di continuità
- Configurazione della sicurezza di rete
- Indurimento del server multimediale
- Attestazione chiave
- Crittografia a livello di file
- Avvio diretto
- Accesso alla directory con ambito
Aggiornato il 13 agosto 2016, con informazioni sulle funzionalità e le API finali di Android Nougat.
Ci sono molte modifiche al codice in arrivo in Android N. Alcune di esse possiamo vedere - come le nuove notifiche - e altre non possiamo (ma sono ancora un grosso problema). Vediamo la stessa cosa ad ogni aggiornamento. Ci sono perfezionamenti e modifiche nell'interfaccia, ma sotto il cofano vengono apportate regolazioni e modifiche per rendere Android più efficiente e sicuro.
Google ha migliorato la sicurezza in Android Nougat in una manciata di aree diverse. Alcuni sono progettati per rafforzare Android stesso, mentre altri sono strumenti che gli sviluppatori possono utilizzare in modo che rimanga tale quando installiamo le app. Diamo un'occhiata ai cambiamenti stessi.
Aggiornamenti senza soluzione di continuità
Google esegue già "aggiornamenti senza interruzioni" su Chrome OS e funziona davvero bene. Le cose saranno molto simili in Android.
Gli aggiornamenti continui useranno due partizioni di sistema separate. Uno di questi è il sistema in esecuzione mentre usi il telefono ogni giorno. Quando è il momento di un aggiornamento, l'altra partizione di sistema viene modificata e aggiornata e al successivo riavvio si passa automaticamente. La prossima volta che viene eseguito un aggiornamento, l'altra partizione di sistema viene modificata e si torna indietro.
: Android 7.0: cosa sono gli aggiornamenti continui e come funzionano?
Ciò significa che le cose possono essere fatte mentre stai lavorando o giocando, e quando è finito tutto ciò che devi fare è riavviare normalmente. Saresti sorpreso (lo ero quando l'ho sentito) ma un gruppo piuttosto grande di persone non aggiorna il proprio telefono perché impiega un po 'di tempo. Potrebbero averlo fatto una volta, poi si sono seduti lì ad aspettare e hanno deciso di non farlo più. È facile chiudere la notifica. Ma cambiando la procedura, rendendo più facili gli aggiornamenti ed eliminando il terribile tempo di attesa mentre si vede la finestra di dialogo "aggiornamento delle app", più persone lo faranno.
Configurazione della sicurezza di rete
Network Security Configuration consente agli sviluppatori di app di creare e utilizzare un file di configurazione personalizzato per le impostazioni di sicurezza della rete invece di richiedere modifiche a livello di sistema. Il file di configurazione può essere modificato senza modificare l'app stessa e può essere impostato per utilizzare un'autorità di certificazione personalizzata anziché il dispositivo impostazione predefinita e può anche essere impostato per ignorare una o tutte le CA ritenute affidabili dal sistema. Questo è importante per la connessione a un host che ha una CA autofirmata (per cose come le app aziendali) o per un'app che dovrebbe fidarsi solo di una CA specifica.
Inoltre, è possibile impostare la configurazione in modo da escludere qualsiasi traffico di rete in chiaro e forzare la comunicazione crittografata mediante il protocollo HTTPS. Se sei un amministratore di rete o sviluppi app di rete, sai quanto sono importanti questi cambiamenti. Il resto di noi può essere felice di poter avere un traffico di rete più sicuro nelle app che sono più facili da sviluppare.
Indurimento del server multimediale
Ricorda Stagefright? Sebbene fosse stato sproporzionato da gran parte dei media, c'era un vero problema nascosto dietro l'iperbole. La riproduzione di un file multimediale e la sua capacità di obbligarti a riavviare o perdere tutto l'audio è un problema spiacevole e il fatto che (in teoria) possa essere usato per ottenere segretamente i permessi di root è ancora più spaventoso. Google lo prende molto sul serio e ogni mese vediamo patch per la libreria del media server per cercare di stare al passo con i bug e i problemi di sicurezza che ne derivano.
In Android N, il media server riceve una grande revisione. Google ha suddiviso il media server in componenti più piccoli che possono essere aggiornati al di fuori di un aggiornamento completo del sistema, proprio come hanno fatto con il componente WebView. Ciò significa che quando hanno una nuova patch puoi prendere l'aggiornamento da Google Play invece di attendere sei mesi o più per le persone che hanno fatto in modo che il tuo telefono decida di inviarti la patch.
Hanno anche modificato il modello di autorizzazione per il media server, non concedendogli più autorizzazioni di sistema complete. L'esecuzione con privilegi limitati rende ancora più difficile per chiunque entrare nel sistema se entrano nel media server. Questo è un grande cambiamento e renderà l'hacking di un telefono Android (il cattivo tipo di hacking) ancora più difficile di prima.
Attestazione chiave
Key Attestation consentirà agli sviluppatori di assicurarsi che le chiavi che potrebbero utilizzare nelle loro app siano valide e archiviate nel keystore con supporto hardware del telefono e non nel software. Quando allo strumento di attestazione viene assegnato un alias generato per una chiave (la chiave effettiva non deve mai essere condivisa) genera quindi una catena di certificati che può essere utilizzata per verificare la chiave. Gli sviluppatori possono verificare sia la chiave che lo stato di avvio verificato per assicurarsi che tutto sia valido.
I telefoni forniti con Android N e utilizzano i servizi di Google avranno un certificato emesso da Google come autorità principale (o primaria) mentre altri telefoni che sono stati aggiornati avranno bisogno di un certificato rilasciato dalla società che li ha creati.
Non tutti i telefoni che possono eseguire Android N dispongono di un ambiente hardware affidabile per l'archiviazione delle chiavi di crittografia e in questi casi viene invece utilizzata l'attestazione della chiave a livello di software. Lo stato di avvio verificato può ancora essere verificato per assicurarsi che il software di sistema non sia stato manomesso. Sì, questo significa che uno sviluppatore può verificare la presenza di root. Questa è una buona cosa a condizione che non venga applicata alcuna penalità indebita agli utenti che hanno effettuato il root del proprio telefono.
Crittografia a livello di file
In precedenza, Android utilizzava la crittografia a livello di blocco per crittografare l'intera partizione o il dispositivo di archiviazione contemporaneamente. Questo era un metodo di crittografia molto sicuro e tenere i token effettivi fuori dallo spazio di archiviazione e nell'hardware praticamente significava che l'unico modo era con la password o il PIN corretti. Con Android N, le cose sono state cambiate in crittografia a livello di file.
Direct Boot è progettato per funzionare con la crittografia a livello di file al fine di offrire sicurezza e convinzione.
Quando il tuo dispositivo Android crittografato si avvia (o si riavvia in tasca), il dispositivo viene crittografato e bloccato. Solo alcune applicazioni possono essere eseguite e questa si chiama modalità di avvio diretto. Significa che puoi ancora ricevere telefonate o far scattare una sveglia (o anche vedere alcune notifiche di messaggi), ma per fare qualcosa di più dovrai sbloccare e decrittografare il dispositivo. Una volta sbloccato, N utilizza la crittografia a livello di file per consentire a noi (l'utente) e alle applicazioni di avere un po 'più di controllo sul modo in cui i dati vengono bloccati.
Ci sono due vantaggi in gioco qui: FDE (crittografia full-disk a livello di blocco) rende i dispositivi di fascia bassa eseguiti piuttosto male. Google ha impiegato alcuni tentativi sul Nexus 6 per farlo correttamente e qualsiasi dispositivo con hardware di archiviazione flash di lettura e scrittura inferiore a 50 MB / s continua a fare fatica. Il secondo (e più importante) vantaggio è l'uso della crittografia a livello di file per la crittografia elettronica autenticata con A ssociated D ata (AEAD). AEAD significa che i dati sono più difficili da raggiungere per un utente o un'applicazione non autorizzati. Per le persone interessate ad AEAD, ecco una buona lettura del professore di UC Davis Phillip Rogaway (file.pdf).
Questo approccio a più livelli alla crittografia consentirà alle aziende che producono Androidi a prezzi molto convenienti di offrire la crittografia senza ridurre le prestazioni.
Avvio diretto
La crittografia a livello di file funzionerà anche meglio con la funzione di avvio diretto. Direct Boot offre una nuova modalità che gli sviluppatori possono sfruttare in modo che la loro app possa essere eseguita non appena il sistema è alimentato invece di attendere che un utente sblocchi il telefono o lo decifri.
Questo viene fatto in combinazione con una nuova area di archiviazione dei dispositivi e le app che utilizzano Direct Boot non avranno alcuna interazione con il normale file system protetto da credenziali e qualsiasi file o directory crittografati individualmente.
: Android 7.0: cos'è Direct Boot e come migliorerà la tua esperienza?
Accesso alla directory con ambito
L'accesso alla directory con ambito è un modo per un'app di ottenere l'autorizzazione ad accedere a una directory specifica sulla memoria esterna (la memoria esterna è una partizione esterna al sistema e include sia la memoria del telefono che una scheda SD o un altro dispositivo di archiviazione collegato) senza chiedere autorizzazione per l'intero volume o utilizzo di una finestra pop-up per richiedere le autorizzazioni per le cartelle.
L'accesso sicuro ai dati memorizzati è importante. Un'applicazione che necessita solo dell'accesso alla cartella di archiviazione Musica o Foto non dovrebbe vedere nient'altro e la scrittura di codice per utilizzare l'attuale Storage Access Framework per restringere le cose ha dimostrato di essere qualcosa che molti sviluppatori rifiutano di fare. la nuova API di accesso alla directory scoped renderà più semplice per gli sviluppatori la creazione di app sicure e protette per i tuoi dati.
Queste caratteristiche di sicurezza cruciali sono una parte importante di Android N. Mentre alcuni telefoni (in particolare quelli che non vengono forniti con Nougat) potrebbero non utilizzarli tutti, ognuno aiuta a proteggere i nostri dati se usati correttamente. Android è maturato e l'attenzione ai dettagli che Google sta mostrando con 7.0 potrebbe non essere così appariscente come nuovi emoji o una nuova combinazione di colori, ma è molto più importante.