Linux操作系统内存页面即时加解密方法和系统技术方案

技术编号:16529301 阅读:37 留言:0更新日期:2017-11-09 21:09
本发明专利技术涉及内存页面加解密技术领域,特别是涉及一种Linux操作系统内存页面即时加解密方法,包括页面标识,页面标识包括保护页面标识和受限状态标识;页面解密,处理器在访问某个地址之前,操作系统检查处理器所要访问地址所在页面是否为受限页面,如果处理器所要访问地址所在页面为受限页面,将受限页面转换为非受限页面;页面加密,由页面加密服务例程周期性检查和批量加密非受限页面,如果存在非受限页面长时间不被处理器所访问,再对其进行加密。本发明专利技术还提供一种Linux操作系统内存页面即时加解密系统,包括页面标识单元、页面加密单元和页面解密单元。本发明专利技术在页面访问前解密,在页面访问后加密,从而减少秘密数据的暴露时间。

【技术实现步骤摘要】
Linux操作系统内存页面即时加解密方法和系统
本专利技术涉及内存页面加解密
,特别是涉及一种Linux操作系统内存页面即时加解密方法和系统。
技术介绍
为了保护数据在磁盘中的安全,人们设计和实现的文件加密技术。为了保护数据在通信网络中的安全,数据被加密后再发送。然而,由于处理器处理的需求,在内存中的数据始终以明文形式存在,这就给攻击者提供了便利。自然的,人们希望存在能够直接处理密文的处理器。但是目前并不存在这样的商用处理器,而且由于使用者查看和编辑的需求,有的秘密信息必须以明文形式展示给使用者。目前,诸如Linux等主流商用操作系统并不支持对内存页面进行加密。由于现有处理器都无法访问处于密文状态的数据或指令,使得在内存中的页面均处于明文状态。这就给攻击者窃取用户的敏感信息提供了方便。一旦攻击者进入操作系统,就可以通过扫描内存来查找感兴趣的敏感信息,从而绕开文件加密、通信加密等安全手段。为了减少内存数据泄露的风险,一种典型的方法是操作系统在内存中“锁”住存有秘密的内存页面,避免页面被换到磁盘,但是内存数据仍然是明文,存在被窃取的风险。内存数据的安全问题急待解决。针对这一问题,存在一些解决方案。从硬件上来看,典型的有AEGIS和XOMOS。两者的核心思想类似,都是在处理器层面上寻求解决方案。就AEGIS而言,它希望存在一个具备数据加解密和完整性验证功能的处理器,所有指令和数据在离开处理器之后,均被加密并生成完整性指纹,当处理器处理密文状态的指令和数据时,会首先完成完整性验证和解密操作,续而再完成具体的操作。这样,明文状态的数据和指令就始终处于处理器内部,攻击者只有进入处理器才能窃取信息,而这无疑增加了攻击者的难度。然而遗憾的是,虽然AEGIS和XOMOS的影响巨大,但是它们都仅仅是实验室成果,并没有得到市场的广泛认可。一些软件的解决方案主要是利用新的特权软件,典型的是虚拟机监控器。由于虚拟机客户机运行在虚拟机监控器之上,只有通过虚拟机监控器才能访问硬件,所以在虚拟机监控器上可以截获操作系统对内存硬件的一切访问。这样就可以实现:访问前解密、访问后加密的目的,典型的案例如SP3,其系统架构如图1所示,此时,操作系统不再与硬件直接交互,而是由虚拟机监控器完成与硬件的交互,操作系统需要经过虚拟机监控器才能访问硬件。SP3就是在虚拟机监控器层面增加安全机制来实现对内存页面访问操作的控制。不被处理器访问的内存页面均以密文形式存在,只有在处理器访问时才会解密供处理器使用。但是这样的方案最明显的限制是必须依赖虚拟机监控器的支持,而虚拟机监控器本身就消耗了系统的性能开销,从而极大的影响了系统的整体性能。其次,操作系统内核安全性往往仍然影响了机制本身的可信,由于安全解决方案力求对操作系统透明,在不修改操作系统的前提下达到安全目的,这就使得安全解决方案不够彻底,恶意操作系统内核仍然可能窃取秘密数据。
技术实现思路
针对秘密信息在内存中始终以明文状态存在的问题,在不过多损耗计算机性能以及不依赖特殊硬件的前提下,本专利技术提供一种Linux操作系统内存页面即时加解密方法和系统,在页面访问前解密,在页面访问后加密,从而减少秘密数据的暴露时间,使秘密信息主要以密文的形式存在于内存中,从而减少秘密信息泄漏的风险。为了实现上述目的,本专利技术采用以下的技术方案:本专利技术提供一种Linux操作系统内存页面即时加解密方法,包括以下步骤:步骤1,页面标识页面标识包括保护页面标识和受限状态标识;保护页面标识用于操作系统识别需要保护的页面,分为动态实时页面标识和静态预页面标识两种情况;受限状态标识用于操作系统识别保护页面的明密文状态;步骤2,页面解密处理器在访问某个地址之前,检查目标地址所在页面是否在内存中,即缺页检查,如果目标地址所在页面在内存中,操作系统检查处理器所要访问地址所在页面是否为受限页面,如果处理器所要访问地址所在页面为受限页面,那么处理器无法直接访问,操作系统发出访问受限页面中断,将受限页面转换为非受限页面,完成对受限页面的解密操作;步骤3,页面加密在内核中增设页面加密服务例程,由该页面加密服务例程周期性检查和批量加密非受限页面,即定时对所有非受限页面进行检查,如果存在非受限页面长时间不被处理器所访问,再对其进行加密,将其转换为受限页面。进一步地,所述步骤1中动态实时页面标识是指进程根据需要动态向操作系统申请保护页面,以便存储秘密信息,动态实时页面标识是由申请保护页面的函数接口PPmalloc和取消保护页面的函数接口PPfree实现的,具体为:PPmalloc是在传统C库函数malloc的基础上增加了页面标识功能,具体来说,PPmalloc首先利用传统的malloc函数申请相应的存储空间,然后利用新增系统调用PPSet来标识malloc函数申请的页面;PPfree是在传统C库函数free的基础上增加了页面标识功能,其目的是取消PPmalloc函数所申请的保护页面;PPSet系统调用根据所给的首地址以及存储空间范围大小,标识所涵盖的页面为保护页面或者取消保护页面的标识。进一步地,所述步骤1中静态预页面标识是指在程序装入内存前就提前对需要保护的秘密数据所在页框进行标识,具体为:对Linux操作系统的ELF文件格式进行解析,将秘密数据所在位置进行标识,并将标识结果存储于附属的标识文件,当ppexec系统调用装载程序时,将标识文件装载入内核形成标识数据;为了标识进程对应的页表中相应的标志字,增加缺页中断服务程序的工作内容,要求缺页中断在装载页面的同时也更新页面对应页表项的标志字。进一步地,所述步骤2中访问受限页面中断的具体工作流程为:步骤2.1,中断服务程序读取产生中断的目标地址,查获目标地址所在页面所对应的页表项;步骤2.2,中断服务程序读取目标页面的内容,对其进行解密,将受限页面转换为非受限页面;步骤2.3,中断服务程序查获目标页面所对应的页表项的标志字,更新该页面对应页表项的标志字,当中断服务程序返回后,处理器直接访问该页面。进一步地,所述步骤3中页面加密服务例程周期性检查和批量加密非受限页面的具体过程为:内核维护一个非受限页面单链表,当受限页面转换为非受限页面后,内核将在非受限页面单链表中增加一个新的节点,记录新增加非受限页面的基本信息,页面加密服务例程周期性检查该单链表,检查页表项以及页面访问信息,得到待加密非受限页面集,页面加密服务例程将加密待处理的非受限页面转换为受限页面,然后更新对应页面的页表项标志字,最后从非受限页面单链表中删除该节点。进一步地,所述页面加密服务例程采用最近最久未使用算法来筛选待处理的非受限页面集,最近最久未使用是指从若干页面中挑选最近一段时间最久没有使用的页面。本专利技术还提供一种Linux操作系统内存页面即时加解密系统,包括用户接口和内核,用户接口经过系统调用向内核提出服务请求,所述内核包括页面标识单元、页面加密单元和页面解密单元;页面标识单元,用于标识需要保护的页面或者取消需要保护的页面;页面加密单元,用于页面暂时不被访问时,对保护页面进行加密操作;页面解密单元,用于在页面被处理器访问时,及时对保护页面进行解密操作。进一步地,所述页面标识单元包括保护页面标识单元和受限状态标识单元;保护页面标识单元用于本文档来自技高网
...
Linux操作系统内存页面即时加解密方法和系统

