Android 设备上的安全性

Adobe AIR 2.5 和更高版本

在 Android 上,像在所有计算设备上一样,AIR 遵循本机安全性模型。同时,AIR 保持自己的安全性规则,旨在使开发人员轻松编写安全的、与 Internet 连接的应用程序。

因为 Android 上的 AIR 应用程序使用 Android 软件包格式,安装属于 Android 安全性模型。不使用 AIR 应用程序安装程序。

Android 安全性模型有三个主要方面:

  • 权限

  • 应用程序签名

  • 应用程序用户 ID

Android 权限

Android 的许多功能由操作系统权限机制保护。为了使用某种保护的功能,AIR 应用程序描述符必须声明应用程序要求必要的权限。用户尝试安装应用程序时,Android 操作系统会在继续安装之前对用户显示所有请求的权限。

大多数 AIR 应用程序需要在应用程序描述符中指定 Android 权限。默认情况下,不包括任何权限。通过 AIR 运行时公开的受保护的 Android 功能需要下列权限:

ACCESS_COARSE_LOCATION
允许应用程序通过 Geolocation 类访问 WIFI 和移动电话网络位置数据。

ACCESS_FINE_LOCATION
允许应用程序通过 Geolocation 类访问 GPS 数据。

ACCESS_NETWORK_STATE 和 ACCESS_WIFI_STATE
允许应用程序通过 NetworkInfo 类访问网络信息。

CAMERA
允许应用程序访问照相机。

INTERNET
允许应用程序提出网络请求。也允许远程调试。

READ_PHONE_STATE
允许 AIR 运行时在有来电时静音。

RECORD_AUDIO
允许应用程序访问麦克风。

WAKE_LOCK 和 DISABLE_KEYGUARD
允许应用程序使用 SystemIdleMode 类设置阻止设备休眠。

WRITE_EXTERNAL_STORAGE
允许应用程序写入设备上的外部存储卡。

应用程序签名

为 Android 平台创建的所有应用程序包都必须进行签名。由于 Android 上的 AIR 应用程序都以本机 Android APK 格式打包,因此根据 Android 约定而非 AIR 约定对其进行签名。尽管 Android 和 AIR 使用代码签名的方式相似,但存在显著区别:

  • 在 Android 上,签名将验证开发人员是否持有私钥,但不用于验证开发人员的身份。

  • 对于提交给 Android 市场的应用程序,证书必须至少在 25 年内有效。

  • Android 不支持将包签名迁移到其他证书。如果更新通过其他证书进行签名,则用户必须卸载原始应用程序后才能安装更新的应用程序。

  • 使用同一证书签名的两个应用程序可以指定一个共享 ID,以允许它们相互访问缓存和数据文件。(AIR 没有提供此类共享。)

应用程序用户 ID

Android 使用 Linux 内核。为每个安装的应用程序分配了 Linux 类型的用户 ID,该用户 ID 确定其进行文件访问等操作的权限。通过文件系统权限提供保护,防止对应用程序、应用程序存储和临时目录中的文件进行非授权访问。当 SD 卡作为大容量存储设备安装在计算机上时,写入外部存储(即 SD 卡)中的文件可由其他应用程序或用户读取、修改和删除。

通过 Internet 请求接收的 Cookie 不在 AIR 应用程序之间共享。

Android 上的加密数据

Android 上的 AIR 应用程序可以使用内置 SQL 数据库中提供的加密选项保存加密数据。移动设备不支持 EncryptedLocalStore 类。