Сайт ФСТЭК России в браузере Good Bear
Сайт ФСТЭК России в браузере Good Bear

Привет, Хабр. Меня зовут Валерий Ледовской, и последние десять лет я занимаюсь русской локализацией Mozilla. Вы наверняка видели мои статьи про Browser Policy Manager или Russian Spelling Dictionary. Сегодня я хочу рассказать о проекте, который мы с командой готовим к выпуску — и который, надеюсь, вы захотите поддержать.

Зачем ещё один браузер?

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

Good Bear решает эту проблему иначе. Это форк Firefox, в котором доверие к российскому корневому сертификату не является глобальным. Оно ограничено специальным встроенным контейнером. Сайты, чья цепочка заканчивается на точно закреплённом российском корне, открываются в изолированном контексте, а всё остальное — куки, пароли, referrer, тело запроса, состояние сессии — в этот контекст не попадает.

Что уже сделано и что будет

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

Scoped‑доверие вместо глобального. Российский корень принимается только внутри выделенного контейнера, идентифицируемого через userContextId / OriginAttributes. В обычном контексте тот же сертификат по‑прежнему считается недействительным. Никаких строковых эвристик по CN или O — только точная криптографическая идентификация.

Стандартная проверка остаётся стандартной. Hostname, срок действия, подпись, EKU, Key Usage, Basic Constraints, длина цепочки — всё это проверяется ровно так же, как в обычном Firefox. Мы не добавляем GOST, не трогаем криптографию и не делаем «универсальных исключений». Вторичная проверка запускается только после того, как стандартная не прошла, и никогда не превращает уже принятый обычный канал в российский.

Полная изоляция состояния. Куки, localStorage, IndexedDB, Cache API, service workers, HTTP‑аутентификация, клиентские сертификаты, переиспользование соединений и 0-RTT не пересекают границу контейнера. Менеджер паролей и автозаполнение в российском контейнере отключены — если нельзя доказать безопасное разделение, лучше перестраховаться.

Безопасная навигация. POST/PUT/PATCH не воспроизводятся автоматически: если сайт требует тело запроса, мы не будем его переотправлять. Редиректы классифицируются на каждом шаге. Российские подресурсы в обычных страницах блокируются.

Понятный интерфейс. В адресной строке — отдельный нейтральный маркер контейнера и отдельный значок RU для российского PKI. Они не смешиваются. В security popup видно цепочку сертификатов и источник доверия. Все строки — на русском, потому что Good Bear — русскоязычный продукт: мы не делаем отдельную английскую сборку.

Ребрендинг без потери происхождения. Продукт называется Good Bear, у него свой маскот — медведь в очках, — но все обязательства MPL-2.0 и указания на Mozilla и третьи стороны сохранены. Мы никого не вводим в заблуждение и не претендуем на аффилиацию с Mozilla или государственными структурами.

Отключение хостинговых сервисов Mozilla. Аккаунт Mozilla, Синхронизация, Relay, Monitor, IP Protection, Normandy/Shield, телеметрия, загрузка словарей Mozilla и автообновление аддонов — всё это выключено. При этом Google Safe Browsing и проверка отзыва сертификатов остаются включёнными: у нас есть собственный project‑owned ключ, а не заимствованный у Mozilla.

Обновления. На Windows работает нативный апдейтер Firefox с подписанными MAR‑файлами и GitHub Releases. На Ubuntu пока только ручная процедура: скачать .deb из релиза, проверить SHA-256, установить через apt. Это не идеально, но так мы не трогаем файлы, которыми управляет пакетный менеджер, и не создаём ложного ощущения автоматической безопасности.

Команда

Над проектом работает не один человек. В команде уже есть Андрей Ковалёв и другие соавторы, которые помогают с кодом, тестированием, сборкой и ревью. Мои открытые проекты — ru-spelling-dictionary, browser-policy-manager и теперь good-bear — развиваются именно так: небольшая команда, которая делает вещи, которые считает важными.

Почему нужна поддержка

Good Bear — это не хобби на выходных. Это полноценный форк Firefox, который требует:

  • Платных подписок на инструменты разработки. Сборка, статический анализ, линтеры, тестовые среды — всё это стоит денег.

  • Облачной инфраструктуры. Нам нужны удалённые сборочные машины — отдельно Ubuntu, отдельно Windows Server. Это виртуальные машины с дисками, памятью и трафиком, и они не бесплатны.

  • Времени. Команда работает над проектом в свободное время, но чем больше поддержки, тем больше времени можно уделять разработке и тем быстрее мы дойдём до релиза.

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

