Это не официальный сайт wikipedia.org 01.01.2023

Модель Харрисона-Руззо-Ульмана — Википедия

Модель Харрисона-Руззо-Ульмана

Модель Харрисона-Руззо-Ульмана (HRU-модель) — одна из формальных моделей управления доступом субъектов (пользователей) к объектам, реализованная с помощью матрицы доступов. Названа в честь трёх его авторов: Майкла Харрисона[en], Уолтера Руззо и Джеффри Ульмана.[1]

Описание моделиПравить

ВведениеПравить

В современном мире одной из главных ценностей является информация. Поэтому так важно сделать доступ к информации безопасным. В связи с этим были разработаны модели управления доступом. Одной из таких моделей является модель Харрисона-Руззо-Ульмана, главной особенностью которой является матрица с полным описанием пользовательских прав к файлам. Изменения в эту матрицу вводятся с помощью специальных команд.

Описание состояния системыПравить

Основной задачей любой модели управления доступом является ограничение на выполнениe операций, которые разрешено проводить субъекту (пользователю) над объектом. Такими операциями могут являться, например, чтение (поток информации от объекта к субъекту) и запись (поток информации от субъекта к объекту). Введем некоторые обозначения:

 
Матрица доступа

S   — множество субъектов,

O   — множество объектов,

R = ( r 1 , r 2 , . . . , r n )   — множество прав доступа.

Для реализации этих прав в данной модели используется матрица доступов M  , строки которой соответствуют субъектам, а столбцы — объектам. На пересечении строчек и столбцов указаны права доступа, которыми обладает данный субъект по отношению к данному объекту. Тогда текущее состояние системы Q   можно однозначно записать в таком виде:[2]

Q = ( S , O , M )  

Переходы между состояниями системыПравить

Для того, чтобы был возможен переход из Q = ( S , O , M )   в Q = ( S , O , M )  , нужно ввести некоторые элементарные операции. Для этой цели в данной модели существует шесть операторов o p  :[3]

  1. Добавление права r   в ячейку M [ s ; o ]  :
    • o p = e n t e r   r   i n t o   M [ s , o ]  
  2. Удаление права r   из ячейки M [ s ; o ]  :
    • o p = d e l e t e   r   f r o m   M [ s , o ]  
  3. Создание нового субъекта s  :
    • o p = c r e a t e   s u b j e c t   s  
  4. Создание нового объекта o  :
    • o p = c r e a t e   o b j e c t   o  
  5. Удаление субъекта s  :
    • o p = d e s t r o y   s u b j e c t   s  
  6. Удаление объекта o  :
    • o p = d e s t r o y   o b j e c t   o  

Условия выполнения и новое состояние системы записаны в виде таблицы:[4]

Оператор Условия выполнения Новое состояние системы
o p = e n t e r   r   i n t o   M [ s , o ]   s S   , o O   S = S ,   O = O ,   A [ s , o ] = A [ s , o ] { r } ,  

i f   ( s , o ) ( s , o ) A [ s , o ] = A [ s , o ]  

o p = d e l e t e   r   f r o m   M [ s , o ]   s S   , o O   S = S ,   O = O ,   A [ s , o ] = A [ s , o ] { r } ,  

i f   ( s , o ) ( s , o ) A [ s , o ] = A [ s , o ]  

o p = c r e a t e   s u b j e c t   s   s S   S = S { s } ,   O = O ,  

i f   ( s , o ) S × O A [ s , o ] = A [ s , o ] ,  

i f   o O A [ s , o ] =  

o p = c r e a t e   o b j e c t   o   o O   S = S ,   O = O { o } ,  

i f   ( s , o ) S × O A [ s , o ] = A [ s , o ] ,  

i f   s S A [ s , o ] =  

o p = d e s t r o y   s u b j e c t   s   s S   S = S { s } ,   O = O ,  

i f   ( s , o ) S × O A [ s , o ] = A [ s , o ] ,  

o p = d e s t r o y   o b j e c t   o   o O   S = S ,   O = O { o } ,  

i f   ( s , o ) S × O A [ s , o ] = A [ s , o ] ,  

Любой переход может быть осуществлен с помощью такой команды:[5]

command 
  
    
      
        α
        (
        
          x
          
            1
          
        
        ,
        
          x
          
            2
          
        
        ,
        .
        .
        .
        ,
        
          x
          
            n
          
        
        )
      
    
    
   
    if 
  
    
      
        
          r
          
            1
          
        
         
        i
        n
         
        M
        [
        
          s
          
            1
          
        
        ,
        
          o
          
            1
          
        
        ]
         
        a
        n
        d
      
    
    
   
       
  
    
      
        
          r
          
            2
          
        
         
        i
        n
         
        M
        [
        
          s
          
            2
          
        
        ,
        
          o
          
            2
          
        
        ]
         
        a
        n
        d
      
    
    
   
       
  
    
      
        .
        .
        .
      
    
    
   
       
  
    
      
        
          r
          
            m
          
        
         
        i
        n
         
        M
        [
        
          s
          
            m
          
        
        ,
        
          o
          
            m
          
        
        ]
      
    
    
   
    then
         
  
    
      
        o
        
          p
          
            1
          
        
        ,
      
    
    
   
         
  
    
      
        o
        
          p
          
            2
          
        
        ,
      
    
    
   
         
  
    
      
        .
        .
        .
      
    
    
   
         
  
    
      
        o
        
          p
          
            k
          
        
        ,
      
    
    
   
