Come utilizzare la crittografia sicura di una colonna esistente in SQL Server 2005
-
02-10-2019 - |
Domanda
Voglio crittografare una colonna esistente in SQL Server 2005, utilizzando un'istruzione UPDATE, spostando il vecchio contenuto nella nuova colonna crittografata.
Così ho 2 scelte:. Simmetrici e asimmetrici
Il problema che ho è che con una chiave simmetrica, devo incorporare la password in un SP per leggere la colonna come:
-- Create key (at some earlier point)
create symmetric key sk_user_profile with algorithm = aes_192 encryption by password = 'P@ssword!!';
-- Now encrypt the contents
-- open the key so that we can use it
open symmetric key sk_user_profile decryption by password = 'P@ssword!!';
UPDATE users
SET password_enc = encryptbykey(key_guid('sk_user_profile'), password_plain, 1, user_id)
close symmetric key sk_user_profile
Ora, se voglio selezionare i dati, ho ancora a riaprire la chiave con
open symmetric key sk_user_profile decryption by password = 'P@ssword!!';
Che è sconfiggere il punto non è vero, come sto embedding una password di testo semplice all'interno di una stored procedure.
Alcune domande
- C'è un modo per aggirare questo? - vale a dire la creazione di un certificato con questa password e quindi facendo riferimento al certificato invece
- Sarebbe questo certificato devono essere acquistati (come SSL), o posso creare il mio?
- Questo metodo è scalabile su database fail-over in cluster, vale a dire la crittografia non si basa sulla macchina, solo la password fornita. Pertanto il failover può ancora leggere le password
Grazie per il vostro aiuto
Soluzione
In sostanza ciò che devi fare è questo:
create certificate MyEncryptionCertificate with subject = 'MyCertificate'
create symmetric key MySymmetricKey with algorithm = aes_256 encryption by certificate MyEncryptionCertificate
E poi:
open symmetric key MySymmetricKey decryption by certificate MyEncryptionCertificate
select encryptbykey(key_guid('MySymmetricKey'), 'tada')) EncryptedMessage
Spero che questo blog vi aiuterà a lungo la strada.
E anche questo blog, che si occupa specificamente di certificati in un ambiente di failover.
soluzione che utilizza certificati di autenticazione sul server di produzione