Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемНаталья Тюрикова
1 1
2 SQL Server 2005, как MLS система. Докладчик: Щербатов Евгений Компания: SMART-EX Астана 2005
3 RLS CLS MLS RLS – Row Level Security. Контроль доступа к данным на уровне строк таблицы. RLS – Row Level Security. Контроль доступа к данным на уровне строк таблицы. CLS – Cell Level Security. Контроль доступа к данным на уровне ячеек таблицы. CLS – Cell Level Security. Контроль доступа к данным на уровне ячеек таблицы. MLS – Multi Level Secure. MLS – Multi Level Secure.
4 Редакции SQL Server 2005 Workgroup Express Standard Developer Mobile Enterprise Evaluation
5 Способы защиты данных в SQL Server 2005 query SQL
6 Доступ к таблице Пациенты CLS CLS CLS CLS RLS Главврач Завотделения Врач
7 Доступ к таблице Пациенты CLS CLS CLS CLS RLS Главврач Завотделения Врач
8 Доступ к таблице Пациенты CLS CLS CLS CLS RLS Главврач Завотделения Врач
9 Доступ к таблице Пациенты CLS CLS CLS CLS RLS Главврач Завотделения Врач
10 RLS, как часть Сервера Приложений ПреимуществаНедостатки Широкие возможности выбора методов реализации Изменение политики безопасности приводит к изменению кода программы Использование высокоуровневых языков программирования Существует возможность несанкционированного доступа к данным в обход сервера приложений. SELECT * FROM T1 WHERE for User1 S E L E C T * F R O M T 1 SELECT * FROM T1 SELECT * FROM T1 WHERE for User3 SELECT * FROM T1 WHERE for User2 Сервер приложений User1 User2 User3 Query Analyzer SELECT * FROM T1
11 RLS в хранимых процедурах ПреимуществаНедостатки Несанкционированный доступ к данным посредством третьих приложений не принесет результата Изменение политики безопасности требует пересмотреть и обновить код всех хранимых процедур Средства отчетности не работают с хранимыми процедурами Возможности языка хранимых процедур ограничены User1 Report Tool User2 Query Analyzer SP2 SP4 SP5 SP3 RLS SP1 Execute SP1 Execute SP3 Execute SP5
12 RLS и представления ПреимуществаНедостатки Несанкционированный доступ к данным посредством третьих приложений не приносит результата Снижается скорость работы запросов Средства отчетности работают с представлениями Нет необходимости что-либо программировать User1 User2 Report Tool Query Analyzer Base Table View RLS
13 Основные понятия RLS Метка – это сущность, описывающая уровень доступа к данным. Назначается каждому пользователю системы и каждой строке таблицы, защищенной RLS. Метка – это сущность, описывающая уровень доступа к данным. Назначается каждому пользователю системы и каждой строке таблицы, защищенной RLS. Доминирование. Если пользователь имеет доступ к записи, помеченной какой-либо меткой, то метка пользователя доминирует над меткой записи. Если это не так, то пользователь видеть запись не должен. Доминирование. Если пользователь имеет доступ к записи, помеченной какой-либо меткой, то метка пользователя доминирует над меткой записи. Если это не так, то пользователь видеть запись не должен.
14 Уровни безопасности 1 TOP SECRET Доступ к информации SECRET PUBLIC
15 Разным пользователям – разный доступ IDNameClassification 1 Иванов Иван Иванович SECRET 2 Петров Петр Петрович TOP SECRET 3 Васильев Василий Васильевич PUBLIC IDNameClassification1 Иванов Иван Иванович SECRET 3 Васильев Василий Васильевич PUBLIC IDNameClassification3 PUBLIC SELECT * FROM Table1 Table1 Завотделения SECRET Медсестра PUBLIC
16 Уровни безопасности 2 TOP SECRET DEPARTMENT 1 Доступ к информации Отделы SECRET PUBLIC DEPARTMENT 2 DEPARTMENT 3
17 Разным пользователям – разный доступ IDNameClassification 1 Иванов Иван Иванович SECRET, DEPARTMENT 1 2 Петров Петр Петрович TOP SECRET 3 Васильев Василий Васильевич PUBLIC IDNameClassification2 Петров Петр Петрович TOP SECRET 3 Васильев Василий Васильевич PUBLIC IDNameClassification1 Иванов Иван Иванович SECRET, DEPARTMENT 1 3 Васильев Василий Васильевич PUBLIC IDNameClassification3 PUBLIC SELECT * FROM Table1 Table1 Главврач TOP SECRET Завотделения SECRET, DEPARTMENT 1 Медсестра PUBLIC
18 Структура меток и категорий Правило (Any, All, InverseAll) Отношение (1..1, 0..*, 1..*) Категория Маркер Иерархичность (Да/Нет) Домен Метка Маркер
19 Характеристики категорий АтрибутыОписание Домен Набор маркеров в категории Иерархичность (Да или Нет) В иерархической категории существует упорядоченность значений. При этом каждый маркер приводится в соответствие маркерам на том же или более низких уровнях Отношение(мощность) Атрибут определяет, сколько маркеров данной категории может присутствовать в метке. Правило сравнения Правило определяет, должна ли для предоставления доступа метка пользователя иметь любой (Any) или все (All) маркеры, связанные с объектом. Альтернативное правило (InverseAll) означает, что для доступности объекта он не должен иметь ни одного маркера, содержащегося в метке пользователя
20 Категории БД клиники КатегорияДоменИерархияОтношениеПравило Отделы TOP SECRET SECRET PUBLIC DEPARTMENT 1DEPARTMENT 2DEPARTMENT 3 Доступ к информации Отделы Доступ к информации TOP SECRET PUBLIC SECRET Да Нет * Any All DEPARTMENT 1 DEPARTMENT 2 DEPARTMENT 3
21 Категории БД клиники КатегорияДоменИерархияОтношениеПравило TOP SECRET SECRET PUBLIC DEPARTMENT 1DEPARTMENT 2DEPARTMENT 3 Доступ к информации Отделы Доступ к информации TOP SECRET PUBLIC SECRET Да Нет * Any All Отделы DEPARTMENT 1 DEPARTMENT 2 DEPARTMENT 3
22 Определение доминирующей метки Начало Есть ли еще категории для проверки? Маркеры в А соответствуют маркерам В? А доминирует над В? True Доступ предоставляется А доминирует над В? False В доступе отказывается Сравнение маркеров из этой категории Да Нет
23 Any Any Начало Есть ли еще маркеры в В? Проверить, имеется ли в А этот маркер или маркер высшего уровня Иерархическая категория? Проверить, присутствует ли в метке А этот маркер Прошла ли проверка? Проверка категории прошла Проверка категории не прошла × Да Нет Да
24 All All Начало Есть ли еще маркеры в В? Проверить, имеется ли в А этот маркер или маркер высшего уровня Иерархическая категория? Проверить, присутствует ли в метке А этот маркер Прошла ли проверка? Проверка категории прошла Проверка категории не прошла × Да Нет Да
25 Реализация RLS RLS реализуется с помощью механизма представлений (view) SQL Server. Пользователю предоставляется доступ к представлению, построенному на основе защищаемой таблицы, но отказывается в доступе к базовой таблице. При этом для каждой БД необходимо: создать дополнительные таблицы для определения категорий, маркеров и меток; создать роли для всех значений маркеров. Кроме того, для каждой защищаемой таблицы необходимо: произвести небольшую модификацию базовой таблицы; определить представление.
26 Структурная модель RLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete
27 Дополнительные таблицы БД определяют: категории и их атрибуты; значения маркеров и соответствующие им роли; иерархии маркеров; экземпляры уникальных комбинации маркеров; связи значений маркеров с экземплярами меток.
28 Структурная модель RLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete
29 vwVisibleLabels SELECT Id, Label.ToString() FROM tblUniqueLabel WITH (NOLOCK) WHERE … ?
30 ANY Id IN ( SELECT KeyMappingId FROM tblUniqueLabelMarking WITH(NOLOCK) WHERE CategoryId = AND IS_MEMBER ( MarkingRoleName ) = 1 )
31 ALL 1 = ALL( SELECT IS_MEMBER ( MarkingRoleName ) FROM tblUniqueLabelMarking WITH(NOLOCK) WHERE CategoryID = AND UniqueLabelID = tblUniqueLabel.ID )
32 vwVisibleLabels CREATE VIEW vwVisibleLabels AS SELECT ID, Label.ToString() FROM tblUniqueLabel WITH ( NOLOCK ) WHERE --Уровни доступа по секретности ID IN ( SELECT KeyMappingID FROM tblUniqueLabelMarking WITH (NOLOCK) WHERE CategoryID = 1 AND IS_MEMBER ( MarkingRoleName ) = 1 ) –-Уровни доступа по отделениям AND 1 = ALL( SELECT IS_MEMBER ( MarkingRoleName ) FROM tblUniqueLabelMarking WHERE CategoryID = 2 AND UniqueLabelID = tblUniqueLabel.ID )
33 Структурная модель RLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete
34 Модификация базовой таблицы IDColumn1Column2 RLSMappingID tblUniqueLabel Новый столбец Внешний ключ Базовая таблица Таблица уникальных меток
35 Структурная модель RLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete
36 Представление первого слоя CREATE VIEW UserTable AS SELECT < столбцы базовой таблицы без RLSMappingID или других служебных столбцов vwVisibleLabels > FROM tblBaseTable (READCOMMITTED), vwVisibleLabels WHERE tblBaseTable.RLSMappingID = vwVisibleLabels.ID GO GRANT SELECT ON UserTable TO DENY ALL ON tblBaseTable TO
37 Структурная модель RLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры Read Insert Update Delete IO Update IO Delete IO Insert
38 CLS – защита данных на уровне ячеек CLS обеспечивает: поддержку произвольного назначения меток безопасности ячейкам; динамическую оценку метки пользователя для показа только ему доступных ячеек; приемлемое снижение производительности для больших выборок.
39 Структурная модель CLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete Симметричные ключи и сертификаты Хранимая процедура CLS
40 Шифрование в SQL Server 2005 Service Master Key Database Master Key CertificatesAsymmetric Keys Symmetric Keys Data Database Level SQL Server Level Windows Level Service Master Key encrypted with DPAPI
41 Пример расшифровки данных CREATE VIEW MyTable AS SELECT ID, DecryptByKey ( SensitiveData ), DecryptByKey ( OtherSensitiveData ), NonSensitiveData, FROM BaseTable
42 Хранимая процедура CLS CREATE PROCEDURE usp_EnableCellVisibility WITH EXECUTE AS 'KeyBroker' AS nvarchar(256) nvarchar(256) DECLARE Key_Cursor CURSOR LOCAL FORWARD_ONLY STATIC FOR SELECT KeyName, CertName FROM vwVisibleLabels EXECUTE AS CALLER OPEN Key_Cursor REVERT FETCH NEXT FROM WHILE = 0 BEGIN EXEC (' OPEN SYMMETRIC KEY ' + ' DECRYPTION BY CERTIFICATE ' ) FETCH NEXT FROM END CLOSE Key_Cursor DEALLOCATE Key_Cursor
43 Структурная модель CLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete Хранимая процедура CLS Симметричные ключи и сертификаты
44 Преобразование типов данных при шифровании IDColumn1Column2... ColumnN Базовая таблица Encrypt varchar nvarchar varbinary Column3
45 Структурная модель CLS Базовая таблица Представление, доступное пользователю Представление с JOIN ON vwVisibleLabels Роли БД Метки и определения категорий Маркеры +ID маркеров vwVisibleLabels Поддерживаемые структуры IO Insert IO Update IO Delete Read Insert Update Delete Симметричные ключи и сертификаты Хранимая процедура CLS
46 Представление CLS CREATE VIEW UserTable AS SELECT ID, DecryptByKey ( SensitiveData ), CONVERT ( money, CONVERT(varchar(50), DecryptByKey ( SensitiveMoneyData ) ) ), NonSensitiveData, FROM tblBaseTable (READCOMMITTED), vwVisibleLabel WHERE tblBaseTable.RLSMappingID = vwVisibleLabel.ID GRANT SELECT ON UserTable TO DENY ALL ON tblBaseTable TO
47 Влияние на производительность Объем тестируемого набора данных : 1 миллион записей Спецификации тестового сервера: Процессор 2 * 550 МГц Память 512 Мб Диск (без EFS) 4 * об/мин 1 * 20 Гб с оптическим каналом SAN ОС Windows 2003 Standard СУБД SQL Server 2005 Beta 2.NET Framework 1.1 для кода приложения 2.0 для кода SQL Server Усредненные результаты:Операции Снижение производительности Вставка записей 40% ~40% Запрос на выборку
48 Итоги При реализации RLS/CLS технологии применена теория меток. Это позволяет создавать очень гибкие политики безопасности. При реализации RLS/CLS технологии применена теория меток. Это позволяет создавать очень гибкие политики безопасности. Для защиты таблиц базы данных RLS/CLS сервисами достаточно определить политику безопасности и указать SQL Server список защищаемых таблиц. Для защиты таблиц базы данных RLS/CLS сервисами достаточно определить политику безопасности и указать SQL Server список защищаемых таблиц. При реализации RLS/CLS сервисов использовались решения, которые позволяют сохранить высокую скорость обработки данных, защищенных RLS/CLS. При реализации RLS/CLS сервисов использовались решения, которые позволяют сохранить высокую скорость обработки данных, защищенных RLS/CLS.
49 Ресурсы echnol/sql/2005/ echnol/sql/2005/
50 50
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.