Connessione al motore di database mediante la protezione estesaConnect to the Database Engine Using Extended Protection

SQL ServerSQL Server il supporto per la protezione estesa è disponibile a partire da SQL Server 2008 R2SQL Server 2008 R2. supports Extended Protection beginning with SQL Server 2008 R2SQL Server 2008 R2. Laprotezione estesa per l'autenticazione è una funzionalità dei componenti di rete implementata dal sistema operativo.Extended Protection for Authentication is a feature of the network components implemented by the operating system. Laprotezione estesa è supportata in Windows 7 e in Windows Server 2008 R2Extended Protection is supported in Windows 7 and Windows Server 2008 R2. Laprotezione estesa è inclusa nei Service Pack per i sistemi operativi MicrosoftMicrosoft meno recenti.Extended Protection is included in service packs for older MicrosoftMicrosoft operating systems. SQL ServerSQL Server è più sicuro quando le connessioni vengono effettuate tramite protezione estesa. is more secure when connections are made using Extended Protection.

Importante

Per impostazione predefinita, in Windows la protezione estesa non è abilitata.Windows does not enable Extended Protection by default. Per informazioni su come abilitare la protezione estesa in Windows, vedere la pagina relativa alla protezione estesa per l'autenticazione.For information about how to enable Extended Protection in Windows, see Extended Protection for Authentication.

Descrizione della protezione estesaDescription of Extended Protection

Laprotezione estesa utilizza l'associazione al servizio e l'associazione di canale per impedire un attacco di tipo relay per l'autenticazione.Extended Protection uses service binding and channel binding to help prevent an authentication relay attack. In un attacco di questo tipo un client che può eseguire l'autenticazione NTLM, ad esempio Esplora risorse, MicrosoftMicrosoft Outlook, un'applicazione .NET SqlClient e così via, si connette all'autore dell'attacco, ad esempio un file server CIFS dannoso.In an authentication relay attack, a client that can perform NTLM authentication (for example, Windows Explorer, MicrosoftMicrosoft Outlook, a .NET SqlClient application, etc.), connects to an attacker (for example, a malicious CIFS file server). L'autore utilizza le credenziali del client per mascherarsi ed eseguire l'autenticazione per un servizio, ad esempio un'istanza del servizio Motore di databaseDatabase Engine .The attacker uses the client’s credentials to masquerade as the client and authenticate to a service (for example, an instance of the Motore di databaseDatabase Engine service).

Questo attacco presenta due varianti:There are two variations of this attack:

  • In un attacco luring il client viene adescato per eseguire una connessione volontaria all'autore dell'attacco.In a luring attack, the client is lured to voluntarily connect to the attacker.

  • 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.In a spoofing attack, the client intends to connect to a valid service, but is unaware that one or both of DNS and IP routing are poisoned to redirect the connection to the attacker instead.

    SQL ServerSQL Server supporta l'associazione al servizio e l'associazione di canale per ridurre tali attacchi sulle istanze di SQL ServerSQL Server . supports service binding and channel binding to help reduce these attacks on SQL ServerSQL Server instances.

associazione al servizioService Binding

L'associazione al servizio risolve il problema degli attacchi luring richiedendo a un client di inviare un nome SPN firmato del servizio SQL ServerSQL Server al quale il client intende connettersi.Service binding addresses luring attacks by requiring a client to send a signed service principal name (SPN) of the SQL ServerSQL Server service that the client intends to connect to. Come parte della risposta di autenticazione, il servizio verifica che il nome SPN ricevuto nel pacchetto corrisponda al proprio nome SPN.As part of the authentication response, the service validates that the SPN received in the packet matches its own SPN. Se viene adescato per connettersi all'autore di un attacco, il client includerà il nome SPN firmato di tale autore.If a client is lured to connect to an attacker, the client will include the signed SPN of the attacker. L'autore dell'attacco non può inoltrare il pacchetto per l'autenticazione del servizio SQL ServerSQL Server reale come client, in quanto includerebbe il nome SPN dell'autore dell'attacco.The attacker cannot relay the packet to authenticate to the real SQL ServerSQL Server service as the client, because it would include the SPN of the attacker. L'associazione al servizio comporta un costo trascurabile una tantum, ma non neutralizza gli attacchi di spoofing.Service binding incurs a one-time, negligible cost, but it does not address spoofing attacks. Si verifica l'associazione al servizio quando un'applicazione client non utilizza la crittografia per connettersi a SQL ServerSQL Server.Service Binding occurs when a client application does not use encryption to connect to the SQL ServerSQL Server.

