SQLBase SafeGarde - СУБД с полной защитой данных

С. А. Большаков

Обеспечение защиты данных выполняется в SQLBase SafeGarde на административном уровне и не требует перепрограммирования бизнес-приложений.

Введение

Потребность в защите электронной информации становиться все более актуальной. Этому вопросу посвящено много разработок и исследований. Но цель нашей статьи иная, подчеркну самое главное, что, на наш взгляд, не является пока достаточно известным в мире информационных технологий. Необходимость защиты информации в информационных системах жестко регламентируется законодательством Российской Федерации. Существуют десятки законов РФ и отраслевых стандартов, которые определяют необходимость защиты информации и требования к ее организации. Недавно (24 января 2001 года) на эту тему в Interface Ltd был проведен семинар, результаты обсуждений по этой теме Вы можете найти на сайте.

В связи этим актуальным становиться переориентация на программные продукты и, в частности, СУБД, которые обеспечивают полную или частичную защиту. Так получилось, что большинство SQL серверов являются открытыми и прозрачными не только для пользователей, но и для попыток несанкционированного доступа: практически любой запрос позволяет получить доступ к информации, хранимой в БД. Получение или подбор системного пароля при нынешних уровнях производительности компьютеров не является для взломщиков непреодолимой преградой. Одним из первых в мире, и первым в своем классе СУБД, предоставляет полную защиту SQL СУБД фирмы Centura - Centura SQLBase SafeGarde.

Этот программный продукт является популярным у нас в стране и за рубежом по причинам, которые будут отмечены ниже. Здесь же скажем, что популярность его должна еще больше возрасти в связи с тем, что, начиная с января 2000 года, вышла новая версия программного продукта SQLBase SafeGarde (или даже семейство версий), рассчитанных на обеспечение пользователей СУБД всеми необходимыми механизмами защиты информации. Характерной чертой продукта, как и, впрочем идеологии фирмы Centura, является ориентация на пользователя, что в данном случае означает минимум переработок для внедрения механизмов защиты в существующих БД и минимум затрат при построении новых систем с защитой информации. Это достигается тем, что подключаются и настраиваются защитные процедуры на административном уровне. О том, как это реализовано и может быть сделано при эксплуатации СУБД и пойдет речь в данной статье.

Сначала несколько слов о самом программном продукте для тех, кто недостаточно знаком с продуктами Centura. Остальные читатели могут опустить следующие два подраздела.

Версии SQLBase и новые версии, планируемые в 2001 году

СУБД SQLBase имеет продолжительную историю, начало которой нужно искать в 1980 году. За этот период развитие СУБД шло в ногу со временем, было создано много версий, которые неизменно находили широкое применение. Ниже приведены основное сведения относительно версий, защиты данных в SQLBase и перспективы развития.

Семейство версий СУБД SQLBase:

  • SQLBase 5.14 , 5.20, 6.0, 6.01, 6.1, 7.01 - версии без защиты информации
  • SQLBase 7.5 ,7.5.1 (Standart , SafeGarde, SafeGarde Max) - с защитой
  • SQLBase Desktop 7.5.1 - однопользовательский вариант (настольный СУБД)

Уровни защиты информации в SQLBase:

  • 7.5.x S Standard Edition нет шифрования данных.
  • 7.5.x M SafeGarde 56 bit - DES encryption
  • 7.5.x H SafeGarde Max 128 bit - Triple DES encryption

Перспективы выхода новых версий SQLBase с защитой данных:

  • SQLBase 7.6 SafeGarde - выход в феврале 2001 года
  • SQLBase 8.0 SafeGarde - выход в конце 2001 года

СУБД SQLBase выходит в следующих комплектах:

  • Индивидуальный вариант - SQLBase SafeGarde Desktop
  • Многопользовательский - SQLBase SafeGarde (5, 10, 25, Unlimit)
  • Порционный - SQLBase Embedded Deployment Pack (EDP) - до 50 пользователей, позволяющий планировать произвольное количество установок у заказчика.

Особенности СУБД, его отличительные свойства и функции

Особенности СУБД SQLBase выделены ниже:

  • SQLBase - клиент/сервер SQL СУБД, которая с 1980 года развивается и постоянно совершенствуется;
  • Благодаря высокому качеству и гибкости SQLBase занимает лидирующие позиции в мире информационных технологий среди продуктов равных себе по классу;
  • SQLBase имеет варианты от настольного СУБД (SQLBase Desktop - 1 пользователь) до многопользовательского СУБД (SQLBase Server до 200 users). Настольные и серверные продукты полностью совместимы;
  • Начиная с версии 7.5, поддерживает большие БД (Very Large DataBase -VLDB) - до 512 Гбайт информации;
  • Интеграция со многими средствами разработки и с СУБД своего класса и других классов, а также возможность безболезненной миграции БД;
  • Простота администрирование сервера и БД, которыми он управляет;
  • Высокая производительность по обработке запросов, по некоторым данным измерений, и при прочих равных условиях, SQLBase не уступает ведущим СУБД, в том числе и ORACLE;
  • Высокая надежность и отсутствие необходимости постоянного контроля за состояние сервера и БД.
  • Ориентация на поддержку всех стандартов, в том числе и SQL стандартов;
  • И теперь, наконец, включенные средства защиты информации, механизмы предотвращения несанкционированного доступа в системы, работающие с SQLBase Server.

СУБД SQLBase обеспечивает выполнение всех функций и операций, характерных для профессионального SQL сервера БД, в частности выделим основные:

  • Администрирование пользователей и БД.
  • Транзакции, триггеры, запомненные процедуры и внешние функции.
  • Резервное копирование и восстановление при сбоях.
  • Ведение всех необходимых журналов, аудита БД и разграничение прав пользователей СУБД.
  • Возможность создания БД только для чтения информации (Read Only).
  • Практические возможности миграции БД для разных версий, причем во многих случаях обеспечивается и миграция вниз, что возможно для отечественных разработок, например при передаче ПО на региональный уровень.
  • Возможность работы одновременно со многими БД и поддержка одновременной работы многих серверов.
  • Обеспечение секционирования БД для хранения больших объемов данных, причем на раздельных носителях информации.
  • Обеспечение работы распределенных БД и автоматизированная поддержка репликации в распределенных БД.
  • Возможности простой реорганизации БД, переиндексирования и учета статистической информации о БД для работы оптимизирующих алгоритмов.
  • Процедуры проверки целостности БД, простая выгрузка и загрузка БД и многое другое, для достижения оптимальной производительности и удобства работы.

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

Что такое защита информации?

Уровень защищенности данных в информационных системах самого различного уровня определяется ответами на совокупность вопросов представленных ниже. На рисунке, расположенном ниже (Рис. 1), схематично показаны узкие места, в которых возможно хищение, умышленное изменение и несанкционированный доступ к информации (на рисунке они выделены пиктограммой со знаком вопроса). Если мероприятия, применяемые для защиты информации, обеспечивают положительные ответы на поставленные ниже вопросы, то можно считать, что уровень защиты информации в вашей системе достаточно высок. Основные вопросы следующие:

  • Кто имеет доступ к информации?
  • Как и в каком виде хранятся данные в БД?
  • Как выполняется передача данных в сетях (локальных и глобальных) от клиента к серверу и обратно?
  • Как выполняются процедуры выгрузки и загрузки данных, их резервного копирования и в каком виде хранятся копии данных?
  • Как происходит реорганизация данных в БД?
  • Как выполняются репликации данных в распределенных БД?
  • Возможен ли перебор паролей для несанкционированного доступа?
  • Можно ли испортить информацию в БД?

Мы постараемся ответить на эти вопросы, рассматривая возможности защиты информации в SQLBase SafeGarde и методы их практической настройки. Поскольку обеспечение защиты информации в системах - мероприятие дорогостоящее: по некоторым оценкам затраты на защиту приближаются к затратам на проектирование и создание сложных информационных систем (т.е. затраты на проектирование и эксплуатацию могут возрасти почти вдвое), то необходимо ответить на вопрос о необходимости ее введения. Постараемся ответить на него.

Когда нужна защита информации?

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

Рис. 1 Узкие места в системе с точки зрения защиты информации

В частности, подлежит защите любая информация, служащая для идентификации личности (ФИО, адрес, телефон и т.д.). Кроме того, любая коммерческая информация, разглашение которой нежелательно для нормальной работы организации, тоже должна быть защищена по закону. Этот перечень может быть продолжен. Если проанализировать любую информационную бизнес систему, то легко можно убедиться, что в ней защита необходима только по закону. Потребность в защите информации с помощью СУБД предопределяется следующими факторами:

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

