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