SQL Server - шифрование данных в столбце таблицы базы данных - PullRequest
2 голосов
/ 18 марта 2011

У меня есть сценарий проблемы с шифрованием или шифрованием / дешифрованием данных в SQL Server 2005.

Сценарий:

  • В базе данных есть конкретная таблица
  • В таблице есть столбец, скажем, "Кредитная карта"
  • Требуется, чтобы содержимое или данные в этом столбце были зашифрованы

Требуемое (вероятное) решение:

  • Данные, которые вставляются в столбец этой таблицы, должны быть зашифрованы, т. Е. Недоступны для чтения людьми, выполняющими прямые запросы к базе данных и / или таблице; или только с помощью специальной логики дешифрования, которая требует какой-то ключ
  • При чтении данных в любом приложении метод дешифрования должен быть простым, возможно, основанным на KEY
  • Процесс или методология должны быть простыми в использовании
  • но трудно сломать

Пожалуйста, дайте мне некоторые предложения или решения в этом отношении.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 марта 2011
  • вы шифруете данные с помощью симметричного ключа
  • вы шифруете симметричный ключ с помощью сертификата
  • вы шифруете сертификат с помощью пароля
  • периодически генерируетеновый симметричный ключ для шифрования новых данных
  • Природно вы поворачиваете сертификат и повторно шифруете симметричные ключи с новыми сертификатами, удаляя старый сертификат

Приложение запрашивает пароль у пользователя иоткрывает сертификат в сеансе.Затем он использует DECRYPTKEYBYAUTOCERT для шифрования данных.Это общий отраслевой стандарт.Он защищает данные и защищает от случайной потери носителя, а также доступа от лица, не знающего пароль.

Вы найдете много плохих советов по его теме.Любая схема, которая «автоматизирована» и не запрашивает у пользователя пароль для расшифровки, неверна.Если вы хотите «автоматическое» шифрование или дешифрование, вам следует изучить Прозрачное шифрование данных , которое защищает от случайной потери носителя.TDE не защищает от просмотра пользователями других данных, если они имеют права доступа.

2 голосов
/ 18 марта 2011

Попробуйте заглянуть в функцию DecryptByKey .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...