Cambios en el sistema de permisos con Android 6.0: ¿Cuáles son las implicaciones para nosotros los usuarios?

Con Android 6.0, se han eliminado un montón de permisos y grupos de permisos :

Grupos desaparecidos

Si bien a primera vista esto no parece importante (¿no es más bien una forma de organizar los permisos?), pensar dos veces revela una gran importancia aquí: a partir de Android 6 (y con Playstore incluso antes), si una aplicación update solicita un permiso de un grupo del que ya tenía uno en una versión instalada anterior, este "nuevo permiso" no se pone en conocimiento del usuario. Con Android 6, incluso se otorga automáticamente. También tenga en cuenta que el usuario (con "capacidades nativas de Android") solo puede revocar el acceso a grupos completos, no a permisos individuales, por lo que menos grupos significan menos flexibilidad, hasta la inutilidad de toda la función.

Según el enlace mencionado anteriormente, se han eliminado los siguientes grupos:

ACCOUNTS, AFFECTS_BATTERY, COST_MONEY, DISPLAY, MESSAGES, NETWORK, PERSONAL_INFO, PHONE_CALLS, SCREENLOCK, SOCIAL_INFO, SYSTEM_CLOCK, SYSTEM_TOOLS, USER_DICTIONARY,WALLPAPER

Permisos desaparecidos

Menos permisos que cubran más formas de acceder a datos personales significan una pesadilla para la privacidad. Con respecto a las cuentas, ya planteé esta pregunta: Android 6+ y permisos de cuenta: ¿a dónde han ido? Como descubrimos allí, lo que antes se trataba con el USE_CREDENTIALSpermiso que ya no existía, ahora se movió a los contactos (no estoy seguro si leer o escribir): así que si desea "iniciar sesión con Google" (o cualquier otro titular de cuenta), ¡Necesitas darle a la aplicación acceso completo a tu lista de contactos! La ventana emergente en la captura de pantalla ("¿Permitir que Stack Exchange acceda a sus contactos?") Apareció inmediatamente al tocar el botón "Iniciar sesión con Google".

Entonces, junto a la mayoría de los permisos de la cuenta (a excepción de GET_ACCOUNTS, todos desaparecieron), que se tratan en mi otra pregunta ya vinculada, se eliminaron los siguientes permisos:

ACCESS_MOCK_LOCATION(¿ahora uno tiene que configurar una sola aplicación que maneje el MOCK_LOCATION que he visto mencionado?), CLEAR_APP_USER_DATA, GET_TOP_ACTIVITY_INFO, HARDWARE_CONTROLS, HARDWARE_TEST, INJECT_EVENTS, INTERNAL_SYSTEM_WINDOW, READ_HISTORY_BOOKMARKS, READ_PROFILE, READ_SOCIAL_STREAM, READ_USER_DICTIONARY, SET_ACTIVITY_WATCHER, SET_ORIENTATION, SET_POINTER_SPEED, STATUS_BAR, SUBSCRIBED_FEEDS_READ, SUBSCRIBED_FEEDS_WRITE, VOICEMAIL, WRITE_HISTORY_BOOKMARKS, WRITE_PROFILE, WRITE_SMS,WRITE_SOCIAL_STREAM

¿Qué significa eso para los usuarios y su privacidad?

Esta es mi principal preocupación aquí. Desafortunadamente (casi se podría decir "como se esperaba"), no se hizo ninguna declaración oficial al respecto, o ya había estado al tanto de esos cambios hace un tiempo. Espero que algunos de nuestros miembros que también son desarrolladores tengan una visión más profunda y puedan ayudarnos con algunas explicaciones y consejos:

  • ¿Simplemente se eliminaron esos grupos/permisos (o algunos simplemente fueron renombrados/reemplazados por otros)?
  • ¿Cómo se protegen ahora los datos que antes cubrían?
  • ¿Cuáles son las implicaciones para los usuarios y su privacidad, y qué podemos hacer al respecto?
    • con respecto a "hacer al respecto": seguro que hay root, XPosed y Xprivacy (¿cómo hace frente este último a esos cambios?), Pero también me refiero al "usuario promedio" sin root aquí.
