Скачиваний:
82
Добавлен:
02.05.2014
Размер:
2.28 Mб
Скачать

16.7. Резюме

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

Защита обеспечивается подсистемой защиты СУБД, проверяющей соответствие всех поступающих запросов существующим ограничениям защиты, которые со- храняются в системном каталоге. Сначала были рассмотрены избирательные схемы защиты, в которых доступ к конкретному объекту определялся владельцем объекта. Для каждого ограничения безопасности в избирательной схеме задаются имя, мно- жество привилегий (RETRIEVE, UPDATE и т.д.), соответствующая переменная- отношение (т.е. данные, к которым применимы указанные ограничения) и множест- во пользователей. Такие правила могут применяться для организации управления как зависящего, так и не зависящего от конкретных значений, а также для ста- тистически-обобщенного и контекстно-зависимого управления. Для регистрации попыток нарушения защиты может использоваться контрольное слежение за вы- полнением операций. В данной главе было представлено краткое описание метода реализации избирательной схемы защиты на основе механизма модификации за- проса. Впервые эта технология была применена в прототипе системы INGRES с ис- пользованием средств языка QUEL.

Далее кратко рассматривались методы мандатного управления, согласно которым каждый объект должен обладать некоторым классификационным уровнем (или гри- фом), а каждому пользователю должен быть присвоен определенный уровень допуска. Помимо описания правил доступа для такой схемы, кратко рассматривалась классифика- ция мер безопасности, регламентированная Министерством обороны США [16.19], [16.20]. Дополнительно приводились идеи создания многоуровневых переменных- отношений и методы полиреализации.

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

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

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

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

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

Упражнения

16.1. Пусть базовая переменная-отношение STATS выглядит так, как в разделе 16.4.

STATS { NAME, SEX, CHILDREN, OCCUPATION, SALARY, TAX, AUDITS } PRIMARY KEY { NAME }

Используя гипотетический язык, представленный в разделе 16.2, запишите опреде- ления ограничений защиты для предоставления перечисленных ниже привилегий:

а) пользователь Ford обладает правом выборки из всего отношения;

б) пользователь Smith обладает правом вставки и удаления данных для всего от- ношения;

в) каждый пользователь обладает правом выборки кортежа (одного) со своими личными данными;

г) пользователь Nash обладает правом выборки из всего отношения и правом об- новления атрибутов SALARY и TAX (только);

д) пользователь Todd обладает правом выборки атрибутов USERID, SALARY и TAX (только);

е) пользователь Ward обладает такими же правами выборки, как и пользователь Todd, а также правом обновления атрибутов SALARY и TAX (только);

ж) пользователь Pope обладает всеми правами (извлечения, обновления, вставки и удаления), но только в отношении кортежей с данными о проповедниках;

з) пользователь Jones обладает правом удаления кортежей с данными о лицах, за- нимающих неспециализированные должности, т.е. должности, которые зани- мают более 10 работников;

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

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

  2. Еще раз обратимся к рис. 16.2 и предположим, что из посторонних источников получены сведения о том, что персона с именем ' Hal' является домохозяйкой с двумя детьми. Запишите последовательность статистических запросов, позво- ляющих определить размер выплачиваемых ею налогов, используя подходящий индивидуальный трекер. Предположим (как и в разделе 16.4), что в системе не разрешены запросы, имеющие результирующие множества с кардинальностью менее 2 или более 8.

  3. Повторите упр. 16.3, но используя общий трекер вместо индивидуального.

  4. Расшифруйте приведенный ниже зашифрованный текст, созданный по тому же принципу, который был использован в примере из настоящей главы для строки AS KINGFISHERS CATCH FIRE, но с помощью другого 5-символьного ключа шиф- рования.

F N W A L J Р V J С F Р Е X Е А В W N Е A Y Е I Р S U S V D

  1. Испытайте RSA-схему шифрования на основе открытого ключа с р = 7, g = 5 и е = 17 для открытого текста Р = 3.

  2. Какие проблемы реализации или проблемы другого типа могут возникнуть при ис- пользовании шифрования?

  3. Используя язык SQL, запишите решения для упр. 16.1.

  4. Запишите SQL-команды для удаления привилегий, установленных в предыдущем упражнении.

Список литературы

