Android 裝置上的安全性

Adobe AIR 2.5 以及更新的版本

在 Android 上,就如同所有的電腦裝置一樣,AIR 符合原生安全性模型。同時,AIR 會維護自己的安全性規則,其用意在於使開發人員易於撰寫安全且連接網際網路的應用程式。

因為在 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 Market 的應用程式,憑證的有效期必須至少 25 年。

  • Android 不支援將套件簽名移轉至其他憑證。如果更新是由不同的憑證簽署,則使用者必須解除安裝原始的應用程式,才能安裝更新的應用程式。

  • 使用相同憑證簽署的兩個應用程式可以指定共用的 ID,以允許它們存取彼此的快取與資料檔案。(這樣的共用不是透過 AIR 進行。)

應用程式使用者 ID

Android 使用 Linux 核心。系統會為每個已安裝的應用程式指定 Linux 類型的使用者 ID,以便為檔案存取這類的操作決定其權限。在應用程式、應用程式儲存及暫存目錄中的檔案受到保護,要透過檔案系統權限才能存取。在電腦上將 SD 卡掛接成大量儲存裝置時,寫入外部儲存 (也就是 SD 卡) 的檔案可由其他應用程式或使用者讀取、修改和刪除。

以網際網路要求接收的 Cookie 不會在 AIR 應用程式之間共用。

Android 上加密的資料

在 Android 上的 AIR 應用程式,可以使用內建 SQL 資料庫可用的加密選項,以儲存加密的資料。行動裝置不支援 EncryptedLocalStore 類別。