通用操作系统保护课件.pptx
《通用操作系统保护课件.pptx》由会员分享,可在线阅读,更多相关《通用操作系统保护课件.pptx(101页珍藏版)》请在三一办公上搜索。
1、第4章 通用操作系统保护,1,感谢你的观看,2019年6月30,本章要点,通用操作系统的保护特性:存储保护、文件保护和执行环境保护 对象访问控制 用户鉴别,2,感谢你的观看,2019年6月30,操作系统有两个目标:控制共享访问、实现允许这种访问的接口。在这种目标下,操作系统功能可以分为以下几类:(1)访问控制(2)认证与信任管理(3)管理信息流(4)审计和完整性保护 所有这些活动都与安全有关。,3,感谢你的观看,2019年6月30,对于一个支持多道程序的操作系统,操作系统设计者提供了包括存储保护、文件保护、对象的一般访问控制和鉴别等方法,来保护计算免受其他用户无意或恶意的干扰。本章仅以两类操作
2、系统为例:Microsoft Windows NT,2000,XP,2003 Server,和 Vista;Unix,Linux,和它们的变化版本。,4,感谢你的观看,2019年6月30,4.1 保护对象和保护方法,4.1.1 历史回顾 第一代操作系统是一种简单的设备执行器(executive),其设计目的是协助各位程序员完成各自的工作,以及平稳地实现用户之间的切换。执行器要求每个时刻只有一个程序员执行程序。多道程序操作系统也称为监控器(monitor),用以监督每个程序的执行。监控器充当了主动的角色,只要用户的请求与系统要求一致,监控器就主动控制计算机系统把资源分配给用户。,5,感谢你的观看
3、,2019年6月30,4.1.2 保护对象,事实上,多道程序的出现意味着需要保护计算机系统的几个方面:(1)内存(2)可共享的I/O设备,比如磁盘(3)可连续复用的I/O设备,例如打印机和磁带驱动器(4)网络(5)可共享的程序或子程序(6)可共享的数据,6,感谢你的观看,2019年6月30,4.1.3 操作系统的安全方法,最基本的保护是分离控制(separation):保持一个用户的对象独立于其他用户。在操作系统中分离控制主要有以下4种方式:(1)物理分离:指不同的进程使用不同的物理对象。(2)时间分离:指有着不同安全要求的进程,在不同时间执行。(3)逻辑分离:使程序不能访问许可域之外的对象,
4、这样用户感觉好象在没有其他进程的情况下执行自己的进程。(4)密码分离:进程对其数据和计算加密,使其他进程无法理解。,7,感谢你的观看,2019年6月30,4.1.3 操作系统的安全方法(续),操作系统也提供了一些共享的保护路线:(1)不保护:当敏感进程在不同时间运行时是恰当的。(2)隔离:当操作系统提供隔离时,各个进程并发运行,相互之间感觉不到其他进程的存在。(3)共享一切或不共享:对象所有者宣布对象是公有或私有。(4)访问限制共享:通过访问限制保护,操作系统检查用户对象的访问是否是允许的。操作系统充当了用户和被访问对象之间的守卫,确保只能进行已授权的访问。(5)访问权能共享:这种保护形式扩展
5、了访问限制共享的概念,它允许动态产生对对象的共享权限。(6)对象的限制使用:这种保护形式不仅限制了对对象的访问,并同时限制了获得访问后的使用情况。,8,感谢你的观看,2019年6月30,4.1.3 操作系统的安全方法(续),可以在各种级别实现访问控制:比特、字节、记录、文件或卷。我们关心控制粒度(granularity)。被控制对象的粒度越大,这种控制越容易实现。然而,这样一来操作系统给用户的访问权限就将多于用户本身的需求。,9,感谢你的观看,2019年6月30,4.2 内存及地址保护,4.2.1 界地址 界地址(fence)是一个预定义的内存地址,设置了用户的内存区界限。,图 4.1 固定界
6、地址,10,感谢你的观看,2019年6月30,4.2.1 界地址(续),另一种方法是使用硬件寄存器,称为界地址寄存器(fence register),用于存放操作系统的尾址。,图 4.2 可变界地址寄存器,#界地址寄存器只是单向保护操作系统。,11,感谢你的观看,2019年6月30,4.2.2 重定位,重定位(relocation)是假定程序地址开始于地址0,然后改变所有地址以反映程序在内存中的实际地址。重定位因子(relocation factor)是分配给程序的内存首地址。界地址寄存器可以是硬件重定位设备。界地址寄存器的内容加上程序的相对地址,不但可以重定位,而且可以控制用户访问操作系统空
7、间。,12,感谢你的观看,2019年6月30,4.2.3 基址/范围寄存器,可变界地址寄存器通常称为基地址寄存器(base register)。范围寄存器(bounds register)用于存放上界地址限制。,图 4.3 基址/范围寄存器对,#改变两个寄存器的地址称为上下文转换(context switch),13,感谢你的观看,2019年6月30,4.2.3 基址/范围寄存器(续),用户可能不慎将数据存储在指令存储区中。可以使用两对寄存器来解决这一问题,一对用于界定程序指令,另一对用于界定存储数据空间。这似乎鼓励使用更多对寄存器对,但两对已经是计算机设计的界限。超过这一数量每条代码需要明确
8、向操作系统指明寄存器对。,图 4.4 两对基址/范围寄存器,14,感谢你的观看,2019年6月30,4.2.4 标记结构,使用基址/范围寄存器保护只能提供全部数据的保护,而有时用户只希望保护部分数据。此外,有时还希望实现对数据段和程序段的共享。一种解决办法是使用标记结构(tagged architecture),机器内存的每个字节都有一个或几个额外的比特用来表示该单元访问权限,这些访问比特由操作系统特权指令设置,每次指令访问某存储区时,都对这些比特进行权限检查。,15,感谢你的观看,2019年6月30,4.2.4 标记结构(续),图 4.5 标记结构示例,16,感谢你的观看,2019年6月30
9、,4.2.4 标记结构(续),少数操作系统采用了这种保护技术。Burroughs B6500-7500系统用了3个比特标记区分数据字(3种类型)、说明符(指针)和控制字(堆栈指针和地址控制字)。IBM操作系统/38用标记来控制完整性和访问。在一组连续的地址上应用标记是使用标记的一种推广形式,如128或256字节。是否使用标记结构与代码的兼容性有关。标记结构通常要求从根本上改变操作系统的所有实际代码,这个要求可能因代价昂贵而不可行。随着内存价格下降,标记结构实现变得可行了。,17,感谢你的观看,2019年6月30,4.2.5 分段式,分段(segmentation),即将一个程序分成几块的简单方
10、法。每一块是一个逻辑单元,表现为一组有关联的代码或数据。分段允许程序分成有不同访问权限的几部分。各段使用对段内数据项和代码寻址。各段可以分别重定位,并且允许把各段分别放在任何可用的内存中。,18,感谢你的观看,2019年6月30,4.2.5 分段式(续),图4.6 分段的逻辑和物理表示,19,感谢你的观看,2019年6月30,4.2.5 分段式(续),操作系统必须维护一个包括段名和段在内存中实际地址的表。以便进程确定数据和代码在内存中的实际地址。考虑效率,通常每个正在执行的进程有一个操作系统的段地址表(segment address table)。如果有两个进程共享访问同一个分段,它们段地址表
11、里就有相同的段名和地址。,20,感谢你的观看,2019年6月30,4.2.5 分段式(续),图 4.7 段地址转换,21,感谢你的观看,2019年6月30,4.2.5 分段式(续),用户程序不知道其使用的实际内存地址,通过程序可以访问任何数据与程序。地址隐藏给操作系统带来了三个好处:(1)操作系统可以将任意分段放置或移动到任意位置,甚至在程序开始执行后,都可以这样做。操作系统只要不断更新新分段地址表即可。(2)可将当前不使用的分段换出主内存(并可存储在辅助存储器中)。(3)每个地址引用都将传递给操作系统,所以为了保护内存,操作系统可以检查每个地址引用。,22,感谢你的观看,2019年6月30,
12、4.2.5 分段式(续),操作系统可以把分段和其保护等级联系起来,并同时使用硬件和操作系统检查每次对段的访问,以实现对不同安全级别段的不同保护。分段可以提供如下安全特性:(1)为了保护,可检查每个地址引用(2)可为不同级别的数据项指派不同的保护级别(3)两个或两个以上用户可共享同一个段,但可以有不同的访问权限(4)用户不能产生地址或访问未经许可的段,23,感谢你的观看,2019年6月30,4.2.5 分段式(续),分段式的缺点在于:(1)各段有特定的大小,但程序通过段名和偏移量产生的引用却可以超出段的范围。这个问题在编译和装入程序时不能被阻止,这是因为,为了有效使用分段,要求在程序执行过程中能
13、增加段的大小。因此,分段的安全实现要求检查产生的地址不超过当前段的边界。(2)分段的效率存在两方面的问题:段名在指令中不便于编码;操作系统在段表中查找段名速度可能很慢。因此,编译程序时,段名被转换数字,同时,编译器还维持一个联系数字和真正段名的映射。这为两个进程共享一个分段带来了麻烦。(3)内存碎片问题。,24,感谢你的观看,2019年6月30,4.2.6 分页式,用户程序的地址空间被划分为若干个大小相等的区域,称为页(page);并且内存空间也分成与页相同大小的存储块,称为页帧(page frame)。分页式的地址结构包含两个部分。,图 4.8 页地址转换,#页寻址不存在超页问题,偏移量超过
14、某个页边界时,将导致页号部分进位。,25,感谢你的观看,2019年6月30,4.2.6 分页式(续),分段方式中程序员了解各段,但是,分页方式中,程序员可以忽略页的范围。分页方式中页不是逻辑单位,仅表示程序中相邻的若干字节。如果考虑保护,这种变化就存在问题。段的信息为逻辑单位,方便设定不同的保护权限,地址转换时可以处理这种变化。但在分页方式中,页内每一项不必是逻辑单位。因此,就不可能对一页中的所有值建立一种等级的保护。,26,感谢你的观看,2019年6月30,4.2.7 段页式,综合分段和分页系统的优点可以形成段页式系统。IBM 390系列、Multics操作系统都采用了这种方式。程序员先将程
15、序分成逻辑段,每段再分成固定大小的若干页。这种方式保留了段的逻辑单元并允许有不同保护级别,但需要额外的地址转换。可以增加硬件来改善实现效率。,27,感谢你的观看,2019年6月30,4.2.7 段页式(续),图 4.9 段页式,28,感谢你的观看,2019年6月30,4.3 一般对象的访问控制,在多道程序环境下,内存保护只是对象保护的一种特殊情形,需要保护的对象包括:内存、辅助存储设备上的文件或数据、内存中正在执行的程序、文件目录、硬件设备、数据结构、操作系统中的表、指令集特别是特权指令集、口令和用户鉴别机制、保护机制本身等。随着对象数量的增多,对所有访问集中授权显然不够,而且访问权限也不能简
16、单限制为只读,只写或只执行。我们用用户或主体来描述对一般对象的访问。用户和主体可以是使用计算机程序的人、程序员、另一个对象或需要使用这个对象的其他事件。,29,感谢你的观看,2019年6月30,4.3 一般对象的访问控制(续),保护对象有几点补充要求:(1)检查每次访问:可以撤消用户对于对象的访问权限,这需要用户每次访问都进行检查。(2)执行最小特权:主体应该只访问完成特定任务所必须的对象,即使访问了额外的信息对主体没有影响,主体也不应当执行这样的访问。(3)检查允许用法:访问能力仅决定可或不可访问,但是,检查对访问对象的操作是否合法同样重要。,30,感谢你的观看,2019年6月30,4.3.
17、1 目录,简单的保护对象的方法是使用如同文件目录一样的保护机制。每个用户有一个文件目录,该目录用于记录用户可以访问的文件。当然不允许用户写文件目录,而由操作系统来维护所有文件目录。读、写和执行是共享文件的访问权,另外一个权限“所有者”归文件所有者,允许其对用户进行授予或撤消访问权限。,31,感谢你的观看,2019年6月30,4.3.1 目录(续),图 4.10 访问目录,32,感谢你的观看,2019年6月30,4.3.1 目录(续),为每个用户维护一张文件目录列表,虽然比较易于实现,但也存在几个困难之处:(1)如果所有用户都可以访问的共享对象很多,将造成列表很大。在用户访问目录中,每个即使不用
18、的共享对象也要占一个表项,十分浪费,而删除共享对象也必须反映到每个用户目录中。,33,感谢你的观看,2019年6月30,4.3.1 目录(续),(2)另一个难点是撤消访问权限(revocation of access)。如果用户A授予用户B可读文件F的权限,F的权限将记入用户B的访问目录中。暗示用户A和用户B存在信任关系。当然,用户A也可以撤消用户B对文件F的权限。但是如果用户A要撤消所有用户对文件F的权限,这项工作在大系统中开销很大。此外,用户B可能将文件F的权限转交给了其他用户,造成用户A不知道存在其他用户有权访问文件F,而无法撤消,这在网络操作系统中尤其严重。,34,感谢你的观看,201
19、9年6月30,4.3.1 目录(续),(3)再一个困难与文件别名有关。所有者A和B可能分别有同名的两个不同文件F,并且允许用户S访问这两个文件。显然,用户S的文件目录不能包含文件名相同但针对不同文件的两个表项。一个方法是把文件的所有者名字包含在文件名内,如A:F(或B:F)。另一个办法是允许用户S在它的文件目录中用另外一个唯一的名字替文件F。这样,用户A的文件F可能被用户S称为文件Q。用户可能之后忘记文件Q就是用户A的文件F,再次向用户A请求访问文件F,用户A可能更信任用户S比起初赋予更多权限,这样用户S就有了对文件F的两种不同访问权限,导致不一致的多种访问许可。,35,感谢你的观看,2019
20、年6月30,4.3.1 目录(续),图 4.11 两种访问路径,36,感谢你的观看,2019年6月30,4.3.2 访问控制列表,每个对象都有一个访问控制列表(access control list),其中包含欲访问该对象的所有主体,以及主体具有的权限。访问控制列表包含默认表项,它表示所有用户可以访问该对象。特殊用户可以显式说明访问权限,而其他用户则可以有一组默认访问权限。在这种结构下,公共文件或程序可以被系统所有的潜在用户访问,而不需要在每个用户各自的访问目录为该对象增加表项。,37,感谢你的观看,2019年6月30,4.3.2 访问控制列表(续),图4.12 访问控制列表,38,感谢你的观
21、看,2019年6月30,4.3.2 访问控制列表(续),Multics操作系统采用了这种形式的访问控制列表,列表中每个用户有三种保护类:用户指一个特定主体;组将相同利益主体组织在一起;分隔区限制了不信任的对象,在一个分隔区中运行的程序未经许可不能访问另一个分隔区的对象。,39,感谢你的观看,2019年6月30,4.3.2 访问控制列表(续),用户Adams登录时,其身份是在分组Dec1及分隔区Art2的用户。在会话中允许该用户访问的对象需要在访问控制列表中包含Adams-Dec1-Art2。这种保护不实用,用户Adams不能生成一般的文件用于所有会话。共享对象、可接受的组和分隔区都需要明确列出
22、Adams。解决办法是引入通配符*(wild card),它表示任意用户(或任意组或任意分隔区),例如,Adams-*-Art2。访问控制列表可以按顺序组织,包含“*”的用户排列在所有说明了名字表项的后面。在查找规则中,所有显示给定了名字的表总是比表项中的任意位置包含通配符的表项先检查,而最后一项用户可能是*-*-*,定义所有不指明用户的权限。,40,感谢你的观看,2019年6月30,4.3.3 访问控制矩阵,访问控制矩阵(access control matrix)是一张表格,每行代表一个主体,每一列代表一个对象,表中的每个元素表示访问权限。一般说来,访问控制矩阵是一个稀疏矩阵。因此,访问控
23、制矩阵也可以用的三元组表示。,表 4.1 访问控制矩阵,41,感谢你的观看,2019年6月30,4.3.4 访问权能,访问权能(capability),是一种不可伪造的标签(ticket),代表对某个对象有某种类型的访问权限。使标签不可伪造的一个方法是不直接将它交给用户,而由操作系统代管。只有用户向操作系统发出特殊请求时,才能生成访问权能。另一个方法是,使用访问控制机制的密钥加密包含合法用户身份的访问权能证。访问权能将部分保护对象的负担交给用户,对于对象的可能访问权限包括转移或传播,每个访问权能都对应一个许可的访问权限类型列表,如果具有转移权限,用户才可以将对象的访问权转给第三方。,42,感谢
24、你的观看,2019年6月30,4.3.4 访问权能(续),考虑一个进程执行时,它运行在一个域(domain)或本地名字空间(local name space)中。域是进程要访问对象的集合。,图 4.13 进程执行域,43,感谢你的观看,2019年6月30,4.3.4 访问权能(续),而调用子程序时,需要传递一些子程序需要访问的对象,主程序可以只传递部分对象访问权限给子程序,子程序也可以拥有主程序没有的其他对象访问权。因为每个访问权能仅对应一个对象,访问权能的集合定义了域。当进程调用子程序时,操作系统形成一个目前程序所有访问权能堆栈,之后为子程序产生一个新的访问权能。,44,感谢你的观看,201
25、9年6月30,4.3.4 访问权能(续),图 4.14 将对象传递给一个主体,45,感谢你的观看,2019年6月30,4.3.4 访问权能(续),访问权能的几点说明:(1)在操作上,访问权能是跟踪执行主体对于对象的访问权限的直接方法,可以用一张全面的表来备份访问权能。一个进程需要使用新对象时,由操作系统检查决定是否赋予新的权能。(2)访问权能必须保存在普通用户不可访问的内存区,可以存储在用户表不能引用的内存段,或用标记结构机制将访问权能标识为保护的数据结构。(3)在执行期间,只有被当前进程访问过的对象的权能会被保持可用状态,这可以改善访问对象时检查速度。(4)访问权能可以撤消,撤消后的访问权能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通用 操作系统 保护 课件
链接地址:https://www.31ppt.com/p-3835330.html