Respuesta corta: Google está loco. La 'revisión de permisos' fue más un drenaje de permisos. La mayoría de los permisos se colocaron en grupos (sueltos): para iniciar sesión en Google en una aplicación, necesita sus contactos. Lo máximo que podemos hacer es mirar la pestaña de permisos en la parte inferior de la página de una aplicación en la tienda y ver los permisos. Eso, o amenazar con cambiarme a iOS ;)
@DanBrown Ese fue mi pensamiento cuando vi la "lista de permisos completa". Primero pensé que era un ejemplo abreviado. No, ya no estoy seguro, como vi en la diferencia vinculada anterior, todo lo que se eliminó con MM (y aún no verifiqué si terminaron con menos de 10 permisos en N). Todavía estoy buscando detalles sobre las implicaciones y cómo lidiar con eso. Además, ¿cómo lo enfrentan los administradores de permisos? ¿Xprivacy sigue cubriendo todo? Antes de darme cuenta, definitivamente no cambiaré a MM (o superior).
MM lo maneja mal. Tenía sus usos, pero la mayoría de las aplicaciones simplemente se quejan, incluso si el grupo de permisos deshabilitado es inútil. Xprivacy cubre la mayoría de las cosas AFAIK, aún no he rooteado mi dispositivo MM. Por supuesto, aún podemos modificar las aplicaciones para eliminar los permisos que no nos gustan, pero eso lleva demasiado tiempo.
@DanBrown no solo consume mucho tiempo, sino que también es contraproducente. Dependiendo de cómo se haga, eso lo desconecta de las actualizaciones automáticas (tuvo que repetir esas manipulaciones una y otra vez), además, el intento y error de qué permisos se pueden eliminar sin efectos secundarios lo volverá loco. Además, hay menos permisos que cubren más datos, por lo que no puede eliminar el acceso, por ejemplo, a los contactos sin que sea imposible "iniciar sesión con Google". Estoy seguro de que hay más "malas combinaciones" nuevas, lo cual es parte de mi pregunta para averiguarlo.
Izzy, solo queda una cosa por hacer con este nuevo sistema de permisos. No lo empuje donde el sol no brilla: pero lo bombardearemos desde la órbita.
@DanBrown Eso es básicamente lo que pienso al respecto, pero desafortunadamente eso no es factible. Así que tendremos que lidiar con la realidad de alguna manera. Y ese "de alguna manera" es de lo que trata esta pregunta: cuáles son las implicaciones, cómo lidiar con ellas, cómo proteger nuestros datos, cómo aprovechar al máximo el desastre que causó Google. Hasta que eso quede claro, no actualizaré ninguno de mis dispositivos más allá de LP por razones de seguridad y privacidad. Estoy un poco decepcionado de que, a pesar de la generosidad, esta pregunta tenga tan pocas visitas y aún no haya obtenido una sola respuesta. Tenemos algunos desarrolladores aquí que deberían saber al menos algo.

Respuestas (2)

Como dije arriba (en alguna parte), el nuevo sistema de permisos es un drenaje que muestra que una nueva idea no suele ser una buena idea.

¡Cuidado! Esto puede tomar un poco de tiempo para leer, ya que hablaré sobre la historia de Android, ¡y más! ¡Ve y tómate un trago!

¿Estás bien? Muy bien, profundice.

Los orígenes del nuevo sistema de permisos

Cuando Google comenzó a trabajar en una forma de otorgar y denegar permisos sobre la marcha por la fuerza, era Android 4.3. Era un desastre de buggy, así que lo escondieron. Sin embargo, aún se puede usar creando un acceso directo al menú de configuración de operaciones de la aplicación. Este menú era muy similar al menú de aplicaciones actual, pero al tocar una opción aparece inmediatamente las opciones de permisos. También tenía que descubrir los permisos antes de poder alternarlos, y fue un desastre porque las aplicaciones se preguntaban qué demonios estaba pasando porque deshabilitó algo y se bloqueó inconvenientemente. Hurra.

El sistema se eliminó una vez que los modders lo encontraron (por lo que se eliminó en 4.4), 1 pero regresó en Marshmallow. Se veía muy bien: finalmente podías elegir si cosas como Facebook podían tomar tu ubicación (aunque lo pedía amablemente). Incluso algunas aplicaciones de Google, como Hangouts, no están a salvo de tus decisiones. Pero luego nos encontramos con el problema: el sistema aún está dañado, solo que de una manera nueva: los permisos se modificaron en gran medida.

