HTTPS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
HTTPS
Название:

HyperText Transfer Protocol Secure

Уровень (по модели OSI):

Прикладной

Семейство:

TCP/IP

Создан в:

2000 г.

Порт/ID:

443/TCP

Назначение протокола:

Безопасное соединение с сервером

Спецификация:

RFC 2818

Основные реализации (клиенты):

веб-браузеры

Основные реализации (серверы):

Apache, nginx, IIS
(см. также список веб-серверов)

HTTP
Постоянное соединение · HTTP pipelining · Сжатие[en] · HTTPS · HTTP/2
Методы
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH
Заголовки
Cookie · ETag · Referer
HTTP location[en]
Do Not Track[en]
X-Forwarded-For[en]
Коды состояния
1xx: Informational
2xx: Success
3xx: Redirection
4xx: Client Error (404 Not Found)
5xx: Server Error

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

Протокол был разработан компанией Netscape Communications для браузера Netscape Navigator в 1994 году[1].

Принцип работы[править | править вики-текст]

HTTPS не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS. Он обеспечивает защиту от атак, основанных на прослушивании сетевого соединения — от снифферских атак и атак типа man-in-the-middle, при условии, что будут использоваться шифрующие средства и сертификат сервера проверен и ему доверяют.

По умолчанию HTTPS URL использует 443 TCP-порт (для незащищённого HTTP — 80). Чтобы подготовить веб-сервер для обработки https-соединений, администратор должен получить и установить в систему сертификат открытого ключа для этого веб-сервера. В TLS используется как асимметричная схема шифрования (для выработки общего секретного ключа), так и симметричная (для обмена данными, зашифрованными общим ключом). Сертификат открытого ключа подтверждает принадлежность данного открытого ключа владельцу сайта. Сертификат открытого ключа и сам открытый ключ посылаются клиенту при установлении соединения; закрытый ключ используется для расшифровки сообщений от клиента.

Существует возможность создать такой сертификат, не обращаясь в ЦС. Подписываются такие сертификаты этим же сертификатом и называются самоподписанными (self-signed). Без проверки сертификата каким-то другим способом (например, звонок владельцу и проверка контрольной суммы сертификата) такое использование HTTPS подвержено атаке man-in-the-middle.

Эта система также может использоваться для аутентификации клиента, чтобы обеспечить доступ к серверу только авторизованным пользователям. Для этого администратор обычно создаёт сертификаты для каждого пользователя и загружает их в браузер каждого пользователя. Также будут приниматься все сертификаты, подписанные организациями, которым доверяет сервер. Такой сертификат обычно содержит имя и адрес электронной почты авторизованного пользователя, которые проверяются при каждом соединении, чтобы проверить личность пользователя без ввода пароля.

В HTTPS для шифрования используется длина ключа 40, 56, 128 или 256 бит. Некоторые старые версии браузеров используют длину ключа 40 бит (пример тому — IE версий до 4.0), что связано с экспортными ограничениями в США. Длина ключа 40 бит не является сколько-нибудь надёжной. Многие современные сайты требуют использования новых версий браузеров, поддерживающих шифрование с длиной ключа 128 бит, с целью обеспечить достаточный уровень безопасности. Такое шифрование значительно затрудняет злоумышленнику поиск паролей и другой личной информации.

Традиционно на одном IP-адресе может работать только один HTTPS сайт. Для работы нескольких HTTPS-сайтов с различными сертификатами применяется расширение TLS под названием Server Name Indication (SNI).

На 28 июня, 2016, 10,2 % сайтов из списка «Alexa top 1,000,000» используют протокол HTTPS по умолчанию[2]. HTTPS используется на 4,04 % от общего числа зарегистрированных российских доменов[3].

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Walls Colin. Embedded software. — Newnes, 2005. — P. 344. — ISBN 0-7506-7954-9.
  2. HTTPS usage statistics on top websites. statoperator. Проверено 28 июня 2016.
  3. Статистика российского интернета runfo.ru (рус.). www.runfo.ru. Проверено 16 февраля 2017.