HRU 模型

Posted by BINISM on June 23, 2016

目录

HRU模型是访问控制矩阵模型中的一种。

访问控制矩阵

  • 所有的主体的集合用\(S= \{ s_1,s_2, ……,s_m \}\) 表示;
  • 所有的客体用\(O = \{ o_1,o_2,……,o_n \}\)表示;
  • 所有的权限用R表示;
  • 访问矩阵是以主体为行索引、以客体为列索引的矩阵的第i行第j列的矩阵元素\(a[s_i,o_j] ⊆ R\)表示主体\(s_i\)对客体\(o_j\)拥有的权限。

  • 对于文件客体的r、w、a、own都比较清楚。
  • 对于进程的读、写等在不同的系统中可能含义不同。
    • 读:“读”进程可以接收“被读”进程发送的消息。
    • 读:“读”进程可以读取“被读”进程的状态。

系统状态

系统的状态

  • 所有的内存、缓存、寄存器、设备的状态等

系统的保护状态

  • 系统状态中涉及安全的子集
  • 系统的保护状态可以用三元组\((S, O, A)\)表示。
  • 假设P是所有的保护状态的集合,Q是P的一个子集表示系统 的合法状态。
  • 如果系统的安全状态在Q中,则系统是安全的;
  • 如果在P-Q中,则系统是不安全的。
  • 系统的保护就是将系统控制在状态集Q中。

状态的转换

  1. 当进程执行操作后,保护系统的状态会发生转换。
  2. 系统的初始状态设为\(X_0= \{ S_0,O_0,A_0 \}\)。
  3. 当系统执行一系列操作\(t_1,t_2,…\)后,系统状态依次变成\(X_1,X_2,…\)。记为\(X_i {\vdash}_{t_i} X_{i+1}\)
  4. 当一个系统从状态X开始,经过一系列的操作后,转换 到状态Y,可以记作:\[ X {\vdash}^* Y \]

基本命令

create subject s

  • 事前条件\(s ∉S\)
  • 事后条件\[ S’=S∪\{s\}, O’=O∪\{s\}, ∀y∈O’, a’[s,y] = φ. ∀x∈S’, a’[x,s] = φ. ∀x∈S, y∈O, a’[x,y] = a[x,y] \]

create object o

  • 事前条件\(o ∉ O\)
  • 事后条件\[ S’= S, O’= O ∪ \{ o \}, ∀x∈S’, a’[x,o] = φ. ∀x∈S’, y∈O, a’[x,y] = a[x,y] \]

destroy subject s

  • 事前条件\(s ∈ S\)
  • 事后条件\[ S’=S - \{ s \}, O’=O - \{ s \}, ∀y∈O’, a’[s,y] = φ. ∀x∈S’, a’[x,s] = φ. ∀x∈S’, y∈O’, a’[x,y] = a[x,y] \]

destroy object o

  • 事前条件\(o ∈ O\)
  • 事后条件\[ S’=S, O’=O - \{ o \}, ∀x∈S’, a’[x,o] = φ. ∀x∈S’, y∈O’, a’[x,y] = a[x,y] \]

enter r into a[s,o]

  • 事前条件\(s ∈ S, o ∈ O\)
  • 事后条件\[ S’=S, O’=O, a’[s,o] = a [s,o] ∪ \{ r \}, ∀x∈S’, y∈O’, (x, y) ≠ (s,o) → a’[x,y] = a [x,y] \]

delete r from a[s,o]

  • 事前条件s ∈S, o ∈O
  • 事后条件 \[ S’= S, O’= O, a’[s,o] = a [s,o] - \{ r \}, ∀x ∈ S’, y ∈ O’, (x, y) ≠ (s,o) → a’[x,y] = a [x,y] \]

单步命令

系统命令

command create·file(p, f)
    create object f;
    enter own into a[p,f];
    enter r into a[p,f];
    enter w into a[p,f];
end

command spawn·process(p, q)
    create subject q;
    enter own into a[p,q];
    enter r into a[p,q];
    enter w into a[p,q];
    enter r into a[q,p];
    enter w into a[q,p];
end

单步命令

系统命令中仅仅包含一条基本命令则称为单步命令。例如:

command make·own(p, f)
    enter own into a[p, f];
end

条件命令

command grant·read·file
    if own in a[p,f] then
        enter r into a[q,f];
end

BINISM / -  views
Published under(CC) BY-NC-SA 3.0 CN.