Из приведенного перечня видно, что существует много оснований очень серьезно прорабатывать вопросы защиты данных практически в любых информационных системах. В этом вам может помочь переход на СУБД SQLBase, который обеспечит плавный переход к системам с защитой данных, причем практически не потребует перепрограммирования приложений, большинство механизмов защиты реализовано на административном уровне. Рассмотрим эти механизмы.

Разновидности защиты в SQLBase Safegarde

Для реализации защиты информации в SQLBase Safegarde предложены механизмы:

  • Использование привилегий пользователей для доступа к таблицам и view БД, и ограничения возможности делегирования привилегий. Все входящее в стандартный набор SQL языка и развитых SQL серверов доступно в SQLBase.
  • Регламентация подключения к консоли сервера и контроль за действиями пользователей. Для этого вводятся специальные пароли доступа к серверу.
  • Парольная защита административных действий с сервером. Для этого вводится специальный пароль доступа к консоли сервера.
  • Кодирование данных в БД (64 и 128 битное DES) при минимальных потерях производительности. Задается специальными командами.
  • Контроль несанкционированного доступа к файлам с помощью защиты страниц БД специальными кодами. Задается специальными командами.
  • Привилегии доступа к серверным процедурам (Stored procedure) и функциям.
  • Задержанный контроль пароля для противодействия взлому и подбору пароля.

    Реализация защиты в СУБД по отдельным позициям

    Данные механизмы реализованы в SQLBase SafeGarde следующим образом:

    Авторизация прав доступа и привилегии доступа к объектам БД и процедурам:

    Введены четыре категории пользователей, права которых различны:

  • SYSADM - разрешается все
  • DBA - все, но без паролей, пользователей и уровней
  • RESOURCE - управление объектами БД и права пользователей для объектов
  • CONNECT - работа с объектами с заданным доступом

    Используются специальные SQL и SQLTalk команды для назначения привилегий и режимов защиты:

  • GRANT - команда SQL для назначения привилегий
  • REVOKE CONNECT FROM <auth-id> - управление доступом

    Пароли для сервера и защиты:

    Введены специальные команды для установки режимов защиты данных и сервера:

  • ALTER DBSECURITY - для управления защитой и шифрованием
  • ALTER PASSWORD <old password> TO <new password>-задание системного пароля
  • ALTER EXPORTKEY TO<new password> - для задания пароля копирования

    Предусмотрены два раздельных, но взаимосвязанных пароля для защиты:

  • Server connection passwords - пароль подключения к серверу.
  • Server security passwords - пароль для управления защитой.

    Server connection passwords:

    Server connection passwords - устанавливается в SQL.INI (секция сервера) и служит для выполнения административных операций и получения информации о сервере БД. Его можно использовать даже для БД, которые не шифруются. Его можно опускать ('*') и желательно не использовать в зашифрованных БД. Роль Server connection passwords в этом случае будет играть Server security passwords.

    Server connection passwords позволяет:

  • Восстанавливать, сохранять БД и их журналы
  • Создавать и удалять БД
  • Инсталлировать и деинсталлировать БД
  • Контролировать выполнение операций с SQL/API

    Подключение к серверу для выполнения административных функций и с паролем для доступа (пример): SET SERVER SERVER1/SECRET;

    Server security passwords

    Server security passwords - в дополнение к функциям Server connection passwords этот пароль позволяет вам шифровать БД и контролировать несанкционированные изменения страниц БД. Пока не задан Server security passwords, невозможна шифровка БД и нельзя получить доступ к зашифрованным БД. Для доступа к зашифрованной БД или установки режима защиты нужно указать ключ шифрования (database encryption key).

    ALTER DBSECURITY - команда установки ключа (команда SQLTalk). Установка - при работе в WINDOWS выберете <Security - Set Security Password в SQLBase консоли сервера>. При работе в NetWare нажмите F4. Только после установки Server security passwords (16 символов максимально) вы получаете возможность использования и ввода кода для шифрования БД (ключ шифрования - 18 символов максимально).

    В команде в SQLTalk ALTER DBSECURITY задаются: ключ, режимы шифрования данных, а также режимы защиты страниц. Это делается следующими параметрами:

  • SET KEY TO 'newkey' - для установки ключа для шифрования (макс. 18 символов)
  • SET SECURITY TO NONE/LOW/MEDIUM/HIGH - для установки уровня шифрования данных
  • SET CHECK TO NONE/CRC/SHA - для установки режима контроль несанкционированного доступа к страницам БД

    Код шифрования будет сформирован на основе двух параметров: ключа шифрования (database encryption key) и пароля шифрования сервера (Server security passwords).

    Режимы шифрования БД и Уровни защиты данных

    С помощью параметра SET SECURITY TO могут быть установлены четыре режима шифрования данных в БД, которые определяют степень защиты информации. Это следующие режимы:

    ь NONE - нет шифрования в БД, режим шифрования отключен.

  • LOW - низкий уровень защиты (каждый символ по сложному алгоритму заменяется другим). В этом режиме обеспечивается самая высокая производительность, но уровень защиты данных самый низкий.
  • MEDIUM - обеспечивается более высокая защита (64 битный ключ) и наблюдается незначительное влияние на производительность СУБД.
  • HIGH - самый высокий уровень защиты и обеспечивается не очень сильное влияние на производительность СУБД (128 битный ключ).

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

    Назначение режимов защиты страниц от доступа

    БД разделена на страницы размером 1кб. На каждую станицу создается ключ/код, что позволяет контролировать доступ: невозможно прочитать и при изменении вручную не записывается в БД. СУБД контролирует несанкционированное изменение страниц БД. В случае нарушения доступа сервер автоматически закрывается. Предусмотрены следующие режимы, задаваемые параметром SET CHECK TO команды ALTER DBSECURITY:

    ь NONE - нет защиты, но при защите в БД страницу все равно нельзя изменить!

  • CRC - 16-bit CRC (Cyclic Redundancy Check) - выполняется защита циклической контрольной суммой. Сервер снимает БД и закрывается при нарушении доступа.
  • SHA SHA (Secure Hash Algorithm) выполняется защита специальной сигнатурой, задаваемой нетривиальной функцией и формируемой для каждой страницы. Сервер снимает БД и закрывается при нарушении доступа. Более высокая защита от изменения страниц, чем CRC.

    Защита при передаче данных

    Для защиты по передаче данных в SQL.INI в клиентской и серверной части устанавливаются параметр secureapi = {0/1/2} (Определяет режимы: None, Medium, High). При этом специально не нужно программировать защитные функции. Для работы с защитой передачи данных нужно всего подключить три DLL: SQLWNTM, SQLNGCI и любая comdll (например, для TCP/IP - sqlws32).

    Задержка при проверке пароля

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

    Защита от выполнения функций SQL/API для защиты файлов от доступа

    С помощью специальной директивы (fileaccess=0) можно исключить выполнение функций доступа к файлам БД на уровне "С" API для SQLBase. Этих функций нижнего уровня несколько: sqlfgt, sqlfpt, sqlmop и sqlmdl. Весь остальной контроль и защиту данных выполнит сервер SQLBase Safegarde при доступе посредством SQL команд.

    Оценка снижения производительности при защите данных

    СУБД SQLBase 7.5 по сравнению с предыдущей версией (7.0) является более производительным приблизительно в три раза, это достигается за счет оптимизирующих алгоритмов доступа к данным. При введении уровней защиты для ОС Windows NT производительность снижается до 99% (MEDIUM и LOW) и до 94% (HIGH) соответственно. При использовании NetWare снижение более заметно: 93% (MEDIUM и LOW) и до 91% (HIGH) соответственно. Данные измерения проводились третьей фирмой. Таким образом, максимальное снижение производительности находится в пределах 10%, что является очень хорошим показателем для СУБД с защитой информации, обычно эта величина составляет несколько десятков процентов.

    Заключение

    В заключение отметим, что мощный и современный SQL сервер с защитой информации в БД - Centura SQLBase Safecarde несомненно привлечет большое число пользователей и разработчиков, как это было сделано в Германии при автоматизации Berliner Deutsche Bank.


  • Страница сайта http://test.interface.ru
    Оригинал находится по адресу http://test.interface.ru/home.asp?artId=4961