МРД. Категории

skaz54

New member
Сообщения
18
#1
Здравствуйте.
В правилах применения мандатного доступа есть правила:
5) категории C0 меньше категорий C1 (C0<C1), если все биты набора C0 являются
подмножеством набора бит C1;
6) категории С0 равны категориям C1 (C0==C1), если значения C0 и C1 совпадают;
7) операция записи разрешена, если L0==L1, iL0>=iL1 и C0==C1;
8) операция чтения разрешена, если L0>=L1, C0>=C1, ∀iL0, ∀iL1;

Получается, что если субъект имеет категорию_0, а объект имеет категорию_0 и категорию_1, то субъект не имеет доступа к объекту?
С0<C1.
А если субъект имеет категорию_0 и категорию_1, а объект имеет категорию_0, то субъект может только читать?
С0>C1.
Это так, или я что-то не понимаю?
Спасибо.
 

oko

New member
Сообщения
522
#2
to skaz54
У вас противоречие получается, поскольку не учтено, что любому объекту (например, файлу) можно присвоить только одну категорию и только один уровень. Это субъекту даны права на минимальные и максимальные доступные ему уровни и категории. Хотя во время сеанса работы с объектами, субъект обязан указать и конкретный уровень, и одну или несколько доступных ему категорий...
Подробнее про уровни и категории изложено тут...
Для упрощения такой пример:
  1. Есть два отдела сотрудников, первый из которых обрабатывает условные "секреты", а второй к ним не допущен. Все это в рамках одной системы (одной ОС, одной АС - не суть важно). Как разграничить доступ?
  2. Простой способ - дискреционная модель - положить "секреты" в одно место (один каталог), а остальную информацию в другой. Дать доступ к каталогу с "секретами" первому отделу (игра слов, ага), а второму запретить. Дать доступ всем в остальные каталоги...
  3. Добавим сюда еще один "секретный" отдел, у которого "секреты" уж очень "секретные". Чтобы не рушить схему выше, придется их класть в тот же первый каталог. Но тогда сотрудники первого отдела тоже смогут с ними ознакомиться. Для решения этой проблемы есть более тонкий способ - мандатный метод. Первый отдел будет иметь выбор между уровнем 0 и 1, а второй - между уровнями 0, 1 и 2. Каталогу с "особыми секретами" присвоен уровень 2, каталогу с "секретами" - 1, остальным - 0. Итог: первый отдел может по выбору работать со своими 1-секретами или с общей информацией. А второй отдел - со своими 2-секретами, 1-секретами первого отдела и со всей общей информацией...
  4. Только как быть с ситуацией, когда 1-секреты первого отдела - это только их секреты? Т.е. второй отдел с повышенной мандатной меткой к 1-секретам иметь доступа все равно не должен? Схема усложняется еще раз - вводятся мандатные категории. Каждый объект теперь имеет конкретный мандатный уровень, дискреционные права и мандатную категорию. Каждый сотрудник каждого отдела также имеет набор (на выбор при начале сеанса) из уровней и категорий. Тогда в рамках одного и того же отдела (одни и те же дискреционные и мандатные права) можно разграничить доступ к конкретным объектам (файлам, подкаталогам) за счет их меток категорий (например, начальник отдела владеет всеми категориями, а подчиненные только частью). Аналогичный механизм и между отделами из примера (второй отдел может получить доступ к 1-секретам первого отдела, если на эти объекты не установлена метка категорий, которыми не владеет второй отдел)...
 

skaz54

