Certificati SQL Server e chiavi simmetriche

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

La crittografia a chiave pubblica è un sistema di tutela della segretezza dei messaggi in cui un utente crea una chiave pubblica e una chiave privata. La chiave privata viene tenuta segreta, mentre la chiave pubblica può essere distribuita ad altri. Sebbene le chiavi siano collegate da una relazione matematica, non è possibile estrapolare facilmente la chiave privata utilizzando la chiave pubblica. La chiave pubblica può essere usata per crittografare dati che potranno essere decrittografati solo dalla chiave privata corrispondente. Questo approccio può essere usato per crittografare messaggi destinati al proprietario della chiave privata. In modo analogo il proprietario di una chiave privata può crittografare dati che possono essere decrittografati solo con la chiave pubblica. Questo approccio costituisce la base dei certificati digitali, in cui le informazioni presenti nel certificato vengono crittografate dal proprietario di una chiave privata, in modo da offrire una garanzia all'autore del contenuto. Poiché le chiavi di crittografia e decrittografia sono diverse, sono note come chiavi asimmetriche.

Certificati e chiavi asimmetriche rappresentano entrambi una modalità di utilizzo della crittografia asimmetrica. I certificati vengono spesso utilizzati come contenitori delle chiavi asimmetriche perché possono contenere un maggior numero di informazioni, ad esempio date di scadenza e autorità emittenti. Non c'è differenza tra i due meccanismi per l'algoritmo di crittografia e nessuna differenza nel livello di protezione fornito a parità di lunghezza della chiave. In genere, si utilizza un certificato per crittografare gli altri tipi di chiavi di crittografia in un database o per firmare moduli di codice.

Certificati e chiavi asimmetriche sono in grado di decrittografare dati crittografati da altri. In genere, la crittografia asimmetrica viene utilizzata per crittografare una chiave simmetrica da archiviare in un database.

Al contrario di un certificato, una chiave pubblica non presenta un formato particolare e non può essere esportata in un file.

Nota

SQL Server contiene funzionalità che consentono di creare e gestire certificati e chiavi da usare con il server e il database. SQL Server non può essere usato per creare e gestire certificati e chiavi con altre applicazioni o nel sistema operativo.

Certificati

Un certificato è un oggetto di sicurezza provvisto di firma digitale contenente una chiave pubblica (e facoltativamente una chiave privata) per SQL Server. È possibile usare certificati generati all'esterno oppure SQL Server può generare certificati.

Nota

I certificati di SQL Server sono conformi allo standard per certificati IETF X.509v3.

L'utilità dei certificati deriva dall'opzione che consente di esportare e importare le chiavi a file di certificato X.509. La sintassi per la creazione di certificati offre opzioni come l'impostazione di una data di scadenza.

Utilizzo di un certificato in SQL Server

È possibile utilizzare i certificati per proteggere connessioni, eseguire il mirroring del database, firmare pacchetti e altri oggetti o crittografare dati o connessioni. Nella tabella seguente sono elencate risorse aggiuntive per i certificati in SQL Server.

Argomento Descrizione
CREATE CERTIFICATE (Transact-SQL) Viene descritto il comando per la creazione di certificati.
Identificazione dell'origine dei pacchetti con firme digitali Vengono fornite informazioni sull'utilizzo di certificati per la firma di pacchetti software.
Utilizzare certificati per un endpoint del mirroring del database (Transact-SQL) Vengono fornite informazioni sull'utilizzo dei certificati con il mirroring del database.

Chiavi asimmetriche

Le chiavi asimmetriche sono utilizzate per proteggere le chiavi simmetriche. È possibile utilizzarle anche per una crittografia limitata dei dati e per la firma digitale di oggetti di database. Una chiave asimmetrica consiste in una chiave privata e in una chiave pubblica corrispondente. Per altre informazioni sulle chiavi simmetriche, vedere CREATE ASYMMETRIC KEY (Transact-SQL).

È possibile importare le chiavi asimmetriche da file di chiave con nome sicuro, ma non esportarle. Le chiavi asimmetriche, inoltre, non hanno opzioni di scadenza e non sono in grado di crittografare connessioni.

Utilizzo di una chiave asimmetrica in SQL Server

È possibile utilizzare chiavi asimmetriche per proteggere dati o firmare testo non crittografato. Nella tabella seguente sono elencate risorse aggiuntive per chiavi asimmetriche in SQL Server.

Argomento Descrizione
CREATE ASYMMETRIC KEY (Transact-SQL) Viene descritto il comando per la creazione di chiavi asimmetriche.
SIGNBYASYMKEY (Transact-SQL) Vengono visualizzate le opzioni per la firma di oggetti.

Strumenti

Microsoft fornisce strumenti e utilità che genereranno certificati e file di chiave con nome sicuro. Questi strumenti offrono maggiore flessibilità nel processo di generazione delle chiavi rispetto alla sintassi di SQL Server. È possibile usare questi strumenti per creare chiavi RSA con lunghezze di chiave più complesse e importarle in SQL Server. Nella tabella seguente viene indicato dove è possibile trovare questi strumenti.

Tool Scopo
New-SelfSignedCertificate Crea certificati autofirmati.
makecert Vengono creati certificati. Deprecato a favore di New-SelfSignedCertificate.
sn Vengono creati nomi sicuri per le chiavi simmetriche.

Scelta di un algoritmo di crittografia

CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)

Vedere anche

sys.certificates (Transact-SQL)
Transparent Data Encryption (TDE)