@weredy

Как именно в протоколе TLS получается сессионный ключ по протоколу Диффи-Хеллмана?

Что именно принимается за закрытые ключи каждой стороной и как здесь используется открытый ключ (сертификат) сервера?
  • Вопрос задан
  • 953 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. А вот так легко!
2. TLS
Алгоритмы, использующиеся в TLS

В текущей версии протокола доступны следующие алгоритмы:

Для обмена ключами и проверки их подлинности применяются комбинации алгоритмов: RSA (асимметричный шифр), Diffie-Hellman (безопасный обмен ключами), DSA (алгоритм цифровой подписи), ECDSA;
Для симметричного шифрования: RC4, IDEA, Triple DES, SEED, Camellia или AES;
Для хеш-функций: MD5, SHA, SHA-256/384.

Алгоритмы могут дополняться в зависимости от версии протокола. До последней версии протокола TLS 1.2 были доступны также следующие алгоритмы симметричного шифрования, но они были убраны как небезопасные: RC2, IDEA, DES.

zi-nginx-conf2015-6-638.jpg?cb=144313859
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
https://tools.ietf.org/html/rfc5246

Сервер предоставляет свой сертификат с записанными в нем параметрами DH, либо цепочку сертификатов с ними. В результате классического обмена по DH формируется pre_master_secret. Затем из него формируется сессионный симметричный мастер-ключ по формуле master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random), который и используется для шифрования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы