Поддержка TLS 1.2 для Microsoft SQL Server

Применяется к: SQL Server
Исходный номер базы знаний: 3135244

Введение

В этой статье содержатся сведения об обновлениях, которые корпорация Майкрософт выпускает для включения поддержки TLS 1.2 для SQL Server 2017 в Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 и SQL Server 2008 R2. В этой статье также перечислены поддерживаемые поставщики клиентов. SQL Server 2016, SQL Server 2017 и SQL Server 2019 поддерживают TLS 1.2 без необходимости обновления.

Сообщалось о нескольких известных уязвимостях в отношении протокола SSL и более ранних версий TLS. Для безопасного обмена данными рекомендуется выполнить обновление до TLS 1.2.

Важно!

Известные уязвимости для реализации microsoft TDS не зарегистрированы. Это протокол связи, используемый между SQL Server клиентами и ядром СУБД SQL Server. Реализация ПРОТОКОЛА TLS 1.0 в Microsoft Schannel (в отношении известных уязвимостей, о которых было сообщено корпорации Майкрософт на дату публикации этой статьи) приведена в обновлении состояния безопасности Schannel для tls 1.0 в Windows: 24 ноября 2015 г.

Как узнать, требуется ли это обновление

Используйте следующую таблицу, чтобы определить, поддерживает ли текущая версия SQL Server TLS 1.2 или необходимо скачать обновление, чтобы включить поддержку TLS 1.2. Используйте ссылки для скачивания в таблице, чтобы получить обновления сервера, применимые к вашей среде.

Примечание.

Сборки, более поздние, чем перечисленные в этой таблице, также поддерживают TLS 1.2.

выпуск SQL Server Начальная сборка или выпуск с поддержкой TLS 1.2 Текущие обновления с поддержкой TLS 1.2 Дополнительные сведения
SQL Server 2014 с пакетом обновления 1 (SP1) CU 12.0.4439.1

с пакетом обновления 1 (SP1) с накопительным пакет
KB3130926 — накопительный пакет обновления 5 для SQL Server 2014 с пакетом обновления 1 (SP1)

Примечание.теперь KB3130926 установит последний накопительный пакет обновления для 2014 с пакетом обновления 1 (SP13— KB4019099), который включает поддержку TLS 1.2 и все исправления, выпущенные на сегодняшний день. При необходимости накопительный пакет обновления 5 доступен в каталоге клиентский компонент Центра обновления Windows.

Примечание. Поддержка TLS 1.2 также доступна в 2014 с пакетом обновления 2 (SP2) и 2014 с пакетом обновления 3 (SP3).
KB3052404 . ИСПРАВЛЕНИЕ. Вы не можете использовать протокол безопасности транспортного уровня версии 1.2 для подключения к серверу под управлением SQL Server 2014 или SQL Server 2012
GDR SQL Server 2014 с пакетом обновления 1 (SP1) 12.0.4219.0

Обновление GDR TLS 1.2 с пакетом обновления 1 (SP1)
Поддержка TLS 1.2 для GDR 2014 с пакетом обновления 1 (SP1) доступна в последней накопительной KB4019091 обновления GDR.

Примечание. Поддержка TLS 1.2 также доступна в 2014 с пакетом обновления 2 (SP2) и 2014 с пакетом обновления 3 (SP3).
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 — накопительное обновление 12 для SQL Server 2014 г.

Примечание. теперь KB3130923 установит последний cu, выпущенный для RTM 2014 (CU14 — KB3158271 ), который включает поддержку TLS 1.2 и все исправления, выпущенные на сегодняшний день. При необходимости cu12 доступен в каталоге клиентский компонент Центра обновления Windows.

Примечание. Поддержка TLS 1.2 также доступна в 2014 с пакетом обновления 2 (SP2) и 2014 с пакетом обновления 3 (SP3).
KB3052404 . ИСПРАВЛЕНИЕ. Вы не можете использовать протокол безопасности транспортного уровня версии 1.2 для подключения к серверу под управлением SQL Server 2014 или SQL Server 2012
SQL Server 2014 RTM GDR 12.0.2271.0