end

Пример командыПравить

Примером команды, которая является комбинацией элементарных операций o p  , может служить создание файла F   пользователем P   и получение им прав на чтение r e a d  :[1]

command 
  
    
      
        C
        r
        e
        a
        t
        e
        F
        i
        l
        e
        (
        F
        ,
        P
        )
      
    
    
    
      
  
    
      
        c
        r
        e
        a
        t
        e
        o
        b
        j
        e
        c
        t
        F
        ,
      
    
    
   
      
  
    
      
        e
        n
        t
        e
        r
        r
        e
        a
        d
        i
        n
        t
        o
        M
        [
        P
        ,
        F
        ]
        ,
      
    
    
   
end

Системы в модели Харрисона-Руззо-УльманаПравить

Любая система в модели Харрисона-Руззо-Ульмана характеризуется матрицей доступа M  , конечным количеством прав R = ( r 1 , r 2 , . . . , r n )  , объектов O = ( o 1 , o 2 , . . . , o m )  , субъектов S = ( s 1 , s 2 , . . . , s l )   и операций A = ( α 1 , α 2 , . . . , α k )  . Система является монооперационной, если каждая команда α i   данной системы выполняет лишь одну элементарную операцию o p  .[6]


БезопасностьПравить

Критерий безопасности системыПравить

Для заданной системы исходное состояние Q 0 = ( S 0 , O 0 , M 0 )   называется безопасным относительно права r  , если не существует такой последовательности команд, которая изменила бы заданное начальное состояние системы так, что право r   записалось бы в ячейку M [ s ; o ]  , в которой оно отсутствовало в начальном состоянии Q 0  . Если это условие не выполнено, то произошла утечка информации.[7]

Теорема 1Править

Существует алгоритм, проверяющий на безопасность исходное состояние Q 0   монооперационной системы на безопасность относительно права r  .[8]

ДоказательствоПравить

Чтобы показать, что исходное состояние системы является безопасным относительно права r  , нужно перебрать все последовательности операций и проверить на отсутствие утечки права r   для каждого конечного состояния. Из этого следует, что условием возможности проверки на безопасность будет ограниченность количества последовательностей операций. Пусть α 1 , α 2 , . . . , α k   — некоторая последовательность операций. Заметим, что её можно упростить. Команды d e l e t e   и d e s t r o y   уберем из последовательности, так как нас интересует наличие права в ячейке, а не его отсутствие. Добавим команду c r e a t e   s u b j e c t   в начало последовательности операций и создадим таким образом субъект s a d d  . Заменим ссылки на субъекты и объекты, создаваемые другими командами c r e a t e   s u b j e c t   и c r e a t e   o b j e c t  , ссылкой на s a d d  . Остальные команды c r e a t e   s u b j e c t   и c r e a t e   o b j e c t   убираем, так как ввиду монооперационности системы нельзя создать субъект и определить для него права в одной операции. В результате остается одна команда c r e a t e   s u b j e c t   и множество команд e n t e r  , максимальное число которых легко посчитать по формуле N = | R | ( | S 0 | + 1 ) ( | O 0 | + 1 )  . Из этого следует, что число последовательностей операций ограниченно, а значит возможно перебором проверить на безопасность состояние системы относительно права r  .[8]

Теорема 2Править

Задача определения безопасности исходного состояния Q 0   системы общего вида для данного права r   является неразрешимой.[9]

ДоказательствоПравить

Чтобы доказать данную теорему, достаточно свести задачу определения безопасности к задаче остановки машины Тьюринга, которая является заведомо неразрешимой.[9]

Преимущества и недостаткиПравить

Преимущества[10]Править

  1. Простота и наглядность, так как для данной модели не требуется сложных алгоритмов.
  2. Эффективность в управлении, так как возможно управление правами пользователей с точностью до операции.
  3. Сильный критерий безопасности.

Недостатки[10]Править

  1. Не существует алгоритма проверки на безопасность для произвольной системы.
  2. Уязвимость для атаки с помощью троянского коня, так как в данной модели не существует контроля за потоками информации между субъектами.

ПрименениеПравить

Несмотря на то, что модель Харрисона-Руззо-Ульмана не предоставляет алгоритма проверки на безопасность для произвольной системы, данная модель нашла свою нишу в мире и используется при формальной верификации корректности построения систем разграничения доступа в высокозащищённых автоматизированных системах. На данный момент создание и развитие моделей управления доступом заключается в основном в проектировании различных модификаций модели Харрисона-Руззо-Ульмана и в поиске условий, при которых бы задача определения безопасности была алгоритмически разрешимой.[9] [11]

Сравнение с аналогомПравить

Аналогом модели Харрисона-Руззо-Ульмана является модель Белла-Лападулы, которая предусматривает разделение объектов и субъектов на уровни секретности, а также контролирует поток данных от субъекта к субъекту. Так субъект, имеющий менее высокий уровень секретности, чем у объекта, не получит права доступа к этому объекту. Это создает ряд преимуществ и недостатков по сравнению с моделью Харрисона-Руззо-Ульмана. Модель Белла — Лападулы не подвержена атакам с помощью троянских коней, более безопасна. Но модель Харрисона-Руззо-Ульмана более эффективна в управлении и проста в использовании. Поэтому каждая из этих моделей нашла свое применение.[12]

См. такжеПравить

ПримечанияПравить

ЛитератураПравить