Комментарии (21)


  1. RTFM13
    22.09.2026 15:14

    А отдельный профиль не решает туже проблему?

    Возможно я невнимательно пролистал статью, но в тэгах opensource, но ссылки на гитхаб нет. Скрепная символика тоже настораживает.


    1. Goudron Автор
      22.09.2026 15:14

      Пока что анонс. Код ещё не выложен. Где-то 27 сентября ожидается. После этого будет более подробная статья. Нет, профиль не решает, между профилями нужно переключаться. Суть в том, чтобы разделить эти две истории, но в одном окне. Что касается "доброго мишки" - это как раз про Россию с человеческим лицом, где не забывают о конфиденциальности :)


      1. RTFM13
        22.09.2026 15:14

        Отдельные окна дисциплинируют. И выглядят надёжнее. Еще и темы разные поставить чтоб не путать.

        Т.е. задача сводится к добавлению изоляции сертификатов в штатные контейнеры? Это разве не задача нейронке на один промпт?

        К.м.к. игра не стоит свеч. Но вам всё равно удачи, если декларироемые цели соответствуют действительным.

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


        1. Goudron Автор
          22.09.2026 15:14

          Нет, там сложнее. Не два, а три контекста работы браузера, например. Сценарии автоматического переноса в отдельный контейнер таких сайтов. Организация полноценной работы с сертификатными цепочками Минцифры. Да, используются встроенные контейнеры, но разделение сильнее. И это пока что версия 1.0, которая скоро выйдет. Есть планы на дальнейшее развитие. При этом хочется оставить браузер свободным, т.е. с открытым кодом. Не как в другом российском браузере, который, хотя и бесплатный, но проприетарный :) Хочется добавить конкуренции :)


          1. RTFM13
            22.09.2026 15:14

            Сценарии автоматического переноса в отдельный контейнер таких сайтов.

            Это тоже потенциальная дыра кстати.


            1. Goudron Автор
              22.09.2026 15:14

              Да, добавление сценариев - это потенциальное расширение поверхности атаки. Так всегда. Вообще в исходниках Firefox порядка 1,6 млн файлов, папка проекта порядка 100 ГБ. На производительном сервере сборка занимает часа 1,5. На среднем ноуте - больше суток. На одну попытку. Одним промтом такие продукты не создаются. Попробуйте :)


              1. RTFM13
                22.09.2026 15:14

                Не в этом смысле потенциальная. Переход по ссылке из нидерландов в рф палит VPN и позволяет связать профили. Ссылки должны открываться в том же контейнере строго.

                Кстати, кроме сертификатов хорошо бы еще и сетевые настройки разделять.


                1. Goudron Автор
                  22.09.2026 15:14

                  Оно не в том же профиле вообще не открывается. Политика отправки 0 байтов на сервер до начала открытия в правильном контейнере.


                1. Goudron Автор
                  22.09.2026 15:14

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


  1. Kumazo
    22.09.2026 15:14

    Молодцы, здоровая конкуренция отечественному браузеру


    1. Goudron Автор
      22.09.2026 15:14

      Спасибо. Пробуем. А то как-то неправильно, когда монополия :)


  1. Burtanshy
    22.09.2026 15:14

    а почему не в хроме? и в маскота берите белоголового орлана.


    1. Goudron Автор
      22.09.2026 15:14

      Маскота пришлось менять, потому что лого Firefox принадлежит Mozilla Corporation. А Chromium не взял за основу, потому что Firefox направлен на личную конфиденциальность и от него в этом деле отталкиваться логичнее.


  1. Nyanny
    22.09.2026 15:14

    Почему отключены "хостинговые сервисы Mozilla. Аккаунт Mozilla, Синхронизация"?

    У многих форков это не отключено.

    Имеется ли возможность включить самостоятельно?


    1. Goudron Автор
      22.09.2026 15:14

      Вопрос правильный. Потому что это сервисы Mozilla и это лицензионный вопрос. Гугловскую проверку удалось подключить быстро через собственный API-ключ. Вероятно, аккаунт/синхронизация и другие сервисы будут реализованы альтернативно. Но нужно это сделать безопасно и доказать, что реализовано безопасно. Я этим займусь позже. Mozilla предоставляет код сервера для аккаунта/синхронизации, т.е. можно на своих мощностях организовать. С другой стороны, я у них спрошу, есть ли возможность оставить их сервисы. Но это вопрос договорённостей, потому что в Firefox реализацию поддержки сертификатов Минцифры не включили, хотя рассматривали такую возможность. Поэтому в Good Bear могут не разрешить подключать свои сервисы. Это вопрос для проработки.


  1. galaxy
    22.09.2026 15:14

    А человечьим языком вы не можете объяснить, что вы делаете? Без нейрослопа?


    1. Goudron Автор
      22.09.2026 15:14

      Задавайте уточняющие вопросы. Делаю свободный браузер на основе Firefox для безопасной работы с сертификатными цепочками минцифры.


  1. BugM
    22.09.2026 15:14

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


    1. Goudron Автор
      22.09.2026 15:14

      Он будет сохраняться для таких сайтов, но в отдельной базе паролей. Это то разделение разных историй, которое ещё не доделали в контейнерах Firefox. В Good Bear это реализовано уже сейчас.


      1. BugM
        22.09.2026 15:14

        Перепишите в стать более понятно. Сейчас совершенно непонятно.

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

        Это вводит в заблуждение


        1. Goudron Автор
          22.09.2026 15:14

          Спасибо, исправлю это. После релиза будет более подробно техническая часть прописана в отдельной публикации.