Scelta di un algoritmo di crittografiaChoose an Encryption Algorithm

La crittografia è una delle molte difese in profondità che gli amministratori possono utilizzare per proteggere un'istanza di SQL ServerSQL Server.Encryption is one of several defenses-in-depth that are available to the administrator who wants to secure an instance of SQL ServerSQL Server.

Gli algoritmi di crittografia definiscono trasformazioni dei dati che non possono essere invertite facilmente dagli utenti non autorizzati.Encryption algorithms define data transformations that cannot be easily reversed by unauthorized users. SQL ServerSQL Server consente ad amministratori e sviluppatori di scegliere tra diversi algoritmi, tra cui DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 a 128 bit, DESX, AES a 128 bit, AES a 192 bit e AES a 256 bit. allows administrators and developers to choose from among several algorithms, including DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit AES, 192-bit AES, and 256-bit AES.

Nota

A partire da SQL Server 2016SQL Server 2016, tutti gli algoritmi diversi da AES_128, AES_192 e AES_256 sono deprecati.Beginning with SQL Server 2016SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. Per usare algoritmi meno recenti (sconsigliato), è necessario impostare il database sul livello di compatibilità del database 120 o su uno inferiore.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

Nessun algoritmo è ideale in tutte le situazioni e la valutazione dei vantaggi relativi a ogni algoritmo esula dall'ambito della documentazione online di SQL ServerSQL Server .No single algorithm is ideal for all situations, and guidance on the merits of each is beyond the scope of SQL ServerSQL Server Books Online. Sono comunque validi i principi generali seguenti:However, the following general principles apply:

  • La crittografia avanzata utilizza in genere una quantità di risorse della CPU maggiore rispetto alla crittografia vulnerabile.Strong encryption generally consumes more CPU resources than weak encryption.

  • Le chiavi lunghe consentono in genere una crittografia più avanzata rispetto a quelle brevi.Long keys generally yield stronger encryption than short keys.

  • La crittografia asimmetrica è meno avanzata della crittografia simmetrica che usa la stessa lunghezza di chiave, ma è relativamente lenta.Asymmetric encryption is weaker than symmetric encryption using the same key length, but it is relatively slow.

  • Le crittografie a blocchi con chiavi lunghe sono più avanzate rispetto alle crittografie a flussi.Block ciphers with long keys are stronger than stream ciphers.

  • Le password lunghe e complesse sono più avanzate rispetto alle password brevi.Long, complex passwords are stronger than short passwords.

  • Se si crittografano molti dati, è necessario crittografarli tramite una chiave simmetrica e crittografare la chiave simmetrica con una asimmetrica.If you are encrypting lots of data, you should encrypt the data using a symmetric key, and encrypt the symmetric key with an asymmetric key.

  • I dati crittografati non possono essere compressi, ma i dati compressi possono essere crittografati.Encrypted data cannot be compressed, but compressed data can be encrypted. Se si utilizza la compressione, è necessario comprimere i dati prima di crittografarli.If you use compression, you should compress data before encrypting it.

Importante

L'algoritmo RC4 è supportato solo per motivi di compatibilità con le versioni precedenti.The RC4 algorithm is only supported for backward compatibility. È possibile crittografare il nuovo materiale usando RC4 o RC4_128 solo quando il livello di compatibilità del database è 90 o 100.New material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. (Non consigliato.) Usare un algoritmo più recente, ad esempio uno degli algoritmi AES.(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. In SQL Server 2012SQL Server 2012 e versioni successive il materiale crittografato utilizzando RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.In SQL Server 2012SQL Server 2012 and higher material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

L'utilizzo ripetuto della stessa funzione KEY_GUID RC4 o RC4_128 su blocchi di dati diversi produrrà la stessa chiave RC4 perché SQL ServerSQL Server non fornisce automaticamente un valore salt.Repeated use of the same RC4 or RC4_128 KEY_GUID on different blocks of data will result in the same RC4 key because SQL ServerSQL Server does not provide a salt automatically. L'utilizzo ripetuto della stessa chiave RC4 è un errore noto che comporta una crittografia molto debole.Using the same RC4 key repeatedly is a well-known error that will result in very weak encryption. Per questo motivo le parole chiave RC4 e RC4_128 sono deprecate.Therefore, we have deprecated the RC4 and RC4_128 keywords. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Non usare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Per altre informazioni sugli algoritmi e sulla tecnologia di crittografia, vedere Concetti chiave sulla sicurezza nella Guida per gli sviluppatori di .NET Framework in MSDN.For more information about encryption algorithms and encryption technology, see Key Security Concepts in the .NET Framework Developer's Guide on MSDN.

Chiarimento relativo agli algoritmi DES:Clarification regarding DES algorithms:

  • La crittografia DESX è stata menzionata erroneamente.DESX was incorrectly named. Le chiavi simmetriche create con ALGORITHM = DESX utilizzano in realtà la crittografia TRIPLE DES con una chiave a 192 bit.Symmetric keys created with ALGORITHM = DESX actually use the TRIPLE DES cipher with a 192-bit key. L'algoritmo DESX non è disponibile.The DESX algorithm is not provided. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • Le chiavi simmetriche create con ALGORITHM = TRIPLE_DES_3KEY utilizzano TRIPLE DES con una chiave a 192 bit.Symmetric keys created with ALGORITHM = TRIPLE_DES_3KEY use TRIPLE DES with a 192-bit key.

  • Le chiavi simmetriche create con ALGORITHM = TRIPLE_DES utilizzano TRIPLE DES con una chiave a 128 bit.Symmetric keys created with ALGORITHM = TRIPLE_DES use TRIPLE DES with a 128-bit key.

Crittografia tramite una chiave simmetrica.Encrypting using a symmetric key. CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)
Crittografia tramite una chiave asimmetrica.Encrypting using an asymmetric key. CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)
Crittografia tramite certificato.Encrypting using a certificate. CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)
Crittografia dei file di database mediante Transparent Data Encryption.Encrypting database files using transparent data encryption. Transparent Data Encryption (TDE)Transparent Data Encryption (TDE)
Come crittografare una colonna di una tabella.How to encrypt one column of a table. Crittografia di una colonna di datiEncrypt a Column of Data

Vedere ancheSee Also

Crittografia di SQL Server SQL Server Encryption
Gerarchia di crittografiaEncryption Hierarchy