Connessione al motore di database mediante la protezione estesa
Si applica a: SQL Server
SQL Server supporta la protezione estesa a partire da SQL Server 2008 R2 (10.50.x). Laprotezione estesa per l'autenticazione è una funzionalità dei componenti di rete implementata dal sistema operativo. Laprotezione estesa è supportata in Windows 7 e in Windows Server 2008 R2 La protezione estesa è inclusa nei Service Pack per i sistemi operativi Microsoft meno recenti. SQL Server è più sicuro quando le connessioni vengono effettuate tramite protezione estesa.
Importante
Per impostazione predefinita, in Windows la protezione estesa non è abilitata. Per informazioni su come abilitare la protezione estesa in Windows, vedere la pagina relativa alla protezione estesa per l'autenticazione.
Descrizione della protezione estesa
Laprotezione estesa utilizza l'associazione al servizio e l'associazione di canale per impedire un attacco di tipo relay per l'autenticazione. In un attacco di questo tipo un client che può eseguire l'autenticazione NTLM, ad esempio Esplora risorse, Microsoft Outlook, un'applicazione .NET SqlClient e così via, si connette all'autore dell'attacco, ad esempio un file server CIFS dannoso. L'autore usa le credenziali del client per mascherarsi ed eseguire l'autenticazione per un servizio, ad esempio un'istanza del servizio Motore di database.
Questo attacco presenta due varianti:
In un attacco luring il client viene adescato per eseguire una connessione volontaria all'autore dell'attacco.
In un attacco di tipo spoofing il client tenta di connettersi a un servizio valido, ma non è in grado di rilevare che uno o entrambi i routing DNS e IP sono stati danneggiati in modo da eseguire il reindirizzamento della connessione all'autore dell'attacco.
SQL Server supporta l'associazione al servizio e l'associazione di canale per ridurre tali attacchi sulle istanze di SQL Server.
associazione al servizio
L'associazione al servizio risolve il problema degli attacchi luring richiedendo a un client di inviare un nome SPN firmato del servizio SQL Server al quale il client intende connettersi. Come parte della risposta di autenticazione, il servizio verifica che il nome SPN ricevuto nel pacchetto corrisponda al proprio nome SPN. Se viene adescato per connettersi all'autore di un attacco, il client includerà il nome SPN firmato di tale autore. L'autore dell'attacco non può inoltrare il pacchetto per l'autenticazione del servizio SQL Server reale come client, in quanto includerebbe il nome SPN dell'autore dell'attacco. L'associazione al servizio comporta un costo trascurabile una tantum, ma non neutralizza gli attacchi di spoofing. Si verifica l'associazione al servizio quando un'applicazione client non usa la crittografia per connettersi a SQL Server.
associazione di canale
L'associazione di canale stabilisce un canale sicuro (Schannel) tra un client e un'istanza del servizio SQL Server. Il servizio verifica l'autenticità del client confrontando il token CBT (Channel Binding Token) del client specifico di tale canale con il proprio CBT. L'associazione di canale neutralizza sia gli attacchi luring che di spoofing. Comporta tuttavia costi di runtime maggiori in quanto richiede la crittografia TLS (Transport Layer Security) di tutto il traffico della sessione. Si verifica l'associazione di canale quando un'applicazione client usa la crittografia per connettersi a SQL Server, indipendentemente dal fatto che la crittografia venga imposta dal client o dal server.
Avviso
SQL Server e i provider di dati Microsoft per SQL Server supportano TLS 1.0 e SSL 3.0. Se si applica un protocollo diverso, ad esempio TLS 1.1 o TLS 1.2, apportando modifiche nel livello SChannel del sistema operativo, le connessioni a SQL Server potrebbero avere esito negativo. Verificare di avere la build più recente di SQL Server per supportare TLS 1.1 o TLS 1.2. Per ulteriori informazioni, vedere https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe.
Supporto nei sistemi operativi
Nei collegamenti seguenti vengono fornite ulteriori informazioni sul supporto della protezione estesain Windows:
Impostazione
Sono disponibili tre impostazioni di connessione di SQL Server che influiscono sull'associazione al servizio e sull'associazione di canale. Tali impostazioni possono essere configurate tramite Gestione configurazione SQL Server o WMI e possono essere visualizzate usando il facet Impostazioni protocollo server della gestione basata su criteri.
Forza crittografia
I valori possibili sono Attivata e Disattivata. Per utilizzare l'associazione di canale, è necessario impostare Forza crittografia su Attivatain modo da forzare la crittografia su tutti i client. Se impostata su Disattivata, viene garantita solo l'associazione al servizio. Forza crittografia è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Flag) in Gestione configurazione SQL Server.
Protezione estesa
I valori possibili sono Disattivata, Consentitae Obbligatoria. La variabile relativa alla Protezione estesa consente agli utenti di configurare il livello di protezione estesa per ogni istanza di SQL Server. Protezione estesa è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Avanzate) in Gestione configurazione SQL Server.
Se impostata su Disattivata, la protezione estesa è disabilitata. L'istanza di SQL Server accetterà connessioni da qualsiasi client, protetto o non protetto. Il valoreDisattivata è compatibile con i sistemi operativi precedenti e senza patch installate, sebbene sia meno sicuro. Utilizzare questa impostazione quando si è sicuri che i sistemi operativi dei client non supportano la protezione estesa.
Se impostata su Consentita, la protezione estesa è obbligatoria per le connessioni da sistemi operativi che supportano la protezione estesa. Protezione estesa viene invece ignorata per le connessioni da sistemi operativi che non supportano tale caratteristica. Le connessioni da applicazioni client non protette in esecuzione su sistemi operativi client protetti vengono rifiutate. Sebbene sia più sicura di Disattivata, questa impostazione non garantisce il livello più elevato di sicurezza. Utilizzare questa impostazione negli ambienti misti, dove alcuni sistemi operativi supportano la protezione estesa e altri no.
Se impostata su Obbligatoria, vengono accettate solo le connessioni da applicazioni protette su sistemi operativi protetti. Questa impostazione è la più sicura, ma non sarà possibile stabilire connessioni a SQL Server da sistemi operativi o applicazioni che non supportano la protezione estesa.
SPN NTLM accettati
La variabile relativa ai nomi SPN NTLM accettati è necessaria quando un server è noto con più nomi SPN. Se un client tenta di connettersi al server tramite un nome SPN valido sconosciuto al server, l'associazione al servizio non riuscirà. Per evitare questo problema, gli utenti possono specificare diversi nomi SPN che rappresentano il server utilizzando SPN NTLM accettati. L'impostazioneSPN NTLM accettati è costituita da una serie di nomi SPN separati da punti e virgola. Per consentire, ad esempio, l'uso dei nomi MSSQLSvc/ HostName1.Contoso.com e MSSQLSvc/ HostName2.Contoso.com, digitare MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com nella casella SPN NTLM accettati . La lunghezza massima della variabile è di 2048 caratteri. SPN NTLM accettati è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Avanzate) in Gestione configurazione SQL Server.
Abilitazione della protezione estesa per il motore di database
Per utilizzare la protezione estesa, è necessario disporre sia sul server che sul client di un sistema operativo che supporti questa caratteristica. È inoltre necessario che la protezione estesa sia abilitata nel sistema operativo. Per ulteriori informazioni sull'abilitazione della protezione estesa per il sistema operativo in uso, vedere Protezione estesa per l'autenticazione.
SQL Server supporta la protezione estesa a partire da SQL Server 2008 R2 (10.50.x). La protezione estesa per alcune versioni precedenti di SQL Server verrà resa disponibile negli aggiornamenti futuri. Dopo aver abilitato la protezione estesa nel server, effettuare i passaggi seguenti per abilitarla protezione estesa:
Dal menu Start scegliere Tutti i programmi, Microsoft SQL Server , quindi fare clic su Gestione configurazione SQL Server.
Espandere Configurazione di rete SQL Server e quindi fare clic con il pulsante destro del mouse su Protocolli per _<_NomeIstanza*>* e scegliere Proprietà.
Sia per l'associazione di canale che per l'associazione al servizio, nella scheda Avanzate configurare l'impostazione adatta per Protezione estesa .
Facoltativamente, quando un server è noto con più nomi SPN, nella scheda Avanzate configurare il campo SPN NTLM accettati come descritto nella sezione "Impostazioni".
Per l'associazione di canale, nella scheda Flag impostare Forza crittografia su Attivata.
Riavviare il servizio Motore di database.
Configurazione degli altri componenti di SQL Server
Per altre informazioni su come configurare Reporting Services, vedere Protezione estesa per l'autenticazione con Reporting Service.
Quando si usa IIS per accedere ai dati di Analysis Services usando una connessione HTTP o HTTPs, Analysis Services può usufruire della protezione estesa fornita da IIS. Per ulteriori informazioni sulla configurazione di IIS per l'utilizzo della protezione estesa, vedere l'articolo relativo alla configurazione della protezione estesa in IIS 7.5.
Vedi anche
Configurazione di rete del server
Configurazione di rete dei client
Panoramica sulla protezione estesa per l'autenticazione
Integrated Windows Authentication with Extended Protection