Crittografia dei backup

Si applica a: SQL Server

Questo articolo fornisce una panoramica delle opzioni di crittografia per i backup di SQL Server. Vengono illustrati i dettagli di utilizzo, i vantaggi e le procedure consigliate per eseguire la crittografia durante il backup.

Panoramica

A partire da SQL Server 2014 (12.x), in SQL Server è possibile crittografare i dati durante la creazione di un backup. Specificando l'algoritmo di crittografia e il componente di crittografia (certificato o chiave asimmetrica) durante la creazione di un backup, è possibile creare un file di backup crittografato. Sono supportate tutte le destinazioni di archiviazione, in locale e Azure. Inoltre, le opzioni di crittografia possono essere configurate per le operazioni di Backup gestito di SQL Server in Microsoft Azure, una nuova funzionalità introdotta con SQL Server 2014 (12.x).

Per crittografare durante il backup, è necessario specificare un algoritmo di crittografia e un componente di crittografia per proteggere la chiave di crittografia. Di seguito sono riportate le opzioni di crittografia supportate:

  • Algoritmo di crittografia: gli algoritmi di crittografia supportati sono AES 128, AES 192, AES 256 e Triple DES

  • Componente di crittografia: certificato o chiave asimmetrica

Attenzione

È molto importante eseguire il backup del certificato o della chiave asimmetrica e preferibilmente in un percorso diverso dal file di backup utilizzato per la crittografia. Senza il certificato o la chiave asimmetrica, non è possibile ripristinare il backup, rendendo il file di backup inutilizzabile. Anche i certificati archiviati in un database di sistema indipendente devono essere sottoposti a backup.

Ripristino del backup crittografato: durante le operazioni di ripristino di SQL Server non è necessario specificare alcun parametro di crittografia. È necessario che la chiave asimmetrica o il certificato utilizzato per crittografare il file di backup sia disponibile nell'istanza in cui viene eseguito il ripristino. L'account utente che esegue il ripristino deve disporre delle autorizzazioni VIEW DEFINITION per il certificato o la chiave. Se si esegue il ripristino del backup crittografato in un'istanza diversa, è necessario assicurarsi che il certificato sia disponibile in tale istanza.
La sequenza per ripristinare un database crittografato in una nuova posizione è la seguente:

  1. BACKUP CERTIFICATE (Transact-SQL) nel database precedente
  2. CREATE MASTER KEY (Transact-SQL) nel nuovo database master del percorso
  3. CREATE CERTIFICATE (Transact-SQL) dal certificato di backup del vecchio database importato in un percorso nel nuovo server
  4. Ripristino di un database in una nuova posizione (SQL Server)

Se si esegue il ripristino di un backup da un database crittografato con TDE, è necessario che il certificato TDE sia disponibile nell'istanza in cui viene eseguito il ripristino. Per altre informazioni, vedere Spostare un database protetto da TDE in un'altra istanza di SQL Server.

Vantaggi

  1. La crittografia dei backup dei database facilita la protezione dei dati: in SQL Server è possibile scegliere di crittografare i dati di backup durante la creazione di un backup.

  2. La crittografia può essere utilizzata anche per i database crittografati tramite TDE.

  3. La crittografia è supportata per i backup eseguiti dal backup gestito di SQL server in Microsoft Azure, assicurando una maggiore sicurezza per i backup esterni.

  4. Questa funzionalità supporta più algoritmi di crittografia fino ad AES a 256 bit, offrendo la possibilità di scegliere l'algoritmo più adatto alle specifiche esigenze.

  5. È possibile integrare le chiavi di crittografia con i provider EKM (Extensible Key Management).

Prerequisiti

Di seguito sono riportati i prerequisiti per crittografare un backup:

  1. Creare una chiave master del database per il database master: la chiave master del database (DMK) è una chiave simmetrica utilizzata per proteggere le chiavi private dei certificati e le chiavi asimmetriche presenti nel database. Per altre informazioni, vedere Chiavi di crittografia del database e di SQL Server (Motore di database).

  2. Creare un certificato o una chiave asimmetrica da utilizzare per la crittografia dei backup. Per altre informazioni sulla creazione di un certificato, vedere CREATE CERTIFICATE (Transact-SQL). Per altre informazioni sulla creazione di una chiave asimmetrica, vedere CREATE ASYMMETRIC KEY (Transact-SQL).

    Importante

    Sono supportate solo le chiavi asimmetriche che risiedono in un provider EKM (Extensible Key Management).

Limiti

