<<
>>

SSL

это спецификация, определяющая протокол, который из-начально был разработан фирмой Netscape Communications Corp. при участии RSA Data Security Inc. Первоначальная цель этой разра-ботки - обеспечить возможность построения защищенного канала передачи информации между взаимодействующими прикладными программами, который обеспечивал бы конфиденциальность, под-линность и целостность данных.

SSL является альтернативой стандартному интерфейсу сокетов архитектуры TCP/IP, имеющему встроенные функции защиты.

Сле-довательно, теоретически возможно обеспечить безопасность функ-ционирования любой ПП в архитектуре TCP/IP без изменения самой ПП. Однако на практике SSL широко реализуется только совместно с протоколом прикладного уровня HTTP, но известны и попытки реализации протокола SSL для обеспечения безопасности передачи данных совместно с другими протоколами прикладного уровня.

Спецификация SSL определяет протоколы, размещенные по двум подуровням.

• Нижний подуровень составляет так называемый «протокол записи» SSL Record Protocol (SSL RP) - протокол для передачи данных с использованием множества предопределенных комбина-ций шифров и кодов аутентификации сообщений. Рис. 4.13 ил-люстрирует принцип работы этого протокола в сравнении со стандартным соединением по протоколу HTTP с использованием сокетов. Этот рисунок показывает, что SSL предоставляет простой интерфейс сокетов, поверх которого могут быть располо-жены другие ПП. В реальности нынешние реализации имеют ин-терфейс сокетов, встроенный внутрь ПП, который, следовательно, не могут использовать другие ПП.

Верхний подуровень составляет протокол начальной аутентификации и передачи ключей шифрования, называемый протоколом рукопожатия - SSL Handshake Protocol (SSL HP).

Запечников С. В. Криптографические протоколы и их прішеиеиие Стандартный протокол HTTP

Рис.<div class=

4.13. Схема сеансов связи: стандартного и с применением протокола SSL" />

Рис. 4.13. Схема сеансов связи: стандартного и с применением протокола SSL

Сеанс соединения по протоколу SSL начинается следующим об-разом:

Клиент, используя браузер, запрашивает документ со специальным указателем ресурсов, начинающимся с заголовка https:// вместо стандартного http://, либо набирая его вручную, либо пу-тем указания на ссылку в тексте веб-страницы.

Программный код ПП клиента распознает запрос протокола SSL и устанавливает соединение через порт 443 протокола TCP с кодом протокола SSL на сервере.

Клиент инициирует фазу рукопожатия протокола SSL, используя протокол SSL RP в качестве протокола-«носителя». В этот момент ни шифрование, ни проверка целостности еще не исполь-зуются для обеспечения безопасности соединения.

Протокол SSL выполняет следующие функции обеспечения безопасности информации:

конфиденциальность: для этого в процессе выполнения про-токола рукопожатия вырабатывается общий симметричный секрет-ный ключ, на котором шифруются все последующие сообщения;

целостность: с этой целью для каждого сообщения генериру-ется код аутентификации сообщения (Message Authentication Code - MAC);

аутентичность: при выполнении протокола рукопожатия сервер проходит аутентификацию для клиента, используя симмет-ричный секретный ключ либо открытый ключ (второй ключ обычно реализуется через сертификаты открытых ключей).

Протокол SSL требует зашифровки и расшифровки каждого со-общения и, следовательно, дополнительно вносит значительную вы-числительную нагрузку на участников протокола и увеличивает рас-ход ресурсов.

Существуют две версии протокола SSL: SSL V2.0 и SSL V3.0, между которыми обеспечена обратная совместимость, т. е. сервер, реализующий SSL V3.0, должен быть способен устанавливать со-единения и принимать запросы от клиентов, реализующих SSL V2.0. Основные различия между двумя реализациями протокола заклю-чаются в следующем: во-первых, SSL V2.0 не поддерживает аутен-тификацию клиента для сервера, а во-вторых, SSL V3.0 поддерживает больше типов шифрования в спецификации шифров.

В соответствии с архитектурой TCP/IP протокол SSL реализуется на верхней границе транспортного уровня.

Напомним, что и сам протокол SSL, в свою очередь, является уровневым. Функции SSL заключаются в том, что он берет данные с прикладного уровня, пе-реформатирует их и передает на транспортный уровень. Протокол SSL управляет сообщениями таким образом: • отправитель выполняет следующие действия: берет сообщение с верхнего уровня;

