Протокол HTTPS

Материал из DiPHOST.Ru wiki system

(Различия между версиями)
Перейти к: навигация, поиск
 
(6 промежуточных версий не показаны.)
Строка 5: Строка 5:
[[HTTPS]]  ('''H'''yper'''T'''ext '''T'''ransfer '''P'''rotocol '''S'''ecure) — расширение протокола '''HTTP''', предназначенное для защищённой передачи данных протокола '''HTTP''', а также для однозначной идентификации достоверности HTTP-сервера клиентом (например, браузером). [[HTTPS]] не является отдельным протоколом. Это обычный '''HTTP''', работающий через шифрованные транспортные механизмы '''SSL''' и '''TLS'''.  
[[HTTPS]]  ('''H'''yper'''T'''ext '''T'''ransfer '''P'''rotocol '''S'''ecure) — расширение протокола '''HTTP''', предназначенное для защищённой передачи данных протокола '''HTTP''', а также для однозначной идентификации достоверности HTTP-сервера клиентом (например, браузером). [[HTTPS]] не является отдельным протоколом. Это обычный '''HTTP''', работающий через шифрованные транспортные механизмы '''SSL''' и '''TLS'''.  
-
Идея '''HTTPS''' состоит в том, что сначала устанавливается защищённое соединение, использующее алгоритм [[Cryptography|шифрования]] с открытым ключом, сервер предъявляет ''"сертификат"''. ''Сертификат'' удостоверяет ключ сервера (в нём содержится публичная часть ключа), используемый при соединении, а также содержит некоторую дополнительную информацию о сервере. ''Сертификат'' подписан секретным ключом или того ключа, который он удостоверяет (так называемый ''самоподписанный сертификат''), или секретным ключом, публичный ключ которого удостоверен другим сертификатом. Таким образом может быть создана целая ''цепочка'' сертификатов.  
+
Идея '''HTTPS''' состоит в том, что сначала устанавливается защищённое соединение, использующее алгоритм [[Cryptography|шифрования]] с открытым ключом, сервер предъявляет ''"сертификат"''. ''Сертификат'' удостоверяет ключ сервера (в нём содержится публичная часть ключа), используемый при соединении, а также содержит некоторую дополнительную информацию о сервере. ''Сертификат'' подписан или секретным ключом того публичного ключа, который он удостоверяет (так называемый ''самоподписанный сертификат''), или секретным ключом, публичный ключ которого удостоверен другим сертификатом. Таким образом может быть создана целая ''цепочка'' сертификатов.  
Что делает браузер (или утилита вроде ''curl'' или ''wget''):
Что делает браузер (или утилита вроде ''curl'' или ''wget''):
-
* Проверяет целостность цепочки предложенных сервером сертификатов на целостность, по очереди проверяя подписи каждого следующего из них
+
* Проверяет целостность цепочки предложенных сервером сертификатов, по очереди проверяя подписи каждого следующего из них.
-
* Сравнивает пришедший от сервера самоподписанный сертификат или самый последний (который никем не подписан, или подписан сам собой) в цепочке сертификатов с набором эталонных (корневых) сертификатов, идущих в поставке браузера. Именно списки браузера определяют так называемые ''Удостоверяющие Центры'' сертификатов. На сегодняшний день все производители популярных браузеров ведут примерно один список корневых сертификатов. Так же, обычно пользователь может создать свой список и указать на него браузеру.
+
* Сравнивает пришедший от сервера самоподписанный сертификат или самый последний (который никем не подписан, или подписан сам собой) в цепочке сертификатов с набором эталонных (корневых) сертификатов, идущих в поставке браузера. Именно списки браузера определяют так называемые ''Удостоверяющие Центры'' сертификатов. На сегодняшний день все производители популярных браузеров ведут примерно один список корневых сертификатов. Также обычно пользователь может создать свой список и указать на него браузеру.
* Сравнивает доменные имена в специальных служебных полях сертификата с доменным именем, которое запросил пользователь.
* Сравнивает доменные имена в специальных служебных полях сертификата с доменным именем, которое запросил пользователь.
* При ошибке на любом этапе браузер выдаёт предупреждение и ведёт себя в соответствии с реакцией пользователя.  
* При ошибке на любом этапе браузер выдаёт предупреждение и ведёт себя в соответствии с реакцией пользователя.  
* Если соединение всё-таки установлено, то поверх него начинает работать обычный HTTP-протокол.
* Если соединение всё-таки установлено, то поверх него начинает работать обычный HTTP-протокол.
-
Современные версии протокола '''TLS''' предполагают передачу браузером запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология '''SNI''' ('''S'''erver '''N'''ame '''I'''ndication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол. Поэтому обычно предполагается, что каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в ''сертификате'') иметь уникальный '''IP-адрес'''.
+
Современные версии протокола '''TLS''' предполагают передачу браузером запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология '''SNI''' ('''S'''erver '''N'''ame '''I'''ndication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол. Поэтому обычно предполагается, что каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в ''сертификате'') должен иметь уникальный '''IP-адрес'''.
Такая система иерархии сертификатов позволяет вполне достоверно идентифицировать сайт и защитить его от "подмены" и прослушивания.
Такая система иерархии сертификатов позволяет вполне достоверно идентифицировать сайт и защитить его от "подмены" и прослушивания.
 +
 +
