В декабре 2022 года из корневого хранилища Mozilla исключили корневые сертификаты TrustCor (точнее, для них проставлена метка Distrust for X After Date с 01.12.2022). Причиной стало сотрудничество с компаниями, у которых обнаружились связи с разведывательным сообществом США. К этому решению Mozilla позже присоединились Apple, Google и Microsoft. Таким образом, сертификаты крупного УЦ одномоментно обесценились на большинстве пользовательских устройств.

Более того, «доверие к TrustCor» внесли в глобальную базу данных уязвимостей. Теперь если вы размещаете на GitHub код с доверием к сертификатам TrustCor, система сообщает об уязвимости средней тяжести.

Корневые хранилища сертификатов


Корневые хранилища (root store) — это базовые хранилища доверенных корневых центров сертификации. Например, хранилище Microsoft используется для проверки сертификатов в операционной системе Windows, а хранилище Mozilla используется для проверки сертификатов браузерами Chrome, Firefox, а также операционной системой Linux.


Роль корневых сертификатов в цепочке доверия

У Apple собственное корневое хранилище, но для проверки цепочки доверия она использует сертификаты в том числе из других наборов корневых сертификатов, таких как Mozilla Root Store.

История TrustCor


TrustCor Systems — панамский удостоверяющий центр, который подвергся критике со стороны всей индустрии после расследования Washington Post. Как выяснилось, этот УЦ активно сотрудничал с разработчиками шпионского ПО и другими компаниями, имеющими тесные связи с разведывательным сообществом США. Они выдавали TLS-сертификаты в том числе мобильным приложениями Packet Forensics (Measurement Systems), которые были замечены в шпионаже за пользователями Android.

Представители TrustCor попытались оправдаться, но их судьба была предрешена.



Существует публичный список рассылки dev-security-policy@mozilla.org, в основные разработчики браузеров решают, стоит ли им продолжать доверять тому или иному УЦ. Иногда представители этого УЦ занимают враждебную позицию в стиле «Что вы собираетесь делать, удалить нас из хранилища?», и в некоторых случаях разработчики реально это делают. Как и произошло в данном случае. И это может означать конец для компании, потому что трудно продавать сертификаты, которым не доверяют веб-браузеры.

Обсуждение TrustCor стало рекордным тредом в истории списка рассылки dev-security-policy@mozilla.org и было закрыто после 12 239 страниц ожесточённых дебатов.

Почему некоторые государственные УЦ не попадут в браузеры


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

Как минимум с 2016 года Минцифры РФ начало работать над созданием российского головного удостоверяющего центра для выдачи SSL-сертификатов. В 2017 году началось тестирование этого УЦ, а через несколько лет началась выдача сертификатов.



В 2022 году были озвучены планы в ответ на отзыв иностранных TLS-сертификатов выпускать бесплатные отечественные сертификаты для организаций. Хотя отзывы сертификатов у российских сайтов ограничились отдельными УЦ и постепенно проблема сошла на нет, но «Сбер» и несколько других компаний всё-таки перешли на российские TLS-сертификаты. По состоянию на апрель 2023 года это сделали 4883 сайта (столько же было в сентябре 2022 года, скриншот). То есть процесс так и не приобрёл массового характера. Сайты «Госуслуг», Центробанка и других госструктур остались на стандартных сертификатах, входящих в глобальную систему доверия Интернета:



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