¿Quieres que Stack Exchange inicie sesión a través de Google? Necesita permisos de contactos (aunque los desarrolladores de SE lo arreglaron por su parte). 2 ¿Quieres subir imágenes a Facebook? Necesita ver todos sus archivos. ¿Por qué? Compresión _ Los permisos ahora se otorgan en grupos, donde solicitar su cuenta de Google también permite que las aplicaciones vean todos los contactos en el dispositivo. Dudo que fuera la intención, pero la eliminación de la mayoría de los permisos significó que tenían que simplificar el campo de juego; la mayoría de los permisos eliminados se colocaron en grupos supergenerales .

Se han eliminado algunos de los permisos debido a los nuevos SDK. GET_ACCOUNTSAhora activa un nuevo SDK que permite el inicio de sesión de Google, pero recurre a hacerlo a través de los permisos de contactos si una aplicación no lo admite. Eso explica ese (incluyendo cómo finalmente se arregló la aplicación SE), pero algunos de los otros no reciben ese tratamiento. AFAIK, las aplicaciones pueden leer el diccionario de manera casual independientemente del teclado. La mayoría de los otros permisos que menciona Izzy parecen correlacionarse con grupos modificados: la mayoría encaja en la Godmission 'Modificar configuración del sistema' (permisos separados de los principales) y 'acceso de uso'. Algunas otras son manejadas por las propias aplicaciones.

Entonces, todo lo que no recibió un nuevo hogar fue asesinado. A veces, esto tenía sentido (solo necesitamos GET_ACCOUNTSactivar el SDK) Mientras que otras veces, te daban ganas de poner una bala en tu teléfono: oh sí, te dejaré acceder a mis contactos, pareces estar bien. Claro, acceda a mis llamadas y malgaste mi dinero. (Ojalá nadie sea tan tonto. Ojalá.)

Al principio, pensé ¡sí! ¡Simplificación! Pero permite que aplicaciones aparentemente legítimas hagan cosas ilegítimas MUCHO más fácilmente. Su herramienta de pirateo de Minecraft que quiere su cuenta de Google probablemente también esté robando sus contactos. Y vendiéndolos.

Esto se ve agravado por el sistema de bloqueo de permisos, que le permitió ajustar los permisos de la aplicación. Es genial, pero no funciona. En absoluto. También es inexacto (por ejemplo, dice que Stack Exchange lee mis SMS'. No, no, no lo hace) y es simplemente horrible.

Pero, ¿qué significa eso para mi privacidad?

Yo personalmente pienso una de dos cosas:

  1. El nuevo sistema de permisos fue diseñado para permitir cambios simples y rápidos con fines de seguridad. Los permisos ahora se otorgan en grupos, lo que explica por qué algunos se eliminan: Google pensó que dejarlos bajo un encabezado grande era una buena idea (y para el usuario final, veo por qué: controlar cada permiso individual podría ser tedioso). Por supuesto. , como el comunismo, solo era bueno en el papel ; en realidad, es un desastre que no quieren admitir. Me parece bien.

  2. Sin embargo, podrían estar haciendo esto para obligar a más aplicaciones a usar su SDK para romper permisos sospechosos (no los culpe) y, por lo tanto, ganar más dinero. Está demostrado que lo están haciendo (y están tratando de hacer que Android sea menos de código abierto), lo que me disgusta.

Entonces, para el usuario final, es como un poco de iOS, con lo que me refiero a algo que se ve bien, pero es una mierda. Pero se puede arreglar? Un poco.

Las "soluciones alternativas".

Método 1- Xprivacy (ROOT NECESARIO BOI)

Xprivacy funciona en Marshmallow, según sus desarrolladores, por supuesto. Requiere jugar con todo tipo de bits complicados en MM ahora, y hay un arranque verificado . Lo cual es un dolor, ya que probablemente recibirá una advertencia roja o amarilla, lo que puede impedir el arranque. (Dependiendo de su suerte y de la cantidad de líos que haya hecho). Pero si puede hacer que Xprivacy funcione, es bastante fácil.

Debido a la actitud de 'No arrancará FULL STOP' que N aparentemente tomará, incluso puede ser más una pesadilla trabajar en eso.

EDICIÓN DE 2017: los desarrolladores de Xposed están trabajando para solucionar todo esto (¡sí!) Si encuentro la publicación en XDA, la vincularé

MÉTODO 2: haga un bloqueo total en todo.

Esto es realmente complicado, pero permite el máximo control (en la medida de lo posible). Otorgas permisos a las aplicaciones cuando es absolutamente necesario, luego haces una carrera loca para volver a desactivarlos. Probablemente será más fácil una vez que Nougat caiga en más dispositivos, por lo que se pueden usar ventanas múltiples.

MÉTODO 3: no actualizar (lo que denomino la "solución Izzy")

Si miraste hacia arriba cuando te lo dije, es posible que hayas notado cuál es el método de Izzy: simplemente te abstienes de actualizar a Marshmallow o Nougat. Boo-Hoo, lo sé, pero tampoco cambia el juego, en realidad. Dale... Seis meses, y la mayor parte de la basura para N estará en la tienda de juegos, si realmente la quieres. Entonces, la solución de Izzy significa quedarse con el 5.1.1 definitivamente capaz o inferior. Puedo vivir, y tú también.

MÉTODO 4 - NUKELO DESDE LA ÓRBITA.

(Solo para complacer a las masas. Para su información, esto sería imposible).

Pedir prestado

O ignóralo. Tu llamada.


EDITAR Izzy encontró un enlace a una pregunta de desbordamiento de pila que explica que las credenciales, como los inicios de sesión para iniciar sesión en varias aplicaciones , se encuentran bajo un 'permiso normal' ( nivel de protección "normal"), es decir, cualquier aplicación puede acceder a ellos sin que usted lo sepa. Afortunadamente, algunas aplicaciones e inicios de sesión le permitirán eliminar esto a través de sus administradores de cuentas, dependiendo de cuán malicioso intente ser el desarrollador.

EDIT 2 Olvidé decir que puede eliminar aplicaciones de las cuentas :) Usaré los sistemas de cuentas de Google y cuentas de aplicaciones de Facebook como ejemplos, ya que son los más utilizados.

