logo资料库

安全模型与策略.pdf

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
信息安全 内容 • 访问控制矩阵 • 安全策略 第2章 安全模型与策略 梁彬 中国人民大学信息学院计算机系 V 1.0 2.1 访问控制矩阵 • 访问控制矩阵(Access Control Matrix, ACM)模型是最常用的用于描述系统保护 状态的模型 – 矩阵中存储有各主体(Subject)的权限 – 系统保护状态的改变将导致矩阵元素的改变 2.1 访问控制矩阵 • 2个概念: – 主体(Subject):活跃的实体,如进程 – 客体/对象(Object):被保护实体,如文件 某些实体可能同时是主体与客体! • 访问控制矩阵模型是一种抽象模型,要讨 论具体访问控制矩阵的意义,必须与系统 的具体实现相联系 2.1 访问控制矩阵 objects … o1 om s t c e j b u s s1 s2 … sn • 主体 S = { s1,…,sn } • 客体 O = { o1,…,om } • 权限 R = { r1,…,rk } • 元素 A[si, oj] ⊆ R • A[si, oj] = { rx, …, ry } 意 味着 si对于客体 oj具有 权限 rx, …, ry 3 5 2.1 访问控制矩阵 objects (entities) o1 … om s1 … sn s t c e j b u s s1 s2 … sn 2 4 6 1
实例 • 进程 p, q • 文件 f, g • 权限 r(读), w(写), x(执行), a(添加), o(拥有) f rwo a g r ro p rwxo q w r rwxo p q 2.1 访问控制矩阵 • 状态转换 – 将改变系统的保护状态 – |– 代表转换 • Xi |– τ Xi+1: 命令 τ 使得系统从状态 Xi 转换到 Xi+1 • X |– * Y: 一系列命令使得系统从状态 X 转换到Y – 导致状态转换的命令常称为转换过程 (S, O, A) (S', O', A') X X’ 2.1 访问控制矩阵 • 原语命令(Primitive Command) – create subject s • 在ACM中创建新行和列 – create object o • 在ACM中创建新列 – enter r into A[s, o] • 增加主体s对于客体o的权限r – delete r from A[s, o] • 删除主体s对于客体o的权限r – destroy subject s • 在ACM中删除行和列 – destroy object o • 在ACM中删除列 create object o • 前提条件: o ∉ O • 原语命令: create object o • 事后条件: – S′ = S, O′ = O ∪ { o } – (∀x ∈ S′)[a′[x, o] = ∅] – (∀x ∈ S)(∀y ∈ O)[a′[x, y] = a[x, y]] 7 9 11 create subject s • 前提条件: s ∉ S • 原语命令:create subject 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]] enter r into a[s, o] • 前提条件: s ∈ S, o ∈ O • 原语命令: enter r into a[s, o] • 事后条件: – S′ = S, O′ = O – a′[s, o] = a[s, o] ∪ { r } – (∀x ∈ S′)(∀y ∈ O′ – { o }) [a′[x, y] = a[x, y]] – (∀x ∈ S′ – { s })(∀y ∈ O′) [a′[x, y] = a[x, y]] 8 10 12 2
delete r into a[s, o] • 前提条件: s ∈ S, o ∈ O • 原语命令: delete r into a[s, o] • 事后条件: – S′ = S, O′ = O – a′[s, o] = a[s, o] – { r } – (∀x ∈ S′)(∀y ∈ O′ – { o }) [a′[x, y] = a[x, y]] – (∀x ∈ S′ – { s })(∀y ∈ O′) [a′[x, y] = a[x, y]] destroy subject s • 前提条件: s ∈ S • 原语命令: destroy subject 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 • 原语命令: destroy object o • 事后条件: – S′ = S, O′ = O – { o } – (∀x ∈ S′)[a′[x, o] = ∅] – (∀x ∈ S′)(∀y ∈ O′) [a′[x, y] = a[x, y]] 实例 • 如果进程p创建了进程q。创建进程命令对访问控 制矩阵的作用可以用如下原语命令描述: 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 13 15 17 14 实例 • 在Unix系统中,如果进程p创建了一个文件f,进 程p对文件f是拥有者,同时还有读权限r、写权限 w。创建文件命令对访问控制矩阵的作用可以用 如下原语命令描述: 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 Linux与Windows下的情况呢? 16 2.2 安全策略 如果将计算机系统当作一种有限状态自动 机,该自动机有一套完成状态改变的转换 函数,那么: • 定义2.1:安全策略(Security Policy)是一 种声明,它将系统的状态分为2个集合: – 已授权的,即安全的状态集合; – 未授权的,即不安全的状态集合。 • 定义2.2:安全的系统(Secure System) 是一种始于已授权状态但不能进入未授权 状态的系统。 18 3
2.2 安全策略 • 定义2.3:如果系统进入了一个未授权状 态,则称发生了一次安全破坏(Breach of Security)。 19 2.2 安全策略 • 定义2.7:安全机制(Security Mechanism)是实 施安全策略的某些部分的实体或规程。 • 定义2.8:安全模型(Security Model)是表达特定 策略和策略集合的模型。 策略类型: • 定义2.9:军事安全策略(又称政府安全策略)是 以提供保密性为主要目的的安全策略。 • 定义2.10:商业安全策略是以提供完整性为主要目 的的安全策略。 • 定义2.11:保密性策略是仅处理保密性的安全策略。 • 定义2.12:完整性策略是仅处理完整性的安全策略。 21 2.2 安全策略 • 定义2.4:设X是实体的集合,I是某种信息。 如果X中的成员不能获取信息I,那么I对于X 具有保密性(Confidentiality)。 • 定义2.5:设X是实体的集合,I是某种信息 或某种资源。如果X中的成员都信任I,那么 I对于X具有完整性(Integrity)。 • 定义2.6:设X是实体的集合,I是一种资源。 如果X中的成员都可以访问I,那么I对于X具 有可用性(Availability)。 2.2 安全策略 安全策略可以单独或混合使用两种类型的 访问控制: • 自主访问控制 • 强制访问控制 20 22 2.2 安全策略 • 定义2.13:如果个人用户可以设置访问控制机制 来许可或拒绝对客体的访问,那么这样的机制就 称为自主访问控制( Discretionary Access Control ,DAC)或基于身份的访问控制 (Identity-based Access Control ,IBAC)。 DAC基于主体和客体的身份,客体拥有者一般通 过允许特定的主体进行访问,以限制对客体的访 问。拥有者根据主体的身份来规定限制,或者根 据主体的拥有者来规定限制。 2.2 安全策略 • 定义2.14:如果系统机制控制对客体的访问,而 个人用户不能改变这种控制,这样的控制称为强 制访问控制(Mandatory Access Control, MAC),偶尔也称为基于规则的访问控制(Rule- based Access Control )。 一般由操作系统实施强制访问控制。主体和客体 的拥有者都不能决定访问的授权。通常,系统机 制通过检查主体与客体的相关信息来决定主体是 否可以访问客体。规则描述了允许访问的条件。 23 24 4
实例 • Linux中的DAC 实例 Linux DAC相关命令 • 设置权限命令chmod • 设置文件属主用户命令chown • 设置文件属主用户组命令chgrp 在传统Linux中,超级用户root可以超越 DAC的权限限制! 25 26 实例 Linux特殊权限位: • set uid权限(SUID):只能用在二进制文件(binary file)上,用在目录上无效, 表示程序在执行的过程中能够暂时拥有该文件所有者的权限。 添加set uid权限的命令: chmod u+s 文件名 具备SUID位且属主可执行,则属主执行位显示s来代替没有SUID位的x,如 果属主不能执行,则显示为大写的S。 • set gid权限(SGID):当二进制件(binary file)被设置了此权限,则无论使用者 是谁,在执行该文件时,他的有效群组将变为该文件的群组所有人。当目录 被设置了此权限,就表明该目录下所创建的文件都是为目录所属组。 添加set gid权限的命令 : chmod g+s 目录名 设置SGID位且属组可执行,则属组执行位改成s显示,否则以S显示。 • Sticky Bit权限(粘着位): 目前只针对目录有效,对文件已经没效果了。它对 目录的作用是:在具有粘着位的目录下,使用者如果在该目录下具有w以及x 的权限,则他在该目录下所创建的文件或目录,就只有他与root用户才有权 力删除。即:在这样的权限内容下,任何人都可以在这样的目录下新增或修 改文件,但只有该文件/目录创建者和 root用户能够删除自己的目录或文件。 添加t权限的命令: chmod o+t 目录名 设置粘着位且其它人可执行,则其它人执行位改成t显示,否则以T显示 27 实例 • Linux 2.6内核中实现了ACL(Access Control List),支持更细粒度的DAC http://www.ibm.com/developerworks/cn/linux/l-acl/index.html 可以按照任意单个用户或用户组规定访问 控制 ……/* * If the DACs are ok we don't need any capability check. */ if (((mode & mask & (MAY_READ|MAY_WRITE|MAY_EXEC)) == mask)) return 0; /* * Read/write DACs are always overridable. * Executable DACs are overridable if at least one exec bit is set. */ if (!(mask & MAY_EXEC) || (inode->i_mode & S_IXUGO) || S_ISDIR(inode->i_mode)) if (capable(CAP_DAC_OVERRIDE)) return 0; /* * Searching includes executable on directories, else just read. */ if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE))) if (capable(CAP_DAC_READ_SEARCH)) return 0; return -EACCES; …… Linux中默认情况下: capable(int cap) ≈ (当前进程有效UID或者文件系统UID(euid、fsuid) = = 0)) root uid = = 0 28 2.2 安全策略 • 定义2.15 创建者控制访问控制(Originator Controlled Access Control,ORCON或 ORGCON)基于客体(或其包含的信息)的创建 者(的意愿)进行访问。 ORCON的目的是允许客体(或其包含的信息) 的创建者控制信息的分发,而客体的拥有者没有 决定谁能访问此客体的控制权。 在ORCON的实施中,非技术因素占有很大比 率!在某种程度上来说,ORCON是一种MAC与 DAC的混合策略。 29 30 5
思考题 • 熟悉Linux系统与Windows系统的DAC机制。 • 为什么可以认为ORCON是一种MAC与 DAC的混合策略? 31 6
分享到:
收藏