- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                加强多核处理器上嵌入式系统安全性研究
                    加强多核处理器上嵌入式系统安全性研究    【摘 要】在本文中,我们提出了一种方法来加强嵌入式系统的安全性。在我们提出的方法SPUMONE中,通过选择一个较薄的虚拟层来构建一个multi-OS环境,从而减少开销。我们使用Xv6作为可信任的操作系统来执行监控服务,从而发现侵犯Linux内核的完整性的动作进而检查Linux是否陷入危险。提出了一个基于局部核心内存的分页机制来提供空间隔离,从而保护位于主内存的xv6内核的完整性。   【关键词】多核处理器;嵌入式系统;安全性   1、引言   如今,嵌入式系统往往使用多核处理器作为系统平台。由于新的多核处理器在性能上的提高和更低的功耗,嵌入式系统也拥有了越来越多的功能。但同时也带来了更多的漏洞。为了加强嵌入式系统的安全性,使用一个带有监控系统的多操作系统环境来监控通用Linux系统中的异常行为是一个有效的方法。一般来说,多操作系统环境中有一个虚拟层。在虚拟层之上,一个可信的操作系统运行监控服务来监控通用操作系统中的危害动作。但是,该可信的操作系统也需要面对被通用操作系统攻击的威胁。在本文中,我们提出了一个加强嵌入式系统安全性的方法。   2、系统架构   图1:系统架构   如图1所示,在本系统中Linux和可信操作系统运行在一个多核处理器上。Linux为用户程序提供了所有的应用函数。可信操作系统运行监控服务程序来监控危害Linux系统安全的动作。监控服务定期检查Linux的几个核心的数据结构是否完整。如果监控服务发现完整性被侵犯,那么它会运行一个恢复程序来恢复数据结构的完整性。如果恢复失败,那么监控服务将会重启Linux。   本系统中首先要建立一个多操作系统的环境。目前存在多种方法建立多操作系统环境。   微内核来执行用户级别的客户机操作系统内核。为了在微内核上运行客户机操作系统内核,需要大量修改内核代码来处理各种特权指令、内陷、中断和操作系统与应用任务之间的通信机制。   虚拟机监控依然在用户级别执行客户机操作系统内核。假如一个处理器提供了完整的硬件虚拟化支持,所有的特权指令都可以被虚拟机监控器透明地翻译成hyper-calls。那么一个操作系统核心可能不需要修改就能运行虚拟机监控器。但是,如果没有复杂的硬件虚拟化支持的话,它仍然需要替换一些代码来虚拟一些指令。   SPUMONE为嵌入式操作系统提供了一些令人满意的特性。   1.SPUMONE在特权级执行客户机操作系统内核并从SPUMONE以下的硬件核心提供少许不同的Vcore接口。Linux和其他各种实时系统只需作很小的改动就可以运行SPUMONE。   2.SPUMONE没有虚拟化设备,因此操作系统可以直接使用这些设备以减少开销。   因为SPUMONE有着明显的优势,所以在我们的系统架构中采用SPUMONE来建立一个多操作系统的环境。然而,多操作系统并不能提高系统的安全性。因此,使用监控服务来保护Linux。   SPUMONE并没有隔离Linux和可信操作系统的内存区域,尽管可信的操作系统足够抵御病毒、木马和rootkits的攻击,但脆弱的Linux可以访问和修改共享内存的任何地方,也包括可信操作系统运行的内存。如果可信操作系统运行的内存能够被Linux修改,那么可信操作系统和监控服务将变得不再安全。为避免这种风险,所以我们需要提供可信操作系统和Linux的空间隔离。   3、实现   在我们的系统中xv6用来建立这个安全pager。Xv6是一个小的类Unix操作系统。使用它来提供虚拟内存功能是很简单的。我们可以很容易地控制xv6让其作为一个安全操作系统。在实现环节,我们选择SHA1算法作为散列算法来保护vx6.整个内核部分有3部分构成:引导加载程序、安全pager和xv6内核。   1.当处理器开始启动时,首先加载整个内核到主内存的一个特定的地址。然后跳转到该地址启动内核。   2.引导程序初始化处理器,迁移安全pager到本地内存,并迁移xv6核心到主内存。然后跳转到安全pager的接入口。   3.安全pager初始化本地内存,计算xv6核心的散列值,将其存入core-local内存的散列表中,然后打开内存管理单元。接着跳转到xv6核心的虚拟地址。页故障发生并加载xv6核心到core-local内存。然后,xv6核心执行监控服务并开始监控Linux的完整性。由于在试验中我们使用SH-4处理器,所以我们将原本为x86架构开发的xv6移植到SH-4架构上。   为了移植xv6,需要修改几个部分。1)移除引导装载程序,因为SH-4能够直接加载一个内核到一个固定的地址。2)修改处理器初始化和上下文开关部分以适应SH-4处理器的寄存器。3)在一个固定的地址加入异常和中断处理程序。4)因为在SH-4平台没有IDE设备,所以
                 原创力文档
原创力文档 
                        

文档评论(0)