Protezione del trasporto per il mirroring del database

La protezione del trasporto in SQL Server 2005 e versioni successive implica l'utilizzo dell'autenticazione e, facoltativamente, della crittografia dei messaggi scambiati tra i database.

Per il mirroring del database, l'autenticazione e la crittografia devono essere configurate nell'endpoint. Per un'introduzione agli endpoint del mirroring, vedere Endpoint del mirroring del database.

Autenticazione

L'autenticazione è il processo di verifica che un utente sia effettivamente colui che dichiara di essere. Per le connessioni tra endpoint del mirroring del database è necessaria l'autenticazione. Le richieste di connessione da parte del partner o del server di controllo del mirroring devono essere autenticate.

Il tipo di autenticazione utilizzato da un'istanza del server è una proprietà del relativo endpoint del mirroring del database. Per il mirroring del database sono disponibili due tipi di protezione del trasporto, ovvero l'autenticazione di Windows e l'autenticazione basata sui certificati.

L'autenticazione di Windows supporta due protocolli di autenticazione, ovvero NT LAN Manager (NTLM) e Kerberos. Un endpoint del mirroring del database può essere configurato per utilizzare un solo protocollo o per negoziare tra i protocolli. Per impostazione predefinita, viene utilizzata la negoziazione. Il valore predefinito, ovvero NEGOTIATE, implica l'utilizzo da parte dell'endpoint del protocollo di negoziazione di Windows per scegliere tra NTLM o Kerberos. Se in un endpoint viene specificato un metodo di autenticazione particolare, ovvero NTLM o Kerberos, è possibile utilizzare solo tale metodo. Se l'endpoint opposto è configurato per l'utilizzo solamente dell'altro metodo, non sarà possibile connettere tra loro gli endpoint. Per ulteriori informazioni su questi metodi, vedere Tipi di autenticazione dell'endpoint.

[!NOTA]

Per informazioni su questo endpoint, vedere Endpoint del mirroring del database.

In una connessione per il mirroring del database viene utilizzata l'autenticazione di Windows, Security Support Provider Interface (SSPI), oppure l'autenticazione basata sui certificati.

Autenticazione di Windows

Con l'autenticazione di Windows, ogni istanza del server accede all'altra parte utilizzando le credenziali di Windows dell'account utente di Windows in cui è in esecuzione il processo. Per questo motivo, per l'autenticazione di Windows è necessario che i servizi SQL Server siano in esecuzione come utenti di dominio in domini di tipo trusted o come servizi di rete.

Per autenticare entrambe le parti coinvolte in una connessione, l'autenticazione di Windows prevede l'utilizzo delle credenziali dell'account utente di Windows in cui sono in esecuzione le istanze di SQL Server. L'account utente di ogni istanza del server deve pertanto disporre delle autorizzazioni necessarie per l'accesso e l'invio di messaggi a ognuna delle altre istanze del server.

Per un esempio di configurazione di una sessione di mirroring del database tramite l'autenticazione di Windows, vedere Esempio: Impostazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL).

Certificati

In alcuni casi, ad esempio quando le istanze del server non si trovano in domini di tipo trusted oppure quando SQL Server è in esecuzione come servizio locale, l'autenticazione di Windows non è disponibile. In tali casi al posto delle credenziali utente per l'autenticazione delle richieste di connessione sono necessari certificati. L'endpoint del mirroring di ogni istanza del server deve essere configurato con il proprio certificato creato localmente.

Il metodo di crittografia viene stabilito al momento della creazione del certificato. Per ulteriori informazioni, vedere Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL). Prestare attenzione nella gestione dei certificati utilizzati.

Un'istanza del server utilizza la chiave privata del proprio certificato per stabilire la propria identità durante la configurazione di una connessione. L'istanza del server che riceve la richiesta di connessione utilizza la chiave pubblica del certificato del mittente per autenticare l'identità del mittente. Considerare, ad esempio, due istanze del server, Server_A e Server_B. Server_A utilizza la propria chiave privata per crittografare l'intestazione di connessione prima di inviare una richiesta di connessione a Server_B. Server_B utilizza la chiave pubblica del certificato di Server_A per decrittografare l'intestazione di connessione. Se l'intestazione decrittografata è corretta, Server_B sa che l'intestazione è stata crittografata da Server_A e la connessione viene autenticata. Se l'intestazione decrittografata non è corretta, Server_B sa che la richiesta di connessione non è autentica e rifiuta la connessione.

Nota sulla protezioneNota sulla protezione

Installare i certificati solo da fonti attendibili.

Non è disponibile alcun metodo automatico per la configurazione della protezione del mirroring del database tramite certificati. A tale scopo, è necessario utilizzare Transact-SQL. Per un esempio di utilizzo dell'autenticazione basata sui certificati per la configurazione di una sessione di mirroring del database, vedere Esempio: Impostazione del mirroring del database tramite certificati (Transact-SQL).

Crittografia dei dati

Per impostazione predefinita, un endpoint del mirroring del database richiede che per l'invio in connessioni per il mirroring i dati vengano crittografati. In questo caso, l'endpoint può connettersi solo a endpoint che utilizzano la crittografia. A meno che non si sia assolutamente certi della sicurezza della rete, per le connessioni per il mirroring del database è consigliabile richiedere la crittografia. È tuttavia possibile disattivare la crittografia oppure fare in modo che sia supportata ma non necessaria. Se la crittografia viene disattivata, i dati non vengono mai crittografati e l'endpoint non può connettersi ad altri endpoint che la richiedono. Se la crittografia è supportata, i dati vengono crittografati solo se l'endpoint opposto supporta o richiede la crittografia.

[!NOTA]

Gli endpoint del mirroring creati da SQL Server Management Studio vengono creati con la crittografia impostata come richiesta o disattivata. Per impostare il valore SUPPORTED per la crittografia, utilizzare l'istruzione Transact-SQL ALTER ENDPOINT. Per ulteriori informazioni, vedere ALTER ENDPOINT (Transact-SQL).

Facoltativamente, è possibile controllare gli algoritmi di crittografia che possono essere utilizzati da un endpoint specificando uno dei valori seguenti per l'opzione ALGORITHM in un'istruzione CREATE ENDPOINT o ALTER ENDPOINT:

Valore di ALGORITHM

Descrizione

RC4

Specifica che l'endpoint deve utilizzare l'algoritmo RC4. Impostazione predefinita.

AES

Specifica che l'endpoint deve utilizzare l'algoritmo AES.

AES RC4

Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo AES.

RC4 AES

Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo RC4.

Se gli endpoint che stabiliscono la connessione specificano entrambi gli algoritmi ma in ordine diverso, avrà la priorità l'endpoint che accetta la connessione.

[!NOTA]

Sebbene notevolmente più veloce rispetto all'algoritmo AES, l'algoritmo RC4 è relativamente vulnerabile, mentre AES è relativamente avanzato. È quindi consigliabile utilizzare l'algoritmo AES.

Per informazioni sulla sintassi Transact-SQL per la definizione della crittografia, vedere CREATE ENDPOINT (Transact-SQL).