Compartir a través de


Soporte de TLS 1.2 para Microsoft SQL Server

Se aplica a: SQL Server
Número de KB original: 3135244

Introducción

En este artículo se proporciona información sobre las actualizaciones que Microsoft publica para habilitar la compatibilidad de TLS 1.2 con SQL Server 2017 en Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 y SQL Server 2008 R2. En este artículo también se enumeran los proveedores de cliente admitidos. SQL Server 2016, SQL Server 2017 y SQL Server 2019 admiten TLS 1.2 sin necesidad de una actualización.

Se han notificado varias vulnerabilidades conocidas en la capa de sockets seguros (SSL) y versiones anteriores de seguridad de la capa de transporte (TLS). Se recomienda actualizar a TLS 1.2 para una comunicación segura.

Importante

No se han notificado vulnerabilidades conocidas para la implementación de Microsoft TDS. Este es el protocolo de comunicación que se usa entre los clientes de SQL Server y el motor de base de datos de SQL Server. La implementación de Microsoft Schannel de TLS 1.0 (con respecto a las vulnerabilidades conocidas que se han notificado a Microsoft a partir de la fecha de publicación de este artículo) se resume en la implementación de Schannel de TLS 1.0 en la actualización de estado de seguridad de Windows: 24 de noviembre de 2015.

Cómo saber si necesita esta actualización

Use la tabla siguiente para determinar si la versión actual de SQL Server ya admite TLS 1.2 o si tiene que descargar una actualización para habilitar la compatibilidad con TLS 1.2. Use los vínculos de descarga de la tabla para obtener las actualizaciones del servidor que son aplicables a su entorno.

Nota:

Las compilaciones que son posteriores a las enumeradas en esta tabla también admiten TLS 1.2.

Versión de SQL Server Compilación o versión inicial que admitía TLS 1.2 Actualizaciones actuales con compatibilidad con TLS 1.2 Información adicional
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926: actualización acumulativa 5 para SQL Server 2014 SP1

Nota: KB3130926 instalará la última CU producida para 2014 SP1 (CU13 - KB4019099), que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha. Si es necesario, CU5 está disponible en el catálogo de Windows Update.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
KB3052404: FIX: no se puede usar el protocolo de seguridad de la capa de transporte versión 1.2 para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
SQL Server 2014 SP1 GDR 12.0.4219.0

Actualización de TLS 1.2 de SP1 GDR
La compatibilidad de TLS 1.2 con GDR de 2014 SP1 está disponible en la actualización acumulativa de GDR más reciente: KB4019091.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923: actualización acumulativa 12 para SQL Server 2014

Nota: KB3130923 instalará la última CU publicada para 2014 RTM (CU14 - KB3158271 ), que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha. Si es necesario, CU12 está disponible en el catálogo de Windows Update.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
KB3052404: FIX: no se puede usar el protocolo de seguridad de la capa de transporte versión 1.2 para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
SQL Server 2014 RTM GDR 12.0.2271.0

Actualización de TLS 1.2 de RTM GDR
La compatibilidad con TLS para SQL 2014 RTM solo está disponible actualmente mediante la instalación de 2014 SP2 y 2014 SP3.
SQL Server 2012 SP3 GDR 11.0.6216.27

Actualización de TLS 1.2 de SP3 GDR
Descripción de la actualización de seguridad de SQL Server 2012 SP3 GDR: 16 de enero de 2018

Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP4.
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299: actualización acumulativa 1 para SQL Server 2012 SP3

Nota: KB3123299 instalará la última CU publicada para 2012 SP3 (CU10 - KB4025925, que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha). Si es necesario, CU1 está disponible en el catálogo de Windows Update.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP4.
KB3052404: FIX: no se puede usar el protocolo de seguridad de la capa de transporte versión 1.2 para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
SQL Server 2012 SP2 GDR 11.0.5352.0

Actualización de TLS 1.2 de SP2 GDR
La compatibilidad con TLS 1.2 para 2012 SP2 GDR está disponible en la última actualización acumulativa de GDR: KB3194719.

La compatibilidad con TLS 1.2 también está disponible en 2012 SP3 y 2012 SP4.
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313: actualización acumulativa 10 para SQL Server 2012 SP2.

Nota: ahora KB3120313 instalará la última CU publicada para 2012 SP2 (CU16 - KB3205054, que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha). Si es necesario, CU1 está disponible en el catálogo de Windows Update. Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP3 y 2012 SP4.
KB3052404: FIX: no se puede usar el protocolo de seguridad de la capa de transporte versión 1.2 para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
SQL Server 2008 R2 SP3 (solo x86/x64) 10.50.6542.0

