Comunicazione protetta

Utilizzo di SSL per proteggere la comunicazione con SQL Server 2000

In questa pagina
ObiettiviObiettivi
Ambito di applicazioneAmbito di applicazione
Utilizzo del moduloUtilizzo del modulo
RiepilogoRiepilogo
Conoscenze necessarieConoscenze necessarie
Installazione di un certificato di autenticazione serverInstallazione di un certificato di autenticazione server
Verifica dell'installazione del certificatoVerifica dell'installazione del certificato
Installazione del certificato dell'autorità di certificazione emittente nel clientInstallazione del certificato dell'autorità di certificazione emittente nel client
Utilizzo forzato di SSL in tutti i clientUtilizzo forzato di SSL in tutti i client
Configurazione dei client per determinare se utilizzare o meno SSLConfigurazione dei client per determinare se utilizzare o meno SSL
Verifica della crittografia della comunicazioneVerifica della crittografia della comunicazione
Altre risorseAltre risorse

Obiettivi

Il modulo consente di:

Configurare SQL Server 2000 affinché richieda a tutti i client di utilizzare SSL per garantire comunicazioni protette.

Configurare SQL Server 2000 in modo che consenta ai client di utilizzare SSL per le comunicazioni protette.

Ambito di applicazione

Le informazioni contenute in questo modulo sono valide per i seguenti prodotti e tecnologie:

Microsoft Windows® XP o Windows 2000 Server con Service Pack 3 e sistemi operativi successivi

Servizi certificati Microsoft

Microsoft Network Monitor

Microsoft .NET Framework versione 1.0 con Service Pack 2 e versioni successive

Microsoft Visual Studio® 1.0 .NET e versioni successive

Microsoft Visual C#® .NET

SQL Server 2000 con Service Pack 2 e versioni successive

Utilizzo del modulo

Per trarre il massimo vantaggio dal modulo:

È necessario disporre di due computer con il sistema operativo Windows XP o Windows 2000 Server e la seguente configurazione:

SQL Server 2000 nel computer server di database server su cui è installato il database di esempio Northwind.

Microsoft Data Access Components (MDAC) 2.6 o versioni successive oppure librerie di connettività client di SQL Server 2000 nel computer client.

È necessario aver acquisito esperienza nella programmazione con Visual C# .NET.

È necessario aver acquisito esperienza nell'utilizzo dell'ambiente di sviluppo Visual Studio .NET.

È necessario aver acquisito esperienza nella configurazione di SQL Server 2000.

È necessario accedere a Servizi certificati Microsoft per poter generare un certificato SSL.

È necessario aver acquisito esperienza nell'utilizzo dello strumento Network Monitor.

Leggere il modulo 4 "Comunicazione protetta". Viene presentata un'introduzione a SSL e vengono descritte le situazioni cui viene utilizzato generalmente.

Leggere il modulo 12 "Protezione dell'accesso ai dati" di questa guida. Include una panoramica dei problemi e delle opzioni di protezione di database.

Riepilogo

SSL (Secure Sockets Layer) è un insieme di tecnologie di crittografia che assicura l'autenticazione, la riservatezza e l'integrità dei dati. In genere, SSL viene utilizzato tra browser e server Web per creare un canale di comunicazione protetto. Tuttavia, è possibile utilizzare SSL per proteggere le comunicazioni le applicazioni client (chiamanti diretti) e Microsoft® SQL Server 2000.

In questo modulo viene descritto come configurare SQL Server 2000 per l'utilizzo di SSL per garantire comunicazioni protette con le applicazioni client.

Conoscenze necessarie

Prima di utilizzare questo modulo, tenere presente quanto segue:

SSL rappresenta un'alternativa all'utilizzo di IPSec per proteggere il traffico del database.
Per ulteriori informazioni sull'utilizzo di IPSec al fine di proteggere il traffico del database, vedere ""Procedura - Utilizzo di IPSec per la comunicazione protetta tra due server" in questa guida.

