O que um aplicativo pode fazer com a permissão "USAR CONTAS NO DISPOSITIVO"?

28

Esse aplicativo pode ler livremente meus e-mails / calendário / mensagem / documentos / etc.?

A permissão "USAR CONTAS NO DISPOSITIVO" também é conhecida pelos desenvolvedores como android.permission.USE_CREDENTIALS .

Exemplo de tais aplicativos: WhatsApp , MightyText .

AlikElzin-kilaka
fonte
1
Encontrei um exemplo de API do Android do que pode ser feito usando esta permissão: goo.gl/gjkJB . Do meu entendimento como desenvolvedor, isso significa um acesso a TUDO . Uma vez que o usuário tenha o token de uma conta, ele poderá acessar todas as ofertas de contas de serviços: fluxo do Facebook, e-mails do Google - TUDO .
precisa saber é o seguinte
2
Eu quis dizer da perspectiva do usuário. Eu acho que os usuários não estão cientes da invasão por trás dessa permissão.
precisa saber é o seguinte
1
@ t0mm13b - Conceder permissões específicas (OAuth) para ler mensagens, por exemplo, é muito menos invasivo do que dar acesso total a uma conta.
precisa saber é o seguinte
8
Eu acho que essa é uma pergunta razoável para este site. Eu certamente gostaria de saber exatamente a que cada uma das permissões disponíveis está realmente dando acesso.
ale

Respostas:

35

O Android possui um sistema centralizado para gerenciar credenciais para serviços online (como sua conta do Google). Um componente é chamado de AccountManager. Alguns aplicativos podem " agir como um autenticador de conta ". Isso significa que eles entendem como fazer login em um serviço online específico e podem fazer login nesse serviço para o AccountManager. Outros aplicativos desejam usar essas informações de login para identificá-lo ou executar ações em seu nome, sem que você precise digitar sua senha todas as vezes.

Exemplo: fazendo login no Google

Seu telefone possui um aplicativo interno que "atua como um autenticador de conta" para sua conta do Google. Ele sabe como fazer login no Google e possui o e-mail e a senha que você digitou quando configurou o telefone. Há também um aplicativo do YouTube, que deseja fazer login para mostrar seus vídeos favoritos e permitir que você comente, mas sem precisar digitar seu e-mail e senha novamente.

Este aplicativo do YouTube conversa com o AccountManagere pergunta se ele possui credenciais para uma conta do Google. Para fazer esta pergunta, é necessária a permissão "encontrar contas no dispositivo". Ele AccountManagerpossui uma lista de autenticadores instalados no telefone, que são consultados para responder a esta pergunta. Se houver credenciais, o aplicativo solicitará o que é conhecido como um autorto da conta do Google. Esta solicitação requer a permissão " usar contas no dispositivo ".

Em AccountManagerseguida, ele pergunta se você deseja que o aplicativo solicitante (YouTube) possa usar a conta solicitada (conta do Google). Pode estar em uma caixa de diálogo exibida sobre o aplicativo ou em uma notificação. Como alternativa, o aplicativo pode optar por não fazer nada se você ainda não tiver respondido sim a esta pergunta: ele pode perguntar mais tarde em um momento mais conveniente. Esta etapa garante que um aplicativo com a permissão "usar contas no dispositivo" não possa usar imediatamente todas as contas sem perguntar.

Se você disser sim, AccountManagerencaminha a solicitação ao autenticador (o aplicativo interno do Google). O que acontece a seguir depende do autenticador e do serviço específico em que você está efetuando login. Pode ser necessário fazer login, se você não tiver feito isso anteriormente, e o login pode exigir um nome de usuário e senha, uma foto, um SMS ou algo completamente diferente. O que quer que o autenticador faça, ele pode falhar ou devolver uma autenticação ao aplicativo solicitante.

Verificações adicionais

O autenticador e o serviço online também podem controlar quais ações o aplicativo solicitante pode executar. Por exemplo, quando você conecta um aplicativo à sua conta do Google, o Google lista as permissões que o aplicativo precisa (como "enviar vídeos" para o YouTube). Assim, o aplicativo pode apenas executar as ações listadas. No entanto, alguns serviços podem não ter nada parecido; para esse serviço, depois de permitir que o aplicativo use suas credenciais, ele poderá executar qualquer ação em seu nome.

Depois que o aplicativo solicitante obtiver o authtoken, ele poderá continuar a usá-lo para executar ações em seu nome sem mais nenhuma interação sua. Ou seja, depois que você concordar que o Twitter Client de Dan pode postar em seu feed do Twitter, ele poderá ser executado em segundo plano e postar mais tweets sem você saber. Você só deve conceder ao aplicativo acesso às suas credenciais se confiar que não fará isso.

Sumário

Um aplicativo com a permissão " usar contas no dispositivo " pode, uma vez instalado, solicitar que você acesse um serviço online (como Google, Facebook ou Twitter) em seu nome. Você pode optar por deixá-lo acessar o serviço ou não. Se você permitir que ele acesse o serviço, quais ações ele poderá executar em seu nome poderá ser limitado pelo serviço (depende do serviço) e o serviço poderá permitir que você revogue essa permissão posteriormente (geralmente por meio de uma lista de "aplicativos conectados" "no site do serviço).

Dan Hulme
fonte
0

Encontrei este exemplo na API do Android do que pode ser feito usando essa permissão.

Do meu entendimento como desenvolvedor, isso significa acesso a quase tudo fornecido pela conta, exceto a alteração da senha.

Depois que o usuário tem o token de uma conta, ele pode acessar todos os serviços que a conta oferece: poste no seu mural do Facebook, leia o seu Gmail - quase TUDO .

AlikElzin-kilaka
fonte
Não tenho 100% de certeza, mas acho que existe uma tela "Selecionar conta" antes que o aplicativo possa acessar e usar o token de autenticação. A permissão por si só não é suficiente para obter acesso a uma conta de usuário.
Fluxo
2
Não é bem assim - adicione a palavra "quase" antes dela. Como o nome do privilégio sugere: ele pode usar as informações da conta, mas não alterá- las. Quanto ao meu conhecimento, ele pode "autenticar em nome do usuário", mas sem conhecer as credenciais. Então, sim: ele pode ler seu e-mail, talvez até publicá-lo no Facebook. Mas não conseguiu espionar sua senha. Ainda assim, este é um privilégio sensível.
Izzy
Esta resposta está incorreta, pois você não pode alterar a senha da conta com esse tipo de acesso; portanto, você não tem acesso a "tudo".
Pzkpfw 28/05
@pzkpfw: atualizei a resposta para incluir o mundo "quase" porque, em muitos casos de uso mal-intencionado, o invasor não deseja alterar a senha, mas usa a conta em silêncio.
Dan Dascalescu
-1

O aplicativo não acessará nenhuma conta de serviços. Alguns aplicativos precisam dessa permissão porque precisam abrir uma nova conta a partir dele.

Kasian Mwagike
fonte