Actualización de TLS 1.2 de SP2
La compatibilidad con TLS 1.2 está disponible en la actualización acumulativa más reciente de SQL Server 2008 R2 SP3 : KB4057113.
SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4047.0

Actualización de TLS 1.2 de SP2
Actualizaciones de TLS 1.2 de SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2
SQL Server 2008 R2 SP2 CU (solo IA-64) 10.50.4344.0

Actualización de TLS 1.2 de SP2
Actualizaciones de TLS 1.2 de SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2
SQL Server 2008 SP4 (solo x86/x64) 10.0.6547.0

Actualización de TLS 1.2 de SP4
La compatibilidad con TLS 1.2 está disponible en la actualización acumulativa más reciente de SQL Server 2008 SP4 : KB4057114(solo x86/x64).
SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5545.0

Actualización de TLS 1.2 de SP3
Actualizaciones de TLS 1.2 de SQL Server 2008 SP3 GDR (IA-64)
SQL Server 2008 SP3 CU (solo IA-64) 10.0.5896.0

Actualización de TLS 1.2 de SP3
Actualizaciones de TLS 1.2 DE SQL Server 2008 SP3 CU (IA-64)

Descargas de componentes de cliente

Use la tabla siguiente para descargar los componentes de cliente y las actualizaciones de controladores que son aplicables a su entorno.

Componente o controlador de cliente Actualizaciones con compatibilidad con TLS 1.2
SQL Server Native Client 10.0 para SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 y SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 para SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client: QFE
Componentes de cliente MDAC (Sqlsrv32.dll y Sqloledb.dll) Actualización de la pila de mantenimiento para Windows 10, versión 1809: 10 de noviembre de 2020

Tabla de resumen para la compatibilidad del controlador cliente con TLS 1.2

En la tabla siguiente se resume la compatibilidad con los proveedores y controladores de SQL Server:

Controlador Compatibilidad con TLS 1.2 Nota:
Microsoft ODBC Driver for SQL Server 11 Sí, con actualizaciones Instale la actualización acumulativa más reciente para SQL Server 2012 o SQL Server 2014. (Consulte la tabla en el Cómo saber si necesita esta sección de actualización ).
Microsoft ODBC Driver for SQL Server 13 Admite TLS 1.2 de forma nativa.
Microsoft ODBC Driver for SQL Server 17 Admite TLS 1.2 de forma nativa.
Microsoft ODBC Driver for SQL Server 18 Admite TLS 1.2 de forma nativa.
Microsoft OLE DB Driver for SQL Server 19 (MSOLEDBSQL) Admite TLS 1.2 de forma nativa.
SQL Server Native Client 10 Sí, con actualizaciones Instale la actualización acumulativa más reciente para SQL Server 2008 o SQL Server 2008 R2. (Consulte la tabla en el Cómo saber si necesita esta sección de actualización ).
SQL Server Native Client 11 Sí, con actualizaciones Instale la actualización acumulativa más reciente para SQL Server 2012 o SQL Server 2014. (Consulte la tabla en el Cómo saber si necesita esta sección de actualización ).
Controlador ODBC de SQL Server (SQLSRV32.DLL) Sí, para determinados sistemas operativos Se ha agregado compatibilidad con Windows Server 2019 y Windows 10. Las versiones anteriores del sistema operativo no lo admiten.
Proveedor OLE DB de SQL Server (SQLOLEDB) Sí, para determinados sistemas operativos Se ha agregado compatibilidad con Windows Server 2019 y Windows 10. Las versiones anteriores del sistema operativo no lo admiten.

Correcciones adicionales necesarias para que SQL Server use TLS 1.2

Tiene que instalar los siguientes paquetes acumulativos de revisiones de .NET para habilitar características de SQL Server como Correo electrónico de base de datos y determinados componentes de SSIS que usan puntos de conexión de .NET que requieren compatibilidad con TLS 1.2, como la tarea servicio web, para usar TLS 1.2.

Sistema operativo Versión de .NET Framework Actualizaciones con compatibilidad con TLS 1.2
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 3.5.1 Compatibilidad con TLS v1.2 incluida en .NET Framework versión 3.5.1
Windows 8 RTM, Windows 2012 RTM 3,5 Compatibilidad con TLS v1.2 incluida en .NET Framework versión 3.5
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Compatibilidad con TLS v1.2 incluida en .NET Framework versión 3.5 SP1 en Windows 8.1 y Windows Server 2012 R2