A differenza di quanto accade in IPSec, la modifica dell'indirizzo IP del client o del server non comporta la modifica della configurazione.

Per utilizzare SSL, è necessario installare un certificato server nel computer server di database. È necessario inoltre che il computer client disponga di un certificato rilasciato dalla stessa autorità di certificazione (CA).

Nei client devono essere installate le librerie di connettività di SQL Server 2000, non librerie generiche o di versioni precedenti.

SSL funziona solo per TCP/IP, il protocollo di comunicazione consigliato per SQL Server, e named pipe.

È possibile configurare il server per forzare l'utilizzo della crittografia per tutte le connessioni.

Nel client è possibile:

Impostare l'utilizzo forzato della crittografia per tutte le connessioni in uscita.

Consentire alle applicazioni client di scegliere se utilizzare o meno la crittografia per ogni singola connessione intervenendo sulla stringa di connessione.

Installazione di un certificato di autenticazione server

SSL richiede che il server disponga di un certificato di autenticazione server rilasciato da un'autorità di certificazione (CA) considerata attendibile dai client che eseguono la connessione.

Per installare un certificato server

1.

Accedere al computer server di database utilizzando un account di amministratore.

2.

Avviare Internet Explorer e passare a Servizi certificati Microsoft digitando ad esempio il seguente indirizzo:

http://MyCA/certsrv

3.

Fare clic su Richiedere un certificato, quindi su Avanti.

4.

Fare clic su Richiesta avanzata, quindi su Avanti.

5.

Fare clic su Inviare una richiesta di certificato a questo CA utilizzando un modulo, quindi su Avanti.

6.

Compilare il modulo di richiesta dei certificati tenendo presente quanto segue:

1.

Immettere il nome di dominio completo del computer in cui è in esecuzione SQL Server nel campo Nome. Ad esempio:

sql01.nwtraders.com

2.

Nel campo Scopo designato o Tipo di certificato richiesto fare clic su Certificato di autenticazione Server.

3.

Per il provider del servizio di crittografia (CSP), fare clic su Microsoft RSA SChannel Cryptographic Provider.

Nota: vengono supportati anche i provider del servizio di crittografia Microsoft Base Cryptographic Provider versione 1.0 e Microsoft Enhanced Cryptographic Provider. Invece non è supportato Microsoft Strong Cryptographic Provider.

4.

Selezionare la casella di controllo Utilizza l'archivio locale del computer.

Nota: NON selezionare Abilita protezione avanzata chiave privata.

7.

Fare clic su Invia per completare la richiesta.
Se il server di certificazione rilascia automaticamente i certificati, a questo punto è possibile installare il certificato. In caso contrario, è possibile installare il certificato dopo che è stato rilasciato dall'amministratore della CA passando a Servizi certificati Microsoft e selezionando Effettuare la verifica su un certificato in sospeso.

Verifica dell'installazione del certificato

Questa procedura consente di verificare che il certificato server sia stato installato correttamente.

Per verificare che il certificato è stato installato

1.

Nella barra delle applicazioni fare clic sul pulsante Start, quindi scegliere Esegui.

2.

Digitare mmc, quindi fare clic su OK.

3.

Scegliere Aggiungi/Rimuovi snap-in dal menu Console.

4.

Fare clic su Aggiungi.

5.

Fare clic su Certificati, quindi su Aggiungi.

6.

Fare clic su Account del computer, quindi su Avanti.

7.

Accertarsi che sia selezionata l'opzione Computer locale: (il computer su cui è in esecuzione questa console), quindi fare clic su Fine.

8.

Fare clic su Chiudi, quindi su OK.

9.

Nella struttura del riquadro sinistro espandere Certificati (computer locale) e Personale, quindi selezionare Certificati.

10.

Verificare che esista un certificato con il nome di dominio completo specificato nella procedura precedente.
È possibile fare doppio clic sul certificato per visualizzare i relativi dettagli.

