可信操作系统设计_第1页
可信操作系统设计_第2页
可信操作系统设计_第3页
可信操作系统设计_第4页
可信操作系统设计_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/16,西安电子科技大学计算机学院,1,设计可信操作系统DesigningTrustedOperatingSystems,2020/5/16,2,设计可信操作系统,一、可信操作系统与安全操作系统二、安全策略三、安全模型四、设计可信操作系统五、可信操作系统的保证,2020/5/16,3,可信操作系统与安全操作系统,操作系统:在计算机系统中,操作系统是设计在硬件上的第一层软件,是对计算机系统的第一次扩充,是其他程序运行的基础。他主要提供以下功能:处理器管理存储器管理文件管理设备管理用户与计算机的接口,2020/5/16,4,可信操作系统与安全操作系统,操作系统同时也是安全的主要提供者。由于其强大功能,所以也成为被攻击的对象,一旦突破操作系统的防线,就可以肆意修改计算机的任何内容了。今天,计算机操作系统的安全显得日益重要,如何设计安全可信的操作系统,就是我们下面要讨论的问题。,2020/5/16,5,可信操作系统与安全操作系统,Secure1、either-or2、propertyofpresenter3、asserted4、absolute5、agoal,Trusted1、graded2、propertyofreceiver3、judged4、relative(judgedincontextofuse)5、acharacteristic,可信操作系统不一定是安全的,但是它要求的是满足用户的安全需求,同时也满足用户的性能需求,不是一味追求安全而损害了操作系统的性能,从而在安全与性能中间达到一种平衡。,2020/5/16,6,从用户的角度来考虑,如果一个操作系统能够连续高效地保证提供内存保护、文件保护、对系统中所有对象地访问控制和用户鉴定与识别等服务,那我们就说此系统是可信地。但是对于一个开发者来说,要从操作系统地设计和操作系统所能提供安全服务的组件功能来看一个操作系统的可信度。设计一个可信的操作系统,必须考虑以下四个环节:安全策略、安全模型、设计和可信度。,用户和设计者看操作系统,2020/5/16,7,SecurityPolicies.,一、定义:Thesetoflaws,rules,andpracticesthatregulatehowanorganizationmanages,protects,anddistributessensitiveinformation.二、一些比较常见的策略,2020/5/16,8,一些比较常见的策略,Military/GovernmentPolicyClark-Wilson:policyofconstrainedchange.SeparationofDuty:requireddivisionofresponsiblityChineseWall:conflictofinterestpolicyOriginatorControlledRolebasedaccesscontrol,2020/5/16,9,MilitarySecurityPolicy,Militarysecuritypolicy:它主要用于保护机密信息。将每段信息都标有敏感级别,用户对信息访问基于need-to-know规则。我们注意以下几点:1、信息的敏感级别2、needtoknow规则:允许使用者最小限度地访问敏感信息。3、敏感性是分层的4、need-to-know不分层5、Dominancerelationship,2020/5/16,10,MilitarySecurityPolicy,2020/5/16,11,MilitarySecurityPolicy,2020/5/16,12,MilitarySecurityPolicy,上面引入了compartments这个述语,它是指相关于一个或多个项目的一些相关信息集合,往往用某个名词来表示一个compartment。它的引进是为了说明need-to-know规则的。一个compartment可以处于一个敏感级别,也可以跨越多个敏感级别。,2020/5/16,13,MilitarySecurityPolicy,2020/5/16,14,MilitarySecurityPolicy,再引入class或classification这个概念,它是指敏感级别和compartments构成的一个二元组:。例如:,现在来看最后一个概念:dominance用符号表示。s表示主体,o表示客体。看下面的关系:,2020/5/16,15,MilitarySecurityPolicy,soifandonlyifranksrankoandCompartmentscompartmentso这时,我们说o支配s(或是s受o支配)。看下面的例子:这时我们可以说后面的class主导前面的class,2020/5/16,16,MilitarySecurityPolicy,一个主体能够访问一个客体必须满足下面的条件:主体的授权访问机密文件级别不低于被访问客体,且主体要知道他所需要的信息对应的所有分类隔离块,2020/5/16,17,MilitarySecurityPolicy,小结:MilitarySecurityPolicy主要是基于敏感信息分级和need-to-know原则。在这样的综合模型中,授权中心严格地控制着访问权,所以它可以在不同的系统设置中正常运作。授权访问和分类也是不允许个人修改的,它们都是由安全中心统一管理的。,2020/5/16,18,ChineseWallSecurityPolicy,ChineseWallSecurityPolicy它是一个商业安全策略,它主要用在访问有利益冲突的竞争公司间信息的情况,防止泄漏商业机密。一些概念:对象一些基本元素,比如文件,只涉及一个公司的信息。公司组描述一个特定公司的所有对象的集合。冲突类所有竞争公司的对象构成的集合。,2020/5/16,19,ChineseWallSecurityPolicy,它们之间得关系看下面的图:,2020/5/16,20,ChineseWallSecurityPolicy,ChineseWallSecurityPolicy的访问控制原理:某个主体只允许访问每个冲突类中的一个公司组,在一个冲突类中,这个主体一旦访问了一个公司信息,那么他就不能再访问同一冲突类的其他公司的信息了。,2020/5/16,21,ModelsOfSecurity,Model:Aformal(orsemi-formal)representationofthepolicythattheOSwillenforce.模型是对策略的一种更精确的描述。安全模型常用于:测试一个策略的完全性和一致性证明一个策略协助将一个功能概念化并进行设计检验一个功能的实现是否满足需求,2020/5/16,22,Bell-LaPadulaConfifentialityModel,Bell-LaPadulaConfifentialityModel模型:对安全系统中信息流合法路径的形式化描述。在处理多密级数据的系统设计中发挥了重要作用。是一个形式化的军事安全策略,是美国国防部安全评估的主要标准。这个模型的目标:在一个保密性十分重要的系统中能够识别出合法通信。它被用来定义当一个系统需要处理不同密级数据时的安全需求。,2020/5/16,23,Bell-LaPadulaConfifentialityModel,原理:系统中有一个主体集合S和一个客体集合O,。在S中的每个主体s和O中的每个客体o都有各自的安全级别C(s)和C(o)。安全级别之间存在关系。有如下两个原则:简单安全原则:一个主体s可以读访问客体o,当且仅当C(o)C(s),即主体只能读取密级等于或低于它的客体。*特性:一个可以读访问客体o的主体s有权对客体p进行写操作,当且仅当C(o)C(p),即主体只能写密级等于或高于它的客体。,2020/5/16,24,Bell-LaPadulaConfifentialityModel,2020/5/16,25,Bell-LaPadulaConfifentialityModel,Bell-LaPadulaConfifentialityModel只考虑了信息的安全性,没有考虑数据的完整性,Bibamodel对应于Bell-LaPadulaModel,但是只考虑数据的完整性,不考虑安全性。Bibamodel(略),2020/5/16,26,TurstedOperatingSystemDesign,设计一个不需要考虑安全问题的操作系统并不是件容易的事情。需要处理职权分配,考虑发生中断时对操作的切换,保证用户运行速度和精确性等等一系列问题。若再加上安全性问题就更难上加难了。这部分我们着重讨论设计操作系统时在安全方面所要考虑的问题。好的软件工程原理告诉我们,在设计系统时,安全的考虑易早不易迟。这部分我们主要考虑设计高安全等级的操作系统,着重讨论操作系统内核的设计,安全是否可以有效提供,取决于操作系统内核是如何设计的。然后讨论一点分层(或环)结构设计。,2020/5/16,27,TurstedOperatingSystemDesign,使安全覆盖操作系统全部,要做到以下两个方面:1、操作系统控制所有主客体之间的交互,要保证交互过程中都有安全考虑。2、安全必须在设计操作系统开始考虑,贯穿设计全过程,而不是设计过程中或设计完成后添加上去。,2020/5/16,28,TurstedOperatingSystemDesign,可信操作系统的要素好的设计原理有助于安全的实现,但是下面的基本要素对于设计一个健壮、可信的操作系统是必须的:,最小特权精简机制开放设计完全检测基于许可特权分离最小共享化易用性,2020/5/16,29,TurstedOperatingSystemDesign,普通操作系统的安全特性,用户鉴别内存保护文件及I/O设备访问控制对一般客体的资源分配与访问控制实现共享化公平服务内部进程通信和同步操作系统数据保护,2020/5/16,30,TurstedOperatingSystemDesign,2020/5/16,31,TurstedOperatingSystemDesign,2020/5/16,32,TurstedOperatingSystemDesign,从上面的对比可以看出,在设计可信操作系统时,比一般操作系统多出以下方面:1、对每个设备和服务的访问控制2、数据和程序按照共享和私有分离3、不同用户占用内存空间的彼此分离等,2020/5/16,33,TurstedOperatingSystemDesign,可信操作系统(TOS)的安全特性,用户鉴别强制访问控制自主访问控制客体复用保护完全仲裁可信路径审计日志精简审计日志入侵检测,2020/5/16,34,TurstedOperatingSystemDesign,用户鉴别:计算机安全性之根源。它包括俩个步骤:找出请求访问者;确定其真实身份。可信操作系统要求所有访问者都必须被唯一识别。,2020/5/16,35,TurstedOperatingSystemDesign,强制访问控制(MAC):系统内的每一个用户或主体根据他对敏感性客体的访问许可级别被赋予一个访问标签(accesslabel);同样地,系统内的每一个客体也被赋予一敏感性标签(SensitivityLabel)以反映该信息的敏感性级别。系统内的“参考监视器”通过比较主、客体相应的标签来决定是否授予一个主体对客体的访问请求。强制访问控制策略既可以用来防止对信息的非授权的篡改(即证信息的完整性),又可以防止未授权的信息泄露(即保证信息的机密性)。,2020/5/16,36,TurstedOperatingSystemDesign,自主访问控制(DAC):它允许系统中信息的拥有者按照自己的意愿去制定谁可以以何种访问模式去访问该客体。在这一点上对于信息的拥有者来说是“自主的”。与强制访问控制策略相比,自主访问控制策略能够提供一种更为精细的访问控制粒度,它能够将所设的访问控制策略细化到具体的某个人,而这是强制访问控制策略所做不到的。在现实的系统中,自主访问控制机制用于授权用户访问系统资源。,2020/5/16,37,TurstedOperatingSystemDesign,客体复用保护:客体复用是计算机系统保证其效率的一种方式。操作系统负责控制资源分配,每当一用户程序释放其占有的资源时,系统就会允许下一个用户访问。为了防止错误发生,操作系统在重新分配资源之前必须将更改过的资源恢复可用状态。完全仲裁了实现自主型和强制型访问控制,所有的访问权都是被集中控制的。而不是仅仅对文件进行访问控制。从而避免因为漏过访问控制而非法访问系统资源。,2020/5/16,38,TurstedOperatingSystemDesign,可信路径:计算机系统中,用户在一般情况并不直接与内核打交道,中间还有一层应用层作为接口在用户与内核之间相互作用着,这种设计能够保护内核不会被用户肆意修改窥测,但也随之带来了安全隐患,比如:在登陆系统时,用非法截取用户登陆信息来盗取用户密码。可信路径就是避过应用层,在用户与内核之间开辟一条直接的可信任的交互通道,从而防止重要信息在不可信路径上传输时被盗用。,2020/5/16,39,TurstedOperatingSystemDesign,审计日志:在用户使用系统时,对系统资源的改动都要经过系统审计,每次审计都要存储为日志。系统管理员可以通过审计日志来发现非法入侵系统。精简审计日志:如果进行完全审计,一般审计日志非常庞大,即使是一个简单的读写文件,也要访问大量资源,于是产生很多日志记录。对于管理员来说,要在庞大的日志中发现错误好像大海捞针,所以要对审计日志进行精简。,2020/5/16,40,TurstedOperatingSystemDesign,入侵检测:一些可信操作系统中都含有原始的入侵检测系统。它是一个专题,以后要详细讨论。以上讲了可信操作系统的关键要素,即设计操作系统时要特别注意的方面。下面讨论内核化设计。,2020/5/16,41,TurstedOperatingSystemDesign,内核化设计内核是操作系统实现最底层功能的部分。在一个标准的操作系统设计中,诸如同步,进程间通信,消息传递和中断处理这类操作都是由核完成的。安全核是负责在整个操作系统中实现安全性机制的,由Ames在AME83提出,并有详细描述。它提供了与硬件、操作系统和计算系统其他部分的安全接口。安全内核设计的两种方案:1、将安全合并到系统内核中去2、将安全作为单独的一层,从系统内核中分离出来。看下图:,2020/5/16,42,TurstedOperatingSystemDesign,2020/5/16,43,TurstedOperatingSystemDesign,2020/5/16,44,TurstedOperatingSystemDesign,将安全从内核中分离出来的优点:覆盖对受保护客体的每一次都必须通过安全核的检测。通过这种设计,操作系统就可以利用安全核来保证每个访问都是安全的。分离从系统和用户空间中分离安全机制可以更容易防止和其他系统或使用户之间的渗透。统一所有的安全功能都是由各自单独的一组编码实现的,所以当某一功能出现问题时,对代码的追踪就会容易一些。可修改安全机制的修改和测试变的更易实现。紧凑因为安全核仅仅需要实现安全性,所以它的代码相对来说计就小的多了。确认正因为体积小了,安全核就更容易被分析,我们就可以用形式化方法来保证所有的安全需求是否都被考虑周到。,2020/5/16,45,TurstedOperatingSystemDesign,安全内核存在的问题:安全核的实现也许会使系统性能有所降低,因为它增加了操作系统和用户程序的接口层。而且,对安全核的设计并不意味着可以实现所有的安全功能;有时候安全核还可能非常庞大。在日常设计中,如何在安全和效率之间达到平衡,很大程度上是取决于整体操作系统的设计方法的。设计操作系统时有许多选择,最终归结到两点:将安全作为操作系统的附属还是将其作为操作系统的基础。,2020/5/16,46,TurstedOperatingSystemDesign,参考监视器(引用监控器)安全核中最为重要的部分就是参考监视器。它是负责实施安全策略的软硬件结合体,控制所有主体对客体的访问的,并将重要的安全事件写入到审计文件中。它不一定针对是一段单独的代码,而是对各种设备如:文件,存储器,内部进程通信等所有客体的访问控制集合。参考监视器只是理论上的概念,并没有实用的实现方法,一般情况下,人们把参考监视器和安全内核方法等同起来。如下图,参考监视器就象是环绕在操作系统和可信软件之外的一堵墙,所有主体访问客体,都要经过参考监视器。,2020/5/16,47,TurstedOperatingSystemDesign,2020/5/16,48,TurstedOperatingSystemDesign,只有当参考监视器不能被任意修改,也不能让恶意访问行为绕过它时,参考监视器才可以严格有效地进行控制。另外,参考监视器并不是可信操作系统中唯一的安全保证,它只是安全的一部分。,2020/5/16,49,TurstedOperatingSystemDesign,可信计算基(TCB)可信计算基(TCB)是指在可信计算机系统中每个实施安全策略的组件。TCB构成了我们所要依靠安全策略的可信操作系统的一部分。于是一个系统可以根据是否是安全的,分成TCB部分和非TCB两部分。非TCB部分不会影响TCB部分,且允许恶意的攻击者对非TCB的部分写操作。这样就认为TCB形成了一个系统所需要的堡垒,它可以满足系统的任何安全需求。可信操作系统中所有的安全性功能都是基于TCB的。,2020/5/16,50,TurstedOperatingSystemDesign,TCB由那些成分构成硬件包括处理器,存储器,寄存器和I/O设备一些进程的概念分离和保护一些关键安全进程原始文件如安全性访问控制数据库和认证数据受保护的存储器存储在其中的引用监控机是安全的一些内部进程通信TCB的不同部分之间可以相互交换数据或互相激活。上面围绕大部分操作系统的,而TCB只是其中的一个很小的子集。如下图:,2020/5/16,51,TurstedOperatingSystemDesign,2020/5/16,52,TurstedOperatingSystemDesign,TCB监视以下四个基本活动:进程激活在进程的环境中,激活和撤消进程的频率是很高的。从一个进程切换到另一个进程需要完全改变注册表,重置映射,文件访问表,进程状态信息和其他的一些指针,其中大部分都是秘密级别的信息。执行域切换运行在某一域的进程经常会激活其他域中的进程以获取更高密级的数据或服务。,2020/5/16,53,TurstedOperatingSystemDesign,TCB监视以下四个基本活动:存储器保护因为每一个域中都包含存储在内存中的代码和数据,TCB就必须监控内存引用来保证每一个域的完整性和保密性。I/O操作在一些系统中,软件涉及I/O操作,把从外层输入到最内层的I/O设备连接起来,这样,I/O操作要穿过所有的域,所以必须被监视。,2020/5/16,54,TurstedOperatingSystemDesign,TCB设计:将操作系统分为TCB部分和非TCB部分可以方便设计者和开发者,因为这样将所有和安全性相关的代码集成到一个部分。为了保证安全性的实现不会受到非TCB部分的影响,TCB代码必须以一种特别的受保护的方式运行。非TCB部分不能对TCB部分构成威胁。这样可以随时修复系统中关于设备驱动,用户接口管理器或是其它的错误。而TCB代码部分则要严格管理。由于无需对非TCB部分考虑,这样划分简化了可信操作系统的安全性设计。,2020/5/16,55,TurstedOperatingSystemDesign,分离:多道程序操作系统应该让用户之间彼此隔绝,仔细控制用户间的交互。大部分操作系统设计时为多个用户提供同一个运行环境,一份操作系统可以供好多用户同时使用。如图所示,操作系统经常分为俩个不同部分,分别处于内存的高低俩个地址段。,2020/5/16,56,TurstedOperatingSystemDesign,虚拟技术虚拟技术就是用操作系统模拟一些计算系统资源,包括真实硬件功能和模拟硬件功能的集合,如运行指令集合的处理器,存储器,和一些I/O设备。虚拟资源必须由真实的物理硬件和软件支持,但是这些真实的资源不一定要和虚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论