Share via


Certificati SQL Server e chiavi simmetriche

La crittografia a chiave pubblica (PKI) è 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 viene utilizzata per crittografare dati mentre quella privata viene impiegata per decrittografarli. Un messaggio crittografato con la chiave pubblica può essere decrittografato solo utilizzando la chiave privata corretta. Poiché si tratta di due chiavi diverse, queste chiavi sono 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 con firma digitale che contiene una chiave pubblica (e facoltativamente privata) per SQL Server. È possibile usare certificati generati esternamente o SQL Server possono generare certificati.

Nota

SQL Server certificati sono conformi allo standard di certificato 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 asimmetriche, 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 le 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 di nome sicuro. Questi strumenti offrono una maggiore flessibilità nel processo di generazione delle chiavi rispetto alla sintassi SQL Server. È possibile usare questi strumenti per creare chiavi RSA con lunghezze di chiave più complesse e quindi importarle in SQL Server. Nella tabella seguente viene indicato dove è possibile trovare questi strumenti.

Strumento Scopo
makecert Vengono creati certificati.
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)