Протоколы Internet


Протокол TLS версия 0 - часть 22


finished(20), (255)

} HandshakeType;

struct

{ HandshakeType msg_type;

/* тип диалога */

uint24 length;

/* байтов в сообщении */

select (HandshakeType) {

case hello_request:

HelloRequest;

case client_hello:

ClientHello;

case server_hello:

ServerHello;

case certificate:

Certificate;

case server_key_exchange:

ServerKeyExchange;

case certificate_request:

CertificateRequest;

case server_hello_done:

ServerHelloDone;

case certificate_verify:

CertificateVerify;

case client_key_exchange:

ClientKeyExchange;

case finished:

Finished; } body;

} Handshake;

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

7.4.1. Сообщения Hello

Сообщения фазы hello используются для выяснения возможностей клиента и сервера по повышению безопасности информационного обмена. Когда начинается новая сессия, состояние шифрования уровня записей, алгоритмы хэширования и сжатия инициализируются нулем. Текущее состояние соединения используется для сообщений согласования параметров.

7.4.1.1. Запрос Hello

Сообщение-запрос hello может быть послано сервером в любое время.

Значение этого сообщения:

Запрос Hello является простым уведомлением о том, что клиент должен начать согласование путем посылки сообщения client hello. Это сообщение будет проигнорировано клиентом, если он участвует в сессии согласования. Это сообщение может игнорироваться клиентом, если он не хочет заново согласовывать параметры сессии, или клиент может, если хочет, реагировать уведомлением no_renegotiation. Так как сообщения диалога предназначены для осуществления определенных действий над прикладными данными, ожидается, что согласование начнется до того, как будут получены новые записи от клиента. Если сервер посылает запрос hello, но не получает отклика client hello, он может разорвать соединение с фатальным уведомлением.




Начало  Назад  Вперед



Книжный магазин