cuentas de Google

  1. Dirígete a accounts.google.com o abre la configuración de Google Play (varía según el dispositivo, generalmente un engranaje con una marca)
  2. Buscar aplicaciones/Aplicaciones conectadas/Aplicaciones y servicios conectados (nuevamente, Varía)
  3. Encuentre lo que desea eliminar y haga clic en 'eliminar'

¡HECHO!

Facebook

  1. Iniciar sesión en el sitio
  2. Dirígete a la configuración de la cuenta > aplicaciones
  3. Busque la aplicación de destino y haga clic/toque eliminar.

¡Hecho!

¡Espero que ayude! Si no, solo deja un comentario, ya conoces el ejercicio. Estaré trabajando en ello de todos modos. Listo, ¡pero avísame si me perdí algo!


1 Hubo diferentes intentos realizados por Google para "ocultarlo mejor", y diferentes versiones de las interfaces de AppOps lo trajeron en ese entonces para 4.4 y 5.0, pero no más

2 Aparentemente, las aplicaciones pueden usar voluntariamente un nuevo SDK que permite el inicio de sesión de Google sin el permiso de los contactos. Vea aquí para más detalles .

@Izzy Ok, puedo aclarar que esto solo se aplica al inicio de sesión de Google. Otras aplicaciones parecen usar sus propios métodos, por ejemplo, la mayoría de las aplicaciones tienen solo una URL simple para iniciar sesión en Facebook, pero activa la aplicación si está instalada y eso la administra. Otras aplicaciones tienen sus propios métodos o no lo hacen.
Encaja. Recién encontrado a través de Android 6 Marshmallow: las solicitudes de algunos permisos específicos se niegan instantáneamente sin que se muestre ninguna interfaz de usuario que, por ejemplo USE_CREDENTIALS, sea un permiso seguro ahora , lo que significa que el usuario no puede negarlo. Vuelve a leer, piensa en: Entonces, cualquier aplicación puede usar cualquiera de mis cuentas sin mi aprobación, a menos que no la instale. Gran. Oh, espera: así que nada cambió, era lo mismo con LP y antes de </sarkasm>.
Quitar apps de cuentas: eso es toda una mejora para el usuario. Ahora tendrá que averiguar qué aplicación es el proveedor de la cuenta, además de dónde y cómo (si es que lo hace) permite lidiar con esto: en la aplicación, en algún sitio web o en cualquier otro lugar... <estremecimiento>

Resumiendo mis propios hallazgos, que podrían superponerse con la respuesta de Dan :

Origen

