Сбой приложения.NET после обновления TLSv1 до TLSv1_2016
Я не эксперт по SSL/TLS. но столкнуться со следующим
Мы установили соединение с веб-сервисом от поставщика, и "политика безопасности" была TLSv1, и все работало как прелесть. Этот поставщик обновил свою политику безопасности до TLSv1_2016.
И с тех пор коммуникация не проходит. Когда они откатились, все снова работает.
Теперь, посмотрев, как мы устанавливаем связь, я запутался.
мы используем.NET (Framework 4.7.0XXX) и используем следующий класс System.ServiceModel.Channels.CustomBinding
согласно документации это должно (по умолчанию) поддерживать Ssl3, Tls, Tls1.1, Tls1.2. https://technet.microsoft.com/en-us/system.servicemodel.channels.sslstreamsecuritybindingelement.sslprotocols(v=vs.96)
Что кажется достаточным.
На AWS я нашел следующий обзор
Поддержка TLSv1.2 достаточно для SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016 TLSv1.2_2018
Поддержка TLSv1.1 достаточно для SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016
Поддержка TLSv1 достаточно для SSLv3 TLSv1.0 TLSv1_2016
так глядя на эту информацию. я бы предположил, что наш способ установления соединения через System.ServiceModel.Channels.CustomBinding должен быть достаточным, чтобы иметь возможность взаимодействовать с их обновленной (до TLSv1_2016) политикой (даже если это TLSv1.1_2016, он должен работать, я принимаю во внимание учтите опечатку в их общении:-))
Кто-нибудь сталкивался с этой проблемой? или есть идеи, где продолжить расследование.
Спасибо заранее, С уважением, Джо
2 ответа
Все,
спасибо за вашу помощь и предложения, как будто я искал ответ и не мог найти его, это моя вина:-(
Мне сказали, что мы работали на Framework 4.7.0, и все, что я нашел, не имело смысла, теперь кажется, что наш сервер сборки использует 4.5.2 framework... и теперь все это имеет смысл.
SSL3 и TLS1 и никакой другой возможности в WCF и фреймворке 452...
еще раз, спасибо за помощь и руководство.
Сейчас мы смотрим на FW 472, но есть некоторые проблемы...
Документ, который вы читаете в MSDN, неверен.
Пожалуйста, посетите последние документы в Microsoft Docs, такие как Best Practices,
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls?view=netframework-4.7.2
Вы не раскрыли достаточно (например, код WCF), но на основании информации Microsoft, WCF в более старых версиях.NET Framework по умолчанию использует SSL 3.0/TLS 1.0, и вы должны явно выбрать TLS 1.2 в своем коде, если не можете обновить.NET Каркасная версия. (Слишком много "если еще" в этой статье, поэтому тратьте достаточно времени на каждый соответствующий абзац и проводите соответствующие эксперименты.)
Самое главное, "перенастроить ваши сборки", то есть перекомпилировать ваши сборки под.NET Framework 4.6.x или 4.7.x.