版权所有:内蒙古大学图书馆 技术提供:维普资讯• 智图
内蒙古自治区呼和浩特市赛罕区大学西街235号 邮编: 010021
作者单位:南京大学
学位级别:硕士
导师姓名:黄皓
授予年度:2017年
学科分类:0839[工学-网络空间安全] 08[工学] 0835[工学-软件工程] 081201[工学-计算机系统结构] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:Linux安全模块 可信运行环境 TrustZone技术 SELinux
摘 要:保护Linux安全模块的完整性是保护内核的首要目标,安全模块受到攻击将导致整个内核处于非安全状态,安全模块不安全,其他的内核模块安全性更难以保证。SELinux是Linux发行版必备的内核安全模块,最初以补丁方式出现,并于Linux 2.6版本开始加入内核。在Linux宏内核的系统架构下,SELinux同其他模块运行在单一地址空间,导致恶意模块的加载运行能够篡改配置文件加载过程,破坏访问控制的完整性。内核模块的保护方案多以虚拟化隔离技术为主,但传统虚拟化方式在移动平台限制较多不够实用,因此本文提出了基于TrustZone技术的Linux安全模块隔离方法。ARM TrustZone技术是为解决高性能计算平台安全需求的系统范围的安全方法,与硬件结合紧密,从而保护安全内存、代码或外设。本方案核心思想是将SELinux安全模块运行在有TrustZone技术支持的可信运行环境(Trusted Execution Environment,TEE)中,内核发出的访问控制决策请求将通过符合TEE规范的安全通信机制实现功能调用,利用TrustZone技术保护SELinux数据安全性及服务完整性。为实现Linux安全模块的隔离保护,本文做了以下分析及创新工作:1.通过分析SELinux初始化流程与服务流程,总结出了 SELinux与LSM钩子函数的关系、SELinux各组件间的关系,并整理得出了 SELinux安全服务器与其他组件隔离的关键位置。2.研究了 TEE规范及OP-TEE源码,设计并实现了供内核模块使用的TEE客户端接口,重新实现了与内核接口相关的驱动操作函数。通过驱动与内核接口为内核模块提供建立与可信应用的会话,发起命令请求等服务,重新建立SELinux其他组件与安全服务器的通信机制。3.基于TrustZone技术的软件架构,设计并实现了 Linux安全模块隔离方案。区别于虚拟化方式,本文提出的方案更好的结合硬件隔离机制,利用TrustZone的安全启动保证策略加载过程安全性,利用TEE与Linux隔离运行的特点保证决策服务的完整性。本文详细描述了 Linux安全模块隔离方法的设计和实现细节,最后通过实验证明该方案的可行性和有效性。