Установщик сертификатов android что это за программа и нужна ли она

Установщик сертификатов android что это за программа и нужна ли она

С ростом популярности операционных систем, растет также и необходимость в обеспечении безопасности системы. С каждым днём количество атак увеличивается, а каждое обновление несет в себе новые «дыры» в системе безопасности. Я Анастасия Худоярова, ведущий специалист по безопасной разработке в Awillix, расскажу о том, как развивалась система безопасности в Android раньше и как можно обойти некоторые ее механизмы сегодня.

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

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

Чтобы они у вас открывались, необходимо установить российские сертификаты на свои устройства.

Объявления

>«> Внимание!</h3>
<div>
<p><b><span>Новые темы необходимо создавать только в <span title=корневом разделе! В дальнейшем они будут обработаны модераторами.

Если Вы выложили новую версию программы, пожалуйста, сообщите об этом модератору нажав на вашем сообщении кнопку «Жалоба».

Каталог программ Android

крайне полезная утилита для adguard например

* PR18, она же весит всего 1 Мб.
Она вам так сильно мешает?

Отлично. Надо для Adguard, Android 4.4.2 и 5.1 — перенеслось и больше не появляется «сеть может отслеживаться»

Сообщение отредактировал marchello29 — 15.01.20, 11:22

А где взять корневые сертификаты? А то существующие просрочились. 4 и 5 андроид. Прошивок больше нет и не ожидается.

А где взять корневые сертификаты? А то существующие просрочились. 4 и 5 андроид.

6 и 7 тоже скоро отыквятся(.

А где взять корневые сертификаты?

Вот сертификаты от андроида 11, заменяем папку /system/etc/security/cacerts на ту что в архиве и сообщения о просроченных сертификатах пропадают.
Главное чтобы разрешения были правильные: у папки 755, у файлов 644

Прикрепленный файлcacerts.zip ( 389.92 КБ )

* SH_IZI_K, А где остальные ?
см скрин👇

Прикрепленное изображение

* 🌿Vint-8🌿, У меня в прошивке(lineage os) cacerts_google отсутствуют, так что насчет их сказать ничего не могу, а otacerts.zip и fsverity менять не нужно, ибо к корневым сертификатам они не относятся

Прикрепленное изображение

Сообщение отредактировал SH_IZI_K — 07.05.22, 20:20

Причина редактирования: Скриншот под спойлер убрал

С чего все начиналось

Путь по защите Android-а был тернист. На конец 2021 года устройства Android насчитывали более 2,5 миллиарда активных пользователей, что составляет около 75% мирового рынка. Данная ОС стремительно развивалась с 2008 года и претерпела много изменений. В том числе это коснулось системы безопасности.

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

Android использует ядро Linux, поэтому его архитектура и все используемые механизмы очень похожи.

На уровне ядра были добавлены дополнительные функции, а также усилены меры безопасности, например, касающиеся использования IPC средств межпроцессного взаимодействия (в Android поддерживаются только сокеты) так называемых Binder-ов; были внедрены дополнительные настройки в политике SELinux, чтобы ограничить доступ к сетевым сокетам, обладающим определенными полномочиями. 

На уровне приложенийвыполнено разделение на read-only системные приложения и read-write пользовательские приложения, которые запускаются в своих песочницах с четко определенными правами.

Принцип разделений привилегий приложений и принцип наименьших привилегий – это самые важные аспекты в модели безопасности Android. Права запрашиваются приложениями с помощью их объявления в AndroidManifest.xml файле. Этот файл представляет собой описание основной информации о приложении системы. На основе указанных в манифесте разрешений система решает можно ли выдать такие права.

Компания Google в рамках инициативы APVI раскрыла новую уязвимость, затрагивающую устройства от Samsung, LG, MediaTek и других вендоров. Причиной стали попавшие в открытый доступ сертификаты (ключи) для подписи системных Android-приложений ряда OEM-производителей.

Android

Вышеупомянутые ключи используется для проверки оригинальности версии Android и того, что она была создана непосредственно производителем, а не кем-то со стороны. Но они же могут использоваться и для подписи отдельных приложений, чтобы система автоматически считала такие программы безопасными и надёжными. Следовательно, злоумышленник может предоставить вредоносной программе все разрешения на системном уровне, получив полный доступ к данным на устройстве.

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

Android

Google публично не уточняет, какие устройства или OEM-производители были затронуты, но известно, что часть скомпрометированных сертификатов принадлежат Samsung, LG, Revoview и MediaTek. Сейчас компании, чьи ключи были украдены, должны в экстренном порядке заменить их на новые. Google также призвала всех производителей Android-устройств сократить до минимума использования этих сертификатов и применять только к приложениям, для которых действительно необходим самый высокий уровень разрешений. Компания также рекомендует регулярно менять сертификаты, чтобы минимизировать ущерб от подобных утечек в будущем.

Отдельно отмечается, что система защиты Google Play Protect уже обновлена и способна обнаружить скомпрометированные этими сертификатами приложения.

Как установить сертификат на самсунг?

Нажмите кнопку Откройте настройки безопасности. 5) Это вызовет переход в системные настройки. Прокрутите экран вниз до раздела Дополнительно, перейдите в него и далее в раздел Шифрование и учётные данные. 6) Нажмите кнопку Установка сертификатов и затем кнопку Сертификат центра сертификации.

