Logo pt.androidermagazine.com
Logo pt.androidermagazine.com

Permissões de aplicativos para Android - como o Google acerta ...

Índice:

Anonim

Ultimamente, tem havido muitas notícias sobre um lapso na segurança ou no julgamento - ambos, na verdade - na Apple, que permite que os aplicativos iOS emprestem seus dados de contato e os enviem para partes desconhecidas sem o seu consentimento. A Apple dirigiu a questão aos membros do Congresso dos EUA e tomará medidas para manter um controle mais rígido em uma futura atualização do iOS. Boas notícias, e estamos felizes em vê-lo acontecer.

Mas e o Android? Durante todo esse foco em aplicativos que fazem coisas sem permissão explícita do usuário, você vê pessoas se referindo ao modelo de permissões do Android. Nós vamos dividir tudo para você. Não é perfeito, mas funciona muito bem - e certamente é melhor do que nenhum sistema de permissão.

Vamos guiar você pelas permissões no Android e como você precisa se certificar de fazer parte.

Por design, nenhum aplicativo Android tem permissão para executar qualquer operação que "impactaria adversamente outros aplicativos, o sistema operacional ou o usuário". Para que um aplicativo tenha acesso a dados de contatos particulares, dados de outro aplicativo, acesso à rede ou até algo tão banal quanto gravar seus próprios dados no armazenamento do dispositivo, o aplicativo deve declarar que terá permissões para fazê-lo e, em seguida, você deve aceitar essa permissão antes de instalar o aplicativo. Ao instalar um aplicativo, você recebe uma lista de permissões que o aplicativo está declarando.

E note que dizemos que os aplicativos estão "declarando" permissões e não necessariamente "solicitando" elas. Semântica, supomos, mas não existe uma caixa que diga "Ei, Jerry! Sou um aplicativo e adoraria que você me desse uma olhada nas suas informações de contato. Tudo bem?" Em vez disso, os aplicativos Android são mais diretos, dizendo "Ei, Jerry. Eu sou um aplicativo. Aqui está uma lista do que eu posso fazer, exatamente como você sabe. Pegue ou largue".

Os aplicativos Android declaram a quais permissões eles têm acesso e, portanto, em quais caixas de proteção eles podem jogar. E você pode aceitá-las e instalar o aplicativo ou não. Faz sentido?

Permissões - iniciais e pessoais no Android Market

Veja como fica se você instalar, digamos, Path. Você obtém a lista de permissões de macros que o Path está declarando. Toque em um e ele explica essa permissão com mais detalhes.

É assim que parece se você instalar qualquer aplicativo do Android Market. Você precisará rolar a lista para ver todos eles. Um pouco abaixo, é o que obteve o Path (e outros) em todos os tipos de problemas no iOS. Em sua forma Android, você pode ver claramente que o Path declara a permissão para "Seus dados pessoais - leia os dados de contato". Toque nessa permissão para obter mais detalhes:

"Permite que o aplicativo leia todos os dados de contato (endereço) armazenados no telefone. Aplicativos maliciosos podem usar isso para enviar seus dados a outras pessoas."

Então, a Path disse que ele tem acesso aos seus dados de contato. Não indica necessariamente o que vai fazer com isso (se não tivéssemos acabado de mencioná-lo, você realmente gostaria de saber?), Mas diz que pode lê-lo.

Aplicativos fora do Android Market

Mas e se você carregar um aplicativo lateralmente? Ou use a Amazon Appstore? Os aplicativos ainda devem declarar quais permissões eles usam e você vê essa lista de permissões ao instalar o aplicativo. (Lembre-se de que a Amazon Appstore carrega aplicativos lateralmente, o que você vê é exatamente o mesmo que se você instalasse um aplicativo a partir de um email ou download.)

Veja como seria o carregamento lateral do Gmail. A única diferença real entre o carregamento lateral e a instalação a partir do Android Market, na medida em que as permissões são, é que, quando você faz o carregamento lateral, não recebe as descrições mais detalhadas das permissões.

