【技术实现步骤摘要】
针对非易失内存的数据安全处理方法、内存控制器及系统
[0001]本专利技术属于内存安全
,更具体地,涉及一种针对非易失内存的数据安全处理方法、内存控制器及系统。
技术介绍
[0002]非易失性内存(Non
‑
volatile memory,NVM),因具有高密度、可字节寻址、数据持久存储等优良特性而备受内存系统研究者的关注。不同于易失性动态随机访问内存(Dynamic Random Access Memory,DRAM),NVM上存储的数据在系统断电后也不会丢失,这使得攻击者可以更容易的通过数据窃取和恶意修改等手段破坏NVM上数据的安全性,因此高效的安全保障对于NVM内存系统是必不可少的。
[0003]在安全NVM系统中,任何CPU片上的数据都被认为是安全可信的,而任何不在片上的数据都被认为是不可信的,不在片上的数据主要包括NVM内存和内存总线上的数据。数据机密性和完整性是内存数据安全的两个主要方面,在当前安全NVM设计中分别由计数器模式加密(Counter Mode Encryption,CME)和盆景默克尔树(Bonsai Merkle Tree,BMT)验证来保证。如图1所示,在CME中,每个数据缓存行都有一个对应的计数器。每当向NVM写入或从NVM读取数据缓存行时,都会通过一个唯一的一次性密码本(One Time Pad,OTP)与之异或以进行数据加密或解密,该OTP是使用该数据缓存行对应的加密计数器、数据地址和其他元素生成的。当同一个数据块进行加密时,计数器自增以保证OTP的 ...
【技术保护点】
【技术特征摘要】
1.一种针对非易失内存的数据安全处理方法,其特征在于,包括:初始化步骤,包括:构建以数据缓存行的计数器为叶子节点的默克尔树作为Back_BMT,将其中以指定层中的节点为根节点的子树作为Region_BMT,各Region_BMT对应的非易失内存空间作为一个区域;初始化另一棵默克尔树,记为Fore_BMT,其叶子节点为Region_BMT的根节点,且叶子节点总数不超过阈值N;BMT更新步骤,包括:(S1)对于需要加入Fore_BMT保护的Region_BMT,即RBMTB,判断Fore_BMT中是否存在与其相对应的叶子节点,若是,则转入步骤(S3);否则,转入步骤(S2);(S2)判断Fore_BMT中是否存在空闲或已同步至Back_BMT的叶子节点,若是,则从这些叶子节点中为RBMTB分配一个叶子节点,并转入步骤(S3);否则,为RBMTB分配一个叶子节点作为Fore_Victim,并根据Fore_Victim更新Back_BMT后,转入步骤(S3);(S3)利用RBMTB对Fore_BMT进行更新;以及写回步骤,包括:将数据块B从CPU写回非易失内存时,从Back_BMT中读取待写入的数据块B的计数器并更新,之后更新数据块B所属区域R对应的Region_BMT,并通过所述BMT更新步骤将该Region_BMT加入Fore_BMT保护;利用更新后的计数器对数据块B进行加密,并将所得密文写入所述非易失内存。2.如权利要求1所述的针对非易失内存的数据安全处理方法,其特征在于,还包括:在片上持久性寄存器中维护指定数量的缓存行计数器;并且,所述写回步骤中,在从Back_BMT中读取待写入的数据块B的计数器之前,还包括:(T1)从所述持久性寄存器中查找数据块B的计数器,若命中,则转入步骤(T4);否则,转入步骤(T2);(T2)从所述持久性寄存器中选取一个待替换的缓存行Reg_Victim,并从Back_BMT中读取数据块B的计数器所在的叶子节点对Reg_Victim进行原子替换;(T3)利用Reg_Victim更新对应的Region_BMT,并利用所述BMT更新步骤将该Region_BMT加入Fore_BMT保护;(T4)对持久性寄存器中数据块B的计数器进行更新,利用更新后的计数器对数据块B进行加密,将所得密文写入所述非易失内存后,结束所述写回步骤。3.如权利要求1或2所述的针对非易失内存的数据安全处理方法,其特征在于,还包括:节点恢复步骤,包括:对于Back_BMT或Fore_BMT中丢失的节点,若为叶子节点,则利用ECC在系统崩溃恢复阶段对其进行恢复;若为中间节点,则将其恢复推迟到系统重启后检测到重放攻击时进行;恢复时利用所访问路径上当前的计数器重新计算该路径上各节点的哈希值,直至根节点,将所计算的根节点与片上存储的根节点进行比较,若二者一致,利用所计算的节点值对该路径上的中间节点进行恢复;若二者不一致,则判定系统发生了真正的重放攻击。4.如权利要求3所述的针对非易失内存的数据安全处理方法,其特征在于,还包括:超前同步步骤,包括:识别Fore_BMT中在连续的M次内存写请求中都未被访问的叶子节点,并将其添加到同步队列中;当BMT引擎未被前台内存读写请求占用时,利用所述BMT引擎将所述同步队列中的Fore_BMT叶子节点同步到Back_BMT的根节点,若同步过程中发生内存
访问,则同步终止;其中,M为预设正整数。5.如权利要求4所述的针对非易失内存的数据安全处理方法,其特征在于,所述初始化步骤还包括:建立叶子节点状态表,用于记录Fore_BMT中各叶子节点的状态信息;所述状态信息包括叶子节点对应的区域编号、上次更新时系统的内存写请求总数以及state标记位,所述state标记位用于指示叶子节点是否空闲以及是否被同步至Back_BMT;并且,所述超前同步步骤中,通过定期扫描所述叶子节点状态表的方式,识别在连续的M次内存写请求中都未被访问的Fore_BMT叶子节点。6.如权利要求5所述的针对非易失内存的数据安全处理方法,其特征在于,所述BMT更新步骤的(S2)中,若Fore_BMT中不存在空闲或已同步至Back_BMT的叶子节点,则为RBMTB分配一个叶子节点作为Fore_Victim的方式为:从所述叶子节点状态表中随机读取K个连续的状态信息条目,并从中识别出最久未被更新的Fore_BMT叶子节点,将其作为Fore_Victim分配给RBMTB;K为预设正整数。7.如权利要求6所述的针对非易失内存的数据安全处理方法,其特征在于,所述初始化步骤还包括:建立区域索引表,用于记录所述非易失内存中各区域的保护信息;所述保护信息包括:用于指示区域是否被Fore_BMT保护的Fore/Back标识位,以及区域对应的Fore_BMT叶子节点顺序;并且,所述BMT更新步骤的(S1)中,对于需要加入Fore_BMT保护的Region_BMT,即RBMTB,判断Fore_BMT中是否存在与其相对应的叶子节点的方式包括:确定RB...
【专利技术属性】
技术研发人员:王芳,冯丹,雷梦雅,帅晓雨,曹郁超,
申请(专利权)人:深圳华中科技大学研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。