Certificati SQL Server e chiavi simmetriche

La crittografia a chiave pubblica (PKI) è un sistema per tutelare la 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 server e database. Non è possibile utilizzare SQL Server per creare e gestire certificati e chiavi con altre applicazioni o all'interno del sistema operativo.

Certificati

Un certificato è un oggetto di protezione provvisto di firma digitale all'interno del quale è presente una chiave pubblica (e facoltativamente una privata) per SQL Server. È possibile utilizzare certificati generati all'esterno o da SQL Server.

[!NOTA]

I certificati 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 presenti in SQL Server.

Argomento

Descrizione

CREATE CERTIFICATE (Transact-SQL)

Viene descritto il comando per la creazione di certificati.

Certificati e Service Broker

Vengono visualizzate le informazioni sull'utilizzo dei certificati con Service Broker

Utilizzo delle firme digitali con i pacchetti

Vengono fornite informazioni sull'utilizzo di certificati per la firma di pacchetti software.

Certificati per la protezione del dialogo

Viene illustrato in dettaglio l'utilizzo dei certificati con le finestre di dialogo.

Utilizzo di certificati per il mirroring del database

Vengono fornite informazioni sull'utilizzo dei certificati con il mirroring del database.

Crittografia delle connessioni a SQL Server

Vengono indicate le modalità di crittografia delle connessioni a SQL Server.

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 ulteriori 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 presenti 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

In Microsoft vengono forniti strumenti e utilità in grado di generare certificati e file di chiave con nome sicuro. Questi strumenti offrono maggiore flessibilità nel processo di generazione delle chiavi rispetto alla sintassi SQL Server. È possibile utilizzare questi strumenti per creare chiavi RSA con lunghezze di chiave più complesse e importarle quindi 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.