В .NET Framework версии 3.5.1 и более ранних версиях приложения не поддерживают использование системных версий TLS по умолчанию в качестве криптографического протокола. Это обновление позволяет использовать TLS версии 1.2 в платформа .NET Framework 3.5.1.

Примечание . Это содержимое доступно в Windows обновлении. Чтобы получить содержимое, отсканируйте Windows на получение последних платформа .NET Framework обновлений. Если ваша система полностью обновлена с Windows Обновления, вам не нужно ничего делать.

Решение

Сведения о загрузке

На исправление, соответствующее KB3154518, были включены последние обновления платформа .NET Framework, которые содержат все исправления, ранее включенные в KB3154518. Рекомендуется установить последние обновления платформа .NET Framework.

В эту область были внося следующие улучшения:

  • В следующих ключах реестра можно использовать значения по умолчанию для SSL и TLS операционной системы, а не жестко закодированные платформа .NET Framework для управляемых приложений, работающих на компьютере.

    • Для 64-битных операционных систем:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    • Для 32-битных операционных систем:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Примечание. Если приложение настроит servicePointManager.SecureProtocol в коде или с помощью файлов-конфигур задав определенное значение, или использует API SslStream.AuthenticateAs* для указания определенного переназначение SslProtocols, поведение параметра реестра не происходит.

  • Кроме того, добавлена enumeration SslProtocolsExtensions, которую можно использовать в качестве параметра настройки TLS версии 1.2, TLS версии 1.1, а также стандартных версий операционной системы для свойства ServicePointManager.SecurityProtocol при настройке политики .NET framework версии 2.0 с SP2. (Сведения об использовании расширений см. в разделе "Руководство разработчика".)

    Обратите внимание Windows что Windows Vista с SP2 и Windows Server 2008 с SP2 не поддерживают протокол TLS более новых версий, чем 1.0. Управляемые приложения платформа .NET Framework 2.0 с SP2, работающими в Windows Vista с SP2 или Windows Server 2008 с SP2, не могут использовать протокол TLS 1.2 или TLS 1.1, даже если эти протоколы задаваются в свойстве ServicePointManager.SecurityProtocol.


Для получения дополнительных сведений о скачии файлов службы поддержки Майкрософт щелкните номер следующей статьи, чтобы просмотреть статью в базе знаний Майкрософт:

119591 Как получить файлы службы поддержки Майкрософт из веб-служб, корпорация Майкрософт проверяла этот файл на вирусы. Корпорация Майкрософт использует самые последние на момент публикации файла версии антивирусного программного обеспечения. Файл хранится на защищенных серверах, что предотвращает его несанкционированное изменение.

Руководство для разработчиков

Определения новых расширений находятся в следующих файлах:
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    с помощью System.Security.Authentication;
    Public static class SecurityProtocolTypeExtensions
    {
    public const const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    public const const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    public const Const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    public static class SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    public const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Чтобы включить поддержку протокола TLS версии 1.2, включите исходные файлы в проект и за установите версию протокола, используя следующие методы:
 

  • Приложения, использующие API На основе ServicePointManager, могут настроить протокол следующим образом:

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

  • Приложения, использующие перегрузку SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean), могут установить значение SslProtocols как SslProtocolsExtensions.Tls12.

Если параметр реестра, упомянутый в первом абзаце, за установлен, а значение SslProtocols в приложении — SslProtocols.None, то выбранное поведение по умолчанию будет зависеть от Windows версии.

Кроме того, при изменении кода приложения, чтобы включить поддержку TLS 1.2 с платформа .NET Framework 3.5 с SP1, необходимо решить следующие исключения на компьютерах, на которых это исправление не развернуто:
 

  1. Если hotfix не установлен, то при вызове приложения ServicePointManager.SecurityProtocol для установки нового значения приложением ServicePointManager выведет "System.NotSupportedException: запрашиваемая система безопасности не поддерживается".

  2. Если hotfix не установлен, API на базе SslStream забросят исключения при вызове одного из API AuthenticateAs*:

    System.ArgumentException: указанное значение не является допустимым в аргументе "SslProtocolType".
    Имя параметра: sslProtocolType

Примечание. Только для SslStream — сочетание Tls12, Tls11 с любым из существующих TLS, Ssl3, Ssl2 (например, Tls12 | Tls11 | TLS) без исправления автоматически переводится на существующие протоколы (например, TLS) в системе. Он будет подключаться к TLS без исключения.
 

Дополнительная информация

Чтобы включить TLS 1.1 или 1.2 по умолчанию в операционной системе, следуйте инструкциям на странице https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Примечание. TLS 1.1 и 1.2 недоступны в Windows Vista или Windows Server 2008.

Если вам нужно отключить стандартные значения операционной системы, задамые разделом реестра, указанным в разделе "Разрешение" для определенных приложений, вы можете сделать это, добавив следующий раздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Полный путь к .exe файла>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Дополнительные сведения о TLS 1.2 см. в сведениях о TLS 1.2.

После того как вы вжмете systemDefaultTlsVersions .NET registry key, для каждой версии Windows, как показано в таблице ниже.
 

Windows версии

Клиент SSL2

SSL2 Server

Клиент SSL3

SSL3 Server

Клиент TLS 1.0

TLS 1.0 Server

Клиент TLS 1.1

TLS 1.1 Server

Клиент TLS 1.2

TLS 1.2 Server

Windows Vista с SP2 и Windows Server 2008 с SP2

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Н/Н

Н/Н

Н/Н

Н/Н

Windows 7 с SP1 и Windows Server 2008 R2 с SP1

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Выкл.

Выкл.

Выкл.

Выкл.

Windows Server 2012

Выкл.

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Windows 8.1 и Windows Server 2012 R2

Выкл.

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Windows 10

Выкл.

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Windows 10 (1511)

Выкл.

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Windows 10 (1607) и Windows Server 2016

Н/Н

Н/Н

Выкл.

Выкл.

Вкл

Вкл

Вкл

Вкл

Вкл

Вкл

Нужна дополнительная помощь?

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

Присоединение к программе предварительной оценки Майкрософт >

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×