New member
Сообщения
18
#3
to skaz54
У вас противоречие получается, поскольку не учтено, что любому объекту (например, файлу) можно присвоить только одну категорию и только один уровень. Это субъекту даны права на минимальные и максимальные доступные ему уровни и категории. Хотя во время сеанса работы с объектами, субъект обязан указать и конкретный уровень, и одну или несколько доступных ему категорий...
Подробнее про уровни и категории изложено тут...
Для упрощения такой пример:
  1. Есть два отдела сотрудников, первый из которых обрабатывает условные "секреты", а второй к ним не допущен. Все это в рамках одной системы (одной ОС, одной АС - не суть важно). Как разграничить доступ?
  2. Простой способ - дискреционная модель - положить "секреты" в одно место (один каталог), а остальную информацию в другой. Дать доступ к каталогу с "секретами" первому отделу (игра слов, ага), а второму запретить. Дать доступ всем в остальные каталоги...
  3. Добавим сюда еще один "секретный" отдел, у которого "секреты" уж очень "секретные". Чтобы не рушить схему выше, придется их класть в тот же первый каталог. Но тогда сотрудники первого отдела тоже смогут с ними ознакомиться. Для решения этой проблемы есть более тонкий способ - мандатный метод. Первый отдел будет иметь выбор между уровнем 0 и 1, а второй - между уровнями 0, 1 и 2. Каталогу с "особыми секретами" присвоен уровень 2, каталогу с "секретами" - 1, остальным - 0. Итог: первый отдел может по выбору работать со своими 1-секретами или с общей информацией. А второй отдел - со своими 2-секретами, 1-секретами первого отдела и со всей общей информацией...
  4. Только как быть с ситуацией, когда 1-секреты первого отдела - это только их секреты? Т.е. второй отдел с повышенной мандатной меткой к 1-секретам иметь доступа все равно не должен? Схема усложняется еще раз - вводятся мандатные категории. Каждый объект теперь имеет конкретный мандатный уровень, дискреционные права и мандатную категорию. Каждый сотрудник каждого отдела также имеет набор (на выбор при начале сеанса) из уровней и категорий. Тогда в рамках одного и того же отдела (одни и те же дискреционные и мандатные права) можно разграничить доступ к конкретным объектам (файлам, подкаталогам) за счет их меток категорий (например, начальник отдела владеет всеми категориями, а подчиненные только частью). Аналогичный механизм и между отделами из примера (второй отдел может получить доступ к 1-секретам первого отдела, если на эти объекты не установлена метка категорий, которыми не владеет второй отдел)...
Спасибо. Но.
Посмотрел Менеджер файлов. И каталоги и файлы могут иметь не только одну категорию, а несколько. Корень вообще имеет все категории, а домашний каталог - категории пользователя.
Вопрос к Вашему примеру. А если есть командир, который может знать все секреты всех отделов и редактировать эти секреты?
У него должны быть все категории. А у каждого отдела (каталога) только одна категория.
Или для работы в каким-то одним каталогом надо выбирать при создании сессии только его категорию?
 

oko

New member
Сообщения
522
#4
to skaz54
Относительно менеджера файлов все верно. На / есть все категории, чтобы входящие в его состав каталогам и файлам (на любом уровне вложенности) тоже можно было поставить одну или несколько из всего набора категорий...
Что касается вопроса, то да, командиру (если он "командир-вся-АС", ага) как субъекту безопасности должны быть доступны все мандатные категории (и, вероятно, все уровни мандатного доступа), чтобы он в любой момент времени мог получить полные права доступа (чтение-запись-исполнение) к любой информации любого отдела. При этом во время сеанса доступа он будет вынужден указывать мандатный уровень сеанса (равный мандатному уровню ресурса, чтобы работала "запись"; или выше мандатного уровня ресурса, чтобы работало "чтение"), а также перечень мандатных категорий, который должен быть больше или равен перечню мандатных категорий, присвоенных ресурсам...
А вот по отделам уже может работать политика разграничения. Например, двум отделам присвоен один и тот же мандатный уровень, но разные мандатные категории. Тогда они смогут работать в, положим, "секретном" сеансе (полные права доступа к любой "секретной" информации), но к части объектов с недоступной для них мандатной меткой внутри этого сеанса получить доступ не смогут. Можно считать механизм мандатных меток "горизонтальным разграничением мандатного доступа" (субъект может быть "секретным" или даже "более секретным", но доступа к конкретному объекту все равно не получит), в то время как классические мандатные уровни - "вертикальное разграничение" (кто "секретнее", тот и может читать все)...
 

