Seguridad en dispositivos de Android

Adobe AIR 2.5 y posterior

En Android, al igual que sucede en todos los dispositivos informáticos, AIR se ajusta al modelo de seguridad nativo. Al mismo tiempo, AIR mantiene sus propias reglas de seguridad, que pretenden facilitar a los desarrolladores la escritura de aplicaciones seguras y conectadas a Internet.

Las aplicaciones de AIR en Android utilizan el formato de empaquetado de Android, por lo que la instalación falla en el modelo de seguridad de Android. El archivo de instalación de la aplicación de AIR no se utiliza.

El modelo de seguridad de Android presenta tres aspectos principales:

  • Permisos

  • Firmas de la aplicación

  • IDs de usuario de la aplicación

Permisos de Android

Muchas funciones de Android están protegidas por el mecanismo de permisos del sistema operativo. Para poder utilizar una función protegida, el descriptor de la aplicación de AIR debe declarar que la aplicación requiere el permiso necesario. Cuando un usuario intenta instalar la aplicación, el sistema operativo Android muestra todos los permisos solicitados al usuario antes de que continúe la instalación.

La mayor parte de las aplicaciones de AIR necesitarán especificar los permisos de Android en el descriptor de la aplicación. De forma predeterminada, no se incluye ningún permiso. Los siguientes permisos son necesarios para las funciones protegidas de Android expuestas mediante el motor de ejecución de AIR:

ACCESS_COARSE_LOCATION
Permite que la aplicación acceda a datos de ubicación de red WIFI y móvil a través de la clase Geolocation.

ACCESS_FINE_LOCATION
Permite que la aplicación acceda a datos GPS a través de la clase Geolocation.

ACCESS_NETWORK_STATE y ACCESS_WIFI_STATE
Permite que la aplicación acceda a la información de red a través de la clase NetworkInfo.

CAMERA
Permite que la aplicación acceda a la cámara.

INTERNET
Permite que la aplicación realice solicitudes de red y permite la depuración remota.

READ_PHONE_STATE
Permite que el motor de ejecución de AIR silencie el audio cuando se produzca una llamada entrante.

RECORD_AUDIO
Permite que la aplicación acceda al micrófono.

WAKE_LOCK y DISABLE_KEYGUARD
Permite que la aplicación impida que el dispositivo entre en reposo con la configuración de la clase SystemIdleMode.

WRITE_EXTERNAL_STORAGE
Permite que la aplicación escriba en la tarjeta de memoria externa del dispositivo.

Firmas de la aplicación

Todos los paquetes de la aplicación creados para la plataforma Android se deben firmar. Debido a que las aplicaciones de AIR en Android se empaquetan en el formato APK de Android nativo, se firman de acuerdo con las convenciones de Android en lugar de conforme a las convenciones de AIR. Aunque Android y AIR utilizan la firma de código de forma similar, existen diferencias importantes:

  • En Android, la firma verifica que la clave privada esté en posesión del desarrollador, pero no se utiliza para comprobar la identidad del mismo.

  • Para las aplicaciones enviadas al mercado de Android, el certificado debe ser válido durante 25 años como mínimo.

  • Android no admite la migración de la firma del paquete a otro certificado. Si una actualización se firma mediante un certificado diferente, el usuario debe desintalar la aplicación original antes de que pueda instalar la aplicación actualizada.

  • Dos aplicaciones firmadas con el mismo certificado pueden especificar un ID compartido que les permita acceder a los archivos de datos y a la caché entre sí. (Este uso compartido no lo facilita AIR. )

IDs de usuario de la aplicación

Android utiliza un núcleo Linux. A todas las aplicaciones instaladas se les asigna un ID de usuario de tipo Linux que determina sus permisos para las operaciones como el acceso a archivos. Los archivos de los directorios temporales, de almacenamiento de la aplicación y de la propia aplicación se protegen frente al acceso mediante los permisos del sistema de archivos. Los archivos escritos en el almacenamiento externo (es decir, la tarjeta SD) se pueden leer, modificar y eliminar por otras aplicaciones, o por el usuario, cuando la tarjeta SD se instala como dispositivo de almacenamiento masivo en un equipo.

Las cookies recibidas con solicitudes de Internet no se comparten entre aplicaciones de AIR.

Datos cifrados en Android

Las aplicaciones de AIR en Android pueden utilizar las opciones de cifrado disponibles en la base de datos SQL incorporada para guardar datos cifrados. La clase EncryptedLocalStore no se admite en dispositivos móviles.