Каков протокол безопасности по умолчанию для связи с серверами, которые поддерживают до TLS 1.2
? Будет ли .NET
по умолчанию, выберите самый высокий протокол безопасности , поддерживаемый на стороне сервера или у меня явно добавить эту строку кода:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Есть ли способ изменить это значение по умолчанию, кроме изменения кода?
Наконец, поддерживает .NET 4.0
только до TLS 1.0
? т.е. я должен обновить клиентские проекты до 4.5 для поддержки TLS 1.2
.
Моя мотивация состоит в том, чтобы удалить поддержку SSLv3
на стороне клиента, даже если сервер поддерживает ее (у меня уже есть сценарий powershell, чтобы отключить это в реестре компьютера), и поддерживать самый высокий протокол TLS, который поддерживает сервер.
Обновление:
глядя на ServicePointManager
класс, .NET 4.0
я не вижу перечислимых значений для TLS 1.0
и 1.1
. В обоих случаях .NET 4.0/4.5
по умолчанию SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
. Надеюсь, это значение по умолчанию не будет нарушено при отключении SSLv3
в реестре.
Тем не менее, я решил, что мне нужно обновить все приложения .NET 4.5
и явно SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
все равно добавить их во весь загрузочный код всех приложений.
Это будет делать исходящие запросы к различным API и службам, чтобы не понизить до SSLv3
и должен выбрать самый высокий уровень TLS
.
Этот подход звучит разумно или излишне? У меня есть много приложений, которые нужно обновить, и я хочу проверить их в будущем, поскольку, как я слышал TLS 1.0
, некоторые провайдеры могут даже отказаться от них в ближайшем будущем.
Является ли клиент, отправляющий исходящие запросы к API, влияет ли отключение SSL3 в реестре на платформу .NET? Я вижу, по умолчанию TLS 1.1 и 1.2 не включены, мы должны включить его через реестр? RE http://support.microsoft.com/kb/245030 .
После небольшого исследования я считаю, что настройки реестра не окажут никакого влияния, поскольку они применяются к IIS (подраздел сервера) и браузерам (подраздел клиента).
Извините, этот пост превратился в несколько вопросов, за которыми последовали ответы «возможно».