Здравствуйте. Я пишу свой TLS сервер, но возникла такая проблема, я пытаюсь расшифровать сообщение Finished (Encrypted Handshake Message) приватным ключём сертификата, но выдается исключение :
System.Security.Cryptography.CryptographicException: "Плохие данные."
Код:
internal static X509Certificate2 ServerCert = new X509Certificate2("SRVCert.pfx","******");
internal static X509Certificate2 CA_Cert = new X509Certificate2("CA.crt");
internal static RSA PublicKey = (RSA)ServerCert.PublicKey.Key;
internal static RSA PrivateKey = (RSA)ServerCert.PrivateKey;
ServerCert содержит также приватный ключ. Сертификат и сертификат CA отправляется клиенту.
Ниже сообщение Finished (HEX):
16030100301c7dd49c1290dd83774e38465a81e7d98fdf5b962881323b4348bb0e312dd9c5260656fe230afe8e69f61c712f5567e2
Пожалуйста подскажите, что я делаю не так
Сообщение Finished шифруется блочным шифром с динамически вычисляемым ключом. Сертификаты не принимают участия на этом этапе.
Процедура вычисления динамических ключей для TLS 1.2 описана в RFC 5246 глава 6.3:
https://tools.ietf.org/html/rfc5246#section-6.3
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости