《操作系统安全技术探讨.ppt》由会员分享,可在线阅读,更多相关《操作系统安全技术探讨.ppt(104页珍藏版)》请在三一办公上搜索。
1、1,第8章 操作系统安全技术探讨,2,本章主要内容,操作系统的安全问题 存储器保护 用户认证 访问控制 Windows 2000(XP)系统的安全机制,3,8.1 操作系统的安全问题,操作系统安全的重要性 操作系统的安全是整个计算机系统安全的基础,没有操作系统安全,就不可能真正解决数据库安全、网络安全和其他应用软件的安全问题。,4,(4)在多用户操作系统中,各用户程序执行过程中相互间会产生不良影响,用户之间会相互干扰。,操作系统面临的安全威胁,(1)恶意用户,(2)恶意破坏系统资源或系统的正常运行,危害计算机系统的可用性,(3)破坏系统完成指定的功能,5,保证系统自身的安全性和完整性。,操作系
2、统安全的目标,标识系统中的用户并进行身份鉴别;,依据系统安全策略对用户的操作进行存取控制,防止用户对计算机资源的非法存取;,监督系统运行的安全;,6,为了实现操作系统安全的目标,需要建立相应的安全机制,包括隔离控制、存储器保护、用户认证、访问控制等。,7,隔离控制的方法有四种:,时间隔离。对不同安全要求的用户进程分配不同的运行时间段。对于用户运算高密级信息时,甚至独占计算机进行运算。,物理隔离。在物理设备或部件一级进行隔离,使不同的用户程序使用不同的物理对象。,8,逻辑隔离。多个用户进程可以同时运行,但相互之间感觉不到其他用户进程的存在,这是因为操作系统限定各进程的运行区域,不允许进程访问其他
3、未被允许的区域。,9,加密隔离。进程把自己的数据和计算活动隐蔽起来,使他们对于其他进程是不可见的,对用户的口令信息或文件数据以密码形式存储,使其他用户无法访问,也是加密隔离控制措施。,10,这几种隔离措施实现的复杂性是逐步递增的,而它们的安全性则是逐步递减的.,隔离措施复杂性?安全性?,11,系统提供的保护方式,无保护方式。当处理高密级数据的程序(又称敏感程序)在单独的时间内运行时,使用无保护的系统是合适的。,隔离保护方式。当操作系统提供隔离机制时,可以使并行运行的进程彼此感觉不到对方的存在。每个进程都有自己的内存空间、文件和其他资源。操作系统必须控制运行中每个进程不得访问其他进程的资源。,1
4、2,共享或独占保护方式。用户资源(或称客体)是否可以共享由用户自己说明,凡被该用户指定为共享的客体,其他用户都可以访问,而被指定为私有的客体,则只能被该用户自己独占使用。,13,通过对其他用户访问进行限制来保护用户的某些客体。,受限共享保护方式。,根据需要为各用户分配不同的访问控制条件,可以把这些访问控制信息存储在某种数据结构(如表格)中,以便操作系统对指定客体进行访问控制。,14,这种方式是受限共享保护方式的推广,用户被赋予访问客体的某种能力,能力代表一种访问权利。该保护方式允许动态创建客体的共享权,用户的进程共享客体的能力取决于客体的拥有者或主体本身,取决于计算的内容,也取决于客体本身。,
5、按能力共享保护方式。,15,这种保护方式不限制对客体的访问,而是限制访问后对客体的使用,例如允许读,但不允许复制;或者只读不许修改等限制。,限制对客体的使用。,16,上述六种对客体的保护是按实现的难度递增顺序排列的,他们对客体的保护能力也是越来越强的。一个功能较强的操作系统应该能够对不同的客体、不同的用户和不同的情况提供不同安全级别的保护功能。,6种实现难度如何?保护能力如何?,17,8.2 存储器保护,内存储器是操作系统中的共享资源,即使对于单用户的个人计算机,内存也是被用户程序与系统程序所共享,在多道环境下更是被多个进程所共享。为了防止共享失去控制和产生不安全问题,对内存进行保护是必要的。
6、,18,内存储器是操作系统中的共享资源,内存被用户程序与系统程序所共享,在多道环境下更是被多个进程所共享。,内存的特点?,19,内存保护的目的是:,防止对内存的未授权访问;,防止对内存的错误读写,如向只读单元写;,防止用户的不当操作破坏内存数据区、程序区或系统区;,多道程序环境下,防止不同用户的内存区域互不影响;,将用户与内存隔离,不让用户知道数据或程序在内存中的具体位置;,20,常用的内存保护技术,有单用户内存保护技术,多道程序的保护技术,分段与分页保护技术,和内存标记保护法,21,8.2.1 单用户内存保护问题 可以利用地址界限寄存器在内存中规定一条区域边界(一个内存地址),用户程序运行时
7、不能跨越这个地址。利用该寄存器也可以实现程序重定位功能,可以指定用户程序的装入地址。,22,内存,界限寄存器,单用户内存保护,用户区,系统区,23,8.2.2 多道程序的保护 单用户内存保护存在的问题:利用一个基址寄存器无法使这些用户程序分隔在不同内存区运行。解决办法:再增加一个寄存器保存用户程序的上边界地址。,24,如果使用多对基址和边界寄存器,还可以把用户的可读写数据区与只读数据区和程序区互相隔离,这种方法可以防止程序自身的访问错误。例如,可以防止向程序区或只读数据区写访问。,25,系统区程序R内存区程序S内存区程序T内存区,基地址寄存器,边界址寄存器,多道程序的保护,26,多对基址与边界
8、寄存器技术的问题:只能保护数据区不被其他用户程序访问,不能控制自身程序对同一个数据区内单元有选择的读或写。,例如,一个程序中若没有数组越界溢出检查,当向该数组区写入时就有可能越界到其他数据单元,甚至越界到程序代码区(这就是缓冲区溢出的一种情况),而代码区是严格禁止写的。,8.2.3 标记保护法,27,解决方法:按其内容要求进行保护,例如有的单元只读,读/写、或仅执行(代码单元)等不同要求,可以在每个内存字单元中专用几个比特来标记该字单元的属性。除了标记读、写、执行等属性外,还可以标记该单元的数据类型,如数据、字符、地址、指针或未定义等。,28,加标记的内存,其中E表示执行,R表示读,W表示写,
9、OR表示只读。,29,8.2.4 分段与分页技术 对于稍微复杂一些的用户程序,通常按功能划分成若干个模块(过程)。每个模块有自己的数据区,各模块之间也可能有共享数据区。各用户程序之间也可能有共享模块或共享数据区。这些模块或数据区有着不同的访问属性和安全要求,使用上述各种保护技术很难满足这些要求。,30,分段技术的作用 分段技术就是试图解决较大程序的装入、调度、运行和安全保护等问题的一种技术。分段以模块(过程或子程序)为单位。采用分段技术,用户不知道他的程序实际使用的内存物理地址。这种隐藏对保护用户代码与数据的安全是极有好处的。,31,分段技术的优点:,(1)在段表中除了与段名对应的段号及段基址
10、外,还可以增加必要的访问控制信息,对于任何企图访问某个段的操作,操作系统和硬件都可以进行检查。,(2)分段技术几乎可以实现对程序的不同片段分别保护的目标。根据各段敏感性要求,为各段划分安全级,并提供不同的保护措施。,32,(3)分段技术的保护功能可以检查每一次对内存访问是否合法,可以让保护粒度达到数据项级。,(4)可以为了实施保护而检查每一次地址访问。,(5)还可以避免允许用户直接指定内存地址或段区所带来的安全问题,也可以让多个用户用不同的权限访问一个段。,分段技术的优点续:,33,段的管理方式存在的问题与困难(1)由于各段的长度不相同,对内存管理造成了困难,容易产生内存“碎片”。这是一个很大
11、的安全漏洞。,34,(2)在许多情况下(如段内部包含动态数据结构)要求在使用段方式时允许段的尺寸可以增大。为了保证安全起见,要求系统检查所产生的地址,验证其是否超出所访问的段的末端。,段的管理方式存在的问题与困难续:,35,(3)段名不易在指令中编码,由操作系统查名字表的速度也会很慢。解决的办法是由编译器把段名转化为数字,并建立一张数字与段名之间的对照表。但这又为段的共享带来麻烦,因为每个调用者都必须知道该段的编号。,段的管理方式存在的问题与困难续:,36,分段与分页的问题与作用 为了解决分段可能产生的内存碎片问题,引入了分页技术。分页是把目标程序与内存都划分成相同大小的片段,这些片段就称为“
12、页”。分页技术解决了碎片问题,但损失了分段技术的安全功能。由于段具有逻辑上的完整意义,而页则没有这样的意义,程序员可以为段规定某些安全控制要求,但却无法指定各页的访问控制要求。,37,系统还可以为每个物理页分配一个密码,只允许拥有相同密码的进程访问该页,该密码由操作系统装入进程的状态字中,由硬件对进程的密码进行检验。这种安全机制有效地保护了虚拟存储器的安全。,38,8.3 用户认证,用户认证的任务是确认当前正在试图登录进入系统的用户就是账户数据库中记录的那个用户。,认证用户的方法一般有三种:(1)要求输入一些保密信息,如用户的姓名、通行字或加密密钥等;(2)稍微复杂一些鉴别方法,如询问应答系统
13、、采用物理识别设备(如访问卡、钥匙或令牌标记)等方法;(3)利用用户生物特征,如指纹、声音、视网膜等识别技术对用户进行唯一的识别。,39,8.3.1 口令认证方法 口令是一种容易实现并有效地只让授权用户进入系统的方法。口令是用户与操作系统之间交换的信物。用户想使用系统,首先必须通过系统管理员向系统登录,在系统中建立一个用户账号,账号中存放用户的名字(或标识)和口令。用户输入的用户名和口令必须和存放在系统中的账户/口令文件中的相关信息一致才能进入系统。没有一个有效的口令,入侵者要闯入计算机系统是很困难的。,40,破解口令是黑客们攻击系统的常用手段,那些仅由数字组成、或仅由字母组成、或仅由两、三个
14、字符组成、或名字缩写、或常用单词、生日、日期、电话号码、用户喜欢的宠物名、节目名等易猜的字符串作为口令是很容易被破解的。这些类型的口令都不是安全有效的,常被称为弱口令。,41,选取口令应遵循以下规则:扩大口令字符空间 口令的字符空间不要仅限于26个大写字母,要扩大到包括26个小写字母和10个数字,使字符空间可达到62个之多。在UNIX系统中,还把其他一些特殊符号(如+、*、/、%、#、等)也作为口令的字符空间,因此其口令的安全性更高。,42,选择长口令 选择长口令可以增加破解的时间。假定字符空间是26个字母,如果已知口令的长度不超过3,则可能的口令有26+26*26+26*26*26=1827
15、8个。若每毫秒验证一个口令,只需要18多秒钟就可以检验所有口令。,43,选用无规律的口令 不要使用自己的名字、熟悉的或名人的名字作为口令,不要选择宠物名或各种单词作为口令,因为这种类型的口令往往是破解者首先破解的对象,由于它们的数量有限(常用英文词汇量只不过15万左右),对计算机来说不是一件困难的事情。假定按每毫秒穷举一个英文单词的速度计算,15万个单词也仅仅需要150秒钟时间。,44,口令要自己记忆 为了安全起见,再复杂的口令都应该自己记忆。,45,口令更换 有时口令已经泄露了,但拥有者却不知道,还在继续使用。为了避免这种情况发生,比较好的办法是定期更换口令。Windows NT和UNIX系
16、统都支持定期更换口令的功能。,46,多个口令 一般来说,登录名或用户名是与某个私人口令相联系的。尽管如此,在有更高安全要求的系统上还采用多个口令的安全措施。其中包括系统口令,它允许用户访问指定的终端或系统,这是在正常登录过程之后的额外的访问控制层。也可以是对拨号访问或访问某些敏感程序或文件而要求的额外口令。,47,系统生成口令 可以由计算机为用户生成口令,UNIX系统就有这种功能。口令生成软件可以按前面讨论的许多原则为用户生成口令,由系统生成的口令一般很难记忆,有时会迫使用户写到纸上,造成了不安全因素。,48,对口令的控制 除了以上各种安全措施外,有的系统对使用口令进行访问还采取更严格的控制,
17、通常有以下一些措施:登录时间限制系统消息限制登录次数最后一次登录 尽量减少会话透露的信息 增加认证的信息量,49,8.3.2 其他认证方法(1)询问响应系统:本质上是一个密码系统,其中主机发送消息m,用户用E(m)来回答。虽然消息m 及其加密形式都可能被截获(通过观察或线路截听),但这种泄露不会暴露加密算法。询问响应系统提示用户,要求每次注册都给出不同的回答。,50,询问响应系统有两个缺陷:(1)虽然窃取者不能凭一次截获的明文消息与其对应的密文就推断出该系统的加密函数,但是若截取的该加密系统的的明文或密文越多,截获者越有可能攻破该加密系统。解决的办法是采取更强有力的加密系统,这就意味着需要系统
18、具有更加复杂的功能,但对用户用手计算或记忆增加了很大难度。,51,(2)老消息再现的可能性。询问回答系统可能用于让用户相信主机系统的可信性,防止被一个伪装的注册程序骗取自己的口令。用户希望主机能够发出一个密码信息,供用户判断主机的真假。,52,(2)通行短语:另外一种简单而又保密的鉴别方案是通行短语,它是一种更长的口令的变形。通行短语等价于有鉴别能力的口令。,53,通行短语也可以用于可变的询问响应系统,系统和用户之间可以约定许多互相知道的秘密信息,如有关用户个人经历、爱好、家庭、个人特征等方面的信息,每当用户向系统登录时,询问响应系统便随机从这些信息中挑出几个向用户询问,在用户给出正确回答和系
19、统提问内容在事先约定范围内的情况下,双方可以互相取得信任。,54,8.4 访问控制,访问控制的基本目标都是防止非法用户进入系统和合法用户对系统资源的非法使用。为了达到这个目标,访问控制常以用户身份认证为前提,在此基础上实施各种访问控制策略来控制和规范合法用户在系统中的行为。,55,8.4.1 访问控制模型1访问控制的三要素,(1)主体(Subject):访问操作的主动发起者,但不一定是动作的执行者。,(2)客体(Object):通常是指信息的载体或从其他主体或客体接收信息的实体。,(3)安全访问规则:用以确定一个主体是否对某个客体拥有某种访问权力。,56,2基本的访问控制模型(1)访问控制矩阵
20、(ACM,Access Control Matrix):基本思想就是将所有的访问控制信息存储在一个矩阵中集中管理。当前的访问控制模型一般都是在它的基础上建立起来的。,57,(2)访问目录表:这种访问控制机制实际上按访问控制矩阵的行实施对系统中客体的访问控制。,58,文件名,权限,C,客体(文件),用户A目录,用户B目录,C,D,ORW,RW,B,RW,A,B,C,ORW,OX,R,D,A,B,O:OwnerR:ReadW:WriteX:Execute,访问目录表机制,59,访问目录表机制容易实现,但存在三个问题需要解决:共享客体的控制。凡是允许用户访问的客体,都应该把它的名字存入该用户的访问目
21、录表内,共享客体也应该存入该目录表中。存在的问题是,如果共享的客体太多(如子程序库),用户的目录表将会很长,增加了处理时间。,60,访问权的收回问题。在实际情况中,甲乙两人之间可能有信任关系,文件A的拥有者甲可以把该文件的某些权限传递给用户乙,当甲用户想从乙用户收回该访问权时,只要从乙的目录表中删除该文件名即可。在许多操作系统中都支持这种信任关系。但是若允许信任关系传递,则给目录表的管理带来麻烦。假设乙用户在把文件A的访问权又传递给丙用户,当甲用户希望收回所有用户对文件A的访问权时,甲可能不知道这种情况,解决的办法是搜索所有用户的目录表,如果系统中用户数量较大,将要花费很多时间。,61,多重许
22、可权问题。多重许可权问题是由文件重名问题引起的。假定乙用户的目录表中已经有一个文件A,甲用户也有一个文件A,但这两个文件A的内容不同。如果甲信任乙,第一次把自己A文件的部分访问权传递给乙,为了不重名,甲的文件A被改名为H后存入到乙的目录表中,乙可能会忘记自己目录表中的H就是甲的A文件,于是又向甲申请A文件的访问权,甲可能对乙更加信任,就把文件A更高的访问权授予乙,于是造成乙用户对甲的文件A有多重访问权的问题,产生客体安全管理的混乱,而且可能产生矛盾。,62,(3)访问控制表ACL ACL表保护机制实际上是按矩阵的列实施对系统中客体的访问控制的。访问目录表和访问控制表分别将访问控制设施设置在用户
23、端和客体端,这两种控制方式需要管理的表项的总数量是相同的,它们的差别在于管理共享客体的方法上,访问控制表技术易于实现对这些共享客体的管理。,63,客体,FILE1,FILE2,PRG1,HELP,USER-C,R,ACL表,USER-B,USER-C,USER-A,ORW,RW,ORW,USER-A,USER-D,OX,X,USER-A,USER-B,USER-C,USER-D,R,R,RW,O,O:WONERR:READW:WRITEX:EXCUTE,客体目录,FILE1,FILE2,PRG1,HELP,访问控制表机制,64,(4)能力机制 能力(Capability)机制就是可以满足这些要
24、求更高的访问控制机制。主体具有的能力是一种权证,类似一个“入场卷”它是操作系统赋予主体访问客体的许可权限,它是一种不可伪造的标记。能力是在用户向系统登录时,由操作系统赋予的一种权限标记,用户凭借该标记对客体进行许可的访问。,65,能力可以实现复杂的访问控制机制。假设主体对客体的能力包括“转授”(或“传播”)的访问权限,具有这种能力主体可以把自己的能力拷贝传递给其他主体。这种能力可以用表格描述,“转授”权限是其中的一个表项。一个具有“转授”能力的主体可以把这个权限传递给其他主体,其他主体也可以再传递给第三者。具有转授能力的主体可以把“转授”权限从能力表中删除,进而限制这种能力的进一步传播。,66
25、,能力机制需要结合访问控制表(或访问控制矩阵)技术实现,当一个过程要求访问新客体的时候,操作系统首先查询访问控制表,确认该过程是否有权访问该客体,若有,操作系统就要为该过程创立一个访问该客体的能力。为了安全起见,能力应该存储在用户程序访问不到的区域中,这需要用到前面介绍的内存保护技术。在执行期间,只有当前运行过程访问的那些客体的能力有效,这一限制可以有效提高操作系统对客体访问检查的速度。,67,(5)面向过程的访问控制 面向过程的访问控制是指在主体访问客体的过程中对主体的访问操作进行监视与限制。例如,对于只有读权的主体,就要控制它不能对客体进行修改。要实现面向过程的访问控制就要建立一个对客体访
26、问进行控制的过程,该过程能够自己进行用户认证,以此加强操作系统的基本认证能力。,68,访问目录表、访问控制表、访问控制矩阵、能力和面向过程的控制等五种对客体的访问控制机制的实现复杂性是逐步递增的。实现能力机制需要必须对每次访问进行检查,而访问目录表方式实现比较容易,它只需要在主体对客体第一次访问时进行检查。实现复杂的保护方式提高了系统的安全性,但降低了系统响应速度。安全与效率之间需要平衡。,69,有的系统中实现的保护子系统机制就是面向过程的访问控制的典型例子。一个保护子系统可以看作是由一个过程集合和受保护的数据客体组成的,这些成分都包含在该子系统的私有域中。只有保护子系统中的过程可以对子系统中
27、的数据客体进行访问操作,子系统外只有被指定的主体可以在指定的入口点调用子系统中的过程。,70,在子系统中的数据文件是受保护的对象,子系统中的过程是用来管理受保护对象的,并按用户要求实施对这些客体的访问控制。外部进程只能通过调用管理程序对子系统内部的客体进行访问操作。,71,8.4.2 文件的保护机制,文件系统是任何一个操作系统的最重要的组成部分。由于用户交由计算机处理的数据(其中有的是敏感数据)和系统安全机制的信息都是用文件的形式保存的,因此文件的保护是非常重要的。本节介绍几种文件保护机制,每一种有它的特点与不足。通过了解这些文件保护机制,可以知道哪些保护方式更为安全,为选择安全可靠的操作系统
28、提供依据。,72,8.4.2.2 基础保护,任何一个多用户系统都必须提供最低限度的文件保护功能,防止用户有意或无意访问、修改和破坏其他用户的文件。,73,(1)全-或-无保护 全-或-无保护建筑于对用户信赖的基础上,假定用户不会去读或修改别人的文件,只会访问自己有权访问的文件,并且假定用户只知道其有合法访问权的文件名。因此对文件一般不设保护,默认文件是公开的。实际上,对文件是没有保护的,任何一个用户都可以读、修改甚至删除其他用户的文件。对于某些敏感文件,系统管理员可以使用通行字保护它们,通行字可以控制对该文件的一切访问(读、写或更新),或只控制对其他用户有影响的访问操作(如写、更新)。使用通行
29、字机制在每次对文件开始访问的时候,操作员都需要进行干预。,74,主要存在以下问题:,以信任为基础的安全机制是不可靠的。如果操作系统的用户少,相互之间都比较熟悉,且相互利益也不冲突,各人也没有敏感文件需要保存,这种安全机制还是可以使用的。但对于用户众多的大系统而言,各用户之间也不熟悉,不存在相互信赖的基础。如果某个文件只希望一部分人可以访问,由于采用了“要么对所有用户都是公开的,要么对所有用户都是有保护的”安全机制,这一要求无法实现。,75,这种安全机制更适合于批处理系统,而不适用于分时系统。在批处理的环境下可以把有相同兴趣的用户安排在同一批进行处理,全-或-无的保护方式可以满足这种处理方式对文
30、件的保护要求,各批用户之间没有机会交互信息。在分时系统中用户需要交互信息,用户选择计算的时间可能就是为了向另一个用户传递结果,如果被保护的文件不允许被某些用户访问,在分时系统下无法按这种保护方式进行控制。,76,由于这种安全机制需要操作员干预,既麻烦又降低了操作系统的效率,影响了这种保护方式的广泛使用。需要向用户提供系统所有文件的列表,帮助用户回忆他们需要对哪些文件负责,这种文件管理方式比较落后。,77,(2)分组保护,根据上述情况,全-或-无保护方式主要问题是不能满足不同利益用户对文件的保护要求。分组保护方式可以解决这个问题。在分组方案中,可以根据某种共同性把用户划分在一个组中,例如需要共享
31、是一个常见的分组理由。,78,系统中的用户分为三类:(单个)用户(User)、用户组(Group)和全部(World),分组时要求每个用户只能分在一个组中,同一个组中的用户对文件有相同的需求,一般具有相同访问权。例如,在创立文件时,文件主可以为自己授予最高的权限(如读、写、执行、删除),为某个组的用户授予读写权利,对其他所有一般用户仅授予读的权利。分组保护技术在UNIX、VAX VM等操作系统中使用。分组方案便于系统管理员对用户群的管理,所以该方案在新型操作系统(如NT、LINUX等)被广泛采用。,79,分组保护机制的实现并不困难,由于引入组的概念,需要用用户和组这两个标识符标识一个用户。这两
32、个标识符存放在为每个文件设立的文件目录项中,当用户注册的时候,操作系统就可以得到它们。当用户要求访问该文件时,操作系统可以检查该用户的组标识符与该文件的组标识符是否相同,相同就允许访问。,80,该方案还存在以下问题:,组的隶属关系:分组不允许一个用户同属两个组,否则会引起访问权限的混乱。例如,假如一个用户同属于两个组,如果这个用户所在的一个组对某个文件具有读权,那么该用户所在的另一个组对该文件是否也具有读权?如果一个组内的用户对某个文件有不同的访问权,上述实现分组的方法就无法进行控制,解决这些问题只能一人一组。,81,多重账户:为了克服一人一组带来的限制,可以允许用户建立多个账户,在不同的组里
33、使用不同的账号,代表不同的用户。假设用户甲有两个账号,一个是甲1,一个是甲2,他们分配在两个组内。甲1开发的任何文件、程序,甲2只能享受非甲1组的一般用户的访问权限。这种方法虽然可以允许一人多组,但会使账户文件变长,增加了管理的难度,对用户也不方便。,82,有限的共享:文件要么只能在组内共享,要么只能为全部用户共享。无法以文件为基础区分出一个文件的共享者,但这是用户希望的共享管理方式。,83,8.4.2.3 单独许可权,(1)文件通行字为了控制用户对指定文件的访问,可以为该文件设置一个通行字。当用户访问这个文件的时候必须提供正确的通行字。通行字可以用于控制对文件的各种访问,或仅控制对文件的某一
34、种访问,如控制对文件的修改。,84,利用通行字的方法可以实现把用户按文件分组的目的。通行字的管理与维护还存在一些麻烦,无论通行字丢失或者泄漏都需要由操作员干预,去掉文件的旧通行字,换成新的通行字;为了撤消某个用户的文件访问权,也必须更换文件的通行字。更换通信字后,还要把新通行字告诉所有与该文件有关的所有用户。,85,(2)临时许可证UNIX系统中除了基本的分组保护方案外,还增加了一种新的许可权方法,这种许可权称为设置用户标识符(Set UserIDSUID)和设置组标识符(Set GroupIDSGID)。用户ID与组ID的设置能力是通过setuid与setgid两个系统调用功能和文件的set
35、uid与setgid两个访问控制位实现的。利用该功能,用户可以建立维护专用信息的特定保护程序,其他用户如果希望访问这些专用信息就必须运行其特定保护程序。,86,可靠的UNIX系统定义了若干“受保护子系统”,每一个子系统都是由一组专用信息(文件、数据库)、一些相关设备以及维护这些信息的工具与命令组成。这些受保护子系统利用SUID/SGID机制来保护其专用信息和设备不受非法访问。例如,系统的通行字文件是系统的敏感信息,一般规定只允许系统管理员修改通行字,但也提供功能让个别用户自己修改通行字。用户甲可以用SUID机制建立改变通行字的保护程序,当普通用户执行它时,该保护程序可以按用户甲规定的方式修改通
36、行字文件。,87,8.4.2.4 指定保护,指定保护方式是指允许用户为任何文件建立一张访问控制表(ACL),指定谁有权访问该文件,每个人有什么样的访问权。这都是符合自主访问控制原则要求的。在VAX VMS/SE 操作系统中提供了这种保护功能。在分组保护系统中限定每个用户只能属于某一个组,利用指定保护方式,系统管理员可以通过定义一个“一般标识符”来建立一个新的组。,88,假设甲、乙、丙、丁四个用户原先分属四个不同的组,现因项目开发需要,要求成立一个新组。系统管理员可以定义一个新的一般标识符ITEM,让它只包括这四个人,用户可以允许在一般标识符下的人访问一个文件,但不允许这四个用户所在组的其他人访
37、问这个文件。,89,8.4.3 新型访问控制 1基于任务的访问控制(TBAC)该模型的基本思想是:授予给用户的访问权限,不仅仅依赖主体、客体,还依赖于主体当前执行的任务及任务的状态。当任务处于活动状态时,主体拥有访问权限;一旦任务被挂起,主体拥有的访问权限就被冻结;如果任务恢复执行,主体将重新拥有访问权限;任务处于终止状态时,主体拥有的权限马上被撤销。,90,2基于对象的访问控制(OBAC)控制策略和控制规则是基于对象访问控制系统的核心所在,在OBAC模型中,将访问控制列表与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许对策略和规则进行重用、
38、继承和派生操作。,91,8.5 Windows 2000(XP)系统的安全机制,Windows 2000(XP)操作系统就是建立在一套完整的安全机制上的,因而任何一个机构,在使用Windows 2000(XP)前都必须指定它们的安全策略。在使用Windows 2000(XP)操作系统时,一定要熟悉它的登录验证、访问控制、安全策略等安全保护机制,这样才能降低遭受威胁和攻击的风险。,92,8.5.1 Windows系统的安全子系统1Windows系统的安全组件自主访问控制(Discretion Access Control)对象重用(Object Reuse)强制登录(Mandatory log
39、on)对象的访问控制(Control of Access to Object),93,2Windows安全子系统安全子系统包括以下部分:WinlogonGraphical Identification and Authentication DLL(GINA)Local Security Authority(LSA)Security Support Provider Interface(SSPI)Authentication PackagesSecurity Support ProvidersNetlogon ServiceSecurity Account Manager(SAM),94,95,
40、8.5.2 用户账户管理1用户账户 在Windows2000(XP)中,访问控制依赖于系统能够惟一地识别出每个用户。用户账户(User Account)提供了这种惟一性。2组 除用户帐户外,Windows 2000(XP)还提供组帐户。可使用组帐户对同类用户授予权限以简化帐户管理。如果用户是可访问某个资源的一个组中的成员,则该特定用户也可访问这一资源。因此,若要使某个用户能访问各种工作相关的资源,只需将该用户加入正确的组。,96,3本地账户和域账户 本地账户,即存储在计算机SAM中的用户账户和安全组。独立的计算机和工作组中的计算机都只使用本地账户。工作组中的每台计算机只维护含有该台计算机本地账
41、户的自己SAM。本地账户只允许用户登录到存储其账户的计算机,并且只允许访问该计算机上的资源。,97,Windows 2000还提供了域的概念进行网络访问控制,即允许或拒绝某个主机或用户连接到其他主机的能力。域账户存储在一个称为域控制器的中央计算机上。如果一台计算机加入了一个域(域是至少有一台运行Windows 2000 Server的计算机,并且将它作为一台域控制器进行工作的网络),则应使用域账户进行登录。,98,8.5.3 登录验证1验证机制 Windows 2000(XP)安全系统包括了三种不同的身份验证协议来进行加密:(1)NTLM(与Windows NT 4.0系统兼容)(2)Kerb
42、eros V5(3)公钥证书,99,2登录及身份验证过程成功的登录过程要经过以下4个步骤:Windows 2000的Winlogon过程给出一个对话框,要求回答一个用户名和口令。Winlogon将用户名和口令传递给LSA(Local Security Authority,本地安全权威),LSA决定该登录应该在本地计算机还使网络上进行身份验证。,100,如果是本地登录,LSA会查询SAM数据库,以确定用户名和口令是否属于授权的系统用户。如果用户名和密码合法,SAM把该用户的SID以及该用户所属的所有组的SID返回给LSA。LSA使用这些信息创建一个访问令牌(Access Token),每当用户请
43、求访问一个受保护资源时,LSA就会将访问令牌显示出来以代表用户的“标记”。Winlogon启动系统,该用户的访问令牌就成了用户进程在Windows 2000系统中的通行证。,101,8.5.4 系统访问控制1访问控制方案(1)访问令牌(2)安全描述符(3)访问控制表2活动目录(Active Directory)活动目录包括两个方面:目录和与目录相关的服务。目录是存储各种对象的一个物理上的容器;而目录服务是使目录中所有信息和资源发挥作用的服务,102,8.5.5 Windows 2000 安全策略1密码策略 2锁定策略3审核策略4用户权力指派5安全选项6装载自定义安全模板,103,8.5.6 Windows 2000 操作系统安全检查表1安装最新的系统补丁(Service Pack)与更新(Hotfix)程序2为Administrator账号指定安全的口令3把Administrator帐号重新命名4禁用或删除不必要的帐号5关闭不必要的服务,104,6安装防病毒软件7给所有必要的文件共享设置适当的访问控制权限8激活系统的审计功能9关于应用软件方面的建议10windows 2000 服务配置参考11网络上的参考资源,