Logo it.androidermagazine.com
Logo it.androidermagazine.com

Autorizzazioni per app Android: come funziona Google in modo corretto ...

Sommario:

Anonim

Ultimamente ci sono state molte notizie su un intervallo di sicurezza o di giudizio - entrambi, davvero - su Apple che consente alle applicazioni iOS di prendere in prestito i tuoi dati di contatto e inviarli a parti sconosciute senza il tuo consenso. Apple ha affrontato il problema con i membri del Congresso degli Stati Uniti e prenderà provvedimenti per mantenere un controllo più stretto in un futuro aggiornamento di iOS. Questa è una buona notizia, e siamo felici di vederlo accadere.

Ma per quanto riguarda Android? Durante tutto questo focus sulle app che fanno cose senza l'autorizzazione esplicita dell'utente, vedi persone che si riferiscono al modello di autorizzazioni Android. Stiamo andando a rompere tutto per te. Non è perfetto, ma funziona abbastanza bene - ed è sicuramente meglio di nessun sistema di autorizzazioni.

Ti guidiamo attraverso le autorizzazioni su Android e come devi essere sicuro di separarti.

In base alla progettazione, nessuna applicazione Android è autorizzata a eseguire alcuna operazione che "influirebbe negativamente su altre applicazioni, sul sistema operativo o sull'utente". Affinché un'app abbia accesso a dati come i dati di contatto privati, i dati di un'altra applicazione, l'accesso alla rete o anche qualcosa di banale come scrivere i propri dati nella memoria del dispositivo, l'app deve dichiarare che disporrà delle autorizzazioni per farlo, e quindi è necessario accettare tale autorizzazione prima di poter installare l'app. Quando installi un'app, ti viene presentato un elenco di autorizzazioni dichiarate dall'applicazione.

E notiamo che diciamo che le applicazioni "dichiarano" le autorizzazioni e non necessariamente le "richiedono". Semantica, supponiamo, ma non esiste una scatola che dice "Ehi, Jerry! Sono un'app e mi piacerebbe che tu mi dessi un'occhiata alle tue informazioni di contatto. Va bene?" Invece, le app Android sono più dirette, dicendo "Yo, Jerry. Sono un'app. Ecco un elenco di ciò che posso fare, solo che lo sappia. Prendilo o lascialo."

Le app Android dichiarano a quali autorizzazioni hanno accesso e quindi in quali sandbox possono giocare. E puoi scegliere di accettarle e installare l'app oppure no. Ha senso?

Autorizzazioni: anticipate e personali in Android Market

Ecco come appare se installi, ad esempio, Path. Si ottiene l'elenco macro delle autorizzazioni dichiarate da Path. Toccane uno e spiega tale autorizzazione in modo leggermente più dettagliato.

Ecco come appare se installi un'applicazione da Android Market. Dovrai scorrere l'elenco per vederli tutti. Un po 'più in basso è quello che ha ottenuto Path (e altri) in tutti i tipi di problemi su iOS. Nel suo modulo Android, puoi vedere chiaramente che Path dichiara l'autorizzazione per "I tuoi dati personali: leggi i dati di contatto". Tocca quell'autorizzazione e otterrai maggiori dettagli:

"Consente a un'applicazione di leggere tutti i dati di contatto (indirizzo) memorizzati sul telefono. Le applicazioni dannose possono utilizzarlo per inviare i dati ad altre persone."

Quindi Path ti ha detto che ha accesso ai tuoi dati di contatto. Non ti dice necessariamente che cosa ne farà (se non lo avessimo appena sollevato, vorresti davvero saperlo?), Ma ti dice che può leggerlo.

App al di fuori di Android Market

Ma cosa succede se esegui il sideload di un'app? O usi l'Appstore di Amazon? Le applicazioni devono comunque dichiarare quali autorizzazioni utilizzano e quando si installa l'app viene visualizzato l'elenco delle autorizzazioni. (Ricorda che Amazon Appstore esegue il sideload delle app, quindi quello che vedi è esattamente lo stesso di se hai installato un'app da un'e-mail o da un download.)

Ecco come sarebbe il sideload di Gmail. L'unica vera differenza tra il sideload e l'installazione da Android Market, per quanto riguarda le autorizzazioni, è che quando si esegue il sideload, non si ottengono le descrizioni delle autorizzazioni più dettagliate.