Обновление RTM GDR TLS 1.2
Поддержка TLS для SQL 2014 RTM в настоящее время доступна только при установке 2014 с пакетом обновления 2 (SP2) и 2014 с пакетом обновления 3 (SP3).
GDR SQL Server 2012 с пакетом обновления 3 (SP3) 11.0.6216.27

Обновление GDR TLS 1.2 с пакетом обновления 3 (SP3)
Описание обновления для системы безопасности для GDR SQL Server 2012 с пакетом обновления 3 (SP3): 16 января 2018 г.

Примечание. Поддержка TLS 1.2 также доступна в 2012 с пакетом обновления 4 (SP4).
SQL Server 2012 с пакетом обновления 3 (SP3) CU 11.0.6518.0

с пакетом обновления 1 (SP1) с накопительным пакет
KB3123299 — накопительное обновление 1 для SQL Server 2012 с пакетом обновления 3 (SP3)

Примечание. теперь KB3123299 установит последний накопительный пакет обновления 2012 с пакетом обновления 3 (SP3) (CU10 — KB4025925, который включает поддержку TLS 1.2 и все исправления, выпущенные на сегодняшний день). При необходимости cu1 доступен в каталоге клиентский компонент Центра обновления Windows.

Примечание. Поддержка TLS 1.2 также доступна в 2012 с пакетом обновления 4 (SP4).
KB3052404 . ИСПРАВЛЕНИЕ. Вы не можете использовать протокол безопасности транспортного уровня версии 1.2 для подключения к серверу под управлением SQL Server 2014 или SQL Server 2012
GDR SQL Server 2012 с пакетом обновления 2 (SP2) 11.0.5352.0

Обновление GDR TLS 1.2 с пакетом обновления 2 (SP2)
Поддержка TLS 1.2 для GDR 2012 с пакетом обновления 2 (SP2) доступна в последнем накопительном обновлении GDR — KB3194719.

Поддержка TLS 1.2 также доступна в 2012 с пакетом обновления 3 (SP3) и 2012 с пакетом обновления 4 (SP4).
SQL Server 2012 с пакетом обновления 2 (SP2) CU 11.0.5644.2

с пакетом обновления 2 (SP2) с накопительным пакетом обновления
KB3120313 — накопительное обновление 10 для SQL Server 2012 с пакетом обновления 2 (SP2).

Примечание. теперь KB3120313 установит последний cu, выпущенный для 2012 с пакетом обновления 2 (SP2) (CU16 — KB3205054, который включает поддержку TLS 1.2 и все исправления, выпущенные на сегодняшний день). При необходимости cu1 доступен в каталоге клиентский компонент Центра обновления Windows. Примечание. Поддержка TLS 1.2 также доступна в 2012 с пакетом обновления 3 (SP3) и 2012 с пакетом обновления 4 (SP4).
KB3052404 . ИСПРАВЛЕНИЕ. Вы не можете использовать протокол безопасности транспортного уровня версии 1.2 для подключения к серверу под управлением SQL Server 2014 или SQL Server 2012
SQL Server 2008 R2 с пакетом обновления 3 (SP3) (только x86/x64) 10.50.6542.0

Обновление TLS 1.2 с пакетом обновления 2 (SP2)
Поддержка TLS 1.2 доступна в последнем накопительном обновлении для SQL Server 2008 R2 с пакетом обновления 3 (SP3) — KB4057113.
SQL Server 2008 R2 с пакетом обновления 2 (SP2) GDR (только IA-64) 10.50.4047.0

Обновление TLS 1.2 с пакетом обновления 2 (SP2)
SQL Server 2008 R2 с пакетом обновления 2 (SP2) GDR (IA-64) TLS 1.2 Обновления
SQL Server 2008 R2 с пакетом обновления 2 (SP2) CU (только IA-64) 10.50.4344.0

