Как использовать безопасное шифрование существующего столбца в SQL Server 2005 - PullRequest
1 голос
/ 15 сентября 2010

Я хочу зашифровать существующий столбец в SQL Server 2005, используя инструкцию UPDATE, перемещая старое содержимое в новый зашифрованный столбец.

Поэтому у меня есть 2 варианта: Симметричный и Асимметричный.

Проблема, с которой я столкнулся, заключается в том, что с симметричным ключом мне нужно вставить пароль в SP, чтобы прочитать столбец следующим образом:

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

Теперь, если я хочу выбрать данные, я все ещепридется заново открыть ключ с помощью

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

Что побеждает точку, не так ли, поскольку я встраиваю простой текстовый пароль в хранимую процедуру.

Некоторые вопросы

  1. Есть ли способ обойти это - т.е. создать сертификат с этим паролем и затем вместо него ссылаться на сертификат?
  2. Придется ли приобретать этот сертификат (например, SSL), или можноЯ создаю свою собственную?
  3. Масштабируется ли этот метод в отказоустойчивых кластеризованных базах данных, т. Е. Шифрование не основано на компьютере, только предоставляется пароль.Поэтому при сбое все равно можно прочитать пароли

Спасибо за помощь

1 Ответ

1 голос
/ 15 сентября 2010

В основном вам нужно сделать следующее:

create certificate MyEncryptionCertificate with subject = 'MyCertificate'

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

А потом:

open symmetric key MySymmetricKey decryption by certificate MyEncryptionCertificate

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

Надеюсь, этот блог поможет вам в этом.

SQL SERVER - Введение в руководство по шифрованию SQL Server и шифрованию симметричного ключа со сценарием

А также эта запись в блоге, посвященная сертификатам в среде аварийного переключения.

Решение с использованием аутентификации сертификатов на производственных серверах

...