Preguntas más frecuentes

  • ¿Se admite TLS 1.1 en SQL Server 2016 y versiones posteriores?

    Sí. SQL Server 2016, SQL Server 2017 en Windows y SQL Server 2019 en versiones de Windows se incluyen con compatibilidad con TLS 1.0 a TLS 1.2. Debe deshabilitar TLS 1.0 y 1.1 si solo quiere usar TLS 1.2 para la comunicación de cliente-servidor.

  • ¿SQL Server 2019 permite conexiones mediante TLS 1.0 o 1.1, o solo 1.2?

    SQL Server 2019 tiene el mismo nivel de compatibilidad que SQL Server 2016 y SQL Server 2017 y SQL Server 2019 admite versiones anteriores de TLS. SQL Server 2019 RTM se incluye con compatibilidad con TLS 1.2 y no se requiere ninguna otra actualización o corrección para habilitar la compatibilidad con TLS 1.2.

  • ¿El TDS se ve afectado por vulnerabilidades conocidas?

    No se han notificado vulnerabilidades conocidas para la implementación de Microsoft TDS. Dado que varias organizaciones de cumplimiento de estándares exigen el uso de TLS 1.2 para los canales de comunicación cifrados, Microsoft está liberando compatibilidad con TLS 1.2 para la base de instalación de SQL Server generalizada.

  • ¿Cómo se distribuirán las actualizaciones de TLS 1.2 a los clientes?

    En este artículo se proporcionan vínculos de descarga para las actualizaciones de cliente y servidor adecuadas que admiten TLS 1.2.

  • ¿Admite TLS 1.2 SQL Server 2005?

    La compatibilidad con TLS 1.2 solo se ofrece para SQL Server 2008 y versiones posteriores.

  • ¿Los clientes que no usan SSL/TLS se ven afectados si SSL 3.0 y TLS 1.0 están deshabilitados en el servidor?

    Sí. SQL Server cifra el nombre de usuario y la contraseña durante el inicio de sesión incluso si no se usa un canal de comunicación seguro. Esta actualización es necesaria para todas las instancias de SQL Server que no usan comunicaciones seguras y que tienen todos los demás protocolos excepto TLS 1.2 deshabilitado en el servidor.

  • ¿Qué versiones de Windows Server admiten TLS 1.2?

    Windows Server 2008 R2 y versiones posteriores admiten TLS 1.2.

  • ¿Cuál es la configuración correcta del Registro para habilitar TLS 1.2 para la comunicación con SQL Server?

    La configuración correcta del Registro es la siguiente:

    • [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

    Esta configuración es necesaria para equipos cliente y servidor. La DisabledByDefault configuración y Enabled son necesarias para crearse en clientes de Windows 7 y servidores windows Server 2008 R2. En Windows 8 y versiones posteriores de los sistemas operativos cliente o el servidor de Windows Server 2012 y versiones posteriores de los sistemas operativos de servidor, TLS 1.2 ya debe estar habilitado. Si va a implementar una directiva de implementación para el Registro de Windows que debe ser independiente de la versión del sistema operativo, se recomienda agregar las claves del Registro mencionadas a la directiva. Además, si usa Correo electrónico de base de datos en SQL Server, también debe establecer las siguientes claves del Registro de .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

Problemas conocidos

  • Problema 1

    SQL Server Management Studio (SSMS), Report Server y el Administrador de informes no se conectan al motor de base de datos después de aplicar la corrección para SQL Server 2008, 2008 R2, 2012 o 2014. Se produce un error en el servidor de informes y el Administrador de informes y se devuelve el siguiente mensaje de error:

    El servidor de informes no puede abrir una conexión a la base de datos del servidor de informes. Se necesita una conexión a la base de datos para todas las solicitudes y procesos" (rsReportServerDatabaseUnavailable)

    Este problema se produce porque SSMS, el Administrador de informes y el Administrador de configuración de Reporting Services usan ADO.NET y ADO.NET compatibilidad con TLS 1.2 solo está disponible en .NET Framework 4.6. Para versiones anteriores de .NET Framework, debe aplicar una actualización de Windows para que ADO.NET pueda admitir comunicaciones TLS 1.2 para el cliente. Las actualizaciones de Windows que habilitan la compatibilidad con TLS 1.2 en versiones anteriores de .NET Framework se muestran en la tabla de la sección How to know whether you need this update (Cómo saber si necesita esta actualización ).

  • Problema 2

    Reporting Services Configuration Manager informa del siguiente mensaje de error incluso después de que los proveedores de cliente se hayan actualizado a una versión que admita TLS 1.2:

    No se pudo conectar al servidor: se estableció correctamente una conexión con el servidor, pero se produjo un error durante el protocolo de enlace previo al inicio de sesión.

    Captura de pantalla de un error de conexión de prueba después de que los proveedores de cliente se hayan actualizado a una versión que admita TLS 1.2.

    Para resolver este problema, cree manualmente la siguiente clave del Registro en el sistema que hospeda el Administrador de configuración de Reporting Services:

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

  • Problema 3

    Se produce un error en la comunicación de punto de conexión cifrado que usa TLS 1.2 cuando se usan comunicaciones cifradas para grupos de disponibilidad, creación de reflejo de la base de datos o Service Broker en SQL Server. Se registra un mensaje de error similar al siguiente en el registro de errores de 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.
    

    Para obtener más información sobre este problema, consulte FIX: la comunicación de punto de conexión cifrado con TLS 1.2 produce un error cuando se usa SQL Server.

  • Problema 4

    Se producen varios errores al intentar instalar SQL Server 2012 o SQL Server 2014 en un servidor con TLS 1.2 habilitado.

    Para obtener más información, vea FIX: Error al instalar SQL Server 2012 o SQL Server 2014 en un servidor que tenga TLS 1.2 habilitado.

  • Problema 5

    Una conexión cifrada con la creación de reflejo de la base de datos o los grupos de disponibilidad no funciona cuando se usa un certificado después de deshabilitar todos los demás protocolos distintos de TLS 1.2. Se registra un mensaje de error similar al siguiente en el registro de errores de SQL Server:

    Una conexión cifrada con la creación de reflejo de la base de datos o los grupos de disponibilidad no funciona cuando se usa un certificado después de deshabilitar todos los demás protocolos distintos de TLS 1.2. Es posible que observe uno de los siguientes síntomas:

    • Síntoma 1:

      Se registra un mensaje de error similar al siguiente en el registro de errores de 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.'
      
    • Síntoma 2:

      Se registra un mensaje de error similar al siguiente en el registro de eventos de 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.
      

      Este problema se produce porque los grupos de disponibilidad y la creación de reflejo de la base de datos requieren un certificado que no usa algoritmos hash de longitud fija, como MD5. Los algoritmos hash de longitud fija no se admiten en TLS 1.2.

    Para obtener más información, consulte FIX: Communication using MD5 hash algorithm fails if SQL Server uses TLS 1.2.

  • Problema 6

    Las siguientes versiones del motor de base de datos de SQL Server se ven afectadas por el problema de terminación intermitente del servicio que se notifica en el artículo de Knowledge Base 3146034. Para que los clientes se protejan del problema de terminación del servicio, se recomienda instalar las actualizaciones de TLS 1.2 para SQL Server que se mencionan en este artículo si su versión de SQL Server aparece en la tabla siguiente:

    Versión de SQL Server Versión afectada
    SQL Server 2008 R2 SP3 (x86 y x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4046.0
    SQL Server 2008 R2 SP2 (solo IA-64) 10.50.4343.0
    SQL Server 2008 SP4 (x86 y x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5544.0
    SQL Server 2008 SP3 (solo IA-64) 10.0.5894.0
  • Problema 7

    Correo electrónico de base de datos no funciona con TLS 1.2. Correo electrónico de base de datos produce el siguiente error:

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: no se pudo leer la información de configuración de correo de la base de datos. No se puede iniciar la sesión de correo.

    Para obtener más información, consulte Correcciones adicionales necesarias para que SQL Server use TLS 1.

Errores comunes que puede experimentar cuando faltan actualizaciones de TLS 1.2 en el cliente o servidor

Problema 1

System Center Configuration Manager (SCCM) no se puede conectar a SQL Server después de habilitar el protocolo TLS 1.2 en SQL Server. En esta situación, aparece el siguiente mensaje de error:

Proveedor de TCP: Un host remoto forzó el cierre de la conexión existente.

Este problema puede producirse cuando SCCM usa un controlador de SQL Server Native Client que no tiene una corrección. Para resolver este problema, descargue e instale la corrección del cliente que aparece en la sección Descargas del componente cliente. Por ejemplo, Microsoft® SQL Server® 2012 Native Client: QFE.

Puede averiguar qué controlador usa SCCM para conectarse a SQL Server mediante la visualización del registro de SCCM, como se muestra en el ejemplo siguiente:

[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)>