【技术保护点】
一种Linux操作系统内存页面即时加解密方法,其特征在于,包括以下步骤:步骤1,页面标识页面标识包括保护页面标识和受限状态标识;保护页面标识用于操作系统识别需要保护的页面,分为动态实时页面标识和静态预页面标识两种情况;受限状态标识用于操作系统识别保护页面的明密文状态;步骤2,页面解密处理器在访问某个地址之前,检查目标地址所在页面是否在内存中,即缺页检查,如果目标地址所在页面在内存中,操作系统检查处理器所要访问地址所在页面是否为受限页面,如果处理器所要访问地址所在页面为受限页面,那么处理器无法直接访问,操作系统发出访问受限页面中断,将受限页面转换为非受限页面,完成对受限页面的解密操作;步骤3,页面加密在内核中增设页面加密服务例程,由该页面加密服务例程周期性检查和批量加密非受限页面,即定时对所有非受限页面进行检查,如果存在非受限页面长时间不被处理器所访问,再对其进行加密,将其转换为受限页面。

【技术特征摘要】
1.一种Linux操作系统内存页面即时加解密方法,其特征在于,包括以下步骤:步骤1,页面标识页面标识包括保护页面标识和受限状态标识;保护页面标识用于操作系统识别需要保护的页面,分为动态实时页面标识和静态预页面标识两种情况;受限状态标识用于操作系统识别保护页面的明密文状态;步骤2,页面解密处理器在访问某个地址之前,检查目标地址所在页面是否在内存中,即缺页检查,如果目标地址所在页面在内存中,操作系统检查处理器所要访问地址所在页面是否为受限页面,如果处理器所要访问地址所在页面为受限页面,那么处理器无法直接访问,操作系统发出访问受限页面中断,将受限页面转换为非受限页面,完成对受限页面的解密操作;步骤3,页面加密在内核中增设页面加密服务例程,由该页面加密服务例程周期性检查和批量加密非受限页面,即定时对所有非受限页面进行检查,如果存在非受限页面长时间不被处理器所访问,再对其进行加密,将其转换为受限页面。2.根据权利要求1所述的Linux操作系统内存页面即时加解密方法,其特征在于,所述步骤1中动态实时页面标识是指进程根据需要动态向操作系统申请保护页面,以便存储秘密信息,动态实时页面标识是由申请保护页面的函数接口PPmalloc和取消保护页面的函数接口PPfree实现的,具体为:PPmalloc是在传统C库函数malloc的基础上增加了页面标识功能,具体来说,PPmalloc首先利用传统的malloc函数申请相应的存储空间,然后利用新增系统调用PPSet来标识malloc函数申请的页面;PPfree是在传统C库函数free的基础上增加了页面标识功能,其目的是取消PPmalloc函数所申请的保护页面;PPSet系统调用根据所给的首地址以及存储空间范围大小,标识所涵盖的页面为保护页面或者取消保护页面的标识。3.根据权利要求1所述的Linux操作系统内存页面即时加解密方法,其特征在于,所述步骤1中静态预页面标识是指在程序装入内存前就提前对需要保护的秘密数据所在页框进行标识,具体为:对Linux操作系统的ELF文件格式进行解析,将秘密数据所在位置进行标识,并将标识结果存储于附属的标识文件,当ppexec系统调用装载程序时,将标识文件装载入内核形成标识数据;为了标...

【专利技术属性】
技术研发人员:周洪伟原锦辉孔志印刘磊马婧关慧肖锐张凯孙竟尧
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1