Как именно в протоколе TLS получается сессионный ключ по протоколу Диффи-Хеллмана? Что именно принимается за закрытые ключи каждой стороной и как здесь используется открытый ключ (сертификат) сервера?
Протокол Диффи-Хеллмана используется в протоколе TLS для обмена ключами. В процессе установки защищенного соединения между клиентом и сервером, обе стороны генерируют свои закрытые ключи (обычно случайные числа) и обмениваются открытыми ключами.
Клиент и сервер взаимодействуют следующим образом:
Клиент отправляет серверу сообщение Hello, в котором указывает поддерживаемые криптографические алгоритмы, в том числе и алгоритм Диффи-Хеллмана.Сервер отвечает клиенту сообщение Hello, в котором указывает выбранные криптографические алгоритмы, включая параметры для Диффи-Хеллмана.Клиент и сервер обмениваются открытыми ключами для Диффи-Хеллмана и вычисляют общий секретный ключ, используя свои закрытые ключи и открытые ключи собеседника.Полученный сессионный ключ используется для шифрования дальнейшей коммуникации между клиентом и сервером.
Открытый ключ сервера (который хранится в его цифровом сертификате) используется для проверки аутентичности сервера т.е. для того чтобы клиент мог убедиться, что он общается с именно тем сервером, который ему нужен. После успешной проверки авторизации сервера клиент использует открытый ключ сервера для отправки ему зашифрованных сообщений, включая ключи, сгенерированные в процессе Диффи-Хеллмана.
Протокол Диффи-Хеллмана используется в протоколе TLS для обмена ключами. В процессе установки защищенного соединения между клиентом и сервером, обе стороны генерируют свои закрытые ключи (обычно случайные числа) и обмениваются открытыми ключами.
Клиент и сервер взаимодействуют следующим образом:
Клиент отправляет серверу сообщение Hello, в котором указывает поддерживаемые криптографические алгоритмы, в том числе и алгоритм Диффи-Хеллмана.Сервер отвечает клиенту сообщение Hello, в котором указывает выбранные криптографические алгоритмы, включая параметры для Диффи-Хеллмана.Клиент и сервер обмениваются открытыми ключами для Диффи-Хеллмана и вычисляют общий секретный ключ, используя свои закрытые ключи и открытые ключи собеседника.Полученный сессионный ключ используется для шифрования дальнейшей коммуникации между клиентом и сервером.Открытый ключ сервера (который хранится в его цифровом сертификате) используется для проверки аутентичности сервера т.е. для того чтобы клиент мог убедиться, что он общается с именно тем сервером, который ему нужен. После успешной проверки авторизации сервера клиент использует открытый ключ сервера для отправки ему зашифрованных сообщений, включая ключи, сгенерированные в процессе Диффи-Хеллмана.