SSL-сертификат от клиента

289
degr

Может кто-нибудь объяснить мне, где мой браузер получил SSL-сертификаты? Как я понимаю, связь между мной (клиентом) и веб-приложением (сервером) происходит через обмен парой открытых и закрытых ключей, и у меня должен быть собственный открытый ключ (+ открытый ключ сервера).

Я не могу понять, что используется в качестве моего сертификата? Мой браузер генерирует это?

Или это предустановлено? Генерирует ли он сертификат для каждого соединения или для каждого веб-сайта?

Если мой браузер генерирует сертификат, как это возможно сделать - https://news.ycombinator.com/item?id=10663843 ?

Казахстан MitM весь HTTPS трафик, начиная с 1 января

0
Это не по теме здесь. Ваш браузер не генерирует сертификаты. Казахстан, скорее всего, юридически потребует от всех людей в стране иметь устройство, в котором центр сертификации Казахстана указан как надежный поставщик, чтобы они могли выдавать действительные сертификаты для любого домена. Затем они будут внедрять их между сайтами и пользователями через национальный брандмауэр. Китай [делал это десятилетиями] (https://en.wikipedia.org/wiki/Great_Firewall). ceejayoz 6 лет назад 0

1 ответ на вопрос

1
davidgo

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

Существует множество доверенных ЦС, распространяемых вместе с вашей ОС и / или браузером - и действительно, если ЦС скомпрометирован, или к машине можно добавить недоверенный сертификат ЦС, владелец ЦС может MITM-трафик и видеть все.

Итак, во время https-связи мы работаем только с одним сертификатом? Если это так, когда я отправляю запрос на сервер, я могу зашифровать сообщение с помощью открытого ключа сервера, и «единственный сервер» сможет прочитать мой запрос. Но затем сервер отправит ответ и зашифрует сообщение закрытым ключом, и «любой» сможет прочитать ответ. Это не выглядело как правда. degr 6 лет назад 0
Нет, во время связи HTTPS вы работаете как минимум с 2 (на практике больше, потому что сертификаты обычно связаны с другими сертификатами). Используемые сертификаты - это закрытый ключ сервера и открытый ключ CA сервера (который входит в ваш браузер / ОС). Только сервер сможет прочитать ваш запрос и отправить вам зашифрованный ответ, который может прочитать только ваш браузер. [Обратите внимание, что ЦС может выполнить атаку «человек посередине», но, если вы говорите безопасно с сервером, они не могут расшифровать ответ, отправленный сервером] davidgo 6 лет назад 0
Кроме того, я считаю, что, поскольку частью сеанса является согласование, клиент отправляет эквивалент открытого ключа (связанный с эквивалентом закрытого ключа, который может быть сгенерирован по требованию и выброшен в конце сеанса) на сервер. Таким образом, фактически каждая сторона имеет свой собственный закрытый ключ для сеанса и открытый ключ других. davidgo 6 лет назад 0
«Я считаю, что, поскольку частью сеанса является согласование, клиент отправляет эквивалент открытого ключа» - да, а теперь вернемся к моему вопросу - когда и как мой браузер генерирует сертификат (пара открытый-закрытый ключ)? degr 6 лет назад 0
Взгляните на https://robertheaton.com/2014/03/27/how-does-https-actually-work/ - Этот процесс происходит как часть обмена ключами, что означает, что он выполняется во время выполнения запроса HTTPS. и как зависит от используемого шифра / алгоритма (который также согласовывается на основе предпочтений и возможностей каждого браузера) davidgo 6 лет назад 0
Чтобы ответить на часть вашего вопроса о правительстве Казахстана - они гарантируют, что один из ключей CA в браузере принадлежит им, и затем они перехватывают трафик - выступая в роли клиента для сервера и сервера для клиента, используя свой CA ключ для подавления предупреждений. Это называется атака «Человек посередине» (MITM). Китай делал это целую вечность - именно в этом и заключается суть браузеров в StartSSL. davidgo 6 лет назад 0
Спасибо, мужик, вот и все. «Шифрование фактических данных сообщения, которыми обмениваются клиент и сервер, будет выполняться с использованием симметричного алгоритма». Клиент генерирует случайный ключ, который будет использоваться для основного, симметричного алгоритма. Он шифрует его, используя ... открытый ключ сервера` degr 6 лет назад 0