oko

New member
Сообщения
522
#5
to skaz54
Прикинул еще один пример. Есть один отдел из двух исполнителей и начальника. Есть еще и командир. У них всех 2 форма допуска. Соответственно, каждый из них может создавать/читать/исполнять файлы с информацией до 2 "сережек". У каждого из них есть личный каталог. Нужно, чтобы:
  • исполнители могли "читать/писать/исполнять" файлы в каталогах друг друга;
  • исполнители могли внутри личного каталога создавать файлы, недоступные для другого исполнителя;
  • начальник мог "читать/писать/исполнять" файлы любого исполнителя, а исполнители его файлы - только с санкции начальника;
  • начальник мог "писать" в каталог командира и "читать" его ответ;
  • командир мог "читать/писать/исполнять" все, что угодно;
  • никто, включая командира, не мог управлять правами доступа другого сотрудника.
Реализация:
  • создаем 4 каталога;
  • дискреционно даем права на чтение/запись/исполнение исполнителям в каталоги друг друга;
  • дискреционно даем права на запись/чтение исполнителям в каталог начальника
  • дискреционно даем права на запись/чтение начальнику в каталог командира;
  • начальнику и командиру дискреционно даем права на запись/чтение/исполнение в каталоги исполнителей;
  • всем даем 2 уровень мандатного доступа;
  • на все личные каталоги (и вложенные тоже) даем 2 уровень мандатного доступа;
  • исполнителю-1 даем мандатную категорию-1, исполнителю-2 - 2;
  • начальнику даем мандатные категории 1, 2 и 3;
  • командиру - мандатные категории 1, 2, 3 и 4;
  • теперь каждому субъекту (исполнителю, начальнику, командиру) при создании ресурса (каталога или файла) необходимо и достаточно будет просто указать его категорию: 1 для доступа исполнителя-1, 2 для доступа исполнителя-2, 3 для доступа начальника и 4 для командира.
 

skaz54

New member
Сообщения
18
#6
to skaz54
Прикинул еще один пример. Есть один отдел из двух исполнителей и начальника. Есть еще и командир. У них всех 2 форма допуска. Соответственно, каждый из них может создавать/читать/исполнять файлы с информацией до 2 "сережек". У каждого из них есть личный каталог. Нужно, чтобы:
  • исполнители могли "читать/писать/исполнять" файлы в каталогах друг друга;
  • исполнители могли внутри личного каталога создавать файлы, недоступные для другого исполнителя;
  • начальник мог "читать/писать/исполнять" файлы любого исполнителя, а исполнители его файлы - только с санкции начальника;
  • начальник мог "писать" в каталог командира и "читать" его ответ;
  • командир мог "читать/писать/исполнять" все, что угодно;
  • никто, включая командира, не мог управлять правами доступа другого сотрудника.
Реализация:
  • создаем 4 каталога;
  • дискреционно даем права на чтение/запись/исполнение исполнителям в каталоги друг друга;
  • дискреционно даем права на запись/чтение исполнителям в каталог начальника
  • дискреционно даем права на запись/чтение начальнику в каталог командира;
  • начальнику и командиру дискреционно даем права на запись/чтение/исполнение в каталоги исполнителей;
  • всем даем 2 уровень мандатного доступа;
  • на все личные каталоги (и вложенные тоже) даем 2 уровень мандатного доступа;
  • исполнителю-1 даем мандатную категорию-1, исполнителю-2 - 2;
  • начальнику даем мандатные категории 1, 2 и 3;
  • командиру - мандатные категории 1, 2, 3 и 4;
  • теперь каждому субъекту (исполнителю, начальнику, командиру) при создании ресурса (каталога или файла) необходимо и достаточно будет просто указать его категорию: 1 для доступа исполнителя-1, 2 для доступа исполнителя-2, 3 для доступа начальника и 4 для командира.
Спасибо. Завтра попробую такое сотворить