Cómo solucionar el problema de las notificaciones que no llegan

Cómo solucionar el problema de las notificaciones que no llegan

Seguridad

Cómo deberían ser los permisos de Android para ser seguros

Los permisos de Android han mejorado con el tiempo, pero podrían ser mucho mejores: sacamos la lista de deseos y diseñamos unos mejores permisos.

13 marzo, 2017 20:16

Los permisos de Android han mejorado con el tiempo, pero podrían ser mucho mejores: sacamos la lista de deseos y diseñamos unos mejores permisos.

Las aplicaciones, dependiendo de qué datos necesiten, deben acceder a ciertas partes de nuestro teléfono. Es algo común y comprensible, sin esos datos no podrían cumplir con sus funciones. Pero no ncesitan acceder a todo el teléfono, o podríamos tener una catástrofe en claves de privacidad.

El término medio entre acceso y privacidad es el sistema de permisos: una función del sistema que nos permite regular a qué puede acceder una aplicación. Por ejemplo, esto nos permite controlar qué aplicaciones tienen acceso a nuestra cámara, a nuestro micrófono o a nuestros datos. Pero estos permisos, aunque hayan mejorado con el tiempo, podrían ser mucho mejores.

¿Cómo funcionan los permisos de Android ahora?

Lo cierto es que los permisos no eran como son ahora mismo. Antes, cuando instalábamos una aplicación a través de Google Play (o el antiguo Android Market), estábamos obligados a aceptar todos los permisos del tirón. Antes de instalar la aplicación, se nos mostraba la lista de todos los permisos que concedemos sólo con instalar. Si te gustaban genial, si no te gustaba algún permiso mala suerte.

Por suerte, esto ha cambiado en las últimas versiones de Android. Ahora los desarrolladores pueden usar un nuevo sistema de permisos que consiste en pedirnos el acceso cuando lo necesiten. Tal y como está configurado ahora mismo, existen dos tipos de permisos definidos por Google:

  • El primer tipo son los ‘permisos normales’, los que Google entiende que no suponen un riesgo al usuario, y que el sistema concede por defecto. La lista de permisos normales está disponible aquí.
  • El segundo tipo son los ‘permisos peligrosos’, los que Google opina que suponen un riesgo, y los que requieren pedir permiso explícito al usuario. Se puede ver la lista en la ‘Tabla 1’ de esta página de Android Developers.

Por ejemplo, Telegram sólo nos pedirá permiso de cámara la primera vez que queramos sacar una foto. O el permiso para usar el micrófono la primera vez que queramos grabar una nota de voz. Lo mismo ocurre con los contactos o la localización GPS. Otros permisos como acceder a Internet o usar el sistema de verificación de huella dactilar son concedidos sin que nosotros tengamos que hacer nada.

Sin embargo, el nuevo sistema no es perfecto. Además de que todavía conviven ambos sistemas de permisos, y de que hay aplicaciones que no se han adaptado, los nuevos permisos de Android tienen carencias. E incluso han creado nuevos problemas. Por no hablar de los desarrolladores que siguen malas prácticas para estar igual que siempre.

¿Cómo deberían funcionar para ser seguros?

Los permisos no se deben simplificar, ni mucho menos juntar

 

Para empezar, y quizás suponiendo un paso atrás desde el antiguo sistema, los permisos se han simplificado. Por ejemplo, ya no existe distinción entre leer SMS o enviarlos: la confirmación viene en un mensaje que engloba ambos permisos.

Esto es necesario de cara a hacer el sistema más sencillo de cara al usuario, pero nos quita libertad a la hora de conceder permisos, e incluso seguridad. Es importante hacer un sistema simple para hacerlo comprensible, pero tampoco es necesario pasarse y simplificar en exceso.

Otra de las cosas que hemos perdido respecto al anterior sistema es la descripción de qué suponía cada permiso. Antes, junto a la lista, especificaba a qué funciones concretas dábamos acceso. Como parte de esa simplificación, también hemos perdido eso.

Los permisos necesitan descripciones del desarrollador

Una de las cosas que más me gusta del sistema de permisos de iOS (sí, sigues leyendo El Androide Libre) es que Apple hace que el desarrollador explique por qué te está pidiendo ese permiso. Junto a la ventana donde podemos confirmar o denegar, viene esa descripción donde la aplicación debe explicarnos por qué nos está pidiendo lo que nos pide. Y siempre podemos comprobar la descripción yendo a los ajustes del sistema.

En Android, el desarrollador puede decidir integrar una pantalla propia de la aplicación para explicar por qué nos pide el permiso. O no, la aplicación también puede pedirlo del tirón y sin explicaciones. Lo consideramos una buena práctica, Google lo recomienda, pero no todos los desarrolladores lo hacen. Y se agradecería algo nativo, a nivel del sistema, que arregle este problema.

Los desarrolladores no deben «obligarnos» a aceptar permisos

Esto también es importante ante una práctica que algunos desarrolladores han empleado y emplean. Nos referimos a las aplicaciones que, cuando abrimos por primera vez, nos ponen todos los mensajes de permisos seguidos. Uno detrás de otro, con la intención de que pulsemos en Aceptar en todos sin pensarlo.

Incluso algunas aplicaciones, si no aceptamos todos los permisos, no funcionarán. Y no porque el permiso sea imprescindible para la aplicación. En algunas aplicaciones esto se debe a un mal cambio de los viejos permisos a los nuevos; en otras se debe al capricho del desarrollador. Y en este último caso lo más seguro es que la aplicación sea un peligro.

¿Por qué ya no se nos avisa de los permisos con coste?

Y también deberían destacarse los permisos que pueden costarnos dinero. El antiguo sistema de permisos lo hacía. Marcaba en naranja, y con una moneda en forma de icono, los permisos que pudieran suponer cargos a nuestro bolsillo. Como, por ejemplo, el enviar SMS desde nuestro número de teléfono. También hemos perdido eso con el cambio al nuevo sistema.

Debería existir la caducidad en los permisos

Por último, me gustaría rescatar una función que nos encontramos en su momento en SuperSU. Sí, hablo del sistema de control de los permisos root. Si lo tenéis, o si lo habéis hecho alguna vez, recordaréis que podíamos escoger cuánto queríamos que durase ese permiso root: indefinidamente, durante unos minutos, o sólo ese acceso.

Pues lo echo de menos en el sistema de permisos de Android. Sí, podemos revocar el acceso a través de los ajustes cuando queramos, y se hará efectivo en el momento, pero estaría bien poder no dar barra libre a aplicaciones con las que no estemos del todo a gusto. En otras palabras, dar más control al usuario.

Si no entiendes un permiso, si no te gusta, NO lo aceptes

Por último, sólo queda destacar lo evidente. Tú eres la última barrera, eres quien decide qué tiene control sobre tus datos y qué no lo tiene. Eres quien concede los permisos considerados como peligrosos o sensibles. Y eres quien debe usar la cabeza para decidir qué es razonable o qué no lo es.

Por ejemplo, razonable es que una aplicación como Instagram o Telegram nos pida acceso a la cámara: la utilizan para sacar fotografías legítimas. No son razonables cosas como juegos que nos pidan permiso de ubicación o SMS. O cualquier aplicación o juego que se exceda a la hora de pedir estos permisos.

Si no entiendes un permiso que te piden, si te suena raro que una aplicación o juego te lo pida, si no te gusta que esa aplicación tenga acceso a los datos que te está pidiendo, rechaza. Si la aplicación se niega a funcionar, desinstala; Google Play está llena de alternativas para todo.