Что такое сертификат на телефоне?

Сертификат — это файл, с помощью которого можно подписать приложение и установить его на конкретный смартфон, работающий под управлением операционной системы Symbian OS 9. х. Не имея сертификата для вашего смартфона, вы не сможете устанавливать очень многие приложения.

Где хранятся сертификаты на телефоне?

Android хранит сертификаты CA в своем хранилище ключей Java в /system/etc/security/cacerts.

Для скачивания сертификата безопасности перейдите по ссылке. Проверить работу сертификата можно на сайте check.isca.gov.kz. Если страница по ссылке успешно открылась — значит сертификат установлен. Если нет — рекомендуется установить его по инструкциям.

Как установить сертификат на андроид 10?

  1. Откройте настройки телефона.
  2. Нажмите Безопасность Дополнительные настройки …
  3. В разделе «Хранилище учетных данных» выберите Установка сертификатов
  4. В левом верхнем углу нажмите на значок меню .
  5. Выберите «Открыть» и найдите сертификат.
  6. Нажмите на файл. …
  7. Введите название сертификата.
  8. Нажмите ОК.

Как установить сертификат Charles на андроид?

  1. Настройте свой мобильный телефон: перейдите в Настройки → Беспроводная связь и сети → WiFi → Подключите или измените свою сеть, заполните IP-адрес компьютера и порт (8888):
  2. В поле «Имя сертификата» введите все, что хотите.
  3. Принять предупреждение о безопасности и установить сертификат.

Что такое сертификат на андроид?

Сертификат — это файл, с помощью которого можно подписать приложение и установить его на конкретный смартфон, работающий под управлением операционной системы Symbian OS 9. х. Не имея сертификата для вашего смартфона, вы не сможете устанавливать очень многие приложения.

Что будет если удалить все сертификаты на телефоне?

Что будет если отключить сертификат безопасности?

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

Как удалить установленные сертификаты андроид?

Удаление старого сертификатa на Android

Заходим на своем устройстве в Настройки -> Безопасность. Двигаемся в самый низ, находим пункт «Удалить сертификаты«. Нажимаем. Появляется запрос на потдверждение удаления сертификатов, жмём «ОК».

Как удалить Эцп с телефона?

Инструкция для Android:

Зайдите в настройки > Безопасность > Очистить учетные данные. Введите пароль к устройству, если потребуется. Удалите сертификат. При необходимости перезагрузите устройство.

Что такое сертификаты безопасности в телефоне?

Сертификат на телефон – это документ, который подтверждает, что продукцию можно законно импортировать, производить и реализовывать на территории нашего государства и/или ЕАЭС. Данный документ является гарантией качества и безопасности подконтрольного продукта.

Как загрузить сертификат безопасности?

