Come crittografare colonne in SQL Server 2008

December 30

Come crittografare colonne in SQL Server 2008


SQL Server 2008 è un server di database modello relazionale prodotto da Microsoft. Offre caratteristiche come permettendo ai dati di essere auto-tuning, auto-organizzazione e di auto-mantenimento. Offre inoltre tempi di fermo vicino allo zero. Esso utilizza il nuovo tipo di dati FILESTREAM, che può essere usato per aprire qualsiasi file memorizzato nel suo database. La crittografia utilizza algoritmi per proteggere i dati in modo che solo gli utenti specificati possono leggerlo. SQL Server 2008 può essere utilizzato per mantenere i dati utilizzati in transito su reti o le informazioni in un luogo sicuro. Crittografia colonne in SQL Server 2008 richiede pochi passaggi per configurare.

istruzione

1 Aprire un terminale nel server SQL e digitare il seguente comando:

USE AdventureWorks2008R2;

ANDARE

Se non vi è alcuna chiave master, crearne uno ora.

SE NON ESISTE

(SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)

Crea master chiave di crittografia

PASSWORD = '# 23987hxJKL969 ghf0% 94467GRkjg5k3fd117r $$ # 1946kcj $ n44nhdlj'

ANDARE

Crea certificato HumanResources037

Con oggetto = 'Il numero dei dipendenti di previdenza sociale';

ANDARE

CREATE chiave simmetrica SSN_Key_01

WITH ALGORITHM = AES_256

Crittografia CERTIFICATO HumanResources037;

ANDARE

USO [AdventureWorks2008R2];

ANDARE

Creare una colonna in cui memorizzare i dati crittografati.

ALTER TABLE HumanResources.Employee

ADD EncryptedNationalIDNumber varbinary(128);

ANDARE

Aprire la chiave simmetrica con cui per crittografare i dati.

APERTO chiave simmetrica SSN_Key_01

Decrittografia CERTIFICATO HumanResources037;

Crittografare il valore nella colonna NationalIDNumber con simmetrica

SSN_Key_01 chiave. Salva il risultato nella colonna EncryptedNationalIDNumber.

UPDATE HumanResources.Employee

SET EncryptedNationalIDNumber = EncryptByKey (Key_GUID ( 'SSN_Key_01'), NationalIDNumber);

ANDARE

Verificare la crittografia. In primo luogo, aprire la chiave simmetrica con cui decrittografare i dati.

APERTO chiave simmetrica SSN_Key_01

Decrittografia CERTIFICATO HumanResources037;

ANDARE

Ora elencare l'ID originale, l'ID criptato, e il testo cifrato decifrati. Se la decrittografia ha funzionato, l'originale e la ID decifrati corrisponderà.

SELEZIONARE NationalIDNumber, EncryptedNationalIDNumber

AS 'Encrypted ID Number',

CONVERT (nvarchar, DecryptByKey (EncryptedNationalIDNumber))

AS 'Numero ID decriptati'

DA HumanResources.Employee;

ANDARE.

2 Aggiungere un autenticatore alla crittografia con questo comando:

USE AdventureWorks2008R2;

Se non vi è alcuna chiave master, crearne uno ora.

SE NON ESISTE

(SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)

Crea master chiave di crittografia

PASSWORD = '# 23987hxJKL95QYV4369 ghf0% lekjg5k3fd117r $$ # 1946kcj $ n44ncjhdlj'

ANDARE

Crea certificato Sales09

Con oggetto = 'I numeri di carta di credito del cliente';

ANDARE

CREATE chiave simmetrica CreditCards_Key11

WITH ALGORITHM = AES_256

Crittografia CERTIFICATO Sales09;

ANDARE

Creare una colonna in cui memorizzare i dati crittografati.

ALTER TABLE Sales.CreditCard

ADD CardNumber_Encrypted varbinary(128);

ANDARE

Aprire la chiave simmetrica con cui per crittografare i dati.

APERTO chiave simmetrica CreditCards_Key11

Decrittografia CERTIFICATO Sales09;

Crittografare il valore nella colonna CardNumber utilizzando il CreditCards_Key11 chiave simmetrica. Salva il risultato nella colonna CardNumber_Encrypted.

UPDATE Sales.CreditCard

SET CardNumber_Encrypted = EncryptByKey (Key_GUID ( 'CreditCards_Key11'), CardNumber, 1, HashBytes ( 'SHA1', convertire (varbinary, CreditCardID)));

ANDARE

Verificare la crittografia. In primo luogo, aprire la chiave simmetrica con cui decrittografare i dati.

APERTO chiave simmetrica CreditCards_Key11

Decrittografia CERTIFICATO Sales09;

ANDARE

Ora elencare il numero originale della carta, il numero della carta criptata, e il testo cifrato decifrati. Se la decrittografia ha funzionato, il numero originale corrisponderà al numero decifrati.

SELEZIONARE CardNumber, CardNumber_Encrypted

AS 'Encrypted card number', CONVERT(nvarchar,

DecryptByKey (CardNumber_Encrypted, 1,

HashBytes ( 'SHA1', convertire (varbinary, CreditCardID))))

AS 'il numero della carta decriptati' DA Sales.CreditCard;

ANDARE.

3 Verificare di aver inserito i comandi corretti e confermare i dati crittografati tentando di accedere senza autenticazione.