Installazione del certificato dell'autorità di certificazione emittente nel client

Dopo che è stato installato il certificato ed è stato riavviato il servizio SQL Server, quest'ultimo può gestire SSL con i client. I client che utilizzano SSL per connettersi a SQL Server devono soddisfare i seguenti requisiti:

Disporre di librerie di connettività di MDAC 2.6 o SQL Server 2000 installate.

Considerare attendibile l'autorità che rilasciato il certificato di SQL.

Per installare il certificato della CA emittente nel computer client

1.

Accedere al computer client come amministratore.

2.

Avviare Internet Explorer e passare a Servizi certificati Microsoft digitando ad esempio il seguente indirizzo:

http://MyCA/certsrv

3.

Fare clic su Recuperare il certificato o l'elenco di revoche certificati, quindi su Avanti.

4.

Fare clic su Installa il percorso certificati CA, quindi su per confermare l'installazione del certificato principale nella finestra corrispondente.

Utilizzo forzato di SSL in tutti i client

È possibile configurare il server per forzare tutti i client a utilizzare SSL , come descritto in questa procedura, oppure consentire ai client di scegliere se utilizzare o meno SSL a seconda di ogni connessione specifica, come descritto nella procedura successiva. I vantaggi della configurazione del server per forzare i client a utilizzare SSL sono i seguenti:

Viene assicurata la protezione di tutte le comunicazioni.

Le connessioni non protette vengono rifiutate.

Gli svantaggi sono i seguenti:

È necessario che in tutti i client siano installate le librerie di connettività di MDAC 2.6 o SQL Server 2000. Librerie precedenti o generiche non riusciranno a stabilire la connessione.

Le connessioni che non è necessario proteggere subiscono un leggero deterioramento delle prestazioni dovuto al sovraccarico per la crittografia aggiunta.

Per forzare tutti i client a utilizzare SSL

1.

Nel computer in cui è in esecuzione SQL Server scegliere Configurazione di rete di SQL server dal gruppo di programmi Microsoft SQL Server.

2.

Fare clic per selezionare Imponi crittografia protocolli.

3.

Verificare che il protocollo TCP/IP e/o le named pipe siano attivati.

SSL non è supportato con altri protocolli.

4.

Fare clic su OK per chiudere l'utilità Configurazione di rete di SQL Server, quindi fare clic su OK in risposta alla finestra di messaggio Configurazione di rete di SQL Server.

5.

Riavviare il servizio SQL Server.

Per tutte le connessioni client successive verrà richiesto l'utilizzo di SSL, indipendentemente dal fatto che vengano specificate o meno connessioni protette.

Configurazione dei client per determinare se utilizzare o meno SSL

In questa procedura viene illustrato come configurare SSL per consentire ai client di scegliere se utilizzare o meno SSL. È possibile configurare le librerie client per forzare l'utilizzo di SSL in tutte le connessioni o consentire alle singole applicazioni di scegliere a seconda della connessione specifica. I vantaggi della configurazione del client sono i seguenti:

Il sovraccarico di SSL si verifica solo per le connessioni che lo richiedono effettivamente.

I client che non supportano SSL con SQL Server possono connettersi comunque.

Se si adotta questo approccio, accertarsi che si desideri consentire connessioni non protette.

Per riconfigurare il server

1.

Nel computer SQL Server, eseguire Configurazione di rete di SQL Server.

2.

Deselezionare la casella di controllo Imponi crittografia protocolli.

3.

Riavviare il servizio SQL Server.

4.

Tornare al computer client.

Per utilizzare SSL in tutte le connessioni client

Mediante questo approccio, le librerie client vengono configurate per utilizzare SSL in tutte le connessioni. Di conseguenza, i computer SQL Server che non supportano la crittografia e i computer con versioni di SQL Server precedenti a SQL Server 2000 non saranno accessibili.