Por que tudo isso? Os aplicativos Android têm "área restrita" - eles são executados em seu próprio espaço e têm seus próprios arquivos de dados nessa área restrita. Eles só podem compartilhar o jogo na caixa de areia de outra pessoa depois de pedir explicitamente permissão, e isso é feito pelas telas que você vê acima. Ao aceitar essas permissões e instalar o aplicativo, você está dando permissão para que ele seja reproduzido nas caixas de areia em que o aplicativo diz que deseja reproduzir.

No lado do desenvolvedor … e como os consumidores devem fazer sua parte

Nos bastidores, os desenvolvedores de aplicativos declaram essas permissões no arquivo AndroidManifest.xml, que é uma parte necessária do código-fonte para um aplicativo Android. Essas declarações são estáticas e todas são apresentadas ao usuário como vimos acima. O Android não tem como conceder permissões dinamicamente em tempo de execução, porque, de acordo com os desenvolvedores do sistema operacional Android ", isso complica a experiência do usuário em detrimento da segurança". Forçar um aplicativo a dizer o que ele quer fazer, antecipadamente e nunca poder mudar - esse é o modelo de segurança máximo.

O outro lado? Também é o mais fácil para os usuários ignorarem.

Sabemos tudo sobre o que aconteceu com o Path no iOS. Como muitos outros aplicativos iOS, ele usava o contato sem permissão. Não para fins nefastos, mas, no entanto, sem nenhuma permissão inicial e sem pedir mais tarde. O Path for Android enviou todos os tipos de dados para seus servidores, exatamente como no iOS. Mas, como mostramos neste post, no Android, o Path precisa declarar a permissão primeiro. Ou, mais precisamente, ele declara permissão e você a aceita ou rejeita.

O problema é que quando você instala um aplicativo, é provável que você passe rapidamente pela seção de permissões. Você realmente não deveria, mas todos fazemos isso. O fato de as permissões não serem escritas em linguagem simples faz parte do problema. Mas, mesmo que fossem, a maioria de nós passaria o mouse de qualquer maneira. É assim que é, em todas as plataformas. Por outro lado, existem aqueles que surtam com as permissões porque não as entendem. Mais uma vez, uma linguagem mais amigável ajudaria aqui.

Uma das alternativas é fazer com que o aplicativo solicite permissões em tempo de execução, quando deseja fazer algo que não pode fazer normalmente. Já lemos que a equipe do Android acha que isso é inconveniente e inseguro, por isso não é provável que isso aconteça.

Outra alternativa é permitir permissões selecionadas, assim como a RIM faz com o BlackBerry. Você acaba com aplicativos que funcionam apenas pela metade porque você negou permissões, assim como o BlackBerry. Não existe um método realmente seguro, além de ler tudo quando você instala o aplicativo e tentar entender o que ele está pedindo e por que está pedindo.

É aí que todos entramos. Alguns de nós entendem as permissões de aplicativos mais do que outros, e quando um aplicativo faz algo que não deveria estar fazendo, você ouve o clamor. Leia as permissões. Leia os comentários do mercado. Leia o Android Central. Quando algo der errado, você ouvirá sobre isso.

E uma última coisa …

Uma observação especial precisa aparecer aqui sobre vulnerabilidades de segurança. Todo programa de computador - e isso significa que todo sistema operacional móvel também está repleto deles. Quando é encontrada uma vulnerabilidade que permite que um aplicativo desvie do modelo de segurança, o Google o corrige rapidamente. Isso acontece, e sempre vai acontecer. A rapidez com que essa atualização é lançada para você depende das pessoas que fabricam seu telefone. Eles merecem o crédito quando fazem do jeito certo e o desprezo quando demoram demais e fazem errado. Isso não é algo que desaparecerá tão cedo, e estamos ao seu lado para chamar um OEM que não mantém as coisas tão seguras quanto deveriam.

Se você deseja se aprofundar ainda mais nas permissões do Android, confira a página do desenvolvedor do Google.