Обновление TLS 1.2 с пакетом обновления 2 (SP2)
SQL Server 2008 R2 с пакетом обновления 2 (SP2) GDR (IA-64) TLS 1.2 Обновления
SQL Server 2008 с пакетом обновления 4 (SP4) (только для x86/x64) 10.0.6547.0

Обновление TLS 1.2 с пакетом обновления 4 (SP4)
Поддержка TLS 1.2 доступна в последнем накопительном обновлении для SQL Server 2008 с пакетом обновления 4 (SP4) — KB4057114 (только x86/x64).
SQL Server 2008 с пакетом обновления 3 (SP3) GDR (только IA-64) 10.0.5545.0

Обновление TLS 1.2 с пакетом обновления 3 (SP3)
SQL Server 2008 с пакетом обновления 3 (SP3) (IA-64) TLS 1.2 Обновления
SQL Server 2008 с пакетом обновления 3 (SP3) CU (только IA-64) 10.0.5896.0

Обновление TLS 1.2 с пакетом обновления 3 (SP3)
SQL Server 2008 с пакетом обновления 3 (SP3) CU (IA-64) TLS 1.2 Обновления

Скачивание клиентских компонентов

Используйте следующую таблицу, чтобы скачать клиентские компоненты и обновления драйверов, применимые к вашей среде.

Клиентский компонент или драйвер Обновления с поддержкой TLS 1.2
SQL Server Native Client 10.0 для SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 и SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 для SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client — QFE
Компоненты клиента MDAC (Sqlsrv32.dll и Sqloledb.dll) Обновление стека обслуживания для Windows 10, версия 1809: 10 ноября 2020 г.

Дополнительные исправления, необходимые SQL Server для использования TLS 1.2

Необходимо установить следующие накопительные пакеты исправлений .NET, чтобы включить SQL Server функции, такие как Database Mail и некоторые компоненты служб SSIS, использующие конечные точки .NET, которым требуется поддержка TLS 1.2, например задача веб-службы для использования TLS 1.2.

Операционная система Версия для .NET Framework Обновления с поддержкой TLS 1.2
Windows 7 с пакетом обновления 1 (SP1), Windows 2008 R2 с пакетом обновления 1 (SP1) 3.5.1 Поддержка TLS версии 1.2, включенная в платформа .NET Framework версии 3.5.1
Windows 8 RTM, Windows 2012 RTM 3.5 Поддержка TLS версии 1.2, включенная в платформа .NET Framework версии 3.5
Windows 8.1, Windows 2012 R2 с пакетом обновления 1 (SP1) 3.5 SP1 Поддержка TLS версии 1.2, включенная в платформа .NET Framework версии 3.5 с пакетом обновления 1 (SP1) на Windows 8.1 и Windows Server 2012 R2