Di seguito sono riportate le restrizioni applicate alle opzioni di crittografia:

  • Se si utilizza la chiave asimmetrica per crittografare i dati di backup, sono supportate solo le chiavi asimmetriche che risiedono nel provider EKM.

  • SQL Server Express e SQL Server Web non supportano la crittografia durante il backup. È tuttavia supportato il ripristino da un backup crittografato in un'istanza di SQL Server Express o SQL Server Web.

  • Nelle versioni precedenti di SQL Server non possono leggere i backup crittografati.

  • L'opzione Accoda al set di backup esistente non è supportata per i backup crittografati.

Autorizzazioni

L'account che esegue operazioni di backup su un database crittografato richiede autorizzazioni specifiche.

  • Ruolo db_backupoperator a livello di database per il database di cui si esegue il backup. Questo elemento è obbligatorio indipendentemente dalla crittografia.

  • Autorizzazione VIEW DEFINITION sul certificato nel database master.

    Nell'esempio seguente vengono concesse le autorizzazioni appropriate per il certificato.

    USE [master]
    GO
    GRANT VIEW DEFINITION ON CERTIFICATE::[<SERVER_CERT>] TO [<db_account>]
    GO
    

Nota

L'accesso al certificato TDE non è necessario per eseguire il backup o il ripristino di un database protetto con TDE.

Metodi di crittografia dei backup

Nelle sezioni seguenti viene fornita una breve introduzione ai passaggi per crittografare i dati durante il backup. Per una procedura dettagliata completa per la crittografia del backup con Transact-SQL, vedere Creare un backup crittografato.

Usare SQL Server Management Studio

È possibile crittografare un backup durante la creazione del backup di un database in una delle finestre di dialogo seguenti:

  1. Backup database (pagina Opzioni di backup) Nella pagina Opzioni di backup è possibile selezionare Crittografia e specificare l'algoritmo di crittografia e il certificato o la chiave asimmetrica da usare per la crittografia.

  2. Utilizzo di Creazione guidata piano di manutenzione Quando si seleziona un'attività di backup, nella scheda Opzioni della pagina Definizione attività Backup database () è possibile selezionare Crittografia backupe specificare l'algoritmo di crittografia e il certificato o la chiave da usare per la crittografia.

Usare Transact-SQL

Di seguito è riportata un'istruzione Transact-SQL di esempio per crittografare il file di backup:

BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'
WITH
  COMPRESSION,
  ENCRYPTION
   (
   ALGORITHM = AES_256,
   SERVER CERTIFICATE = BackupEncryptCert
   ),
  STATS = 10
GO

Per la sintassi completa dell'istruzione Transact-SQL, vedere BACKUP (Transact-SQL).

Usare PowerShell

Questo esempio illustra come creare le opzioni di crittografia, usate come valore di parametro nel cmdlet Backup-SqlDatabase per creare un backup crittografato.

$encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"

Backup-SqlDatabase -ServerInstance . -Database "<myDatabase>" -BackupFile "<myDatabase>.bak" -CompressionOption On -EncryptionOption $encryptionOption

Creare un backup del certificato e delle chiavi di crittografia in un percorso diverso dal computer locale in cui è installata l'istanza. Tenendo in considerazione gli scenari di ripristino di emergenza, è consigliabile archiviare un backup del certificato o della chiave in una posizione esterna. Non è possibile ripristinare un backup crittografato senza il certificato utilizzato per crittografarlo.

Per ripristinare un backup crittografato, è necessario che il certificato originale utilizzato durante la creazione del backup con l'identificazione digitale corrispondente sia disponibile nell'istanza in cui viene eseguito il ripristino. Pertanto, il certificato non deve essere rinnovato alla scadenza né modificato in alcun modo. Il rinnovo può comportare un aggiornamento del certificato con conseguente modifica dell'identificazione digitale, rendendo pertanto il certificato non valido per il file di backup. L'account che esegue il ripristino deve disporre delle autorizzazioni VIEW DEFINITION per la chiave asimmetrica o il certificato utilizzato per eseguire la crittografia durante il backup.

I backup del database del gruppo di disponibilità vengono in genere eseguiti nella replica di backup preferita. Se si ripristina un backup in una replica diversa da dove è stato eseguito il backup, verificare che il certificato originale utilizzato per il backup sia disponibile nella replica a cui si esegue il ripristino.

Se per il database è abilitata la funzionalità TDE, scegliere certificati o chiavi asimmetriche diverse per crittografare il database e il backup in modo da aumentare il livello di sicurezza.