Какая последовательность шагов необходима для безопасной проверки SSL-сертификата? Мое (очень ограниченное) понимание состоит в том, что когда вы посещаете сайт https, сервер отправляет сертификат клиенту (браузеру), и браузер получает информацию об источнике сертификата из этого сертификата, затем использует ее для связи с издателем и как-то сравнивает сертификаты на действительность.
- Как именно это сделано?
- А как насчет процесса делает его невосприимчивым к атакам «человек посередине»?
- Что мешает случайному человеку настроить собственную службу проверки для использования в атаках типа «человек посередине», чтобы все «выглядело» защищенным?
algorithm
security
ssl
certificate
rcreswick
источник
источник
Ответы:
Вот очень упрощенное объяснение:
Ваш веб-браузер загружает сертификат веб-сервера, который содержит открытый ключ веб-сервера. Этот сертификат подписан закрытым ключом доверенного центра сертификации.
Ваш веб-браузер поставляется с открытыми ключами всех основных центров сертификации. Этот открытый ключ используется для проверки того, что сертификат веб-сервера действительно был подписан доверенным центром сертификации.
Сертификат содержит имя домена и / или IP-адрес веб-сервера. Ваш веб-браузер подтверждает в центре сертификации, что адрес, указанный в сертификате, является тем, к которому он имеет открытое соединение.
Ваш веб-браузер генерирует общий симметричный ключ, который будет использоваться для шифрования HTTP-трафика по этому соединению; это гораздо эффективнее, чем использование шифрования с открытым / закрытым ключом для всего. Ваш браузер шифрует симметричный ключ с помощью открытого ключа веб-сервера, а затем отправляет его обратно, таким образом гарантируя, что только веб-сервер может его расшифровать, поскольку только у веб-сервера есть его закрытый ключ.
Обратите внимание, что центр сертификации (ЦС) имеет важное значение для предотвращения атак «человек посередине». Однако даже неподписанный сертификат не позволит пассивно прослушивать ваш зашифрованный трафик, поскольку у него нет возможности получить доступ к вашему общему симметричному ключу.
источник
webmaster@<domain-being-verified>
или «Поместить этот файл в свой домен, чтобы доказать, что вы им владеете». Однако действительно были проблемы с людьми, которые заставляли центры сертификации выдавать сертификаты для доменов, которые они не собственный - классно кто-то сумел получить сомнительный CA, чтобы выдать им сертификат для gmail.com!Стоит отметить, что помимо покупки сертификата (как уже упоминалось выше), вы также можете создать свой собственный бесплатно; это называется «самоподписанный сертификат». Разница между самоподписанным сертификатом и купленным сертификатом проста: купленный сертификат был подписан центром сертификации, о котором ваш браузер уже знает. Другими словами, ваш браузер может легко проверить подлинность приобретенного сертификата.
К сожалению, это привело к распространенному заблуждению, что самозаверяющие сертификаты по своей природе менее безопасны, чем те, что продаются коммерческими центрами сертификации, такими как GoDaddy и Verisign, и что вам приходится мириться с предупреждениями / исключениями браузера, если вы их используете; это неверно .
Если вы надежно распространяете самозаверяющий сертификат (или сертификат CA, как предложил bobince) и устанавливаете его в браузерах, которые будут использовать ваш сайт , он будет таким же безопасным, как и купленный, и не будет уязвим для человека-посредника. нападения и подделка сертификатов. Очевидно, это означает, что это возможно только в том случае, если только несколько человек нуждаются в безопасном доступе к вашему сайту (например, внутренние приложения, личные блоги и т. Д.).
источник
Вы сказали, что
Клиент не должен проверять с эмитентом, потому что две вещи:
Обратите внимание, что 2. не может быть сделано без 1.
Это лучше объяснено на этой большой диаграмме я сделал некоторое время назад
(перейдите к «что подпись?» внизу)
источник
У клиента есть предварительно заполненное хранилище открытых ключей центров сертификации SSL. Должна существовать цепочка доверия от сертификата для сервера до промежуточных прав доступа до одного из так называемых «корневых» сертификатов, чтобы сервер был доверенным.
Вы можете изучить и / или изменить список доверенных лиц. Часто вы делаете это, чтобы добавить сертификат для местного органа власти, которому, как вы знаете, доверяете, - например, компании, в которой вы работаете, или школе, в которой вы учитесь, или нет.
Предварительно заполненный список может варьироваться в зависимости от того, каким клиентом вы пользуетесь. Поставщики больших сертификатов SSL гарантируют, что их корневые сертификаты есть во всех основных браузерах ($$$).
Атаки «обезьяна в середине» «невозможны», если у злоумышленника нет закрытого ключа доверенного корневого сертификата. Поскольку соответствующие сертификаты широко используются, раскрытие такого закрытого ключа будет иметь серьезные последствия для безопасности электронной коммерции в целом. Из-за этого эти закрытые ключи очень и очень тщательно охраняются.
источник
если вы более технически склонны, этот сайт, вероятно, то, что вы хотите: http://www.zytrax.com/tech/survival/ssl.html
предупреждение: кроличья нора углубляется :).
источник