Perché tutto questo? Le applicazioni Android sono "sandbox": vengono riprodotte nel proprio spazio e hanno i propri file di dati all'interno di quel sandbox. Possono condividere il gioco nella sandbox di qualcun altro solo dopo aver chiesto esplicitamente l'autorizzazione, e ciò avviene tramite le schermate che vedi sopra. Quando si accettano tali autorizzazioni e si installa l'app, si concede a tale app l'autorizzazione per giocare nei sandbox in cui l'app dice di voler giocare.

Sul lato degli sviluppatori … e su come i consumatori devono fare la loro parte

Dietro le quinte, gli sviluppatori di app dichiarano queste autorizzazioni nel file AndroidManifest.xml, che è una parte obbligatoria del codice sorgente per un'app Android. Queste dichiarazioni sono statiche e ognuna di esse viene presentata all'utente come abbiamo visto sopra. Android non ha modo di concedere autorizzazioni in modo dinamico in fase di esecuzione, perché secondo gli sviluppatori del sistema operativo Android "complica l'esperienza dell'utente a scapito della sicurezza". Costringere un'app a dirti cosa vuole fare, in anticipo e non poter mai cambiare - questo è il massimo modello di sicurezza.

Il rovescio della medaglia? È anche il più facile da ignorare per gli utenti.

Sappiamo tutto di quello che è successo con Path su iOS. Come molte altre app iOS, ha utilizzato il contatto senza autorizzazione. Non per scopi nefasti, ma comunque, senza alcun permesso anticipato e senza chiedere in seguito. Path per Android ha inviato tutti i tipi di dati ai suoi server, proprio come su iOS. Ma come abbiamo mostrato in questo post, in Android, Path deve prima dichiarare l'autorizzazione. O, più precisamente, dichiara il permesso e tu lo accetti o lo rifiuti.

Il problema è quando installi un'app, molto probabilmente passerai davanti alla sezione delle autorizzazioni. Non dovresti davvero, ma lo facciamo tutti. Il fatto che le autorizzazioni non siano scritte in un linguaggio semplice fa parte del problema. Ma anche se lo fossero, la maggior parte di noi farebbe comunque clic su oltre. È così, su ogni piattaforma. D'altra parte, ci sono quelli che impazziscono per i permessi perché non li capiscono. Ancora una volta, un linguaggio più user-friendly sarebbe d'aiuto qui.

Una delle alternative a questa è fare in modo che l'applicazione richieda le autorizzazioni in fase di esecuzione, quando vuole fare qualcosa che non può fare normalmente. Abbiamo già letto che il team di Android ritiene che ciò sia scomodo e insicuro, quindi non è probabile che accada.

Un'altra alternativa è consentire autorizzazioni selezionate, proprio come fa RIM con BlackBerry. Ti ritrovi con applicazioni che funzionano solo a metà perché hai negato le autorizzazioni, proprio come BlackBerry. Non esiste un vero metodo infallibile, a parte leggere tutto quando installi quell'app e provando a capire cosa sta chiedendo di fare e perché lo sta chiedendo.

Ecco dove entriamo tutti. Alcuni di noi comprendono i permessi delle applicazioni più di altri e quando un'app fa qualcosa che non dovrebbe fare, senti le proteste. Leggi le autorizzazioni. Leggi i commenti sul mercato. Leggi Android Central. Quando qualcosa va storto, ne sentirai parlare.

E un'ultima cosa …

Una nota speciale deve andare qui sulle vulnerabilità della sicurezza. Ogni programma per computer - e questo significa anche ogni sistema operativo mobile - ne è pieno zeppo. Quando viene rilevata una vulnerabilità che consente a un'applicazione di ignorare il modello di sicurezza, Google lo correggerà rapidamente. Questo succede e succederà sempre. La rapidità con cui questo aggiornamento viene implementato dipende dalle persone che creano il telefono. Meritano il merito quando lo fanno nel modo giusto e il disprezzo quando impiegano troppo tempo e lo fanno nel modo sbagliato. Questo non è qualcosa che scomparirà presto, e siamo lì con te per chiamare un OEM che non mantiene le cose al sicuro come dovrebbero essere.

Se stai cercando di approfondire ancora di più le autorizzazioni Android, dai un'occhiata alla pagina degli sviluppatori di Google su di esse.