Безопасный протокол передачи гипертекста - Secure Hypertext Transfer Protocol

Безопасный протокол передачи гипертекста (S-HTTP) является устаревшей альтернативой HTTPS протокол для шифрование сеть сообщения перенесены HTTP. Он был разработан Эриком Рескорла и Алланом Шиффманом и опубликован в 1999 году как RFC 2660.

Веб-браузеры обычно используют HTTP для связи с веб-серверы, отправка и получение информации без ее шифрования. Для конфиденциальных транзакций, таких как Интернет электронная коммерция или онлайн-доступ к финансовым счетам, браузер и сервер должны зашифровать эту информацию. HTTPS и S-HTTP были определены в середине 1990-х годов для удовлетворения этой потребности. S-HTTP использовался Подзорная труба веб-сервер,[1] пока Netscape и Microsoft поддерживал HTTPS, а не S-HTTP, что привело к тому, что HTTPS стал де-факто стандарт механизм защиты веб-коммуникаций.

Сравнение с HTTP через TLS

S-HTTP шифрует только данные обслуживаемой страницы и отправленные данные, такие как поля POST, не изменяя инициацию протокола. По этой причине S-HTTP можно использовать одновременно с HTTP (незащищенным) на том же порту, поскольку незашифрованный заголовок будет определять, будет ли зашифрована остальная часть передачи.

Напротив, HTTP через TLS обертывает всю коммуникацию внутри Безопасность транспортного уровня (TLS; ранее SSL), поэтому шифрование начинается до отправки каких-либо данных протокола. Это создает виртуальный хостинг на основе имени проблема "курица и яйцо" с определением DNS имя было предназначено для запроса.

Это означает, что реализации HTTPS без Индикация имени сервера Для поддержки (SNI) требуется отдельный IP-адрес для каждого имени DNS, и для всех реализаций HTTPS требуется отдельный порт (обычно 443 по сравнению со стандартом HTTP 80).[2] для однозначного использования шифрования (рассматривается в большинстве браузеров как отдельный Схема URI, https: //).

Как указано в RFC 2817, HTTP также можно защитить, реализовав Заголовки обновления HTTP / 1.1 и переход на TLS. Выполнение HTTP через TLS, согласованное таким образом, не влияет на HTTPS в отношении виртуального хостинга на основе имен (без дополнительных IP-адресов, портов или пространства URI), однако этот метод поддерживается немногими реализациями.

В S-HTTP желаемый URL не передается в заголовках открытого текста, а остается пустым; другой набор заголовков присутствует внутри зашифрованной полезной нагрузки. В HTTP через TLS все заголовки находятся внутри зашифрованной полезной нагрузки, и серверное приложение обычно не имеет возможности корректно восстановиться после фатальных ошибок TLS (включая «сертификат клиента не является доверенным» и «сертификат клиента истек»).[нужна цитата ]

Рекомендации

  1. ^ Букер, Эллис (1995-03-27). «Веб-серверы движутся в разных направлениях». Computerworld.
  2. ^ Том Шелдон (2001). «S-HTTP (протокол защищенной передачи гипертекста)». Получено 2016-01-01.