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

 

К упомянутому классу относятся продукты, чью основную ценность составляет не программный код, а данные. Это различные базы и банки данных, информационно-справочные, экспертные и геоинформационные системы и т. п. В таких пакетах данные, как правило, хранятся в файлах известных форматов (DBF, MDB, XLS и др.), а программная часть предназначена для их обработки. Это могут быть в простейшем случае операции просмотра, в более развитых системах  -  операции поиска, модификации данных, изменение структуры и пр. Для простоты описания будем называть программную часть информационного продукта программой просмотра данных.

 

Программа просмотра может быть стандартным средством для работы с данными, например MS Access либо DBView, или собственной разработкой, предоставляющей какие-либо дополнительные функции. Важно то, что, получив только данные, входящие в программный продукт, можно ими пользоваться, не имея программы работы с ними.

 

Этот вывод заставляет пересмотреть способ защиты таких пакетов от нелегального использования и тиражирования. Большинство существующих технологий ориентированы на защиту исполняемого кода. В исходный текст программы встраиваются процедуры проверки наличия ключевого признака, без которого программа не должна работать,  -  электронного ключа; процедуры, усложняющие изучение логики защищенной программы,  -  шифрование и подсчет контрольных сумм участков кода, а также всевозможные антитрассировочные трюки. Таким образом, приложение не работает без электронного ключа, и “отучить” его от этого ключа довольно сложно.

 

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

 

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

 

Особенности защиты данных в информационных продуктах

 

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

 

Система защиты в этом случае должна обеспечить возможность дешифрования данных при их чтении из файла и шифрования  -  при записи.

 

Классификацию систем защиты данных можно проводить по следующим ключевым признакам.

 

1. Способы вызова операций шифрования

 

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

 

Существует два способа вызова операций шифрования: явный и неявный.

 

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

 

Во втором случае программа разрабатывается так, как будто она предназначена для работы с открытыми данными. Система защиты перехватывает операции файлового ввода-вывода, определяет, какое приложение к какому файлу обращается, и выполняет необходимую обработку данных. Такой способ называют еще “прозрачным” (online, on-the-fly) шифрованием.

 

Достоинство явного вызова операций шифрования  -  в его большей стойкости, так как стойкость тем выше, чем выше степень интеграции приложения и системы защиты.

 

Присущи ему и некоторые недостатки. Это, во-первых, меньшая универсальность (для каждого средства разработки приложений необходим свой набор процедур). Во-вторых, встраивание вызовов процедур, как правило, оказывается чрезвычайно трудоемким делом. В-третьих, не во всех системах имеется низкоуровневый интерфейс файлового ввода-вывода. И наконец, не всегда программа просмотра создается производителем или распространителем данных.

 

2. Способы встраивания системы защиты в программу просмотра

 

Существует два способа встраивания системы защиты в программу просмотра.

 

- Ручное встраивание: соответствующие процедуры встраиваются в исходный текст программы просмотра.

 

- Автоматическое встраивание: процедуры системы защиты встраиваются в программу просмотра путем обработки ее исполняемого модуля (так называемый “конверт”).

 

- Очевидно, что второй способ удобнее. Однако автоматическому встраиванию присущи некоторые недостатки. Программа просмотра не всегда раcпространяется вместе с данными и, следовательно, не может быть защищена “конвертом”. Например, в случае, когда защищается база данных для MS Access, программой просмотра становится собственно система MS Access.

 

Ручное встраивание может применяться как в системах с явным вызовом процедур шифрования, так и в системах “прозрачного” шифрования. Автоматическое встраивание, как правило, применяется только в системах “прозрачного” шифрования.

 

3. Используемый алгоритм шифрования

 

По этому параметру системы различаются следующим образом.

 

- ПО, использующее какой-либо известный алгоритм шифрования.

 

- ПО, использующее частный алгоритм шифрования.

 

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

 

4. Поддержка файловых операций, допустимых в данной системе

 

Данный пункт относится только к системам “прозрачного” шифрования. Такая система может перехватывать все допустимые в данной ОС файловые операции, а может только часть  -  основные, с точки зрения разработчика.

 

Универсальная система “прозрачного” шифрования должна перехватывать все виды файловых операций, допустимых в данной ОС.

 

Например, система “прозрачного” шифрования для MS-DOS должна поддерживать файловые операции через управляющие блоки файла (FCB) и через описатели файлов (file handle).

 

Аналогичная система для Windows 95 должна поддерживать операции через интерфейс MS-DOS, интерфейс Win16, интерфейс Win32, файлы, проецируемые в память (memory-mapped files), именованные каналы (named pipes). В систему для Windows NT дополнительно следует ввести поддержку асинхронного файлового ввода-вывода.

 

Существующие средства защиты данных

 