Обширный обзор методов защиты представлен в книге Кастано [16.2], а более подробное техническое описание — в книге Деннинга [16.5]. Остальные приведен- ные здесь ссылки указывают на технические документы или статьи (учебные посо- бия и научно-исследовательские работы) по различным аспектам проблемы защи- ты данных, включая несколько журнальных публикаций.

  1. Bell D.E., La Padula L.J. Secure Computer Systems: Mathematical Foundations and Model. — MITRE Technical Report M74-244. — May, 1974.

  2. Castano S., Fugini M., Martella G., Samarati P. Database Security. — New York, N.Y.: ACM Press/Reading, Mass.: Addison-Wesley. — 1995.

  3. Daly J. Fingerprinting a Computer Security Code // Computerworld. — July, 1992.

  4. Date. C.J. Security // Chapter 4 in C. J. Date. An Introduction to Database Systems: Volume II. — Reading. Mass.: Addison-Wesley, 1983.

  5. Denning D.E. Cryptography and Data Security. — Reading, Mass.: Addison-Wesley, 1983.

  6. Denning D.E., Denning P.J. Data Security // ACM Сотр. Surv. — September, 1979. — 11, №3.

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

  1. Diffe W., Hellman М.Е. New Directions in Cryptography // IEEE Trans, on Information Theory. — November, 1976. — IT-22.

  2. Fagin R. On an Authorization Mechanism // ACM TODS. — September, 1978. — 3, № 3. Подробное изложение поправки к [16.11] о некоторых условиях, способных при- вести к отмене привилегии, которую нельзя отменить с помощью механизма, опи- санного в [16.11].

  3. Gagliardi R., Lapis G., Lindsay В. A Flexible and Efficient Database Authorization Facility // IBM Research Report RJ6826. — May, 1989.

16.10.Gardner M. A New Kind of Cipher That Would Take Millions of Years to Break // Scientific American. — August, 1977. — 237, № 2.

Прекрасное неформальное введение в теорию шифрования с использованием от- крытых ключей, хотя выбранное название несколько преувеличено [16.12], [16.22]. 16.11.Griffiths P.P., Wade B.W. An Authorization Mechanism for a Relational Data Base System // ACM TODS. — September, 1976. — 1, № 3.

Описание механизмов предоставления (GRANT) и отмены (REVOKE) привилегий, впервые предложенных для системы System R. Впоследствии эта схема в несколь- ко измененном виде была включена в стандарт языка SQL.

16.12.Hawkes N. Breaking into the Internet // London Times. — March 18-th, 1996.

Описание "взлома" опытным специалистом в области компьютерных технологий RSA-схемы посредством измерения продолжительности шифрования сообщений: "электронный эквивалент определения номера телефона по продолжительности поворота номеронабирателя".

16.13.Jajodia S., Sandhu R. Toward a Multilevel Secure Relational Data Model // Proc. 1991 ACM SIGMOD Intern. Conf. on Management of Data. — Denver, Col., June, 1991. Как объяснялось в разделе 16.3, "многоуровневая структура" в контексте средств защиты отншится к системе, в которой поддерживаются методы ман- датного управления доступом. В статье утверждается, что вся текущая дея- тельность в этой области, в основном, выполняется спонтанно, поскольку не

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

16.14.Lempel A. Cryptology in Transition // ACM Сотр. Surv.— December, 1979.— 11, № 4 (Special Issue on Cryptology).

Прекрасное учебное пособие по шифрованию и связанным с ним вопросам.

16.15. Rivest R.L., Shamir A., Adleman L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems // CACM. — February, 1978. — 21, № 3.

16.16.Smith K., Winslett M. Entity Modeling in the MLS Relational Model // Proc. 18th Intern. Conf. on Very Large Data Bases. — Vancouver, Can., August, 1992.

Аббревиатура MLS в заголовке статьи означает "многоуровневая защита" (MultiLevel Secure— MLS) [16.13]. В статье внимание акцентируется на смысле баз данных с такой защитой и предлагается предложение нового типа (BELIEVED BY) для определения операций выборки и обновления по отношению к некоторому особому состоянию базы данных, которое воспринимается или "принимается [как точно соответствующее]" некоторым пользователем. В статье утверждается, что этот подход поможет разрешить несколько проблем, существовавших при исполь- зовании прежних подходов [16.21].

16.17.Thuraisingham В. Current Status of R&D in Trusted Database Management Systems // ACM SIGMOD. — September, 1992. — 21, № 3.

Краткий обзор и обширный набор ссылок на работы о "надежных" или многоуров- невых системах (по состоянию на начало 1990-х годов).

16.18.U.S. Department of Commerce/National Bureau of Standards. Data Encryption Standard. — Federal Information Processing Standards Publication 46, January, 1977.

