Pregunta

Quiero cifrar una columna existente en SQL Server 2005, el uso de una instrucción UPDATE, moviendo el contenido antiguo en la nueva columna de cifrado.

Así que tengo 2 opciones:. Simétricos y asimétricos

El problema que tengo es que con una clave simétrica, tengo que incrustar la contraseña en un SP con el fin de leer la columna como:

-- 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

Ahora bien, si quiero seleccionar los datos, todavía tengo que volver a abrir la llave con

open symmetric key sk_user_profile decryption by password = 'P@ssword!!';

¿Qué está venciendo el punto no es así, ya que estoy incrustación de una contraseña en texto plano dentro de un procedimiento almacenado.

Algunas preguntas

  1. ¿Hay alguna forma de evitar esto - es decir, la creación de un certificado con esta contraseña y luego en referencia al certificado lugar
  2. ¿Podría este certificado tienen que ser comprados (como SSL), o puedo crear mi propia?
  3. ¿Es este método escalable a través de bases de datos a prueba de más de clúster, es decir, el cifrado no se basa en la máquina, sólo la contraseña proporcionada. Por lo tanto, la conmutación por error todavía puede leer las contraseñas

Gracias por su ayuda

¿Fue útil?

Solución

Básicamente lo que hay que hacer es lo siguiente:

create certificate MyEncryptionCertificate with subject = 'MyCertificate'

create symmetric key MySymmetricKey with algorithm = aes_256 encryption by certificate MyEncryptionCertificate

Y a continuación:

open symmetric key MySymmetricKey decryption by certificate MyEncryptionCertificate

select encryptbykey(key_guid('MySymmetricKey'), 'tada')) EncryptedMessage

espero que este blog le ayudará a lo largo del camino.

SQL SERVER - Introducción a SQL Server de cifrado simétrico y clave de cifrado Tutorial con la escritura

Y también esta entrada del blog, que trata específicamente de los certificados en un entorno de conmutación por error.

Solución Uso de certificados de autenticación en servidores de producción

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top