Разрешения приложения
Разрешения приложения — это программные механизмы, используемые для контроля и регулирования доступа к системным функциям и возможностям компьютера или устройства. Как правило, виды разрешений охватывают функции, связанные с конфиденциальностью, например, возможности доступа к аппаратным компонентам устройства (в том числе к камере или микрофону телефона), а также к личным данным пользователя (таким как устройства хранения, контакты и текущее местоположение пользователя). Разрешения обычно декларируются в манифесте программы, при этом определённые права могут быть предоставлены только непосредственно пользователем в режиме выполнения, а также могут быть отозваны им в любое время.
Системы управления разрешениями наиболее распространены в мобильных операционных системах, где перечень требуемых для работы мобильных приложений разрешений объявляется через магазин приложений соответствующей платформы.
Разрешения для мобильных устройств
Ниже перечислены типовые разрешения, встречающиеся в мобильных операционных системах для смартфонов или планшетов:[1][2]
- Доступ к хранилищу и персональной информации, например к контактам, записям календаря и т. п.
- Геолокация.
- Доступ к внутренней камере или микрофону устройства.
- Доступ к биометрическим датчикам, включая сканер отпечатков пальцев и системы распознавания лиц.
- Доступ в Интернет.
- Доступ к коммуникационным интерфейсам (включая их аппаратные идентификаторы и уровень сигнала, при необходимости, а также возможность их активации), например Bluetooth, Wi-Fi, NFC и др.
- Совершение и получение телефонных звонков.
- Отправка и чтение текстовых сообщений.
- Возможность осуществлять встроенные покупки.
- Возможность интеграции с другими приложениями.
- Возможность устанавливать, удалять и управлять приложениями.
- Токены аутентификации (например, токены OAuth) от веб-сервисов, хранящиеся в системе и используемые для совместного доступа приложений.
В версиях до Android 6.0 «Marshmallow» разрешения предоставлялись приложениям автоматически во время выполнения, а их перечень отображался при установке из Google Play Store. Начиная с Marshmallow, отдельные разрешения приложение запрашивает у пользователя в режиме выполнения. Эти разрешения могут быть также отозваны в любой момент через меню настроек Android[3].
Иногда разработчики приложений злоупотребляют разрешениями Android для сбора личной информации пользователя и показа рекламы; известно, что многие приложения для использования камеры телефона как фонарика (необходимость в отдельных приложениях существенно снизилась после добавления этой функции на уровне системы в новых версиях Android) требуют чрезмерное количество разрешений, не связанных с их работой[4].
iOS предъявляет схожие требования к предоставлению разрешений в режиме выполнения, включая отдельные настройки для активации Bluetooth, Wi-Fi и геолокации[5][6].
Веб-разрешения
Веб-разрешения представляют собой систему разрешений для веб-браузеров[7]. Когда веб-приложение запрашивает доступ к определённым данным, оно должно сначала получить разрешение пользователя. В момент запроса на экране появляется всплывающее окно, где пользователю предлагается сделать выбор; принятое решение сохраняется в памяти устройства, но позднее может быть удалено.
В настоящее время через подобные разрешения управляется доступ к следующим ресурсам:
- Геолокация[8]
- Уведомления рабочего стола[9]
- «Сервис-воркеры»[10][11]
- Сенсоры
- Устройства захвата аудио[12], такие, как звуковые карты, а также их модель и характеристики
- Устройства захвата видео[12], например, веб-камеры, их идентификаторы и свойства
Анализ
Модель управления доступом на основе разрешений предоставляет приложению определённые права доступа к объектам данных. Эта схема восходит к дискреционной модели контроля доступа. Как правило, разрешения предоставляются в контексте конкретного пользователя на определённом устройстве и действуют постоянно при минимуме автоматических ограничений.
В ряде случаев реализация разрешений строится по принципу «всё или ничего»: пользователь должен выдать все запрошенные права, иначе не сможет пользоваться приложением. До сих пор существует дефицит прозрачности при фактическом доступе программы к данным, защищённым разрешениями. Даже если пользователь отзывает разрешение, приложение может попытаться снова запросить его, например, путём зависания или повторным требованием разрешения для продолжения работы.
Система разрешений подвергается широкой критике исследователей по нескольким причинам:
- Недостаточная прозрачность в отношении сбора личных данных и слежки, в том числе создание ложного ощущения безопасности[13][14].
- Усталость пользователя, когда необходимость микроуправлять разрешениями приводит к фаталистическому принятию факта слежки и отсутствия прозрачности[15].
- Извлечение личных данных и массовая слежка после предоставления прав[16][17].
Некоторые приложения, например XPrivacy и Mockdroid[18], подменяют данные в целях приватности. Среди других методов повышения прозрачности — построение поведенческих профилей и анализ приватности из нескольких источников данных приложений[19][20].