Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 11 Протоколы распределения ключей IKE , SSL.ppt
Скачиваний:
71
Добавлен:
17.01.2022
Размер:
2.23 Mб
Скачать

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

Вычисление кода аутентичности

Схема обмена сообщениями при установке логического соединения между клиентом и сервером

Клиент

Сервер Клиент

Сервер

1

3

2

4

 

 

Выполнение протокола SSL

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I. Установление SSL-сессии

 

 

 

 

 

 

Сервер

1.Инициализация

Клиент

 

 

 

 

 

 

 

 

 

 

 

Предаваемые параметры

 

логического соединения

 

Инициализация

 

 

 

 

 

 

 

 

 

 

 

 

 

сессии:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

соединения

 

 

 

 

- Идентификатор сессии;

 

Client_hello

 

 

 

 

 

 

 

 

 

 

 

 

- Случайное число (RND_CL);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- комплект шифров;

 

 

 

 

 

 

 

 

 

 

- набор алгоритмов сжатия.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Принимаемые параметры

 

 

 

 

 

 

 

 

 

 

сессии:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Server_hello

 

- идентификатор сессии;

 

 

 

 

 

 

 

 

 

 

- выбранный комплект

 

 

 

 

Обработка запроса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шифров;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- случайное число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(RND_SR);

 

 

 

 

 

 

2. Аутентификация

 

 

 

 

 

 

certificate,

 

 

 

 

 

 

сервера и обмен

 

Проверка подлинности

 

 

 

 

Server _key_exchange

ключами сервера

 

сертификата, получение

 

 

 

 

Certificate_request,

 

 

 

 

открытого ключа сервера

 

 

 

 

Server_hello_done

 

 

 

 

CertServ=SignCA(PKServ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2223 24 25 26 27

1 Этап. Инициализация логического соединения и

определение характеристик защиты

Client hello (Server hello)

: -Версия; Случайное значение; Идентификатор сеанса; Комплект шифров; Метод сжатия.

Комплект шифров ( CipherSuite): параметры шифрования , метод

обмена ключами

Параметры шифрования CipherSpec

Способы формирования ключа в SSL протоколе

Формировани

е ключей

RSA

 

Диффи-Хеллмана

 

 

 

 

 

 

С фиксированными

 

С одноразовыми

 

Анонимно

параметрами

 

параметрами

 

 

 

 

 

 

 

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

Server_key_exchange содержит сообщение.

Для анонимного метода Диффи-Хеллмана - простое число и примитивный элемент

поля + окрытый ключ Диффи-Хэллмана.

p, a, ax

Для метода Диффи-Хеллмана с одноразовыми параметрами - те же параметры + их

подпись.

SignServ (ax )

 

Для способа DH с фиксированными параметрами это сообщение не передается, так как ключ уже передан в сертификате.

CertServ SignCA (ax )

Для способа RSA, когда сервер имеет ключ RSA, предназначенный только для подписи, прямой обмен ключами не возможен, В этом случае сервер генерирует временную пару ключей . После этого открытый ключ подписывается закрытым ключем сервера и включается в сообщение Server Key Exchange.

SignServ (n, e)

Алгоритм вычисления хэш-кода: для подписи DSS – алгоритм SHA-1, для подписи RSA – два хэш-кода MD5 и SHA-1

4

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

Certificate

Client_key_exchange

Certificate_verify

Расшифрование секретным ключом сервера

Pre_MasterSecret = (Е, SK_Serv)

Проверка подписи

Формирование главного ключа MasterSecret = h(Pre_MasterSecret, RND_CL, RND_SR)

Вычисление ключей шифрования, аутентификации и вектора инициализации

Client_key_ex

change

Certificate_verify

Генерация ключа Pre_MasterSecret (48 байт) (для способа обмена RSA)

Шифрование открытым ключом E = f (Pre_MasterSecret,PK_Serv )

Подписание данных блока Client_key_exchange SignClient(HashPre_masterSecret)

Формирование главного ключа MasterSecret = h(Pre_MasterSecret, RND_CL, RND_SR)

Вычисление ключей шифрования, аутентификации и вектора инициализации

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2223 24 25 26 27

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

Client_key_exchange зависит от выбранного метода аутентификации:

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

Server Key Exchange.

Для метода Диффи-Хеллмана с одноразовыми параметрами или анонимного – передаются открытые значения DH.

Для метод Диффи-Хеллмана с фиксированными параметрами поле пустое

Certificate_verify – подпись предыдущего сообщения.

Цель подписи- проверка наличия у клиента личного ключа его сертификата.

Сообщения, передаваемые на 2, 3 этапах

 

 

Способ обмена ключами

 

 

 

 

 

 

 

 

 

 

 

 

Передаваемое

 

 

Диффи-Хеллмана

 

 

сообщение

RSA

 

 

 

 

 

 

 

Фиксиров

 

Одноразовые

 

анонимно

 

 

 

 

 

параметры

 

параметры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Certificate

Cert(PKserv )

Cert( y )

 

Cert(PKserv )

 

не

 

 

 

 

 

 

 

 

передается

 

 

 

 

 

 

 

Server key

Sigserv{PKserv }

не

 

Sigserv{p, , }

 

( p, , )

 

 

 

 

 

y

 

 

х

 

 

 

 

 

 

 

exchange

 

передается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Certificate

Cert(PKclient )

Cert( х )

 

Cert(PKclient )

 

 

не

 

 

 

 

 

 

 

 

передается

 

 

 

 

 

 

 

 

Client key

EPK ( premasterkey)

не

 

( p, , х )

 

 

( p, , х )

exchange

serv

передается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Certificate

не передается

не

 

Sigserv{p, , y }

 

не

 

verify

 

передается

 

 

 

 

передается