1.

Scegliere Configurazione di rete client dal gruppo di programmi Microsoft SQL Server.

2.

Verificare che il protocollo TCP/IP e/o le named pipe siano attivati.

3.

Selezionare Imponi crittografia protocolli.

Per consentire alle applicazioni di scegliere se utilizzare o meno la crittografia

Mediante questo approccio, tramite la stringa di connessione, le applicazioni determinano se utilizzare o meno la crittografia. In questo modo, si consente a ogni applicazione di utilizzare la crittografia solo quando è necessaria.

1.

Se si utilizza il provider di dati OLE DB per connettersi a SQL Server, impostare Use Encryption for Data su true come illustrato nella seguente stringa di connessione OLE DB di esempio:

"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security 
Info=False;Initial Catalog=Northwind;Data Source=sql01;Use Encryption for 
Data=True"

2.

Se si esegue la connessione a SQL mediante il provider di dati .NET per SQL Server, impostare Encrypt su true come illustrato nel seguente esempio:

"Server=sql01;Integrated Security=SSPI;Persist Security 
Info=False;Database=Northwind;Encrypt=True"

Verifica della crittografia della comunicazione

In questa procedura verrà utilizzato Network Monitor per verificare che i dati inviati tra il server applicazioni e il server di database siano crittografati. Si inizierà con l'invio dei dati in formato testo non crittografato e in seguito si attiverà la crittografia configurando prima il server e quindi il client.

Per verificare che la comunicazione sia crittografata

1.

Nel computer client utilizzare Visual Studio.NET per creare una nuova applicazione console C# denominata SQLSecureClient.

2.

Copiare il codice riportato di seguito in class1.cs sostituendo il codice esistente.

Nota: sostituire il nome del server nella stringa di connessione con il nome del server di database.

using System;
using System.Data;
using System.Data.SqlClient;

namespace SQLSecureClient
{
  class Class1
  {
    [STAThread]
    static void Main(string[] args)
    {
      // Replace the server name in the following connection 
      string with the 
      // name of your database server
      SqlConnection conn = new SqlConnection(
        "server='sql01';database=NorthWind;Integrated Security='SSPI'");

      SqlCommand cmd = new SqlCommand("SELECT * FROM 
      Products");      try
      {
        conn.Open();
        cmd.Connection = conn;
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
          Console.WriteLine("{0} {1}", 
                     reader.GetInt32(0).ToString(), 
                     reader.GetString(1) );
        }
        reader.Close();
      }
      catch( Exception ex)
      {
      }
      finally
      {
        conn.Close();
      }
    }
  }
}

3.

Scegliere Genera soluzione dal menu Genera.

4.

Per eseguire correttamente l'autenticazione di Windows tra i due computer, è necessario duplicare nel computer server di database l'account di accesso interattivo con cui si è collegati attualmente al computer client. Accertarsi che il nome utente e la password corrispondano. In alternativa, è possibile utilizzare un account di dominio riconosciuto da entrambi i computer.
È inoltre necessario utilizzare SQL Server Enterprise Manager per creare un account di accesso al database per l'account appena generato e aggiungere un nuovo utente del database per questo accesso al database Northwind.

5.

Nel computer server di database utilizzare Configurazione di rete di SQL Server per disattivare l'utilizzo della crittografia, verificando che l'opzione Imponi crittografia protocolli non sia selezionata.

6.

Nel computer server di database scegliere Network Monitor dal gruppo di programmi Strumenti di amministrazione.

Nota: una versione limitata di Network Monitor è disponibile in Windows 2000 Server. La versione completa è inclusa in Microsoft SMS.

Se non è stato installato Network Monitor, passare a Installazione applicazioni nel Pannello di controllo, fare clic su Installazione componenti di Windows, selezionare Strumenti di gestione e controllo dall'elenco Componenti di Windows, scegliere Dettagli, quindi fare clic su Strumenti per il monitoraggio della rete. Fare clic su OK, quindi su Avanti per installare la versione limitata di Network Monitor. È possibile che venga richiesto il CD di Windows 2000 Server.

