HTTPS

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

HyperText Transfer Protocol Secure

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

Прикладной

Семейство:

TCP/IP

Создан в:

1994 г.

Порт/ID:

443/TCP

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

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

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

RFC 2818

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

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

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

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

HTTP
Постоянное соединение · Сжатие · HTTPS
Методы
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH
Заголовки
Cookie · ETag · Location · Referer
DNT · X-Forwarded-For
Коды состояния
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found

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

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

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

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

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

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

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

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

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

Ссылки[править | править вики-текст]

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

  1. Walls Colin Embedded software. — Newnes, 2005. — P. 344. — ISBN 0-7506-7954-9