通用操作系统保护

上传人:仙*** 文档编号:247365159 上传时间:2024-10-18 格式:PPT 页数:100 大小:795.82KB
返回 下载 相关 举报
通用操作系统保护_第1页
第1页 / 共100页
通用操作系统保护_第2页
第2页 / 共100页
通用操作系统保护_第3页
第3页 / 共100页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章 通用操作系统保护,本章要点,通用操作系统的保护特性:存储保护、文件保护和执行环境保护,对象访问控制,用户鉴别,操作系统有两个目标:,控制共享访问,、,实现允许这种访问的接口,。在这种目标下,操作系统功能可以分为以下几类:,(1),访问控制,(2),认证与信任管理,(3),管理信息流,(4),审计和完整性保护,所有这些活动都与安全有关。,对于一个支持多道程序的操作系统,操作系统设计者提供了包括存储保护、文件保护、对象的一般访问控制和鉴别等方法,来保护计算免受其他用户无意或恶意的干扰。,本章仅以两类操作系统为例:,Microsoft Windows NT,,,2000,,,XP,,,2003 Server,,和,Vista,;,Unix,,,Linux,,和它们的变化版本。,4.1,保护对象和保护方法,4.1.1,历史回顾,第一代操作系统是一种简单的设备,执行器,(executive),,其设计目的是协助各位程序员完成各自的工作,以及平稳地实现用户之间的切换,。,执行器要求每个时刻只有一个程序员执行程序。,多道程序操作系统也称为,监控器,(monitor),,用以监督每个程序的执行。监控器充当了主动的角色,只要用户的请求与系统要求一致,监控器就主动控制计算机系统把资源分配给用户。,4.1.2,保护对象,事实上,多道程序的出现意味着需要保护计算机系统的几个方面:,(1),内存,(2),可共享的,I/O,设备,比如磁盘,(3),可连续复用的,I/O,设备,例如打印机和磁带驱动器,(4),网络,(5),可共享的程序或子程序,(6),可共享的数据,4.1.3,操作系统的安全方法,最基本的保护是,分离控制,(separation),:保持一个用户的对象独立于其他用户。在操作系统中分离控制主要有以下,4,种方式:,(1),物理分离,:指不同的进程使用不同的物理对象。,(2),时间分离,:指有着不同安全要求的进程,在不同时间执行。,(3),逻辑分离,:使程序不能访问许可域之外的对象,这样用户感觉好象在没有其他进程的情况下执行自己的进程。,(4),密码分离,:进程对其数据和计算加密,使其他进程无法理解。,4.1.3,操作系统的安全方法,(,续,),操作系统也提供了一些共享的保护路线:,(1),不保护,:当敏感进程在不同时间运行时是恰当的。,(2),隔离,:当操作系统提供隔离时,各个进程并发运行,相互之间感觉不到其他进程的存在。,(3),共享一切或不共享,:对象所有者宣布对象是公有或私有。,(4),访问限制共享,:通过访问限制保护,操作系统检查用户对象的访问是否是允许的。操作系统充当了用户和被访问对象之间的守卫,确保只能进行已授权的访问。,(5),访问权能共享,:这种保护形式扩展了访问限制共享的概念,它允许动态产生对对象的共享权限。,(6),对象的限制使用,:这种保护形式不仅限制了对对象的访问,并同时限制了获得访问后的使用情况。,4.1.3,操作系统的安全方法,(,续,),可以在各种级别实现访问控制:比特、字节、记录、文件或卷。我们关心,控制粒度,(granularity),。被控制对象的粒度越大,这种控制越容易实现。然而,这样一来操作系统给用户的访问权限就将多于用户本身的需求。,4.2,内存及地址保护,4.2.1,界地址,界地址,(fence),是,一个预定义的内存地址,设置了用户的内存区界限。,图,4.1,固定界地址,4.2.1,界地址,(,续,),另一种方法是使用硬件寄存器,称为,界地址寄存器,(fence register),,用于存放操作系统的尾址。,图,4.2,可变界地址寄存器,#,界地址,寄存器只是单向保护操作系统。,4.2.2,重定位,重定位,(relocation),是假定程序地址开始于地址,0,,然后改变所有地址以反映程序在内存中的实际地址。,重定位因子,(relocation factor),是分配给程序的内存首地址。界地址寄存器可以是硬件重定位设备。界地址寄存器的内容加上程序的相对地址,不但可以重定位,而且可以控制用户访问操作系统空间。,4.2.3,基址,/,范围寄存器,可变界地址寄存器通常称为,基地址寄存器,(base register),。,范围寄存器,(bounds register),用于存放上界地址限制。,图,4.3,基址,/,范围寄存器对,#,改变两个寄存器的地址称为上下文转换,(context switch),4.2.3,基址,/,范围寄存器,(,续,),用户可能不慎将数据存储在指令存储区中。可以使用两对寄存器来解决这一问题,一对用于界定程序指令,另一对用于界定存储数据空间。这似乎鼓励使用更多对寄存器对,但两对已经是计算机设计的界限。超过这一数量每条代码需要明确向操作系统指明寄存器对。,图,4.4,两对基址,/,范围寄存器,4.2.4,标记结构,使用基址,/,范围寄存器保护只能提供全部数据的保护,而有时用户只希望保护部分数据。此外,有时还希望实现对数据段和程序段的共享。一种解决办法是使用,标记,结构,(tagged architecture),,机器内存的每个字节都有一个或几个额外的比特用来表示该单元访问权限,这些访问比特由操作系统特权指令设置,每次指令访问某存储区时,都对这些比特进行权限检查。,4.2.4,标记结构,(,续,),图,4.5,标记结构示例,4.2.4,标记结构,(,续,),少数操作系统采用了这种保护技术。,Burroughs B6500-7500,系统用了,3,个比特标记区分数据字,(3,种类型,),、说明符,(,指针,),和控制字,(,堆栈指针和地址控制字,),。,IBM,操作系统,/38,用标记来控制完整性和访问。在一组连续的地址上应用标记是使用标记的一种推广形式,如,128,或,256,字节。是否使用标记结构与代码的兼容性有关。标记结构通常要求从根本上改变操作系统的所有实际代码,这个要求可能因代价昂贵而不可行。随着内存价格下降,标记结构实现变得可行了。,4.2.5,分段式,分段,(segmentation),,即将一个程序分成几块的简单方法。每一块是一个逻辑单元,表现为一组有关联的代码或数据。分段允许程序分成有不同访问权限的几部分。各段使用,对段内数据项和代码寻址。各段可以分别重定位,并且允许把各段分别放在任何可用的内存中。,4.2.5,分段式,(,续,),图,4.6,分段的逻辑和物理表示,4.2.5,分段式,(,续,),操作系统必须维护一个包括段名和段在内存中实际地址的表。以便进程确定数据和代码在内存中的实际地址。考虑效率,通常每个正在执行的进程有一个操作系统的,段地址表,(segment address table),。如果有两个进程共享访问同一个分段,它们段地址表里就有相同的段名和地址。,4.2.5,分段式,(,续,),图,4.7,段地址转换,4.2.5,分段式,(,续,),用户程序不知道其使用的实际内存地址,通过,程序可以访问任何数据与程序。地址隐藏给操作系统带来了三个好处:,(1),操作系统可以将任意分段放置或移动到任意位置,甚至在程序开始执行后,都可以这样做。操作系统只要不断更新新分段地址表即可。,(2),可将当前不使用的分段换出主内存,(,并可存储在辅助存储器中,),。,(3),每个地址引用都将传递给操作系统,所以为了保护内存,操作系统可以检查每个地址引用。,4.2.5,分段式,(,续,),操作系统可以把分段和其保护等级联系起来,并同时使用硬件和操作系统检查每次对段的访问,以实现对不同安全级别段的不同保护。分段可以提供如下安全特性:,(1),为了保护,可检查每个地址引用,(2),可为不同级别的数据项指派不同的保护级别,(3),两个或两个以上用户可共享同一个段,但可以有不同的访问权限,(4),用户不能产生地址或访问未经许可的段,4.2.5,分段式,(,续,),分段式的缺点在于:,(1),各段有特定的大小,但程序通过段名和偏移量产生的引用却可以超出段的范围。这个问题在编译和装入程序时不能被阻止,这是因为,为了有效使用分段,要求在程序执行过程中能增加段的大小。因此,分段的安全实现要求检查产生的地址不超过当前段的边界。,(2),分段的效率存在两方面的问题:段名在指令中不便于编码;操作系统在段表中查找段名速度可能很慢。因此,编译程序时,段名被转换数字,同时,编译器还维持一个联系数字和真正段名的映射。这为两个进程共享一个分段带来了麻烦。,(3),内存碎片问题。,4.2.6,分页式,用户程序的地址空间被划分为若干个大小相等的区域,称为,页,(page),;并且内存空间也分成与页相同大小的存储块,称为,页帧,(page frame),。分页式的地址结构包含两个部分,。,图,4.8,页,地址转换,#,页寻址不存在超页问题,偏移量超过某个页边界时,将导致页号部分进位。,4.2.6,分页式,(,续,),分段方式中程序员了解各段,但是,分页方式中,程序员可以忽略页的范围。分页方式中页不是逻辑单位,仅表示程序中相邻的若干字节。,如果考虑保护,这种变化就存在问题。段的信息为逻辑单位,方便设定不同的保护权限,地址转换时可以处理这种变化。但在分页方式中,页内每一项不必是逻辑单位。因此,就不可能对一页中的所有值建立一种等级的保护。,4.2.7,段页式,综合分段和分页系统的优点可以形成段页式系统。,IBM 390,系列、,Multics,操作系统都采用了这种方式。程序员先将程序分成逻辑段,每段再分成固定大小的若干页。这种方式保留了段的逻辑单元并允许有不同保护级别,但需要额外的地址转换。可以增加硬件来改善实现效率。,4.2.7,段页式,(,续,),图,4.9,段页式,4.3,一般对象的访问控制,在多道程序环境下,内存保护只是,对象保护,的一种特殊情形,需要保护的对象包括:内存、辅助存储设备上的文件或数据、内存中正在执行的程序、文件目录、硬件设备、数据结构、操作系统中的表、指令集特别是特权指令集、口令和用户鉴别机制、保护机制本身等。,随着对象数量的增多,对所有访问集中授权显然不够,而且访问权限也不能简单限制为只读,只写或只执行。我们用用户或主体来描述对一般对象的访问。,用户和主体,可以是使用计算机程序的人、程序员、另一个对象或需要使用这个对象的其他事件。,4.3,一般对象的访问控制,(,续,),保护对象有几点补充要求:,(1),检查每次访问,:可以撤消用户对于对象的访问权限,这需要用户每次访问都进行检查。,(2),执行,最小特权,:主体应该只访问完成特定任务所必须的对象,即使访问了额外的信息对主体没有影响,主体也不应当执行这样的访问。,(3),检查允许用法,:访问能力仅决定可或不可访问,但是,检查对访问对象的操作是否合法同样重要。,4.3.1,目录,简单的保护对象的方法是使用如同文件目录一样的保护机制。每个用户有一个文件目录,该目录用于记录用户可以访问的文件。当然不允许用户写文件目录,而由操作系统来维护所有文件目录。读、写和执行是共享文件的访问权,另外一个权限“所有者”归文件所有者,允许其对用户进行授予或撤消访问权限。,4.3.1,目录,(,续,),图,4.10,访问目录,4.3.1,目录,(,续,),为每个用户维护一张文件目录列表,虽然比较易于实现,但也存在几个困难之处:,(1),如果所有用户都可以访问的共享对象很多,将造成列表很大。在用户访问目录中,每个即使不用的共享对象也要占一个表项,十分浪费,而删除共享对象也必须反映到每个用户目录中。,4.3.1,目录,(,续,),(2),另一个难点是,撤消访问权限,(revocation of access),。如果用户,A,授予用户,B,可读文件,F,的权限,,F,的权限将记入用户,B,的访问目录中。暗示用户,A,和用户,B,存在信任关系。当然,用户,A,也可以撤消用户,B,对文件,F,的权限。但是如果用户,A,要撤消所有用户对文件,F,的权限,这项工作
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!