Поэтому кажется крайне маловероятным включение Russian Trusted Root CA в корневые хранилища Mozilla и Microsoft. Доступ к этим сайтам по HTTPS будет возможен только из российских браузеров (например, «Яндекс Браузер») или в случае, если пользователь самостоятельно установит корневой сертификат на своё устройство. Но в таком случае эти российские сайты будут частично изолированы от глобальной системы доверия со всеми вытекающими последствиями для их доступности и безопасности.

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


  1. aborouhin
    16.05.2023 20:03
    +3

    А вот кстати, есть какое-то user friendly решение для проверки наличия недоверенных сертификатов сразу во всех хранилищах? Что-то типа sigcheck от Sysinternals, но чтобы не только Windows хранилище проверяло, но и используемые браузерами, и лучше бы не из командной строки?

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


    1. dartraiden
      16.05.2023 20:03

      недоверенных

      Если он есть в корневых, то он доверенный. В том и проблема, что у ваших знакомых в корневых сидит как сертификат условного LetsEncrypt, так и Минцифры. И оба они доверенные с точки зрения системы.


      У корневого же сертификат нет вышестоящего корня, на то он и корневой.


      То есть, такая утилита, если она будет создана, должна искать не по признаку "недоверенный", а по имени издателя. Грубо говоря, if издатель == "Russian Trusted Root CA" then print("алярм").


      1. aborouhin
        16.05.2023 20:03

        Некорректно сформулировал. Имелось в виду - не входящих в актуальные на текущий момент списки доверенных корневых сертификатов у того же Microsoft или Mozilla. Т.е. делать то, что делает "sigcheck -tv", но для всех хранилищ и user-friendly образом (в идеале просто: скачал - запустил - показало результат - предложило удалить лишнее).

        А то ладно Минцифры... помнится, утилита "настройки ЭЦП" от Контура, по крайней мере несколько лет назад, по широте душевной пихала в доверенные корневые сертификаты десятков каких-то ведомственных и региональных УЦ (вероятно, использующиеся на закупочных площадках или отраслевых порталах, которые нужны единицам, а устанавливались они все скопом по умолчанию).


        1. dartraiden
          16.05.2023 20:03
          +1

          Будет много ложных срабатываний. Например, даже клиент Battle.net ставит в систему свой корневой сертификат (Blizzard Battle.net Local Cert). Неопытный пользователь рискует снести что-то нужное.


          1. aborouhin
            16.05.2023 20:03

            Ну вот этот факт неплохо бы пользователю и показать как минимум. А там пусть решает, доверять этому battle.net или нет. Я ни разу не геймер, без понятия, что это за контора и зачем ей понадобилось так странно поступать.

            P.S. обсуждения на эту тему, которые сходу нагуглились, датируются 2017-2019 г.г., так что не знаю, актуально ли это ещё. Но судя по тем обсуждениям, там таким образом был реализован весьма костыльный способ общаться с сервером на localhost по HTTPS, и при этом сертификат не был корневым, хоть и устанавливался почему-то в хранилище для корневых (тут уже в какие-то дебри надо забираться, чтобы понять смысл сего действа).


    1. ifap
      16.05.2023 20:03

      Как вариант - прогнать сайт с сомнительным сертификатом через https://www.ssllabs.com/ssltest/ который, скажем, в случае с сертификатом т.н. НУЦ покажет, что ему не доверяет ни один из популярных браузеров.


      1. aborouhin
        16.05.2023 20:03

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


        1. ifap
          16.05.2023 20:03

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


  1. 0mogol0
    16.05.2023 20:03
    +3

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

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

    А вот какой-либо специальный значок вместо "замочка" мог бы дать понять, что сайт защищён гос. сертификатом, что с одной стороны повышает вероятность, что вы пользуетесь настоящим сайтом госуслуг, с другой - заставляет быть осторожнее, если этот значок появляется на сайте обычного форума.


    1. aborouhin
      16.05.2023 20:03
      +1

      Идея хороша в теории, но вот на практике...

      Обычный пользователь с вероятностью 99% ни на какие значки внимания обращать не будет. Открывается, работает - прекрасно. Даже если диалоговое окно выводить каждый раз при заходе на такой сайт - будет не читая тыкать "ОК", и спроси его, что он только что нажал, - честно ответит "да не знаю, опять компьютер барахлит, как всегда".

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

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


      1. 0mogol0
        16.05.2023 20:03

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

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

        Опять же - "рядовой" пользователь, вряд ли прячет от государства что-то настолько критическое, чтобы его волновало, гос. сертификат используется или коммерческий. Неприятно конечно, что могут подсмотреть, но не смертельно. А те, кому это важно - им объяснять где какие сертификаты б.д. не надо. И отдельное хранилище для гос. сертификатов - как раз ориентированно на них.

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


        1. aborouhin
          16.05.2023 20:03
          +2

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


        1. mm3
          16.05.2023 20:03
          +1

          Неприятно конечно, что могут подсмотреть

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


          1. DikSoft
            16.05.2023 20:03

            Могут подсмотреть всё. Вообще всё.

            Хуже другое. Могут за вас ответов навводить.


          1. 0mogol0
            16.05.2023 20:03
            +2

            а вы думаете с частными ЦС такое невозможно? Их тоже с лёгкостью (ок, с той или иной степенью легкости) может заставить творить что захочет местное правительство. Если их деятельность создаст существенные трудности в реализации предусмотренного Конституцией почти всех стран на раскрытие тайны переписки по закону.

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


  1. serejk
    16.05.2023 20:03

    Сбербанк Онлайн тоже не на праведном сертификате:
    Сбербанк Онлайн тоже не на праведном сертификате:


  1. ifap
    16.05.2023 20:03
    +3

    Как видно из предыдущей истории, разработчики внимательно следят, чтобы в доверенные хранилища не попали сомнительные УЦ, которые замечены в связях с государственными органами.

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


  1. IgorRJ
    16.05.2023 20:03
    +2

    Анекдот от первого лица:

    Как-то раз позвали меня составить компанию в преферанс. Раздача, один из игроков объявляет игру (пусть будет мизер), говорит, что не ловится, все соглашаются. Я прошу вскрыть карты, а мне говорят - Зачем? Мы тут на слово верим.

    Тут-то мне карта и повалила.

    Теперь о раздающих доверие и это вовсе не анекдот:

    Собралась группа неизвестных мне лиц, объявила себя наичестнейшими людьми и стала торговать доверием к сертификатам. Тут кому-то карта и повалила. А кому-то и нет, потому как "Неизвестные Отцы" сказали, что им доверять нельзя.

    .


    1. nitro80
      16.05.2023 20:03

      Как-то раз позвали меня составить компанию в преферанс

      Это ж надо так анекдот испортить


  1. geher
    16.05.2023 20:03

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

    Сейчас же, если корневой сертификат установлен в систему (или в браузер) он может удостоверить все, что угодно.

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

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