基于服务体模型的安全操作系统中的通信与安全控制.doc
《基于服务体模型的安全操作系统中的通信与安全控制.doc》由会员分享,可在线阅读,更多相关《基于服务体模型的安全操作系统中的通信与安全控制.doc(7页珍藏版)》请在沃文网上搜索。
1、基于服务体模型的安全操作系统中的通信与安全控制摘要:本文在扼要介绍基于执行流/服务体的操作系统模型的基础上,重点讨论了基于该模型的安全操作系统中的通信机制及其安全控制。分析了通信可能受到的威胁,并给出了相应的对抗方法,从而简便有效的保证了操作系统的安全性。关键词:安全操作系统 服务体模型 执行流 服务体间通信中图分类法: TP316 文献标识码:AInter Serverblock Communication and Its Security in Serverblock Based Secure Operating SystemWu Mingqiao, Li Hong, Gong Yucha
2、ngDepartment of Computer Science and Technology of USTC, He Fei , 230027Abstract: Based on introducing the novel serverblock model of operating system, the paper discusses the communication mechanism and the security control of a serverblock model based secure operating system in detail. Then the an
3、alysis of threats to communication and the countermeasures to ensure system security efficiently are presented as well.Key words: secure operating system, serverblock model, executive-stream, inter serverblock communication1引言操作系统的安全性是保障信息安全的基本条件,日益受到人们的重视。日益复杂的外部环境要求安全操作系统必须具有灵活的体系结构,满足动态的、多样的安全策略。
4、但是安全性和效率往往是矛盾的,增加安全控制必定会带来一些开销,甚至影响系统的易用性。因此,如何开发一个安全、灵活、高效的安全操作系统成了人们的追求目标。传统的基于微内核结构的操作系统灵活性高,但是由于上下文切换频繁,效率较低。单内核结构的操作系统效率很高,但是不够灵活。我们在分析传统操作系统结构的基础上,提出了一种基于执行流/服务体的操作系统构造模型3,4。该模型引入了执行流和服务体等新的系统抽象,保持了微内核结构的灵活性,同时极大的增强了系统效率。其固有的灵活性可以方便有效的支持各种安全机制,如易于支持flask安全体系结构1。在执行流/服务体模型中,传统的进程间通信被服务体间通信取代。服务
5、体间通过一系列“端口”传送消息。本文在扼要介绍执行流/服务体模型结构的基础上,重点讨论了服务体间通信机制及其安全控制。分析了服务体间通信可能受到的威胁,并给出了相应的对抗方法。所提出的上述技术可以简便有效地支持操作系统的安全性。2服务体模型执行流和服务体是服务体模型的两个基本抽象。执行流是CPU执行能力的抽象,服务体是代码和数据的集合体。执行流的流向由服务体的代码指引,服务体由执行流推动执行。操作系统中各功能模块如文件系统、内存管理器、驱动程序等都以服务体的形式存在。服务体模型的逻辑结构如图一所示:2.1执行流执行流是系统的动态部分,是CPU执行机器指令能力的最原始的抽象。每个CPU提供一个执
6、行流,如果采用超线程技术则每个CPU可以提供多个执行流。执行流是比线程更加基本的抽象,它是一个连续的概念,从处理器上电复位到关机时结束,中途不会被阻塞、挂起和停止。执行流不与固定的地址空间绑定,其作用就是推动服务体完成消息处理,从而可使执行流能够直接跨越系统组件边界(往往是地址空间边界),而不必像微内核模型那样必须使用不同的线程。2.2服务体服务体是系统的基本组成单位,是具有通信功能,拥有地址空间、安全控制等资源和属性的能够完成某种功能的代码和数据集合。用户程序(包括驱动程序)的各种功能组件都以服务体的形式存在。服务体是一种静态的概念,其生命周期不依赖执行流,具有持久性。服务体拥有一系列端口,
7、端口又包含一系列小端口,服务体间通过给端口或小端口发送消息进行通信, 在执行流的推动下进行消息处理。服务体的地址空间分为基本空间和扩展空间两部分,每个服务体具有一个基本空间和一个或多个扩展空间。不同服务体的基本空间相互隔离,但在使用上作为整体统一分配,逻辑上在同一段空间中,彼此占用不同的地址区间,互不重叠。这个特点使得一个服务体的基本空间的内容很容易映射到另一个服务体的基本空间,从而共享带有指针的复杂数据结构。扩展空间为服务体所私有,空间中的内容可以交换到后备存储器中以优化系统内存的使用。服务体将大的私有数据和运行时期所需要的运行库加载到扩展空间中,需要共享的复杂数据加载到基本空间。一个服务体
8、可以拥有多个扩展空间,从而使所管理数据的容量超过受硬件限制的虚存空间。服务体间数据共享按照不同的属性可分为共有共享、写时拷贝共享和转移共享。服务体A服务体B扩展空间基本空间 图二 服务体地址空间运行库 数据 代码或共享数据图一中标识的执行流/服务体管理器由核心服务体实现。核心服务体逻辑上相当于传统操作系统的内核,负责提供服务体间通信机制、执行流/服务体的管理、中断和异常等服务,以及维护关键抽象的数据结构。服务体模型中没有所谓的内核空间,核心服务体同其他服务体一样,拥有独立的基本空间和扩展空间。核心服务体可将通信相关的代码和数据以只读的方式共享给其他服务体,既使得其他服务体能够直接利用这些共享的
9、代码和数据发送消息,又不能破坏它们。3服务体间通信服务体间通信机制是服务体模型的基础机制,具有三个基本抽象:消息、端口和小端口。服务体之间通过端口、小端口传递消息,提供或获取服务。服务体间通信可以将持续流动的执行流分派到不同的服务体中以实现系统的并发,并且具有位置无关性,可以透明的扩展到分布式环境中。3.1 端口和小端口服务体的每个端口对应服务体提供的一个消息处理例程以及描述该例程的一些信息(如优先级、地址空间标志符、处理器特权级等)。服务体可以用一个端口代表一个它所维护的对象(如文件,Socket,设备等)。其他服务体通过向该端口发送消息来操作该对象而不必关心它所在的位置,利用这种位置无关性
10、服务体的服务透明的扩展到分布式环境下。一个端口包含一个或多个小端口。小端口包括寄存器上下文和堆栈地址、状态标记等。寄存器上下文包括所有的通用寄存器以及控制寄存器,用以保持服务体通信过程中的现场。堆栈是消息处理程序运行时所需要的,可以在基本空间也可以在扩展空间。该堆栈地址与端口中的地址空间标志符相对应。执行流只能从小端口进入一个服务体的内部,根据记录在端口以及小端口中的信息进行资源和状态的切换,并由端口对应的消息处理例程完成消息的处理。端口和小端口数据结构由核心服务体负责管理,核心服务体为服务体的每个消息处理函数生成一个端口和若干个小端口。服务体在向一个端口发送消息之前,必须首先获得该端口的发送
11、权。客户服务体通过系统中的名字服务器(维护端口权力的授权)得到目标服务体的端口权力。端口权力代表了端口的一个名字。名字空间对于服务体来说是局部的。因此不同的服务体对于相同的端口具有不同的名字,而相同的名字在不同的服务体中可能代表不同的端口。在这个意义上端口名字和UNIX中的文件描述符是类似的。端口权力可以通过消息在服务体间传递,因此任务可以多次得到同一端口权力。服务体通信机制保证每次都使用相同的名字。这样,任务可以比较两个端口名字,如果他们不匹配那么他们指的不是相同的端口。核心服务体为每个端口权力维护一个变换项,用以管理四元组的集合。其中服务体指的是拥有权力的服务体,局部名字指的是在服务体中端
12、口的名字,端口和小端口是指向各自数据结构的指针。核心服务体进行两种变换:到局部名字的变换以及到端口/小端口的变换。3.2 消息消息是有类型数据的集合,具有确定的格式,由消息头部和数据部分组成。消息头部包括消息号,目的端口、应答端口,以及消息类型和大小。消息号表明了对端口的操作种类。内存管理服务体负责分配和回收消息。服务体发送消息时,先申请一个物理页,填写完毕后调用消息发送原语发送消息。消息内存的映射从本服务体的空间转移到目标服务体空间,因此目标服务体可以直接使用消息中的内容。使用完毕后可以再次利用(如作为应答消息使用)也可以回收(不再需要)。为了有效地进行消息内存管理,内存管理服务体将所有的物
13、理内存连续影射到其基本空间内,并在分配消息时从该空间内分配一个物理页,并以读-写方式与请求服务体共享。得益于基本空间的管理规则5,内存管理服务体维护这种共享时可以直接将该物理页映射到目标服务体的基本空间中的相同地址,而不必担心该空间是否可用。消息在服务体之间的传递实际上是共享映射的变化,节省了拷贝消息的开销,因此具有很高的效率。消息有三种基本类型:(1)普通数据。不用核心服务体解释,由接收者负责解释。消息处理例程所需的参数可以以此传递。(2)脱机内存。使用共有共享、写时拷贝或转移共享等方式在发送者和接受者之间共享大量数据。需要核心服务体通知内存管理服务体修改地址映射关系。(3)端口权力。包括发
14、送权和一次发送权。需要核心服务体维护端口和局部名的映射关系。对三种消息的处理方式如图三所示。端口P2服务体B消息(a) 普通数据的传递对象服务体A 端口P2服务体B消息(c) 端口权力的传递服务体A端口P1消息图三 消息传递脱机内存端口P2服务体B消息服务体A服务体C服务体D(b) 脱机内存的传递3.3 消息传递接口消息传递的编程接口只有一个:msg_body_t* msg_send(msg_body_t* hdr, msg_option_t option);服务体模型中没有消息接收函数,因为消息的处理是由执行流调用端口中的消息处理函数被动完成的,从这个意义上说,服务体随时做好了处理消息的准备
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 服务 模型 安全 操作系统 中的 通信 控制