associazione di canaleChannel Binding

L'associazione di canale stabilisce un canale sicuro (Schannel) tra un client e un'istanza del servizio SQL ServerSQL Server .Channel binding establishes a secure channel (Schannel) between a client and an instance of the SQL ServerSQL Server service. Il servizio verifica l'autenticità del client confrontando il token CBT (Channel Binding Token) del client specifico di tale canale con il proprio CBT.The service verifies the authenticity of the client by comparing the client’s channel binding token (CBT) specific to that channel, with its own CBT. L'associazione di canale neutralizza sia gli attacchi luring che di spoofing.Channel binding addresses both luring and spoofing attacks. Comporta tuttavia costi di runtime maggiori in quanto richiede la crittografia TLS (Transport Layer Security) di tutto il traffico della sessione.However, it incurs a larger runtime cost, because it requires Transport Layer Security (TLS) encryption of all the session traffic. Si verifica l'associazione di canale quando un'applicazione client utilizza la crittografia per connettersi a SQL ServerSQL Server, indipendentemente dal fatto che la crittografia venga imposta dal client o dal server.Channel Binding occurs when a client application uses encryption to connect to the SQL ServerSQL Server, regardless of whether encryption is enforced by the client or by the server.

Avviso

I provider di dati di SQL ServerSQL Server e MicrosoftMicrosoft per SQL ServerSQL Server supportano TLS 1.0 e SSL 3.0. SQL ServerSQL Server and MicrosoftMicrosoft data providers for SQL ServerSQL Server support TLS 1.0 and 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 ServerSQL Server potrebbero non riuscire.If you enforce a different protocol (such as TLS 1.1 or TLS 1.2) by making changes in the operating system SChannel layer, your connections to SQL ServerSQL Server might fail.

Supporto nei sistemi operativiOperating System Support

Nei collegamenti seguenti vengono fornite ulteriori informazioni sul supporto della protezione estesain Windows:The following links provide more information about how Windows supports Extended Protection:

ImpostazioniSettings

