Condividi tramite


Scegliere un algoritmo di crittografia

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

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

Gli algoritmi di crittografia definiscono trasformazioni dei dati che non possono essere facilmente invertite da utenti non autorizzati. Amministratori e sviluppatori possono scegliere tra diversi algoritmi in SQL Server, inclusi 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.

A partire da SQL Server 2016 (13.x), tutti gli algoritmi diversi da AES_128, AES_192 e AES_256 sono deprecati. Per usare algoritmi meno recenti (sconsigliato), è necessario impostare il database sul livello di compatibilità del database 120 o su un livello inferiore.

Come scegliere l'algoritmo corretto

Nessun algoritmo è ideale in tutte le situazioni e la valutazione dei vantaggi relativi a ogni algoritmo esula dall'ambito di questo articolo. 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ù lenta della crittografia simmetrica.

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

  • La crittografia simmetrica è consigliata quando la chiave viene archiviata solo in locale. La crittografia asimmetrica è consigliata quando le chiavi devono essere condivise in rete.

  • Se si crittografano molti dati, è necessario usare 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.

Per ulteriori informazioni sugli algoritmi e sulla tecnologia di crittografia, vedere Concetti chiave sulla sicurezza.

Algoritmo RC4 deprecato

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

L'uso ripetuto della stessa funzione RC4 o RC4_128 KEY_GUID su blocchi di dati diversi produce la stessa chiave RC4 perché SQL Server non specifica 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 nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

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 nelle versioni future di SQL Server. Evitare di usare 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.