Разница между протоколом https и SSL-сертификатом - PullRequest
49 голосов
/ 13 мая 2009

В чем разница между протоколом https и сертификатом SSL, который мы используем в веб-браузере?

Разве оба они не используются для шифрования связи между клиентом (браузером) и сервером?

Ответы [ 4 ]

48 голосов
/ 13 мая 2009

HTTPS - это HTTP (протокол передачи гипертекста) плюс SSL (Secure Socket Layer). Вам нужен сертификат для использования любого протокола, который использует SSL.

SSL позволяет безопасно передавать произвольные протоколы. Это позволяет клиентам (а) проверять, действительно ли они обмениваются данными с ожидаемым сервером, а не посредником, и (б) шифровать сетевой трафик, чтобы стороны, кроме клиента и сервера, не могли видеть связь.

Сертификат SSL содержит открытый ключ и эмитент сертификата. Клиенты могут не только использовать сертификат для связи с сервером, но и клиенты могут проверить, что сертификат криптографически подписан официальным центром сертификации. Например, если ваш браузер доверяет центру сертификации VeriSign, а VeriSign подписывает мой SSL-сертификат, ваш браузер по сути будет доверять моему SSL-сертификату.

Здесь есть хорошее чтение: http://en.wikipedia.org/wiki/Transport_Layer_Security

35 голосов
/ 13 мая 2009

Два куска одного раствора.

https - это протокол, который определяет, как клиент и сервер будут согласовывать безопасное соединение.

Сертификат SSL - это документ, который они будут использовать для согласования подлинности серверов.

6 голосов
/ 28 ноября 2013

HTPS - это новый HTTPS. HTTPS очень уязвим для SSL Stripping / MITM (человек посередине). процитирую блог Адама Лэнгли (Google) Imperial Purple:

«HTTPS приводит к тому, что люди обсуждают безопасность сертификатов и экосистему вокруг них».

Проблема в том, что страница не обслуживается по HTTPS. Так и должно быть, но когда пользователь вводит имя хоста в браузер, по умолчанию используется схема HTTP. Сервер может пытаться перенаправить пользователей на HTTPS, но это перенаправление небезопасно: злоумышленник MITM может переписать его и оставить пользователя на HTTP, подделывая реальный сайт все время. Теперь злоумышленник может перехватить весь трафик на этот прекрасно настроенный и безопасный веб-сайт.

Это называется разбором SSL, и это ужасно просто и невероятно эффективно. Мы, вероятно, не видим этого очень часто, потому что это не то, что нужно корпоративным прокси-серверам, так что это не в готовых устройствах. Но вряд ли эта передышка продлится очень долго и, возможно, она уже закончилась: как бы мы узнали, если бы она использовалась?

Чтобы остановить разбор SSL, нам нужно сделать HTTPS единственным протоколом. Мы не можем сделать это для всего Интернета, но мы можем сделать это по сайтам с помощью HTTP Strict Transport Security (HSTS).

HSTS говорит браузерам всегда отправлять запросы по HTTPS на сайты HSTS. Сайты становятся HSTS либо встроенными в браузер, либо объявив заголовок:

Strict-Transport-Security: max-age = 8640000; IncludeSubdomains

Заголовок действует в течение заданного количества секунд и может также применяться ко всем поддоменам. Заголовок должен быть получен через чистое соединение HTTPS.

Когда браузер узнает, что сайт работает только по протоколу HTTPS, пользователь, набравший mail.google.com, безопасен: первоначальный запрос использует HTTPS, и злоумышленнику некуда проникнуть.

(mail.google.com и ряд других сайтов уже встроены в Chrome как сайты HSTS, поэтому на самом деле невозможно получить доступ к accounts.google.com через HTTP с помощью Chrome - мне пришлось проверить это изображение! Если вы хотите чтобы быть включенным во встроенный список HSTS Chrome, напишите мне.)

HSTS также может защитить вас, веб-мастера, от глупых ошибок. Предположим, вы сказали своей матери, что она всегда должна набирать https: // перед тем, как перейти на ее банковский сайт, или, возможно, вы установили для нее закладку. Честно говоря, это больше, чем мы можем или должны ожидать от наших пользователей. Но допустим, что наш суперрерогатор юзер ...]

из-за препятствующих / очень глупых правил ссылки для новых пользователей в stackoverflow, я не могу дать вам остальную часть ответа Адама, и вам придется посетить блог Адама Лэнгли самостоятельно https://www.imperialviolet.org/2012/07/19/hope9talk.html

"Адам Лэнгли работает как с обслуживающей инфраструктурой Google HTTPS, так и с сетевым стеком Google Chrome."

1 голос
/ 28 декабря 2013

HTTPS - это протокол прикладного уровня. Он может обеспечить отказ от отдельных запросов или ответов с помощью цифровых подписей.

SSL является протоколом более низкого уровня и не имеет этой возможности. SSL - это шифрование транспортного уровня.

HTTPS более гибок, чем SSL: приложение может настроить необходимый уровень безопасности. Протокол SSL имеет меньше параметров, поэтому его проще устанавливать и администрировать.

...