none
шифрование данных поля в MS SQL Server 2005 RRS feed

  • Вопрос

  • Здравствуйте.

    Пожалуйста, подскажите по такому вопросу.

    Необходимо шифровать данные в одном поле в таблице базы данных MS SQL Server 2005. Причем желательно автоматически шифровать и расшифровывать. Как шифровать, я примерно догадываюсь - на UPDATE, INSERT можно "повесить" триггер. А вот как автоматически расшифровывать данные при запросе от пользователей, не знаю. Крайне нежелательно изменять приложение, которое работает с базой данных.

    Заранее спасибо.

     

    19 января 2007 г. 12:18

Ответы

Все ответы

  • Уточните вопрос и поясните задачу. Что конкретно у Вас не получается?

    В BOL описан выбор алгоритма шифрования и документированы все имеющиеся функции.

    ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ru/scsql9/html/8227028c-a9c9-489d-bd27-fbf8242634ae.htm

    Тригера на SELECT нет. Если нужно обеспечить только хранение данных в зашифрованном виде не носителе, попробуйте подменить реальную таблицу представлением, в котором нужное поле будет представляться в расшифрованном виде....

    19 января 2007 г. 13:59
  • Подмена реальной таблицы представлением повлечет переписывание приложения?

    Я не программист, пожалуйста, поясните, как расшифрованные данные будут попадать из таблицы в представление?

    Вообще задача состоит в том, чтобы предотвратить критичных утечку данных в случае выноса файлов базы целиком.

     

    19 января 2007 г. 16:41
  • Данные в представление не попадают, они остаются там, где и были и в том виде, в каком были...

    Если Вам нужно зашифровать базу на случай выноса, вообще ничего не нужно делать, просто положите её на EFS, как это описано тут: http://www.sql.ru/articles/mssql/03013001ImplementingEFSwithSQLServer.shtml

    Впрочем, защита от выноса - это не задача SQL Server  Если выносить будут "серьёзные люди", они и Вас с собой прихватят (так дешевле, а главное - быстрее данные расшифровать). К тому же, в интернете уже полно материала о том, насколько не стоек алгоритм шифрования... ИМХО, бессмысленное это занятие... я ещё понимаю - шифровать пароли веб-приложения, да и то это уже прошлый век...

    19 января 2007 г. 20:50
  •  Alexander Gladchenko написано:

    Данные в представление не попадают, они остаются там, где и были и в том виде, в каком были...

    А если изначально не было никакого представления, а данные в поле таблице зашифрованы?

    Как всё-таки организовать расшифровку данных из таблицы в представление?

    Спасибо.

    P.S. Извините за, может быть, "детские" вопросы, но опыта работы с SQL практически нет...

    22 января 2007 г. 11:15
  • Если у Вас нет достаточного опыта программирования серверного кода SQL Server, лучше не беритесь за одну из самых "тяжёлых" задач для СУБД

    Вьюха будет выглядеть примерно так:

    create view [dbo].[имяпредставления]

    as

    select decryptbykey(salary, empID) as [имяполя]

    Подробное описание алгоритма обеспечения безопасности на уровне записей и полей есть на сайте производителя: Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005

    Ещё один интересный метод описан тут: http://vyaskn.tripod.com/row_level_security_in_sql_server_databases.htm

    Ну и конечно же нужно почитать вот это: http://www.microsoft.com/downloads/details.aspx?familyid=cb112966-8d62-45b3-82f6-f8f88230f1f9&displaylang=en

     

     

    22 января 2007 г. 13:08
  •  Alexander Gladchenko написано:

    Если у Вас нет достаточного опыта программирования серверного кода SQL Server, лучше не беритесь за одну из самых "тяжёлых" задач для СУБД

    Мне поставили задачу по защите данных, поскольку разработчики не желают это делать.

     

     Alexander Gladchenko написано:

    Подробное описание алгоритма обеспечения безопасности на уровне записей и полей есть на сайте производителя: Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005

    Ещё один интересный метод описан тут: http://vyaskn.tripod.com/row_level_security_in_sql_server_databases.htm

    Ну и конечно же нужно почитать вот это: http://www.microsoft.com/downloads/details.aspx?familyid=cb112966-8d62-45b3-82f6-f8f88230f1f9&displaylang=en

    1-й и 3-й документ читал, скриптами расшифровывать в учебной базе, которая идет с MS SQL 2005, пробовал, не знал, как правильно сделать представление.

    Ещё раз огромное спасибо.

     

     

    22 января 2007 г. 13:43
  • Аналогичное обсуждение: http://www.sql.ru/forum/actualthread.aspx?tid=381850
    22 января 2007 г. 19:36
  • Вот ещё интересная статья: PART I - Data security enhancements in SQL Server 2005
    24 января 2007 г. 10:47