Решение проблем c ПО, осуществляющим перехват зашифрованного (TLS) трафика для мониторинга или фильтрации
На этой странице перечислено ПО, которое вызывает проблемы при настройке АРМ для доступа на ГОСТ-сайты.
В основном, проблема со всем указанным ПО заключается в одном и том же. Функции проверки зашифрованного трафика (TLS) приложений и браузеров, путём механизма HTTPS-MiTM.
Что такое HTTPS-MiTM.
HTTPS-MiTM это механизм вклинивания в зашифрованный канал между приложением-клиентом и удалённым сервером. Механизм произошёл от метода одноимённой хакерской атаки. Однако, со временем, метод получил и вполне легальные применения.
Цели бывают разные. Глубокая фильтрация трафика, мониторинг (что делают сотрудники с рабочим инторнетом), проверка на вирусы… И выполняется это в основном с помощью специализированного ПО. Антивирус, например, вполне является таким ПО.
Суть проблемы всегда одна. Вместо того, чтобы с вашего компьютера получать доступ напрямую до серверов Электронного бюджета, с использованием TCP-соединения на 4-ом уровне модели OSI, вы соединяетесь с посредником. И этот посредник мешает установить защищённое по ГОСТ соединение.
Решение проблемы в таком случае, только одно. Устранить посредника. Либо буквально (удалив ПО), либо заставить его передавать/проксировать (TCP-proxy) трафик на 4-ом уровне модели OSI “как есть”, не пытаясь внести свои корректировки или лезть куда его не просят.
Теория
Между условными Анной и Борисом, обменивающихся зашифрованными сообщениями друг с другом, появляется “человек посередине”. Назовём его, скажем, Вовой. Который имеет доступ к промежуточному звену цепи, которая используется для обмена сообщениями. И имеет возможность манипулирования проходящими через узел сообщениями.
Так же, этот самый Вова имеет возможность притвориться для Анны, что она получает сообщения от Бориса. А для Бориса, притвориться, что он получает сообщения от Анны.
Для того, чтобы Анна и Борис могли защищённым образом обмениваться сообщениями, им нужно договориться об общем ключе, которым будут шифроваться их сообщения. Для этого существуют алгоритмы безопасного согласования ключей, вроде алгоритма Диффи-Хеллмана. Используя его, можно договориться об общем ключе так, что никакой Вова, имеющий возможность читать проходящие сквозь него сообщения, не сможет понять, какой в итоге ключ был согласован.
Вова не может читать сообщения, т.к. с его точки зрения, они не имеют смысла. Мусор, зашифрованный мусор. Но для Анны и Бориса это вполне понятные сообщения, т.к. у них ключ есть. А попытки подобрать ключ — займут неопределённое количество времени…
Но Вова слишком хитрожопый, чтобы так просто сдаться! Решает поступить по другому. Он притворяется для Анны, что она согласует ключ с Борисом. Борису же притворяется, что он согласует ключи с Анной. Вклиниваясь посередине. Каждый раз, когда приходит сообщение от Анны, Вова его расшифровывает и зашифровывает заново, только уже ключом, предназначенным для Бориса. И наоборот. И тем самым, имеет возможность читать, что происходит в переписке, незаметно и прозрачно для парочки.
Конечно, для проверки подлинности отправителя существуют свои методы. Но это упрощённый пример. Очень сильно упрощённый. Если очень сильно хотите знать, почему она не сработала, перейдите к следующему заголовку.
А теперь представим, что Анна изобретает новый алгоритм шифрования, который до этого никто ранее не использовал (или нашла алгоритм, который популярности не взыскал). И обменивается им с Борисом ЛИЧНО. Вот изобрела/нашла Анна необычный алгоритм, назвала Кузнечик и передала Борису программы для работы с ним. И при следующем сеансе обмена сообщений, Анна явно указывает, что хочет согласовать ключ для Кузнечика и только для Кузнечика. И Борис знает, что Анна точно будет писать ему сообщения только с помощью Кузнечика. Они так договорились.
Вова получает запрос на согласование зашифрованного соединения (хэндшейк) и думает… Что это за вундервафля такая, какой нахрен Кузнечик? Она с ума сошла? Притворюсь я пожалуй, чайником, и попробую согласовать соединение с Борисом обычным методом. Но Борис возвращает ответ, что хочет видеть только Кузнечик. Который Вова не знает. Шифровать им не умеет и расшифровывать тоже. Что делать? Окно времени, в которое надо успеть отправить ответ, истекает! Паника!
В итоге, согласование обмена проваливается сначала с Борисом, а потом и с Анной, т.к. Анну тоже не устроил присланный ответ, что Кузнечик не поддерживается. “Это что за фигня творится?” — кричит Вова от бессилия исправить ситуацию… Вова жидко опростоволосился и неявным образом — выдаёт себя. Обменяться сообщениями парочке не получилось, но и тайна сообщений осталась тайной. И как только Анна и Борис схватят этого засранца за причинное место и лишат его возможности страдать вауеризмом, Анна и Борис снова смогут приступить к использованию Кузнечика для безопасного обмена чем-бы то ни было…
Конец.
Виды
Вовчиков перехватчиков
- Локальный. Когда программа, осуществляющая MiTM находится непосредственно на компьютере (Антивирус, Континент TLS-клиент, AdGuard для Windows). Перехваченный трафик не покидает компьютер.
- Сетевой. Локальная сеть предприятия настроена таким образом, что весь трафик на 443-ем порту отправляется на сервер, где находится программа, осуществляющая MiTM (Некоторые DLP-системы так работают). Или в настройках Свойств обозревателя явно задан прокси-сервер, и прокси-сервер уже занимается HTTPS-MiTM (например, squid можно настроить таким образом, для эффективного кэширования и фильтрации неугодных сайтов).
Определить локальный или сетевой уровень, можно методом исключения. Подключить компьютер к альтернативному источнику интернета. Если проблема исчезает — проблема в сети. Если остаётся, локально.
Явные признаки MiTM
-
“Неожиданные” сбросы (ERR_CONNECTION_RESET) или завершения (ERR_CONNECTION_CLOSED) соединений, при попытке осуществить подключение на сайт, который поддерживает только ГОСТ и не заявляет поддержку “обычного” шифрования. Это все ресурсы
*.cert.roskazna.ru
,*.esia.roskazna.ru
и*.login.roskazna.ru
, например. -
Проблемы с согласованием шифров для TLS-соединения (ERR_SSL_VERSION_OR_CIPHER_MISMATCH), когда признаков того, что проблема с криптопровайдером, нет.
-
При входе на сайт, который поддерживает не только ГОСТ, но и “обычное” шифрование (
gost.cryptopro.ru
), принудительно выбирается последнее, не смотря на то, что первое у в браузера в приоритете. И у сервера тоже. Кто-то выбирает “общепризнанное” шифрование “за вас”. -
“Открытый замочек” в Яндекс.Браузере при переходе на практически любые обычные сайты. Яндекс.Браузер научили определять MiTM. Это значит, что “сертификат сервера” подписан корневым сертификатом, который не находится в списке типичных корневых центров сертификации… За функцию, моё почтение. Chromium GOST так не умеет.
-
При входе на обычный сайт, использующий “обычное” шифрование, серверный сертификат подписан непонятным корневым УЦ… И цепочка сертификации не имеет промежуточного сертификата УЦ, что противоречит общим практикам работы удостоверяющих центров. Обычно, корневые центры сертификации выпускают сертификаты только удостоверяющим центрам и никогда напрямую потребителям. Затем уже удостоверяющие центры выпускают сертификаты простым смертным. Т.е. в цепочке должно быть 3 сертификата, не 2. Если 2, то это подозрительно, как минимум.
Нормальный путь сертификации:
Не нормальный:
Чтобы MiTM работал прозрачным для пользователя образом, надо как-то усыпить бдительность браузера, по поводу идентификации и верификации конечного сервера, т.к. посредник будет использовать свои сертификаты. Для этого, в хранилище корневых центров сертификации обязан быть установлен корневой сертификат, которым будут подписываться “подменные” со стороны условного “Вовы” сертификаты проверки подлинности сервера. Чтобы “Вова” превратился из вауериста в товарища Майора, такого же вауериста, но “в законе”.
Благодаря тому, что корневой сертификат, выпущенный Вовой, установлен в хранилище Корневых Центров Сертификации, браузер не будет задавать вопросов по поводу идентификации сервера подменными сертификатами. Ведь с его точки зрения, она выполнена. Всё что подписано сертификатами Корневых Центров, установленных в соответствующее хранилище — является доверенным.
Только вот Майор Вова так и не научился Кузнечику и не может выпустить подменный сертификат по ГОСТу, но это уже “ваши проблемы”. Он будет срывать попытки согласовать Кузнечик и всё тут.
Корневой сертификат ставит программа, осуществляющая “функции Вовы”, во время установки. Или же этот сертификат ставится администратором сети с помощью групповых политик. По другому быть не может, чтобы это было прозрачно, без предупреждений безопасности и прочих красных страшных страниц. Кроме случаев, когда вас правда атаковали и установили сертификат вместе со зловредом.
И как раз по этому корневому сертификату можно отследить программу и прописать в ней соответствующие исключения…
Список программ и исключений*
* Если конкретные примеры и исключения известны, конечно.
Указанные исключения несут исключительно рекомендательный характер. Если они для вас не сработают и программа продолжит делать то что делала, вам нужно обратиться в техническую поддержку по этой программе. Мы не несём ответственность за Ваши СЗИ и прочие средства противодействия утечкам.
Общие положения
Нужно добавить в исключения проверки зашифрованного трафика следующие домены
eb.cert.roskazna.ru
sobi.login.roskazna.ru
sobi.esia.roskazna.ru
sobi.cert.roskazna.ru
fzs.roskazna.ru
lk-fzs.roskazna.ru
signservice.roskazna.gov.ru
Если программа это поддерживает, можно так же добавить следующие wildcard-записи, чтобы убрать проверку для всех государственных доменов.
*.roskazna.ru
*.gov.ru
Для того, чтобы заработали тестовые страницы от КриптоПро, возможно понадобится добавить следующие записи.
www.cryptopro.ru
gost.cryptopro.ru
cryptopro.ru
Wildcard-домен для КриптоПро
*.cryptopro.ru
Kaspersky (Касперский)
Технически, существует 2 способа сделать исключение в Kaspersky.
- Добавить домены ГИИС ЭБ в доверенные, чтобы Касперский перестал вклиниваться в трафик на этих доменах.
- Более радикальный. Добавить Яндекс.Браузер или Chromium GOST в доверенные программы и запретить проверять весь зашифрованный трафик браузера.
Рекомендуется попробовать сначала 1-ый, добавить домены в доверенные, прежде чем переходить ко 2-ому варианту.
К сожалению, не для всех вариантов зафиксированы на скриншоты оба случая. Но общий принцип аналогичен Kaspersky Endpoint Security, для которого есть возможность показать оба примера, т.к. используется у автора на работе.
Kaspersky Free
Примеры какие есть, т.к. я снимал их во время выполнения обращений, с разрешения владельцев.
Исключения для доменных имён
-
Откройте окно Kaspersky Free из Меню Пуск или используя значок в области уведомлений. Перейдите в
Настройки
. -
Откройте
Настройки безопасности
. -
Откройте
Настройки сети
. -
Найдите опцию
Доверенные адреса
и откройте её. -
В окне
Настройки защищённых соединений
нажмитеДобавить
. -
Добавьте все перечисленные в
Общих положениях
домены. Kaspersky Free поддерживает добавление wildcard-доменов со звёздочкой, так что можете добавить и их. На скриншоте отражены только wildcard-домены, т.к. поторопились когда делали скриншот. Обязательно нажмитеСохранить
. -
Нажмите
Сохранить
в главном окне ещё раз. -
Подтвердите сохранение настроек.
Kaspersky Standard
Примеры какие есть, т.к. я их снимал во время выполнения обращений, с разрешения владельцев.
Исключения для доменных имён
-
Откройте окно Kaspersky Standard из Меню Пуск или используя значок в области уведомлений. Перейдите в
Настройки
. -
Откройте
Настройки безопасности
. -
Откройте
Настройки сети
. -
Найдите опцию
Настроить доверенные адреса
и откройте её. -
В окне
Настройки защищённых соединений
нажмитеДобавить
-
Введите домен, который требуется добавить и нажмите
Добавить
. -
Повторите шаги 5-6 пока не будут добавлены все перечисленные в
Общих положениях
домены. Kaspersky Standard (актуальная версия) поддерживает добавление wildcard-доменов со звёздочкой, так что, можете добавить и их. Обязательно нажмитеСохранить
. -
Нажмите
Сохранить
в главном окне ещё раз. -
Подтвердите сохранение настроек.
Kaspersky Endpoint Security
Исключения для доменных имён
-
Откройте главное окно Kaspersky Endpoint Security, используя либо меню Пуск в ОС Windows, либо значок в Области уведомлений. Откройте
Настройки
. -
Найдите блок
Настройки сети
. -
Откройте пункт
Доверенные адреса
. -
Нажмите кнопку
Добавить
. -
Введите доменное имя, которое требуется добавить в текстовое поле и нажмите кнопку
Добавить
внизу. -
Введённое в текстовое поле доменное имя появится в списке.
-
Повторите шаги 4-6 пока не будет добавлен весь список из
Общих положений
. НажмитеСохранить
. -
Нажмите
Сохранить
ещё раз в Главном окне. -
Подтвердите сохранение во всплывающем окне на безопасном рабочем столе.
Исключения для приложения
⚠️ Внимание!
Используя этот способ, вы полностью выключаете проверку защищённых соединений в антивирусе для браузера. Что может снизить уровень защиты, если браузер используется не только для работы с ГИИС ЭБ, но и для обычного сёрфинга в интернете.
Настройка позволяет выбрать исключения для определённых IP-адресов назначения у соединений, чем можно попробовать сузить область. Если до этого всё-таки дошло, не поленитесь выяснить IP с помощью
nslookup
и добавить их в соответствующее поле. В примерах это не показано, т.к. это оффтопик, но мы надеемся на осознанность ваших действий.
-
Откройте главное окно Kaspersky Endpoint Security, используя либо меню Пуск в ОС Windows, либо значок в Области уведомлений. Откройте
Настройки
. -
Найдите блок
Настройки сети
. -
Откройте пункт
Доверенные программы
. -
Нажмите
Добавить
в окнеДоверенные приложения
-
Во всплывающем окне выберите исполняемый файл программы в дереве или введите путь до неё в текстовом поле внизу. Нажмите
Выбрать
. -
В исключениях выберите
Не проверять зашифрованный трафик
. НажмитеОК
. -
Программа отобразится в списке
Доверенных приложений
. Если потребуется, можете повторить шаги 4-6 и добавить ещё один браузер. НажмитеОК
. -
Нажмите
Сохранить
в Главном окне. -
Во всплывающем окне на безопасном рабочем столе, подтвердите внесение изменений.
Dr. Web
-
Найдите в области уведомлений значок Dr. Web, нажмите на него и перейдите в
Центр безопасности
-
Перейдите в
Исключения
из главного окна -
Разблокируйте внесение изменений с помощью замочка в левом нижнем углу. Подтвердите полномочия.
-
Перейдите в
Приложения
-
Нажмите на кнопку с изображением
+
-
Параллельно выясните путь до исполняемого файла программы. Например, открыв свойства ярлыка браузера с рабочего стола. Перейдите на вкладку
Ярлык
и скопируйте полеОбъект
. -
В окне Dr. Web вставьте путь до программы в текстовое поле или выберите путь с помощью кнопки
Обзор
. Поставьте галочкуИсключить из проверки компонентами SpIDer Gate и SpIDer Mail
. НажмитеОК
.
PRO32
Аналогично Касперскому, имеет 2 способа добавить исключения.
- Добавить домены (хосты) в доверенные для исключения из проверки.
- Исключение из проверки всего приложения.
В зафиксированном случае из обращения, 1-ый не помог или капризничал. Потому был использован так же и 2-ой. Из-за чего зафиксированы оба случая.
Исключения для доменных имён
-
Откройте Главное окно программы, используя меню Пуск или значок в области уведомлений. Перейдите в
Общие настройки
. -
Найдите в блоке
Смешанный
пунктВключить глубокий сетевой монитор
и ссылкуРасширенные настройки
рядом с ним. Перейдите вРасширенные настройки
. -
Откроется модальное окно на вкладке
Хосты
. Введите в текстовое поле домен, который необходимо добавить и нажмите кнопкуДобавить
. -
Добавленный домен отобразится в списке
Имена хостов
. -
Повторите шаги 3-4 пока не будет добавлен весь список из
Общих положений
. К сожалению, PRO32 не поддерживает добавление wildcard-доменов. Потому придётся добавлять каждый нужный для ГОСТ домен отдельно. НажмитеЗакрыть
, выйдите из антивируса и перезагрузите компьютер (крайне желательно).
Исключения для приложений
⚠️ Внимание!
В PRO32 не предусмотрено дополнительных настроек при добавлении приложений, потому функционал антивируса для указанных приложений будет выключен полностью, в любом случае. Имейте это ввиду.
Это как-бэ то что нам как раз и нужно, чтобы он не лез, куда его не просят. Но это может снизить уровень безопасности. Вы же не для того покупали антивирус, чтобы его отключать? Пусть и не полностью, а только для браузера и его сетевых соединений (не активности в целом).
Рекомендуется в таком случае использовать Яндекс.Браузер и добавить только его, т.к. у него есть собственные механизмы безопасности под названием
Protect
и он поддерживает ГОСТ.Либо добавить Chromium GOST и использовать его только для работы с ГОСТ-сайтами.
-
Откройте Главное окно программы, используя меню Пуск или значок в области уведомлений. Перейдите в
Общие настройки
. -
Найдите в блоке
Смешанный
пунктВключить глубокий сетевой монитор
и ссылкуРасширенные настройки
рядом с ним. Перейдите вРасширенные настройки
. -
В модальном окне перейдите на вкладку
Приложения
. -
Нажмите кнопку
Добавить
-
Выберите исполняемый файл приложения, которое требуется добавить, используя диалог для выбора файлов.
-
После успешного добавления, путь до программы отобразится в списке
Имена приложений
Staffcop Enterprise
Признаком присутствия влияния программы, является корневой сертификат сертификат с CN = NeonLightInc
По поводу добавления исключений, обратитесь к официальной документации:
Или в техподдержку продукта.