В работе дано определение официального стандарта шифрования данных (Data Encryption Standard— DES), используемого как федеральными учреждениями США, так и всеми желающими. Этот алгоритм шифрования/расшифровки (см. раздел 16.5) может быть реализован и на аппаратном уровне, например в микро- процессоре. При этом устройства с таким микропроцессором демонстрируют весьма высокую интенсивность обмена данными. В настоящее время существует несколько таких коммерческих устройств.

16.19.U.S. Department of Defense. Trusted Computer System Evaluation Criteria ("Оранжевая" книга). — Document № DoD 5200-28-STD, DoD National Computer Security Center. — December, 1985.

16.20.U.S. National Computer Security Center. Trusted Database Management System Interpretation ("Сиреневая" книга).— Document № NCSC-TG-201, Version 1.— April, 1991.

16.21.Winslett M., Smith K., Qian X. Formal Query Languages for Secure Relational Databases // ACM TODS. — December, 1994. — 19, № 4.

Продолжение работы [16.16].

16.22. Wolf R. How Safe Is Computer Data? A Lot of Factors Govern the Answer // San Jose Mercury News. — July 5-th, 1990.

Ответы к некоторым упражнениям

16.1.

а) AUTHORITY AAA

GRANT RETRIEVE ON STATS TO Ford ;

б) AUTHORITY BBB

GRANT INSERT, DELETE ON STATS TO Smith ;

в) AUTHORITY CCC

GRANT RETRIEVE

ON STATS

WHEN USER () = NAME

TO ALL ;

Здесь предполагается, что в качестве идентификаторов пользователей в системе применяются их имена. Обратите внимание на использование предложения WHEN и встроенной функции USER().

г) AUTHORITY DDD

GRANT RETRIEVE, UPDATE ( SALARY, TAX ) ON STATS TO Nash ;

д) AUTHORITY EES

GRANT RETRIEVE ( USERID, SALARY, TAX ) ON STATS TO Todd ;

е) AUTHORITY FFF

GRANT RETRIEVE { USERID, SALARY, TAX ),

UPDATE ( SALARY, TAX ) ON STATS TO Ward ;

ж) VAR PREACHERS VIEW

STATS WHERE OCCUPATION = 'Preacher' ;

AUTHORITY GGG GRANT ALL ON PREACHERS TO Pope ;

Обратите внимание на необходимость использования представления в данном случае.

з) VAR NONSPECIALIST VIEW

WITH ( STATS RENAME OCCUPATION AS X ) AS Tl, ( EXTEND STATS

ADD COUNT ( Tl WHERE X = OCCUPATION ) AS Y ) AS T2, ( T2 WHERE Y > 10 ) AS T3 : T3 { ALL BUT Y }

AUTHORITY HHH

GRANT DELETE

ON NONSPECIALIST

TO Jones ;

и) VAR JOBMAXMIN VIEW

WITH ( STATS RENAME OCCUPATION AS X ) AS Tl, ( EXTEND STATS

ADD MAX ( Tl WHERE X = OCCUPATION, SALARY ) AS MAXSAL, MIN { Tl WHERE X = OCCUPATION, SALARY ) AS MINSAL )

AS T2 :

T2 { OCCUPATION, MAXSAL, MINSAL }

AUTHORITY III

GRANT RETRIEVE ON JOBMAXMIN TO King ;

  1. Здесь необходимо отметить, что пользователя, который обладает привилегией соз- дания новой базовой переменной-отношения и действительно создает такую пере- менную-отношение, следует рассматривать как владельца этого нового объекта. В языке SQL владелец некоторой базовой переменной-отношения автоматически на- деляется всеми возможными привилегиями по отношению к нему, включая не только операции RETRIEVE, INSERT, UPDATE и DELETE, но и право передачи своих полномочий для данного отношения другим пользователям.

  2. Индивидуальный трекер для домохозяйки с именем ' Hal' будет иметь следующий вид.

