Использование электронных картотек данных, называемых базами данных, серьезно облегчило жизнь людям. Их несомненные преимущества перед бумажными носителями информации на лицо, и одним из них является возможность организации защиты данных. Однако этот процесс является довольно сложным и имеет множество проблемных аспектов, но прежде чем перейти к ним необходимо разобраться, что же именно подразумевается под защитой данных.
Защита данных есть «предотвращение доступа к ним со стороны несанкционированных пользователей» [1]. Довольно простое определение, которое говорит нам о том, что все множество людей некоторым образом делится на тех, кто имеет доступ к данным (точнее, к определенным данным), и на тех, кто этого доступа не имеет, и что необходимо не допустить доступа к этим данным последних. Тем не менее, не все так просто и зачастую ключевую роль играют даже не внутренние аспекты (организация защиты исключительно в рамках системы управления баз данных), а внешние. К их числу относятся:
- Получение доступа к данным на законных основаниях, например, судом.
- Охрана помещения с физическими носителями информации.
- Принятие решений о разрешении некоторым людям доступа к данным.
- Использование дополнительных средств защиты в устройствах и операционной системе.
К внутренним же факторам относится шифрование данных и разделение прав между пользователями с их идентификацией. Шифрование данных применяется для защиты от физического несанкционированного доступа. Суть шифрования состоит в представлении данных в таком виде, чтобы по ним было невозможно восстановить их первоначальный вид, не имея специального ключа шифрования. Существует множество алгоритмов шифрования, каждый из которых стремится в той или иной степени выполнить поставленную задачу. Однако более интересным является вопрос разделения прав доступа между пользователями и идентификация этих пользователей.
Представим, что доступ к данным получило некоторое число человек. Но как системе понять, кто перед ним — человек, получивший доступ, или нет? Подобный процесс называется аутентификацией. Обычно у каждого пользователя есть свой идентификатор и пароль, известный только ему. В более продвинутых системах имеются куда более сложные системы аутентификации: распознавание отпечатков пальцев, характеристик ладони, голоса, сетчатки глаза, подписей и много другого. Чем сложнее процедура аутентификации, тем больше вероятность того, что посторонний человек не сможет получить доступ к данным.
Чаще всего пользователям не предоставляют доступ ко всем данным, а лишь к некоторым определенным. Существует три способа разделения прав: избирательный, мандатный и комбинированный (сочетает в себе первые два способа).
При использовании избирательной схемы управления доступом каждому пользователю обычно выдаются привилегии на доступ к некоторым данным, а не ограничивается доступ к остальным. Каждая привилегия (или полномочие) регистрируется в системном каталоге. Для нее известны ее имя, переменная отношения и разрешенные с ней операции (выборка, вставка, удаление, обновление или все вместе), а также список пользователей, которым эта привилегия выдана. Стоит также отметить, что любую выданную привилегию можно с легкостью отозвать. Однако более интересно, что происходит, когда пользователь, не имеющий полномочий на выполнение операций с некоторыми данными, пытается этими данными каким-либо образом манипулировать. В самом простом варианте ему будет показано окно с ошибкой, где будет сказано, что у него нет прав на выполнение данной операции. В более сложных системах возможно блокирование пользователя или занесение всех событий, происходящих в системе, в специальный контрольный журнал. Делается все это по причине того, что, к сожалению, не существует непреодолимых систем защиты. Чаще всего в контрольном журнале хранятся записи, содержащие информацию о пользователе, совершенной им операции, номере устройства, дате и времени операции, исходные и измененные значения. Все это, например, может позволить восстановить данные при их злонамеренной порче.
При использовании мандатной схемы управления доступом каждому объекту данных ставится в соответствие некоторый классификационный уровень, а каждому пользователю — уровень допуска. Благодаря этому создается иерархическая структура, довольно удобная в управлении, но абсолютно не гибкая в расчете на одного конкретного пользователя, так как права задаются сразу большой группе пользователей. При такой системе управления чем выше уровень допуска, тем к большому числу данных имеет доступ пользователь. Не может возникнуть такой ситуации, когда пользователь с более низким уровнем допуска имеет доступ к данным, к которым не имеет доступа пользователь с более высоким уровнем доступа. Тем не менее, довольно часто используется комбинирование мандатной и избирательной схемы управления доступа. В таком случае, например, мандатно происходит распределение доступа к данным на уровне отделов, а уже в самих отделах — избирательно.
Большой интерес также представляют статистические базы данных, в которых возможно только агрегирование данных (работа только с совокупностью данных). Например, можно узнать средний возраст всех сотрудников, но нельзя узнать конкретный возраст определенного сотрудника. Однако иногда за счет логических выводов удается преодолеть это ограничение, так как «обобщенные значения содержат следы исходной информации, и она может быть восстановлена злоумышленником после соответствующей обработки достаточного количества этих обобщенных значений» [2]. Данная проблема получает все большое распространение и ее отлично иллюстрирует следующий пример.
Представим, что у нас есть переменная отношения, содержащая данные о жильцах некоторого дома. Данная переменная отношения представлена на рисунке 1. У пользователя есть возможность запрашивать только агрегированные данные, однако он хочет узнать, какова площадь квартиры, в которой проживает Мария. Он знает, что она работает швеей. Тогда, если сначала он запросит число записей, в которых по атрибуту пол будет значение женский, а по атрибуту специальность — швея, и получит единицу, то он поймет, что в доме есть только одна женщина-швея, и, как ему известно, это Мария. Тогда запрос о сумме значений атрибута площадь по записям, у которых по атрибуту пол будет значение женский, а по атрибуту специальность — швея, выдаст конкретную площадь квартиры Марии, причем злоумышленник будет точно знать, что за значение он получил.
Рис. 1. Переменная отношения
Очевидно, что защита статистической базы данных в данном случае была нарушена, хотя пользователь не вводил запрещенных запросов. Это случилось из-за того, что злоумышленник обладал средством слежения, что Мария — женщина-швея. К сожалению, чаще всего довольно просто получить подобное средство слежения, защититься от которого почти нельзя. Существуют некоторые предположения, как именного можно решить эту проблему, но они связаны с большими расходами. Поэтому считается, что необходимо для начала определить, что важнее — конфиденциальность данных или возможность «вычисления статистических показателей для произвольных подмножеств данных в базе» [1].
Таким образом, можно сделать вывод, что, несмотря на обилие различных подходов в организации защиты данных, к ним все равно можно получить несанкционированный доступ, однако чем больше подобных подходов будет предпринято, тем больше вероятность того, что они отпугнут злоумышленника и данные останутся в целости и сохранности.
Литература:
- Дейт, К.Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. / К.Дж. Дейт. — М.: Издательский дом «Вильямс», 2008. — 1328 с.: ил. — Парал. тит. англ.
- Denning D.E, Denning P. J. Data Security // ACM Comp. Surv. — September 1979. — 11, № 3.