Scelta di un algoritmo di crittografia

La crittografia è una delle molte difese in profondità che gli amministratori possono utilizzare per proteggere un'istanza di SQL Server.

Gli algoritmi di crittografia definiscono trasformazioni dei dati che non possono essere invertite facilmente dagli utenti non autorizzati. SQL 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.

Nessun algoritmo è ideale in tutte le situazioni e la valutazione dei vantaggi relativi a ogni algoritmo esula dall'ambito della documentazione online di SQL Server. Sono comunque validi i principi generali seguenti:

  • La crittografia avanzata utilizza in genere una quantità di risorse della CPU maggiore rispetto alla crittografia vulnerabile.

  • Le chiavi lunghe consentono in genere una crittografia più avanzata rispetto a quelle brevi.

  • La crittografia asimmetrica è meno avanzata della crittografia simmetrica che usa la stessa lunghezza di chiave, ma è relativamente lenta.

  • Le crittografie a blocchi con chiavi lunghe sono più avanzate rispetto alle crittografie a flussi.

  • Le password lunghe e complesse sono più avanzate rispetto alle password brevi.

  • Se si crittografano molti dati, è necessario crittografarli tramite una chiave simmetrica e crittografare la chiave simmetrica con una asimmetrica.

  • I dati crittografati non possono essere compressi, ma i dati compressi possono essere crittografati. Se si utilizza la compressione, è necessario comprimere i dati prima di crittografarli.

Nota importanteImportante

L'algoritmo RC4 è supportato solo per motivi di compatibilità con le versioni precedenti. È possibile crittografare il nuovo materiale utilizzando RC4 o RC4_128 solo quando il livello di compatibilità del database è 90 o 100. (Non consigliato.) Utilizzare un algoritmo più recente, ad esempio uno degli algoritmi AES. In SQL Server 2012 il materiale crittografato utilizzando RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.

L'utilizzo ripetuto della stessa funzione KEY_GUID RC4 o RC4_128 su blocchi di dati diversi produrrà la stessa chiave RC4 perché SQL Server non fornisce automaticamente un valore salt. L'utilizzo ripetuto della stessa chiave RC4 è un errore noto che comporta una crittografia molto debole. Per questo motivo le parole chiave RC4 e RC4_128 sono deprecate. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata.

Per ulteriori informazioni sugli algoritmi e sulla tecnologia di crittografia, vedere Key Security Concepts nella Guida per gli sviluppatori di .NET Framework in MSDN (informazioni in lingua inglese).

Chiarimento relativo agli algoritmi DES:

  • La crittografia DESX è stata menzionata erroneamente. Le chiavi simmetriche create con ALGORITHM = DESX utilizzano in realtà la crittografia TRIPLE DES con una chiave a 192 bit. L'algoritmo DESX non è disponibile. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

  • Le chiavi simmetriche create con ALGORITHM = TRIPLE_DES_3KEY utilizzano TRIPLE DES con una chiave a 192 bit.

  • Le chiavi simmetriche create con ALGORITHM = TRIPLE_DES utilizzano TRIPLE DES con una chiave a 128 bit.

Attività correlate

Crittografia tramite una chiave simmetrica.

CREATE SYMMETRIC KEY (Transact-SQL)

Crittografia tramite una chiave asimmetrica.

CREATE ASYMMETRIC KEY (Transact-SQL)

Crittografia tramite certificato.

CREATE CERTIFICATE (Transact-SQL)

Crittografia dei file di database mediante Transparent Data Encryption.

Transparent Data Encryption (TDE)

Come crittografare una colonna di una tabella.

Crittografia di una colonna di dati

Vedere anche

Concetti

Crittografia di SQL Server

Gerarchia di crittografia