Как установить сертификат

  1. Нажмите «Пуск», «Выполнить» (или просто писать в поле поиска), запустите программу mmc.exe.
  2. Нажмите CTRL-M. …
  3. Выберите оснастку «Сертификаты» / «Certificates», добавляйте с параметром по умолчанию (выбрана «моя учетная запись»).
  4. Закройте диалог добавления оснастки.
Читать также:  В Нижегородской области с 1 января 2020 года вводится жилищный сертификат для многодетных семей

Для телефонов на базе Android

  1. Скачать сертификат для Android.
  2. «Настройки» → «Безопасность и месторасположение» → Шифрование и учетные данные → Хранилище учетных данных → «Установить»
  3. Найдите сертификат. Выберите файл. …
  4. Введите название сертификата Qaznet Trust Network. …
  5. Подробную инструкцию можно посмотреть здесь.

Что обозначает морфологический разбор?
Что обозначает номер 112?
Что обозначает паук?
Что обозначает паутина?
Что обозначает первая цифра штрих кода?
Что обозначает пирамида?
Что обозначает православный крест?
Что обозначает праздник Петра и Павла?
Что обозначает штрих код?
Что обозначает символ?

Проблемы перехвата трафика

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

В наше время для взаимодействия компонентов веб-приложений используется протокол HTTPS, в основе которого лежат протоколы HTTP и TLS. Просто так перехватить трафик приложения не выйдет, т.к. он зашифрован. Можно, конечно, использовать прокси сервер, который с помощью своего сертификата сможет расшифровать трафик приложения и увидеть все запросы. Однако и средства защиты приложений не стоят на месте. Многие мобильные приложения используют SSL Pinning.

SSL Pinning – это внедрение SSL сертификата, который используется на сервере в код мобильного приложения. Таким образом, приложение не использует хранилище сертификатов устройства и не будет работать с сертификатом, который мы ему подсунули.

Ошибка, которая возникает в случае использования Burp suite для перехвата трафика с помощью собственного сертификата
Ошибка, которая возникает в случае использования Burp suite для перехвата трафика с помощью собственного сертификата

Установка на macOS (Mac, MacBook)

  1. Откройте «Госуслуги» и зайдите в раздел «Поддержка работы сайтов с российскими сертификатами».
  2. Перейдите к разделу сертификатов для macOS и скачайте первый — корневой.
  3. Запустите скачанный файл RussianTrustedCA.pem. Откроется приложение «Связка ключей», введите имя пользователя и пароль от текущего профиля на компьютере, а затем нажмите на «Изменить связку ключей».

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на macOS (Mac, MacBook). 1
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на macOS (Mac, MacBook). 2

  4. В «Связке ключей» на вкладке «Сертификаты» в пункте «Вход» (слева) найдите Russian Trusted Root CA и Russian Trusted Sub CA — выберите первый. Раскройте вкладку «Доверие» (под значком сертификата слева) и установите значение «Всегда доверять» в пункте «Параметры использования сертификата». Введите имя пользователя и пароль, а затем нажмите на «Обновить настройки».

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на macOS (Mac, MacBook). 3
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на macOS (Mac, MacBook). 4
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на macOS (Mac, MacBook). 5

  5. Повторите те же действия из четвёртого пункта, но уже для второго сертификата — Russian Trusted Sub CA.

Способы обхода механизмов защиты

  • Frida

Frida – инструмент для динамического внедрения кода в приложение. Утилита прямо в процессе работы приложения способна отслеживать вызовы методов приложения, модифицировать методы приложения, обращаться к памяти выполняемого приложения и многое другое.

Для обхода SSL Pinning с помощью Frida есть несколько готовых скриптов, создающих кастомный TrustManager, который будет доверять нашему сертификату. Рассмотрим скрипт.

Установщик сертификатов android что это за программа и нужна ли она

CertificateFactory и X509Certificate нужны для создания экземпляра сертификата из считанного файла.

 FileInputStream и BufferedInputStream используются для считывания файла сертификата.

KeyStore – наш кастомный KeyStore, в который положим наш сертификат.

TrustManagerFactory создает экземпляр TrustManager, который будет работать с нашим KeyStore.

SSLcontext – реализация протокола SSL, которая выступает как factory для sslSocketFactory.

Установщик сертификатов android что это за программа и нужна ли она

Считываем сертификат cert-der.crt, который мы предварительно поместили на устройство, и создаем экземпляр этого сертификата.

Установщик сертификатов android что это за программа и нужна ли она

Создаем keyStore, в который складываем наш сертификат.

Установщик сертификатов android что это за программа и нужна ли она

Создаем trustManager, который доверяет keyStore с нашим сертификатом.

Установщик сертификатов android что это за программа и нужна ли она

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

Таким образом, данный скрипт готовит TrustManager, а затем использует его в методе вместо того, который передается (переменные a и с передаются в вызов исходной функции, а вот переменная b заменяется на кастомный TrustManager).

Frida позволяет переопределять методы, выполнять собственные скрипты. Поэтому с помощью Frida можно обойти защиту, реализованную через OkHttp CertificatePinner.

Главное преимущество этого метода – отсутствие необходимости патчить исходный код apk и пересобирать приложение. А так как нам не нужно пересобирать приложение, значит этому способу не помешают методы защиты приложения от пересборки.

С другой стороны, для данного метода необходимо подключить телефон к устройству с Frida, установить frida-server на телефон, а это не всегда удобно.

  • Изменение исходного кода и пересборка apk

В случае, если мы хотим один раз произвести обход средств защиты и получить приложение, в котором не будет SSL Pinning, необходимо изменить сам код приложения.

Для этого сначала нужно декомпилировать apk файл. Декомпилируется он в smali код. Smali – ассемблер для android-приложений. Все изменения будут производиться в .smali файлах, так как именно из них будет пересобираться приложение.

Для декомпиляции можно воспользоваться удобной утилитой apktool. Также для декомпиляции работы с разобранным apk, а затем и для сборки можно использовать удобное расширение для Visual Studio Code ApkLab.

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

ApkLab предоставляет также автоматизированный поиск необходимых участков кода. Рассмотрим что и почему он изменяет.

В первом файле утилита закомментировала исполнение следующих методов: checkClientTrusted, checkServerTrusted, getAcceptedIssuers.

Установщик сертификатов android что это за программа и нужна ли она

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

Установщик сертификатов android что это за программа и нужна ли она

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

Метод getAcceptedIssuers должен возвращать массив доверенных сертификатов. Но дальнейшая реализация и использование данного метода работает таким образом, что если мы вернем пустой массив, то программа будет доверять любому сертификату. Именно это и сделала утилита: закомментировала код, в котором происходит получение сертификатов из keyStore (это происходит в методе m7931a), а вместо этого просто возвращается пустой массив.

Установщик сертификатов android что это за программа и нужна ли она

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

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

  • Изменение NSC (Network Security Configuration)

Самый простой способ обхода SSL Pinning.

В случае, если в приложении присутствует NSC, необходимо его изменить. В файле NSC могут быть прописаны base-config и domain-config.

В base-config может быть указано, каким сертификатам приложение может доверять.

Установщик сертификатов android что это за программа и нужна ли она

В domain-config настраиваются домены.

Установщик сертификатов android что это за программа и нужна ли она

Для обхода защиты достаточно лишь убрать весь блок <domain-config>.

ApkLab также умеет делать автоматическое изменение NSC файла.

Установщик сертификатов android что это за программа и нужна ли она

В случае отсутствия файла в проекте утилита создает его с указанным выше содержимым, а также прописывает его в AndroidManifest.xml.

  • Подмена файла сертификата

В случае, когда защита реализована с помощью TrustManager, использующего KeyStore, в котором лежит доверенный сертификат. Обычно KeyStore вшит в приложение. В .apk KeyStore обычно лежит либо в /res/raw, либо /assets.

Установщик сертификатов android что это за программа и нужна ли она

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

Установка на iOS (iPhone и iPad)

  1. Откройте «Госуслуги» и зайдите в раздел «Поддержка работы сайтов с российскими сертификатами».
  2. Перейдите к разделу сертификатов для iOS и нажмите на кнопку «Скачать профиль». После этого на экране появится уведомление «Веб-сайт пытается загрузить профиль конфигурации. Разрешить?» — разрешите. Затем должно появиться уведомление о том, что профиль загружен.

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 1
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 2

  3. Перейдите в «Настройки» устройства и выберите появившийся пункт «Профиль загружен» (под вашим именем в iCloud). Откроется окно установки профиля — нажмите в правом верхнем углу «Установить» и введите код-пароль (который используется при разблокировке).

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 3
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 4
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 5

  4. Отобразится окно-предупреждение — снова нажмите «Установить» в правом верхнем углу, а затем эту же кнопку внизу. Должно появиться меню с оглавлением «Профиль установлен» — справа вверху нажмите на «Готово».
  5. Теперь необходимо включать доверие сертификатам. Вернитесь в «Настройки» устройства и перейдите в раздел «Основные» ➝ «Об этом устройстве» ➝ «Доверие сертификатам» (в самом низу). Включите доверие сертификату Russian Trusted Root CA, сдвинув переключатель справа от него (ползунок должен стать зелёным). В появившемся окне нажмите «Дальше».
  6. Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 6
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 7
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 8
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 9
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на iOS (iPhone и iPad). 10

Читать также:  Как получить сертификат по английскому языку для выезда за границу и как им пользоваться

Новшества системы

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

Из последних новшеств — введение проверки SafetyNet. SafetyNet представляет собой набор API, позволяющий приложениям проверять устройство на предмет компрометации. SafetyNet жизненно необходим банковскому и финансовому ПО: производится проверка оригинальности устройства по серийным номерам, оригинальность прошивки, наличие root прав, контрольные суммы, проверка того, доверенное ли устройство, по его отпечатку.

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

Что нужно знать до установки

  • Сертификат понадобится на всех устройствах, с которых вы планируете заходить на требующие его отечественные сайты. Их придётся установить на смартфон, компьютер и/или планшет отдельно.
  • Для доступа к российским сервисам через приложение, а не сайт, сертификат не нужен — приложение «Госуслуг», мобильный клиент «СберБанк Онлайн» и другие программы продолжат работать.
  • На официальном сайте «Госуслуг» есть список порталов, которым выдали отечественный сертификат — доступ без российской цифровой подписи будет ограничен только к ним.

Способы защиты приложений

Для того чтобы понять, как обходить защиту, необходимо сначала разобраться, какими средствами эта защита осуществляется. Для этого существуют несколько способов.

Для данного способа необходимо добавить файл сертификата в файлы приложения, затем создать KeyStore и добавить в него наш сертификат.

Установщик сертификатов android что это за программа и нужна ли она

После этого создаем сам TrustManager, который будет работать с нашим KeyStore, в котором находится нужный сертификат.

Установщик сертификатов android что это за программа и нужна ли она

Далее создается SSLContext, который использует наш TrustManager. Затем указываем для URLConnection SocketFactory из созданного SSLContext.

Установщик сертификатов android что это за программа и нужна ли она

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

Данная реализация работает непосредственно с API на достаточно низком уровне, поэтому этот способ надо использовать осторожно.

Установщик сертификатов android что это за программа и нужна ли она

Этот fingerprint высчитывается из сертификата, с которым должно работать приложение, а затем пишется непосредственно в код.

Можно указать несколько сертификатов для разных доменов.

  • Network Security Configuration

Установщик сертификатов android что это за программа и нужна ли она

Затем в AndroidManifest.xml прописывается использование данного файла в качестве android:networkSecurityConfig.

Установщик сертификатов android что это за программа и нужна ли она

Этот способ позволяет редактировать сертификаты, не меняя исходный код приложения.

