Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_tzis!113.doc
Скачиваний:
37
Добавлен:
09.11.2019
Размер:
2.07 Mб
Скачать

11.2.Архитектура ssl

Протокол SSL (Secure Socket Layer) был разработан в 1995 году фирмой Netscape, как протокол обеспечивающий защиту данных между сервисными протоколами прикладного уровня (HTTP, SNTP, FTP и т.д.) и транспортными протоколами (TCP/IP).

SSL состоит из двух уровней, как показано на рисунке ниже:

Рассмотрим общую схему работы протокола записи SSL. Этот протокол, получив сообщение для отправки, сначала фрагментирует данные, разбивая их на блоки подходящего размера, и при необходимости сжимает, вычисляет код аутентичности MAC, шифрует данные, добавляет заголовок и передает полученные пакеты сегменту TCP:

Рис.3. Схема работы протокола записи SSL.

На первом шаге производится фрагментация данных на блоки размеров не более 214 байт. Затем происходит необязательное сжатие (в протоколах SSLv3 и TLS сжатие по умолчанию не предусмотрено).

Следующим шагом является вычисление кода аутентичности сообщения MAC. Для этого служит общий секретный ключ Kc. Формула вычисления MAC:

, где

pad1 – байт Ox36 (0011 0110), повторенный 48 раз при использовании MD5 и 40 раз для SHA1,

pad2 – байт Ox5c (0101 1100), повторенный 48 раз при использовании MD5 и 40 раз для SHA1,

seq_num – порядковый номер данного фрагмента,

SSL.message – сообщение, состоящее из трех полей: типа протокола, использованного для сжатия, длины сжатого сообщения и самих (сжатых) данных,

h – функция хеширования (MD5 или SHA1).

Данный алгоритм похож на алгоритм HMAC. Различие в том, что в SSL заполнители pad связываются операцией конкатенации, а в HMAC – операцией XOR (исключючающее «или»). Дело в том, что HMAC в первоначальной редакции предлагал использование конкатенации, и эта редакция вошла в SSLv3, а окончательная версия HMAC установила операцию XOR.

Далее происходит шифрование фрагмента с использованием симметричной схемы шифрования. Шифрование не должно увеличить длину фрагмента более, чем на 1024 байта, поэтому размер блока с учетом заголовка, не превысит 214+2048 байт. Допускается применение следующих алгоритмов шифрования:

Блочное шифрование

Поточное шифрование

Алгоритм

Длина ключа

Алгоритм

Длина ключа

IDEA

RC2-40

DES-40

DES

3DES

Fortezza

128

40

40

56

168

80

RC4 – 40

RC4 – 128

40

128

Табл.1. Алгоритмы шифрования SSL.

Алгоритм Fortezza используется в схемах шифрования микропроцессорных карт (smart card).

При использовании блочных алгоритмов может потребоваться заполнитель. В этом случае сразу за байтами заполнителя добавляется один байт, содержащий длину заполнителя.

Завершаюшим шагом работы протокола является создание заголовка, содержащего следующие поля:

  • Тип содержимого (8 бит). Определяет протокол вышестоящего уровня.

  • Главный номер версии (8 бит). Номер протокола SSL (равен 3 для SSLv3)

  • Дополнительный номер версии (8 бит). Для SSLv3 этот номер равен 0.

  • Длина сжатого фрагмента (16 бит).

Протокол изменения параметров шифрования

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

Протокол извещения

Протокол извещения (Alert Protocol) служит для передачи другой стороне, участвующей в обмене, извещений касающихся работы SSL. Любое сообщение этого протокола состоит из 2 байт. Первый байт содержит значение, обозначающее уровень предупреждения (1) или уровень неустранимой ошибки (2). Во втором случае соединение SSL немедленно разрывается.

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

11.3. Протокол квитирования SSL

Протокол квитирования (Handshake Protocol) является самым сложным из трех протоколов верхнего уровня SSL. Этот протокол позволяет обеим сторонам провести взаимную аутентификацию и согласовать параметры алгоритмов шифрования.

Работа этого протокола состоит из 4 основных этапов:

  1. Определение характеристик защиты.

  2. Аутентификация и обмен ключами сервера.

  3. Аутентификация и обмен ключами клиента.

  4. Завершение.

Рассмотрим каждый этап подробнее.

1 этап. Определение характеристик защиты.

На этом этапе инициализируется логическое соединение, и определяются характеристики защиты. Процесс инициируется клиентом, который посылает серверу сообщение client_hello со следующими параметрами:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]