Скачиваний:
38
Добавлен:
01.04.2014
Размер:
539.65 Кб
Скачать

15.8. Резюме

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

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

Затем кратко рассматривались методы обязательного управления, согласно кото­рым каждый объект обладает уровнем классификации и каждый пользователь имеет уровень допуска. Помимо описания правил безопасности для такой схемы, также кратко рассматривалась классификация мер безопасности, регламентированная ми­нистерством обороны США [15.1, 15.2].

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

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

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

Упражнения

15.1. Базовое отношение STATS выглядит следующим образом:

STATS (USERID, SEX, DEPENDENTS, JOB, SALARY, TAX, AUDITS) PRIMARY KEY (USERID)

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

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

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

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

г) пользователь Nash обладает правом извлечения целого отношения и об­новления только атрибутов SALARY и TAX;

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

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

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

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

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

15.2. Рассмотрите, как следует расширить синтаксис утверждения CREATE SECURITY RULE для включения в него управления такими операциями, как создание (CREATE BASE RELATION) и удаление базового отношения (DESTROY BASE RELATION), создание (CREATE VIEW) и удаление пред­ставления (DESTROY VIEW), создание (CREATE SECURITY RULE) и уда­ление правила безопасности (DESTROY SECURITY RULE) и т.д.

15.3. Расшифруйте приведенный ниже зашифрованный текст, созданный в стиле, подобном тому, который был использован в примере этой главы со строкой as kingfishers catch fire, но с использованием другого 5-символьного ключа шифрования.

FNWAL JPVJC FPEXE ABWNE AYEIP SUSVD

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

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

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

15.7. Запишите утверждения SQL для удаления привилегий, заданных в решении для предыдущего упражнения.

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

Обширный обзор по методам обеспечения безопасности представлен в [15.9], а более под­робное техническое описание этой темы — в [15.5]. Остальные приведенные здесь ссылки указывают на технические документы, статьи, учебные пособия и научно-исследовательс­кие работы по различным аспектам проблемы обеспечения безопасности.

15.1. U.S. Department of Defense. Trusted Computer System Evaluation Criteria ("оранжевая" книга). — DoD National Computer Security Center, 1985.

15.2. U.S. Department of Defense. Trusted Database Management System Interpretation ("розовая" книга). — DoD National Computer Security Center, 1991.

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

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

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

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

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

Прекрасное учебное пособие, посвященное методам обеспечения безопасности с описанием избирательных и обязательных методов управления доступом (здесь они называются методами управления потоком), методов шифрования данных и управления выводом (эта проблема характерна для статистических баз данных). Здесь стоит несколько подробнее остановиться на последней из пере­численных выше проблем. Статистической базой данных (в излагаемом здесь контексте) называется база данных, в которой допускаются запросы для вывода некоторой итоговой информации (например, сумм и средних значений), но не допускаются запросы для вывода индивидуальной информации. Например, в такой базе данных запрос "Какова средняя зарплата программистов?" будет разрешен, а запрос "Какую зарплату получает программист Петров?" — нет.

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

1. Сколько существует программистов в возрасте между 25 и 30 годами, ко­торые проживают в Смоллвилле и получили образование в области со­временных языков программирования в университете Метрополиса?

2. Какова средняя зарплата программистов в возрасте между 25 и 30 годами, которые проживают в Смоллвилле и получили образование в области со­временных языков программирования в университете Метрополиса?

Если два этих запроса сформировать в один и результатом первой части за­проса (первого вопроса) будет "I", то вторая часть запроса будет недопусти­ма (поскольку на нее должна быть выдана точная зарплата данного програм­миста). Более подробные пояснения по данной проблеме приводятся в [15.4].

15.7. Diffe W., Hellman M.E. New Directions in Cryptography // IEEE Trans. on Information Theory. — 1976. — IT-22.

В статье излагаются теоретические основы для так называемых схем шифро­вания на основе открытого ключа. Как разъясняется в этой главе, в обычных схемах шифрования, например в стандарте шифрования данных DES [15.3], ключ шифрования держится в секрете. В схеме с открытым ключом, наобо­рот, используется два различных ключа: один для шифрования, другой для расшифровки. Причем в секрете держится только ключ расшифровки, а вы­вести его из ключа шифрования невозможно. Следовательно, в таких схемах каждый может создавать зашифрованные сообщения, но никто, кроме полу­чателя, не может расшифровать его (даже создатель этого сообщения).

15.8. Fagin R. On an Authorization Mechanism // ACM TODS. — 1978. — 3, № 3.

Подробное изложение поправки к [15.11] о некоторых условиях, способных привести к отмене привилегии, которую нельзя отменить с помощью меха­низма, описанного в [15.11].

15.9. Fernandez E.B., Summers R.C., Wood С. Database Security and Integrity.— Reading, Mass.: Addison-Wesley, 1981.

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

15.11. Griffiths P.P., Wade B.W. An Authorization Mechanism for a Relational Data Base System // ACM TODS. — 1976. — 1, № 3.

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

15.12. Jajodia S., Sandhu R. Toward a Multilevel Secure Relational Data Model // Proc. 1991 ACM SIGMOD Intern. Conf. on Management of Data. — Denver, Col., 1991.