7.

Scegliere Filtro dal menu Acquisizione per creare un nuovo filtro configurato per visualizzare il traffico di rete TCP/IP inviato tra i server di database.

8.

Fare clic sul pulsante Avvia acquisizione.

9.

Tornare al computer client ed eseguire l'applicazione console di prova. Nella finestra della console verrà visualizzato un elenco dei prodotti proveniente dal database Northwind.

10.

Tornare al server di database e fare clic sul pulsante Termina e visualizza acquisizione all'interno di Network Monitor.

11.

Fare doppio clic sul primo frame acquisito per visualizzare i dati acquisiti.

12.

Scorrere verso il basso i frame acquisiti. Viene visualizzata l'istruzione SELECT in formato testo non crittografato seguita dall'elenco dei prodotti recuperato dal database.

13.

A questo punto, forzare l'utilizzo della crittografia per tutte le connessioni configurando il server mediante l'utilità Configurazione di rete di SQL Server:

1.

Utilizzare Configurazione di rete di SQL Server per selezionare Imponi crittografia protocolli.

2.

Chiudere e riavviare il servizio SQL Server.

14.

Tornare a Network Monitor e fare clic sul pulsante Avvia acquisizione. Nella finestra di dialogo Salva file fare clic su No.

15.

Tornare al computer client ed eseguire nuovamente l'applicazione console di prova.

16.

Tornare al computer server di database e fare clic su Termina e visualizza acquisizione all'interno di Network Monitor.

17.

Verificare che i dati non siano leggibili in quanto crittografati.

18.

Riconfigurare il server per non forzare più la crittografia:

1.

Utilizzare Configurazione di rete di SQL Server per deselezionare la casella di controllo Imponi crittografia protocolli.

2.

Chiudere e riavviare il servizio SQL Server.

19.

Avviare una nuova acquisizione all'interno di Network Monitor ed eseguire nuovamente l'applicazione client. Verificare che i dati siano di nuovo in formato testo non crittografato.

20.

Tornare al computer client e selezionare Configurazione di rete client dal gruppo di programmi Microsoft SQL Server.

21.

Selezionare Imponi crittografia protocolli, quindi fare clic su OK per chiudere Configurazione di rete client.

22.

Tornare a Network Monitor e fare clic sul pulsante Avvia acquisizione. Nella finestra di dialogo Salva file fare clic su No.

23.

Tornare al computer client ed eseguire nuovamente l'applicazione console di prova.

24.

Tornare al computer server di database e fare clic su Termina e visualizza acquisizione all'interno di Network Monitor.

25.

Verificare che i dati non siano leggibili in quanto crittografati.
Si noti che, in tutti i casi, all'inizio della sequenza di comunicazione SQL Server invia al client il certificato di autenticazione server in formato testo non crittografato. Ciò fa parte del protocollo SSL e si verifica quando né il server né il client richiedono la crittografia.

Altre risorse

Per informazioni su come installare Network Monitor in Windows 2000, vedere i seguenti articoli:

Articolo 243270 della Microsoft Knowledge Base dal titolo "HOW TO: Install Network Monitor in Windows 2000", reperibile all'indirizzo http://support.microsoft.com/default.aspx?scid=243270 (in inglese).

Articolo 276553 della Microsoft Knowledge Base dal titolo "HOW TO: Enable SSL Encryption for SQL Server 2000 with Certificate Server", reperibile all'indirizzo http://support.microsoft.com/default.aspx?scid=276553 (in inglese).

Per ulteriori informazioni su Network Monitor, vedere la sezione "Network Monitor" di Microsoft Platform SDK nel sito MSDN disponibile all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmon/netmon/network_monitor.asp (in inglese).


**
In questo articolo
**