Вопросы и ответы

  • Поддерживается ли TLS 1.1 в SQL Server 2016 и более поздних версиях?

    Да. SQL Server 2016 г., SQL Server 2017 в Windows и SQL Server 2019 в версиях Windows поставляются с поддержкой TLS 1.0 до TLS 1.2. Необходимо отключить ПРОТОКОЛы TLS 1.0 и 1.1, если вы хотите использовать только TLS 1.2 для обмена данными между клиентом и сервером.

  • Разрешают ли SQL Server 2019 подключения по протоколу TLS 1.0 или 1.1 или только по протоколу 1.2?

    SQL Server 2019 имеет тот же уровень поддержки, что и SQL Server 2016 и SQL Server 2017, а SQL Server 2019 поддерживает более старые версии TLS. SQL Server 2019 RTM поставляется с поддержкой TLS 1.2, и для включения поддержки TLS 1.2 не требуется никаких других обновлений или исправлений.

  • Влияют ли на TDS известные уязвимости?

    Известные уязвимости для реализации microsoft TDS не зарегистрированы. Так как несколько организаций по обеспечению соблюдения стандартов предусматривают использование TLS 1.2 для зашифрованных каналов связи, корпорация Майкрософт выпускает поддержку TLS 1.2 для широко распространенной базы установки SQL Server.

  • Как будут распространяться обновления TLS 1.2 среди клиентов?

    В этой статье содержатся ссылки для скачивания соответствующих обновлений сервера и клиента, поддерживающих TLS 1.2.

  • Поддерживает ли TLS 1.2 SQL Server 2005?

    Поддержка TLS 1.2 доступна только для SQL Server 2008 и более поздних версий.

  • Затрагиваются ли клиенты, которые не используют ПРОТОКОЛ SSL/TLS, если на сервере отключены SSL 3.0 и TLS 1.0?

    Да. SQL Server шифрует имя пользователя и пароль во время входа, даже если безопасный канал связи не используется. Это обновление требуется для всех экземпляров SQL Server, которые не используют безопасные коммуникации и на сервере отключены все другие протоколы, кроме TLS 1.2.

  • Какие версии Windows Server поддерживают TLS 1.2?

    Windows Server 2008 R2 и более поздних версий поддерживают TLS 1.2.

  • Какой правильный параметр реестра позволяет включить ПРОТОКОЛ TLS 1.2 для SQL Server связи?

    Ниже приведены правильные параметры реестра.

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    Эти параметры необходимы как для сервера, так и для клиентских компьютеров. Параметры DisabledByDefault и Enabled должны быть созданы на клиентах Windows 7 и серверах Windows Server 2008 R2. В Windows 8 и более поздних версиях клиентских операционных систем или Windows Server 2012 сервера и более поздних версиях серверных операционных систем протокол TLS 1.2 уже должен быть включен. Если вы реализуете политику развертывания для реестра Windows, которая должна быть независимой от выпуска ОС, рекомендуется добавить указанные разделы реестра в политику. Кроме того, если вы используете Database Mail на SQL Server, необходимо также задать следующие разделы реестра .NET:

    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

