Condividi tramite


Utilizzo della crittografia senza convalida

In SQL Server i pacchetti di rete associati all'accesso vengono sempre crittografati. Se all'avvio non è stato eseguito il provisioning di un certificato nel server, SQL Server genera un certificato autofirmato utilizzato 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 se si utilizza una stringa del provider con IDBInitialize::Initialize o "Use Encryption for Data" per ADO e OLE DB se si utilizza una stringa di inizializzazione con IDataInitialize. Questa configurazione può inoltre essere eseguita mediante Gestione configurazione SQL Server impostando 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 Utilizzo delle parole chiave delle stringhe di connessione con SQL Server Native Client.

Per consentire l'utilizzo della crittografia quando nel server non è stato eseguito il provisioning di un certificato, è possibile utilizzare Gestione configurazione SQL Server per impostare le opzioni Forza crittografia protocollo e Considera attendibile certificato server. 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 protezione impostato dal client di Gestione configurazione SQL Server, bensì possono potenziarlo. 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 di 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 ulteriori 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 di 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".