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

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

Info

Publication number
CN102841998B
CN102841998B CN201210239059.7A CN201210239059A CN102841998B CN 102841998 B CN102841998 B CN 102841998B CN 201210239059 A CN201210239059 A CN 201210239059A CN 102841998 B CN102841998 B CN 102841998B
Authority
CN
China
Prior art keywords
data
cpu
checker
counter
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210239059.7A
Other languages
English (en)
Other versions
CN102841998A (zh
Inventor
姚念民
马海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanhai Innovation And Development Base Of Sanya Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201210239059.7A priority Critical patent/CN102841998B/zh
Publication of CN102841998A publication Critical patent/CN102841998A/zh
Application granted granted Critical
Publication of CN102841998B publication Critical patent/CN102841998B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

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

Description

内存附加校验器的内存数据完整性保护方法
技术领域
本发明涉及的是一种提高计算机安全性能的方法。
背景技术
在与本发明相关的技术领域中,公认的存储器完整性校验的有效机制是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 HashTree)是通过缩短校验路径的方法来减小代价,使用的也是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值不同,校验器也能检测出,所以该方法可以防御重放攻击。结合计数器模式等加密方法,本方法可防范各种主动和被动攻击行为。

Claims (1)

1.一种内存附加校验器的内存数据完整性保护方法,其特征是在内存中设置能进行信息摘要计算的校验器,通过如下过程实现对主存储器的保护;
(1)初始化
为CPU和校验器设一相同密钥key,同时CPU和校验器各维护一个用于同步的计数器,初始时两个计数器值设为0;
(2)写数据块
在写数据块时,将CPU的计数器加1,将要保存的cache行数据、计数器值和cache行地址相连接,以key为密钥做信息摘要计算,得到MAC值,将cache行与MAC值经由总线发送到内存;内存在接收到数据后,将校验器的计数器加1,在没有篡改情况下CPU与校验器的计数器将保持同步;接着将校验器计数器值与接收的数据块和数据块地址相连,以key为密钥做信息摘要计算,将计算出的MAC值与收到的MAC值做比较,如相匹配,则数据校验成功,保存数据块,丢弃MAC值;如不匹配,认为遭到篡改,则数据校验失败,校验器发出报警信息;
(3)读数据块
在读数据块时,内存将校验器的计数器加1,将读取的数据块、校验器的计数器值和数据块地址相连接,以key为密钥对其做信息摘要计算,将数据块与MAC值经由总线发送到CPU;CPU收到数据后,将CPU的计数器加1,将CPU计数器值与接收的数据块和数据块地址相连,以key为密钥做信息摘要计算,将计算出的MAC值与收到的MAC值做比较,如相匹配,则数据校验成功,否则数据校验失败,CPU发出报警信息。
CN201210239059.7A 2012-07-11 2012-07-11 内存附加校验器的内存数据完整性保护方法 Expired - Fee Related CN102841998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210239059.7A CN102841998B (zh) 2012-07-11 2012-07-11 内存附加校验器的内存数据完整性保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210239059.7A CN102841998B (zh) 2012-07-11 2012-07-11 内存附加校验器的内存数据完整性保护方法

Publications (2)

Publication Number Publication Date
CN102841998A CN102841998A (zh) 2012-12-26
CN102841998B true CN102841998B (zh) 2014-12-03

Family

ID=47369348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210239059.7A Expired - Fee Related CN102841998B (zh) 2012-07-11 2012-07-11 内存附加校验器的内存数据完整性保护方法

Country Status (1)

Country Link
CN (1) CN102841998B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346587B (zh) * 2013-08-08 2018-05-22 华邦电子股份有限公司 可认证的非挥发性内存组件及其操作及制造方法
CN104463020B (zh) * 2014-11-27 2017-08-22 大连理工大学 存储器数据完整性保护的方法
CN104636276B (zh) * 2015-01-07 2017-06-13 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN104883809B (zh) * 2015-05-15 2018-01-30 福建联迪商用设备有限公司 一种pcb板安全线路的保护方法
CN105069379B (zh) * 2015-07-29 2017-11-21 哈尔滨工程大学 一种基于写计数器的存储器完整性保护方法
CN105022968B (zh) * 2015-07-30 2017-12-19 哈尔滨工程大学 一种内存数据的完整性校验方法
DE102015221239A1 (de) * 2015-10-30 2017-05-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schützen von Datenintegrität durch ein eingebettetes System mit einem Hauptprozessorkern und einem Sicherheitshardwarebaustein
CN110598467A (zh) * 2019-07-31 2019-12-20 北京大学 一种内存数据块完整性检验方法
CN111400717B (zh) * 2019-12-23 2022-03-22 海光信息技术股份有限公司 数据读取方法及相关装置
CN114143785B (zh) * 2021-12-01 2023-08-29 北京航空航天大学 数据完整性保护方法及系统
CN114564754A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 一种dram内存完整性保护方法、装置、电子设备及存储介质
CN114584328B (zh) * 2022-05-09 2022-08-02 武汉四通信息服务有限公司 Api接口的访问方法、计算机设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1841255A (zh) * 2005-03-30 2006-10-04 侯方勇 保护数据存储的机密性与完整性的方法和装置
CN102355352A (zh) * 2011-07-24 2012-02-15 哈尔滨工程大学 一种数据机密性和完整性保护方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533240B2 (en) * 2010-09-22 2013-09-10 International Business Machines Corporation Write behind cache with M-to-N referential integrity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1841255A (zh) * 2005-03-30 2006-10-04 侯方勇 保护数据存储的机密性与完整性的方法和装置
CN102355352A (zh) * 2011-07-24 2012-02-15 哈尔滨工程大学 一种数据机密性和完整性保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
多处理器系统中存储安全若干关键技术研究;程涛;《中国优秀硕士学位论文全文数据库》;20101031;正文第14-15页,第19页 *
程涛.多处理器系统中存储安全若干关键技术研究.《中国优秀硕士学位论文全文数据库》.2010, *

Also Published As

Publication number Publication date
CN102841998A (zh) 2012-12-26

Similar Documents

Publication Publication Date Title
CN102841998B (zh) 内存附加校验器的内存数据完整性保护方法
US20220229577A1 (en) Cross-blockchain data migration
Xie et al. Secured data storage scheme based on block chain for agricultural products tracking
ES2917200T3 (es) Verificación de procesos de datos en una red de recursos informáticos
US10318728B2 (en) Determining permissible activity based on permissible activity rules
CN110263087B (zh) 基于多维度信息且具有条件限制的收据存储方法和节点
CN110992027A (zh) 在区块链中实现隐私保护的高效交易方法及装置
CN110263091B (zh) 结合代码标注与用户、事件类型的收据存储方法和节点
Li et al. GLIDE: A Game Theory and Data‐Driven Mimicking Linkage Intrusion Detection for Edge Computing Networks
US11985226B2 (en) Efficient quantum-attack resistant functional-safe building block for key encapsulation and digital signature
EP3271828B1 (en) Cache and data organization for memory protection
CN110263543B (zh) 基于代码标注的对象级收据存储方法和节点
CN103023657A (zh) 一种基于分布式的网络交易安全验证系统
CN105069379A (zh) 一种基于写计数器的存储器完整性保护方法
US11722313B2 (en) State synchronization for post-quantum signing facilities
EP4020881A1 (en) Post-quantum secure remote attestation for autonomous systems
US20190042362A1 (en) Error correction code memory security
CN111416818A (zh) 网站的安全防护方法、装置和服务器
CN109447384A (zh) 风控系统的验证方法、装置、设备及存储介质
Gupta et al. MemEnc: A lightweight, low-power, and transparent memory encryption engine for IoT
CN106096429B (zh) 基于内存隔离的安全架构处理方法及处理器
CN114301928A (zh) 一种基于sgx的链上链下混合共识方法及系统
CN102073530B (zh) 一种多条正则表达式的增量分组方法
Hussain et al. A bandwidth-aware authentication scheme for packet-integrity attack detection on Trojan infected NoC
Al-Mamun et al. Poster: Dean: A blockchain-inspired consensus protocol enabling trustworthy edge computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201231

Address after: 572024 area A129, 4th floor, building 4, Baitai Industrial Park, yazhouwan science and Technology City, Yazhou District, Sanya City, Hainan Province

Patentee after: Nanhai innovation and development base of Sanya Harbin Engineering University

Address before: 150001 Intellectual Property Office, Harbin Engineering University science and technology office, 145 Nantong Avenue, Nangang District, Harbin, Heilongjiang

Patentee before: HARBIN ENGINEERING University

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141203

Termination date: 20210711

CF01 Termination of patent right due to non-payment of annual fee