Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800353

.pdf
Скачиваний:
1
Добавлен:
01.05.2022
Размер:
1.88 Mб
Скачать

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

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

.

Таблица 34 Идентификаторы пользователей и групп

Идентификатор

Тип

Группа

Идентификатор

пользователя

 

 

члена группы

SG37

Пользователь

Sales

 

 

 

 

 

SG14

Пользователь

Sales

 

 

 

 

 

SG5

Пользователь

 

 

 

 

 

 

Sales

Группа

 

SG37, SG14

 

 

 

 

В столбцах Идентификатор пользователя и Тип приведены определенные в системе идентификаторы и

указывается их

тип

отдельный пользователь и группа

пользователей.

Столбцы с заголовками Группа и

 

 

130

Идентификатор члена группы содержат сведения о группе,

которой принадлежит пользователь, и его идентификаторе в этой группе. С каждым конкретным идентификатором может быть связан определенный набор привилегий, определяющий тип доступа к отдельным объектам базы данных (например, для чтения (Read), обновления (Update), удаления (Delete) или все типы сразу (All)). С каждым типом привилегии связывается некоторое двоичное значение:

READ

UPDATE

INSERT

DELETE

ALL

0001

0010

0100

1000

1111

Отдельные двоичные значения

суммируются, и

полученная сумма однозначно характеризует, какие именно привилегии (если они есть) имеет каждый конкретный пользователь или группа в отношении определенного объекта базы данных. В таблице 35 приведен пример матрицы управления доступом, определяющей набор привилегий, которые пользователи SG37, SG5 и группа Sales имеют в отношении указанных столбцов таблицы Property_for_Rent.

131

Таблица 35 Матрица управления доступом

Идентификатор

Столбец

Столбец

Столбец

Столбец

Столбец

Столбец

Лимит

пользователя

Pno

Type

Price

Ono

Sno

Bno

Выбираемых

 

 

 

 

 

 

 

строк

SG37

0101

0101

0111

0101

0111

0000

100

SG5

1111

1111

1111

1111

1111

1111

нет

Sales

0001

0001

0001

0000

0000

0000

15

132

Содержимое матрицы показывает, что группе пользователей с идентификатором Sales предоставлена только привилегия Read (код 0001) в отношении атрибутов Pno, Type и Price. Кроме того, для нее установлен максимальный размер результирующего набора данных запроса, равный 15 строкам. Пользователь SG14 (его реальное имя David Ford) является членом этой группы и не имеет каких-либо дополнительных привилегий доступа, поэтому он пользуется только теми правами, которые предоставлены данной группе. Пользователь SG37 (Ann Beech) имеет собственные привилегии Read.

132

и Insert (определяются значением 0001+0100=0101) в отношении атрибутов Pno, Type и Ono, а также привилегии

Read, Update и Insert (значение 0001+0010+0100=0111) в

отношении атрибутов Price и Sno. Кроме того, для этого пользователя максимальный размер результирующего набора данных запроса установлен равным 100 строкам. Пользователю SG5 (Susan Brand) предоставлены привилегии

Read, Update, Insert и Delete (значение

0001+0010+0100+1000=1111), т.е. привилегия All для доступа ко всем атрибутам таблицы, а размер результирующих наборов данных запросов не ограничивается. Обычно для реализации механизмов контроля доступа СУБД используются подобные матрицы, хотя отдельные детали в разных системах могут отличаться. В некоторых СУБД пользователю разрешается указывать, под каким идентификатором он намерен работать далее это целесообразно в тех случаях, когда один и тот же пользователь может являться членом сразу нескольких групп. Очень важно освоить все механизмы авторизации и другие средства защиты, предоставляемые целевой СУБД. Особенно это важно для тех систем, в которых существуют различные типы идентификаторов и допускается передача права присвоения привилегий. Это позволит корректно выбирать типы привилегий, предоставляемых отдельным пользователям, исходя из используемых ими обязанностей и набора используемых прикладных программ.

Представление (подсхема)

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

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

133

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

Резервное копирование и восстановление

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

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

134

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

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

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

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

135

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

Поддержка целостности

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

Шифрование

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

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

136

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

ключ шифрования, предназначенный для шифрования исходных данных (обычного текста);

алгоритм шифрования, который описывает, как с помощью ключа шифрования преобразовать обычный текст в шифротекст;

ключ дешифрования, предназначенный для дешифрования шифротекста;

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

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

DES (Data Encryption Standard) в ней используется стандартный алгоритм шифрования, разработанный фирмой IBM. В этой системе для шифрования и дешифрования используется один и тот же ключ, который должен храниться в

137

секрете, хотя сам алгоритм шифрования не является секретным. Этот алгоритм предусматривает преобразование каждого 64-битового блока обычного текста с использованием 56-битового ключа шифрования. Система шифрования DES расценивается как достаточно надежная далеко не всеми некоторые разработчики полагают, что следовало бы использовать более длинное значение ключа. Так в системе шифрования PGP (Pretty Good Privacy) используется 128битовый симметричный алгоритм, применяемый для шифрования блоков отсылаемых данных.

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

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

138

использовать его открытый ключ и соответствующий алгоритм шифрования. Однако дешифровать данное сообщение сможет только тот, кто знает парный закрытый ключ шифрования. Системы шифрования с открытым ключом могут также использоваться для отправки вместе с сообщением ―цифровой подписи‖, подтверждающей, что данное сообщение было действительно отправлено владельцем открытого ключа. Наиболее популярной несимметричной системой шифрования является RSA (это инициалы трех разработчиков данного алгоритма). Как правило, симметричные алгоритмы являются более быстродействующими, чем несимметричные, однако на практике обе схемы часто применяются совместно, когда алгоритм с открытым ключом используется для шифрования случайным образом сгенерированного ключа шифрования, а уже этот случайный ключ для шифровки самого сообщения с применением некоторого симметричного алгоритма.

Вспомогательные процедуры

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

Авторизация и аутентификация

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

139