Scelta di un algoritmo di crittografia

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

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 facilmente invertite da 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.

Nota

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 uno inferiore.

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 è più lenta della crittografia simmetrica.

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

  • La crittografia simmetrica è in genere 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 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.

Importante

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 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. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

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.

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 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.

Attività Type
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

Crittografia di SQL Server
Gerarchia di crittografia