Зависит ли поддержка TLS 1.2 только от версии .NET framework?

Я хочу глобально обеспечить использование TLS 1.2 в своем приложении WPF следующим образом:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

Из .NET 4.5 протокол TLS 1.2: поддерживается для безопасной связи по протоколу https. Мой вопрос в том, всегда ли это будет работать, если я отправлю .NET 4.5 вместе с моим приложением. Зависит ли это от версии ОС?


person Balázs Szántó    schedule 01.09.2015    source источник


Ответы (1)


TLS завершается в Windows компонентом SChannel. Поддерживаемые шифры зависят от версии SChannel, которая зависит от ОС, а НЕ от версии .Net. Например, Windows XP поддерживает только TLS 1.0.

Это означает, что ваш хост-компьютер должен иметь как минимум Windows 7, если вы хотите поддерживать TLS 1.2.

Подробности можно найти здесь: http://blogs.msdn.com/b/kaushal/archive/2011/10/02/support-for-ssl-tls-protocols-on-windows.aspx

person Lukos    schedule 01.09.2015
comment
Итак, если бы я использовал это так: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; Это должно работать от Vista до Windows 10, не так ли? - person Balázs Szántó; 01.09.2015
comment
Я не знаю, что произойдет, если вы объедините их, хотя их двоичные значения предполагают, что вы можете это сделать. Выберет ли он самый высокий из поддерживаемых TLS? Теоретически он отправит клиенту список поддерживаемых шифров, и клиент выберет лучший, но я не уверен, что он непротиворечив или гарантирован. Вероятно, это лучшее, что вы можете сделать для поддержки Vista. Вы также можете пропустить TLS1.1, потому что я думаю, что 1.2 поддерживается на всех платформах, поддерживающих 1.1. - person Lukos; 01.09.2015