Установка на Android (Xiaomi и другие)

  1. Откройте «Госуслуги» и зайдите на страницу «Поддержка работы сайтов с российскими сертификатами».
  2. Перейдите к разделу сертификатов для Android и скачайте корневой.
  3. После окончания загрузки перейдите в «Настройки» смартфона, а затем в окне поиска введите «Сертификат» (если этого поля для поиска нет, потяните пункты настроек вниз).

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 1
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 2

  4. Выберите «Сертификат центра сертификации» (название пункта может отличаться в зависимости от прошивки»). Если возникнет предупреждение о возможной угрозе конфиденциальности, пропустите его — нажмите «Всё равно установить» и введите код-пароль от смартфона (который используется при разблокировке).

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 3
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 4

  5. В открывшемся файловом менеджере в папке «Загрузки» или Downloads (либо в разделе «Недавние») выберите Russian Trusted Root CA — имя файла может быть russian_trusted_root_ca.cer. Если сертификат успешно установлен, на экране появится соответствующая надпись.

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 5
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 6

  6. Вернитесь на сайт «Госуслуг» и аналогичным образом установите второй сертификат — выпускающий. На этапе выбора сертификата вам потребуется выбрать Russian Trusted Sub CA, то есть другой файл — russian_trusted_sub_ca.cer.

Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 7
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 8
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 9
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на Android (Xiaomi и другие). 10

Чтобы проверить, успешно ли установились сертификаты, необходимо вернуться к «Настройкам» смартфона и в поле поиска ввести «Надежные сертификаты» (или «Надежные учетные данные») и открыть найденный пункт. В нём в категории «Пользователь» должны быть два сертификата: Russian Trusted Root CA и Russian Trusted Sub CA.

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

Механизмы безопасности внедряются не только касательно самой начинки ОС: новым требованиям Google обязаны следовать и разработчики. Например, теперь нельзя просто так взять и добавить доверенный сертификат в системные или собрать apk приложение без специализированной подписи разработчика.

Касаемо APK, изначально Google ввёл использование специализированных криптографических хэшей и подписи разработчика, хэши считались на части файла. Однако после атаки Janus выяснилось, что для верификации DEX файла используется не весь файл. Соответственно, в неиспользуемую часть можно было внести свои изменения. Баг исправили в новом формате цифровой подписи APK signature scheme v2 и v3, теперь цифровая подпись распространялась на весь файл. Просто установить приложение из Apk стало невозможно. Для прохождения всех проверок Google и его полноценного функционирования, оно должно быть верифицировано, а для этого у разработчика должен быть соответствующий ключ.

Добавление пользовательских сертификатов иногда недостаточно для решения каких-либо задач, например, если надо проксировать трафик, и требуется добавить сертификат именно в системные сертификаты, с чем возникают сложности в последних версиях Android. В соответствии с последними рекомендациями для разработчиков от Google, есть требования сетевых настроек, которые запрещают приложению доверять пользовательским сертификатам: они как бы доверенные, но не сильно. Данное требование относится именно к сетевому трафику приложений. В случае когда необходим доступ к сайту организации с самоподписанным сертификатом, могут быть использованы и пользовательские сертификаты. Возвращаясь к вопросу добавления сертификатов в системное хранилище, возникает проблема — раздел ФС, где хранятся системные сертификаты примонтирован в режиме read-only, поэтому так просто добавить сертификат нельзя. Особенно это усложнилось, начиная с Android 11 и даже 10. Сложность связана с FDE (полнодисковое шифрование), так как процесс монтирования происходит после расшифровки диска в момент загрузки.

Как попытаться защитить свое приложение от хакеров

То есть можно обойти все системы защиты и проксировать трафик. Как тогда защитить свое приложение? На помощь приходит SSL Pinning. Certificate pinning — это внедрение SSL сертификата, используемого на сервере, в код мобильного приложения. В этом случае приложение будет игнорировать хранилище сертификатов устройства, полагаясь только на свое хранилище,  и позволит создать защищенное SSL соединение с хостом, подписанным только сертификатом, что хранится в самом приложении. Реализуется это за счет того, что приложением проверяются сертификаты из pin list. 

Закрепить их там можно несколькими способами: 

  1. С помощью TrustManager добавляется файл сертификата в файлы приложения, создается KeyStore для хранения ключей приложения. Дальнейшая работа ведётся через TrustManager, который будет обращаться к хранилищу KeyStore, где находится  сам сертификат. TrustManager будет работать только с этим сертификатом и проверять совпадение с ним. Иначе говоря, если будет проксироваться трафик, то появятся соответствующие ошибки. 

  2. Последний способ — это Network Security Configuration, где так же, как и в предыдущем способе, фиксируются фингерпринты используемых сертификатов.

