Безопасность android — system permissions android

returnt

29.11.2016

Безопасность Android

System Permissions (разрешения android)

system permissions android является привилегией разделенных операционной системы, в которой каждое приложение работает с отдельной идентичности системы (Linux идентификатор пользователя и идентификатор группы). Части системы также разделены на отдельные идентичности. Linux тем самым изолирует приложения друг от друга и от системы.

Дополнительные функции безопасности более мелкозернистой обеспечиваются через механизм «разрешения», что обеспечивает соблюдение ограничений в отношении конкретных операций, что конкретный процесс может выполнять, и за URI разрешения на предоставление специального доступа к определенному функционалу.

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

Security Architecture – архитектура системы безопасности Android

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

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

Изолированная программная среда приложения не зависит от технологии, используемой для создания приложения. В частности, Dalvik VM не является границей зоны безопасности, и любое приложение может работать машинный код (см Android NDK). Все типы приложений — Java, родной, и гибридные — песочницу таким же образом имеют одинаковую степень безопасности друг от друга.

Application Signing (сертификат безопасности Android app)

Все APK-файлы (файлы с расширением  .apk) должны быть подписаны с помощью сертификата, чей закрытый ключ принадлежит своему разработчику. Этот сертификат идентифицирует автора приложения. Сертификат не должен быть подписан органом сертификации; это вполне допустимо, и характерно, Android приложений, чтобы использовать собственные сертификаты. Цель сертификатов в Android заключается в различии авторов приложений. Это позволяет системе предоставлять или запрещать приложениям доступ к разрешениям подписи уровне и о выдаче или отказе по запросу приложения, чтобы иметь такой же идентификатор Linux в качестве другого приложения.

Using Permissions

Основной Android приложение не имеет прав, связанных с ним по умолчанию, то есть он не может ничего, что могло отрицательно сказаться на пользовательский опыт или какие-либо данные устройства. Для того, чтобы использование защищенных функций устройства, вы должны включать в себя один или более <uses-permission> теги в приложении манифеста.

Например, приложение, которое должно контролировать входящие SMS-сообщения будет указать:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.app.myapp" >
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    ...
</manifest>