Opzioni di crittografia a livello di cella MS SQL Server [chiuso]

-1

Recentemente, ho avuto il compito di fare qualche ricerca sulla crittografia dei dati a livello di cella. Ho provato a usare il tasto Symmetric (per passphrase) & la seconda opzione che ho preso è la chiave simmetrica (per certificato). Ho bisogno che la crittografia venga eseguita solo su 3 colonne all'interno della tabella dei dati relativa al cliente.

Esempio: -

ColumnX1 - Char(9) datatype  
ColumnX2 - Char(9) datatype 
ColumnX3 - Char(9) datatype

Tre nuove colonne: -

ColumnX1Crypt - varbinary(200) datatype  
ColumnX2Crypt - varbinary(200) datatype 
ColumnX3Crypt - varbinary(200) datatype

Finora, ha funzionato bene quando ho usato l'opzione di usare i certificati. Ma ho alcuni dubbi e domande sull'uso dei certificati.

Le mie domande: -

a) Come eseguo la creazione di una chiave master, certificato e amp; il simmetrico in varie regioni di test come DEV, UAT, QA e infine alla produzione? Se preparo lo script sql & chiedere al DBA di eseguirlo in varie regioni, andrà bene o ho bisogno di trasmettere alcune informazioni aggiuntive insieme ad esso. ? Si prega di suggerire.

b) Devo mantenere i backup della chiave principale, certificato e amp; la chiave simmetrica per ogni regione come DEV, UAT, QA ecc.? Se creo una chiave principale con la stessa password in tutte le regioni. Andrà bene? I file di backup dei vari oggetti presi nel file Prod db funzioneranno nelle regioni inferiori db?

c) Ci sono degli svantaggi nell'utilizzare l'opzione Certificato con la chiave simmetrica?

d) Quale algoritmo è meglio scegliere? Nel mio caso, la lunghezza massima dei dati è di 9 caratteri per la crittografia.

Alcune istruzioni Misc utilizzate in MS SQL Server: -

CREATE MASTER KEY ENCRYPTION BY 
PASSWORD = '23987hxJKL#1946kcj$n44ncjhdlj'

CREATE CERTIFICATE Partner_Cert
   WITH SUBJECT = 'Certificate For Encryption',
   Expiry_Date = '20180101';

CREATE SYMMETRIC KEY PARTNER_ENCR_KEY
    WITH ALGORITHM = TRIPLE_DES
    ENCRYPTION BY CERTIFICATE [Partner_Cert]

Per favore suggerisci le tue opinioni per l'approccio soln.

    
posta Karan 30.10.2015 - 09:20
fonte

1 risposta

0

a) La tua sceneggiatura mi sembra buona. Vuoi solo aggiungere l'autenticazione in questo script, in modo che solo quell'utente possa accedere alla chiave & certificato. Anche alcune piccole modifiche. Si prega di cambiare la chiave, non pubblicare la tua chiave reale sul forum o qualsiasi tipo di siti web.

CREATE MASTER KEY ENCRYPTION BY 
PASSWORD = '23987hxJKL#1946kcj$n44ncjhdlj'

CREATE CERTIFICATE Partner_Cert
   WITH SUBJECT = 'Certificate For Encryption',
   START_DATE = '1/1/2011', 
   EXPIRY_DATE = '1/1/2100'

CREATE SYMMETRIC KEY PARTNER_ENCR_KEY
    WITH ALGORITHM = TRIPLE_DES
    ENCRYPTION BY CERTIFICATE [Partner_Cert]


GRANT CONTROL ON SYMMETRIC KEY :: Encryptmy TO myUser;
GRANT CONTROL ON CERTIFICATE::Partner_Cert  TO myUser; 

b) Sì, è necessario il backup di ogni chiave e amp; certificato. Non sai mai quando lo perdi. È meglio avere un backup. Puoi mantenere la stessa chiave per Dev e QA, preferisco la chiave separata per la produzione

c) Non lo so.

d) Puoi anche usare "TRIPLE_DES_3KEY". Penso che "TRIPLE_DES" sia anche abbastanza buono.

    
risposta data 30.10.2015 - 16:34
fonte

Leggi altre domande sui tag