Welcome to TechNet Blogs Sign in | Join | Help

Защита хранимых процедур, views , и т.д.

 

Николай Денищенко описал проблему, которая, я думаю , может быть интересна по своей теме не только мне, потому и выкладываю письмо для обсуждения сюда:

« На одном из семинаров мы с Сергеем Гавриленко выступали с докладом на тему дешифрации и защиты от дешифрации хранимых процедур, материалы доступны по ссылке: http://www.sql.ru/articles/mssql/Seminars/mssem21/Protect4Pub.rar

 

Единственный способ (на текущий момент) защитить код -- это заменить стандартное шифрование. К сожалению, SQL Server не располагает какими-либо интерфейсами, позволяющими сделать это не прибегая к реверс-инженерингу и системному программированию. Подобную технику для защиты использовали не только мы, но и компания ActiveCrypt (www.sqlshield.com). Зайди на страницу "About us" (http://www.sqlshield.com/aboutus.html)

и станет понятно, что в подобной защите нуждается очень много компаний (если судить по количеству клиентов ActiveCrypt).

 

Если же говорить о кардинальном пересмотре протокола шифрования SQL Server, то нужно отметить следующее:

 

1. Можно сделать невозможным расшифрование T-SQL кода sql-скриптами (см. метод расшифрования через ALTER в нашей статье). Т.е. это вещь вполне реальная и её можно и нужно сделать.

 

2. Любой алгоритм защиты, построенный на сокрытии самого алгоритма, а не ключа

-- обречён. Рано или поздно алгоритм станет известен. Почему метод шифрования SQL Server построен на сокрытии алгоритма? Потому, что сам SQL Server перед выполнением кода должен его расшифровать.

 

Отдельно хочу сказать о реверс-инженеринге. Это моё личное мнение, с ним можно соглашаться, можно критиковать, но:

 

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

 

2. Сокрытие алгоритмов приводит только к видимости защиты. То, что с SQL 2005 перестали прикладывать pdb-файл с символами нисколько не осложняет задачу дизасемблирования. Это скорее производит психологический эффект, не более того. Если дыра есть -- её обязательно найдут и научатся использовать. И отсутствие pdb-файла на это нисколько не повлияет. Вопрос только в том, какие люди найдут и насколько чисты их помыслы.

 

Published Friday, May 12, 2006 2:52 PM by MOCKAlb

Comments

No Comments

Anonymous comments are disabled
 
Page view tracker