Возможности GrapheneOS

На этой странице представлен обзор реализованных на данный момент функций, отличающих GrapheneOS от AOSP.

snowden

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

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

GrapheneOS также усердно работает над устранением пробелов, связанных с отсутствием в ОС приложений и сервисов Google. Мы не против того, чтобы пользователи пользовались сервисами Google, но они не должны быть интегрированы в ОС в навязчивой форме.

Изоляция Google Play

В GrapheneOS есть слой совместимости, позволяющий устанавливать и использовать официальные релизы Google Play в стандартной песочнице приложений. Google Play не получает абсолютно никакого специального доступа или привилегий в GrapheneOS, в отличие от обхода песочницы приложений и получения огромного количества высокопривилегированного доступа. Вместо этого слой совместимости заставляет его работать в полной песочнице приложений. Он также не используется в качестве бэкэнда для служб ОС, как это было бы в других случаях, поскольку GrapheneOS не использует Google Play, даже когда он установлен.

Поскольку приложение Google Play - это обычное приложение в GrapheneOS, вы устанавливаете его в определенном пользовательском или рабочем профиле, и оно доступно только в этом профиле. Только приложения в том же профиле могут использовать его, и они должны явно выбрать его для использования. Оно работает так же, как и любое другое приложение, и не имеет никаких особых возможностей. Как и любое другое приложение, оно не может получить доступ к данным других приложений и требует явного согласия пользователя для получения доступа к данным профиля или стандартных разрешений.

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

Слой совместимости включает полную поддержку Play Store. Сервисы Play Store полностью доступны, включая покупки в приложениях, проверку лицензий приложений/контента и т.д. Play Store может устанавливать, обновлять и удалять приложения, используя стандартный подход, требующий, чтобы пользователь авторизировал его как источник приложений и дал согласие на каждое действие.

Android Auto

GrapheneOS предоставляет возможность устанавливать и использовать официальные версии Android Auto.

Для работы Android Auto требуется привилегированный доступ. GrapheneOS использует расширение слоя совместимости Google Play, чтобы заставить Android Auto работать с пониженным уровнем привилегий.

Разрешение на использование сети

В GrapheneOS добавлен переключатель “Network permission” для запрета прямого и косвенного доступа к любой из доступных сетей. Локальная сеть устройства (localhost) также защищена этим разрешением, что важно для предотвращения использования ее приложениями для связи между профилями. В отличие от реализации на основе межсетевого экрана, переключатель не позволяет приложениям использовать сеть через API, предоставляемые ОС или другими приложениями в том же профиле.

network-toggle

Чтобы не нарушать совместимость с приложениями, разрешение включено по умолчанию. Однако пользовательский интерфейс позволяет отключить его в диалоге при установке приложения.

Когда разрешение отключено, GrapheneOS делает вид, что сеть отключена. ОС показывает сеть как отключенную в различных API, возвращает ошибки, свидетельствующие о проблеме с подключением к сети, а не об отмене разрешения. В результате приложения работают так, как будто сеть отключена, а не падают или выдают ошибки, пытаясь использовать сеть и не имея возможности сделать это.

Настройка разрешений для датчиков

Запрет доступа к датчикам: запрет доступа ко всем другим датчикам, не входящим в существующие разрешения Android (камера, микрофон, датчики тела, распознавание активности), включая акселерометр, гироскоп, компас, барометр, термометр и любые другие датчики, присутствующие на данном устройстве. Когда доступ отключен, приложения получают обнуленные данные при проверке значений датчиков и не получают событий.

Чтобы не нарушать совместимость с приложениями, разрешение включено по умолчанию. Когда приложение пытается получить доступ к датчикам и получает обнуленные данные, GrapheneOS создает уведомление, которое можно легко отключить. Разрешение Sensors можно отключить по умолчанию для приложений, установленных пользователем, через “Настройки” ➔ Конфиденциальность.

Области хранения

GrapheneOS предоставляет настройку областей хранения (Storage Scopes) в качестве полностью совместимой альтернативы стандартным разрешениям на хранение данных в Android. Вместо того чтобы предоставлять разрешения на хранение, пользователи могут включить Storage Scopes, чтобы приложение считало, что у него есть все разрешения на хранение, которые оно запрашивает. В Android приложение, не имеющее разрешений на хранение, все равно может создавать файлы и каталоги, а также получать доступ к созданным файлам. Пользователи могут добавлять файлы и каталоги в качестве диапазонов хранения, чтобы разрешить приложению доступ к файлам, созданным другими приложениями.

Доступ к контактам

GrapheneOS предоставляет диапазоны контактов в качестве альтернативы предоставлению разрешения “Контакты”. По умолчанию он действует так, как будто список контактов пуст, и пользователи могут предоставлять различные виды доступа определенным контактам или группам контактов.

Режим использования только LTE

Режим LTE-only позволяет уменьшить площадь атаки на сотовые радиостанции за счет отключения огромного количества как устаревшего кода (2G, 3G), так и нового кода (5G).

Приватность Wi-Fi

GrapheneOS поддерживает рандомизацию MAC-адресов на каждое соединение и включает ее по умолчанию. Это более приватный подход, чем стандартный постоянный MAC для каждой сети, используемый в современных Android.

