TLS Сертификат Минцфиры на приложениях?

Здравствуйте, я провожу небольшое исследование цензуры РуНета - от блокировок через ТСПУ до контроля инфраструктуры. Один из интересующих меня вопросов - сертификат TLS от Минцифры (Russian Trusted Root CA). Скажите, есть ли известные вам приложения или программы, в которых были бы встроены сертификаты TLS Минцифры? Если такие есть, может ли установка такого приложения добавить российский TLS в корневые сертификаты девайса? Заранее спасибо!

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

в крипто-про помоему есть возможность при установке поставить галочку “установить сертификаты минцифры”
но скорее всего там просто скачивается отдельно

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

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

Спасибо! но установка сертификата необязательна для нормального функционирования системы?

Необязательна, конечно. Другое дело, может какие-нибудь зависимости их подтягивают, хотя врядли. Ещё какой-то Хромиум ГОСТ обсуждают.

У android есть два хранилища сертификатов: Системное хранилище и Пользовательское хранилище.
Системное хранилище, начиная с android 14 такое сделать невозможно, а даже имея root-права на устойстве такое будет провернуть крайне проблематично, потому что они поставляються Google в пакете APEX, изменить и применить изменения в таком роде пакетов можно только имея возможноть подписывать пакеты/приложения от имени Google, что невозможно.

Пользовательское хранилище: А вот сюда можно такое установить, НО это требует явного действия пользователя через настройки безопасности устройства, и система показывает предупреждения. Незаметно - нет нельзя. А так же начиная с Android 7.0 (Nougat), приложения, ориентированныена API 24 и выше, по умолчанию не доверяют сертификатам из пользовательского хранилища. Чтобы приложение доверяло пользовательским сертификатам, разработчик должен явно разрешить это в конфигурации сетевой безопасности приложения. Большинство современных приложений естественно не делают этого из соображений безопасности. Поэтому если Янхер захочет Вам закатать сертификат от мин цифры и попробовать его использовать в других приложениях, будь то браузеры (firefox, chrome) или например приложения с пользовательским контентом (Google Drive, Dropbox и т.д), то у него такой трюк не прокатит.

На iOS все чуть проще: сертификат можно установить через профиль конфигурации, но пользователю нужно перерыть настройки и несколько раз согласиться на установку стороннего сертификата

На Linux: такие сертификаты можно установить в /usr/local/share/ca-certificates/ или /etc/ssl/certs/, но нужно это делать через root.

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

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

А так же не забываем про Certificate pinning, когда приложение использует исключительно свои сертификаты, и ему без разницы какие сертификаты установлены на системе, хоть только единственный о Минцифры, он с ним работать не захочет, но и это имеет обратную силу, тот же Янхер браузер может запинить сертификат от Минцифры и с другими не рабоать

1 Like

Потом ещё нужно выполнить, для Debian:
sudo update-ca-certificates
для Fedora:
sudo update-ca-trust

В post-install скриптах deb пакета яндекс браузер может сделать что угодно. Часто браузеры добавляют свою репу и прописывают обновления в cron. Так что лучше ставить просто распаковкой папки в /opt (можно куда угодно, в общем-то, но лучше чтобы не было прав на запись). Или перепаковкой deb, очищая лишнее, но это несколько нетривиально.

В любом случае, post-install скрипты совершенно прозрачны, в отличии от exe установщиков.

1 Like

Если речь идет про андроид: без root такое в принципе невозможно, даже при большом желании. можно установить как пользовательский сертификат (только с подтверждением пользователя, просто так — нет), но очень мало какие приложения будут его учитывать. разрешение на использование пользовательских сертификатов должно быть прописано в манифесте приложения. из всех приложений знаю что такое прописано только у ВК и у браузеров.

Ну а на винде/линуксе возможно всё и без ведома пользоватепя.