@JustMoose
Программист. Радиолюбитель. Прокрастинатор ;)

Зачем нужны корневые сертификаты?

Немного запутался в причинно-следственных связях.
Разбираюсь с SSL сертификатами. Вроде понял, что специальный центр выпускает сертификаты, при этом он, по сути, подписывает СВОИМ сертификатом свежесоздаваемые.
После этого сертификат (свежесозданный) устанавливается на сайт и позволяет гарантировать, что сайт "настоящий".
Кажется, что вся эта конструкция держится на том, что тот единственный корневой (?) сертификат, которым подписаны все остальные, есть только у удостоверяющего центра.

Теперь вопрос: почему все так боятся, что кто-то установит в их систему левый корневой сертификат? И сразу второй вопрос: почему какой-нибудь Fiddler, который устанавливает в систему свой корневой сертификат вообще работает?
Ведь при заходе на какой-нибудь сайт у него будет свой собственный серт, подписанный вполне себе конкретным корневым сертификатом. А не тем левым, который кто-то подложил в систему.
Почему же "левые" корневые сертификаты вообще работают, если никто и ничего ими ещё не подписал?
  • Вопрос задан
  • 5388 просмотров
Решения вопроса 1
@Drno
На примере наших госсайтов
Есть сайт на котором должно работать шифрование ssl. Но наши не хотят делать нормально, потому что крогом враги, и делают СВОЙ ssl серт, подписывая его СВОИМ центром сертиф.

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

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

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

По такому же принципу делают прокси-серверы во многих компания, ставя свой серт на ПК юзверей. Это позволяет им расшифровать весь трафф, который идет в шифрованном виде. И как следствия - получить и записать информацию - че там на сайте делал пользователь( от чего по идее и защищает ssl , от подмены сайта и перехвата вводимой на нём информации)
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
CityCat4
@CityCat4 Куратор тега Цифровые сертификаты
//COPY01 EXEC PGM=IEBGENER
Вся система PKI - она иерархична и построена на доверии. Больше ни на чем. Только на доверии, которое достаточно один раз обмануть, чтобы перестать доверять системе в целом.

Есть некое множество контор, которые выпускают SSL-сертификаты. Они не самые лучшие и не самые правильные, просто однажды они собрались и решили замутить бизнес. Почему все доверяют им? Да просто потому что до недавнего времени не было поводов их обвинить в мошенничестве - там все в порядке (было) с "внутренней полицией", которая нарушителей выкидывала нафиг с пляжа.
Ну и - самое главное - все доверяют им, потому что их корневые сертификаты размещены в хранилищах корневых сертификатов у Windows и Mozilla (Google использует хранилище Windows).

И все

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

Пока ребята не решили выстрелить себе в ногу, прекратив выпуск сертификатов в зонах .ru/.su/.by/.рф просто по политическим мотивам. Их право - частный бизнес - он такой частный бизнес. Но тут все резко как-то вспомнили, что все "мировые удостоверяющие центры" вовсе нифига не мировые, а просто кучка самозванцев.

И будут у нас скоро госСA, госсертификаты, госбраузеры и все прочее в порядке импортозамещения.

Теперь о том, как проверяется валидность сертификата. А проверяется она очень просто - если сертификат выпущен CA, который находится в списке доверенных - он валидный.

ВСЕ!

Ты можешь развернуть свой CA, поместить его сертификат в хранилище корневых у себя на компе - и все сертификаты, выпущенные им - для тебя - станут валидными. Выпускай хоть для vk.com, хоть для whitehouse.gov.