Ныне, благодаря своим очевидным преимуществам, основное распространение получили системы “прозрачного” шифрования. Рассмотрим наиболее популярные системы, их достоинства и недостатки.

 

1. Система “прозрачного” шифрования файлов данных, входящая в состав пакета SentinelShell v.4.x. Производитель  -  фирма Rainbow.

 

Пакет SentinelShell является “конвертом”, который позволяет установить систему защиты данных с “прозрачным” шифрованием.

 

Этот продукт ориентирован на защиту MS-DOS- и Win16-приложений, а также на защиту данных, с которыми эти приложения работают. Указываются список имен и масок файлов, подлежащих шифрованию в процессе защиты, и обращения, на которые будет реагировать ядро системы. ПО работает с электронными ключами Sentinel Pro и Sentinel SuperPro.

 

Используемый алгоритм шифрования не называется, поэтому можно предположить, что в системе используется алгоритм собственной разработки.

 

Главные преимущества  -  простота и легкость установки и использования, а также удобный графический интерфейс. Недостатки  некорректная работа защищенного DOS-приложения с зашифрованными данными в окне Windows 3.x с включенным 32-разрядным доступом к файлам.

 

2. Система “прозрачного” шифрования файлов данных, входящих в состав пакета HL-CRYPT. Производитель  -  фирма FAST Software Security AG.

 

Данная система очень похожа на предыдущую. HL-CRYPT защищает DOS- и Win16 приложения и файлы данных, с которыми приложение работает. Недавно компания анонсировала систему для защиты приложений Win32 и данных. Система работает с ключами HardLock EYE и HardLock Twin.

 

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

 

Эта система интересна тем, что она поддерживает полный спектр ОС, от MS-DOS до Win32, причем поддержка Win32 универсальна, то есть одна и та же защищенная программа может работать и в Windows 95, и в Windows NT.

 

3. Система “прозрачного” шифрования, входящая в состав инструментального средства Professional ToolKit. Производитель  -  компания Aladdin Software Security.

 

В состав пакета Professional ToolKit входит “конверт”, позволяющий защищать данные, с которыми работает приложение.

 

Указывается список имен файлов, подлежащих шифрованию в процессе защиты, и операции, которые будут обрабатываться ядром системы защиты. Пакет работает с электронными ключами HASP3, MemoHASP, TimeHASP и NetHASP.

 

Применяемый алгоритм шифрования  -  IDEA (International Data Encryption Algorithm  -  международный алгоритм шифрования данных) с длиной ключа 128 бит, причем для формирования ключа используются возвратные значения функции f(x), аппаратно реализованной в ключе.

 

Все перечисленные системы являются системами “прозрачного” шифрования с автоматическим встраиванием.

 

4. Professional ToolKit for Windows’95  -  система “прозрачного” шифрования файлов данных для Windows 95. Производитель  -  Aladdin Software Security.

 

Эта система является практически единственной специализированной системой защиты файлов данных. Она представляет собой набор утилит, библиотек и VxD-драйверов для обеспечения полного жизненного цикла работы с “прозрачным” шифрованием файлов данных. Система работает с ключами, содержащими память: MemoHASP, TimeHASP, NetHASP.

 

Перед поставкой конечному пользователю данные зашифровываются специальной утилитой. В системе используется алгоритм шифрования RC4. Также можно использовать алгоритм шифрования ГОСТ 28147-89. Ключ шифрования формируется с применением возвратных значений функции f(x), аппаратно реализованной в электронном ключе HASP.

 

В программу просмотра встраивается вызов процедуры авторизации приложения, причем для этого можно использовать любой макроязык, например Visual Basic for Applications. При этом вместе с зашифрованными данными необходимо поставлять и небольшую программу авторизации, написанную на макроязыке.

 

В системе устанавливается VxD-драйвер, который осуществляет перехват операций файлового ввода-вывода. Поддерживаются все виды файловых операций, допустимых в Windows 95.

 

Драйвер поддерживает неограниченное число открытых файлов и приложений, работающих с зашифрованными файлами.

 

Данная система является системой “прозрачного” шифрования с ручным встраиванием. Она позволяет поставлять защищенные от несанкционированного тиражирования и доступа данные без защищенной программы просмотра.

 

Заключение

Ведущие разработчики технологий защиты ПО предоставляют производителям информационных продуктов средства для защиты как программ, так и данных. Но эти средства зачастую являются лишь дополнительной (и второстепенной) опцией других средств, как правило “конвертов”.

 

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

 

Алексей Раевский, Сергей Груздев

 

Об авторах. Алексей Раевский и Сергей Груздев работают в компании Aladdin Software Security R.D. Ltd. Связаться с ними можно по телефону: (095) 923-0588 или по электронной почте:

 

aladdin@aladdin.msk.ru.