Москва ТЕЛЕКОМ

Сертификаты Минцифры на мобильных устройствах: разбор по пунктам

Сертификаты Минцифры на мобильных устройствах: разбор по пунктам

Источник: ComNews

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

Решение существует — Национальный удостоверяющий центр Минцифры выдаёт собственные сертификаты. Но операционные системы о нём не знают и по умолчанию ему не доверяют, поэтому пользователю приходится устанавливать сертификаты вручную. Делают это единицы. Поэтому Ассоциация банков России предложила Минцифры сделать установку этих сертификатов обязательной — вплоть до встраивания в устройства на этапе производства. В предложении несколько мер, и они очень разные по выполнимости. Разберём каждую.

Предустановка в российские ОС — выполнимо

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

Встраивание на этапе производства смартфонов — маловероятно

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

Здесь возникает резонное возражение: российское ПО ведь уже предустанавливается на официально поставляемые смартфоны через региональные сборки — почему нельзя так же добавить сертификат? Разница в том, что именно добавляется. Приложения живут в обычном слое, их можно удалить, и модель доверия устройства они не меняют — поэтому такая сборка с требованиями Google не конфликтует. Корневой сертификат в системном хранилище меняет то, кому доверяет вся система, включая приложения, которые на эту модель рассчитывают. Технически производитель это сделать может. Вопрос в цене: российский рынок против сертификации для всей линейки.

Автоматическая установка при обновлении банковского приложения — нереализуемо

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

Установка в одну кнопку через Госуслуги — частично

Для Windows и Linux работает: единый подписанный установщик задачу решает. На мобильных упрётся в то же самое — максимум пользовательское хранилище, а это половина решения. Почему половина, объясним ниже.

iOS — ручная установка возможна, предустановка нет

Здесь часто говорят, что на iPhone добавить корневой сертификат в системное хранилище нельзя. Это неточно. Официальная инструкция существует: открыть страницу в Safari, скачать профиль конфигурации, установить его, ввести код-пароль, а затем вручную включить доверие в разделе "Доверие сертификатам" настроек устройства — отдельно для каждого корневого сертификата. После этого доверие становится полным. Невыполнимо другое: сделать это за пользователя. Ни производитель при сборке, ни приложение при обновлении профиль не установят. Только руками и только самим владельцем.

Кросс-сертификация с центрами дружественных стран — не решает задачу

Доверие определяется не соглашениями между удостоверяющими центрами, а тем, включён ли корневой сертификат в хранилища операционных систем и браузеров. Эти хранилища ведут Google, Apple, Microsoft и Mozilla по собственным критериям. Договорённость с центром другой страны не добавит российский корневой сертификат в хранилище Chrome.

Информационная кампания — выполнимо, но требует осторожности

Единственная мера, которая ни от кого не зависит. И у неё есть обратная сторона. Если массово приучить людей скачивать и устанавливать корневые сертификаты по инструкции, появится готовый сценарий для мошенников: "чтобы войти в банк, установите сертификат по ссылке". Человек, которому объяснили, что это нормальная процедура, выполнит её и с поддельным сертификатом. А контроль над корневым сертификатом — это контроль над всем зашифрованным трафиком жертвы.

Почему пользовательского хранилища недостаточно

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

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

Там же, в разделе вопросов, есть отдельный пункт: приложение работает, но страницы авторизации или подтверждения транзакции в нём не открываются. Это та же причина — встроенная веб-страница наследует политику доверия приложения.

Мы столкнулись с этим с другой стороны. В нашем исследовании трафика стоковых смартфонов, чтобы вообще что-то расшифровать, пришлось получить root и подменить системное хранилище: пользовательский сертификат системные компоненты просто не замечали.

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

Что в IXIUS

Корневые сертификаты НУЦ предустановлены в системное хранилище. То, о чём просят банки, у нас сделано — просто потому, что мы контролируем свою ОС.
И сразу то, что следует сказать вместе с этим. Любой предустановленный корневой сертификат — концентрация доверия. Тот, кто им управляет, технически способен выпустить сертификат на любой домен. Это свойство модели, одинаково верное для всех удостоверяющих центров.

Поэтому в IXIOS доверие к любому сертификату, включая НУЦ, отключается самим пользователем штатными средствами системы. Предустановка избавляет от ручной установки, но не делает доверие обязательным: решение остаётся за владельцем устройства. Отзыв скомпрометированного сертификата у нас возможен двумя путями — обновлением прошивки и через MDM для корпоративного парка. Честно: автоматической раскатки за считаные часы, как это умеет Google через свои сервисы, у нас нет.

Что в итоге

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