Supporto di TLS 1.2 per Microsoft SQL Server
Si applica a: SQL Server
Numero KB originale: 3135244
Introduzione
Questo articolo fornisce informazioni sugli aggiornamenti rilasciati da Microsoft per abilitare il supporto TLS 1.2 per SQL Server 2017 in Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 e SQL Server 2008 R2. Questo articolo elenca anche i provider client supportati. SQL Server 2016, SQL Server 2017 e SQL Server 2019 supportano TLS 1.2 senza la necessità di un aggiornamento.
Sono state segnalate diverse vulnerabilità note rispetto a Secure Sockets Layer (SSL) e alle versioni precedenti di Transport Layer Security (TLS). Si consiglia di eseguire l'aggiornamento a TLS 1.2 per una comunicazione sicura.
Importante
Non sono state segnalate vulnerabilità note per l'implementazione di Microsoft TDS. Si tratta del protocollo di comunicazione usato tra i client SQL Server e il motore di database di SQL Server. L'implementazione di Microsoft Schannel di TLS 1.0 (relativa alle vulnerabilità note segnalate a Microsoft a partire dalla data di pubblicazione di questo articolo) è riepilogata nell'implementazione Schannel di TLS 1.0 nell'aggiornamento dello stato di sicurezza di Windows: 24 novembre 2015.
Come sapere se è necessario questo aggiornamento
Usare la tabella seguente per determinare se la versione corrente di SQL Server supporta già TLS 1.2 o se è necessario scaricare un aggiornamento per abilitare il supporto tls 1.2. Usare i collegamenti di download nella tabella per ottenere gli aggiornamenti del server applicabili all'ambiente in uso.
Note
Le compilazioni successive a quelle elencate in questa tabella supportano anche TLS 1.2.
Versione di SQL Server | Build/versione iniziale supportata da TLS 1.2 | Aggiornamenti correnti con il supporto di TLS 1.2 | Informazioni aggiuntive |
---|---|---|---|
SQL Server 2014 SP1 CU | 12.0.4439.1 SP1 CU5 |
KB3130926 - Aggiornamento cumulativo 5 per SQL Server 2014 SP1 Nota: KB3130926 installerà ora l'ultimo CU prodotto per 2014 SP1 (CU13 - KB4019099), che include il supporto TLS 1.2 e tutti gli hotfix rilasciati fino a oggi. Se necessario, CU5 è disponibile nel catalogo di Windows Update. Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3. |
KB3052404 - FIX: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012 |
SQL Server 2014 SP1 GDR | 12.0.4219.0 Aggiornamento di SP1 GDR TLS 1.2 |
Il supporto tls 1.2 per GDR 2014 SP1 è disponibile nell'ultimo aggiornamento cumulativo GDR- KB4019091. Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3. |
|
SQL Server 2014 RTM CU | 12.0.2564.0 RTM CU12 |
KB3130923 - Aggiornamento cumulativo 12 per SQL Server 2014 Nota: KB3130923 installerà ora l'ultimo CU rilasciato per 2014 RTM (CU14 - KB3158271 ), che include il supporto tls 1.2 e tutti gli hotfix rilasciati fino alla data. Se necessario, CU12 è disponibile nel catalogo di Windows Update. Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3. |
KB3052404 - FIX: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012 |
SQL Server 2014 RTM GDR | 12.0.2271.0 Aggiornamento di RTM GDR TLS 1.2 |
Il supporto TLS per SQL 2014 RTM è attualmente disponibile solo installando 2014 SP2 e 2014 SP3. | |
SQL Server 2012 SP3 GDR | 11.0.6216.27 Aggiornamento di SP3 GDR TLS 1.2 |
Descrizione dell'aggiornamento della sicurezza per SQL Server 2012 SP3 GDR: 16 gennaio 2018 Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP4. |
|
SQL Server 2012 SP3 CU | 11.0.6518.0 SP1 CU3 |
KB3123299 - Aggiornamento cumulativo 1 per SQL Server 2012 SP3 Nota: KB3123299 installerà ora l'ultimo CU rilasciato per 2012 SP3 (CU10 - KB4025925, che include il supporto TLS 1.2 e tutti gli hotfix rilasciati fino alla data). Se necessario, CU1 è disponibile nel catalogo di Windows Update. Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP4. |
KB3052404 - FIX: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012 |
SQL Server 2012 SP2 GDR | 11.0.5352.0 Aggiornamento di SP2 GDR TLS 1.2 |
Il supporto tls 1.2 per GDR 2012 SP2 è disponibile nell'ultimo aggiornamento cumulativo GDR - KB3194719. Il supporto di TLS 1.2 è disponibile anche in 2012 SP3 e 2012 SP4. |
|
SQL Server 2012 SP2 CU | 11.0.5644.2 SP2 CU10 |
KB3120313 - Aggiornamento cumulativo 10 per SQL Server 2012 SP2. Nota: KB3120313 installerà ora l'ultimo CU rilasciato per 2012 SP2 (CU16 - KB3205054, che include il supporto di TLS 1.2 e tutti gli hotfix rilasciati fino alla data). Se necessario, CU1 è disponibile nel catalogo di Windows Update. Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP3 e 2012 SP4. |
KB3052404 - FIX: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012 |
SQL Server 2008 R2 SP3 (solo x86/x64) | 10.50.6542.0 Aggiornamento di SP2 TLS 1.2 |
Il supporto di TLS 1.2 è disponibile nell'aggiornamento cumulativo più recente per SQL Server 2008 R2 SP3 - KB4057113. | |
SQL Server 2008 R2 SP2 GDR (solo IA-64) | 10.50.4047.0 Aggiornamento di SP2 TLS 1.2 |
Aggiornamenti di SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 | |
SQL Server 2008 R2 SP2 CU (solo IA-64) | 10.50.4344.0 Aggiornamento di SP2 TLS 1.2 |
Aggiornamenti di SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 | |
SQL Server 2008 SP4 (solo x86/x64) | 10.0.6547.0 Aggiornamento di SP4 TLS 1.2 |
Il supporto di TLS 1.2 è disponibile nell'aggiornamento cumulativo più recente per SQL Server 2008 SP4 - KB4057114(solo x86/x64). | |
SQL Server 2008 SP3 GDR (solo IA-64) | 10.0.5545.0 Aggiornamento di SP3 TLS 1.2 |
Aggiornamenti di SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 | |
SQL Server 2008 SP3 CU (solo IA-64) | 10.0.5896.0 Aggiornamento di SP3 TLS 1.2 |
Aggiornamenti di SQL Server 2008 SP3 CU (IA-64) TLS 1.2 |
Download dei componenti client
Usare la tabella seguente per scaricare i componenti client e gli aggiornamenti dei driver applicabili all'ambiente in uso.
Componente client/driver | Aggiornamenti con il supporto di TLS 1.2 |
---|---|
SQL Server Native Client 10.0 per SQL Server 2008/2008 R2 (x86/x64/IA64) | Microsoft SQL Server 2008 e SQL Server 2008 R2 Native Client |
SQL Server Native Client 11.0 per SQL Server 2012/2014 (x86/x64) | Microsoft SQL Server 2012 Native Client - QFE |
Componenti client MDAC (Sqlsrv32.dll e Sqloledb.dll) | Aggiornamento dello stack di manutenzione per Windows 10 versione 1809: 10 novembre 2020 |
Tabella di riepilogo per il supporto dei driver client per TLS 1.2
La tabella seguente riepiloga il supporto per i driver e i provider di SQL Server:
Driver | Supporto di TLS 1.2 | Note |
---|---|---|
Microsoft ODBC Driver per SQL Server 11 | Sì, con aggiornamenti | Installare l'aggiornamento cumulativo più recente per SQL Server 2012 o SQL Server 2014. (Vedere la tabella in Come sapere se è necessaria questa sezione di aggiornamento . |
Microsoft ODBC Driver per SQL Server 13 | Sì | Supporta TLS 1.2 in modo nativo. |
Microsoft ODBC Driver per SQL Server 17 | Sì | Supporta TLS 1.2 in modo nativo. |
Microsoft ODBC Driver per SQL Server 18 | Sì | Supporta TLS 1.2 in modo nativo. |
Microsoft OLE DB Driver per SQL Server 19 (MSOLEDBSQL) | Sì | Supporta TLS 1.2 in modo nativo. |
SQL Server Native Client 10 | Sì, con aggiornamenti | Installare l'aggiornamento cumulativo più recente per SQL Server 2008 o SQL Server 2008 R2. (Vedere la tabella in Come sapere se è necessaria questa sezione di aggiornamento . |
SQL Server Native Client 11 | Sì, con aggiornamenti | Installare l'aggiornamento cumulativo più recente per SQL Server 2012 o SQL Server 2014. (Vedere la tabella in Come sapere se è necessaria questa sezione di aggiornamento . |
Driver ODBC di SQL Server (SQLSRV32.DLL) | Sì, per alcuni sistemi operativi | Aggiunta del supporto in Windows Server 2019 e Windows 10. Le versioni precedenti del sistema operativo non lo supportano. |
Provider OLE DB di SQL Server (SQLOLEDB) | Sì, per alcuni sistemi operativi | Aggiunta del supporto in Windows Server 2019 e Windows 10. Le versioni precedenti del sistema operativo non lo supportano. |
Correzioni aggiuntive necessarie per SQL Server per l'uso di TLS 1.2
È necessario installare i seguenti aggiornamenti rapidi .NET per abilitare funzionalità di SQL Server come Posta elettronica database e alcuni componenti SSIS che usano endpoint .NET che richiedono il supporto tls 1.2, ad esempio l'attività Servizio Web per l'uso di TLS 1.2.
Sistema operativo | Versione di .NET Framework | Aggiornamenti con il supporto di TLS 1.2 |
---|---|---|
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 | 3.5.1 | Supporto per TLS v1.2 incluso in .NET Framework versione 3.5.1 |
Windows 8 RTM, Windows 2012 RTM | 3.5 | Supporto per TLS v1.2 incluso in .NET Framework versione 3.5 |
Windows 8.1, Windows 2012 R2 SP1 | 3.5 SP1 | Supporto per TLS v1.2 incluso in .NET Framework versione 3.5 SP1 in Windows 8.1 e Windows Server 2012 R2 |
Domande frequenti
TLS 1.1 è supportato in SQL Server 2016 e versioni successive?
Sì. SQL Server 2016, SQL Server 2017 in Windows e SQL Server 2019 nelle versioni di Windows vengono forniti con il supporto TLS 1.0 a TLS 1.2. È necessario disabilitare TLS 1.0 e 1.1 se si vuole usare solo TLS 1.2 per la comunicazione client-server.
SQL Server 2019 consente le connessioni tramite TLS 1.0 o 1.1 o solo 1.2?
SQL Server 2019 ha lo stesso livello di supporto di SQL Server 2016 e SQL Server 2017 e SQL Server 2019 supporta versioni precedenti di TLS. SQL Server 2019 RTM viene fornito con il supporto TLS 1.2 e non sono necessari altri aggiornamenti o correzioni per abilitare il supporto tls 1.2.
TDS è interessato da vulnerabilità note?
Non sono state segnalate vulnerabilità note per l'implementazione di Microsoft TDS. Poiché diverse organizzazioni di imposizione degli standard mandano l'uso di TLS 1.2 per i canali di comunicazione crittografati, Microsoft sta rilasciando il supporto per TLS 1.2 per la base di installazione diffusa di SQL Server.
In che modo gli aggiornamenti TLS 1.2 verranno distribuiti ai clienti?
Questo articolo fornisce collegamenti di download per gli aggiornamenti del server e client appropriati che supportano TLS 1.2.
TLS 1.2 supporta SQL Server 2005?
Il supporto di TLS 1.2 è disponibile solo per SQL Server 2008 e versioni successive.
I clienti che non usano SSL/TLS sono interessati se SSL 3.0 e TLS 1.0 sono disabilitati nel server?
Sì. SQL Server crittografa il nome utente e la password durante l'accesso anche se non viene usato un canale di comunicazione sicuro. Questo aggiornamento è necessario per tutte le istanze di SQL Server che non usano comunicazioni sicure e che dispongono di tutti gli altri protocolli, ad eccezione di TLS 1.2 disabilitato nel server.
Quali versioni di Windows Server supportano TLS 1.2?
Windows Server 2008 R2 e versioni successive supportano TLS 1.2.
Qual è l'impostazione corretta del Registro di sistema per abilitare TLS 1.2 per le comunicazioni di SQL Server?
Le impostazioni corrette del Registro di sistema sono le seguenti:
[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
Queste impostazioni sono necessarie sia per i computer server che per i computer client. Le
DisabledByDefault
impostazioni eEnabled
devono essere create nei client Windows 7 e nei server Windows Server 2008 R2. In Windows 8 e versioni successive dei sistemi operativi client o del server Windows Server 2012 e versioni successive dei sistemi operativi server, TLS 1.2 dovrebbe essere già abilitato. Se stai implementando un criterio di distribuzione per Registro di sistema di Windows che deve essere indipendente dalla versione del sistema operativo, ti consigliamo di aggiungere le chiavi del Registro di sistema indicate al criterio. Inoltre, se si usa Posta elettronica database in SQL Server, è anche necessario impostare le chiavi del Registro di sistema .NET seguenti:[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
Problemi noti
Problema 1
SQL Server Management Studio (SSMS), Server di report e Gestione report non si connettono al motore di database dopo aver applicato la correzione per SQL Server 2008, 2008 R2, 2012 o 2014. Server di report e Gestione report hanno esito negativo e restituiscono il messaggio di errore seguente:
Impossibile stabilire una connessione al database del server di report. È necessaria una connessione al database per tutte le richieste e le elaborazioni. (rsReportServerDatabaseUnavailable)
Questo problema si verifica perché SSMS, Gestione report e Gestione configurazione Reporting Services usano ADO.NET e ADO.NET supporto per TLS 1.2 è disponibile solo in .NET Framework 4.6. Per le versioni precedenti di .NET Framework, è necessario applicare un aggiornamento di Windows in modo che ADO.NET possa supportare le comunicazioni TLS 1.2 per il client. Gli aggiornamenti di Windows che abilitano il supporto TLS 1.2 nelle versioni precedenti di .NET Framework sono elencati nella tabella nella sezione How to know that you need this update (Come sapere se è necessario questo aggiornamento ).
Problema 2
Gestione configurazione Reporting Services segnala il seguente messaggio di errore anche dopo l'aggiornamento dei provider client a una versione che supporta TLS 1.2:
Impossibile connettersi al server: è stata stabilita una connessione al server, ma si è verificato un errore durante l'handshake di pre-accesso.
Per risolvere questo problema, creare manualmente la chiave del Registro di sistema seguente nel sistema che ospita Gestione configurazione Reporting Services:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001
Problema 3
La comunicazione dell'endpoint crittografato che usa TLS 1.2 ha esito negativo quando si usano comunicazioni crittografate per i gruppi di disponibilità, il mirroring del database o Service Broker in SQL Server. Nel log degli errori SQL viene registrato un messaggio di errore simile al seguente:
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.
Per altre informazioni su questo problema, vedere FIX: La comunicazione dell'endpoint crittografato con TLS 1.2 ha esito negativo quando si usa SQL Server.
Problema 4
Si verificano diversi errori quando si tenta di installare SQL Server 2012 o SQL Server 2014 in un server con TLS 1.2 abilitato.
Per altre informazioni, vedere FIX: Error when you install SQL Server 2012 or SQL Server 2014 on a server that has TLS 1.2 enabled.
Problema 5
Una connessione crittografata con il mirroring del database o i gruppi di disponibilità non funziona quando si usa un certificato dopo aver disabilitato tutti gli altri protocolli diversi da TLS 1.2. Nel log degli errori di SQL Server viene registrato un messaggio di errore simile al seguente:
Una connessione crittografata con il mirroring del database o i gruppi di disponibilità non funziona quando si usa un certificato dopo aver disabilitato tutti gli altri protocolli diversi da TLS 1.2. Si potrebbe notare uno dei sintomi seguenti:
Sintomo 1:
Nel log degli errori di SQL Server viene registrato un messaggio di errore simile al seguente:
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.'
Sintomo 2:
Nel registro eventi di Windows viene registrato un messaggio di errore simile al seguente:
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.
Questo problema si verifica perché i gruppi di disponibilità e il mirroring del database richiedono un certificato che non usa algoritmi hash a lunghezza fissa, ad esempio MD5. Gli algoritmi hash a lunghezza fissa non sono supportati in TLS 1.2.
Per altre informazioni, vedere FIX: Comunicazione con l'algoritmo hash MD5 non riesce se SQL Server usa TLS 1.2.
Problema 6
Le versioni del motore di database di SQL Server seguenti sono interessate dal problema di terminazione intermittente del servizio segnalato nell'articolo della Knowledge Base 3146034. Per consentire ai clienti di proteggersi dal problema di terminazione del servizio, è consigliabile installare gli aggiornamenti TLS 1.2 per SQL Server indicati in questo articolo se la versione di SQL Server è elencata nella tabella seguente:
Versione di SQL Server Versione interessata SQL Server 2008 R2 SP3 (x86 e 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 e 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
Posta elettronica database non funziona con TLS 1.2. Posta elettronica database ha esito negativo e viene visualizzato l'errore seguente:
Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: impossibile leggere le informazioni di configurazione della posta elettronica dal database. Impossibile avviare la sessione di posta elettronica.
Per altre informazioni, vedere Correzioni aggiuntive necessarie per SQL Server per l'uso di TLS 1.
Errori comuni che potrebbero verificarsi quando mancano gli aggiornamenti TLS 1.2 nel client o nel server
Problema 1
System Center Configuration Manager (SCCM) non riesce a connettersi a SQL Server dopo l'abilitazione del protocollo TLS 1.2 in SQL Server. In questo caso, viene visualizzato il seguente messaggio di errore:
Provider TCP: Una connessione esistente è stata chiusa forzatamente dall'host remoto
Questo problema può verificarsi quando SCCM usa un driver SQL Server Native Client che non ha una correzione. Per risolvere questo problema, scaricare e installare la correzione client elencata nella sezione Download dei componenti client. Ad esempio, Microsoft® SQL Server® 2012 Native Client - QFE.
È possibile individuare il driver usato da SCCM per connettersi a SQL Server visualizzando il log SCCM, come illustrato nell'esempio seguente:
[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)>