- •Часть IV
- •Глава 13 Восстановление
- •13.1. Введение
- •13.2. Транзакции
- •13.3. Восстановление транзакции
- •13.4. Восстановление системы
- •13.5. Восстановление носителей
- •13.6. Двухфазная фиксация
- •13.7. Поддержка языка sql
- •13.8. Резюме
- •Глава 14 Параллелизм
- •14.1. Введение
- •14.2. Три проблемы параллелизма
- •14.3. Блокировка
- •14.4. Решение проблем параллелизма
- •14.5. Тупиковая ситуация
- •14.6. Способность к упорядочению
- •14.7. Уровни изоляции
- •14.8. Преднамеренная блокировка
- •IX s
- •14.9. Поддержка блокировок в sql
- •14.10. Резюме
- •14.13. Papadimitriou с. The Theory of Database Concurrency Control.— Rockville, Md.: Computer Science Press, 1986.
- •Глава 15 Безопасность
- •15.1. Введение
- •15.2. Общие соображения
- •15.3. Избирательное управление доступом
- •15.4. Модификация запроса
- •15.5. Обязательное управление доступом
- •15.6. Шифрование данных
- •Стандарт шифрования данных
- •15.7. Поддержка мер обеспечения безопасности в языке sql
- •15.8. Резюме
15.5. Обязательное управление доступом
Методы обязательного управления доступом применяются к базам данных, в которых данные имеют достаточно статичную или жесткую структуру, свойственную, например, правительственным или военным организациям. Как уже отмечалось, основная идея заключается в том, что каждый объект данных имеет некоторый уровень классификации, например: секретно, совершенно секретно, для служебного пользования и т.д., а каждый пользователь имеет уровень допуска с такими же градациями, что и в уровне классификации. Предполагается, что эти уровни образуют строгий иерархический порядок, например: совершенно секретно > секретно > для служебного пользования и т.д. Тогда на основе этих сведений можно сформулировать два очень простых правила безопасности.
1. Пользователь i имеет доступ к объекту j, только если его уровень допуска больше или равен уровню классификации объекта.
2. Пользователь i может модифицировать объект j, только если его уровень допуска равен уровню классификации объекта j.
Правило 1 достаточно очевидно, а правило 2 требует дополнительных разъяснений. Прежде всего, следует отметить, что по-другому второе правило можно сформулировать так: любая информация, записанная пользователем i, автоматически приобретает уровень, равный уровню классификации i. Такое правило необходимо, например, для того, чтобы предотвратить запись секретных данных, выполняемую пользователем с уровнем допуска "секретно", в файл с меньшим уровнем классификации, что нарушает всю систему секретности.
В последнее время методы обязательного управления доступом получили широкое распространение. Дело в том, что согласно требованиям министерства обороны США (U.S. Department of Defense — DoD) в любой используемой в этом ведомстве системе должно поддерживаться обязательное управление доступом. Поэтому разработчикам и поставщикам СУБД пришлось вступить в соперничество за разработку методов такого управления. Сами требования к такому управлению изложены в двух важных публикациях министерства, которые неформально называются "оранжевой" книгой (Orange Book) [15.1] и "розовой" книгой (Lavender Book) [15.2]. В "оранжевой" книге перечислен набор требований к безопасности для некой "надежной вычислительной базы" (Trusted Computing Base— ТСВ), а в "розовой" книге дается интерпретация этих требований для систем управления базами данных.
Заданные в [15.1, 15.2] методы управления обязательным доступом на самом деле являются частью более общей классификации уровней безопасности, которые будут изложены здесь в очень краткой форме. Прежде всего, в этих документах определяется четыре класса безопасности (security classes) — D, С, В и А. Среди них класс D наименее безопасный, класс С — более безопасный, чем класс D, и т.д. Говорят, что класс D обеспечивает минимальную защиту, класс С— избирательную, класс В— обязательную, а класс А — проверенную защиту.
• Избирательная защита. Класс С делится на два подкласса— С1 и С2 (где подкласс С1 менее безопасен, чем подкласс С2), которые поддерживают избирательное управление доступом в том смысле, что управление доступом осуществляется по усмотрению владельца данных (точно так же, как это было описано выше в этой главе).
• Согласно требованиям класса С1 необходимо разделение данных и пользователя, т.е. наряду с поддержкой концепции взаимного доступа к данным здесь возможно также организовать раздельное использование данных пользователями.
• Согласно требованиям класса С2 необходимо дополнительно организовать учет на основе процедур входа в систему, аудита и изоляции ресурсов.
• Обязательная защита. Класс В содержит требования к методам обязательного управления доступом и делится на три подкласса — В1, В2 и ВЗ (где В1 является наименее, а ВЗ — наиболее безопасным подклассом).
• Согласно требованиям класса В1 необходимо обеспечить "отмеченную защиту" (это значит, что каждый объект данных должен содержать отметку о его уровне классификации, например: секретно, для служебного пользования и т.д.), а также неформальное сообщение о действующей стратегии безопасности.
• Согласно требованиям класса В2 необходимо дополнительно обеспечить формальное утверждение о действующей стратегии безопасности, а также обнаружить и исключить плохо защищенные каналы передачи информации. (Подробнее вопросы управления выводом обсуждаются в комментариях к [15.6].)
• Согласно требованиям класса ВЗ необходимо дополнительно обеспечить поддержку аудита и восстановления данных, а также назначение администратора режима безопасности.
• Проверенная защита. Класс А является наиболее безопасным и согласно его требованиям необходимо математическое доказательство того, что данный метод обеспечения безопасности совместимый и адекватен заданной стратегии безопасности (!).
Хотя некоторые коммерческие СУБД обеспечивают обязательную защиту на уровне класса В1, обычно они обеспечивают избирательное управление на уровне класса С2.
Терминология. СУБД, в которых поддерживаются методы обязательной защиты, часто называются системами с многоуровневой защитой [15.12, 15.15], а также надежными системами [15.17].