Sono disponibili tre impostazioni di connessione di SQL ServerSQL Server che influiscono sull'associazione al servizio e sull'associazione di canale.There are three SQL ServerSQL Server connection settings that affect service binding and channel binding. Tali impostazioni possono essere configurate tramite Gestione configurazione SQL ServerSQL Server o WMI e possono essere visualizzate utilizzando il facet Impostazioni installazione server della gestione basata su criteri.The settings can be configured by using the SQL ServerSQL Server Configuration Manager, or by using WMI, and can by viewed by using the Server Protocol Settings facet of Policy Based Management.

  • Forza crittografiaForce Encryption

    I valori possibili sono Attivata e Disattivata.Possible values are On and Off. Per utilizzare l'associazione di canale, è necessario impostare Forza crittografia su Attivatain modo da forzare la crittografia su tutti i client.To use channel binding, Force Encryption must be set to On, and all clients will be forced to encrypt. Se impostata su Disattivata, viene garantita solo l'associazione al servizio.If it is Off, only service binding is guaranteed. Forza crittografia è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Flag) in Gestione configurazione SQL ServerSQL Server .Force Encryption is on the Protocols for MSSQLSERVER Properties (Flags Tab) in SQL ServerSQL Server Configuration Manager.

  • Protezione estesaExtended Protection

    I valori possibili sono Disattivata, Consentitae Obbligatoria.Possible values are Off, Allowed, and Required. La variabile relativa alla Protezione estesa consente agli utenti di configurare il livello di protezione estesa per ogni istanza di SQL ServerSQL Server .The Extended Protection variable lets users configure the Extended Protection level for each SQL ServerSQL Server instance. Protezione estesa è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Avanzate) in Gestione configurazione SQL ServerSQL Server .Extended Protection is on the Protocols for MSSQLSERVER Properties (Advanced Tab) in SQL ServerSQL Server Configuration Manager.

    • Se impostata su Disattivata, la protezione estesa è disabilitata.When set to Off, Extended Protection is disabled. L'istanza di SQL ServerSQL Server accetterà connessioni da qualsiasi client, protetto o non protetto.The instance of SQL ServerSQL Server will accept connections from any client regardless of whether the client is protected or not. Il valoreDisattivata è compatibile con i sistemi operativi precedenti e senza patch installate, sebbene sia meno sicuro.Off is compatible with older and unpatched operating systems, but is less secure. Utilizzare questa impostazione quando si è sicuri che i sistemi operativi dei client non supportano la protezione estesa.Use this setting when you know that the client operating systems do not support extended protection.

    • Se impostata su Consentita, la protezione estesa è obbligatoria per le connessioni da sistemi operativi che supportano tale caratteristica.When set to Allowed, Extended Protection is required for connections from operating systems that support Extended Protection. Protezione estesa viene invece ignorata per le connessioni da sistemi operativi che non supportano tale caratteristica.Extended Protection is ignored for connections from operating systems that do not support Extended Protection. Le connessioni da applicazioni client non protette in esecuzione su sistemi operativi client protetti vengono rifiutate.Connections from unprotected client applications that are running on protected client operating systems are rejected. Sebbene sia più sicura di Disattivata, questa impostazione non garantisce il livello più elevato di sicurezza.This setting is more secure than Off, but is not the most secure setting. Utilizzare questa impostazione negli ambienti misti, dove alcuni sistemi operativi supportano la protezione estesa e altri no.Use this setting in mixed environments, where some operating systems support Extended Protection and some do not.

    • Se impostata su Obbligatoria, vengono accettate solo le connessioni da applicazioni protette su sistemi operativi protetti.When set to Required, only connections from protected applications on protected operating systems are accepted. Questa impostazione è la più sicura, ma le connessioni a da sistemi operativi o applicazioni che non supportano la protezione estesa SQL ServerSQL Servernon riuscirà.This setting is the most secure but connections from operating systems or applications that do not support Extended Protection will not be able to connect to SQL ServerSQL Server.

  • SPN NTLM accettatiAccepted NTLM SPNs

    La variabile relativa ai nomi SPN NTLM accettati è necessaria quando un server è noto con più nomi SPN.The Accepted NTLM SPNs variable is needed when a server is known by more than one SPN. Se un client tenta di connettersi al server tramite un nome SPN valido sconosciuto al server, l'associazione al servizio non riuscirà.When a client attempts to connect to the server by using a valid SPN that the server does not know, service binding will fail. Per evitare questo problema, gli utenti possono specificare diversi nomi SPN che rappresentano il server utilizzando SPN NTLM accettati.To avoid this problem, users can specify several SPNs that represent the server by using Accepted NTLM SPNs. L'impostazioneSPN NTLM accettati è costituita da una serie di nomi SPN separati da punti e virgola.Accepted NTLM SPNs is a series of SPNs separated my semicolons. 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 .For example, to allow the SPNs MSSQLSvc/ HostName1.Contoso.com and MSSQLSvc/ HostName2.Contoso.com, type MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com in the Accepted NTLM SPNs box. La lunghezza massima della variabile è di 2048 caratteri.The variable has a maximum length of 2,048 characters. SPN NTLM accettati è disponibile in Proprietà - Protocolli per MSSQLSERVER (scheda Avanzate) in Gestione configurazione SQL ServerSQL Server .Accepted NTLM SPNs is on the Protocols for MSSQLSERVER Properties (Advanced Tab) in SQL ServerSQL Server Configuration Manager.

