Обновить

Комментарии 34

Ну вот зачем вы с утра расстроили минцифры и яндекс? Он уже радостно потирали руки, ожидая что сейчас все побегут ставить импортозащемленные серты и браузеры. А тут на тебе, можно и не ставить.

Ставить сертификат минцифры все равно придется, просто на ограниченный список доменов

Нет, не придется. Данная фича не подразумевает установку сертификата. Он хранится в политике, привязанный к списку доменов.

А для огнелиса подобного решения никто не знает?
(ну кроме запуска отдельного профиля)

Нет, судя по документации, ничего похожего в политиках в FF нет

Чем именно вас не устраивает вариант "принять риски и продолжить"?

Тем, что весь трафик будет идти не зашифрованным и mitm атаки могут проводить даже школьники с рутованым вндроидом?

Так уверенно писать подобную чушь - это сильно. Трафик в любом случае будет зашифрованным. Аутентификации, фактически, не будет, это да. Однако, можно достоверно знать, что удалённый хост доверенный (например, это собственная лаба с самоподписанным сертификатом). Ради интереса возьмите любой хост с сертификатом, issuer которого отсутствует в трастсторе браузера, подключитесь к нему “приняв риск”, снимите с интерфейса трафик wireshark/tcpdump и посмотрите на зашифрованную кашу. К этому же выводу можно прийти просто логически из-за того, что большинство lb/reverse proxy перед хостами в современных реалиях вообще не имеют plain листенеров и, фактически, поддерживают только https листенер с tls termination (в случае tls passthrough termination случается дальше на бэкэнде, но это не важно в данном случае). Однако, если удалить issuer’а сертификата такого портала (который только с https листенером) из трастстора и постучаться потом на этот портал, то подключиться будет возможно (“приняв риск” ofc) и трафик будет шифрованным, т.к. портал просто не поддерживает ничего, кроме http over tls.

Это если вы установите сертификат рученками. А если нет, то ничего шифровать не будет. Сайты с https просто не будут открываться, а сайты без него, а такие есть и сейчас, будут светить наружу всеми данными.

Тем, что если сайт говорит HSTS, то большинство браузеров просто не даст "принять риски и продолжить", это прям в спеке HSTS прописано.

Failing secure connection establishment on any warnings or errors (per Section 8.4 ("Errors in Secure Transport Establishment")) should be done with "no user recourse". This means that the user should not be presented with a dialog giving her the option to proceed. Rather, it should be treated similarly to a server error where there is nothing further the user can do with respect to interacting with the target web application, other than wait and retry.

Кстати, это можно обойти через "Delete domain security policies" вот тут - chrome://net-internals/#hsts

А кто-нибудь настраивал в линуксе?

  1. Скачиваешь архив с сертами Минцифры РФ

  2. Получаешь длинную строчку из корневого серта этим
    openssl x509 -in russian_trusted_root_ca.cer -outform DER | base64 -w 0

  3. sudo mkdir -p /etc/opt/chrome/policies/managed

  4. Делаешь файл /etc/opt/chrome/policies/managed/custom_ca_constraints.json

  5. В файле пишешь
    {
    “CACertificatesWithConstraints”:[
    { “certificate”: “BASE64 серта из п.2”,
    “constraints”: {
    “permitted_dns_names”: [
    alfabank.ru”,
    vtb.ru”,
    "другие.социально-значимые.сайты" ]
    } }
    ]
    }

  6. sudo chmod 644 /etc/opt/chrome/policies/managed/custom_ca_constraints.json

  7. chrome://policy/ жмакай "Повторно загрузить правила"

  8. Каждый раз, когда сайт добавляешь в custom_ca_constraints.json нужно жмакать "Повторно загрузить правила"

А в мобильном хроме есть такое?

Сама политика есть, но добавлять их можно только через MDM, насколько я знаю.

а это правда работает как ожидается?

Базовые тестовые сценарии проходят:

1) Добавляем политику на два домена - оба домена перестают отваливаться с ошибкой сертификата

2) Удаляем из политики один из двух доменов - этот домен начинает отваливаться с ошибкой сертификата

MiTM атака с добавленным таким образом корневым сертификатом на другие домены 'не проходит'?

Не проходит, сценарий 2 как раз про это.

Да

Подскажите, пожалуйста, начиная с какой версии Chrome для Windows поддерживает это ?

С версии 132

Еще бы PermittedDnsNames в какой-нибудь конфиг вынести и будет хорошо

Для Edge, на разных ОС

Для macOS можно через интерфейс все сделать edge://settings/privacy/security - certificate-manager - добавить вручную custom сертификат - редактировать его и в modification можно настроить SNI / CDIR в качестве Constraints

Где взять фиксированный список доменов, которые перешли на сертификаты Минцифры?

Все крупные российские сервисы перейдут на НУЦ в конечном счёте, это очередная попытка посучить ножками без всякого смысла. Далее ждём физического обрыва связности с европейскими провайдерами и dns войн с разделением зоны ru на "весьмирснами" версию и нашу суверенную.

Хм, Альфа и ВТБ открываются после этого скрипта, добавил Сбер и ФСТЭК — не хотят, в чем может быть причина?

Политика проверяет все SANы сертификата на нахождение в списке, т.е. для сбера, например, кроме sberbank.ru нужно добавлять и sbrf.ru. У ФСТЭК ещё больше список:

DNS Name: fstec.ru

DNS Name: www.fstec.ru

DNS Name: www.*.fstec.ru

DNS Name: *.fstec.ru

DNS Name: fstec.gov.ru

DNS Name: xn--j1andg1c.xn--p1ai

1 надо добавить, 2,3,4 учтутся автоматом, 5 и 6 тоже нужно прописать явно.

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

Нашёл такое решение:

  1. Заходим в реестре в HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome

  2. Добавляем строковый параметр DnsOverHttpsMode со значением automatic.

  3. Добавляем строковый параметр DnsOverHttpsTemplates со значением в виде нужного вам DNS.

  4. Перезагружаем хром.

Если у кого-то есть идеи получше, делитесь.

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\CACertificatesWithConstraints]
"1"="{\"certificate\":\"MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUxPzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFuZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3QgQ0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJSVTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQgYW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2nqqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6QXBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4Uzn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbXYwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5YBer/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVDU+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBHBLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sXePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqaOiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpfBKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vHtmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cqW9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcSAQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1OqjC/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1dWN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZD9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfCEYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=\",\"constraints\":{\"permitted_dns_names\":[\"alfabank.ru\",\"vtb.ru\",\"yabank.yandex.ru\",\"uralsib.ru\",\"psbank.ru\",\"rshb.ru\",\"sberbank.ru\",\"sber.ru\",\"sberbank.com\",\"sbrf.ru\",\"lkk.lenenergo.ru\",\"fstec.ru\",\"fstec.gov.ru\",\"xn--j1andg1c.xn--p1ai\"]}}"

Это для MS Edge. для Google Chrome нужно поменять "\Microsoft\Edge\" на "\Google\Chrome\"

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации