Tabla de contenido:
- Permisos: inicial y personal en Android Market
- Aplicaciones fuera del Android Market
- Del lado del desarrollador … y cómo los consumidores deben hacer su parte
- Y una última cosa …
Últimamente ha habido muchas noticias sobre un lapso de seguridad o juicio, ambos, en realidad, en Apple que permite que las aplicaciones iOS tomen prestados sus datos de contacto y los envíen a partes desconocidas sin su consentimiento. Apple ha abordado el tema a los miembros del Congreso de los EE. UU. Y tomará medidas para mantener un control más estricto en una futura actualización de iOS. Es una buena noticia, y nos alegra ver que suceda.
¿Pero qué hay de Android? Durante todo este enfoque en las aplicaciones que hacen cosas sin el permiso explícito del usuario, verá personas que se refieren al modelo de permisos de Android. Vamos a desglosarlo todo por ti. No es perfecto, pero funciona bastante bien, y ciertamente es mejor que ningún sistema de permisos.
Le mostraremos los permisos en Android y cómo debe asegurarse de hacer su parte.
Por diseño, ninguna aplicación de Android tiene permiso para realizar ninguna operación que "afecte negativamente a otras aplicaciones, el sistema operativo o el usuario". Para que una aplicación tenga acceso a cosas como datos de contacto privados, datos de otra aplicación, acceso a la red o incluso algo tan mundano como escribir sus propios datos en el almacenamiento del dispositivo, la aplicación debe declarar que tendrá permisos para hacerlo, y luego debe aceptar ese permiso antes de poder instalar la aplicación. Cuando instala una aplicación, se le presenta una lista de permisos que la aplicación declara.
Y tenga en cuenta que decimos que las aplicaciones están "declarando" permisos, y no necesariamente "solicitándolos". Semántica, suponemos, pero no hay un recuadro que diga "¡Hola, Jerry! Soy una aplicación, y me encantaría que me dejes ver tu información de contacto. ¿Está bien?" En cambio, las aplicaciones de Android son más directas y dicen: "Hola, Jerry. Soy una aplicación. Aquí hay una lista de lo que puedo hacer, solo sos, ya sabes. Tómalo o déjalo".
Las aplicaciones de Android declaran a qué permisos tienen acceso y, por lo tanto, a qué sandboxes pueden jugar. Y puede elegir aceptarlas e instalar la aplicación, o no. ¿Tener sentido?
Permisos: inicial y personal en Android Market
Así es como se ve si instala, por ejemplo, Path. Obtiene la lista macro de permisos que Path está declarando. Toque uno, y explica ese permiso con un poco más de detalle.
Así es como se ve si instala alguna aplicación del Android Market. Tendrá que desplazarse por la lista para verlos a todos. Un poco más abajo es el que consiguió Path (y otros) en todo tipo de problemas en iOS. En su forma de Android, puede ver claramente que Path declara el permiso para "Sus datos personales: leer los datos de contacto". Toca ese permiso y obtendrás más detalles:
"Permite que una aplicación lea todos los datos de contacto (dirección) almacenados en su teléfono. Las aplicaciones maliciosas pueden usar esto para enviar sus datos a otras personas".
Entonces Path le ha dicho que tiene acceso a sus datos de contacto. No necesariamente te dice qué va a hacer con él (si no lo hubiéramos mencionado, ¿realmente querrías saberlo?), Pero sí te dice que puede leerlo.
Aplicaciones fuera del Android Market
Pero, ¿y si descarga una aplicación? ¿O usar la Amazon Appstore? Todavía se supone que las aplicaciones declaran qué permisos usan, y usted ve esa lista de permisos cuando instala la aplicación. (Recuerde que Amazon Appstore descarga aplicaciones, por lo que lo que ve es exactamente lo mismo que si instalara una aplicación desde un correo electrónico o una descarga).
Así es como se vería Gmail. La única diferencia real entre la carga lateral y la instalación desde Android Market, en lo que respecta a los permisos, es que cuando carga lateralmente, no obtiene las descripciones de permisos más detalladas.
¿Por qué todo esto? Las aplicaciones de Android están "sandboxed": juegan en su propio espacio y tienen sus propios archivos de datos dentro de ese sandbox. Solo pueden compartir el juego en el entorno limitado de otra persona después de pedir explícitamente permiso, y eso se hace a través de las pantallas que ves arriba. Cuando aceptas esos permisos e instalas la aplicación, le estás dando permiso a esa aplicación para jugar en los sandboxes en los que la aplicación dice que quiere jugar.
Del lado del desarrollador … y cómo los consumidores deben hacer su parte
Detrás de escena, los desarrolladores de aplicaciones declaran estos permisos en el archivo AndroidManifest.xml, que es una parte obligatoria del código fuente de una aplicación de Android. Estas declaraciones son estáticas, y cada una de ellas se presenta al usuario como hemos visto anteriormente. Android no tiene forma de otorgar permisos dinámicamente en tiempo de ejecución, porque según los desarrolladores del sistema operativo Android "complica la experiencia del usuario en detrimento de la seguridad". Obligar a una aplicación a decirle lo que quiere hacer, por adelantado, y nunca poder cambiar: ese es el modelo de seguridad más importante.
¿La otra cara? También es lo más fácil de ignorar para los usuarios.
Sabemos todo sobre lo que sucedió con Path en iOS. Al igual que muchas otras aplicaciones de iOS, utilizó el contacto sin permiso. No con fines nefastos, pero sin embargo, sin ningún permiso por adelantado y sin preguntar más tarde. Path para Android envió todo tipo de datos a sus servidores, tal como lo hizo en iOS. Pero como hemos mostrado en esta publicación, en Android, Path tiene que declarar primero el permiso. O, más precisamente, declara permiso, y usted lo acepta o lo rechaza.
El problema es que cuando instalas una aplicación, lo más probable es que te pases de la sección de permisos. Realmente no deberías, pero todos lo hacemos. El hecho de que los permisos no estén escritos en lenguaje sencillo es parte del problema. Pero incluso si lo fueran, la mayoría de nosotros haría clic más allá de todos modos. Así es como es, en cada plataforma. Por otro lado, hay quienes se asustan por los permisos porque no los entienden. Una vez más, un lenguaje más fácil de usar ayudaría aquí.
Una de las alternativas a esto es hacer que la aplicación solicite permisos en tiempo de ejecución, cuando quiere hacer algo que normalmente no puede hacer. Ya hemos leído que el equipo de Android cree que esto es inconveniente e inseguro, por lo que no es probable que suceda.
Otra alternativa es permitir permisos seleccionados, al igual que RIM hace con BlackBerry. Termina con aplicaciones que solo funcionan a medias porque denegó los permisos, al igual que BlackBerry. No existe un método infalible real, aparte de leerlo todo cuando instala esa aplicación y trata de comprender qué está pidiendo y por qué lo está pidiendo.
Ahí es donde todos entramos. Algunos de nosotros entendemos los permisos de las aplicaciones más que otros, y cuando una aplicación hace algo que no debería estar haciendo, escuchas el clamor. Lee los permisos. Lea los comentarios del mercado. Lee Android Central. Cuando algo sale mal, lo oirás.
Y una última cosa …
Una nota especial debe ir aquí sobre las vulnerabilidades de seguridad. Todos los programas de computadora, y eso significa que también todos los sistemas operativos móviles, están repletos de ellos. Cuando se encuentra una vulnerabilidad que permite que una aplicación omita el modelo de seguridad, Google lo parcheará rápidamente. Esto sucede, y siempre va a suceder. La rapidez con la que se implementa esta actualización depende de las personas que fabrican su teléfono. Se merecen el crédito cuando lo hacen de la manera correcta, y el desprecio cuando tardan demasiado y lo hacen mal. Eso no es algo que vaya a desaparecer en el corto plazo, y estamos allí para llamar a un OEM que no mantiene las cosas tan seguras como deberían ser.
Si desea profundizar aún más en los permisos de Android, consulte la página de desarrolladores de Google en ellos.