Secure-HTTP (используются сокращения S-HTTP и SHTTP) текущая версия 1.2 – протокол, разработанный для обеспечения безопасности сообщений при использовании протокола HTTP и облегченной интеграции с приложениями, ориентированными на HTTP. Сохраняя все характеристики HTTP, протокол позволяет производить аутентификацию, шифрование, электронно-цифровую подпись сообщений в любой комбинации. При этом протокол поддерживает как криптографическую схему с открытыми ключами, так и симметричную схему шифрования. Протокол поддерживает гибкое определение алгоритмов шифрования с помощью возможности, называемой переговоры о параметрах (англ. option negotiation). В ней определяются три составляющих протокола.
Транзакционный модуль – т. е. будет ли запрос и/или ответ зашифрован и/или подписан.
Криптографические алгоритмы – что будет использовано для шифрования (в документе указаны DES и RC2), электронно-цифровой подписи (указаны RSA и DSA).
Выбор сертификата – какой из цифровых сертификатов использовать.
Следует учесть, что как протокол прикладного уровня он защищает html-документы, но оставляет открытой информацию нижележащих уровней. Это, по-видимому, одна из причин, по которой на практике S-HTTP используется не очень широко, гораздо реже, чем протоколы безопасности транспортного уровня. Поэтому слегка коснемся особенностей его реализации.
Формирование сообщения требует наличия трех составляющих.
1. Собственно сообщение формата HTTP или другие данные.
2. Криптографические предпочтения получателя и ключевая информация.
3. Криптографические предпочтения отправителя и ключевая информация.
Для создания сообщения отправитель должен произвести интеграцию криптографических предпочтений своих и получателя и, сформировав список криптографических опций, применить его с использованием соответствующей ключевой информации.
Восстановление сообщения (в HTTP формат) требует наличия четырех составляющих.
1. Собственно S-HTTP сообщение.
2. Определенные получателем ранее криптографические предпочтения и ключевая информация.
3. Текущие криптографические предпочтения получателя и ключевая информация.
4. Определенные отправителем ранее криптографические предпочтения и ключевая информация.
Для восстановления сообщения получатель, считывая заголовки, определяет, какие криптографические преобразования были произведены, и производит обратные или восстановительные преобразования на основе ключевой информации.
Отметим, что для обеспечения криптографической защиты могут быть использованы механизмы общего распределенного секрета (вводом пароля вручную или с использованием технологии Kerberos) и обмен открытыми ключами. Возможно использование сессионного ключа с помощью предварительных защищенных транзакций или иным способом
Формат сообщения включает строку запроса, строку статуса, заголовок протокола, содержание и опции формата инкапсуляции. Строка статуса определяется ответом сервера и имеет вид "Secure-HTTP/i.2 200 ок" независимо от успешной или неудачной обработки запроса. Как указано, это сделано для предотвращения возможного анализа злоумышленником успешных и неуспешных запросов.