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

  2. Случайное значение. Состоит из 32-битового штампа даты/времени и 28-байтового случайного числа, генерируемого клиентом. Служит для предотвращения атак воспроизведения.

  3. Идентификатор сеанса.

  4. Комплект шифров. Список криптографических алгоритмов, поддерживаемых клиентом, в порядке убывания их приоритета.

  5. Методы сжатия. Методы сжатия, поддерживаемые клиентом.

Сервер возвращает клиенту сообщение server_hello, имеющее ту же структуру, что и client_hello, но поле Комплект шифров содержит алгоритмы, выбранные сервером. Первым элементом этого поля определяется метод обмена ключами (необходимы ключи для шифрования потока и создания MAC). SSL поддерживает следующие методы обмена ключами:

  • RSA. Секретный ключ шифруется с помощью открытого ключа RSA. Для этого отправителю должен быть доступен сертификат открытого ключа получателя.

  • Метод Диффи-Хелмана с фиксированными параметрами. Метод обмена, при котором сертификат сервера содержит открытые параметры алгоритма Диффи-Хелмана, подписанные центром сертификации.

  • Метод Диффи-Хелмана с одноразовыми параметрами.

  • Анонимный метод Диффи-Хелмана. Тот же алгоритм, но без аутентификации. Уязвим к атаке «третий посередине».

  • Fortezza. Метод, используемый в схеме шифрования Fortezza.

Далее идет элемент CipherSpec, содержащий спецификации алгоритмов. Он состоит из следующих полей:

  • Cipher Algorithm. Содержит один из алгоритмов шифрования, перечисленных в табл.1.

  • MAC Algorithm. Алгоритм вычисления MAC (MD5 или SHA-1).

  • Is Exportable. Признак экспортируемости (да/нет).

  • Hash Size. Размер хеш-кода: 16 байт для MD5 и 20 байт для SHA-1.

  • Key Material. Параметры вычисления ключей.

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

Данный этап начинается с отправки сервером своего сертификата или цепочки сертификатов X.509. Затем отправляется сообщение server_key_exchange, содержащее параметры шифрования для RSA или алгоритма DH. Для метода Диффи-Хелмана сервер высылает простое число p, служащее размерностью поля Галуа и первообразный корень a.

После этого сервер может затребовать сертификат клиента,послав сообщение certificate_request. Это сообщение содержит два поля: тип сертификата и список центров сертификации, принимаемых сервером.

В завершении этого этапа сервер посылает сообщение server_done и переходит в режим ожидания ответа клиента.

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

Клиент, получив сообщение сервера, сначала проверяет сертификат сервера. Потом, если сервер затребовал сертификат, он должен выбрать сертификат из списка принимаемых сервером. Если у клиента нет такого сертификата, он отправляет уведомление no_certificate.

Следующим обязательным сообщением будет client_key_exchange, содержание которого зависит от ранее выбранных методов:

  • RSA. Клиент генерирует 48-байтовый предварительный ключ и шифрует его с помощью открытого ключа из сертификата сервера.

  • DH. Отправляются открытые параметры метода Диффи-Хелмана (т.е. y=aK mod p)

  • Fortezza. Отправляются параметры алгоритма Fortezza.

4 Этап. Завершение.

На этом этапе сервер отправляет сообщение change_cipher_spec в рамках протокола изменения параметров сообщения. В ответ клиент оправляет сообщение finished, зашифрованное алгоритмами, согласованными в предыдущей части. Получив это сообщение, сервер расшифровывает его. Если операция прошла успешно, то после этого сервер начинает передавать клиенту зашифрованные данные.

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