Комментарии 62
CA то выписывал такие сертификаты. Но то, что серт истечет через большее время, заодно влияет на шанс его быть скомпроментированным за это время — собственно, потому LE и сделали 3 месяца. Причем, коммерческие CA по поводу автообновления вроде не очень согласны, или я плохо искал? Но, даже если оно и есть, многие просто ленятся его настроить, и руками (да-да, желательно пореже) обновляются.
А с LE, хочешь или нет, а отладишь раз автообновление (раз в 3 месяца бегать и ручками заниматься — это уже перебор), и дальше уже живешь отлично!
Но — если так, то и MITM можно пропустить. Т.е. по уму все же даже сертификат своего самопального CA неплохо на машинах клиентов заранее принять, а упомянутую галочку не ставить.
Но это все от того, зачем вам серт. Шифрование есть — этого многих хватает, чтобы не передавать общение с сервером открытым текстом даже по локалки, а MITM не всех актуально бояться.
Баны мозиллы, хрома без обьяснения причин — это же идеальная причина признать, что X509 устарел, и время переходить на WoT.
Имхо, место всех этих сертификатов — один раз отдать пользователю страничку с инструкцией «1) поставьте наш корневой сертификат 2) перейдите на домен, обслуживающийся с этим сертификатом», может хоть после какого-то количества таких акций неповиновения нам прекратят навязывать ненужную услугу.
Другое дело что если меня на каждом сайте будут спрашивать поставить в моей сисеме чей-то корневой серт — лично я рад не буду.
Баны мозиллы, хрома без обьяснения причинПричины были озвучены ещё в прошлом году.
Upd.: А, вспомнил, web of trust.
Кстати, об Web of Trust.
Сервисы Web of Trust оказались скомпрометированы (https://geektimes.ru/post/282406/)
С одной стороны — StartCom облажались, спору нет. И их лажу надо как-то прекратить. И прекратили — остановили доверие к новым сертификатам (= приостановили весь бизнес), потребовали аудитов и всего-всего. Справедливо. Окей.
С другой стороны — ну хорошо, ну остановили вы негодяев. А вот дальше начинается вопрос «а в чём же виноваты легитимные получатели их услуг?» Сначала прибили всех кто не попал в топ Алексы (окей, то-есть почти всех вообще, так как топ алексы — это уже кандидат в клиенты Comodo / GoDaddy / КтоТамЕщёЕсть). Теперь хотят добить оставшихся (а они остались?)
По-моему шумиха уже улеглась, LE взлетел, но история показательна для всех. И для поставщиков «доверия» («не злоупотребляй»), и для разработчиков («бесплатный сыр и всё такое»).
Сертификаты скомпрометированы. Эти черти могут выпустить другой сертификат и подписать его, не отозвав оригинальный, давая возможность устроить MitM на HTTPS.
По-хорошему давно пора было забанить этот CA с такими приколами.
С другой стороны, а что Гуглу с Мозиллой было делать? Сказать «мы против обмана, но ради пользователей закроем глаза»? Тем более что и платных альтернатив хватает, и вот бесплатная, в лице LE, имеется и развивается.
Причем к последней приложили кошельки и руки многие «большие игроки», и есть какая-то надежда, что свое детище они (опосредованно, но все же) постараются держать как надо.
CA необходимо наказывать, причём максимально жёстко! И очень плохо, что это начинают делать только сейчас.
Сейчас на доверии CA держится почти полностью весь https (исключая редко используемые pinned сертификаты), и если CA не будут максимально серьёзно относиться к своей репутации и безопасности своей инфраструктуры — надёжность https может сильно пострадать.
Более того, я бы вообще список корневых сертификатов в браузерах сократил примерно на порядок — адекватно контролировать текущее количество должно быть очень сложно, поэтому стоит ужесточить требования к CA и отобрать корневые сертификаты у тех, кто будет не в состоянии выполнять эти требования.
Если создать дополнительные издержки CA, за них заплатит конечный потребитель.
В свое время StartCom смогли себе позволить не брать денег за сертификаты первого уровня, которые выпускаются автоматически без участия человека. Теперь к ним нет доверия, на их место пришел Let's Encrypt. На мой взгляд это правильно, что должны быть бесплатные сертификаты, иначе это очень смахивает на продажи воздуха.
Причем, если брать именно «больших ребят», то они точно не белые и пушистые, а цены за ими выпущенные сертификаты высоки.
Так что иногда торговля доверием похожа, увы, на торговлю воздухом.
И, да, по поводу того, что одна компания контролирует несколько CA — это как раз похоже не на создание доверия, а на уменьшение числа конкурентов на рынке, что потенциально ведет к уменьшению веры в честность.
Если создать дополнительные издержки CA, за них заплатит конечный потребитель.
Не обязательно. Издержки CA более-менее фиксированные (не зависят от количества выпущенных сертификатов), так что их вполне реально покрывать за счёт платных EV сертификатов для средних/крупных компаний. Кроме того, их издержки могут покрываться гигантами вроде Google или дотациями из гос.бюджета — теми, кто заинтересован в безопасном вебе.
А вот если эти дополнительные издержки на обеспечивание высокого уровня защиты и контроля не создать, то какой в этих CA вообще смысл и чем они надёжнее моего собственного CA? По хорошему, используемый код и базовая инфраструктура CA должны быть выложены в открытый доступ для проведения публичного аудита. Поверх этого ядра они могут городить любые фичи/интерфейсы, но валидация того, можно ли выдать сертификат и сама выдача должна быть реализована одинаково у всех CA, и этот код должен лежать на гитхабе.
А с выходом новой бета-версии MacOS сайт превратился в тыкву. Пришлось быстро переключаться на LE.
Интересно, почему под раздачу попали именно китайские CA, а в замен по сути предложена альтернатива в виде LE из Калифорнии, у которого chrome и mozilla платиновые спонсоры?
Поэтому в рамках https даже самоподписанный сертификат является дефакто обеспечивающим безопасность, если пользователь доверяет издателю ключа (как это, например, делается в OpenVPN серверах — Ваш трафик все-таки надежно защищен на пути к и от сервера).
Даже есть взять какую-нибудь сверх секретную военную систему, в которой обмен информацией зашифрован, то опять же возникает вопрос доверия к людям, которые вводят ключевые данные, да и даже к тому, насколько верно разработан этот сверх секретный алгоритм. Все на принципе веры :)
Вангую:
При первом заходе на сайт будет спрашиваться "Сертификат этого сайта подписан таким-то известным CA. Продолжить? Да/Нет + (флажок 'сохранить')"
При смене CA будет вопрос "Внимание, опасность! Новый сертификат сайта подписан другим CA." + #1
Чтобы не возникало проблем с внешними ресурсами, HTML будет расширен атрибутом а-ля "cert-ca" для link/script/img/etc. или же добавлен в уже рекомендованный "integrity" атрибут.
Будет глобальный платный реестр CA -аля ICANN:
4.1. Не будет препятствия в добавление, кроме денежных взносов.
4.2. Каждый участник сможет выдвигать закрепляемые в реестре обвинения с градацией по серьёзности.
4.3. Организация будет отвечать за проверку
- В случае регистрации нарушений CA, пользователи браузеров так же будут получать предупреждения об этом.
Такому вектору развития будут противодействовать, из-за очевидных создаваемых проблем спецслужбам.
Первые два пункта уже и сегодня есть. Заходите на сайт с самоподписанным сертификатом — именно это и увидите, примерно. Только тот же Chrome однажды стал думать, что вы «верите сертификату» не навсегда, а на время.
А если серьезно, то вот вопрос про «отвечать» очень скользкий. Перед кем отвечать, чем и как? Вот, китайские товарищи «ответили», так?
В жизни же ничего такого не будет, уверен. Тут до сих пор часть браузеров верят старым, необновленным спискам корневых сертов, а вы такую революцию…
Нет такого. Принятие сертификата для самоподписанного сайта != разрешение использовать конкретный заранее известный сертификат CA.
Если организация, заведующая реестром не будет справляться, то тот же Google и Mozilla смогут создать альтернативу, как например был создан Yarn вместо npm, а потом npm Inc. резко засуетились и добавили долгожданных фич.
Уже есть плагины к барузерам, но они сфокусированы на конечном сертификате и поэтому плохо подходят для работы с распределёнными сервисами вроде GMail, где одновременно используются десятки сертификатов для одного и того же домена.
Такому вектору развития будут противодействовать, из-за очевидных создаваемых проблем спецслужбам.
Не уверен, скорее тенденция прямо противоположна. Подконтрольный MITM, сейчас является штатно поддерживаемым сценарием в системе (не-)предупреждения об атаках браузеров.
В крайних версиях google chrome, возможность посмотреть глазками на сертификат сайта хорошо запрятали. В пределах видимости остался только зеленый замочек со словом «Надежный» и сообщение, что соединение и информация надежно защищены.
Больше всего такая надежная защищенность внушает оптимизм, при серфинге через Fiddler прокси, чей self-signed сетрификат добавлен в «trusted root certificate authority» девайсов для тестирования. Этот прокси, для удобства разработки, дешифрует весь проходящий через него https и подменяет в нужных местах ответы сайтов. Заметить подвох (фактически MITM атаку) на стороне браузера можно по характеристикам сертификата, только специально покопавшись где-то во вкладках chrome dev-tools.
А Chrome и FF каких версии у вас?
P.S. Хотя я тут задумался — а на каком сайте проверить, кроме wosign.com? Их-то сайт как раз могут оставить в белом списке, мало ли…
А вот не знаю, зависит или нет — в виндах-то всё вроде как через родной центр сертификатов сделано… и только FF юзал свой. Может и здесь всё через keychain.
Проверить можно на, например, https://xinit.ru/bs/
Хранение всех выданных сертификатов в блокчейне тоже имеет свои минусы, но идея, на мой взгляд, интересная.
Возможно, необязательно хранить всю базу локально. Ведь и сейчас при создания SSL-тунеля, в частности для проверки сертификата на отзыв, требуется обращение ко внешним ресурсам. Что если для проверки сертификатов обращаться к случайным узлам, в стиле p2p, может даже к узлам в сети onion/tor?
А для вопросов непосредственной реализации, достаточно чтобы этим заинтересовались Google и Mozilla =)
А у Google и Mozilla уже есть Let's Encrypt, который теоретически способен продуцировать аналитику — кто, когда и на какие сайты. Зачем еще какие-то заморочки?)
Вобщем все проблемы существующей инфраструктуры CA присутствуют и здесь. Идеально было бы избавиться от CA вообще.
Странно, что более мелкие игроки на рынке браузеров, типа Яндекса, до сих пор не сделали свой домашний CA, по аналогии с LE.
CAA не решает вопрос доверия вообще ни разу, однако существенно ограничивает возможность выпуска сертификата неавторизованным через неё CA.
Решение на сегодня это DANE. Однако, производители прикладного софта её внедрять не спешат.
По поводу блокчейн. Я вижу, что большинство вообще не понимает что это, для чего её целесообразно использовать и, тем более, как он работает. В большинстве случаев, в частности и этом, блокчейн не нужен, поскольку вполне достаточно куда менее сложных и затратных способов реализации. Это, к примеру, цифровые подписи которые с успехов функционируют в рамках даже такой не слишком складно спроектированной системы, как DNSSEC.
Любой кейс с наличием вменённой доверенной части не решает проблему.
Единственное решение — это когда для каждого конкретного сервиса пользователь сам сможет выбирать/подтверждать "корни доверия", от которых уже далее выстраивается и проверка имён, и установка защищённого соединения, и проверка содержимого, и т.д.
Для обывателя это мало чего даст, но в режиме параноика другого пути нет.
В условиях противодействия разработчиков сложного клиентского ПО, дельным решением может быть собственный локальный системный MITM-proxy, который будет выполнять требуемые проверки независимо с удобством для пользователя. Пример выше.
Такой путь уже реализуется в коммерческих продуктах, но с известными нареканиями, ибо защищает не конечного пользователя, а внутреннюю сеть компании.
В остальном идея правильная, и уже реализованная, смотрите RFC 6962, оно же Certificate Transparency оно же на Хабре.
Осталось ни так много: набрать критическую массу и выкинуть из основных браузеров поддержку тех CA, которые не начали играть по этим правилам (читайте: перестать принимать сертификаты, которых нет в данном логе).
Это конечно в корне не решит проблему «приходиться доверять какому-то непонятному дяде», но как минимум даст «технический» инструмент намного быстрей выявлять недобросовестных «дядь» и применять к ним административные меры.
Ну а для решения проблемы «хранения данного лога на устройстве» уже придумали OCSP, только к сожалению он не работает как надо.
Я говорю не об этом. Мне приятней думать, что есть какая-то надежда на децентрализацию в вопросе доверия сертификатов. Что мы доверяем архитектуре/алгоритму/модели, нежели чем вот этим вот 3-5 организациям.
С новыми расширениями сертификатов тоже есть сложности. Есть (и всегда будет) старое ПО. Хотим мы или не хотим, но вопрос внедрения не может не занять множество лет. Я до сих пор в работе сталкиваюсь с Cisco PIX, редко, но сталкиваюсь. Так вот настройка этого «чуда» через браузер требует совсем старую JAVA и IE. Или вот, пример поближе VSphere 5.5 — вышел чуть меньше 4 лет назад, но требует Flash, который как мы знаем «выпиливается» из браузеров. С предлагаемыми расширениями, получится все тоже что и со всеми предыдущими — кто-то реализует, кто-то нет, кто-то реализует по своему. Это как внедрить очередной, 15-ый стандарт, который наконец объеденит все предыдущие (да, снова отсылка к Ренделу =) ). На мой взгляд, тут может сработать только принципиально новая идея (необязательно про блокчейн).
Google в скором времени перестанет доверять всем сертификатам WoSign и StartCom