首页> 中国专利> 内存附加校验器的内存数据完整性保护方法

内存附加校验器的内存数据完整性保护方法

摘要

本发明提供的是一种内存附加校验器的内存数据完整性保护方法。在内存芯片中加入能进行信息摘要计算的校验器,CPU和校验器具有相同的密钥,并各维护一个同步的计数器,两个计数器初始值相同,每一次总线传输数据后都加1,所以在总线上没有伪造数据的情况下,两个计数器维持同步。CPU和校验器协同保护总线上传输的数据的完整性,如果攻击者通过某硬件搭接总线,篡改总线上传输的数据,CPU或校验器可以检测到这种情况,并发出报警信息。本发明能够提高内存中数据的安全性,探测使用搭接总线方法篡改总线数据的攻击行为,防御包括重放攻击在内的各种主动和被动攻击行为;降低完整性校验的时间和空间开销。

著录项

  • 公开/公告号CN102841998A

    专利类型发明专利

  • 公开/公告日2012-12-26

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201210239059.7

  • 发明设计人 姚念民;马海峰;

    申请日2012-07-11

  • 分类号G06F21/00(20060101);

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

  • 入库时间 2023-12-18 07:51:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-24

    未缴年费专利权终止 IPC(主分类):G06F21/64 专利号:ZL2012102390597 申请日:20120711 授权公告日:20141203

    专利权的终止

  • 2014-12-03

    授权

    授权

  • 2013-02-13

    实质审查的生效 IPC(主分类):G06F21/00 申请日:20120711

    实质审查的生效

  • 2012-12-26

    公开

    公开

说明书

技术领域

本发明涉及的是一种提高计算机安全性能的方法。

背景技术

在与本发明相关的技术领域中,公认的存储器完整性校验的有效机制是Merkle树(或 Hash树),它是将存储器分成多个等长块,每个存储块对应Merkle树一个叶结点,每个内部 结点是它两个儿子结点连接再进行hash计算的结果,此过程一直进行到根结点,树的根结点 处于安全的存储区,例如CPU中。在校验时,再计算数据块的hash值,与事先存储的相应 hash值比较,如相同则继续生成上一层hash值并进行比较,一直到根结点,如某个hash值 不匹配,则发生篡改。但该方法需要占用大量存储空间来存储树的结构,而且每次校验都需 要在从树叶到根节点的每一层进行计算,耗费了大量计算资源,其太长的延迟也不适用于很 多实时性任务。有许多Merkle树的改进方法,主要有CHTree、Lhash和H-LHash、BMT、M-TREE、 PAT、TEC-Tree和HW-HTree等。

CHTree是利用处理器的片内Cache来提高基于Merkle树的完整性校验效率。将用作完 整性检查的Merkle树内部结点被缓冲在L2-Cache中而维持可信。这种方法通过降低校验路 径的长度,使得所需hash计算的次数减少。该方法的主要问题是需要较大的L2-Cache以缓 冲足够多的Merkle树的内部结点。LHash和H-LHash都是维护一个存储器读写的操作日志, 可以在稍后的某个时间一次性校验一系列存储器访问结果的完整性,属于脱机校验。该类方 法通过减少不必要的校验次数而降低整个校验过程的代价。LHash/H-LHash多数时间只记 录日志,因而“运行时性能”好,但一次校验代价会更大,若想有效发挥LHash的性能,检 验必须是不频繁的。BMT(Bonsai Merkle Trees)是一种能同时保护内存和一部分外存的方法, 它建立一棵Merkle树保护整个内存,每个内存页(page)又对应一棵Merkle子树,将子树的 根结点保存在内存中设置的专用区,以此来保护外存交换区的安全,因校验交换区数据要经 两级Merkle树,系统开销较大。M-TREE方法将Merkle树的MAC长度由256位降低为32位, 降低了计算和存储开销,但安全性有待证明。PAT(Parallelizable authentication trees) 方法能并行认证和更新结点,但总体开销仍较大。TEC-Tree方法,它将明文分为数据块和 nonce两部分,再用Merkle树保护nonce块,在解密时将解出的nonce和保存的nonce比较 即可完成校验,这省去了一次MAC操作,但仍要维护一棵nonce树。HW-Htree(Hot Window Hash  Tree)是通过缩短校验路径的方法来减小代价,使用的也是Merkle树校验方法,主要思想是 维持Merkle树的基本结构不变,为其添加热点区域,通过优化热点区域从而提高校验性能。 这种方法是Merkle树的一种改进,由于每次只需要校验到子树的顶结点,缩短了校验路径, 一定程度上提高了校验效率,但它采用统一的存储块划分方式,当要保护的存储区很大时, 进行校验的开销仍较大。

发明内容

本发明的目的在于提供一种能提高内存中数据的安全性,降低完整性校验的时间和空间 开销的内存附加校验器的内存数据完整性保护方法。

本发明的目的是这样实现的:

在内存中设置能进行信息摘要计算的校验器,通过如下过程实现对主存储器的保护;

(1)初始化

为CPU和校验器设一相同密钥key,同时CPU和校验器各维护一个用于同步的计数器, 初始时两个计数器值设为0;

(2)写数据块