CHILDREN > 1 AND NOT ( OCCUPATION = 'Homemaker' ) Рассмотрим приведенную ниже последовательность запросов. COUNT ( STATS WHERE CHILDREN > 1 j Результат: 6.

COUNT { STATS WHERE CHILDREN > 1 AND NOT

{ OCCUPATION = 'Homemaker' )

Результат: 5.

Следовательно, выражение

CHILDREN > 1 AND OCCUPATION = 'Homemaker'

единственным образом идентифицирует домохозяйку с именем ' Hal'.

SUM ( STATS WHERE CHILDREN > 1, TAX ) Результат: 48 ООО.

SUM ( STATS WHERE CHILDREN > 1 AND NOT

( OCCUPATION = 'Homemaker' ), TAX )

Результат: 46 ООО.

Отсюда следует, что размер налогов для домохозяйки с именем ' Hal' равен 2 ООО. |

16.4. Общий трекер в этом случае будет иметь следующий вид: SEX = 'F'. SUM ( STATS WHERE SEX = 'F', TAX )

Результат: 70 ООО.

SUM { STATS WHERE NOT ( SEX = 'F' ), TAX )

Результат: 16 ООО.

Следовательно, общий размер налогов составляет 86 ООО.

SUM ( STATS WHERE ( CHILDREN > 1 AND

OCCUPATION = 'Homemaker' ) OR SEX = 'F', TAX )

Результат: 72 ООО.

SUM ( STATS WHERE ( CHILDREN > 1 AND

OCCUPATION = 'Homemaker' ) OR NOT { SEX = 'F' ), TAX )

Результат: 16 ООО.

Сложив два последних результата (88 ООО) и вычтя из них полученное выше общее значение налогов (86 ООО), имеем, что размер налогов для домохозяйки 'Hal'равен 2 ООО. |

16.5. Открытый текст имеет следующий вид.

1. EYES I DARE NOT MEET IN DREAMS

Какой был использован ключ шифрования?

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

а) GRANT SELECT ON STATS TO Ford ;

б) GRANT INSERT, DELETE ON STATS TO Smith ;

в) CREATE VIEW MINE AS

SELECT STATS.* FROM STATS

WHERE STATS.NAME = CURRENT_USER ; GRANT SELECT ON MINE TO PUBLIC ;

Здесь предполагается, что в качестве идентификаторов пользователей приме- няются их имена. Обратите внимание на использование встроенного оператора CURRENT_USER().

г) GRANT SELECT, UPDATE ( SALARY, TAX } ON STATS TO Nash ;

д) CREATE VIEW UST AS

SELECT STATS.NAME, STATS.SALARY, STATS.TAX FROM STATS ;

GRANT SELECT ON UST TO Todd ;

При использовании языка SQL здесь потребуется применить представление, так как в нем не поддерживаются особые привилегии на выборку столбцов.

е) GRANT SELECT, UPDATE ( SALARY, TAX ) ON UST TO Ward ;

В этом решении используется то же представление, что и в предыдущем.

ж) CREATE VIEW PREACHERS AS

SELECT STATS.* FROM STATS

WHERE STATS.OCCUPATION = 'Preacher' ; GRANT ALL PRIVILEGES ON PREACHERS TO Pope ;

Обратите внимание на использование в данном примере сокращения ALL PRIVILEGES (все привилегии). (Директива ALL PRIVILEGES означает буквально не все привилегии, а лишь привилегии для данного объекта, которые один пользователь может делегировать другому с помощью директивы GRANT.)

з) CREATE VIEW NONSPECIALIST AS

SELECT STX.*

FROM STATS AS STX

WHERE ( SELECT COUNT(*)

FROM STATS AS STY

WHERE STY.OCCUPATION = STX.OCCUPATION ) > 10;

GRANT DELETE ON NONSPECIALIST TO Jones ;

и) CREATE VIEW JOBMAXMIN AS

SELECT STATS.OCCUPATION,

MAX ( STATS.SALARY ) AS MAXSAL,

MIN ( STATS.SALARY ) AS MINSAL FROM STATS

GROUP BY STATS.OCCUPATION ; GRANT SELECT ON JOBMAXMIN TO King ;

16.9.

а) REVOKE SELECT ON STATS FROM Ford RESTRICT ;

б) REVOKE INSERT, DELETE ON STATS FROM Smith RESTRICT j

в) REVOKE SELECT ON MINE FROM PUBLIC RESTRICT ;

r) REVOKE SELECT, UPDATE ( SALARY, TAX )

ON STATS FROM Nash RESTRICT ;

д) REVOKE SELECT ON UST FROM Todd RESTRICT ;

е) REVOKE SELECT, UPDATE ( SALARY, TAX )

ON UST FROM Ward RESTRICT ;

ж) REVOKE ALL PRIVILEGES ON PREACHERS FROM Pope RESTRICT ;

з) REVOKE DELETE ON NONSPECIALIST FROM Jones RESTRICT ;

и) REVOKE SELECT ON JOBMAXMIN FROM King RESTRICT ;

Глз.ва.

Оптимизация

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]