Как добавить сертификаты read-only в системные директории?

Добавление пользовательского сертификата в системные означает изменение системных директорий, что запрещено. Обойти это можно лишь получив root-права на телефоне. После этого есть два пути: короткий и приятный vs длинный и немного хардкорный. Начну со второго:

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

adb root # запуск с правами root 

adb remount  # переводит раздел system в режим read-write

adb push cert.0 /system/etc/security/cacerts/  # перенести сертификат с ПК на устройство

Читать также:  Как получить фитосанитарный сертификат для экспорта из россии на зерно
Установщик сертификатов android что это за программа и нужна ли она

Как говорилось выше, существует проверка SafetyNet, которая чутко реагирует на то, скомпрометирован ли телефон. То есть проверяет наличие root-прав. Пентестеру нужно проксировать трафик, то есть нужен доверенный системный сертификат, следовательно, требуются root права. Однако в таком случае не будет проводиться проверка, так как нарушена целостность устройства, а значит и  приложение работать не будет. Есть выход — можно воспользоваться Magisk hide и в Burp поставить игнорирование запросов на Google.

Установщик сертификатов android что это за программа и нужна ли она

Развитие безопасности в Android

Использование ограничений прав в приложениях оказалось недостаточным для защиты от вредоносных программ — Google продолжает ужесточать меры. Разграничение прав на уровне ОС несомненно эффективно, но не гибко, так как всем приложениям могут понадобиться совершенно разные настройки, которые пользователь захочет максимально быстро настроить под себя. Первые попытки гибкого разделения полномочий были предприняты в Android 4.3 через раздел App Ops.

Установщик сертификатов android что это за программа и нужна ли она

В App Ops пользователь мог отозвать и выключить всё, что угодно. Однако это было максимально неэффективно для него. Приложение могло «упасть» даже после отзыва чего-то незначительного. В Android 6.0 исправили эту «маленькую» неприятность: теперь приложение запрашивает права в тот момент, когда они ему нужны. 

Это казалось хорошим решением, но открылась еще большая уязвимость. Стоит поменять в правилах сборки номер версии на более старый, и приложение будет получать все полномочия разом. Хотели сделать безопасно, но до конца не получилось реализовать эту идею. «Не стоит прогибаться под изменчивый мир, пусть лучше он прогнется под нас», — подумали в Google, и волевой рукой отрубили публикацию приложений для устаревших версий ОС. Сейчас, начиная с Android 10, полномочия у софта под старые версии отзываются, приложение попросту не работает. В 11-ой версии появилась возможность делать разрешение на однократный запуск. 

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

  • С Android 8 уже нельзя так просто добраться до серийного номера устройства, становятся недоступными некоторые системные переменные;  

  • В Android 9 установлен запрет на использование камер и микрофона, когда приложение находится в фоновом режиме, также нельзя использовать HTTP без TLS; 

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

  • В Android 11 усложняется доступ к памяти и камере, появляются дополнительные настройки управления подключенными «умными» устройствами в Smart Lock: данная функция способна самостоятельно определить необходимость усиления безопасности.

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

Самый простой способ — использовать российский браузер

Сейчас необходимые сертификаты поддерживаются только российскими веб-обозревателями — Яндекс Браузером и Atom от VK (Mail.Ru). Подробности о работе приложения от «ВКонтакте» неизвестны, но Яндекс.Браузер раскрыл свои алгоритмы. Он применяет сертификаты не для всего рунета, а только для тех доменов, которым выданы эти цифровые подписи — если применять сертификаты сразу на всех сайтах, порталы без их наличия просто не открывались бы.

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

Установка на смартфонах и планшетах Samsung