在写数据块时,将CPU的计数器加1,将要保存的cache行数据、计数器值和cache行 地址相连接,以key为密钥做信息摘要计算,得到MAC(Message Authentication Code) 值,将cache行与MAC值经由总线发送到内存;内存在接收到数据后,将校验器的计数器加 1,在没有篡改情况下CPU与校验器的计数器将保持同步;接着将校验器计数器值与接收的数 据块(cache行)和数据块地址相连,以key为密钥做信息摘要计算,将计算出的MAC值与 收到的MAC值做比较,如相匹配,则数据校验成功,保存数据块,丢弃MAC值;如不匹配, 认为遭到篡改,则数据校验失败,校验器发出报警信息;

(3)读数据块

在读数据块时,内存将校验器的计数器加1,将读取的数据块、校验器的计数器值和数 据块地址相连接,以key为密钥对其做信息摘要计算,将数据块与MAC值经由总线发送到CPU; CPU收到数据后,将CPU的计数器加1,将CPU计数器值与接收的数据块和数据块地址相连, 以key为密钥做信息摘要计算,将计算出的MAC值与收到的MAC值做比较,如相匹配,则数 据校验成功,否则数据校验失败,CPU发出报警信息。

在本发明之前提出的安全体系结构中,几乎所有方案都假设CPU是安全的,而内存和总 线是不安全的,可能受到硬件攻击。而事实上,内存芯片由于有类似于CPU的封装方式,攻 击者同样不能探入到其内部结构,即内存芯片是安全的,攻击点只在内存或主板的总线上, 攻击者可通过搭接的方法来控制总线,并可能篡改数据。因此如果内存芯片也具有计算功能, 则它可与CPU协同完成校验,显著提高系统性能。基于这一想法,本发明提出了硬件协同的 存储器完整性保护方法。其主要思想是在内存芯片中加入校验器,CPU和添加的校验器协同 完成数据校验。

在内存芯片中加入的校验器能进行信息摘要计算。CPU和校验器协同保护总线上传输的 数据的完整性,如果攻击者通过某硬件搭接总线,篡改总线上传输的数据,CPU或校验器可 以检测到这种情况,并发出报警信息。CPU和校验器具有相同的密钥,并各维护一个同步的 计数器。两个计数器初始值相同,每一次总线传输数据后都加1,所以在总线上没有伪造数 据的情况下,两个计数器维持同步。考虑到目前的内存通常焊有多个内存芯片,每个芯片的 引脚都是外露的,易受到搭载攻击,需要为每个内存芯片都加入校验器,从而造成成本增加。 为简化设计,可将整个内存条进行封装,只外露与系统总线的接口,这样一个内存条只需加 入一个校验器即可。

本发明的主要特点为:

(1)提高内存中数据的安全性,探测使用搭接总线方法篡改总线数据的攻击行为,防御 包括重放攻击在内的各种主动和被动攻击行为;

(2)降低完整性校验的时间和空间开销。

附图说明

附图是本发明的内存附加校验器的内存数据完整性保护方法的示意图。

具体实施方式

下面结合附图举例对本发明做更详细的描述:

结合附图,其中verifier是内存中增加的校验器,它有与CPU相同的密钥key,mask是 对多个内存芯片(memory chip)和verifier的封装,使其免于受到硬件攻击。在内存中设 置能进行信息摘要计算的校验器,通过三个主要过程:初始化、写数据和读数据来实现对主 存储器的保护,分别叙述如下。

(1)初始化

为CPU和校验器设一相同密钥key,且两者各维护一个用于同步的计数器,初始时两个 计数器值可设为0。

(2)写数据块

在写数据块时,将CPU的计数器加1,将要保存的cache行数据、计数器值和cache行 地址相连接,以key为密钥对其做信息摘要计算,得到MAC(Message Authentication Code) 值,将cache行与MAC值经由总线发送到内存;内存在接收到数据后,将校验器的计数器加 1,这样在没有篡改情况下CPU与校验器的计数器将保持同步。接着将校验器计数器值与接收 的数据块(cache行)和数据块地址相连,以key为密钥对其做信息摘要计算,将计算出的 MAC值与收到的MAC值做比较,如相匹配,则数据校验成功,保存数据块,丢弃MAC值;如 不匹配,认为遭到篡改,则数据校验失败,校验器发出报警信息。

(3)读数据块

在读数据块时,内存将校验器的计数器加1,将读取的数据块、校验器的计数器值和数 据块地址相连接,以key为密钥对其做信息摘要计算,将数据块与MAC值经由总线发送到CPU; CPU收到数据后,将CPU的计数器加1,将CPU计数器值与接收的数据块和数据块地址相连, 以key为密钥对其做信息摘要计算,将计算出的MAC值与收到的MAC值做比较,如相匹配, 则数据校验成功,否则数据校验失败,CPU发出报警信息。

在具体实现时,内存校验器可以选用LKT4101等商业加密芯片,或者选用ARM等具有简 单计算功能的芯片,此时加密程序可以存储在一块专用内存中。内存校验器与系统总线相连, 进出内存的数据都要经过校验器,如果校验失败,校验器可以适当的方式发出警报,甚至终 止程序的运行。

与目前主流基于Merkle树的认证方法比较,本发明提出的内存数据完整性保护方法不需 要在内存中保存数据块MAC值,也不需要在内存构建Merkle树,大大降低了完整性保护带来 的性能开销;同时由于计数器的存在,使每次读写数据时,攻击者如用以前发送过的数据再 发给CPU或内存,由于计数器不断加1,导致CPU或内存计算出的MAC值与收到的MAC值不 同,校验器也能检测出,所以该方法可以防御重放攻击。结合计数器模式等加密方法,本方 法可防范各种主动和被动攻击行为。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号