Certificati SQL Server e chiavi simmetricheSQL Server Certificates and Asymmetric Keys

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 .Public Key Cryptography (PKI) is a form of message secrecy in which a user creates a public key and a private key. La chiave privata viene tenuta segreta, mentre la chiave pubblica può essere distribuita ad altri.The private key is kept secret, whereas the public key can be distributed to others. Sebbene le chiavi siano collegate da una relazione matematica, non è possibile estrapolare facilmente la chiave privata utilizzando la chiave pubblica.Although the keys are mathematically related, the private key cannot be easily derived by using the public key. La chiave pubblica viene utilizzata per crittografare dati mentre quella privata viene impiegata per decrittografarli.The public key is used to encrypt data and the private key is used to decrypt data. Un messaggio crittografato con la chiave pubblica può essere decrittografato solo utilizzando la chiave privata corretta.A message that is encrypted by using the public key can only be decrypted by using the correct private key. Poiché si tratta di due chiavi diverse, queste chiavi sono asimmetriche.Since there are two different keys, these keys are asymmetric.

Certificati e chiavi asimmetriche rappresentano entrambi una modalità di utilizzo della crittografia asimmetrica.Certificates and asymmetric keys are both ways to use asymmetric encryption. 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.Certificates are often used as containers for asymmetric keys because they can contain more information such as expiry dates and issuers. 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.There is no difference between the two mechanisms for the cryptographic algorithm, and no difference in strength given the same key length. In genere, si utilizza un certificato per crittografare gli altri tipi di chiavi di crittografia in un database o per firmare moduli di codice.Generally, you use a certificate to encrypt other types of encryption keys in a database, or to sign code modules.

Certificati e chiavi asimmetriche sono in grado di decrittografare dati crittografati da altri.Certificates and asymmetric keys can decrypt data that the other encrypts. In genere, la crittografia asimmetrica viene utilizzata per crittografare una chiave simmetrica da archiviare in un database.Generally, you use asymmetric encryption to encrypt a symmetric key for storage in a database.

Al contrario di un certificato, una chiave pubblica non presenta un formato particolare e non può essere esportata in un file.A public key does not have a particular format like a certificate would have, and you cannot export it to a file.

Nota

SQL ServerSQL Server contiene caratteristiche che consentono di creare e gestire certificati e chiavi da utilizzare con il server e il database. contains features that enable you to create and manage certificates and keys for use with the server and database. SQL ServerSQL Server per creare e gestire certificati e chiavi con le altre applicazioni o nel sistema operativo. cannot be used to create and manage certificates and keys with other applications or in the operating system.

CertificatiCertificates

Un certificato è un oggetto di sicurezza provvisto di firma digitale all'interno del quale è presente una chiave pubblica (e facoltativamente una privata) per SQL ServerSQL Server.A certificate is a digitally signed security object that contains a public (and optionally a private) key for SQL ServerSQL Server. È possibile utilizzare certificati generati all'esterno o da SQL ServerSQL Server .You can use externally generated certificates or SQL ServerSQL Server can generate certificates.

Nota

SQL ServerSQL Server I certificati sono conformi allo standard per certificati IETF X.509v3. certificates comply with the IETF X.509v3 certificate standard.

L'utilità dei certificati deriva dall'opzione che consente di esportare e importare le chiavi a file di certificato X.509.Certificates are useful because of the option of both exporting and importing keys to X.509 certificate files. La sintassi per la creazione di certificati offre opzioni come l'impostazione di una data di scadenza.The syntax for creating certificates allows for creation options for certificates such as an expiry date.

Utilizzo di un certificato in SQL ServerUsing a Certificate 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.Certificates can be used to help secure connections, in database mirroring, to sign packages and other objects, or to encrypt data or connections. Nella tabella seguente sono elencate risorse aggiuntive per i certificati presenti in SQL ServerSQL Server.The following table lists additional resources for certificates in SQL ServerSQL Server.

ArgomentoTopic DescrizioneDescription
CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL) Viene descritto il comando per la creazione di certificati.Explains the command for creating certificates.
Identificazione dell'origine dei pacchetti con firme digitaliIdentify the Source of Packages with Digital Signatures Vengono fornite informazioni sull'utilizzo di certificati per la firma di pacchetti software.Shows information about how to use certificates to sign software packages.
Usare certificati per un endpoint del mirroring del database (Transact-SQL)Use Certificates for a Database Mirroring Endpoint (Transact-SQL) Vengono fornite informazioni sull'utilizzo dei certificati con il mirroring del database.Covers information about how to use certificates with Database Mirroring.

Chiavi asimmetricheAsymmetric Keys

Le chiavi asimmetriche sono utilizzate per proteggere le chiavi simmetriche.Asymmetric keys are used for securing symmetric keys. È possibile utilizzarle anche per una crittografia limitata dei dati e per la firma digitale di oggetti di database.They can also be used for limited data encryption and to digitally sign database objects. Una chiave asimmetrica consiste in una chiave privata e in una chiave pubblica corrispondente.An asymmetric key consists of a private key and a corresponding public key. Per altre informazioni sulle chiavi simmetriche, vedere CREATE ASYMMETRIC KEY (Transact-SQL).For more information about asymmetric keys, see CREATE ASYMMETRIC KEY (Transact-SQL).

È possibile importare le chiavi asimmetriche da file di chiave con nome sicuro, ma non esportarle.Asymmetric keys can be imported from strong name key files, but they cannot be exported. Le chiavi asimmetriche, inoltre, non hanno opzioni di scadenza eThey also do not have expiry options. non sono in grado di crittografare connessioni.Asymmetric keys cannot encrypt connections.

Utilizzo di una chiave asimmetrica in SQL ServerUsing an Asymmetric Key in SQL Server

È possibile utilizzare chiavi asimmetriche per proteggere dati o firmare testo non crittografato.Asymmetric keys can be used to help secure data or sign plaintext. Nella tabella seguente sono elencate risorse aggiuntive per chiavi asimmetriche presenti in SQL ServerSQL Server.The following table lists additional resources for asymmetric keys in SQL ServerSQL Server.

ArgomentoTopic DescrizioneDescription
CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL) Viene descritto il comando per la creazione di chiavi asimmetriche.Explains the command for creating asymmetric keys.
SIGNBYASYMKEY (Transact-SQL)SIGNBYASYMKEY (Transact-SQL) Vengono visualizzate le opzioni per la firma di oggetti.Displays the options for signing objects.

StrumentiTools

MicrosoftMicrosoft vengono forniti strumenti e utilità in grado di generare certificati e file di chiave con nome sicuro. provides tools and utilities that will generate certificates and strong name key files. Questi strumenti offrono maggiore flessibilità nel processo di generazione delle chiavi rispetto alla sintassi SQL ServerSQL Server .These tools offer a richer amount of flexibility in the key generation process than the SQL ServerSQL Server syntax. È possibile utilizzare questi strumenti per creare chiavi RSA con lunghezze di chiave più complesse e importarle quindi in SQL ServerSQL Server.You can use these tools to create RSA keys with more complex key lengths and then import them into SQL ServerSQL Server. Nella tabella seguente viene indicato dove è possibile trovare questi strumenti.The following table explains shows where to find these tools.

StrumentoTool ScopoPurpose
makecertmakecert Vengono creati certificati.Creates certificates.
snsn Vengono creati nomi sicuri per le chiavi simmetriche.Creates strong names for symmetric keys.

Scelta di un algoritmo di crittografiaChoose an Encryption Algorithm

CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)

Vedere ancheSee Also

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