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 di dati che non possono essere annullate in modo semplice 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 in linea 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 è più avanzata rispetto alla crittografia simmetrica a parità di lunghezza delle chiavi, 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'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 non vengono più utilizzate. Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa caratteristica 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 caratteristica 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.