1 / 42

Развитие семейства ДП-моделей логического управления доступом в компьютерных системах

Развитие семейства ДП-моделей логического управления доступом в компьютерных системах. д.т.н., доцент Девянин П.Н. ИКСИ, г. Москва peter_devyanin@hotmail.com. Формальные модели. Модель Take - Grant. Модели дискреционного управления доступом. Модель ХРУ. Модель ТМД.

tybalt
Download Presentation

Развитие семейства ДП-моделей логического управления доступом в компьютерных системах

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Развитие семейства ДП-моделей логического управления доступом в компьютерных системах д.т.н., доцент Девянин П.Н. ИКСИ, г. Москва peter_devyanin@hotmail.com

  2. Формальные модели Модель Take-Grant Модели дискреционного управления доступом Модель ХРУ Модель ТМД Модель ролевого администрирования Модели ролевого управления доступом Базовая модель ролевого управления доступом Модель мандатного ролевого управления доступом Программная модель Модели безопасности информационных потоков Автоматная модель Вероятностная модель Модели мандатного управления доступом Модель СВС Классическая модель Белла-ЛаПадулы Модель целостности Биба Модель безопасности переходов Модели тематического управления доступом Субъектно-ориентированная модель изолированной программной среды Основные формальные модели управления доступом и информационными потоками

  3. Основные существенные особенности функционирования современных КС • Возможность реализации в КС доверенных и недоверенных субъектов с различными условиями функционирования; • Различие в условиях реализации в КС информационных потоков по памяти и по времени; • Наличие в современных КС иерархической структуры сущностей и возможность ее использования при реализации информационных потоков по времени; • Возможность кооперации или, наоборот, противодействия субъектов друг другу при передаче прав доступа и реализации информационных потоков; • Возможность изменения функциональности субъекта при реализации информационного потока по памяти на функционально ассоциированные с ним сущности.

  4. Элементы базовой ДП-модели E =O C множество сущностей, где O множество объектов, C множество контейнеров; S E множество субъектов; Rr= {readr, writer, appendr, executer, ownr} множество видов прав доступа; Ra= {reada, writea, appenda} множество видов доступа; Rf = {writem, writet} множество видов информационных потоков; Rraf = RrRaRf множество видов прав доступа, видов доступа и видов информационных потоков. Определение.Определим H: E 2Eфункцию иерархии сущностей, сопоставляющую каждой сущности cE множество сущностей H(c) E и удовлетворяющую условиям: Условие 1. Если сущность e H(c), то e < c и не существует сущности-контейнера d C, такой, что e< d,d < c. Условие 2. Для любых сущностей e1, e2E, e1e2, по определению выполняются равенство H(e1) H(e2) =  и условия: • если o O, то выполняется равенство H(o) = ; • если e1 < e2, то или e1, e2E \ S, или e1, e2S; • еслиeE \ S, тоH(e) E \ S; • еслиsS, тоH(s) S.

  5. а) б) в) г) ra writemwritet  Определение системы Определение.Пусть определены множества S, E, R S E Rr, A S E Ra, F E E Rf и функция иерархии сущностей H. Определим G = (S, E, R A F, H)  конечный помеченный ориентированный граф без петель, где элементы множеств S, E являются вершинами графа, элементы множества R A F ребрами графа. Назовем G = (S, E, R A F, H)графом доступов. (G*, OP) система, при этом: • каждое состояние системы представляется графом доступов; • G*  множество всех возможных состояний; • OP множество правил преобразования состояний. G ├op G’ переход системы (G*, OP) из состояния G в состояние G’

  6. GzG’z writerwriterwritet writet xyxy ├rename_entity(x, y, z) … writetwritet…  rr sy’ sy’ Правила преобразования состояний В базовой ДП-модели определены 16 монотонных и немонотонных правил преобразования состояний: take_right(r, x, y, z), grant_right(r, x, y, z),remove_right(r, x, y, z), own_take(r, x, y),own_remove(r, x, y), create_entity(x, y, z), create_subject(x, y, z), delete_entity(x, y, z),rename_entity(x, y, z), access_read(x, y), access_write(x, y), access_append(x, y),flow(x, y, y’, z), find(x, y, z), post(x, y, z), pass(x, y, z)

  7. Семейство ДП-моделей Базовая дискреционная ДП-модель ДП-модель без кооперации доверенных и недоверенных субъектов ДП-модель с блокирующими доступами доверенных субъектов ДП-модель с функционально ассоциированными с субъектами сущностями ДП-модель для политики безопасного администрирования ДП-модель для политики абсолютного разделения административных и пользовательских полномочий ДП-модель с функционально и параметрически ассоциированными с субъектами сущностями ДП-модель файловой системы Мандатная ДП-модель Мандатная ДП-модель с блокирующими доступами доверенных субъектов Мандатная ДП-модель с отождествлением порожденных субъектов Мандатная ДП-модель для политики строгого мандатного управления доступом Базовая ролевая ДП-модель

  8. G0 G1ownr writem writem ├control(x, y, z) x z y x z y Права доступа Доступы Информационные потоки по памяти Информационные потоки по времени ДП-модель с функционально ассоциированными с субъектами сущностями (ФАС ДП-модель)

  9. ФАС ДП-модель Определение.Пусть G0= (S0, E0, R0A0F0, H0)  состояние системы (G*, OP) и недоверенный субъект x NSS0, субъект y S0, где x y. Определим предикат can_share_own(x, y, G0, LS), который будет истинным тогда и только тогда, когда существуют состояния G1, …, GNи правила преобразования состояний op1, …, opN, где N  0, такие, что траектория G0├ op1G1├ op2… ├ opNGNявляется траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных потоков, и (x, y, ownr) RN. • Теорема.ПустьG0= (S0, E0, R0A0F0, H0)  начальное состояние системы (G*, OP,G0), в которомA0 = F0 = , и недоверенный субъект x NSS0, доверенный субъект y LSS0. Пусть истинен предикат can_share_own(x, y, G0, LS). Тогда существуют недоверенный субъект x’NSS0, доверенный субъект y’ LSS0, сущность e  [y’] такие, что выполняется одно из условий. • Условие 1.x’ = e. • Условие 2.(x’, e, r) R0, где r {ownr, writer, appendr}. • Условие 3.Существует доверенный субъект y’’ LSS0 такой, что истинен предикат can_write_memory(y’’, e, G0, LS), и выполняется одно из условий: • субъект y’’ некорректен относительно сущности x’; • право доступа (x’, y’’, r) R0, где r {writer, appendr}; • существует сущность e’E0 такая, что право доступа (x’, e’, r) R0, где r {ownr, writer, appendr}, и субъект y’’ некорректен относительно сущности e’.

  10. ДП-модель веб-системы (Назаров И.О.) ef1, ef2, ef3  сущности-функции ядра веб-системы; ekernel сущность-каталог, содержащая функции ядра веб-системы в виде исполняемых модулей; si доверенный субъект-интерфейс веб-системы; ep сущность-параметр, ассоциированная с субъектом-интерфейсом и используемая им при выборе сущности-функции для активизации; s1, s2, s3 доверенные субъекты-потоки HTTP-сервера, реализующие передачу данных от пользователей к интерфейсу веб-системы и наоборот; e1, e2, e3, e4, e5  сущности-порты, используемые субъектами-потоками HTTP-сервера, для записи в них и чтения из них данных при реализации взаимодействия между пользователем и интерфейсом; sa доверенный субъект-пользователь веб-системы; esсущность-скрипт, функционально ассоциированная с субъектом-пользователем и исполняющаяся в браузере пользователя веб-системы; su недоверенный субъект-пользователь веб-системы. Утверждение.ПустьG0= (S0, E0, R0A0F0, H0)  начальное состояние системы 1(G*, OP,G0), в котором недоверенный субъект suNSS0, доверенный субъект saLSS0, сущность esE0 такие, что es [sa], пусть также право доступа владения (su, sa, ownr) Nr, тогда выполняются следующие условия: Условие 1. Предикат can_write_memory(su, es, G0, LS) является истинным. Условие 2. Предикат can_share_own(su, si, G0, LS) является истинным и возможно нарушение безопасности системы.

  11. ДП-модель веб-системы на основе СУБД (Назаров И.О.) eb1, eb2сущности-«банки данных» СУБД веб-системы; ebase сущность-«база данных», содержащая сущности «банки данных»; sd доверенный субъект-драйвер СУБД веб-системы; eq сущность-запрос, функционально ассоциированная с субъектом-драйвером; er сущность-результат; si доверенный субъект-интерфейс веб-системы; ep сущность-параметр, ассоциированная с субъектом-интерфейсом; s1, s2доверенные субъекты-потоки, являющиеся потоками ОС, порожденными процессом HTTP-сервера; e1, e2, e3 сущности-порты, используемые субъектами-потоками HTTP-сервера для записи в них и чтения из них данных; su недоверенный субъект-пользователь веб-системы; eout сущность-устройство вывода данных рабочей станции субъекта-пользователя. Утверждение.ПустьG0= (S0, E0, R0A0F0, H0)  начальное состояние системы 1(G*, OP,G0), в котором недоверенный субъект suNSS0, доверенный субъект sdLSS0, сущность eqE0 такие, что eq [sd]. Тогда выполняются следующие условия: Условие 1. Предикат can_share_own(su, sd, G0, LS) является истинным. Условие 2. Предикат can_write_memory(eb2, eout, G0, LS) является истинным и возможно нарушение безопасности системы.

  12. ДП-модель с функционально и параметрически ассоциированными с субъектами сущностями (ФПАС ДП-модель, Колегов Д.Н.) G0 G1ownr writem writem  ├control(x, y, z) x z  [y] y x z  [y] y G0 G1ownr writem writem  ├know(x, y) x z  ]y[ y x z  ]y[ y G0 z1 ]y[ G1 z1 ]y[ writem writem ownr  ├know(x, y) x y x y writem writem  z2 ]y[  z2 ]y[

  13. ФПАС ДП-модель (Колегов Д.Н.) • Определение. Пусть G0= (S0, E0, R0A0F0, H0)  состояние системы (G*, OP) и недоверенный субъект x NSS0, субъект y S0, где x y. Определим предикат directly_can_share_own(x, y, G0, LS), который будет истинным тогда и только тогда, когда существует последовательность субъектов s1, …, smS0, где s1= x, sm= y и m 2, таких, что для каждого i = 1, ..., m – 1 справедливо неравенство sisi + 1 и выполняется одно из условий: • si [si + 1]; • истинен предикат can_share(ownr, si, si + 1, G0, LS); • существует сущность e  [si + 1] такая, что истинен предикат can_write_memory(si, e, G0, LS); • для каждой сущности e  ]si +1[ истинен предикат can_write_memory(e, si, G0, LS). • Теорема.Пусть G0= (S0, E0, R0A0F0, H0)  состояние системы (G*, OP), пусть также право доступа владения (x, y, ownr) Nr, x NSS0, y S0, где x y. Предикат can_share_own(x, y, G0, LS) является истинным тогда и только тогда, когда существует последовательность субъектов s1, …, smS0, где s1= x, sm= y и m2, таких, что выполняется одно из условий. • Условие 1.m = 2 и истинен предикат directly_can_share_own(x, y, G0, LS). • Условие 2.m> 2 и для каждого i = 1, ..., m – 2 выполняется одно из условий: • si , si + 1NSS0и истинны предикаты directly_can_share_own(si, si + 1, G0, LS), directly_can_share_own(si + 1, si + 2, G0, LS); • i < m – 2, si, si + 2NSS0и истинны предикаты directly_can_share_own(si, si + 1, G0, LS), directly_can_share_own(si + 2, si + 1, G0, LS); • i < m – 2, si + 1, si + 2NSS0и истинны предикаты directly_can_share_own(si + 1, si, G0, LS), directly_can_share_own(si + 2, si + 1, G0, LS); • si + 1NSS0и истинны предикаты directly_can_share_own(si + 1, si, G0, LS), directly_can_share_own(si + 1, si + 2, G0, LS).

  14. ДП-модель файловых систем (ФС ДП-модель, Буренин П.В.) Предположение.В рамках ФС ДП-модели выполняются следующие условия. Условие 1. Во множестве сущностей выделено подмножество сущностей, защищенных ФС и не являющихся субъектами. Условие 2. Во множестве доверенных субъектов выделено подмножество субъектов, обладающих правами доступа и реализующих доступ к сущностям, защищенным ФС, и кодирование в них данных в случае, когда оно осуществляется ФС. Эти доверенные субъекты реализуют информационные потоки по памяти между каждой сущностью, защищенной ФС, и соответствующей ей сущностью-образом, не являющейся субъектом. Условие 3. Доверенные или недоверенные субъекты, не реализующие доступ к сущностям, защищенным ФС, не обладают правами доступа и не могут получать доступ к этим сущностям. При этом они могут обладать правами доступа или получать доступ к сущностям-образам сущностей, защищенных ФС. Условие 4. В каждом состоянии системы кроме множества субъектов анализируется множество потенциальных доверенных субъектов (доверенных субъектов, которые могут быть созданы в процессе функционирования системы для реализации доступа к сущностям, защищенным ФС). Условие 5. Кроме возможности создания новых субъектов из сущностей недоверенный субъект может создать доверенного субъекта в случае, когда недоверенный субъект реализовал к себе информационные потоки по памяти от всех сущностей, параметрически ассоциированных с потенциальным доверенным субъектом. При этом недоверенный субъект получает контроль над созданным доверенным субъектом. Условие 6. Каждый доверенный субъект не обладает правами доступа ко всем сущностям. Условие 7. Доверенные субъекты, не реализующие доступ к сущностям, защищенным ФС, в процессе функционирования системы не получают новые доступы к сущностям и не участвуют в создание информационных потоков к или от сущностей, защищенных ФС. Условие 8. Не рассматриваются информационные потоки по времени, право доступа и доступ на запись в конец сущности. Условие 9. В начальном состоянии системы недоверенные субъекты не реализуют доступы к сущностям, к ним не имеют доступы другие субъекты, и отсутствуют информационные потоки по памяти с участием недоверенных субъектов. FSE E \ S множество сущностей, защищенных ФС; fs: FSE E \ S инъективная функция, которая ставит в соответствие каждой сущности, защищенной ФС, соответствующую ей сущность-образ; PS множество потенциальных доверенных субъектов, реализующих доступ к сущностям из множества FSE; FSSLSS  множество доверенных субъектов, реализующих доступ к сущностям из множества FSE.

  15. ФС ДП-модель (Буренин П.В.). Запрещенные информационные потоки Определение.Пусть G0= (S0, E0, R0A0F0, H0)  начальное состояние системы (G*, OP,G0). Запрещенным информационным потоком по памяти является информационный поток от сущностиe FSE, защищенной ФС, к недоверенному субъекту x NSS0 в случае, когда в начальном состоянии G0 субъект x не имеет прав доступаreadr или ownr к сущности-образу fs(e) E, соответствующей сущности e. Определение. В рамках ФС ДП-модели будем говорить, что система (G*, OP,G0) является безопасной в случае, когда невозможен переход системы в состояние, в котором реализуется запрещенный информационный поток по памяти. Определение. Нарушитель в рамках ФС ДП-модели  любой недоверенный субъект системы.

  16. ФС ДП-модель (Буренин П.В.). Правило potential_subject(x, y, z)

  17. ФС ДП-модель (Буренин П.В.). Достаточные условия реализации запрещенного информационного потока • Определение. Пусть G0= (S0, E0, R0A0F0, H0)  состояние системы (G*, OP) и недоверенный субъект x NSS0, субъект или потенциальный доверенный субъект y S0PS, где x y. Определим предикат directly_can_share_own(x, y, G0), который будет истинным тогда и только тогда, когда существует последовательность субъектов s1, …, smS0PS, где s1= x, sm= y и m2, таких, что для каждого i = 1, ..., m – 1 справедливо неравенство sisi + 1 и выполняется одно из условий: • si + 1FSS0иsi [si + 1] (каждый доверенный субъект из множества FSS0 является функционально корректным); • истинен предикат simple_can_share(ownr, si, si + 1, G0); • si + 1FSS0и существует сущность e  [si + 1] такая, что истинен предикат simple_can_write_memory(si, e, G0) (невозможно получение к доверенному субъекту из множества FSS0 права доступа владения с использованием реализованного к нему информационного потока по памяти); • для каждой сущности e  ]si + 1[ истинен предикат simple_can_write_memory(si, e, G0). • Теорема.Пусть G0= (S0, E0, R0A0F0, H0)  состояние системы (G*, OP) и сущности x, y E0, где x y. Предикат can_write_memory(x, y, G0) является истинным в случае, когда существует последовательность сущностей e1, …, emE0, где e1= x, em= y и m2, таких, что для каждого i = 1, ..., m – 1 выполняется одно из условий. • Условие 1. eiLSS0и или (ei, ei + 1, writem) F0, или (ei, ei + 1, writea) A0. • Условие 2. eiFSS0 (NSS0) и или (ei, ei + 1, writem) F0, или истинен предикат can_share(writer, ei, ei + 1, G0). • Условие 3. ei + 1LSS0и (ei + 1, ei, reada) A0. • Условие 4. ei + 1FSS0 (NSS0)и истинен предикат can_share(readr, ei + 1, ei, G0). • Условие 5. eiNSS0, ei + 1FSS0 (NSS0) и истинен предикат can_share_own(ei, ei + 1, G0). • Условие 6. ei + 1NSS0, eiFSS0 (NSS0)и истинен предикат can_share_own(ei + 1, ei, G0).

  18. Иерархия ролей Права доступа Роли R P Ограничения S U Сессии Пользователи AR AP Административные роли Основные ролевые модели семейства RBAC • Базовая модель; • Модель ролевого администрирования; • Модель мандатного ролевого управления доступом. Административные права доступа Иерархия административных ролей

  19. Специфика ролевого управления доступом • Наличие статических и, особенно, динамических ограничений на роли пользователей, роли сессий и права доступа ролей; • Сложный анализ условий передачи прав доступа с учетом наличия прав доступа к сущностям только у ролей (вопрос о фактических ролях, фактических правах доступа сессий, фактических возможных действий); • Необходимость уточнения способов классификации субъектов на доверенные и недоверенные; • Каскадное удаление или добавление прав доступа с использованием иерархии ролей; • Неэффективность использования графов доступов для описания состояний.

  20. Базовая ролевая ДП-модель Элементы ДП-моделей КС с дискреционным или мандатным управлением доступом: E =O Cмножество сущностей, где O множество объектов, C множество контейнеров; S Eмножество субъект-сессий пользователей; LSSмножество доверенных субъект-сессий; NS= S \ LS множество недоверенных субъект-сессий; [s] E множество всех сущностей, функционально ассоциированных с субъект-сессией s; Rr= {readr, writer, appendr, executer, ownr} множество видов прав доступа; Ra= {reada, writea, appenda, owna}множество видов доступа; Rf= {writem, writet} множество видов информационных потоков; HE: E 2Eфункция иерархии сущностей.

  21. Базовая ролевая ДП-модель Элементы моделей КС с ролевым управлением доступом (RBAC иARBAC): Uмножество пользователей; Rмножество ролей; ARмножество административных ролей (AR R = ); P E Rrмножество прав доступа к сущностям; UA: U →2Rфункция авторизованных ролей пользователей; AUA: U →2ARфункция авторизованных административных ролей пользователей; PA: R →2Pфункция прав доступа ролей; user: S →Uфункция принадлежности субъект-сессии пользователю; roles: S → 2R 2ARфункция текущих ролей субъект-сессий; HR: R 2Rфункция иерархии ролей; HAR: AR 2ARфункция иерархии административных ролей.

  22. Базовая ролевая ДП-модель can_manage_rights: AR 2Rфункция администрирования прав доступа ролей; A S E Ra множество доступов субъект-сессий к сущностям; F E E Rf множество информационных потоков; G = (UA, AUA, PA, user, roles, A, F, HR, HAR, HE, LU, LS) состояние системы; (G*, OP)  система, при этом G*  множество всех возможных состояний, OP множество правил преобразования состояний, G ├op G’  переход системы из состояния Gв состояние G’ с использованием правила преобразования состояний; (G*, OP,G0)  система (G*, OP) с начальным состоянием G0. Предположение. В рамках БР ДП-модели на траекториях функционирования системы не изменяются: значения множеств U, LU, R, функции UA, AUA, HR, HAR. Предположение. Каждые пользователь или субъект-сессия системы (G*, OP) вне зависимости от имеющихся у них авторизованных ролей являются либо доверенными, либо недоверенными. Доверенные пользователи или субъект-сессии не создают новых субъект-сессий. Каждые недоверенный пользователь или субъект-сессия могут создать только недоверенную субъект-сессию.

  23. Фактические роли, права доступа, возможные действия Предположение. Субъект-сессии могут иметь друг другу только доступ владения owna. Роли могут обладать к субъект-сессиям только правом доступа владения ownr. Если субъект-сессия s1 реализовала информационный поток по памяти от себя к сущности, функционально ассоциированной с другой субъект-сессией s2, то субъект-сессия s1 получает: • доступ владения owna к субъект-сессии s2; • возможность использовать роли из множества ролей roles(s2) (при этом субъект-сессия s1 не может изменить множество текущих ролей roles(s2)); • возможность получать доступ владения owna к субъект-сессиям, доступом владения к которым обладает субъект-сессия s2; • возможность использовать административные роли субъект-сессии s2 для осуществления действий над ролями и сущностями, которые позволяют ей изменять права доступа ролей субъект-сессии s2. • возможность использовать информационные потоки, в реализации которых участвует субъект-сессия s2. de_facto_roles: S → 2Rфункция фактических текущих ролей субъект-сессий; de_facto_rights: S → 2Pфункция фактических текущих прав доступа субъект-сессий. de_facto_actions: S → 2P2R функция фактических возможных действий субъект-сессий

  24. Примеры задания правил преобразования состояний

  25. Монотонные правила Определение .Назовем правило преобразования состояний монотонным, если его применение не приводит к удалению из состояний: ролей из множества текущих ролей субъект-сессии, прав доступа ролей к сущностям, субъект-сессий или сущностей, доступов субъект-сессий к сущностям, информационных потоков. Монотонными правила (17): take_role(x, r), grant_right(x, r, (y, r)), create_entity(x, r, y, z), create_first_session(u, r, y, z), create_session(x, w, r, y, z), rename_entity(x, y, z), control(x, y, z), access_own(x, y), take_access_own(x, y, z), access_read(x, y), access_write(x, y), access_append(x, y), flow(x, y, y’, z), find(x, y, z), post(x, y, z), pass(x, y, z), take_flow(x, y). Немонотонными правила (3):remove_role(x, r), remove_right(x, r, (y, r)), delete_entity(x, y, z). Утверждение.Пусть G0= (PA0, user0, roles0, A0, F0, HE0)  начальное состояние системы (G*, OP, G0). Пусть также существуют состояния системы G1, …, GNи правила преобразования состояний op1, …, opN такие, что G0├op1G1├op2… ├opN GN, где N 0. Тогда существуют состояния G’1, …, G’M, где M 0, и монотонные правила преобразования состояний op’1, …, op’M такие, что G0├op’1G’1├op’2… ├op’M G’M и выполняются следующие условия. Условие 1. Верно включение SNS’M, и для каждого субъект-сессии s SN выполняются условия: userN(s) = user’M(s), rolesN(s) roles’M(s). Условие 2.Верно включениеENE’M, и для каждой сущности e EN выполняется условие HEN(e) H’EM(e). Условие 3. Для каждой роли rR выполняется условие PAN(r) PA’M(r). Условие 4. Верно включение ANA’M. Условие 5. Верно включение FNF’M.

  26. Связь условий и результатов применения правил преобразования состояний в рамках ФАС ДП-модели Права доступа Доступы Информационные потоки по памяти Информационные потоки по времени

  27. Зависимость условий и результатов применения правил преобразования состояний БР ДП-модели Пользователи (U) user UA, AUA Субъект-сессии (S) roles de_facto_roles Роли (RAR) PA P Права доступа ownr к субъект-сессиям Права доступа к сущностям A Доступы к сущностям Доступы owna к субъект-сессиям • F control(x, y, z) Информационные потоки по памяти Информационные потоки по времени

  28. Траектории без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа Определение.Назовем траекторию функционирования системы (G*, OP) траекторией без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, если при ее реализации используются только монотонные правила преобразования состояний, и доверенные субъект-сессии: • не берут роли во множество текущих ролей; • не дают другим ролям права доступа к сущностям; • не получают доступ владения к субъект-сессиям. В системе (G*, OP) на траекториях без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа доверенные субъект-сессии: • не инициируют выполнения следующих правил преобразования состояний: take_role(x, r), grant_right(x, r, (y, r)), create_session(x,w, r, y, z), control(x, y, z), access_own(x, y), take_access_own(x, y, z), take_flow(x, y); • могут выполнять монотонные правила преобразования состояний: create_entity(x, r, y, z), rename_entity(x, y, z), access_read(x, y), access_write(x, y), access_append(x, y), flow(x, y, y’, z), find(x, y, z), post(x, y, z), pass(x, y, z); • недоверенные пользователи могут инициировать выполнение правила create_first_session(u, r, y, z).

  29. Случай двух субъект-сессий. Предикаты can_share((e, ), x, G0) и directly_grant_right(x, y, G) Определение .Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют пользователь x U0 и право доступа к сущности (e, ) P0. Определим предикат can_share((e, ), x, G0), который будет истинным тогда, и только тогда, когда существуют состояния G1, …, GNи правила преобразования состояний op1, …, opN такие, что G0├op1G1├op2… ├opN GNявляется траекторией без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, и существует субъект-сессия sxSNтакая, что userN(sx) = xи право доступа к сущности (e, ) de_facto_rightsN(sx), где N  0. Определение .Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором недоверенная субъект-сессия или недоверенный пользователь x NU (NSS), субъект-сессия или недоверенный пользователь yNUS. Определим предикат directly_grant_right(x, y, G), который будет истинным тогда, и только тогда, когда или x = y, или выполняется одно из условий 1-4. Условие 1. Если y NU и xNU, то существует роль rcan_manage_rights(AUA(x)) UA(y). Условие 2. Если y NUи xNSS, то существуют роль rcan_manage_rights(AUA(user(x))) UA(y). Условие 3. Если y S и xNU, то выполняется одно из условий: • y NSSи существуют роль rcan_manage_rights(AUA(x)) UA(user(y)); • yLSSи существуют роль rcan_manage_rights(AUA(x)) roles(y). Условие 4. Если yS и xNSS, то выполняется одно из условий: • y NSSи существуют роль rcan_manage_rights(AUA(user(x))) UA(user(y)); • yLSSи существуют роль rcan_manage_rights(AUA(user(x))) roles(y).

  30. Случай двух субъект-сессий. Предикат directly_access_own(x, y, G) Определение. Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS), субъект-сессия или недоверенный пользователь y NUS. Определим предикат directly_access_own(x, y, G), который будет истинным тогда, и только тогда, когда или x = y, или выполняется одно из условий 1-6. Условие 1. Если y NU и xNU, то существуют сущность eyE и рольryR такие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и выполняется одно из условий или ryUA(x), или xfa(y, ey), или существует сущность e E такая, что (e, ) PA(UA(x)), где  {writer, appendr, ownr}, и или efa(y, ey), или (e, ) PA(UA(y)), где  {readr, ownr}. Условие 2. Если y NUи xNSS, то существуют сущность eyE и рольryR такие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и выполняется одно из условий или ryUA(user(x)), или xfa(y, ey), или существует сущность e Eтакая, что (e, ) PA(UA(user(x)), где {writer, appendr, ownr}, или (x, e, writem)  F, и или efa(y, ey), или (e, ) PA(UA(y)), где {readr, ownr}. Условие3.Если y NUи xLSS, то существуют сущность eyEи роль ryRтакие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и выполняется одно из условий или ryroles(x), или xfa(y, ey), или существует сущность e Eтакая, что (e, ) PA(roles(x)), где {writer, appendr}, или (x, e, writem)  F, и или efa(y, ey), или (e, ) PA(UA(y)), где {readr, ownr}. Условие 4. Если y S и xNU, то выполняется одно из условий или (y, ownr) PA(UA(x)), или x[y], или существует сущность e Eтакая, что (e, ) PA(UA(x)), где {writer, appendr, ownr}, и или e [y], или yNSS, (e, ) PA(UA(user(y))), где {readr, ownr}, или yLSS, (e, readr) PA(roles(y)), (y, e) y(E). Условие 5. Если yS и xNSS, то выполняется одно из условий или (y, ownr) PA(UA(user(x))), или x[y], или (x, y, owna)  A, или существует сущность e Eтакая, что (e, ) PA(UA(user(x)), где {writer, appendr, ownr}, или (x, e, writem)  F, и или e [y], или yNSS, (e, ) PA(UA(user(y))), где {readr, ownr}, или yLSS, (e, readr) PA(roles(y)), (y, e) y(E). Условие 6. Если yS и xLSS, то выполняется одно из условий или (y, ownr) PA(roles(x)), или x[y], или (x, y, owna)  A, или существует сущность e E такая, что (e, ) PA(roles(x)), где  {writer, appendr}, или (x, e, writem) F, и выполняется одно из условий: • yNSS и или e[y], или (e, ) PA(UA(user(y))), где  {readr, ownr}; • yLSSи или e [y], (x, x) y(E), или (e, readr) PA(roles(y)), (y, e) y(E).

  31. Случай двух субъект-сессий. Предикат directly_can_share((e, ), x, G) Определение.Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существует пользователь x NU и право доступа к сущности (e, ) P. Определим предикат directly_can_share((e, ), x, G), который будет истинным тогда, и только тогда, когда существует пользователь y U, и выполняется одно из условий 1-6, где  {, ownr}. Условие 1. Выполняется одно из условий: • пользователь y NU, право доступа (e, ) PA(UA(y)), и истинен предикат directly_access_own(x, y, G); • существует недоверенная субъект-сессия syNSS такая, что user(sy) = y, истинен предикат directly_access_own(x, sy, G) и (e, ) PA(UA(user(sy))). Условие 2. Существует недоверенная субъект-сессия sxNSSтакая, что user(sx) = x, и выполняется одно из условий: • пользователь y NU, право доступа (e, ) PA(UA(y)) и истинен предикат directly_access_own(sx, y, G); • существует недоверенная субъект-сессия syNSSтакая, user(sy) = y, истинен предикат directly_access_own(sx, sy, G), и (e, ) PA(UA(user(sy))). Условие 3. Существует доверенная субъект-сессия syLSS такая, что user(sy) = y, право доступа (e, ) PA(roles(sy)), и выполняется одно из условий: • истинен предикат directly_access_own(x, sy, G); • существует недоверенная субъект-сессия sxNSSтакая, что user(sx) = x, и истинен предикат directly_access_own(sx, sy, G). Условие 4. Если ownr, то существует доверенная субъект-сессия syLSS такая, что user(sy) = y, право доступа (e, ownr) PA(roles(sy)), can_manage_rights(roles(sy) AR)  (roles(sy) UA(x)) , и выполняется одно из условий: • истинен предикат directly_access_own(x, sy, G); • существует недоверенная субъект-сессия sxNSSтакая, что user(sx) = x, и истинен предикат directly_access_own(sx, sy, G). Условие 5. Пользователь yNU, право доступа (e, ownr) PA(UA(y)), и выполняется одно из условий: • пользователь xNU, и истинен предикат directly_grant_right(y, x, G); • существует субъект-сессия sxNSSтакая, что user(sx) = x, и истинен предикат directly_grant_right(y, sx, G). Условие 6. Существует субъект-сессия syNSS такая, что user(sy) = y, право доступа (e, ownr) PA(UA(user(sy))), и выполняется одно из условий: • пользователь xNU, и истинен предикат directly_grant_right(sy, x, G); • существует субъект-сессия sxNSSтакая, что user(sx) = x, и истинен предикат directly_grant_right(sy, sx, G).

  32. Случай двух субъект-сессий. Условия непосредственного получения прав доступа Утверждение . Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS0), субъект-сессия или недоверенный пользователь y NUS0 и право доступа к сущности (e, ) P0. Пусть истинен предикат directly_access_own(x, y, G0) и выполняется одно из условий: • если y NU, то (e, ) PA0(UA0(y)), где  {, ownr}; • если y NSS0, то (e, ) PA0(UA0(user0(y))), где  {, ownr}; • если y LSS0и x NU, то либо (e, ) PA0(roles0(y)), либо (e, ownr) PA0(roles0(y)) и can_manage_rights(roles0(y) AR)  (roles0(y) UA0(x)) ; • если y LSS0и x NSS0, то либо (e, ) PA0(roles0(y)), либо (e, ownr) PA0(roles0(y)) и can_manage_rights(roles0(y) AR)  (roles0(y) UA0(user0(x))) . Тогда выполняется одно из условий. Условие 1. Если xNU, то истинен предикат can_share((e, ), x, G0). Условие 2. Если xNSS0, то истинен предикат can_share((e, ), user0(x), G0). Утверждение. Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS0), субъект-сессия или недоверенный пользователь y NUS0 и право доступа к сущности (e, ) P0. Пусть истинен предикат directly_grant_right(x, y, G0) и выполняется одно из условий: • если x NU, то (e, ownr) PA0(UA0(x)); • если x NSS0, то (e, ownr) PA0(UA0(user0(x))). Тогда выполняется одно из условий. Условие 1. Если yNU, то истинен предикат can_share((e, ), y, G0). Условие 2. Если yS0, то истинен предикат can_share((e, ), user0(y), G0). Теорема. Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором выполняются условия|U0|  2, x NU, для каждого пользователя u U0 верно неравенство |user01(u)|  1, и существует право доступа к сущности (e, ) P0. Предикат can_share((e, ), x, G0) является истинным тогда, и только тогда, когда является истинным предикат directly_can_share((e, ), x, G0).

  33. Случай двух субъект-сессий. Условия непосредственного получения прав доступа Утверждение . Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS0), субъект-сессия или недоверенный пользователь y NUS0 и право доступа к сущности (e, ) P0. Пусть истинен предикат directly_access_own(x, y, G0) и выполняется одно из условий: • если y NU, то (e, ) PA0(UA0(y)), где  {, ownr}; • если y NSS0, то (e, ) PA0(UA0(user0(y))), где  {, ownr}; • если y LSS0и x NU, то либо (e, ) PA0(roles0(y)), либо (e, ownr) PA0(roles0(y)) и can_manage_rights(roles0(y) AR)  (roles0(y) UA0(x)) ; • если y LSS0и x NSS0, то либо (e, ) PA0(roles0(y)), либо (e, ownr) PA0(roles0(y)) и can_manage_rights(roles0(y) AR)  (roles0(y) UA0(user0(x))) . Тогда выполняется одно из условий. Условие 1. Если xNU, то истинен предикат can_share((e, ), x, G0). Условие 2. Если xNSS0, то истинен предикат can_share((e, ), user0(x), G0). Утверждение. Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS0), субъект-сессия или недоверенный пользователь y NUS0 и право доступа к сущности (e, ) P0. Пусть истинен предикат directly_grant_right(x, y, G0) и выполняется одно из условий: • если x NU, то (e, ownr) PA0(UA0(x)); • если x NSS0, то (e, ownr) PA0(UA0(user0(x))). Тогда выполняется одно из условий. Условие 1. Если yNU, то истинен предикат can_share((e, ), y, G0). Условие 2. Если yS0, то истинен предикат can_share((e, ), user0(y), G0). Теорема. Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором выполняются условия|U0|  2, x NU, для каждого пользователя u U0 верно неравенство |user01(u)|  1, и существует право доступа к сущности (e, ) P0. Предикат can_share((e, ), x, G0) является истинным тогда, и только тогда, когда является истинным предикат directly_can_share((e, ), x, G0).

  34. Случай без информационных потоков по памяти Пользователи (U) user UA, AUA Субъект-сессии (S) roles de_facto_roles Роли (RAR) PA P Права доступа ownr к субъект-сессиям Права доступа к сущностям A Доступы к сущностям Доступы owna к субъект-сессиям • F control(x, y, z) Информационные потоки по памяти Информационные потоки по времени

  35. Случай без информационных потоков по памяти. Предикат simple_can_access_own(x, y, G0) • Определение. Траекторию без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступаG0├op1G1├op2… ├opN GN, где N  0,назовем простой в случае, когда при ее реализации для 0 ≤ i ≤ N каждое правило opi не является правилом вида control(x, y, z), использующим для получения доступа владения субъект-сессией x к субъект-сессии y информационный поток по памяти (x, z, writem), где z [y]. • Определение.Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь x NU и субъект-сессия или недоверенный пользователь yNUS0 такие, что x≠ y. Определим предикат simple_can_access_own(x, y, G0), который будет истинным тогда и только тогда, когда существуют состояния G1, …, GN= (PAN, userN, rolesN,AN, FN, HEN) и правила преобразования состояний op1, …, opN такие, что G0├op1G1├op2… ├opN GN, где N  0,является простой траекторией без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, и существуют субъект-сессии sx,sySN такие, что userN(sx) = x, или sy = y, или userN(sy) = y, и выполняется условие (sx,sy, owna) AN. • Определение.Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существуют субъект-сессии или недоверенные пользователи x, yNUS. Определим предикат simple_directly_access_own(x, y, G), который будет истинным тогда и только тогда, когда или x = y, или выполняется одно из условий: • если y NU и xNU, то существуют сущность eyE и рольryR такие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и или ryUA(x), или xfa(y, ey). • если y NUи xNSS, то существуют сущность eyE и рольryR такие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и или ryUA(user(x)), или xfa(y, ey). • если y NUи xLSS, то существуют сущность eyEи роль ryRтакие, что (ey, executer) PA(UA(y)), rycan_manage_rights(AUA(y)), и или ryroles(x), или xfa(y, ey). • если y S и xNU, то или (y, ownr) PA(UA(x)), или x[y]. • если yS и xNSS, то или (y, ownr) PA(UA(user(x))), или x[y], или (x, y, owna)  A. • если yS и xLSS, то или (y, ownr) PA(roles(x)), или x[y], или (x, y, owna)  A.

  36. Случай без информационных потоков по памяти. Остров • Определение. Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существует субъект-сессия или недоверенный пользователь xNUS. Назовем множество X NUSостровом субъект-сессии или недоверенного пользователяx, если справедливо равенство X= {x}  {y (NUS) \ {x}: существует последовательность s1, …,sm (NUS) \ {x}, где s1= x, sm= y и m 2, такая, что для каждого 1 ≤ i< mистинен предикат simple_directly_access_own(si, si + 1, G)}. Определим island: NUS→2Nu 2S функцию, задающую для каждого субъект-сессии или недоверенного пользователя соответствующий им остров. • island_roles: NU (NSS) → 2R 2ARфункция, задающая для каждых недоверенного пользователя или недоверенной субъект-сессии xNU (NSS) роли, которыми обладают все субъект-сессии или недоверенные пользователи, принадлежащие острову x. При этом по определению справедливо равенство island_roles(x) = {rR AR: существует y island(x) и либо y NU и rUA(y) AUA(y), либо yNSSи rUA(user(y)) AUA(user(y)), либо yLSSи rroles(y)}. • island_rights: NU (NSS) → 2Pфункция, задающая для каждых недоверенного пользователя или недоверенной субъект-сессии xNU (NSS) права доступа, которыми обладают все субъект-сессии или недоверенные пользователи, принадлежащие острову x. При этом по определению справедливо равенство island_rights(x) = {pP: существует risland_roles(x) и pPA(r)}. • island_actions: NU (NSS) → 2P2Rфункция, задающая для каждых недоверенного пользователя или недоверенной субъект-сессии xNU (NSS) возможные действия, которыми обладают все субъект-сессии или недоверенные пользователи, принадлежащие острову x. При этом по определению справедливо равенство island_actions(x) = {(p, r) P R: существует y island(x) и либо y NU и (p, r) PA(UA(y)) can_manage_rights(AUA(y)), либо yNSS и (p, r) PA(UA(user(y))) can_manage_rights(AUA(user(y))), либо yLSS и (p, r) PA(roles(y)) can_manage_rights(roles(y) AR)}. • Утверждение. Пусть G0= (PA0, user0, roles0,A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь или недоверенная субъект-сессия xNU (NSS0) и субъект-сессия или недоверенный пользователь yisland(x) \ {x}. Тогда выполняется одно из условий: • еслиxNU, то истинен предикат simple_can_access_own(x, y, G0); • еслиxNSS0, то истинен предикат simple_can_access_own(user0(x), y, G0).

  37. Случай без информационных потоков по памяти.Обозначения в графе доступов • если для роли rRARи права доступа (e, ) Pвыполняется условие (e, ) PA(r), то в графе доступов r соединена с eребром вида (а), и помеченным ; • если для недоверенного пользователя xNUи роли rRAR выполняется условие rUA(x) или rAUA(x), то в графе доступов x соединен с rребром вида (б), и помеченным UA или AUA, соответственно; • если для недоверенной субъект-сессии xNSSи роли rRAR выполняется условие rUA(user(x)) или rAUA(user(x)), то в графе доступов x соединена с rребром вида (в), и помеченным UA или AUA, соответственно; • если для доверенной субъект-сессии xLSSи роли rRAR выполняется условие rroles(x), то в графе доступов x соединена с rребром вида (г), и помеченным roles; • если для административной роли arAR и роли rRвыполняется условие r can_manage_rights(ar), то в графе доступов ar соединена с rребром вида (д), и помеченным cmr; • если для субъект-сессий или недоверенных пользователей x, yNUSвыполняется условие yisland(x), то в графе доступов xсоединен с yребром вида (е), и помеченным island.

  38. Случай без информационных потоков по памяти.Мосты Определение.Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существуют недоверенная субъект-сессия или недоверенный пользователь xNU (NSS), субъект-сессии или недоверенные пользователи y, z NUS. Будем говорить, что субъект-сессия или недоверенный пользователь y соединен простым мостом с субъект-сессией или недоверенным пользователем zчерез недоверенную субъект-сессию или недоверенного пользователя x, когда zisland(x) и существует роль ryR такая, что выполняются условия. Условие 1. Или yNUи ryUA(y), или yNSSи ryUA(user(y)), или y LSSи ryroles(y). Условие 2. Или zNUи rycan_manage_rights(AUA(z)), или z NSSи rycan_manage_rights(AUA(user(z))), или zLSSи rycan_manage_rights(roles(z) AR). Определение.Пусть G = (PA, user, roles,A, F, HE)  состояние системы (G*, OP), в котором существуют недоверенная субъект-сессия или недоверенный пользователь xNU (NSS), субъект-сессии или недоверенные пользователи y, z NUS. Будем говорить, что субъект-сессия или недоверенный пользователь y соединен мостом с субъект-сессией или недоверенным пользователем zчерез недоверенную субъект-сессию или недоверенного пользователя x, когда существуют субъект-сессии или недоверенные пользователи v, w NUSи роли rv, ryRтакие, что v, w,z island(x), w,z island(v), z island(w), и выполняются условия. Условие 1. Или yNUи ryUA(y), или yNSSи ryUA(user(y)), или y LSSи ryroles(y). Условие2. Или vNUи rvUA(v), rycan_manage_rights(AUA(v)), или vNSSи rvUA(user(v)), rycan_manage_rights(AUA(user(v))), или v LSSи rvroles(v), rycan_manage_rights(roles(v) AR). Условие3. Или w NUи rvcan_manage_rights(AUA(w)), или w Sи (w, ownr) PA(rv). is_simple_bridge: (NU (NSS)) × (NUS) × (NUS) → {true, false}  функция, для которой по определению справедливо равенство is_simple_bridge(x, y,z) =trueтогда и только тогда, когда y соединен простым мостом с z через x, где недоверенная субъект-сессия или недоверенный пользователь xNU (NSS), субъект-сессии или недоверенные пользователи y, zNUS. is_bridge: (NU (NSS)) × (NUS) × (NUS) → {true, false}  функция, для которой по определению справедливо равенство is_bridge(x, y,z) =trueтогда и только тогда, когда y соединен мостом с z через x, где недоверенная субъект-сессия или недоверенный пользователь xNU (NSS), субъект-сессии или недоверенные пользователи y, zNUS.

  39. Случай без информационных потоков по памяти.Мосты Простой мост Мост

  40. Случай без информационных потоков по памяти.Условия истинности получения доступа владения Теорема.Пусть G0= (PA0, user0, roles0, A0, F0, HE0)  состояние системы (G*, OP), в котором существуют недоверенный пользователь x NUи субъект-сессия или недоверенный пользователь y NUS0такие, что x ≠ y. Предикат simple_can_access_own(x, y, G0) является истинным тогда и только тогда, когда существуют последовательности недоверенных субъект-сессий или недоверенных пользователей x1, …, xmNU (NSS0), субъект-сессий или недоверенных пользователей y1, … , ymNUS0, где m 1, таких, что x1= x, ym= y, yiisland(xi), где 1 i<m, и выполняются условия. Условие 1. Если m 2, то справедливо равенство is_bridge(xm, ym  1, y) =true. Условие 2. Если m 3, то для каждого 2 i<mсправедливо равенство или is_bridge(xi, yi  1, yi) =true, или is_simple_bridge(xi, yi  1, yi) =true.

  41. Фрагменты доказательств Фрагмент доказательства 1 Существуют сущность eyE0 и роль ryR такие, что (ey, executer) PA0(UA0(y)), rycan_manage_rights(AUA0(y)). По условию утверждения (e, ownr) PA0(UA0(user0(x))), следовательно, существует роль reUA0(user0(x)) такая, что (e, ownr) PA0(re). Тогда положим: op1 = create_first_session(y, ry, ey, sy); op2 = take_role(x, re); op3 = take_role(x, ar); op4 = take_role(sy, r). op5 = grant_right(x, r, (e, )). Таким образом, при выполнении условия 2 определения 6G0├op1…├ op5G5 траектория без кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, и в состоянии G5 выполняется условие user5(sy) = yи право доступа к сущности (e, ) de_facto_rights5(sy). Следовательно, истинен предикат can_share((e, ), y, G0), и условие 1 утверждения выполнено. Фрагмент доказательства 2 Проведем доказательство индукцией по длине траекторий N. Пусть N = 0, тогда (e, ) de_facto_rights0(sx). По определению функции de_facto_rights0(sx) возможны два случая. Первый случай: право доступа (e, ) PA0(roles0(sx)) PA0(UA0(user0(sx))). Положим y =x,sy = sx. Тогда истинен предикат directly_access_own(sx, sx, G0), выполнено условие 2 определения 8, и предикат directly_can_share((e, ), x, G0) является истинным. Второй случай: существует субъект-сессия syS0 такая, что (sx, sy, owna) A0, reroles0(sy), и (e, ) PA0(re) PA0(roles0(sy)) PA0(UA0(user0(sy))). Тогда выполнено условие 4 определения 7, и предикат directly_access_own(sx, sy, G0) является истинным. Положим y =user0(sy), следовательно, выполнено условие 2 определения 8, и предикат directly_can_share((e, ), x, G0) является истинным. Пусть N = 1, тогда из минимальности N следует, что выполняется условие (e, ) de_facto_rights0(sx). По определению функции de_facto_rights1(sx) возможны два случая…

  42. Развитие ДП-моделей • Разработка моделей адекватных условиям функционирования существующих компьютерных систем; • Построение ДП-моделей существующих компьютерных систем для формального анализа их безопасности; • Анализ условий кооперации доверенных и недоверенных субъектов при реализации информационных потоков; • Построение алгоритмов замыкания графа доступов; • Анализ условий передачи прав доступа ролей для случая произвольного числа субъект-сессий, а также анализ условий возникновения информационных потоков по памяти или по времени; • Исследование способов использования динамических ограничений; • Исследование возможности реализации мандатного ролевого управления доступом с применением динамических ограничений, не позволяющих порождать запрещенные информационные потоки по времени.

More Related