[发明专利]运行时程序安全关键数据的完整性验证方法及装置有效
申请号: | 201210494049.8 | 申请日: | 2012-11-28 |
公开(公告)号: | CN102930185A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 王蕾;邓宇;王永文;窦强;李姗姗;孙彩霞;张承义;高军;黄立波;倪晓强;隋兵才;陈微;赵天磊 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F21/10 | 分类号: | G06F21/10 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运行 程序 安全 关键 数据 完整性 验证 方法 装置 | ||
技术领域
本发明涉及计算机安全领域,具体涉及一种运行时程序安全关键数据的完整性验证方法及装置。
背景技术
在计算机系统中,可假设处理器芯片可以防御各类物理攻击,是安全可信的。但是位于处理器之外的内存和片外总线可能遭受物理攻击。攻击者可以破坏内存中的数据,也可以破坏在总线上传输的数据。例如其他连接在片外总线上,可以直接对内存进行读写的主设备,都可以成为攻击者。如图1所示,位于处理器之外的内存和片外总线可能遭受物理攻击的攻击类型主要有三类:欺骗攻击(a),换位攻击(b)和重放攻击(c)。欺骗攻击指的是攻击者将某个内存数据块用伪造的数据块(被篡改的数据)代替;换位攻击指的是攻击者使用地址A的数据块<Data @2>替换地址B的数据块<Data @4>;重放攻击指的是攻击者用地址A之前的旧数据<Data(@4,t1)>替换地址A当前存储的数据<Data(@4,t2)>。
针对单处理器的内存完整性验证,国际上有很多研究,现有工作都是基于上述假设,认为处理器是可信的,信任边界包括处理器内部的计算和存储单元,即处理器和片上cache。现有技术的内存完整性保护方法主要有如下几种:
1、最直接的内存完整性保护方法的步骤如下:
第一步,对整个片外存储器的内容计算摘要值。
第二步,将计算得到的摘要值存储在可信区域中(如处理器芯片中)。
第三步,当从内存中读出数据块的时候,重新计算整个内存的摘要值,和处理器上保存的摘要值进行比较,如果相等,数据完整性未被篡改,如果不相等,则数据已被篡改。
第四步,当数据写入内存时,如果经过处理器确认修改合法,则可以执行,同时重新计算整个内存芯片的摘要值,并更新处理器芯片中保存的摘要值。
但是此类方法的摘要运算量和访存带宽太大,可用性差。
2、另外一类内存完整性保护方法的步骤如下:
第一步,将内存分块,为每个内存块计算一个摘要值。
第二步,将所有的内存数据块的摘要值保存在可信区域中(如处理器芯片中)。
第三步,当处理器读取数据块的时候,计算数据块的摘要值,和处理器上保存的对应摘要值进行比较,如果相等,数据完整性未被篡改,如果不相等,则数据已被篡改。
第四步,当数据写入内存时,如果经过处理器确认修改合法,则可以执行,同时重新计算所涉及内存块的摘要值,并更新处理器芯片中保存的摘要值。
这类方法减少了每次计算的内存块的大小,并且可以通过在片上cache缓存内存块的摘要值减少对访存带宽的占用,但是这样会占用片上存储宝贵的存储空间。
3、针对方法1和方法2所存在的问题,很多研究者提出了基于树结构的内存完整性保护方法,包括Merkle Tree、可并行验证树PAT(the Parallelization Authentication Tree)和防篡改计数树TEC Tree(the Tamper-Evident Counter Tree)。基于树结构的内存完整性保护方法的步骤如下:
第一步,将要保护的数据分块,作为验证树的叶子节点,逐级向上计算,直到获得根节点的值。将根节点的值存储在可信区域(如处理器芯片中)。
第二步,读取数据的时候,通过计算被读取数据的完整性验证值,并且结合之前计算的其余完整性验证值,计算获得根验证值,和存储在可信区域的根验证值进行比较。如果相等,则表明数据没有被篡改,如果不相等,则表明数据被篡改。
第三步,写入数据的时候,如果写入合法,则以写入数据为输入,重新计算完整性验证树,计算根验证值,更新保存在可信区域的完整性验证树根验证值。
目前基于这种树形结构的内存完整性保护机制,分为基于物理地址和基于虚拟地址两类。基于物理地址的保护机制,对整个物理地址空间进行保护。基于虚拟地址的保护机制,对程序的整个虚拟地址空间进行保护。基于物理地址的保护机制无法预防攻击者通过修改虚实地址映射,用未被篡改的数据块顶替被篡改的数据块进行完整性验证而实施的攻击。基于虚拟地址的保护机制,由于程序的虚拟地址空间过大,构造树结构耗费巨大而很难实用。
发明内容
本发明要解决的技术问题是提供一种能够检测到程序运行时安全关键数据的篡改、安全性能高、防攻击性能强、完整性运算量小、占用存储空间少的运行时程序安全关键数据的完整性验证方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210494049.8/2.html,转载请声明来源钻瓜专利网。