разбивает (фрагментирует) данные на управляемые блоки; сжимает данные (эта функция - опциональная); генерирует MAC; зашифровывает данные;

передает результат обработки на нижний уровень;

получатель выполняет следующие действия:

берет данные с нижнего уровня; расшифровывает данные;

проверяет MAC при помощи общего для отправителя и получателя секретного ключа;

проводит декомпрессию данных (если применялось сжатие); восстанавливает сообщение из фрагментов; пересылает сообщение на верхний уровень.

Сеанс SSL работает в одном из двух различных состояний: в се-ансовом либо в состоянии соединения. Протокол рукопожатия SSL HP координирует состояния клиента и сервера. Вдобавок существуют состояния чтения и записи, определенные для того, чтобы коор-динировать шифрование в соответствии с сообщениями об измене-ниях в спецификации шифров. Когда какая-либо сторона протокола посылает сообщение об изменении в спецификации шифров, она меняет состояние ожидаемой записи на состояние текущей записи. Опять-таки, если какая-либо из сторон получает сообщение об из-менении в спецификации шифров, она изменяет состояние ожидае-мого чтения на состояние текущего чтения.

Сеансовое состояние описывается структурой данных, которая включает следующие компоненты:

идентификатор сеанса (Session identifier) - произвольная после-довательность байтов, выбранная сервером для того, чтобы идентифицировать активное или возобновляемое сеансовое со-стояние;.

сертификат партнера - поле, содержащее сертификат открытого ключа партнера по соединению - противоположной стороны протокола (это поле опционально и может быть пустым);

метод сжатия - описывает используемый протоколом алгоритм сжатия данных;

спецификация шифра - поле, которое специфицирует исполь-зуемый протоколом алгоритм шифрования, а также алгоритм ге-нерации и проверки MAC (если такой алгоритм не используется, устанавливается значение null);

мастер-секрет - поле, содержащее 48-байтовый общий секрет для клиента и для сервера;

флаг восстановления - флаг, индицирующий, может ли сеанс быть использован для новых соединений.

Состояние соединения описывается структурой данных, которая включает следующие компоненты:

случайные величины сервера и клиента - произвольная последо-вательность байтов, выбираемая клиентом и сервером для каж-дого соединения;

секретный ключ.записи MAC сервера - секрет, используемый сервером для операций с MAC;

секретный ключ записи MAC клиента - секрет, используемый клиентом для операций с MAC;

ключ записи сервера - ключ шифрования, используемый для за-шифровки отправляемых сервером данных и расшифровки при-нимаемых клиентом данных;

ключ записи клиента - ключ шифрования, используемый для зашифровки отправляемых клиентом данных и расшифровки принимаемых сервером данных;

векторы инициализации - векторы инициализации для алгорит-мов блочного шифрования, используемых в режиме сцепления блоков;

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

Протокол изменения спецификации шифра отвечает за пересыл-ку сообщений об изменении спецификации шифра, когда оно проис-ходит.

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

<< | >>
Источник: Запечников С. В.. Криптографические протоколы и их применение в финансовой и коммерческой деятельности: Учебное пособие для вузов. - М.: Горячая линия-Телеком,2007. - 320 с.. 2007

Еще по теме SSL:

- Автоматизация - Гидрология - Документоведение, делопроизводство - Информационные системы - Коммуникации - Криптография - Машиностроение - Метрология - Механика - Микроэлектроника - Нефтегазовое дело - Пищевая промышленность - Приборостроение - Программирование - Системный анализ, управление и обработка информации - Строительство - Технология и оборудование механической и физико-технической обработки - Электрическая энергия - Энергетика -
- Архитектура и строительство - Безопасность жизнедеятельности - Библиотечное дело - Бизнес - Биология - Военные дисциплины - География - Геология - Демография - Диссертации России - Естествознание - Журналистика и СМИ - Информатика, вычислительная техника и управление - Искусствоведение - История - Культурология - Литература - Маркетинг - Математика - Медицина - Менеджмент - Педагогика - Политология - Право России - Право України - Промышленность - Психология - Реклама - Религиоведение - Социология - Страхование - Технические науки - Учебный процесс - Физика - Философия - Финансы - Химия - Художественные науки - Экология - Экономика - Энергетика - Юриспруденция - Языкознание -