2013-05-30 3 views
1

Хорошо, я уверен, что это очевидно, и мне не хватает чего-то очень фундаментального здесь. Мы отправляем HTTP-запрос на сервер. Чтобы доказать, что мы отправляем запрос, мы прикрепляем к нему сертификат.Подписи цифровых сертификатов

Этот сертификат имеет доверенный ЦС, поэтому сервер знает, что сертификат является подлинным.

Я не понимаю, что мы говорим серверу, одобрите сертификаты доверия от Comodo, скажем так. Хорошо. Поэтому я отправляю запрос, он говорит, что я «Компания А», и это подтверждено Comodo.

Наши клиенты, которые запускают сервер, просто хотят знать, кто такой ЦС, чтобы они могли ему доверять. Имеет смысл. Но, конечно, что-то еще в сертификате нуждается в проверке, как название встроенной компании? В противном случае я мог бы купить еще один сертификат для своей личной компании и получить его от Comodo, и этот сертификат будет действителен в соответствии с сервером.

Пожалуйста, просветите меня!

Благодаря Simon

ответ

0

Если я правильно понимаю, вы спрашиваете, как человек в веб-браузере собирается на веб-сайт для компании «А» может быть уверен, что это на самом деле «Компания А», а не мошенник с сертификатом от «Компании B», выданный тем же доверенным CA (Comodo).

Быстрый ответ, что браузер делает проверяет имя сертификата, а не только доверяет ли он выдающему ЦС. Поле Тема в сертификате является различающееся имя (DN), который выглядит примерно так:

CN = www.google.com, O = Google Inc, L = Вид на горы, S = California, C = US

Браузер может проверить, соответствует ли CN (Canonical Name) то, что вы ввели в своем браузере (https://www.google.com/), чтобы убедиться, что вы на правильном сайте. Иногда CN не соответствует, но сертификат включает в себя альтернативные имена объектов, которые содержат имя, которое соответствует. В любом случае сертификат включает веб-сайт, который вы пытаетесь загрузить, поэтому вы можете подтвердить, что он является правильным сертификатом для этого сайта.

Кроме того, есть много других проверок, которые являются (или может быть) сделано:
* Убедитесь, что текущая дата и время в течение срока действия свидетельства
* Убедитесь, что сертификат не аннулирован (с использованием CRL или OCSP)
* Убедитесь, что подпись действительна и подписаны доверенным центром сертификации
* Убедитесь, что CA подписание фактически CA (Ключевое поле Использование в сертификате ЦС)
* Проверьте использование самого сертификата будет убедитесь, что это сертификат сервера
* Убедитесь, что открытый ключ достаточно силен (например, не менее 2048 бит RSA)
* Убедитесь, что алгоритм подписи является достаточно сильным (например, SHA256RSA против SHA1RSA)
* Убедитесь, что срок действия является достаточно коротким (например, 3 года или менее для серверов)

Смежные вопросы