CN114564754A - 一种dram内存完整性保护方法、装置、电子设备及存储介质 - Google Patents
一种dram内存完整性保护方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114564754A CN114564754A CN202111681127.0A CN202111681127A CN114564754A CN 114564754 A CN114564754 A CN 114564754A CN 202111681127 A CN202111681127 A CN 202111681127A CN 114564754 A CN114564754 A CN 114564754A
- Authority
- CN
- China
- Prior art keywords
- mac value
- data
- dram
- memory
- stored
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明的实施例公开了一种DRAM内存完整性保护方法、装置、电子设备及存储介质,涉及内存访问技术领域,能够延迟小,速度快地对内存提供完整性保护,使得数据免受物理攻击,保证数据的安全性。所述DRAM内存完整性保护方法应用于内存控制器,包括:当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文;利用预先存储的MAC密钥计算密文的MAC值,将密文和MAC值保存至DRAM内;当电子设备的CPU经过内存控制器从DRAM读取数据时,将待读取的数据进行解密,得到明文;将明文发送给CPU;从DRAM获取待读取的数据对应的已存储的原始MAC值,并利用MAC密钥计算待读取的数据的新MAC值,比较原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
Description
技术领域
本发明涉及内存访问技术领域,尤其涉及一种DRAM内存完整性保护方法、装置、电子设备及存储介质。
背景技术
随着数字技术的发展,很多机密信息都在计算机系统上处理,计算机系统的安全性显得尤为突出。各大CPU厂商开始从CPU硬件上增加加密保护方案,增加对DRAM(DynamicRandom Access Memory,动态随机存取存储器)的机密性保护。如图1所示,具体是在内存控制器上,增加加密引擎,对待写入DRAM的数据,进行加密后,再把密文存储到DRAM;而从DRAM读出数据时,内存控制器对密文解密后,传输到CPU做数据处理。内存的机密性保护,大部分的CPU厂商都已经推出各自的方案,但无法检测数据的完整性。
现有技术中,如图2所示,利用特定的设备,比如逻辑分析仪等探测内存总线,读写内存,或者利用恶意的DMA(Direct Memory Access,直接存储器访问)设备来读写内存,就会破坏DRAM上的数据,造成CPU处理错误数据,严重影响业务系统的正常运行。图中1为逻辑分析仪,2为探针,3为内存总线,4为物理攻击(非法篡改)。
最新的DDR5(Double Data Rate,双倍速率)内存技术增加ECC(Error Checkingand Correcting,错误检查和纠正)校验码,来提高DRAM的稳定性。DRAM因为故障或电噪声等发生错误,使内存数据某些bit位发生反转,导致数据错误。ECC技术在DRAM上设置额外的存储单元,保存ECC校验数据,当读取数据时,利用ECC校验技术来纠正错误的DRAM bit位,但ECC技术无法起到完整性校验作用。
目前的内存完整性保护方案有的采用完整性保护树(哈希树),主要技术原理如图3所示,在内存控制器中新增完整性保护装置,该装置负责完整性校验和哈希校验树的维护。根据哈希树的原理,把根节点保存在内置的SRAM(Static Random-Access Memory,静态随机存取存储器)中,该SRAM只有内存控制器硬件可以访问,其他的硬件和软件无法访问,保证根哈希校验值的安全性。图4为完整性保护树的示例,图中为2层的哈希树结构,其中根hash保存在SRAM中并且是可信的,其他的hash保存在DRAM中。H0、H1、H2和H3分别是数据data0、data1、data2和data3经过摘要哈希计算得到的哈希值;根hash值为H0、H1、H2和H3的摘要哈希运算的结果。
数据读取时,完整性保护装置需要校验数据是否被篡改。该装置需要获取data0,再依次把data0、hash00和根hash值读取出来,利用hash00校验data0是否完整,利用根hash校验hash00是否完整,若都完整,则data0数据完整,否则产生异常,通知用户处理。数据写入时,完整性保护装置需要依次更新hash00中的H0哈希值和根hash值。
由图3和图4可知,现有的技术需要读写数据的过程比较复杂,产生的延迟大,并且哈希树本身也需要占用DRAM内存空间,需要占用大概25%左右的DRAM,即用户有效的存储空间仅为DRAM总容量的75%。读写内存,需要依次读取数据和hash树,以及根hash,再经过计算校验,额外的hash树的内存读取将会消耗宝贵的内存带宽。
发明内容
有鉴于此,本发明实施例提供一种延迟小,速度快的DRAM内存完整性保护方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种DRAM内存完整性保护方法,应用于内存控制器,所述方法包括:
当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文;
利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
将所述明文发送给所述CPU;
从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
结合第一方面,在第一方面的一种实施方式中,所述MAC值采用SM3算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。
结合第一方面,在第一方面的另一种实施方式中,所述当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文之前包括:
所述DRAM上电前,随机生成所述MAC密钥并保存;
和/或,所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
结合第一方面,在第一方面的再一种实施方式中,所述电子设备内设置有用于控制内存完整性保护功能是否使能的标识位;
所述利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内,进一步为:
根据所述标识位判断内存完整性保护功能是否使能;
若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
所述从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号,进一步为:
根据所述标识位判断内存完整性保护功能是否使能;
若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
第二方面,本发明实施例提供一种DRAM内存完整性保护装置,包括:
加密模块,用于当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文;
保存模块,用于利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
解密模块,用于当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
发送模块,用于将所述明文发送给所述CPU;
比较模块,用于从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
结合第二方面,在第二方面的一种实施方式中,所述MAC值采用SM3算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。
结合第二方面,在第二方面的另一种实施方式中,所述装置还包括:
生成子模块,用于在所述DRAM上电前,随机生成所述MAC密钥并保存;
和/或,保存子模块,用于在所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
结合第二方面,在第二方面的再一种实施方式中,所述电子设备内设置有用于控制内存完整性保护功能是否使能的标识位;
所述保存模块,进一步包括:
第一判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
保存子单元,用于若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
所述比较模块,进一步包括:
第二判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
比较子单元,用于若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一所述的方法。
本发明实施例提供的一种DRAM内存完整性保护方法、装置、电子设备及存储介质,首先当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文,然后利用预先存储的MAC密钥计算密文的MAC值,将密文和MAC值保存至DRAM内,再当电子设备的CPU经过内存控制器从DRAM读取数据时,将待读取的数据进行解密,得到明文,之后将明文发送给CPU,最后从DRAM获取待读取的数据对应的已存储的原始MAC值,并利用MAC密钥计算待读取的数据的新MAC值,比较原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。这样,本发明实施例不需要计算多层的hash值来进行多层校验,延迟小,速度快;并且MAC值存储在DRAM中,占用空间小,不需要占用冗余的eccbit位(由于eccbit有位数限制,通常只能存28位,MAC值需截断后存放,严重降低数据的纠错能力,当内存纠错能力下降后,数据发生错误将无法检测,导致灾难性后果),不会影响纠错能力。本发明实施例能够对内存(即DRAM)提供完整性保护,使得数据免受物理攻击,保证数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中CPU通过内存控制器对DRAM进行读写的机密性保护方案的结构示意图;
图2为现有技术中利用特定的设备对DRAM进行恶意读写的结构示意图;
图3为现有技术中采用完整性保护树对DRAM进行保护的结构原理图;
图4为图3中完整性保护树的结构示意图;
图5为本发明的DRAM内存完整性保护方法实施例的流程示意图;
图6为图5所示方法实施例对应的产品架构示意图;
图7为基于图6所示的产品架构向DRAM写入数据的流程示意图;
图8为基于图6所示的产品架构从DRAM读取数据的流程示意图;
图9为本发明的DRAM内存完整性保护装置实施例的结构示意图;
图10为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
一方面,本发明实施例提供一种DRAM内存完整性保护方法,应用于内存控制器,如图5所示,该方法包括:
步骤101:当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文;
具体的加密细节可采用本领域常规技术,此处不再详述。
步骤102:利用预先存储的MAC密钥计算所述密文的MAC(Message AuthenticationCode,消息认证码)值,将所述密文和MAC值保存至所述DRAM内;
本步骤中,在DRAM中划分一块区域(作为保留内存)用于保存MAC值。一组数据长度通常为512位(也即MAC值的长度可以为512位),则仅消耗6%左右的系统内存。
步骤103:当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
步骤104:将所述明文发送给所述CPU;
本步骤中,具体可将明文经CPU总线送至CPU cacheline(缓存行)。
步骤105:从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号,以通知CPU处理。
作为一种可选的实施例,上述步骤102和步骤105中,MAC值的计算,优选采用SM3(国密哈希算法)算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。具体的,MAC值计算方法可以如下:
MAC=SM3(数据,内存地址,MAC密钥)
当在步骤102中向DRAM写入数据时,上式中的数据(即步骤中的相应数据)即是指密文,当在步骤105中从DRAM读取数据时,上式中的数据(即步骤中的相应数据)即是指待读取的数据(非解密后的明文)。根据图2可知,攻击者可以篡改DRAM内的数据(包括读写的数据和存储的MAC值),但由于MAC密钥存储在内存控制器中,攻击者无法获取,故本发明实施例能够检测出数据完整性,从而抵御多种物理攻击。
内存完整性保护需要内存额外的初始化操作,保证内存的正常读写。内存上电时,其内部数据为随机值,当完整性保护启用时,如果不经过初始化,任何的数据读写都会产生完整性保护异常,导致无法正常使用。故作为另一种可选的实施例,优选包括以下初始化步骤,即:
所述当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文(步骤101)之前可以包括:
步骤100:所述DRAM上电前,随机生成所述MAC密钥并保存;
本步骤中,内存控制器可以为DRAM的每个通道的内存分别创建一个MAC密钥,该密钥仅内存控制器保存,其他软件和硬件无法获取。
和/或,步骤100’:所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
作为再一种可选的实施例,为方便用户选择是否启用内存完整性保护功能,所述电子设备内可以设置有用于控制内存完整性保护功能是否使能的标识位,该标识位具体可以为MSR_INTEGRITY,由主板的BIOS(Basic Input Output System,基本输入输出系统)向用户提供用户界面,供用户选择是否打开该功能。此时,所述利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内(步骤102),进一步为:
步骤1021:根据所述标识位判断内存完整性保护功能是否使能;
例如,该标识位为0时,表示不启用/未使能内存完整性保护功能,该标识位为1时,表示启用/使能内存完整性保护功能。
步骤1022:若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内。
本步骤中,若内存完整性保护功能未使能,则可以按照常规流程,不计算MAC值,直接把密文保存至DRAM。
同样的,此时,所述从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号(步骤105),进一步为:
步骤1051:根据所述标识位判断内存完整性保护功能是否使能;
步骤1052:若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
本步骤中,若内存完整性保护功能未使能,则可以按照常规流程,跳过本步骤即可。
可以想到的是,为方便上述步骤101-105中加解密、MAC值计算、MAC值比对工作的执行,可以在内存控制器内相应设置加密/解密引擎、SM3(用于摘要计算)引擎、校验控制装置等实体模块,以对内存数据提供完整性保护。此时内存控制器的架构可以如图6中所示。
基于图6中内存控制器的架构,采用本发明实施例的DRAM内存完整性保护方法后,具体的数据写入流程可以参考图7,其中hpa为数据data待写入的地址,integrity enabled即是指内存完整性保护功能是否使能;具体的数据读取流程可以参考图8,其中integrityerror即是数据不完整时产生的异常信号。图中涉及的具体流程本文前面已有描述,此处不再赘述。
本发明实施例的DRAM内存完整性保护方法,应用于内存控制器,首先当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文,然后利用预先存储的MAC密钥计算密文的MAC值,将密文和MAC值保存至DRAM内,再当电子设备的CPU经过内存控制器从DRAM读取数据时,将待读取的数据进行解密,得到明文,之后将明文发送给CPU,最后从DRAM获取待读取的数据对应的已存储的原始MAC值,并利用MAC密钥计算待读取的数据的新MAC值,比较原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。这样,本发明实施例不需要计算多层的hash值来进行多层校验,延迟小,速度快;并且MAC值存储在DRAM中,占用空间小,不需要占用冗余的eccbit位(由于eccbit有位数限制,通常只能存28位,MAC值需截断后存放,严重降低数据的纠错能力,当内存纠错能力下降后,数据发生错误将无法检测,导致灾难性后果),不会影响纠错能力。本发明实施例能够对内存(即DRAM)提供完整性保护,使得数据免受物理攻击,保证数据的安全性。
另一方面,本发明实施例提供一种DRAM内存完整性保护装置(即内存控制器),如图9所示,该装置包括:
加密模块11,用于当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文;
保存模块12,用于利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
解密模块13,用于当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
发送模块14,用于将所述明文发送给所述CPU;
比较模块15,用于从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
优选的,所述MAC值采用SM3算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。
优选的,所述装置还包括:
生成子模块,用于在所述DRAM上电前,随机生成所述MAC密钥并保存;
和/或,保存子模块,用于在所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
优选的,所述电子设备内设置有用于控制内存完整性保护功能是否使能的标识位;
所述保存模块12,进一步包括:
第一判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
保存子单元,用于若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
所述比较模块15,进一步包括:
第二判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
比较子单元,用于若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
本发明实施例还提供一种电子设备,图10为本发明电子设备一个实施例的结构示意图,可以实现本发明图5所示实施例的流程,如图10所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一方法实施例所述的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图5所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例所述的方法步骤。
本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一方法实施例提供的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种DRAM内存完整性保护方法,应用于内存控制器,其特征在于,所述方法包括:
当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文;
利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
将所述明文发送给所述CPU;
从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
2.根据权利要求1所述的方法,其特征在于,所述MAC值采用SM3算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。
3.根据权利要求1所述的方法,其特征在于,所述当电子设备的CPU经过所述内存控制器向所述DRAM内写入数据时,将待写入的数据进行加密,得到密文之前包括:
所述DRAM上电前,随机生成所述MAC密钥并保存;
和/或,所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
4.根据权利要求1-3中任一所述的方法,其特征在于,所述电子设备内设置有用于控制内存完整性保护功能是否使能的标识位;
所述利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内,进一步为:
根据所述标识位判断内存完整性保护功能是否使能;
若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
所述从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号,进一步为:
根据所述标识位判断内存完整性保护功能是否使能;
若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
5.一种DRAM内存完整性保护装置,其特征在于,包括:
加密模块,用于当电子设备的CPU经过内存控制器向DRAM内写入数据时,将待写入的数据进行加密,得到密文;
保存模块,用于利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
解密模块,用于当电子设备的CPU经过所述内存控制器从所述DRAM读取数据时,将待读取的数据进行解密,得到明文;
发送模块,用于将所述明文发送给所述CPU;
比较模块,用于从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
6.根据权利要求5所述的装置,其特征在于,所述MAC值采用SM3算法根据相应数据、及其对应的内存地址、以及所述MAC密钥计算得到。
7.根据权利要求5所述的装置,其特征在于,还包括:
生成子模块,用于在所述DRAM上电前,随机生成所述MAC密钥并保存;
和/或,保存子模块,用于在所述DRAM上电后,扫描所述DRAM,得到所述DRAM内存储的数据,利用所述MAC密钥计算所述存储的数据的MAC值,将所述存储的数据的MAC值保存至所述DRAM内。
8.根据权利要求5-7中任一所述的装置,其特征在于,所述电子设备内设置有用于控制内存完整性保护功能是否使能的标识位;
所述保存模块,进一步包括:
第一判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
保存子单元,用于若内存完整性保护功能使能,则利用预先存储的MAC密钥计算所述密文的MAC值,将所述密文和MAC值保存至所述DRAM内;
所述比较模块,进一步包括:
第二判断子单元,用于根据所述标识位判断内存完整性保护功能是否使能;
比较子单元,用于若内存完整性保护功能使能,则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值,并利用所述MAC密钥计算所述待读取的数据的新MAC值,比较所述原始MAC值和新MAC值,若相等,则说明数据完整,若不相等,则说明数据被篡改,产生异常信号。
9.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行上述权利要求1-4任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述权利要求1-4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681127.0A CN114564754A (zh) | 2021-12-30 | 2021-12-30 | 一种dram内存完整性保护方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681127.0A CN114564754A (zh) | 2021-12-30 | 2021-12-30 | 一种dram内存完整性保护方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564754A true CN114564754A (zh) | 2022-05-31 |
Family
ID=81711918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111681127.0A Pending CN114564754A (zh) | 2021-12-30 | 2021-12-30 | 一种dram内存完整性保护方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564754A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841998A (zh) * | 2012-07-11 | 2012-12-26 | 哈尔滨工程大学 | 内存附加校验器的内存数据完整性保护方法 |
CN109388975A (zh) * | 2017-08-03 | 2019-02-26 | Arm有限公司 | 针对安全性和可靠性的存储器组织 |
CN110658986A (zh) * | 2018-06-29 | 2020-01-07 | 英特尔公司 | 用于验证跨多个存储器区的存储器完整性的技术 |
CN112651054A (zh) * | 2020-12-30 | 2021-04-13 | 海光信息技术股份有限公司 | 一种内存数据完整性保护方法、装置及电子设备 |
CN113434876A (zh) * | 2021-06-22 | 2021-09-24 | 海光信息技术股份有限公司 | 一种数据加密方法、装置、内存控制器、芯片及电子设备 |
-
2021
- 2021-12-30 CN CN202111681127.0A patent/CN114564754A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841998A (zh) * | 2012-07-11 | 2012-12-26 | 哈尔滨工程大学 | 内存附加校验器的内存数据完整性保护方法 |
CN109388975A (zh) * | 2017-08-03 | 2019-02-26 | Arm有限公司 | 针对安全性和可靠性的存储器组织 |
CN110658986A (zh) * | 2018-06-29 | 2020-01-07 | 英特尔公司 | 用于验证跨多个存储器区的存储器完整性的技术 |
CN112651054A (zh) * | 2020-12-30 | 2021-04-13 | 海光信息技术股份有限公司 | 一种内存数据完整性保护方法、装置及电子设备 |
CN113434876A (zh) * | 2021-06-22 | 2021-09-24 | 海光信息技术股份有限公司 | 一种数据加密方法、装置、内存控制器、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388975B (zh) | 针对安全性和可靠性的存储器组织 | |
US9037875B1 (en) | Key generation techniques | |
US9300470B2 (en) | Semiconductor device and method of writing data to semiconductor device | |
US8560820B2 (en) | Single security model in booting a computing device | |
US9418027B2 (en) | Secure boot information with validation control data specifying a validation technique | |
JP5839659B2 (ja) | 半導体装置 | |
TWI465093B (zh) | 硬體認證技術 | |
CN106529308B (zh) | 一种数据加密方法、装置及移动终端 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US20090187771A1 (en) | Secure data storage with key update to prevent replay attacks | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
KR100702499B1 (ko) | 메시지 무결성 보증 시스템, 방법 및 기록 매체 | |
JP2010527219A (ja) | 物理的に複製不可能な機能を用いて電子機器のセキュリティを電子的に確保する方法およびシステム | |
CN108629206B (zh) | 一种安全加密方法、加密机及终端设备 | |
US20160211977A1 (en) | Information processing device and information processing method | |
US20100194609A1 (en) | Method and Device For Coding Data Words | |
US9129139B2 (en) | Solid state memory and method for protecting digital contents by interrupting copying or accessing and proceeding only upon user verification or authentication | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
CN113127844A (zh) | 一种变量访问方法、装置、系统、设备和介质 | |
CN111667268B (zh) | 基于区块链的交易方法、节点及系统 | |
CN117610083A (zh) | 文件校验方法、装置、电子设备及计算机存储介质 | |
WO2023123824A1 (zh) | 虚拟机内存完整性保护方法、装置、电子设备及存储介质 | |
CN114564754A (zh) | 一种dram内存完整性保护方法、装置、电子设备及存储介质 | |
JP5986279B2 (ja) | 半導体装置 | |
WO2013002239A1 (ja) | 機器固有情報生成装置と機器固有情報生成方法、端末機器および認証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |