На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Протокол S-HTTP

Как я уже упоминал в предыдущей главе, создатели протокола HTTP разраба­тывали его как средство передачи мультимедиа — графики, видео, аудио и Шт Эднако они и не предполагали, что их детище станет основой для многих ком­мерческих приложений. Со временем бизнесмены (да и не только они) осозна-1И необходимость замены открытых транзакций, в которых участвует огромное соличество машин-посредников (hop-by-hop - последовательный метод), на юлее безопасные способы передачи сообщений. По замыслу в таких транзакциях end-to-end — сквозной метод) должны участвовать только общающиеся сторо-!ы, без всяких посредников. В связи с этим в 1994 году группа IETF попросила эазличные компании присылать предложения по усилению безопасности Web. 3 результате в начале 1994 года появился протокол — разработка комтании Enterprise Integration Technologies (EIT). В данной главе мы подробно тоговорим об этом протоколе. Прочитав главу, вы узнаете следующее:
«   Кроме стандартного набора команд HTTP в новом протоколе содержатся команды для поддержки зашифрованных и других безопасных транзакций.
♦ В протоколе используются HTTP-заголовки, а также новые методы шиф­рования, с помощью которых обеспечивается безопасность сообщений.
»  В используются методы подписи, шифрования, а для проверки безопасности транзакций введена идентификация.
» Для шифрования передаваемых данных в S-HTTP используются системы шифрования с симметричным и асимметричным ключом.
* В S-HTTP предусмотрена поддержка сертификатов и подписи ключей.
»   Протокол S-HTTP поддерживает сквозные зашифрованные транзакции, включая и запрос HTTP CONNECT.
ВВЕДЕНИЕ в S-HTTP
Безопасный гипертекстовый транспортный протокол (S-HTTP — Secure Hypertext Transport Protocol) - это модифицированная версия протокола HTTP. Кроме стандартных функций HTTP в новый протокол включены средства обеспечения эезопасности сообщений. Реализации S-HTTP включают в себя шифрование пере­сылаемых по сети Web-документов, а также поддержку цифровых подписей (5). С помощью нового протокола клиент (броузер) может проверить целост­ность сообщения. Для этого в S-HTTP введено новое средство - Message Authen-:ication Code (MAC). В настоящее время IETF рассматривает вопрос о введении S-HTTP в качестве нового стандарта Internet. Некоторые типы безопасных транзакций включают в себя пересылку на удален­ный сервер финансовой информации и данных о личности пользователя.
В отличие от модели и характеристик транзакций протокола HTTP, новый про­токол обладает поддержкой безопасности пересылаемых данных. По замыслу, S-HTTP должен обеспечивать безопасное сообщение между HTTP-клиентом и сервером и тем самым обеспечить транзакции многочисленных видов коммер­ческих приложений. Кроме того, в S-HTTP включены различные методы про­верки безопасности данных: цифровые подписи, шифрование и идентифика­ция. схематично показано, как протокол S-HTTP дополняет модель транзакций HTTP.
клиент документ сервер
Напомню, что в заго­ловке расположены указания о том, как нужно интерпретировать тело сообще­ния. Например, заголовок сообщения может содержать следующую информа­цию: тип MIME/подтип Text/HTML. Это значит, что получатель сообщения должен интерпретировать его как документ HTML.
Эта же схема построения сообщения использована и в протоколе ; : Од­нако теперь в заголовке сообщения может располагаться информация о том, как
расшифровать полученное сообщение, и о том, как интерпретировать расшиф­рованное тело сообщения. В роли отправителя информации может выступать и клиент, и сервер. Чтобы лучше разобраться во всем этом, тщательно изучите приведенные ниже операции. Все эти операции выполняются сервером во время безопасного ответа на запрос клиента:
1. Сервер получает обычное текстовое сообщение, которое должно быть по­слано клиенту. Обычно оно хранится на жестком диске сервера. В каче­стве такого сообщения может использоваться HTTP-файл или какой-либо другой объект данных (например, входная информация базы данных, гра­фика и т. д.). Отметим одну важную деталь: S-HTTP переносит текстовые сообщения без изменений. Поэтому в сообщение S-HTTP можно помес­тить любую версию HTTP.
2. Сервер обрабатывает установки шифрования клиента и ключевой матери­ал, предоставляемый клиентом во время квитирования. Сервер использует либо строго указанные клиентом установки шифрования, либо некото­рый установленный по умолчанию набор параметров. Применяемый ме­тод шифрования зависит от настройки сервера.
3. Сервер обрабатывает свои собственные установки шифрования и ключе­вой материал.
При создании сообщения сервер помещает свои параметры шифрова-
ния внутри установок клиента. Например, сервер настроен на использование PKCS-7 (Public Key Encryption Standard 7), и этот стандарт содержится в списке методов шифрования клиента. Тогда сервер зашифрует сообщение при помощи PKCS-7 (2).
список методов шифрования сервера
PKCS-7
RSA Диффи-Хеплман
метод шифрования
список методов шифрования клиента
PKCS-7
PKCS-7
RSA Диффи-Хеплман
Сервер сравнит список методов шифрования I, выберет PKCS- 7.
В этом случае для создания сообщения S-HTTP сервер воспользуется методом шифрования, поддерживаемым и клиентом, и сервером. пока­зано, как сервер зашифровывает обычный текст и помещает его в пакет сообще­ния S-HTTP.
После этого сервер отправляет это сообщение клиенту — эта операция полнос­тью аналогична пересылке HTTP-сообщения. В следующем разделе будет под­робно рассказано о том, как клиент расшифровывает полученное от сервера
сообщение.
ВОССТАНОВЛЕНИЕ СООБЩЕНИЙ S-HTTP
Как уже говорилось, для создания сообщения нужны три компонента:
передаваемый текст, установки шифрования клиента и параметры шифрования сервера. Для восстановления (расшифровки) сообщения клиенту потребуются те же самые три элемента. Прежде чем приступить к расшифровке полученного сообщения, клиент должен подобрать подходящий алгоритм. Для этого он по­ступает следующим образом:
1. Прежде всего клиент пытается подобрать нужные установки шифрования.
Для этого он использует параметры шифрования и ключевой материал,
предоставленный серверу во время запроса.
2. Если метод шифрования сообщения не соответствует посланному в запро­се, то клиент пытается подобрать его из своего списка установок шифро­вания и ключевого материала.
3. Если клиенту все еще не удалось подобрать метод шифрования, то он пы­тается расшифровать сообщение при помощи ранее установленных пара­метров сервера. Дело в том, что во время первоначального квитирования сервер может установить, какой метод шифрования будет использован для
кодирования сообщений.
Для расшифровки сообщения S-HTTP клиент должен прочитать его заголовок, где расположена информация о том, каким преобразованиям подвергался доку­мент на стороне сервера.
Как указывалось в главе 6, в обычной транзакции протокола HTTP после пере­сылки данных сервер должен разорвать соединение. Однако в транзакции S-HTTP сервер не разрывает соединения до тех пор, пока броузер не прикажет ему. Таким образом, в новом протоколе не нужно устанавливать соединение для пересылки каждой порции информации. При этом ключ шифрования не изме­няется во время всего сеанса (т. е. вплоть до разрыва соединения).
МЕТОД ШИФРОВАНИЯ S-HTTP
Что в системе шифрования с симметричным ключом отправитель и получатель используют один и тот же (единый) ключ. В S-HTTP для повышения безопасности ключ известен только клиенту и серверу. В систе­ме шифрования с асимметричным ключом используется два ключа — открытый и личный. В этой системе отправитель шифрует сообщение при помощи от­крытого ключа получателя. Для расшифровки сообщения нужен второй ключ -
личный ключ получателя. Таким образом, эта система обеспечивает очень высо­кую степень защиты информации. Дело в том, что прочесть зашифрованное сообщение может только тот, у кого есть личный ключ получателя, — даже отправитель не может расшифровать его. схематично показаны основные различия этих двух систем шифрования.
В системе шифрования с симметричным ключом отправитель должен найти воз­можность переслать по безопасному каналу ключ получателю. В S-HTTP пре­дусмотрены два механизма передачи ключа: обмен ключами во время передачи и использование внешних ключей. В первом случае сервер зашифровывает лич­ный ключ при помощи открытого ключа клиента и пересылает его клиенту. Во втором — клиент и сервер просто обмениваются личным ключом. Однако мно­гие пользователи Web найдут первый метод предпочтительным. Дело в том, что в настоящее время доступ к ключам осуществляется в основном через Web, a непосредственный обмен ключами - вещь достаточно сложная. Второй метод больше подходит для корпоративных сетей (так называемых интранет). На ри­сунке 7.8 схематично показаны оба метода работы с ключами.
сервер
Чтобы лучше разобраться в методе обмена ключами во время передачи, давайте посмотрим, что произойдет, если клиент посетит безопасный Web-сайт. Далее описаны все этапы подобной транзакции.
1. При посещении Web-сайта, использующего S-HTTP, клиент посылает запрос серверу — это первый этап транзакции. Как уже говорилось, сер­вер обязан ответить на этот запрос сообщением ^Connection Successful*.
2. Получив сообщение ^Connection Successful*, броузер клиента пересылает серверу свой открытый ключ, а также информацию о системе шифрова­ния, с помощью которой он создан (9). В качестве таких систем могут выступать RSA, PKCS-7 и т. д.
Получив ключ клиента, сервер проверяет, есть ли у него система шифро­вания, использованная клиентом. Если есть, то сервер отсылает клиенту одноразовый ключ, зашифрованный при помощи открытого ключа кли­ента (10).
Если же сервер не может работать с системой шифрования клиента, то он разрывает соединение.
После успешного создания соединения броузер клиента будет зашифро­вывать каждую порцию передаваемых данных при помощи одноразового ключа (11).
Кроме шифрования сообщений каждая из сторон соединения может проверить целостность данных и идентифицировать отправителя информации при помощи вычисления кода сообщения. В S-HTTP он вычисляется как «смешанное с клю­чом значение». Для этого используется одноразовый ключ, установленный во время первого этапа транзакции. Кроме того, и клиент, и сервер могут исполь­зовать цифровые подписи на этапе квитирования. С их помощью каждая из сто­рон может идентифицировать другую уже на первом этапе транзакции. Если одна сторона запросила проверку сообщения, то интерфейс S-HTTP другой сто­роны добавит к каждой порции передаваемой информации код сообщения (циф­ровую подпись). Так как одноразовый ключ известен только двум компьютерам
(клиенту и серверу), то абоненты соединения могут легко проверить, не было ли изменено сообщение во время передачи. Для работы с цифровыми подпися­ми в S-HTTP введены дополнительные заголовки. схематично показано, как должно выглядеть такое сообщение.
СРАВНЕНИЕ SSL и S-HTTP
В настоящее время наравне используется еще один протокол - SSL (Secure Socket Layer). С его помощью также ' можно обеспечить безопасность передаваемой информации. Оба протокола поддерживают открытые к личные ключи. Из главы 4 вы должны были уяснить, что открытые ключи — это создаваемые программами шифрования строки символов. Точно так же про­грамма создает и личный ключ. Но между этими ключами есть одно суще­ственное различие. Открытый ключ можно передавать друзьям, знакомым, сотрудникам и даже конкурентам. Личный же должен быть известен только своему хозяину. Отметим, что каждый открытый ключ соответствует только одному личному ключу. Таким образом, следует говорить о наборе ключей. Эти наборы - уникальны. Поэтому каждый броузер или сервер обладает своим уникальным набором ключей.
Главное отличие SSL от S-ITITP заключается в том, что первый поддержи­вает средства безопасности при использовании различных протоколов (включая и FTP, HTTP и т. д.). С другой стороны, в S-HTTP реализованы средства.; безопасности только для информации, передаваемой при помощи протокола HTTP. Однако S-HTTP менее нуждается в проверке цифрового сертификата компаниями третьей стороны. Дело в том, что в этом протоколе предусмот­рена поддержка создания цифровой подписи для каждого сообщения. В настоящее время S-HTTP получает все большее признание среди пользовате­лей Web. Но несмотря на это более распространенным является протокол SSL, о котором я расскажу чуть позже.
ПОДРОБНОСТИ S-HTTP
Протокол S-HTTP обратно совместим с протоколом HTTP. Это значит, что в S-HTTP поддерживаются все команды старого протокола. Как уже говорилось, S-HTTP помещает команды HTTP в зашифрованное тело сообщения. На самом деле S-HTTP и не нужно знать, что за команды он передает. Дело в том, что новый протокол является лишь расширением (а не изменением, модификацией) старого протокола. S-HTTP создан для обеспечения средств безопасности пере­даваемой информации. Для этого используется шифрование информации или создание цифровых подписей (или и то, и другое). С самого начала компания Enterprise Integration Technologies (EIT) разрабатывала S-HTTP так, чтобы с его помощью можно было внедрить в броузеры и серверы различные форматы шиф­рования данных. В частности, в новый протокол встроена поддержка стандарта РЕМ, PGP, а также формата PK.CS-7. Однако броузеры и серверы, не работа­ющие по протоколу S-HTTP, могут спокойно взаимодействовать с броузерами и серверами, перешедшими на новый протокол. При этом не произойдет ничего необычного. Однако ситуация коренным образом изменяется, если работаю­щий по протоколу S-HTTP броузер (или сервер) пошлет запрос на защищенный документ. В новом протоколе от клиента не требуется открытый ключ. А это значит, что для участия в безопасной транзакции пользователю не нужны зара­нее установленные открытые ключи. схематично показано, как
безопасный и обычный броузеры могут общаться с безопасным сервером.
сервер S-HTTP
сервер S-HTTP
Так безопасный и обычный броузеры могут общаться с безопасным сервером.
Протокол предусматривает средства защиты транзакций общего предназначения, особенно важные в коммерческих приложениях. Это может быть идентификация, проверка целостности данных, защита от взлома и т.д.
Для защиты от взлома сквозных транзакций в S-HTTP введены возможности шифрования (на уровне приложений). Новые средства сильно отличаются от механизмов идентификации HTTP. Для создания безопасной транзакции в про­токоле HTTP требуется, чтобы сервер особым образом ответил на запрос кли­ента. Но в S-HTTP идентификация должна производиться уже на этапе запроса клиента. Для этого используются шифрование, защита паролем или системы безопасности Kerberos.
где приобрести S-HTTP
В 1994 году компания EIT совместно с RSA Data Security новала компанию Terisa Systems, которая и создала одну из первых реализаций S-HTTP. Компания Terisa предложила ком­плект инструментальных средств, позволяющий разработчикам интегрировать протокол S-HTTP в клиенты и серверы World Wide Web. Для получения более подробной информации пошлите по элект­ронной почте запрос по адресу info@terisa.com. Кроме того, вы можете посе­тить Web-сайт компании Terisa Systems http://www.terisa.com.
—El_I
В настоя­щее время компания Hewlett-Packard закрыла доступ на свой сайт. Однако вме­сто него можно посетить сайт компании EIT http://www.eit.com/.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика