Протокол HTTPS

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 7: Строка 7:
Особенность '''HTTPS''' состоит в том, что сначала происходит защищённое соединение, при котором обычно сервер предъявляет '''сертификат''', который обычно удостоверяет ''доменное имя'' сервера. И только потом уже по защищённому каналу происходит запрос ресурсов сайта. Эта особенность заставляет каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в ''сертификате'') иметь уникальный '''IP-адрес'''. Современные версии протокола '''TLS''' предполагают передачу клиентом запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология '''SNI''' ('''S'''erver '''N'''ame '''I'''ndication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол.
Особенность '''HTTPS''' состоит в том, что сначала происходит защищённое соединение, при котором обычно сервер предъявляет '''сертификат''', который обычно удостоверяет ''доменное имя'' сервера. И только потом уже по защищённому каналу происходит запрос ресурсов сайта. Эта особенность заставляет каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в ''сертификате'') иметь уникальный '''IP-адрес'''. Современные версии протокола '''TLS''' предполагают передачу клиентом запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология '''SNI''' ('''S'''erver '''N'''ame '''I'''ndication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол.
-
Идея '''HTTPS''' состоит в том, что сначала устанавливается защищённое соединение, использующее алгоритм [[Cryptography|шифрования]] с открытым ключом. Сервер обычно предъявляет ''сертификат'' (формально, протокол '''SSL''' и '''TLS''' предусматривает работу и без сертификатов, но это используется только в специальных случаях),
+
Идея '''HTTPS''' состоит в том, что сначала устанавливается защищённое соединение, использующее алгоритм [[Cryptography|шифрования]] с открытым ключом. Сервер обычно предъявляет ''сертификат'' (формально, протокол '''SSL''' и '''TLS''' предусматривает работу и без сертификатов, но это используется только в специальных случаях). ''Сертификат'' удостоверяет ключ сервера (в нём содержится публичная часть ключа), используемый при соединении, и содержит некоторую дополнительную информацию о сервере. ''Сертификат'' подписан секретным ключом или того ключа, который он удостоверяет (так называемый ''самоподписанный сертификат''), или секретным ключом, публичный ключ которого удостоверен другим сертификатом. Таким образом может быть создана ''цепочка'' сертификатов.
 +
 
 +
Что делает браузер (или утилита вроде ''curl'' или ''wget''):
 +
* Проверяет целостность цепочки предложенных сервером сертификатов на целостность, по очереди проверяя подписи каждого следующего из них
 +
* Сравнивает пришедший от сервера самоподписанный сертификат или самый последний (который никем не подписан, или подписан сам собой) в цепочке сертификатов с набором эталонных (корневых) сертификатов, идущих в поставке браузера. Именно списки браузера определяют так называемые ''Удостоверяющие Центры'' сертификатов. На сегодняшний день все производители популярных браузеров ведут примерно один список корневых сертификатов. Так же, обычно пользователь может создать свой список и указать на него браузеру.
 +
* Сравнивает доменные имена в специальных служебных полях сертификата с доменным именем, которое запросил пользователь.
 +
* При ошибке на любом этапе браузер выдаёт предупреждение и ведёт себя в соответствии с реакцией пользователя.
 +
* Если соединение всё-таки установлено, то поверх него начинает работать обычный HTTP-протокол.
 +
 
 +
Современные версии протокола '''TLS''' предполагают передачу клиентом запрашиваемого доменного имени ещё на этапе установки защищённого соединения. Это так называемая технология '''SNI''' ('''S'''erver '''N'''ame '''I'''ndication). Однако, до сих пор не все операционные системы и не всё программное обеспечение умеет использовать этот новый протокол. Поэтому обычно предполагается, что каждый сайт (в данном случае — доменное имя, или набор доменных имён, указанных в ''сертификате'') иметь уникальный '''IP-адрес'''.

Версия 12:23, 3 апреля 2014

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

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

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

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

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

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

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