Когда используется рандомизация MAC-адресов для каждого соединения, состояние DHCP-клиента стирается перед повторным подключением к сети, чтобы избежать обнаружения того, что это, скорее всего, то же самое устройство, что и раньше.

Приватные снимки экрана

В GrapheneOS отключено добавление конфиденциальных метаданных в скриншоты.

В Android каждый скриншот содержит EXIF-тег с подробной информацией о сборке/версии ОС (android.os.Build.DISPLAY). Это то же значение, которое отображается в разделе “Настройки” ➔ О телефоне ➔ Номер сборки. В этом случае можно узнать ОС, версию ОС, а также, как правило, семейство/модель устройства, поскольку сборки обычно относятся к одному семейству устройств. В GrapheneOS этот тег полностью отключен.

В Android снимки экрана также содержат EXIF-теги с датой, временем и часовым поясом. GrapheneOS отключает эти теги по умолчанию, чтобы избежать утечки информации через метаданные, которые не видны пользователю. Дата и время уже включены в имя файла скриншота, которое полностью видно пользователю и может быть легко изменено им без использования сторонних инструментов. В GrapheneOS предусмотрена опция для включения этих метаданных в меню “Настройки” ➔ Конфиденциальность, поскольку некоторые пользователи могут счесть их полезными.

Устранение утечек идентификаторов устройства

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

Перемешивание кнопок ввода PIN

В GrapheneOS добавлена опция для перемешивания кнопок ввода PIN-кода, чтобы повысить сложность определения PIN-кода, вводимого пользователем либо из-за физической близости атакующего, либо по побочному каналу. Перемешивание применяется как к экрану блокировки, так и к PIN/PUK для SIM.

Настройки приватности по умолчанию

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

Мы изменяем настройки по умолчанию, отдавая предпочтение приватности, а не мелким удобствам: персонализированные предложения клавиатуры, основанные на сборе истории ввода, по умолчанию отключены, важные уведомления по умолчанию скрыты на экране блокировки, а пароли по умолчанию скрыты при вводе.

По умолчанию мы используем серверы GrapheneOS для следующих служб вместо серверов Google:

  • Проверка подключения
  • Предоставление аттестационного ключа
  • Загрузка альманаха GNSS (PSDS) для Broadcom и Qualcomm (XTRA)
  • Безопасное определение местоположения в плоскости пользователя (SUPL)
  • Сетевое время
  • Обновление компонентов Vanadium (Chromium)

Мы предоставляем возможность переключения обратно на серверы Google для проверки соединения, предоставления ключей аттестации и загрузки альманаха GNSS.

Поддержка длинных паролей

GrapheneOS поддерживает установку более длинных паролей по умолчанию: 64 символа вместо 16.

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

Автоматическая перезагрузка

Опция, позволяющая автоматически перезагружать устройство, когда ни один профиль не был разблокирован в течение заданного периода времени, чтобы перевести устройство в состояние полного покоя, которое по умолчанию включено на 18 часов. Эту настройку можно выполнить в разделе “Настройки” ➔ Безопасность ➔ Auto reboot.

Безопасная разблокировка по отпечатку пальца

GrapheneOS повышает безопасность функции разблокировки по отпечатку пальца, разрешая только 5 попыток, а не 30-секундную задержку между каждыми 5 неудачными попытками с общим числом попыток 20. Это не только уменьшает количество потенциальных попыток, но и позволяет легко отключить функцию разблокировки по отпечатку пальца, намеренно не сумев разблокировать устройство 5 раз другим пальцем.

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

Профили пользователей

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

users-2

GrapheneOS увеличивает ограничение на количество вторичных профилей пользователей до 32 (31 + гость) вместо всего 4 (3 + гость), чтобы сделать эту функцию более гибкой.

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

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

Репозиторий приложений GrapheneOS

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

apps

Vanadium: улучшенный WebView и браузер по умолчанию

GrapheneOS включает браузер Vanadium в качестве реализации WebView, предоставляемой ОС, и браузера по умолчанию. Vanadium - это усиленный вариант Chromium, обеспечивающий повышенную приватность и безопасность. В настоящее время браузер Vanadium не предоставляет много возможностей, но в долгосрочной перспективе планируется множество улучшений.

Приложение Auditor и сервис аттестации

Приложение Auditor и сервис аттестации обеспечивают надежную аппаратную проверку подлинности и целостности прошивки/программного обеспечения устройства. Используется надежный подход, который также обеспечивает проверку подлинности устройства на основе аппаратного ключа, генерируемого для каждого сопряжения.

Camera

GrapheneOS Camera - это современное приложение для камеры с отличным пользовательским интерфейсом и акцентом на приватность и безопасность.

PDF Viewer

GrapheneOS PDF Viewer - это защищенная программа для просмотра PDF-файлов, использующая HiDPI-рендеринг с такими функциями, как масштабирование, выделение текста, просмотр зашифрованных PDF-файлов и т. д.

Зашифрованные резервные копии

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

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

Индикатор доступа к данным о местоположении

GrapheneOS включает индикатор доступа к данным о местоположении в дополнение к стандартным индикаторам камеры и микрофона в Android. Индикатор отображается, когда приложение, которому пользователь дал разрешение на доступ к местоположению, запрашивает данные о местоположении.

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

Установленные пользователем приложения можно отключить

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

С полным списком и более детальным описанием возможностей GrapheneOS можно ознакомиться на официальном сайте проекта в разделе Features.