
Комментарии 21
ключевое — вы ставите свой самоподписанный сертификат в систему. естественно, для таких сертификатов метка не проверяется, так как ни один лог не примет такой сертификат (логи принимают серты только от доверенных CA). на всякий случай напомню, что наш браузер не устанавливает сертификат в систему.
ну и бонусом — у вас неправильный запрос к логам. вот пример. кстати, логов сейчас три. три независимых друг от друга лога ровно для того, чтобы можно было убедиться в отсутствии расхождений.
в любом случае, Сергей, спасибо за интерес к решению.
С помощью curl можно проверить работу ресурса без дополнительных настроек
не будет :)
curl: (35) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
Причина очень проста я не добавил ваш CA. Далее собственно вот проблема которую не решает yandex браузер. Вы добавляете свой CA и он ему доверяет, а так-как этого CA нет в списке который он должен проверять по CT они его и не проверяет. Собственно это одна из проблем текущей x509. А ct метки будут проверяться только у тех CA у которых указано что она поддерживается.
Выдержка из https://yandex.ru/support/browser/ru/security/policy-ct-log?lang=en
В настоящее время Браузер доверяет сертификатам, содержащим одну метку времени из CT-лога Яндекса (описан в начале списка доверенных CT-логов НУЦ). В скором времени Браузер начнет доверять сертификатам, содержащим одну метку времени из любого CT-лога в списке доверенных и одну метку времени из CT-лога Яндекса.
Обратите внимание на пункт два. Опять же если яндекс браузер будет строже относиться к самопальным CA это сильно усложнит жизнь всем большим компаниям.
очень интересно, спасибо
Попробую повторить эксперимент над чем-нибудь из https://ct.tlscc.ru. Но я попробовал все браузеры, которые были под рукой. Ни один проверок по ct-логам не сделал.
Да он и не будет. Вам чтобы он делал надо еще в сертификатах поддержку указать https://habr.com/ru/articles/269729/
А да про утилиты https://github.com/google/certificate-transparency-go Если что она берется прям с сайта https://certificate.transparency.dev/
Хм, автор сам добавил свой корневой сертификат в доверенные. Корневой сертификат автора не подписан сертификатами Digicert, LE и прочих - откуда тут CT проверки возьмутся?
Правильно ли я понимаю, что если корневой сертификат издателя подписан Digicert, то SCT List в его цепочках проверяется, а если не подписан, то игнорируется? Где об этом можно почитать?
ключевое — вы ставите свой самоподписанный сертификат в систему. естественно, для таких сертификатов метка не проверяется, так как ни один лог не примет такой сертификат (логи принимают серты только от доверенных CA). на всякий случай напомню, что наш браузер не устанавливает сертификат в систему.
ну и бонусом — у вас неправильный запрос к логам. вот пример. кстати, логов сейчас три. три независимых друг от друга лога ровно для того, чтобы можно было убедиться в отсутствии расхождений.
в любом случае, Сергей, спасибо за интерес к решению.
Спасибо. А как определяется, для какого CA метка проверяется, а для какого нет? Белый список в коде?
Мы проверяем СТ-метки для всех рутовых сертификатов, которым доверяем в самом браузере. Если сертификат самоподписанный из системы, то там не проверяется.
Итого - если злоумышленник уговорит жертву поставить какой-нибудь 'VPN' (или 'слегка модифицированный' инсталлятор бразуера), который и CA злоумышленника в систему пропишет, и MitM через при помощи него устроит для браузера - то браузер не руганется.
Понятно, что атака, в общем, она против любого CA работает, но сейчас ее вероятность выглядит особенно высокой.
Вуаля. Имеем полноценный MitM, а браузер ни сном, ни духом.
Не имеете вы никакой такой MitM. Вы сделали сами себе игрушечный CA в масштабах своего локального компьютера и "взломали" с вашего компьютера сайт на вашем же компьютере, закрытый сертификатом, вставленным только в ваш же компьютер. Весь остальной мир об этом вашем развлечении ничего не знает и на работу интернета за пределами вашего компьютера это никак не влияет.
Жаль, DANE не взлетел
Это был плохой стандарт. Рекурсивных проверок быть не должно. Все должно проверяться локально.
От чего защищает Certificate Transparency?