Bienvenidos sean a este post, hoy hablaremos sobre la seguridad en nuestros dispositivos hasta ahora hemos visto en algunos ejemplos hechos anteriormente que se necesito concederle al usuario algunos accesos para poder acceder a internet, leer o escribir la memoria externa, usar la camara, etc, estos accesos se denominan permisos y son los concedidos a la app para poder trabajar y por extension al usuario.
En otros sistemas la seguridad esta determinada por la centralizacion y verificacion de la app donde permitira la publicacion o no de la misma, este es el caso de Apple, para sistemas mas antiguos, como Windows Mobile, donde no existia ningun tipo de seguridad y corria mas por un monitoreo por parte del usuario, en Android esto no ocurre porque como hablamos al principio de esta serie de posts, es un sistema operativo derivado de Linux y por esto tendremos los siguiente tres pilares de seguridad:

  • Como dijimos antes esta basado en Linux, esto nos permite aprovechar la seguridad de este S.O para bloquear o conceder acceso al hardware del dispositivo
  • Todas las aplicaciones deben tener una firma digital, esta nos garantiza que el archivo no ha sido modificado, si se debe modificar este debera ser firmado por el propietario de la misma
  • Si queremos que una aplicacion tenga acceso a partes del sistema que pueden comprometer la seguridad del S.O hemos de utilizar un modelo de permisos para indicarle al usuario los riesgos de instalar la misma.

Con nuestros tres pilares establecidos hablemos sobre como se puede acceder a los archivos, como sistena derivado de Linux este sistema tambien posee usuarios con un User ID, crea uno nuevo por cada paquete (.apk) para llevar un control sobre los recursos a los cuales acceden, el mismo es creado cuando se instala el paquete y este permanece durante toda su vida en el dispositivo, los datos almacenados seran asignados a su usuario de Linux, estos impedira que otras aplicaciones tengan acceso a los mismos, aunque al crear un archivo se pueden usar los modos MODE_WORLD_READABLE o MODE_WRITE_WRITEABLE para conceder a otras aplicaciones acceso de lectura o escritura en el archivo, nosotros podemos conceder permisos sobre el fichero pero el propietario siempre sera el usuario linux asignado, como podemos deducir los permisos estan concedidos a nivel proceso, esto ocasiona que el codigo de dos paquetes no pueden ejecutarse en un mismo proceso, para permitir conceder este tipo de acceso se debe modificar el archivo AndroidManifest.xml y agregar el atributo sharedUserId, permitiendo conceder un mismo usuario para dos aplicaciones, esto a nivel seguridad nos permite manejar las dos aplicaciones como una sola pero por seguridad las dos aplicaciones deben tener la misma firma digital.
En resumen, hoy hemos visto un poco superficialmente como son y como trabajan los permisos en Android, hemos visto algunos de los pilares para mantener una aplicacion segura y algunas excepciones para poder trabajar con ellas, espero les haya sido util sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios