CN117331741A - 数据校验方法、处理器及电子设备 - Google Patents

数据校验方法、处理器及电子设备 Download PDF

Info

Publication number
CN117331741A
CN117331741A CN202311309894.8A CN202311309894A CN117331741A CN 117331741 A CN117331741 A CN 117331741A CN 202311309894 A CN202311309894 A CN 202311309894A CN 117331741 A CN117331741 A CN 117331741A
Authority
CN
China
Prior art keywords
data
processor
target
memory
register
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
Application number
CN202311309894.8A
Other languages
English (en)
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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN202311309894.8A priority Critical patent/CN117331741A/zh
Publication of CN117331741A publication Critical patent/CN117331741A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种数据校验方法、处理器及电子设备,专用缓存,用于存储往内存中存储的数据的备份数据;以及处理器核心,具有源寄存器和目的寄存器,被配置为:响应于第一访存指令,将目的寄存器中的数据写入到源寄存器指定的内存地址中,并且将所述数据写入到所述专用缓存中,作为写入内存中的数据的备份数据;响应于第二访存指令,从源寄存器指定的内存地址中读取目标数据,并且从所述专用缓存中获取与所述目标数据对应的备份数据;利用获取的备份数据对所述目标数据进行完整性校验。能够准确检测数据是否被恶意篡改。

Description

数据校验方法、处理器及电子设备
本申请为2020年11月25日提交中国专利局,申请号为202011348311.9,发明名称为“数据校验方法、装置、处理器及电子设备”的中国专利申请的分案申请。
技术领域
本发明实施例涉及处理器技术领域,尤其涉及一种数据校验方法、处理器及电子设备。
背景技术
在信息时代,计算机系统的安全受到广泛关注。计算机系统主要采用冯·诺依曼体系结构。在该结构中,指令和数据被保存在计算机系统的存储器中,计算机系统的处理器从存储器中读取指令,并将数据通过片外总线缓存到计算机系统的内存中,处理器按照指令通过片外总线从内存中读取、写入数据,并执行指令,实现预期的目标。
然而,处理器从内存中读取数据的过程中,内存和片外总线容易遭到攻击。常见的攻击例如包括:主动攻击(攻击者恶意篡改内存中的数据)、欺骗攻击(攻击者使用伪造的数据替换内存的数据)、重定位攻击(攻击者用内存B的数据替换内存A的数据)、重放攻击(攻击者将内存中某一个物理地址的数据记录下来,当处理器对该物理地址的数据进行重写时,攻击者用先前记录的数据替换当前的数据)。由于内存和片外总线容易受到攻击,导致数据被恶意篡改。现有技术中缺乏一种检测数据是否被恶意篡改的方法。
发明内容
本发明实施例提供一种数据校验方法、处理器及电子设备,以检测从内存中读取的数据是否被恶意篡改。
第一方面,本发明实施例提供一种处理器,包括:专用缓存,专门用于备份往内存中存储的数据;以及处理器核心,具有源寄存器和目的寄存器,被配置为:响应于第一访存指令,将目的寄存器中的数据写入到源寄存器指定的内存地址中,并且将所述数据写入到所述专用缓存中,作为写入内存中的数据的备份数据;响应于第二访存指令,从源寄存器指定的内存地址中读取目标数据,并且从所述专用缓存中获取与所述目标数据对应的备份数据;利用获取的备份数据对所述目标数据进行完整性校验。
第二方面,本发明实施例还提供一种电子设备,所述电子设备包括上述处理器。
本发明实施例提供的处理器及电子设备,能够准确检测数据是否被恶意篡改。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是基于冯·诺依曼体系结构的计算机系统的结构示意图;
图2是本发明实施例提供的一种数据校验方法的流程示意图;
图3是本发明实施例提供的另一种数据校验方法的流程示意图;
图4是本发明实施例提供的又一种数据校验方法的流程示意图;
图5是本发明实施例提供的再一种数据校验方法的流程示意图;
图6是本发明实施例提供的一种处理器的专用缓存的结构示意图;
图7是本发明实施例提供的一种处理器的结构示意图;
图8是本发明实施例提供的再一种数据校验方法的流程示意图;
图9是本发明实施例提供的一种数据校验装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是基于冯·诺依曼体系结构的计算机系统的结构示意图,如图1所示,该计算机系统包括处理器11、内存12、片外总线13和存储器14,处理器11和内存12、存储器14均通过片外总线13连接。计算机程序的指令和数据保存在存储器14中,当处理器11需要执行计算程序时,处理器11从存储器14中读取计算机程序。在程序执行过程中,处理器11按照计算机程序的指令通过片外总线13与内存12交互,进行数据的读取和写入。
示例性的,当处理器11执行写入指令时,处理器11向内存12发送写入指令,内存12根据写入指令中的物理地址X将数据A写入到内存12中对应的物理地址X中。当处理器11执行读取指令时,处理器11向内存12发送读取指令,内存12根据读取指令从内存12的物理地址X中读取数据A。
如上述内容所说,处理器是通过指令从内存中读取和写入数据的,以精简指令集为例,读取数据和写入数据的指令结构如表1所示:
表1
操作码 源操作数 目标操作数
其中,操作码用来指示指令的类型。示例性的,以读指令为例,操作码用来指示该指令为读指令,若源操作数指向rt寄存器,目标操作数指向rs寄存器,则该读指令的含义为将rs寄存器中的值作为物理地址,将内存中的该物理地址中的数据,读入到rt寄存器中。
然而,处理器11从内存12中读取数据的过程中,内存12和片外总线13容易遭到攻击。常见的攻击例如包括:主动攻击(攻击者恶意篡改内存中的数据)、欺骗攻击(攻击者使用伪造的数据替换内存的数据)、重定位攻击(攻击者用内存B的数据替换内存A的数据)、重放攻击(攻击者将内存中某一个物理地址的数据记录下来,当处理器对该物理地址的数据进行重写时,攻击者用先前记录的数据替换当前的数据)。示例性的,这些攻击使得内存12中物理地址X中的数据A被篡改为数据B。此时处理器11向内存12发送读取指令,要求读取内存12中物理地址X的数据时,就会读到错误的数据B,导致数据安全受到威胁。
为了解决上述技术问题,本发明对处理器现有的读取流程进行了修改,通过在处理器中设置一个专门用于备份往内存中存储的数据的专用缓存,从而使处理器在从内存读取数据时,能够基于专用缓存中的备份数据,对从内存所读取的数据进行完整性校验,以甄别所读取的数据是否被恶意篡改。也就是说,本发明所涉及的处理器包括一个专用缓存,该专用缓存用于存储往内存中存储的数据的备份数据,其可以为位于处理器中的特定区域。
本发明所提供的数据校验方法的执行主体可以为数据校验装置,该数据校验装置可以为程序代码软件,也可以为存储有相关执行代码的介质,例如,U盘等;或者,该数据校验装置还可以为集成或安装有相关执行代码的实体装置,该实体装置可以设置在处理器中,或者,可以为处理器。
下面结合图1所示的计算机结构,以集成或安装有相关执行代码的处理器为例,以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2是本发明实施例提供的一种数据校验方法的流程示意图。如图2所示,本发明该方法可以包括:
S101、向内存发送第一指令。
其中,第一指令用于从内存的目标物理地址中读取目标数据。目标数据为第一指令要读取的数据,目标物理地址为目标数据存储在内存中的地址。例如,第一指令可以为如表1所示的指令。
示例性的,第一指令用于从内存的目标物理地址Y中读取目标数据A。
S102、接收内存发送的目标数据。
示例性的,内存根据第一指令中的目标物理地址Y找到目标数据A,并将目标数据A发送给处理器,处理器接收由内存发送的目标数据A。
S103、根据目标物理地址,从专用缓存中获取上一次写入目标物理地址的数据的备份数据。
本发明实施例中,专用缓存中预先缓存了上一次写入目标物理地址的数据的备份数据,该备份数据在专用缓存中的地址与目标物理地址可以存在映射关系,使处理器可以根据目标物理地址找到目标数据在专用缓存的地址,进而获取该备份数据。
示例性的,根据目标物理地址Y,从专用缓存中获取上一次写入目标物理地址的数据的备份数据B。
在上述步骤中,可以先执行步骤S101~S102,再执行步骤S103,也可以先执行步骤S103,再执行步骤S101~S102,也可以在执行S101~S102的同时,执行步骤S103。
S104、判断目标数据,与备份数据是否相同,若否,则执行步骤S105;若是,则执行步骤S106。
若从内存读取的目标数据A,与该备份数据B不同,说明从内存读取的目标数据A已经被篡改,此时执行步骤S105。若从内存读取的目标数据A,与该备份数据B相同,说明从内存读取的目标数据A没有被篡改,此时执行步骤S106。
S105、确定目标数据的完整性检验失败。
处理器确定从内存读取的目标数据被恶意篡改,此时可以认定为完整性校验失败,可以按照完整性校验不通过的例外进行下一步处理。例如,当上述第一指令属于某程序的某一指令时,例如可以终止当前程序的进程。
S106、确定目标数据的完整性检验通过。
处理器确定从内存读取的目标数据没有被恶意篡改,可以继续执行第一指令,例如将目标数据写入到对应的寄存器中。
本发明实施例中,处理器将上一次写入目标物理地址的数据的备份数据预先缓存到处理器的专用缓存中,当处理器向内存发送第一指令并接收内存发送的目标数据时,通过将从内存中获取的目标数据,和从专用缓存中获取的该备份数据进行对比,当不一致时,说明从内存读取的目标数据B已经被篡改,数据安全受到威胁。本发明实施例提供的数据校验方法,能够准确检测数据是否被恶意篡改。
图3是本发明实施例提供的另一种数据校验方法的流程示意图。本实施例着重介绍上一次写入目标物理地址的数据的备份数据如何预先保存在专用缓存中。在图2的基础上,如图3所示,在步骤S101之前,本发明该方法还可以包括:
S201、向内存发送第二指令;第二指令用于将目标数据写入到内存的目标物理地址中。
示例性的,处理器将第二指令发送给内存,内存根据第二指令中的目标物理地址Y和目标数据B,将目标数据B写入到目标物理地址Y中。
向内存发送的第二指令,该步骤可以是在程序初始化阶段向内存发送的第二指令,也可以是在程序运行阶段向内存发送的第二指令。
S202、将目标数据的备份数据写入到专用缓存中。
在上述步骤中,可以先执行步骤S201,再执行步骤S202,也可以先执行步骤S202,再执行步骤S201,也可以同时执行步骤S201和步骤S202。
应理解,在步骤S101之前,可以执行至少一次第二指令。当第二指令被执行两次及两次以上时,处理器在内存的目标物理地址Y中写入的目标数据可以不同,且每次写入将覆盖上一次的目标数据,专用缓存中目标数据的备份数据也会同步覆盖。
本实施例在步骤S101之前,在程序初始化阶段和/或程序运行阶段执行第二指令,在将目标数据写入内存的同时,将目标数据的备份数据同时写入到专用缓存中,以便于在执行例如上述第一指令的读操作时,处理器将从内存读取的目标数据和上一次写入目标物理地址的数据的备份数据进行对比,准确检测数据是否被恶意篡改。
本发明实施例还提供一种数据校验方法,当目标数据为关键数据时,对该关键数据进行数据校验,当目标数据为非关键数据时,对非关键数据采用现有读取的方式进行处理,不进行数据校验。图4和图5将着重介绍如何实现关键数据的数据校验。
图4是本发明实施例提供的又一种数据校验方法的流程示意图。如图4所示,在图2的基础上,在步骤S103之前,本发明该方法还可以包括:
S301、判断目标数据是否为关键数据,若是,则执行上述步骤S101;若否,则按照现有的读取指令继续执行。即:不校验非关键数据,例如将非关键数据写入到对应的寄存器中。
关键数据可以是程序运行过程中的重要数据,例如敏感数据、账户密码、密钥等。
判断目标数据是否为关键数据的方法,一种可能的实现方式,根据第一指令的类型,确定目标数据为关键数据。
其中,第一指令的类型,与源程序中目标数据的声明的标识对应,声明的标识用于表征目标数据是否为关键数据。示例性的,例如变量key为关键数据,变量temp为非关键数据,在源程序中可以定义新的变量声明来指示该变量为关键数据。例如:通过如下方式声明来表示key为关键数据、temp为非关键数据:
Security double key;
Double temp;
其中,Security double为关键数据的变量声明,Double为非关键数据的变量声明。
示例性的,以精简指令集为例进行说明,第一指令的类型通过操作码来标识,本发明可以在现有操作码的基础上扩展操作码。扩展的操作码用来指示所读取的目标数据是关键数据(扩展的操作码还可以指示所写入的目标数据是关键数据),该扩展的操作码可以隐式的指示读取该目标数据时执行上述的数据校验方法。可选地,扩展的操作码还可以指示该第一指令所需读取的数据的字节数。示例性的,扩展的操作码例如可以如表2所示。
表2
扩展的操作码 含义
K1 读取1个字节关键数据
K2 读取2个字节关键数据
K3 读取4个字节关键数据
K4 读取8个字节关键数据
K5 写入1个字节关键数据
K6 写入2个字节关键数据
K7 写入4个字节关键数据
K8 写入8个字节关键数据
判断目标数据是否为关键数据的方法,另一种可能的实现方式,根据第一指令变长位,确定目标数据为关键数据。
示例性的,以精简指令集为例进行说明,例如可以设置操作码为1111时,指令结构还包括变长位,如表3所示:
表3
操作码 源操作数 目标操作数 变长位
在本示例中,可以通过变长位来标记目标数据是否为关键数据,可选地,该变长位还可以指示该第一指令所需读取的数据的字节数。例如,可以通过为该变长位设定不同的取值,来标记该第一指令所读取的目标数据是否为关键数据,以及指示第一指令所需读取的数据的字节数,类似于表2所示的扩展的操作码,以及,各扩展的操作码所对应的含义,此处不再赘述。
判断目标数据是否为关键数据的方法,再一种可能的实现方式,根据目标物理地址,确定目标数据为关键数据。示例性的,可以将存储在特定物理地址范围内的数据确定为关键数据。
本领域技术人员可以理解,源程序进行编译后,源程序中对于包括变量key的指令,基于该变量声明Security double,编译得到的处理器的指令为处理关键数据的第一指令。源程序中对于包括变量temp的指令,编译得到的处理器的指令为处理非关键数据的指令,非关键数据例如非敏感数据、非账户密码、非密钥等。
本领域技术人员可以理解,上述实施例是以精简指令集为例进行说明的,对于采用其他指令集的处理器,同样可以采用本发明的方式,本实施例不再赘述。
本实施例通过在向内存发送第一指令之前,判断目标数据是否为关键数据,当目标数据为关键数据时,对关键数据进行数据校验,以校验关键数据是否被篡改;当目标数据为非关键数据时,采用现有读取的方式进行处理,不进行数据校验。本实施例该方法可以只对关键数据执行数据校验,处理器的性能损失和功耗开销小。
对应图4的方法,图5是本发明实施例提供的再一种数据校验方法的流程示意图。如图5所示,在图3的基础上,在步骤S201之前,本发明该方法还可以包括:
S401、判断目标数据是否为关键数据,若是,则执行上述步骤S201;若否,则按照标准的写入指令继续执行。即:不校验非关键数据,直接将目标数据写入到内存的目标物理地址中。
确定目标数据为关键数据,一种可能的实现方式,根据第二指令的类型,确定目标数据为关键数据。另一种可能的实现方式,根据第二指令的变长位,确定目标数据为关键数据。再一种可能的实现方式,根据目标物理地址,确定目标数据为关键数据。
第二指令的类型,与源程序中目标数据的声明的标识对应,声明的标识用于表征目标数据是否为关键数据。
本实施例具体可以参照图4所示的实施例,此处不再赘述。
本实施例通过在向内存发送第二指令之前,判断目标数据是否为关键数据,当目标数据为关键数据时,缓存关键数据以便于下次进行数据校验,以校验关键数据是否被篡改;当目标数据为非关键数据时,采用现有写入的方式进行处理,不缓存非关键数据。本实施例该方法可以只对关键数据执行数据校验,处理器的性能损失和功耗开销小。
在上述实施例中,专用缓存包括多个数据块,示例性的,图6是本发明实施例提供的一种处理器的专用缓存的结构示意图。如图6所示,专用缓存包括Q组,每组包括R个数据块,每个数据块还对应标记和状态位,Q为大于或等于1的整数,R为大于或等于1的整数。其中,当标记不为空时,标记用于指示物理地址和数据块的映射关系,该映射关系用于表征该数据块中缓存了与内存中该物理地址对应的数据。当不存在标记时,说明该数据块未与任何物理地址映射。状态位用于指示该数据块是否已经保存了数据。
在图6的基础上,本实施例着重介绍如何从专用缓存中写入目标数据。
该方法具体可以包括:
根据目标物理地址,判断多个数据块中是否存在目标物理地址对应的第一数据块,第一数据块的标记包括:目标物理地址和第一数据块的地址的映射关系;
若多个数据块中包括第一数据块,则将备份数据写入到第一数据块中,并将第一数据块对应的状态位置位;
若多个数据块中不包括第一数据块,则将备份数据写入到第二数据块中,并在第二数据块的标记中增加目标物理地址和第二数据块的地址的映射关系,以及,将第二数据块对应的状态位置位,第二数据块为多个数据块中未对应任何物理地址的数据块。
由于状态位用来指示该数据块是否已经保存了数据,通过检查状态位可以快速识别数据块中是否包括目标数据的备份数据。
示例性的,可以根据标记中物理地址和数据块地址的映射关系,当存在某一标记内的物理地址与目标物理地址相同时,说明包括第一数据块,此时将目标数据的备份数据写入到第一数据块中,并将第一数据块对应的状态位置位。当不存在某一标记内的物理地址与目标物理地址相同时,说明不存在第一数据块,此时可以在该组数据块中查找状态位为0的数据块(例如按照从第一块到最后一块的顺序查找)。当查到状态位为0的数据块时,在标记中增加目标物理地址和该数据块地址的映射关系,将目标数据的备份数据写入到该数据块中,并将目标数据块对应的状态位置位。此时,该数据块即为第二数据块。如果没有查到状态位为0的数据块,可以不做处理直接返回,即不在专用缓存中保存目标数据的备份数据,也可以用该备份数据覆盖其他缓存的数据块,例如,可以用该备份数据覆盖缓存时长大于预设时长的数据块。
在图6的基础上,本实施例着重介绍如何从专用缓存中读取目标数据。
该方法具体可以包括:
根据目标物理地址确定第一数据块,例如可以根据标记中物理地址和数据块地址的映射关系,获取第一数据块。
获取第一数据块对应的状态位。判断第一数据块的状态位是否置位,若是,说明专用缓存中包括目标数据的备份数据,则从第一数据块中获取目标数据的备份数据。可选地,若否,说明专用缓存中不包括目标数据的备份数据,此时可以继续执行第一指令,例如将目标数据写入到对应的寄存器中。或者,可以按照完整性校验不通过的例外进行下一步处理。
在图6所示的专用缓存的结构中,还可以包括状态位寄存器和数据寄存器。在根据目标物理地址获取目标数据块(第一数据块)之后,具体可以将目标数据块中的状态位写入到状态位寄存器中,将目标数据的备份数据写入到数据寄存器中。在获取目标数据块的状态位时,处理器可以从状态位寄存器中获取目标数据块的状态位,处理器具体可以从数据寄存器中获取上一次写入目标物理地址的数据的备份数据。
本实施例在采用图6所示的专用缓存时,可以配合上述方法,在执行写入指令(第二指令)时,将目标数据的备份数据保存在专用缓存中。在执行读取指令(第一指令)时,将从内存读取的数据与专用缓存中的备份数据进行对比,进而实现数据是否被恶意篡改的校验。
为了更好的理解本发明的技术方案,下面通过一个示例对本发明提供的方法进行说明:
在下述示例中,专用缓存如图6所示包括Q组,每组包括R个数据块,每个数据块还对应标记和状态位,还包括状态位寄存器和数据寄存器。图7是本发明实施例提供的一种处理器的结构示意图,如图7所示,该处理器可以包括处理器核心111、数据校验模块112和访存模块113,数据校验模块112中包括专用缓存。
首先,在源程序中,为了区分关键数据和非关键数据,例如可以通过定义新的变量声明“Security double”来定义一个两字节的关键数据,非关键数据采用现有的变量声明,例如:
Security double key;
Double temp;
Key为关键数据,temp为非关键数据。
源程序在经过编译器编译后,对非关键数据temp的读取和写入,采用访存指令load/store来处理变量temp。该方法采用现有的方式执行读取和写入即可,不需要对非关键数据temp进行校验,temp也无需保存到缓存中,此处不再赘述。
对于关键数据key的读取和写入,采用新增的访存指令(例如SLoad/SStore)来处理变量key,通过新增的访存指令,可以在执行写入指令时将数据备份在专用缓存中,并在执行读取指令时将读取的数据和专用缓存中的数据对比,以校验数据是否被恶意篡改。其中SLoad指令即为上述第一指令,SStore指令即为上述第二指令。由于key为两字节,示例性的,SLoad的操作码可以为表2中的K2,SStore的操作码可以为表2中的K6。下面着重介绍对关键数据key的SLoad和SStore。图8是本发明实施例提供的再一种数据校验方法的流程示意图,如图8所示:
在程序初始化阶段,或者程序运行阶段,处理器需要将关键数据key写入到内存中,流程如下:
①处理器核心111向数据校验模块112发送指令:SStore rt,rs。(本领域技术人员可以理解,在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的物理地址),rt寄存器中的物理地址为P,rs寄存器中数据为key。
该指令指示将rs寄存器中的数据key写入到内存中的物理地址P中,且操作码类型为K6。
②数据校验模块112根据该指令的操作码(K6),确定该指令是对关键数据的写入操作。此时,将rs寄存器中的数据key的备份数据写入到专用缓存的数据块中。
③数据校验模块112向访存模块113发送指令:SStore rt,rs。
④访存模块113通过外部总线将rs寄存器中的数据key写入到内存中的物理地址P中。
在另一个程序运行阶段,处理器需要将从内存中读取关键数据key,流程如下:
⑤处理器核心111向数据校验模块112发送指令:SLoad rt,rs,rs寄存器中物理地址为P,rt寄存器用于存放从内存中读取的数据key。
⑥数据校验模块112根据该指令的操作码K2(参阅表2所示),确定该指令是对关键数据的读取操作。此时,根据物理地址P从专用缓存中找到存放数据key的备份数据的数据块,并将该备份数据的状态位写入到状态位寄存器,将该备份数据写入到数据寄存器中。
⑦数据校验模块112向访存模块113发送指令:SLoad rt,rs。
⑧访存模块113通过外部总线从内存中读取物理地址P中的数据key,并向数据校验模块112发送从内存中读到的数据key。
⑨数据校验模块112判断从内存中读到的数据key和数据key的备份数据是否相等。若是,说明校验成功,此时数据校验模块112向处理器核心111发送从内存中读到的数据key,以便于处理器核心111将从内存中读到的数据key存放rt到寄存器中。若否,则说明校验失败,此时数据校验模块112向处理器核心111发送完整性校验不通过的例外。
处理器核心111根据该完整性校验不通过的例外,基于预先设计的规则,例如终止当前程序的进程。
可选地,在步骤⑨之前,数据校验模块112可以首先判断状态位寄存器是否置位,若否,则直接向处理器核心111发送从内存中读到的数据key,以便于处理器核心111将从内存中读到的数据key存放rt到寄存器中。若是,则继续执行性步骤⑨。
本发明实施例通过上述方法,一方面能够准确检测关键数据是否被恶意篡改;另一方面仅对关键数据进行数据校验,处理器的性能损失和功耗开销小。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图9是本发明实施例提供的一种数据校验装置的结构示意图,该装置应用于处理器,如图9所示,该装置包括:发送模块21、接收模块22、处理模块23。其中,
发送模块21,用于向内存发送第一指令;第一指令用于从内存的目标物理地址中读取目标数据;
接收模块22,用于接收内存发送的目标数据;
处理模块23,用于根据目标物理地址,从专用缓存中获取上一次写入目标物理地址的数据的备份数据;当目标数据与备份数据不同时,确定目标数据的完整性检验失败。
可选地,在一些实施例中,处理模块23,还用于在根据目标物理地址,从专用缓存中获取上一次写入目标物理地址的数据的备份数据之后,当目标数据与备份数据相同时,确定目标数据的完整性检验通过。
可选地,在一些实施例中,处理模块23,还用于在根据目标物理地址从专用缓存中获取上一次写入目标物理地址的数据的备份数据之前,确定目标数据为关键数据。
可选地,在一些实施例中,处理模块23,具体用于根据第一指令的类型,确定目标数据为关键数据。
可选地,在一些实施例中,第一指令的类型,与源程序中目标数据的声明的标识对应,声明的标识用于表征目标数据是否为关键数据。
可选地,在一些实施例中,发送模块21,还用于在向内存发送第一指令之前,向内存发送第二指令;第二指令用于将目标数据写入到内存的目标物理地址中;
处理模块23,还用于将目标数据的备份数据写入到专用缓存中。
可选地,在一些实施例中,处理模块23,还用于在将目标数据的备份数据写入到专用缓存中之前,确定目标数据为关键数据。
可选地,在一些实施例中,处理模块23,具体用于根据第二指令的类型,确定目标数据为关键数据。
可选地,在一些实施例中,第二指令的类型,与源程序中目标数据的声明的标识对应,声明的标识用于表征目标数据是否为关键数据。
可选地,在一些实施例中,专用缓存包括多个数据块;
处理模块23,具体用于根据目标物理地址,判断多个数据块中是否存在目标物理地址对应的第一数据块;当多个数据块中包括第一数据块时,将备份数据写入到第一数据块中,并将第一数据块对应的状态位置位;当多个数据块中不包括第一数据块时,将备份数据写入到第二数据块中,并在第二数据块的标记中增加目标物理地址和第二数据块的地址的映射关系,以及,将第二数据块对应的状态位置位;
其中,第二数据块为多个数据块中未对应任何物理地址的数据块;第一数据块的标记包括:目标物理地址和第一数据块的地址的映射关系。
可选地,在一些实施例中,处理模块23,具体用于根据目标物理地址确定第一数据块;获取第一数据块对应的状态位;当第一数据块的状态位置位时,从第一数据块中获取备份数据。
本发明图9所示的实施例提供的数据校验装置,可以执行上述方法实施例中处理器的动作。例如,该数据校验装置可以是处理器本身,也可以是设置在处理器中的数据校验装置。
本发明实施例还提供一种处理器,该处理器可以用于执行上述提供的任一项数据校验方法。
本发明实施例还提供一种电子设备,电子设备包括上述处理器。该电子设备例如可以是终端设备、服务器等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种处理器,其特征在于,包括:
专用缓存,专门用于备份往内存中存储的数据;以及
处理器核心,具有源寄存器和目的寄存器,并且被配置为:
响应于第一访存指令,将目的寄存器中的数据写入到由源寄存器指定的内存地址中,并且将所述数据写入到所述专用缓存中,作为写入内存中的数据的备份数据;
响应于第二访存指令,从源寄存器指定的内存地址中读取目标数据,并且从所述专用缓存中获取与所述目标数据对应的备份数据;以及
利用获取的备份数据对所述目标数据进行完整性校验。
2.根据权利要求1所述的处理器,其特征在于,所述处理器还包括数据校验模块,所述数据校验模块包括所述专用缓存;
所述处理器核心被配置为,在所述数据校验模块确定所述目标数据与获取的备份数据相同时,将所述目标数据载入目的寄存器中。
3.根据权利要求1所述的处理器,其特征在于,所述专用缓存包括多个数据块,以及与所述数据块对应的状态位寄存器,所述处理器配置为:
将所述备份数据写入与内存地址对应的专用缓存数据块中,并将对应的状态位寄存器置位。
4.根据权利要求3所述的处理器,其特征在于,所述处理器配置为在判断所述目标数据对应的专用缓存数据块的状态位寄存器未被置位时,将所述目标数据载入目的寄存器中。
5.一种电子设备,其特征在于,包括权利要求1-4中任一项所述的处理器。
6.一种数据校验方法,在处理器上执行,所述处理器包括:专用缓存,用于存储往内存中存储的数据的备份数据,以及处理器核心,具有源寄存器和目的寄存器,所述方法包括:
响应于第一访存指令,将目的寄存器中的数据写入到源寄存器指定的内存地址中,并且将所述数据写入到所述专用缓存中,作为写入内存中的数据的备份数据;
响应于第二访存指令,从源寄存器指定的内存地址中读取目标数据,并且从所述专用缓存中获取与所述目标数据对应的备份数据;以及
利用获取的备份数据对所述目标数据进行完整性校验。
7.根据权利要求6所述的方法,其特征在于,所述处理器还包括数据校验模块,所述数据校验模块包括所述专用缓存;
所述方法包括:在所述数据校验模块确定所述目标数据与获取的备份数据相同时,将所述目标数据载入目的寄存器中。
8.根据权利要求7所述的方法,其特征在于,所述专用缓存包括多个数据块,以及与所述数据块对应的状态位寄存器,所述方法还包括:
将所述备份数据写入与内存地址对应的专用缓存数据块中,并将相对应的状态位寄存器置位。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括,在判断所述目标数据对应的专用缓存数据块的状态位寄存器未被置位时,将所述目标数据载入目的寄存器中。
CN202311309894.8A 2020-11-25 2020-11-25 数据校验方法、处理器及电子设备 Pending CN117331741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311309894.8A CN117331741A (zh) 2020-11-25 2020-11-25 数据校验方法、处理器及电子设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011348311.9A CN112486723B (zh) 2020-11-25 2020-11-25 数据校验方法、装置、处理器及电子设备
CN202311309894.8A CN117331741A (zh) 2020-11-25 2020-11-25 数据校验方法、处理器及电子设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202011348311.9A Division CN112486723B (zh) 2020-11-25 2020-11-25 数据校验方法、装置、处理器及电子设备

Publications (1)

Publication Number Publication Date
CN117331741A true CN117331741A (zh) 2024-01-02

Family

ID=74935487

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011348311.9A Active CN112486723B (zh) 2020-11-25 2020-11-25 数据校验方法、装置、处理器及电子设备
CN202311309894.8A Pending CN117331741A (zh) 2020-11-25 2020-11-25 数据校验方法、处理器及电子设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011348311.9A Active CN112486723B (zh) 2020-11-25 2020-11-25 数据校验方法、装置、处理器及电子设备

Country Status (1)

Country Link
CN (2) CN112486723B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114005293B (zh) * 2021-12-30 2022-04-26 浙江国利网安科技有限公司 一种交通信号机的冲突表篡改监测方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3751116B2 (ja) * 1997-06-02 2006-03-01 松下電器産業株式会社 取り替え可能なディスクを使用するディスク型記録再生装置、及び記録再生方法
KR100698141B1 (ko) * 2005-10-26 2007-03-22 엘지전자 주식회사 무선 주파수 교정 데이터 복구 기능을 갖는 이동통신단말기 및 교정 데이터 백업 및 복원 방법
CN101739311A (zh) * 2009-12-15 2010-06-16 上海爱数软件有限公司 一种安全备份内存数据的方法及装置
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法
CN103279423B (zh) * 2013-05-15 2016-11-23 华为技术有限公司 一种内容寻址存储器的寻址方法及设备
CN105183379B (zh) * 2015-09-01 2018-10-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法

