В настоящем разделе представлены две процедуры взаимодействия сторон:
а) процедура взаимодействия сторон в рамках полной схемы обмена сообщениями в протоколе Handshake (см. таблицу 1);
б) процедура взаимодействия сторон в рамках упрощенной схемы обмена сообщениями в протоколе Handshake (см. таблицу 2).
Сообщения протокола Handshake приведены в том порядке, в котором они должны следовать для обеспечения корректной работы протокола. Единственным исключением является сообщение запроса приветствия (HelloRequest), которое может быть послано сервером в любой момент в рамках полной или упрощенной схемы обмена сообщениями, но которое должно быть проигнорировано клиентом, если оно получено во время выполнения протокола Handshake.
Подробное описание каждого из сообщений приведено в 6.3, 6.4.
Таблица 1 - Процедура взаимодействия сторон в рамках полной схемы обмена сообщениями в протоколе Handshake
Формирование параметров и действия со стороны клиента C | Передаваемые сообщения | Формирование параметров и действия со стороны сервера S |
Выработка случайного значения | ||
Выработка случайного значения | ||
Этап выработки общего секрета | ||
Выработка общего секрета PS, | ||
Формирование эфемерного ключа на кривой, соответствующей : | ||
; | ||
Формирование экспортного представления общего секрета PS: | ; | |
Извлечение общего секрета из экспортного представления: IV=H[25..24+n/2]; | ||
Проверка | ||
Этап выработки ключей из значения PS | ||
Выработка общего сессионного секретного значения: | Выработка общего сессионного секретного значения: | |
Генерация ключевого материала соединения: | Генерация ключевого материала соединения: | |
Этап подтверждения ключа | ||
Примечания
1 Переменные , и заданы в соответствии с 6.2.1.
2 В таблице 1 символом "*" отмечены опциональные сообщения, которые передаются в случае двусторонней аутентификации.
Таблица 2 - Процедура взаимодействия сторон в рамках упрощенной схемы обмена сообщениями в протоколе Handshake
Формирование параметров и действия со стороны клиента C | Передаваемые сообщения | Формирование параметров и действия со стороны сервера S | ||
Выработка случайного значения | ||||
Выработка случайного значения | ||||
Этап выработки ключей из значения MS | ||||
Генерация ключевого материала соединения: | Генерация ключевого материала соединения: | |||
Этап подтверждения ключа | ||||
Примечание - Переменные и заданы в соответствии с 6.2.1.
6.2.1 Задание переменных , ,
Переменные , определены в соответствии с таблицей 3.
Таблица 3 - Задание переменных
Переменная | Полная схема (односторонняя аутентификация) | Полная схема (двусторонняя аутентификация) | Упрощенная схема |
CH|SH|SCT|SHD|CKE | CH|SH|SCT|SHD|CCT|CKE | Не используется | |
CH|SH|SCT|SHD|CKE | CH|SH|SCT|SHD|CCT|CKE|CV | CH|SH|SF | |
CH|SH|SCT|SHD|CKE|CF | CH|SH|SCT|SHD|CCT|CKE|CV|CF | CH|SH |
Примечания
1 В таблице 3 использованы следующие обозначения для строк, соответствующих байтовым представлениям сообщений протокола Handshake: CH - ClientHello, SH - ServerHello, SCT - Certificate со стороны сервера, CR - CertificateRequest, SHD - ServerHelloDone, CCT - Certificate со стороны клиента, CKE - ClientKeyExchange, CV - CertificateVerify, CF - Finished со стороны клиента, SF - Finished со стороны сервера.
2 Данные, пересылаемые в сообщении запроса приветствия HelloRequest, сообщении протокола Change Cipher Spec и сообщениях протокола Alert, не включаются в переменные , и .