Abilitazione della protezione estesa per il motore di databaseEnabling Extended Protection for the Database Engine

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.To use Extended Protection, both the server and the client must have an operating system on that supports Extended Protection, and Extended Protection must be enabled on the operating system. Per ulteriori informazioni sull'abilitazione della protezione estesa per il sistema operativo in uso, vedere Protezione estesa per l'autenticazione.For more information about how to enable Extended Protection for the operating system, see Extended Protection for Authentication.

SQL ServerSQL Server il supporto per la protezione estesa è disponibile a partire da SQL Server 2008 R2SQL Server 2008 R2. supports Extended Protection beginning with SQL Server 2008 R2SQL Server 2008 R2. Laprotezione estesa per alcune versioni precedenti di SQL ServerSQL Server verrà resa disponibile negli aggiornamenti futuri.Extended Protection for some earlier versions of SQL ServerSQL Server will be made available in future updates. Dopo aver abilitato la protezione estesa nel server, effettuare i passaggi seguenti per abilitarla protezione estesa:After enabling Extended Protection on the server computer, use the following steps to enable Extended Protection:

  1. Dal menu Start scegliere Tutti i programmi, Microsoft SQL Server , quindi fare clic su Gestione configurazione SQL Server.On the Start menu, choose All Programs, point to Microsoft SQL Server and then click SQL Server Configuration Manager.

  2. Espandere Configurazione di rete SQL Servere quindi fare clic con il pulsante destro del mouse su Protocolli <NomeIstanza>e scegliere Proprietà.Expand SQL Server Network Configuration, and then right-click Protocols for <InstanceName>, and then click Properties.

  3. Sia per l'associazione di canale che per l'associazione al servizio, nella scheda Avanzate configurare l'impostazione adatta per Protezione estesa .For both channel binding and service binding, on the Advanced tab, set Extended Protection to the appropriate setting.

  4. Facoltativamente, quando un server è noto con più nomi SPN, nella scheda Avanzate configurare il campo SPN NTLM accettati come descritto nella sezione "Impostazioni".Optionally, when a server is known by more than one SPN, on the Advanced tab configure the Accepted NTLM SPNs field as described in the "Settings" section.

  5. Per l'associazione di canale, nella scheda Flag impostare Forza crittografia su Attivata.For channel binding, on the Flags tab, set Force Encryption to On.

  6. Riavviare il servizio Motore di databaseDatabase Engine .Restart the Motore di databaseDatabase Engine service.

Configurazione degli altri componenti di SQL ServerConfiguring Other SQL Server Components

Per altre informazioni su come configurare Reporting ServicesReporting Services, vedere Protezione estesa per l'autenticazione con Reporting Service.For more information about how to configure Reporting ServicesReporting Services, see Extended Protection for Authentication with Reporting Services.

Quando si utilizza IIS per accedere ai dati di Analysis ServicesAnalysis Services utilizzando una connessione HTTP o HTTPs, Analysis ServicesAnalysis Services può usufruire della protezione estesa fornita da IIS.When using IIS to access Analysis ServicesAnalysis Services data using an HTTP or HTTPs connection, Analysis ServicesAnalysis Services can take advantage of Extended Protection provided by 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.For more information about how to configure IIS to use Extended Protection, see Configure Extended Protection in IIS 7.5.

Vedere ancheSee Also

Configurazione di rete del server Server Network Configuration
Configurazione di rete dei client Client Network Configuration
Extended Protection for Authentication Overview Extended Protection for Authentication Overview
Integrated Windows Authentication with Extended ProtectionIntegrated Windows Authentication with Extended Protection