Condividi tramite


Scelta di un algoritmo di crittografia

La crittografia è una delle diverse difese avanzate 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 invertite da utenti non autorizzati. SQL Server consente agli amministratori e agli sviluppatori di scegliere tra diversi algoritmi, tra cui DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4, RC4 a 128 bit, DESX, AES a 128 bit, AES a 192 bit e AES a 256 bit.

Nessun singolo algoritmo è ideale per tutte le situazioni e le linee guida sui meriti di ognuno non rientrano nell'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.

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 e materiale superiore crittografato con RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.

L'uso ripetuto dello stesso RC4 o RC4_128 KEY_GUID su blocchi di dati diversi comporterà la stessa chiave RC4 perché SQL Server non fornisce automaticamente un 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 usare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le 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.

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