Condividi tramite


Gerarchia di crittografia

In SQL Server i dati vengono crittografati in base ad una particolare gerarchia di crittografia e infrastruttura di gestione delle chiavi. Ciascun livello crittografa il livello sottostante utilizzando una combinazione di certificati, chiavi asimmetriche e chiavi simmetriche. Le chiavi asimmetriche e simmetriche possono essere archiviate al di fuori di SQL Server in un modulo EKM (Extensible Key Management).

Nella figura seguente viene indicato come nella gerarchia di crittografia ogni livello crittografi il livello sottostante e vengono visualizzate le configurazioni di crittografia più comuni. L'accesso all'inizio della gerarchia è in genere protetto da una password.

Visualizza alcune combinazioni di crittografia in uno stack

Tenere presenti i concetti seguenti:

  • Per ottenere prestazioni ottimali, crittografare i dati utilizzando chiavi simmetriche anziché certificati o chiavi asimmetriche.

  • Le chiavi master del database sono protette dalla chiave master del servizio. La chiave master del servizio viene creata dal programma di installazione di SQL Server e viene crittografata tramite l'API di protezione dati di Windows (DPAPI).

  • Sono possibili altre gerarchie di crittografia che includono livelli aggiuntivi.

  • Un modulo EKM contiene chiavi simmetriche o asimmetriche al di fuori di SQL Server.

  • Transparent Data Encryption (TDE) deve utilizzare una chiave simmetrica denominata chiave di crittografia del database, che è protetta da un certificato protetto a sua volta dalla chiave master del database master o da una chiave asimmetrica archiviata in un modulo EKM.

  • La chiave master del servizio e tutte le chiavi master del database sono chiavi simmetriche.

Le stesse informazioni vengono illustrate in modo diverso nella figura seguente.

Visualizza alcune combinazioni di crittografia in una ruota

In questo diagramma vengono illustrati i concetti aggiuntivi seguenti:

  • In questa illustrazione le frecce indicano gerarchie di crittografia comuni.

  • Le chiavi simmetriche e asimmetriche in EKM possono proteggere l'accesso alle chiavi simmetriche e asimmetriche archiviate in SQL Server. La linea punteggiata associata a EKM indica che le chiavi in EKM potrebbero sostituire le chiavi simmetriche e asimmetriche archiviate in SQL Server.

Meccanismi di crittografia

SQL Server comprende i meccanismi di crittografia seguenti:

  • Funzioni Transact-SQL

  • Chiavi asimmetriche

  • Chiavi simmetriche

  • Certificati

  • Transparent Data Encryption

Funzioni Transact-SQL

Singoli elementi possono essere crittografati mentre vengono inseriti o aggiornati tramite funzioni Transact-SQL. Per ulteriori informazioni, vedere ENCRYPTBYPASSPHRASE (Transact-SQL) e DECRYPTBYPASSPHRASE (Transact-SQL).

Certificati

Un certificato a chiave pubblica, normalmente chiamato semplicemente un certificato, è un'istruzione firmata digitalmente che associa il valore di una chiave pubblica all'identità di una persona, un dispositivo o un servizio che detiene la corrispondente chiave privata. I certificati vengono rilasciati e firmati da un'autorità di certificazione (CA). L'entità che riceve un certificato da un'autorità di certificazione è il soggetto del certificato. Normalmente, i certificati contengono le informazioni seguenti.

  • Chiave pubblica del soggetto.

  • Informazioni di identificazione del soggetto, come ad esempio il nome e l'indirizzo di posta elettronica.

  • Periodo di validità. È il periodo di tempo durante il quale il certificato è considerato valido.

    Un certificato è valido solo per il periodo di tempo specificato nel certificato; e ogni certificato contiene le date Valido dal e Valido fino al. Queste date definiscono i limiti del periodo di validità. Quando il periodo di validità di un certificato viene superato, il soggetto del certificato scaduto deve richiedere un nuovo certificato.

  • Informazioni di identificazione dell'emittente

  • Firma digitale dell'emittente.

    Questa firma attesta la validità dell'associazione tra la chiave pubblica e le informazioni di identificazione del soggetto. (L'apposizione di una firma digitale a informazioni comporta la trasformazione delle informazioni, e di alcune informazioni segrete detenute dal mittente, in un tag chiamato firma.)

Il vantaggio principale dei certificati è quello di evitare che gli host debbano mantenere un gruppo di password per singoli soggetti. L'host non deve fare altro che stabilire una relazione di trust con l'emittente di un certificato, che successivamente può firmare un numero illimitato di certificati.

Quando un host, come ad esempio un server Web protetto, designa un emittente come autorità radice affidabile, l'host implicitamente considera affidabili i criteri che l'emittente ha utilizzato per stabilire le associazioni relative ai certificati emessi. In effetti, l'host fa affidamento all'emittente per la verifica dell'identità del soggetto del certificato. L'host designa un emittente come autorità radice affidabile collocando il certificato autofirmato dell'emittente, contenente la chiave pubblica dell'emittente, nell'archivio certificati delle autorità di certificazione affidabili del computer host. Le autorità di certificazione intermedie o subordinate vengono considerate affidabili solo se dispongono di un percorso di certificazione valido ottenuto da un'autorità di certificazione radice affidabile.

L'emittente può revocare un certificato prima che scada. La revoca di un certificato annulla l'associazione tra la chiave pubblica e l'identità dichiarata nel certificato. Ciascun emittente mantiene un elenco di revoche di certificati che può essere utilizzato da programmi per la verifica della validità di un particolare certificato.

I certificati autofirmati creati da SQL Server sono conformi allo standard X.509 e supportano i campi X.509 v1.

Chiavi asimmetriche

Una chiave asimmetrica è costituita da una chiave privata e dalla corrispondente chiave pubblica. Ogni chiave può decrittografare dati crittografati dall'altra chiave. La crittografia e la decrittografia asimmetrica richiedono un uso intensivo delle risorse ma offrono un livello di protezione superiore a quello della crittografia simmetrica. Una chiave asimmetrica può essere utilizzata per crittografare una chiave simmetrica da memorizzare in un database.

Chiavi simmetriche

Una chiave simmetrica è una chiave che viene utilizzata sia per la crittografia che per decrittografia. La crittografia e la decrittografia tramite una chiave simmetrica sono veloci e sono quindi adatte per essere utilizzate in modo ricorrente per informazioni riservate contenute in database.

Transparent Data Encryption

Transparent Data Encryption è un caso speciale di crittografia che utilizza una chiave simmetrica. Transparent Data Encryption crittografa un intero database utilizzando una chiave simmetrica denominata chiave di crittografia del database. La chiave di crittografia del database è protetta da altri certificati o chiavi, a loro volta protetti dalla chiave master del database o da una chiave asimmetrica archiviata in un modulo EKM. Per ulteriori informazioni, vedere Informazioni sulla crittografia trasparente dei dati (TDE, Transparent Data Encryption).