Кроме предъявления своего сертификата, сервер может попросить предъявить сертификат клиента. В этом случае сертификат клиента может быть использован как его логин и пароль. Эта система не получила широкого распространения.
 +
 +
Наш хостинг проддерживает HTTPS-сайты за дополнительную плату. Для этого требуется [[SSLManagement| привязать SSL-сертификат к сайту]] в панели управления. Также мы предлагаем широкий выбор [http://diphost.ru/ssl/ коммерческих SSL-сертификатов].

Текущая версия на 12:01, 19 июня 2014

HTTPS (HyperText Transfer Protocol Secure) — расширение протокола HTTP, предназначенное для защищённой передачи данных протокола HTTP, а также для однозначной идентификации достоверности HTTP-сервера клиентом (например, браузером). HTTPS не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS.

Идея HTTPS состоит в том, что сначала устанавливается защищённое соединение, использующее алгоритм шифрования с открытым ключом, сервер предъявляет "сертификат". Сертификат удостоверяет ключ сервера (в нём содержится публичная часть ключа), используемый при соединении, а также содержит некоторую дополнительную информацию о сервере. Сертификат подписан или секретным ключом того публичного ключа, который он удостоверяет (так называемый самоподписанный сертификат), или секретным ключом, публичный ключ которого удостоверен другим сертификатом. Таким образом может быть создана целая цепочка сертификатов.

Что делает браузер (или утилита вроде curl или wget):

  • Проверяет целостность цепочки предложенных сервером сертификатов, по очереди проверяя подписи каждого следующего из них.
  • Сравнивает пришедший от сервера самоподписанный сертификат или самый последний (который никем не подписан, или подписан сам собой) в цепочке сертификатов с набором эталонных (корневых) сертификатов, идущих в поставке браузера. Именно списки браузера определяют так называемые Удостоверяющие Центры сертификатов. На сегодняшний день все производители популярных браузеров ведут примерно один список корневых сертификатов. Также обычно пользователь может создать свой список и указать на него браузеру.
  • Сравнивает доменные имена в специальных служебных полях сертификата с доменным именем, которое запросил пользователь.
  • При ошибке на любом этапе браузер выдаёт предупреждение и ведёт себя в соответствии с реакцией пользователя.
  • Если соединение всё-таки установлено, то поверх него начинает работать обычный HTTP-протокол.

Современные версии протокола TLS предполагают передачу браузером запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология SNI (Server Name Indication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол. Поэтому обычно предполагается, что каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в сертификате) должен иметь уникальный IP-адрес.

Такая система иерархии сертификатов позволяет вполне достоверно идентифицировать сайт и защитить его от "подмены" и прослушивания.

Кроме предъявления своего сертификата, сервер может попросить предъявить сертификат клиента. В этом случае сертификат клиента может быть использован как его логин и пароль. Эта система не получила широкого распространения.

Наш хостинг проддерживает HTTPS-сайты за дополнительную плату. Для этого требуется привязать SSL-сертификат к сайту в панели управления. Также мы предлагаем широкий выбор коммерческих SSL-сертификатов.

Источник — «https://wiki.diphost.ru/HTTPS»
Личные инструменты
© 2006 — ООО «Дремучий лес»
Служба техподдержки: support@diphost.ru
Тексты этого сайта являются полностью оригинальными
или оригинальными компиляциями ООО «Дремучий Лес».
Распространяются по лицензии WTFPL
Отзывы о хостинге diphost.ru Отзывы на hostobzor.ru