Android デバイスにおけるセキュリティ

Adobe AIR 2.5 およびそれ以降

Android では、すべてのコンピューティングデバイスと同様に、AIR はネイティブセキュリティモデルに準拠します。同時に、AIR では、安全なインターネット接続アプリケーションを開発者が簡単に作成できるようにするための独自のセキュリティ規則を維持しています。

Android 上の AIR アプリケーションでは Android パッケージ形式を使用するので、インストールには Android セキュリティモデルが適用されます。AIR アプリケーションインストーラーは使用されません。

Android セキュリティモデルには、次に示す主要な 3 つの要素があります。

  • 権限

  • アプリケーションの署名

  • アプリケーションユーザー ID

Android 権限

Android の多くの機能は、オペレーティングシステムの権限メカニズムによって保護されます。保護された機能を使用するには、アプリケーションに権限が必要であることを AIR アプリケーション記述子で宣言する必要があります。ユーザーがアプリケーションをインストールしようとすると、Android オペレーティングシステムでは、インストールを続行するために必要な権限がすべて表示されます。

ほとんどの AIR アプリケーションでは、アプリケーション記述子に Android 権限を指定する必要があります。デフォルトでは、権限は含まれていません。AIR ランタイムを通じて公開される Android の保護された機能を使用するには、次の権限が必要です。

ACCESS_COARSE_LOCATION
アプリケーションが、Geolocation クラスを介して Wi-Fi およびセルラーネットワーク位置データにアクセスすることを許可します。

ACCESS_FINE_LOCATION
アプリケーションが Geolocation クラスを介して GPS データにアクセスすることを許可します。

ACCESS_NETWORK_STATE and 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 形式でパッケージ化されるので、アプリケーションの署名は AIR の規則ではなく Android の規則に従って行われます。Android と AIR で使用するコード署名はよく似ていますが、次のような大きな違いがあります。

  • Android では、開発者が秘密キーを所有しているかどうかが署名によって検証されますが、開発者の ID の検証には署名が使用されません。

  • Android マーケットに送信されるアプリケーションの場合、少なくとも 25 年間有効な証明書が必要です。

  • Android では、別の証明書へのパッケージの署名の移行がサポートされません。更新の署名が別の証明書によって行われている場合、ユーザーは、更新されたアプリケーションをインストールする前に元のアプリケーションをアンインストールする必要があります。

  • 同じ証明書で署名された 2 つのアプリケーションでは、共有 ID を指定できます。これにより、互いのアプリケーションのキャッシュやデータファイルにアクセスできるようになります。(このような共有は AIR では容易ではありません。)

アプリケーションユーザー ID

Android では Linux カーネルを使用します。インストールされたすべてのアプリケーションには Linux タイプのユーザー ID が割り当てられます。この ID によって、ファイルアクセスなどの操作の権限が決定されます。アプリケーションディレクトリ、アプリケーション記憶領域ディレクトリ、および一時ディレクトリ内のファイルは、ファイルシステムの権限によってアクセスから保護されます。外部ストレージ(SD カード)に書き込まれるファイルは、SD カードが大容量ストレージデバイスとしてコンピューターにマウントされていれば、他のアプリケーションまたはユーザーによる読み取り、変更、および削除が可能です。

インターネット要求と共に受け取った Cookie は、AIR アプリケーション間で共有されません。

Android における暗号化されたデータ

Android 上の AIR アプリケーションでは、ビルトイン SQL データベースに用意されている暗号化オプションを使用して、暗号化されたデータを保存できます。EncryptedLocalStore クラスはモバイルデバイスではサポートされません。