Scegliere un algoritmo di crittografia

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di sistemi analitici (PDW)

La crittografia è una delle diverse difese disponibili per l'amministratore che vuole proteggere un'istanza di SQL Server.

Gli algoritmi di crittografia definiscono trasformazioni dei dati che non possono essere facilmente annullate da utenti non autorizzati. Amministrazione istrator e sviluppatori possono scegliere tra diversi algoritmi in SQL Server, tra cui DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128 bit RC4, 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_192e 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 singolo è ideale per tutte le situazioni e le linee guida sui meriti di ognuno non rientrano nell'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 crittografa un numero elevato di dati, è necessario crittografare i dati usando una chiave simmetrica e crittografare la chiave simmetrica con una chiave 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 altre informazioni sugli algoritmi di crittografia 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. Il nuovo materiale può essere crittografato solo usando RC4 o RC4_128 quando il database è nel livello di compatibilità 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 decrittografato in qualsiasi livello di compatibilità.

L'uso ripetuto dello stesso RC4 o RC4_128KEY_GUID su blocchi di dati diversi comporta la stessa chiave RC4 perché SQL Server non fornisce automaticamente un salt. L'uso ripetuto della stessa chiave RC4 è un errore noto che causa la crittografia debole. Di conseguenza, sono state deprecate le RC4 parole chiave e RC4_128 . 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 sugli algoritmi DES

La crittografia DESX è stata menzionata erroneamente. Le chiavi simmetriche create con ALGORITHM = DESX usano effettivamente la crittografia Triple DES con una chiave a 192 bit. L'algoritmo DESX non viene fornito. 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.

Chiavi simmetriche create con ALGORITHM = TRIPLE_DES_3KEY Triple DES con una chiave a 192 bit.

Chiavi simmetriche create con ALGORITHM = TRIPLE_DES Triple DES con una chiave a 128 bit.