En
Android cada aplicación se ejecuta en su propio proceso. La mayoría de las
medidas de seguridad entre el sistema y las aplicaciones deriva de los
estándares de Linux 2.6, cuyo kernel, recuérdese, constituye el núcleo
principal de Android. Cada proceso en Android constituye lo que se llama un
cajón de arena o sandbox, que proporciona un entorno seguro de ejecución. Por
defecto, ninguna aplicación tiene
permiso para realizar ninguna operación o
comportamiento que pueda impactar negativamente en la ejecución de otras
aplicaciones o del sistema mismo. Por ejemplo, acciones como leer o escribir
ficheros privados del usuario (contactos, teléfonos, etc.), leer o escribir
ficheros de otras aplicaciones, acceso de red, habilitación de algún recurso
hardware del dispositivo, etc., no están permitidas. La única forma de poder
saltar estas restricciones impuestas por Android, es mediante la declaración
explícita de un permiso que autorice a llevar a cabo una determinada acción
habitualmente prohibida. Además, en Android es obligatorio que cada aplicación
esté firmada digitalmente mediante un certificado, cuya clave privada sea la
del desarrollador de dicha aplicación. No es necesario vincular a una autoridad
de certificado, el único cometido del certificado es crear una relación de
confianza entre las aplicaciones. Mediante la firma, la aplicación lleva
adjunta su autoría.
Para establecer un permiso para una aplicación, es
necesario declarar en el manifiesto uno o más elementos donde se especifica el
tipo de permiso que se desea habilitar. Por ejemplo, si se quisiera permitir
que una aplicación pueda monitorizar mensajes SMS entrantes, en el fichero
“AndroidManifest.xml” se encontraría algo como lo que sigue:
- · android: name: especificación del permiso que se pretende conceder. Debe ser un nombre de alguno de los listados en la clase android.Manifest.permission.
- · android: label: una etiqueta o nombre convencional fácilmente legible para el usuario.
- · android: permissionGroup: permite especificar un grupo asociado al permiso. Los posibles grupos se encuentran listados en la clase android.Manifest.permission_group y pueden tener valores como ACCOUNTS (cuentas válidas de Google), COST_MONEY (acciones que llevan vinculadas un pago) o PHONE_CALLS (acciones relacionadas con llamadas), entre otros.
- · android: protectionLevel: determina el nivel de riesgo del permiso, y en función del mismo influye en cómo el sistema otorga o no el permiso a la aplicación. Oscila entre valores desde el 0 hasta el 3.
- · android: description: descripción textual del permiso.
- · android: icon: icono gráfico que puede ser asociado al permiso.
No hay comentarios:
Publicar un comentario