Как объяснялось в этой главе, "многоуровневая структура" в контексте сис­темы безопасности относится к системе, в которой поддерживаются методы обязательного управления доступом. В статье сделано утверждение о том, что вся текущая деятельность в этой области в основном выполняется спон­танно, поскольку не существует единого мнения в отношении основных кон­цепций. Кроме того, в этой работе подчеркивается необходимость положить начало формальным принципам многоуровневых систем. Эти вопросы явля­ются более тонкими, чем может показаться на первый взгляд. Например, предположим, что некоторому пользователю не положено знать о существо­вании некоторых поставщиков (например, поставщиков со статусом выше 20). В таком случае предоставление пользователю возможности организовать представление базового отношения S, из которого исключены такие постав­щики, могло бы прийти в противоречие с фактом существования таких по­ставщиков. Дело в том, что попытка вставить данные о новом поставщике в это представление может закончиться неудачно, если он имеет такой же но­мер, которым уже обладает некоторый скрытый поставщик.

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

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

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

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

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

15.16. Stonebraker M.R., Wong E. Access Control in a Relational Data Base Management System by Query Modification // Proc. ACM National Conference. — 1974.

В статье впервые предложен механизм модификации запросов на основе сис­темы INGRES (здесь используется термин "query modification").

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

Краткий обзор и обширный набор ссылок на работы о "надежных" или мно­гоуровневых системах.

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

15.1. а) CREATE SECURITY RULE AАA

GRANT RETRIEVE ON STATS TO Ford ;

б) CREATE SECURITY RULE BBB

GRANT INSERT, DELETE ON STATS TO Smith ;

в) CREATE SECURITY RULE CCC

GRANT RETRIEVE

ON STATS WHERE STATS. USERID - USER ()

TO ALL;

Обратите внимание на использование в этом правиле встроенной функции USER.

г) CREATE SECURITY RULE DDD

GRANT RETRIEVE, UPDATE ( SALARY, TAX )

ON STATS

TO Nash ;

д) CREATE SECURITY RULE EEE

GRANT RETRIEVE ( USERID, SALARY, TAX )

ON STATS

TO Todd ;

e) CREATE SECURITY RULE FFF

GRANT RETRIEVE ( USERID, SALARY, TAX ),

UPDATE ( SALARY, TAX )

ON STATS

TO Ward ;

ж) CREATE SECURITY RULE GGG

GRANT ALL

ON STATS WHERE STATS. JOB = 'Проповедник'

TO Pope ;

з) RANGE OF TX IS STATS ;

CREATE SECURITY RULE HHH

GRANT DELETE

ON STATS WHERE

COUNT (TX WHERE TX.JOB,STATS.JOB ) > 10 TO Jones ;

и) CREATE VIEW SALS AS

( STATS. JOB,

MAX(TX.SAL WHERE TX.JOB = STATS.JOB) AS MAXSAL, MIN(TX.SAL WHERE TX.JOB = STATS.JOB) AS MINSAL ) ;

CREATE SECURITY RULE III

GRANT RETRIEVE CN SALS TO King ;

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

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

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

EYES I DARE NOT MEET IN DREAMS

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

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

15.6. а) GRANT SELECT ON STATS TO Ford ;

б) GRANT INSERT, DELETE ON STATS TO Smith ;

в) CREATE VIEW MINE AS

SELECT STATS.*

FROM STATS

WHERE STATS. USERID = USER GRANT SELECT ON MINE TO PUBLIC ;

Обратите внимание, что в стандарте SQL поддерживается встроенная функ­ция USER.

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

д) CREATE VIEW UST AS

SELECT STATS.USERID, STATS.SALARY, STATS.TAX

FROM STATS

GRANT SELECT ON UST TO Todd ;

e) GRANT SELECT, UPDATE ( SALARY, TAX ) CN UST TO Ward ;

ж) CREATE VIEW PREACHERS AS

SELECT STATS.*

FROM STATS

WHERE STATS. JOB = 'Проповедник' ;

GRANT ALL PRIVILEGES ON PREACHERS TO Pope ;

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

з) CREATE VIEW SPECIALISTS AS

SELECT STX.*

FROM STATS AS STX

WHERE ( SELECT COUNT(*)

FRОM STATS AS STY

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

GRANT DELETE ON SPECIALISTS TO Jones ;

и) CREATE VIEW SALS AS

SELECT STATS. JOB,

MAX ( STATS. SALARY ) AS MAXSAL,

MIN ( STATS. SALARY ) AS MINSAL

FROM STATS

GROUP BY STATS.JOB ;

GRANT SELECT ON SALS TO King ; ;

15.7. а) REVOKE SELECT ON STATS FRОM Ford RESTRICT ;

б) REVOKE INSERT, DELETE ON STATS FRОM Smith RESTRICT ;

в) REVOKE SELECT ON MINE FRОM PUBLIC RESTRICT ;

г) REVOKE SELECT, UPDATE ( SALARY, TAX )

ON STATS FROM Nash RESTRICT ;

д) REVOKE SELECT ON UST FROM Todd RESTRICT ;

e) REVOKE SELECT, UPDATE ( SALARY, TAX )

ON UST FROM Ward RESTRICT ;

ж) REVOKE ALL PRIVILEGES ON PREACHERS FROM Pope RESTRICT ;

з) REVOKE DELETE ON SPECIALISTS FROM Jones RESTRICT ;

и) REVOKE SELECT ON SALS FROM King RESTRICT ;

Соседние файлы в папке Дейтл Введ в БД