skip to content

Подпротокол установки связи

 

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

  • согласовать версию протокола;
  • согласовать алгоритм шифрования (выбирается наиболее сильный согласно табл. 22.2 из списка поддерживаемых обеими сторонами);
  • произвести аутентификацию (с обеих сторон или выборочную);
  • с помощью согласованного алгоритма асимметричного шифрования обменяться общим секретом, на основе которого будет  производиться симметричное шифрование.

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

Если требуется аутентификация клиента, сервер может послать сообщение Certificate_request, запрашивая сертификат клиента. После этого сервер отправляет сообщение Server_hello_done, показывая, что он завершил свою работу и ожидает сообщений от клиента.