Connessione al motore di database mediante la protezione estesa

In SQL Server il supporto per la protezione estesa è disponibile a partire da SQL Server 2008 R2. La protezione estesa per l'autenticazione è una funzionalità dei componenti di rete implementata dal sistema operativo. La protezione estesa è supportata in Windows 7 e in Windows Server 2008 R2 ed è inclusa nei Service Pack per i sistemi operativi Microsoft precedenti. SQL Server è più sicuro quando le connessioni vengono stabilite utilizzando la protezione estesa.

Nota importanteImportante

Per impostazione predefinita, in Windows la protezione estesa non è abilitata. Per informazioni su come abilitare la protezione estesa, vedere Protezione estesa per l'autenticazione.

Descrizione della protezione estesa

La protezione 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 di un attacco, ad esempio un file server CIFS dannoso. Tale autore utilizza 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 di adescamento 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 di adescamento 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 limitato a una sola volta, ma non neutralizza gli attacchi di spoofing. L'associazione al servizio si verifica se un'applicazione client non utilizza 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 di adescamento che di spoofing. Comporta tuttavia costi di runtime maggiori in quanto richiede la crittografia TLS (Transport Layer Security) di tutto il traffico della sessione. L'associazione di canale si verifica se un'applicazione client utilizza la crittografia per connettersi a SQL Server.

Supporto nei sistemi operativi

Nei collegamenti seguenti vengono fornite ulteriori informazioni sul supporto della protezione estesa in Windows:

Impostazioni

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 utilizzando il facet Impostazioni installazione 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 Attivata in 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, Consentita e 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 valore Disattivata è 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 tale caratteristica e viene invece ignorata per le connessioni da sistemi operativi che non la supportano. 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 le connessioni a SQL Server da sistemi operativi o applicazioni che non supportano la protezione estesa non riuscirà.

  • 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'impostazione SPN NTLM accettati è costituita da una serie di nomi SPN separati da punti e virgola. Per consentire, ad esempio, l'uso dei nomi SPN 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 Maggiore protezione per l'autenticazione.

In SQL Server il supporto per la protezione estesa è disponibile a partire da SQL Server 2008 R2. La protezione estesa per alcune versioni precedenti di SQL Server verrà resa disponibile negli aggiornamenti futuri. Dopo aver abilitato la protezione estesa sul server, eseguire i passaggi seguenti per abilitarla in SQL Server 2008 R2:

  1. Fare clic sul menu Start, scegliere Tutti i programmi, Microsoft SQL Server e quindi Gestione configurazione SQL Server.

  2. Espandere Configurazione di rete SQL Server, quindi fare clic con il pulsante destro del mouse su Protocolli per <NomeIstanza> e scegliere Proprietà.

  3. Sia per l'associazione di canale che per l'associazione al servizio, nella scheda Avanzate configurare l'impostazione adatta per Protezione estesa.

  4. Facoltativamente, quando un server è noto con più nomi SPN, nella scheda Avanzate configurare il campo SPN NTLM accettati come descritto nella sezione "Impostazioni".

  5. Per l'associazione di canale, nella scheda Flag impostare Forza crittografia su Attivata.

  6. Riavviare il servizio Motore di database.

Configurazione degli altri componenti di SQL Server

Per ulteriori informazioni sulla configurazione di Reporting Services, vedere Protezione estesa per l'autenticazione con Reporting Services.

Quando si utilizza IIS per accedere ai dati di Analysis Services utilizzando 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.