论文部分内容阅读
软件系统的复杂性和多功能性使其朝着可扩展的方向发展,其安全性问题受到了极大的关注。本文提出了一种在同一地址空间下划分多保护域的模型。定义保护域为用来确定一段执行代码所拥有的权限的轻量级上下文。地址空间被多个保护域共享,但每个保护域都有自身的不同于其它保护域的对地址空间的访问权限。通过将可扩展程序和扩展模块装载到不同的保护域中,使得它们之间相互隔离和在非授权情况下的不干扰。可扩展程序和扩展模块之间的交互和协作通过跨域调用高效的完成。这种跨域调用的语意类似函数调用的语义,调用完成之后返回到原保护域继续执行。
文章给出了同一地址空间下多保护域的多页表和多段表两种设计方案,对两种方案适用的体系结构和操作系统做出了比较。并在NUTOS操作系统中实现了一个用户态多保护域的原型和在Linux系统中实现了一个内核态多保护域的原型。解决了实现过程中的一些主要问题,如可扩展程序的初始化、扩展模块的装载卸载和跨域调用等。
NUTOS操作系统上实现的用户态多保护域模型被应用到引用监视器的保护上,使得引用监视器不会被旁路和受到系统其它部分的干扰,同时可以高效的完成其功能,以此确保NUTOS系统中的安全策略得到实施。Linux系统中实现的内核态多保护域模型能够使系统内核不受加载的内核模块中的错误的影响和恶意代码的破坏,既增强了内核的可靠性与安全性又保证了系统性能。
多保护域模型还可以应用到功能复杂的软件系统中。将软件系统分解成功能独立的多个模块,让每个模块处于一个单独的保护域中,来保证它们之间的隔离和在非授权的情况下不受干扰,贯彻安全系统设计中最少特权和分权的原则。