Прежде всего, есть два шага для проверки выданного CA сертификата:
- Доверяет ли этот конкретный ЦС выдачу сертификатов вообще?
- Действительно ли этот сертификат выдан центром сертификации, на который он претендует?
Оба ваших описания почти соответствуют одной половине всего процесса, но полностью игнорируют другую. Объедините два, и вы kiiiinda на правильном пути.
Но второй момент: в этой ситуации шифрование вообще не используется, и сертификаты (содержащие открытые ключи) могут использоваться для шифрования данных, но не для их дешифрования. Что выполняется это проверка подписи.
(Я подозреваю, что некоторые из вашей путаницы вызван тем, что где - то читал, что, например, «в RSA, шифрование и подписание такое же». Забудьте это. Хотя в основном правильно в математическом смысле, это невероятно заблуждение, на практике, так как намерение является между ними совершенно противоположно. Поэтому, когда вы читаете документ, в котором говорится о подписании чего-либо, не думайте, что это означает то же самое, что и шифрование.)
«Действительно ли сертификат этого веб-сайта был выдан СА, на который он претендует?»
Вариант № 2 почти правильный об этом. Используются как минимум два сертификата - один, представляющий веб-сайт («сертификат сервера»), и один, представляющий сам CA (называемый «сертификат CA», или корневой сертификат).
Собственный сертификат веб-сайта не зашифрован с помощью закрытого ключа CA. это подписано с закрытым ключом CA. Если подпись не может быть проверена, очевидно, что ЦС на самом деле не подписал то, что заявлено.
(На практике цепочка обычно немного длиннее и состоит как минимум из трех сертификатов, но механизм все тот же; каждый подписывает следующий в цепочке.)
Но откуда Боб получает этот «специальный сертификат CA»? Увидеть ниже.
"Доверяют ли этот ЦС выдачу сертификатов вообще?"
Полученный сертификат CA сравнивается со списком «доверенных корней», хранящихся на локальном компьютере.
Теперь это похоже на то, что вы описываете в варианте № 1, за исключением того, что компьютер не хранит все сертификаты, выданные центрами сертификации - вместо этого он хранит только сертификаты, принадлежащие самим центрам сертификации, то есть «специальные сертификаты СА» в вашем варианте № 1.
В большинстве систем установлено примерно 50–100 «корневых сертификатов» - не совсем «каждый ЦС в мире», но он охватывает многие крупные и мелкие компании. (Это стоит совсем немного, чтобы быть включенным в список.)