Also Published As

Publication number Publication date
CN112486723B (zh) 2023-11-07
CN112486723A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
US20170293754A1 (en) Sensitive data tracking using dynamic taint analysis
TWI352289B (en) Apparatus of providing extended memory protection
CN103150506B (zh) 一种恶意程序检测的方法和装置
CN109784062B (zh) 漏洞检测方法及装置
US7934076B2 (en) System and method for limiting exposure of hardware failure information for a secured execution environment
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
TWI790350B (zh) 記憶體存取中的守衛標籤檢查的控制
US20070056039A1 (en) Memory filters to aid system remediation
WO2020180565A1 (en) Device, processor, and method for splitting instructions and register renaming
CN112486723B (zh) 数据校验方法、装置、处理器及电子设备
US20050283770A1 (en) Detecting memory address bounds violations
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
US8667325B2 (en) Method, apparatus and system for providing memory sparing information
US20070156978A1 (en) Steering system management code region accesses
US9639477B2 (en) Memory corruption prevention system
EP3746900A1 (en) Controlling guard tag checking in memory accesses
CN109154963B (zh) 一种防止内存数据泄露的设备及方法
CN114116002A (zh) 一种存储重命名的实现方法、处理器及计算机设备
CN112256465A (zh) 一种内存条错误的修复方法及装置
CN114981811A (zh) 用于软件安全的装置和方法
CN111274573B (zh) 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法
CN105938456B (zh) 存储器管理
US20230078985A1 (en) Checker and checking method for prossor circuit
JP6827244B1 (ja) 監査装置、監査方法、監査プログラムおよび監査システム
CN116097229A (zh) 屏蔽存储器访问的高效处理

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