Известные проблемы

  • Проблема 1

    SQL Server Management Studio (SSMS), сервер отчетов и диспетчер отчетов не подключаются к ядру СУБД после применения исправления для SQL Server 2008, 2008 R2, 2012 или 2014. Сервер отчетов и диспетчер отчетов завершаются сбоем и возвращают следующее сообщение об ошибке:

    Сервер отчетов не может открыть подключение к базе данных сервера отчетов. Для всех запросов и обработки требуется подключение к базе данных. (rsReportServerDatabaseUnavailable)

    Эта проблема возникает из-за того, что SSMS, диспетчер отчетов и Reporting Services Configuration Manager используют ADO.NET, а поддержка TLS 1.2 ADO.NET доступна только в платформа .NET Framework 4.6. В более ранних версиях платформа .NET Framework необходимо применить обновление Windows, чтобы ADO.NET могли поддерживать обмен данными по протоколу TLS 1.2 для клиента. Обновления Windows, которые поддерживают протокол TLS 1.2 в более ранних версиях платформы .NET Framework, перечислены в таблице в разделе Как узнать, требуется ли это обновление .

  • Проблема 2

    Reporting Services Configuration Manager сообщает следующее сообщение об ошибке даже после обновления поставщиков клиентов до версии, поддерживающей TLS 1.2:

    Не удалось подключиться к серверу. Соединение с сервером было успешно установлено, но во время подтверждения перед входом произошла ошибка.

    Снимок экрана: ошибка тестового подключения после обновления поставщиков клиентов до версии, поддерживающей TLS 1.2.

    Чтобы устранить эту проблему, вручную создайте следующий раздел реестра в системе, где размещается Reporting Services Configuration Manager:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • Проблема 3

    Обмен данными между зашифрованными конечными точками, использующими ПРОТОКОЛ TLS 1.2, завершается сбоем при использовании зашифрованных подключений для групп доступности, зеркального отображения базы данных или компонента Service Broker в SQL Server. В журнале ошибок SQL регистрируется сообщение об ошибке, похожее на следующее:

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    Дополнительные сведения об этой проблеме см. в статье ИСПРАВЛЕНие. Подключение зашифрованной конечной точки к TLS 1.2 завершается сбоем при использовании SQL Server.

  • Проблема 4

    При попытке установить SQL Server 2012 или SQL Server 2014 на сервере с включенным протоколом TLS 1.2 возникают различные ошибки.

    Дополнительные сведения см. в разделе ИСПРАВЛЕНИЕ: ошибка при установке SQL Server 2012 или SQL Server 2014 на сервере с включенным протоколом TLS 1.2.

  • Проблема 5

    Зашифрованное подключение с зеркальным отображением базы данных или группами доступности не работает при использовании сертификата после отключения всех других протоколов, кроме TLS 1.2. В журнале ошибок SQL Server регистрируется сообщение об ошибке, похожее на следующее:

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

    • Симптом 1.

      В журнале ошибок SQL Server регистрируется сообщение об ошибке, похожее на следующее:

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • Симптом 2.

      В журнале событий Windows регистрируется сообщение об ошибке, похожее на следующее:

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      Эта проблема возникает из-за того, что для групп доступности и зеркального отображения базы данных требуется сертификат, который не использует хэш-алгоритмы фиксированной длины, например MD5. Алгоритмы хэширования фиксированной длины не поддерживаются в TLS 1.2.

    Дополнительные сведения см. в разделе ИСПРАВЛЕНИЕ. Обмен данными с помощью хэш-алгоритма MD5 завершается сбоем, если SQL Server использует TLS 1.2.

  • Проблема 6

    На следующие SQL Server версии ядра СУБД влияет проблема с периодическим завершением службы, о чем сообщается в статье базы знаний 3146034. Чтобы клиенты могли защитить себя от проблемы с завершением службы, мы рекомендуем установить обновления TLS 1.2 для SQL Server, упомянутых в этой статье, если их версия SQL Server указана в следующей таблице:

    выпуск SQL Server Затронутая версия
    SQL Server 2008 R2 с пакетом обновления 3 (SP3) (x86 и x64) 10.50.6537.0
    SQL Server 2008 R2 с пакетом обновления 2 (SP2) GDR (только IA-64) 10.50.4046.0
    SQL Server 2008 R2 с пакетом обновления 2 (SP2) (только IA-64) 10.50.4343.0
    SQL Server 2008 с пакетом обновления 4 (SP4) (x86 и x64) 10.0.6543.0
    SQL Server 2008 с пакетом обновления 3 (SP3) GDR (только IA-64) 10.0.5544.0
    SQL Server 2008 с пакетом обновления 3 (SP3) (только IA-64) 10.0.5894.0
  • Проблема 7

    Database Mail не работает с TLS 1.2. сбой Database Mail со следующей ошибкой:

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: не удалось прочитать сведения о конфигурации почты из базы данных. Не удается запустить почтовый сеанс.

    Дополнительные сведения см. в разделе Дополнительные исправления, необходимые для использования TLS 1 SQL Server.

Распространенные ошибки, которые могут возникать при отсутствии обновлений TLS 1.2 на клиенте или сервере

Проблема 1

System Center Configuration Manager (SCCM) не может подключиться к SQL Server после включения протокола TLS 1.2 на SQL Server. В этой ситуации вы получите следующее сообщение об ошибке:

Поставщик TCP: существующее подключение было принудительно закрыто удаленным узлом

Эта проблема может возникнуть, если SCCM использует драйвер SQL Server Native Client, для которых нет исправления. Чтобы устранить эту проблему, скачайте и установите исправление клиента, указанное в разделе Загрузка компонентов клиента . Например, Microsoft® SQL Server ® 2012 Native Client — QFE.

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

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>