У меня неправильные представления о сертификатах CA (Certificate Authority). Независимо от того, сколько вещей я читаю, это все еще не совсем ясно.

Давайте рассмотрим пример, Боб заходит на сайт. Чтобы между Бобом и веб-сайтом происходил надежный и зашифрованный обмен данными, веб-сайт сначала выдает Бобу цифровой сертификат, который содержит открытый ключ и другую информацию.

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

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

Если веб-сайт использует ЦС для этой проблемы для проверки или создания своего собственного сертификата, какое из моих утверждений является правильным, или оба являются частично правильными? :

1) Боб просто сравнивает цифровой сертификат, полученный с веб-сайта, с сертификатом от ЦС, поэтому расшифровка не выполняется, просто сравнение? В этом случае каждый отдельный сертификат CA в мире хранится на локальном компьютере Боба для сравнения? Как это произошло.

2) У Боба есть специальный сертификат CA, который используется для расшифровки сертификатов с сайтов. CA ранее зашифровал цифровой сертификат веб-сайта, который Боб хочет использовать с закрытым ключом CA. Затем Боб получает сертификат с сайта, расшифровывает его с помощью открытого ключа CA из сертификата CA. Если сертификат не может быть расшифрован, очевидно, что CA не зашифровал его и поэтому недействителен.

Заранее спасибо.

2 ответа2

0

У вас есть недоразумение. На самом деле оба ваших сценария неверны.

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

Сертификат сверяется с CA через Интернет, а не локально, что касается действительности сертификата, извлекая из CA открытый ключ в процессе.

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

Как картинка стоит тысячи слов:

Источник: Понимание цифровых подписей.

0

Прежде всего, есть два шага для проверки выданного CA сертификата:

  1. Доверяет ли этот конкретный ЦС выдачу сертификатов вообще?
  2. Действительно ли этот сертификат выдан центром сертификации, на который он претендует?

Оба ваших описания почти соответствуют одной половине всего процесса, но полностью игнорируют другую. Объедините два, и вы kiiiinda на правильном пути.

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

(Я подозреваю, что некоторая путаница вызвана тем, что вы где-то прочитали, например, «в RSA шифрование и подпись одинаковы»). Забудь про это. Хотя это в основном правильно в математическом смысле, на практике это вводит в заблуждение, так как намерение совершенно противоположное. Поэтому, когда вы читаете документ, в котором говорится о подписании чего-либо, не думайте, что это означает то же самое, что и шифрование.)


«Действительно ли сертификат этого веб-сайта был выдан СА, на который он претендует?"

Вариант № 2 почти правильный об этом. Используются как минимум два сертификата - один, представляющий веб-сайт ("сертификат сервера"), и один, представляющий сам CA (называемый "сертификат CA", или корневой сертификат).

Собственный сертификат веб-сайта не зашифрован с помощью закрытого ключа CA. это подписано с закрытым ключом CA. Если подпись не может быть проверена, очевидно, что ЦС на самом деле не подписал то, что заявлено.

(На практике цепочка обычно немного длиннее и состоит как минимум из трех сертификатов, но механизм все тот же; каждый подписывает следующий в цепочке.)

Но откуда Боб получает этот "специальный сертификат CA"? Увидеть ниже.

«Доверяет ли этот ЦС выдачу сертификатов вообще?"

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

Теперь это похоже на то, что вы описываете в варианте № 1, за исключением того, что компьютер не хранит все сертификаты, выданные центрами сертификации - вместо этого он хранит только сертификаты, принадлежащие самим центрам сертификации, то есть "специальные сертификаты СА" в вашем варианте № 1.

В большинстве систем установлено примерно 50–100 "корневых сертификатов" - не совсем "каждый ЦС в мире", но он охватывает многие крупные и мелкие компании. (Это стоит совсем немного, чтобы быть включенным в список.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .