¿Qué puede hacer una aplicación con el permiso "USAR CUENTAS EN EL DISPOSITIVO"?

28

¿Puede una aplicación de este tipo leer libremente mis correos electrónicos / calendario / mensaje / documentos / etc.?

El permiso "UTILIZAR CUENTAS EN EL DISPOSITIVO" también se conoce para los desarrolladores como android.permission.USE_CREDENTIALS .

Ejemplo de tales aplicaciones: WhatsApp , MightyText .

AlikElzin-kilaka
fuente
1
Encontré un ejemplo de API de Android de lo que se puede hacer con este permiso: goo.gl/gjkJB . Desde mi punto de vista como desarrollador, esto significa un acceso a TODO . Una vez que un usuario tiene un token de cuenta, puede acceder a cualquier oferta de servicios de cuentas: la transmisión de Facebook, los correos electrónicos de Google, TODO .
AlikElzin-kilaka
2
Quise decir desde la perspectiva del usuario. Creo que los usuarios no son conscientes de la intrusión detrás de ese permiso.
AlikElzin-kilaka
1
@ t0mm13b: otorgar permisos específicos (OAuth) para leer mensajes, por ejemplo, es mucho menos intrusivo que dar acceso total a una cuenta.
AlikElzin-kilaka
8
Creo que esta es una pregunta razonable para este sitio. Desde luego, me gustaría saber exactamente lo que cada uno de los permisos disponibles está realmente dando acceso.
cerveza el

Respuestas:

35

Android tiene un sistema centralizado para administrar las credenciales de los servicios en línea (como su cuenta de Google). Un componente se llama AccountManager. Algunas aplicaciones pueden " actuar como un autenticador de cuenta ". Esto significa que entienden cómo iniciar sesión en un servicio en línea en particular, y pueden iniciar sesión en ese servicio para el AccountManager. Otras aplicaciones quieren usar esa información de inicio de sesión para identificarlo o realizar acciones en su nombre, sin que tenga que ingresar su contraseña cada vez.

Ejemplo: iniciar sesión en Google

Su teléfono tiene una aplicación integrada que "actúa como un autenticador de cuenta" para su cuenta de Google. Sabe cómo iniciar sesión en Google, y tiene el correo electrónico y la contraseña que ingresó cuando configuró el teléfono. También hay una aplicación de YouTube, que desea iniciar sesión para mostrar sus videos favoritos y permitirle comentar, pero sin tener que ingresar su correo electrónico y contraseña nuevamente.

Esta aplicación de YouTube habla con el AccountManagery le pregunta si tiene credenciales para una cuenta de Google. Hacer esta pregunta requiere el permiso "buscar cuentas en el dispositivo". El AccountManagertiene una lista de autenticadores instaladas en el teléfono, que se consulta a responder a esta pregunta. Si tiene credenciales, la aplicación pedirá lo que se conoce como un token automático para la cuenta de Google. Esta solicitud requiere el permiso " usar cuentas en el dispositivo ".

El AccountManagerentonces le pregunta si desea solicitar la aplicación (YouTube) para poder utilizar la cuenta solicitada (cuenta de Google). Esto podría estar en un cuadro de diálogo que aparece sobre la aplicación, o en una notificación. Alternativamente, la aplicación puede elegir no hacer nada si aún no ha respondido afirmativamente a esta pregunta: es posible que desee preguntar más tarde en un momento más conveniente. Este paso garantiza que una aplicación con el permiso "usar cuentas en el dispositivo" no pueda usar inmediatamente todas las cuentas sin preguntar.

Si dice que sí, AccountManagerreenvía la solicitud al autenticador (la aplicación integrada de Google). Lo que sucede a continuación depende del autenticador y del servicio particular en el que inicie sesión. Es posible que deba iniciar sesión si no lo ha hecho anteriormente, y el inicio de sesión puede requerir un nombre de usuario y contraseña, una foto, un SMS o algo completamente diferente. Independientemente de lo que haga el autenticador, puede fallar o devolver un token automático a la aplicación solicitante.

Más controles

El autenticador y el servicio en línea también pueden controlar qué acciones puede realizar la aplicación solicitante. Por ejemplo, cuando conecta una aplicación a su cuenta de Google, Google enumera los permisos que necesita la aplicación (como "subir videos" para YouTube). Por lo tanto, la aplicación solo puede realizar las acciones enumeradas. Sin embargo, algunos servicios pueden no tener algo así; para dicho servicio, una vez que haya permitido que la aplicación use sus credenciales, puede realizar cualquier acción en su nombre.

Una vez que la aplicación solicitante haya obtenido el token automático, puede continuar usándolo para realizar acciones en su nombre sin ninguna interacción adicional de su parte. Es decir, una vez que haya aceptado que el cliente de Twitter de Dan puede publicar en su feed de Twitter, podría ejecutarse en segundo plano y publicar más tweets sin que usted lo sepa. Solo debe otorgar acceso a la aplicación a sus credenciales si confía en que no lo haga.

Resumen

Una aplicación con el permiso " usar cuentas en el dispositivo " puede, una vez instalada, solicitarle que acceda a un servicio en línea (como Google, Facebook o Twitter) en su nombre. Puede optar por dejar que acceda al servicio o no. Si le permite acceder al servicio, las acciones que puede tomar en su nombre podrían estar limitadas por el servicio (depende del servicio), y el servicio podría permitirle revocar ese permiso más tarde (generalmente a través de una lista de "aplicaciones conectadas "en el sitio web del servicio).

Dan Hulme
fuente
0

Encontré este ejemplo en la API de Android de lo que se puede hacer con ese permiso.

Según tengo entendido como desarrollador, esto significa acceso a casi TODO lo que proporciona la cuenta, excepto cambiar la contraseña.

Una vez que un usuario tiene el token de una cuenta, puede acceder a cualquier servicio que la cuenta ofrezca: publicar en su muro de Facebook, leer su Gmail, casi TODO .

AlikElzin-kilaka
fuente
No estoy 100% seguro, pero creo que hay una pantalla "Seleccionar cuenta" antes de que la aplicación pueda acceder y usar el token de autenticación. El permiso por sí solo no es suficiente para obtener acceso a una cuenta de usuario.
Flujo el
2
No del todo: agregue la palabra "casi" antes. Como sugiere el nombre del privilegio: puede usar la información de la cuenta, pero no cambiarla . En cuanto a mi conocimiento, puede "autenticarse en el nombre del usuario", pero sin llegar a conocer las credenciales. Entonces sí: podría leer su correo, tal vez incluso publicarlo en Facebook. Pero no pudo espiar tu contraseña. Aún así, este es un privilegio sensible.
Izzy
Esta respuesta es incorrecta ya que no puede cambiar la contraseña de la cuenta con este tipo de acceso, por lo tanto no tiene acceso a "todo".
pzkpfw
@pzkpfw: He actualizado la respuesta para incluir el mundo "casi" porque para muchos casos de uso malicioso, el atacante no querría cambiar la contraseña, sino que malversa la cuenta.
Dan Dascalescu
-1

La aplicación no accederá a ninguna cuenta de servicios. Algunas aplicaciones necesitan este permiso porque necesitan abrir una nueva cuenta desde su aplicación.

Kasian Mwagike
fuente