В гаджетах Samsung используется фирменная прошивка, в которой порядок установки сертификатов немного отличается.

  1. Откройте «Госуслуги» и зайдите на страницу «Поддержка работы сайтов с российскими сертификатами».
  2. Перейдите к разделу сертификатов для Android и скачайте корневой.

    Может появиться следующая ошибка (это нормально, пропустите её нажатием кнопки «ОК»):

  3. Невозможно установить сертификаты CA

    Этот сертификат от приложения null необходимо установить в меню «Настройки». Устанавливайте сертификаты только от ЦС надежных организаций.

  4. Перейдите в «Настройки» смартфона, а затем в окне поиска введите «Сертификат» (значок лупы в правом верхнем углу).

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 1
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 2

  5. Выберите пункт «Сертификат СA», а затем его же ещё раз в новом меню. Если возникнет предупреждение о возможной угрозе конфиденциальности, пропустите его — нажмите «Установить в любом случае» и введите код-пароль от смартфона (который используется при разблокировке).

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 3
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 4
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 5

  6. В открывшемся файловом менеджере в папке «Загрузки» или Downloads (или разделе «Недавние») выберите Russian Trusted Root CA — имя файла может быть russian_trusted_root_ca.cer. Если сертификат успешно установлен, на экране появится соответствующая надпись.

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 6
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 7

  7. Вернитесь на сайт «Госуслуг» и аналогичным образом установите второй сертификат — выпускающий. На этапе выбора сертификата вам потребуется выбрать Russian Trusted Sub CA, то есть другой файл — russian_trusted_sub_ca.cer.

Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 8
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 9
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 10
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 11
Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на смартфонах и планшетах Samsung. 12

Чтобы проверить, успешно ли установились сертификаты, необходимо вернуться к «Настройкам» смартфона и в поле поиска ввести «Сертификаты безопасности» (либо «Надежные сертификаты» или «Надежные учетные данные») и открыть найденный пункт. В нём в категории «Сертификаты безопасности» во вкладке «Пользователь» должны быть два сертификата: Russian Trusted Root CA и Russian Trusted Sub CA.

И снова рубрика «советы атакующим»

К сожалению разработчиков и к счастью пентестеров, и это можно обойти, например, с помощью Frida, только очень аккуратно. Использование Frida и Magisk Hide в неправильном порядке может навредить вашему устройству и работать ничего не будет. Дело в том, что обе программы используют одинаковый процесс zygote64 для внедрения в код запущенного приложения. Их конфликт может сломать обход SSL Pinning, и скрытие root прав, тут-то SafetyNet нас и поймает.

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

Установка на компьютер Windows

  1. Откройте «Госуслуги» и зайдите в раздел «Поддержка работы сайтов с российскими сертификатами».
  2. Перейдите к разделу сертификатов для Windows и скачайте первый — корневой.
  3. Запустите скачанный файл russian_trusted_root_ca.cer, затем нажмите «Открыть», а после — «Установить сертификат».

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 1
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 2

  4. Откроется «Мастер импорта сертификатов». Выберите пункт «Текущий пользователь» и кнопку «Далее».
  5. Отметьте пункт «Поместить все сертификаты в следующее хранилище», нажмите на кнопку «Обзор» и кликните на папку «Доверенные корневые центры сертификации». Затем нажмите на «ОК» и «Далее». В новом окне завершения нажмите «Готово». Если откроется предупреждение системы безопасности, нажмите «Да».

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 3
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 4
    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 5

  6. Вернитесь на сайт «Госуслуг» и аналогичным образом установите второй сертификат — выпускающий. Единственная загвоздка — в меню импорта сертификатов выберите «Автоматические выбирать хранилище на основе типа сертификата».

    Как установить российские сертификаты на Android, Windows, iPhone и macOS — Установка на компьютер Windows. 6

Итог

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

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

Непосредственный патчинг apk хорош тем, что его можно сделать всего раз и на выходе будет приложение без SSL Pinning. Однако на этом пути может помешать защита приложения от пересборки. Конечно и ее можно попытаться обойти, раз мы имеем исходный код приложения, но это потребует больше времени и сил.

Изменение Network Security Configuration достаточно простой и рабочий способ, но редко когда приложения ограничиваются только этим способом защиты. Поэтому знание обхода этого способа SSL Pinning необходимо, но недостаточно.

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

Таблица 1. Область применения

Таблица 2. Сравнение способов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *