论文部分内容阅读
随着计算机技术的广泛应用,计算机安全变得越来越重要。处理器作为计算机系统的核心部件,处理器安全是系统安全的基础,而传统的处理器结构设计中,缺乏有效的安全保护机制。本文针对同一进程内部的数据如何实现隔离和保护的问题,提出了软件和硬件相结合的安全防护机制:动态用户级分区保护和用户级页表,并着重阐述硬件实现机制。 用户级分区保护把指令地址和指令可以访问的数据地址相关联来实现数据保护。它通过指令地址把用户程序划分为可信代码区和不可信代码区,可信代码区的访存地址没有额外的限制,而不可信代码区的访存地址只能在规定范围内,若超过了这个范围,则会触发异常。不可信代码可以访问的地址范围,由可信代码进行动态配置。 用户级分区保护只能实现粗粒度的数据保护,我们借鉴内核的虚拟页面管理机制,设计实现了用户态的页面管理机制,称为用户级页表。用户级页表就是把一段用户虚拟空间对应页表的建立和管理都交由用户程序进行处理,我们把这段虚拟空间称为用户自管理区域。内核只负责向用户分配空闲的物理页面,并不会为用户自管理区域建立和管理页表。另一方面,用户程序只管理用户自管理区域的页表,其他用户空间的页表仍是内核进行管理。 本文在基于开源RISC-Ⅴ处理器核的FPGA上,实现了用户分区保护和用户级页表,测试表明用户分区保护机制可以抵御缓冲区溢出相关的攻击,并且运行时开销较小,SPEC CPU2006测试程序性能降低0.1%。用户自管理区域使用用户级页表可以正确进行地址翻译,其他用户空间数据的地址翻译也没有受到影响。用户程序修改页表相比于内核可以带来3.42倍的性能提升。