Google comenzó con el nuevo sistema de permisos con Android Jellybean 4.3. La intención oficial (revelada más adelante) era dar a los usuarios cierto control sobre los permisos a los que debería tener acceso una aplicación ("permiso a pedido"), en lugar del "todo o nada" existente en ese momento (si no lo hizo). como una aplicación que tiene un cierto permiso: vivir con ella o no instalarla). La interfaz de AppOps estaba oculta, pero pronto se reveló, se volvió a ocultar (Kitkat/4.4), se reveló nuevamente y lo mismo una tercera vez con LP/5.0, después de lo cual se protegió de una manera difícil de eludir.

Estado actual

Finalmente, apareció AppOps con Marshmallow/6.0. Pero en lugar de otorgar a los usuarios un control de permisos detallado, los permisos son minuciosos y el control es bastante crudo; si, por ejemplo, desea que su aplicación de viajes pueda agregar sus reservas a su calendario, pero no leer sus otras entradas de calendario: de ninguna manera. O prohíbes el acceso al calendario, o lo permites. Similar para otros permisos, ya que AppOps solo trata con grupos. 1

Además, muchos permisos se eliminaron por completo o se asignaron al nivel de protección "normal", por lo que se otorgan automáticamente y el usuario no puede revocarlos. Este es, por ejemplo, el caso del INTERNETpermiso, pero también para USE_CREDENTIALS(¡así que cualquier aplicación con este permiso puede usar cualquiera de sus cuentas sin su aprobación explícita!) o incluso BLUETOOTH_ADMIN(emparejar su Droid con cualquier dispositivo BT al alcance). Para obtener una lista detallada, consulte este Gist .

Además, se han agregado nuevos niveles de protección: appoppara los permisos que el usuario tiene que otorgar explícitamente a través del nuevo sistema "bajo demanda", pre23para los permisos otorgados automáticamente si una aplicación apunta a una versión inferior a MM (es decir, antes de que se introdujeran los "permisos de tiempo de ejecución"), preinstalledpara aplicaciones que se enviaron con la ROM (no está claro cómo Android las diferencia de system, que se renombró a privileged), más 3 más.

Estado actual resumido

Básicamente, estamos peor ahora:

  • la cantidad de permisos se ha reducido drásticamente, lo que significa menos protección granular
  • muchos permisos se han movido al nivel de protección normal (y por lo tanto fuera del alcance de AppOps)
  • AppOps (permiso de tiempo de ejecución) es bastante cosmético debido a su granularidad faltante y a la omisión de permisos esenciales
  • las aplicaciones pueden solicitar permisos adicionales con una actualización. Si ya tienen un permiso en el mismo grupo, no se notifica al usuario (¿el texto "no requiere ningún permiso adicional especial" le suena familiar?). Con la reducción del número de grupos de permisos, incluso se hizo más fácil "infiltrar algo".

Entonces, en la mayoría de los casos, esto significa lo mismo que antes de MM: si no le gusta que una aplicación tenga cierto permiso, no la instale.

¿Cómo abordarlo desde la perspectiva del usuario?

Múltiples de los artículos en la siguiente lista incompleta pueden aplicar simultáneamente. Haz tu elección:

  • No actualice más allá de LP si no le gusta eso (y puede vivir con apegarse a LP). Eso es lo que hago, hasta que este lío se haya limpiado.
  • No instales aplicaciones si no quieres darles acceso a lo que solicitan.
  • Al instalar una actualización, no confíe en la sugerencia de "sin permisos adicionales". Verifique en detalle antes de aplicar la actualización. Esto no es tan fácil como solía ser, ya que normalmente no ve uno al lado del otro qué permisos ya tiene una aplicación y en qué se diferencian de los solicitados por la actualización. En la aplicación Playstore, aún obtiene la lista completa cuando se desplaza hasta el final de la página de una aplicación y presiona el enlace "detalles del permiso". No ignore la sección "Otros" al final de la lista, ya que incluye cosas como INTERNET, BLUETOOTH_ADMINy otras "sorpresas".
  • Para proteger su dispositivo de aplicaciones no autorizadas que acceden a Internet, considere usar una aplicación de Firewall . Hay buenos que ni siquiera requieren root y son FOSS, como Netguard .
  • si la raíz es una opción, y la instalación del marco XPosed también lo es (ambos disponibles para MM, pero la instalación puede ser bastante complicada con N), use un administrador de permisos como Xprivacy para un control de permisos granular.

1: Obviamente, el usuario no debe estar "sobreesforzado". Aún así, podría haber un "modo avanzado" para lidiar con eso.