Condividi tramite


Utilizzo della crittografia senza convalida

SQL Server esegue sempre la crittografia dei pacchetti di rete associati all'accesso. Se non è stato effettuato il provisioning di alcun certificato nel server all'avvio, SQL Server genera un certificato autofirmato usato per crittografare i pacchetti di accesso.

Le applicazioni possono inoltre richiedere l'attivazione della crittografia per tutto il traffico di rete mediante le parole chiave della stringa di connessione o le proprietà di connessione. Le parole chiave sono "Encrypt" per ODBC e OLE DB quando si usa una stringa del provider con IDbInitialize::Initialize o "Use Encryption for Data" per ADO e OLE DB quando si usa una stringa di inizializzazione con IDataInitialize. Questa configurazione può essere configurata anche da Gestione configurazione SQL Server tramite l'opzione Forza crittografia protocollo. Per impostazione predefinita, la crittografia di tutto il traffico di rete per una connessione richiede che nel server sia stato eseguito il provisioning di un certificato.

Per informazioni sulle parole chiave della stringa di connessione, vedere Uso delle parole chiave della stringa di connessione con SQL Server Native Client.

Per abilitare la crittografia da usare quando non è stato effettuato il provisioning di un certificato nel server, è possibile usare Gestione configurazione SQL Server per impostare sia le opzioni Forza crittografia protocollo che Trust Server Certificate. In questo caso, la crittografia utilizzerà un certificato server autofirmato senza convalida se nel server non è stato eseguito il provisioning di alcun certificato verificabile.

Le applicazioni possono inoltre utilizzare la parola chiave "TrustServerCertificate" o il relativo attributo di connessione associato per garantire l'utilizzo della crittografia. Le impostazioni dell'applicazione non riducono mai il livello di sicurezza impostato da SQL Server client Configuration Manager, ma possono rafforzarlo. Un'applicazione può ad esempio richiedere la crittografia, se non è stata impostata l'opzione Forza crittografia protocollo per il client. Per garantire che la crittografia venga applicata anche quando non è stato eseguito il provisioning di un certificato server, un'applicazione può richiedere la crittografia e "TrustServerCertificate". Tuttavia, se TrustServerCertificate non è attivata nella configurazione client, è comunque necessario il provisioning di un certificato server. Nella tabella seguente vengono descritti tutti i casi:

Impostazione client Forza crittografia protocollo Impostazione client Considera attendibile certificato server Attributo/stringa di connessione Encrypt/Use Encryption for Data Attributo/stringa di connessione Trust Server Certificate Risultato
No N/D No (impostazione predefinita) Ignorato Nessuna crittografia.
No N/D No (impostazione predefinita) La crittografia viene applicata solo se è disponibile un certificato server verificabile; in caso contrario, il tentativo di connessione non riesce.
No N/D La crittografia viene sempre applicata, ma può essere utilizzato un certificato server auto-firmato.
No Ignorato Ignorato La crittografia viene applicata solo se è disponibile un certificato server verificabile; in caso contrario, il tentativo di connessione non riesce.
No (impostazione predefinita) Ignorato La crittografia viene sempre applicata, ma può essere utilizzato un certificato server auto-firmato.
No (impostazione predefinita) La crittografia viene applicata solo se è disponibile un certificato server verificabile; in caso contrario, il tentativo di connessione non riesce.
La crittografia viene sempre applicata, ma può essere utilizzato un certificato server auto-firmato.

Provider OLE DB di SQL Server Native Client

Il provider OLE DB SQL Server Native Client supporta la crittografia senza convalida tramite l'aggiunta della proprietà di inizializzazione dell'origine dati SSPROP_INIT_TRUST_SERVER_CERTIFICATE, implementata nel set di proprietà DBPROPSET_SQLSERVERDBINIT. È stata inoltre aggiunta una nuova parola chiave, "TrustServerCertificate", per la stringa di connessione. Accetta i valori yes o no. Il valore predefinito è no. Quando si utilizzano i componenti del servizio, accetta i valori true o false; false è l'impostazione predefinita.

Per altre informazioni sui miglioramenti apportati al set di proprietà DBPROPSET_SQLSERVERDBINIT, vedere Proprietà di inizializzazione e di autorizzazione.

Driver ODBC di SQL Server Native Client

Il driver ODBC SQL Server Native Client supporta la crittografia senza convalida tramite aggiunte alle funzioni SQLSetConnectAttr e SQLGetConnectAttr. SQL_COPT_SS_TRUST_SERVER_CERTIFICATE è stato aggiunto per accettare SQL_TRUST_SERVER_CERTIFICATE_YES o SQL_TRUST_SERVER_CERTIFICATE_NO. SQL_TRUST_SERVER_CERTIFICATE_NO è l'impostazione predefinita. È stata inoltre aggiunta una nuova parola chiave, "TrustServerCertificate", per la stringa di connessione. Accetta i valori yes o no. Il valore predefinito è "no".

Vedere anche

Funzionalità di SQL Server Native Client