Безопасность на устройствах Android

Adobe AIR 2.5 и более новых версий

На устройствах Android, как и на персональных компьютерах, среда AIR применяет собственную модель безопасности системы. При этом в среде AIR действуют свои правила безопасности, которые разработаны для того, чтобы упростить для разработчиков процесс создания безопасных приложений, использующих подключение к Интернету.

Поскольку приложения AIR на устройствах Android используют пакетный формат Android, установка выполняется в соответствии с моделью безопасности Android. Установщик приложений AIR не используется.

Модель безопасности Android отражает три основных аспекта.

  • Разрешения

  • Подписи приложений

  • Идентификаторы пользователей приложений

Разрешения Android

Многие функции Android защищены механизмом полномочий операционной системы. Чтобы воспользоваться защищенной функцией, дескриптор приложения AIR должен указывать, что приложению требуются определенные полномочия. Когда пользователь попытается установить приложение, перед запуском процесса установки операционная система Android покажет пользователю список всех запрашиваемых полномочий.

Для большинства приложений AIR в дескрипторе требуется указать полномочия Android. По умолчанию полномочия не включаются. Для защищенных функций, вызываемых средой выполнения AIR, требуются следующие полномочия:

ACCESS_COARSE_LOCATION
Разрешает приложению доступ к данным о местоположении, предоставляемым сетью WIFI или сотовой сетью, которые получаются через класс Geolocation.

ACCESS_FINE_LOCATION:
Разрешает приложению доступ к данным GPS через класс Geolocation.

ACCESS_NETWORK_STATE и ACCESS_WIFI_STATE:
Разрешает приложению доступ к сведениям о сети через класс NetworkInfo.

CAMERA:
Разрешает приложению доступ к камере.

INTERNET:
Разрешает приложению выполнять запросы по сети. Также разрешает удаленную отладку.

READ_PHONE_STATE:
Разрешает среде выполнения AIR приглушать звук при поступлении входящих вызовов.

RECORD_AUDIO:
Разрешает приложению доступ к микрофону.

WAKE_LOCK и DISABLE_KEYGUARD
Разрешает приложению предотвращать переход устройства в режим сна с помощью параметров класса SystemIdleMode.

WRITE_EXTERNAL_STORAGE:
Разрешает приложению выполнять запись на внешнюю карту памяти устройства.

Подписи приложений

Все пакеты приложений, создаваемые для платформы Android, должны быть подписаны. Приложения AIR на Android упаковываются с применением собственного формата Android APK, поэтому они подписываются в соответствии с правилами Android, а не правилами AIR. Несмотря на то что Android и AIR используют подписание кода схожим образом, также имеются значительные отличия.

  • На Android подпись подтверждает, что закрытый ключ находится во владении разработчика, но не используется для проверки личности разработчика.

  • Срок действия сертификата приложений, добавляемых на Android Маркет, должен составлять не менее 25 лет.

  • Android не поддерживает перенос подписи пакета в другой сертификат. Если обновление подписано другим сертификатом, пользователь должен удалить исходное приложение, прежде чем устанавливать обновленную версию.

  • Два приложения, подписанные с использованием одного и того же сертификата, могут содержат общий идентификатор, который позволит каждому из этих приложений получить доступ к кэшу и файлам данных другого приложения (AIR не позволяет организовать такой обмен ).

Идентификаторы пользователей приложений

На Android используется ядро Linux. Каждому устанавливаемому приложению назначается идентификатор пользователя Linux, который определяет полномочия приложения для выполнения таких операций, как доступ к файлам. Доступ к файлам приложения, в хранилище приложений и временных каталогах защищен с помощью разрешений файловой системы. Чтение, изменение и удаление файлов во внешнем хранилище (то есть на SD-карте) могут выполнять другие приложения или пользователь, если SD-карта подключена к компьютеру как запоминающее устройство.

Приложения AIR не имеют общего доступа к файлам cookie, полученным при выполнении интернет-запросов.

Конфиденциальность фонового изображения

Когда пользователь переключает приложение в фоновый режим, некоторые версии Android захватывают снимок экрана, который используется в качестве миниатюры в списке недавно использованных приложений. Этот снимок экрана сохраняется в памяти устройства и доступен взломщику при физическом управлении устройством.

Если в программе отображается конфиденциальная информация, следует предусмотреть для нее защиту от попадания на фоновый снимок экрана. Событие deactivate , отправляемое объектом NativeApplication, сигнализирует о готовности программы переключиться в фоновый режим. Используйте это событие для удаления или скрытия любой конфиденциальной информации.

Зашифрованные данные на Android

Приложения AIR на устройствах Android могут шифровать данные при сохранении, используя настройки шифрования, доступные во встроенной базе данных SQL. Для оптимальной безопасности следует использовать ключ шифрования на базе пользовательского пароля, который вводится при каждом запуске приложения. Локально сохраненный ключ шифрования или пароль трудно или невозможно скрыть от злоумышленника, который имеет доступ к файлам приложения. Если злоумышленник сможет извлечь ключ, то шифрование данных не обеспечит дополнительной защиты, помимо безопасности файловой системы на базе идентификаторов пользователя, которая встроена в ОС Android.

Класс EncryptedLocalStore можно использовать для хранения данных, но эти данные не шифруются на устройствах Android. Вместо этого модель безопасности Android основана на использовании присваиваемого приложению идентификатора пользователя, который служит для защиты данных от использования другими приложениями. Приложения, использующие общий идентификатор пользователя и подписанные одним сертификатом для подписи кода, пользуются одним зашифрованным локальным хранилищем.

Важная информация. На взломанном телефоне приложения, выполняющиеся с использованием прав суперпользователя, могут получать доступ к файлам любого приложения. Таким образом, данные, находящиеся в зашифрованном локальном хранилище, не защищены на взломанных устройствах.