Безопасность на устройствах 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
Приложения AIR на устройствах Android могут шифровать данные при сохранении, используя настройки шифрования, доступные во встроенной базе данных SQL. Класс EncryptedLocalStore не поддерживается на мобильных устройствах.