И вот именно поэтому все так боятся поместить в хранилище корневых сертификат от какого-нибудь госСA - потому что все сертификаты, выпущенные им система будет считать валидными! Она не делает разницы между сертификатом от Thawte и от "Товарищ Майор Inc." - она примет сертификат и от того, и от того. А товарищ майор, получив возможность выпускать сертификаты, валидные в Вашей системе, будет выпускать их на ходу и подсовывать их вместо "настоящих", получая доступ к сессионным ключам и таким образом расшифровывая https-трафик (что собственно Fiddler и делает)
Ответ написан
vesper-bot
@vesper-bot
Любитель файрволлов
Ну начнем с того, что корневых сертификатов приличное множество. Не один, и не один десяток даже. Пример:
624e91669b7e4193133731.png
64 штуки. И сертификат, подписанный любым из них, система считает доверенным. Это, собственно, и причина, почему боятся получить дополнительный корневой сертификат - заранее не знаешь, у кого есть возможность подписи с его помощью, и отличить сертификат, подписанный новым добавленным корневым (транзитивно или нет), можно только после того, как ты его получишь, при этом большинство программ не позволяют пользователю заблокировать соединение, установленное с использованием доверенного сертификата. То есть, вначале тебя с ним поимеют, потом тебе вычищать последствия.
Fiddler точно так же устанавливает свежесозданный (это важно, новая пара ключей, которых ни у кого нет) корневой сертификат тебе в доверенные корни, и использует его, чтобы на лету генерировать сертификаты для каждого сайта, куда ты ломишься, подсовывая их браузеру, чтобы тот не вякал, а сам выполняя роль man-in-the-middle.
Вопрос доверия имеющимся "корням" остается на совести администратора системы (то есть вас), при этом по сети могут прилетать обновления списка корневых сертификатов, после которых опять нужно проверять хранилище на случай появления нежелательных для вас корневых сертификатов.
Ответ написан
15432
@15432
Системный программист ^_^
Fiddler перехватывает подключение, создает "промежуточный сайт", с тем же именем который и подписан левым сертификатом. Так он может видеть все пересылаемые данные и HTTPS перестает быть безопасным.

Потому все и боятся левых сертификатов, чтобы локально или на уровне провайдера ваш трафик / пароли / данные карт / переписку не прослушивали.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Кажется, что вся эта конструкция держится на том, что тот единственный корневой (?) сертификат, которым подписаны все остальные, есть только у удостоверяющего центра.
Именно. Система держится на доверии к УЦ.

почему все так боятся, что кто-то установит в их систему левый корневой сертификат?
Потому что это позволит злоумышленнику сгенерировать свои сертификаты на произвольные имена, подписанные корневым сертификатом, которому доверяет ваша система и, при возможности перенаправления трафика, отправить вас на свой сайт или просматривать ваш https-трафик, который вы считаете зашифрованным.

И сразу второй вопрос: почему какой-нибудь Fiddler, который устанавливает в систему свой корневой сертификат вообще работает?
Без установки своего корневого сертификата Fiddler не сможет перехватывать https-трафик. Тот, кто ставит себе Fiddler, должен понимать, что в системе возникает уязвимость.
Ответ написан
@res2001
Developer, ex-admin
Кажется, что вся эта конструкция держится на том, что тот единственный корневой (?) сертификат, которым подписаны все остальные, есть только у удостоверяющего центра.

Нет. Закрытый ключ этого сертификата есть только у удостоверяющего центра. А сам сертификат раздается всем подряд и даже в некоторых случаях предустановлен. Если у ЦС утечет закрытый ключ, это означает компрометацию всех подписанных им сертификатов.
А держится вся схема на том, что обе стороны обмена "доверяют" центру сертификации.

Про fiddler не понял вопроса. Почему он должен не работать? Многие приложения работают с сертификатами. Вы даже сами можете завести свой собственный ЦС и генерить сертификаты своим знакомым.
А не тем левым, который кто-то подложил в систему.

Например, подложив левый сертификат ЦС, можно сделать фишинговый сайт с сертификатом, подписанным этим левый ЦС и у вас в браузере все будет красиво. Вряд ли кто-то пойдет проверять подробности сертификатов. А фишинговым сайтам может быть сложно получить "правильный" сертификат. Хотя сейчас, по моему, это уже не актуально - есть службы генерирующие сертификаты всем подряд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы