SSL-сертификат принцип работы

Объясните пожалуйста про удостоверяющие SSL-сертификаты. Сколько не читал так и не смог понять механизма их работы.

Как я понимаю SSL-Сертификаты ввели, как противодействие перехвата публичных ключей в асимметричном шифровании, подмену этих ключей и как итог расшифровка, просушка и изменение зашифрованого трафика между Клиентом и Сервером.

Поэтому прежде, чем обменяться публичными ключами, Сервер на GET-запрос Клиента сначала посылает ему удостоверяющий Сертификат.

И тут все, я ничего не понимаю.

-Что из себя представляет этот сертификат?

-как тут задействуется Удостоверяющий центр и его цифровая подпись ?

-Почему нельзя перехватить сертификат и подсунуть свой ? итд...


Ответы (2 шт):

Автор решения: eri

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

В сертификате есть открытый ключ который служит шифрования общего ключа (pre master key) при 4х стороннем обмене ключами шифрования.

→ Ссылка
Автор решения: Alexey Ten

Если не вдаваться в сложную математику, и совсем на пальцах:

  1. В вашей операционной системе (и/или в браузере) уже есть много сертификатов корневых УЦ, которые установлены изначально.
  2. Когда браузер соединяется с сайтом по https, сайт первым делом отдаёт свой сертификат подписанный одним из корневых УЦ (возможно не напрямую, а через цепочку подписей).
  3. Браузер (про помощи сложной математики) проверяет что подпись (подписи) настоящие и что сертификат подходит к домену который он запрашивал.
  4. Далее (про помощи другой сложной математики) браузер и сервер договариваются о сессионном ключ шифрования
  5. и вся дальнейшая переписка между ними шифруется этим ключом.

Что из себя представляет этот сертификат?

Файл в котором описан срок действия сертификата, для каких доменов он подходит и публичный ключ от асимметричного шифрования. Это файл подписан УЦ и именно эту подпись проверяет браузер на шаге 3.

как тут задействуется Удостоверяющий центр и его цифровая подпись?

Владелец сервера заранее подписывает свой файл в УЦ. УЦ проверяет что домен(-ы) в сертификате действительно принадлежат владельцу сервиса. Сертификаты корневых УЦ уже есть у вашего браузера.

Почему нельзя перехватить сертификат и подсунуть свой?

Можно. Но перехватывающий в общем случае не сможет подсунуть свой сертификат для нужного домена с действительной подписью. Именно из-за этой угрозы все очень скептически смотрят на российские корневые сертификаты, т.к. опасаются что государственный УЦ «забудет» проверить что ООО «Рога и копыта» владеют доменом google.com.

→ Ссылка