CN110348204A - 一种代码保护系统、认证方法、装置、芯片及电子设备 - Google Patents

一种代码保护系统、认证方法、装置、芯片及电子设备 Download PDF

Info

Publication number
CN110348204A
CN110348204A CN201910522236.4A CN201910522236A CN110348204A CN 110348204 A CN110348204 A CN 110348204A CN 201910522236 A CN201910522236 A CN 201910522236A CN 110348204 A CN110348204 A CN 110348204A
Authority
CN
China
Prior art keywords
memory
code
protection zone
secure
software
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.)
Granted
Application number
CN201910522236.4A
Other languages
English (en)
Other versions
CN110348204B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201910522236.4A priority Critical patent/CN110348204B/zh
Publication of CN110348204A publication Critical patent/CN110348204A/zh
Application granted granted Critical
Publication of CN110348204B publication Critical patent/CN110348204B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种代码保护系统、认证方法、装置、芯片及电子设备,该系统可以包括:在虚拟地址空间创建的内存保护区域,用于运行软件的安全代码和存取软件的安全数据;物理内存,包括安全内存和普通内存,安全内存和普通内存间通过限制页表指向关系,保护安全内存;安全内存由安全处理器配置,普通内存由操作系统配置;内存保护区域包括安全内存保护区域和普通内存保护区域,安全内存保护区域用于运行安全代码和存取安全数据,普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;安全内存保护区域使用安全内存存储安全代码和安全数据,普通内存保护区域使用普通内存存储数据。本申请可以提高软件代码保护的可靠性。

Description

一种代码保护系统、认证方法、装置、芯片及电子设备
技术领域
本发明实施例涉及代码保护技术领域,具体涉及一种代码保护系统、认证方法、装置、芯片及电子设备。
背景技术
代码是使用开发工具所支持的语言编写的文件,是一组由字符、符号或信号码元以离散形式表示信息的明确规则体系;代码是构建软件的基本要素,计算机通过代码构建的软件可以实现不同的功能,为减少代码的安全缺陷、保障软件功能的正常运行,软件代码保护至关重要。
软件代码保护是指对软件的代码提供安全保护,目前如何改进软件代码保护方案,以提高软件代码保护的可靠性,一直是本领域技术人员研究的问题。
发明内容
有鉴于此,本发明实施例提供一种代码保护系统、认证方法、装置、芯片及电子设备,以提高软件代码保护的可靠性。
为实现上述目的,本发明实施例提供如下技术方案:
一种代码保护系统,包括:
在虚拟地址空间创建的内存保护区域,所述内存保护区域运行软件的安全代码和存取软件的安全数据;
物理内存,所述物理内存包括安全内存和普通内存,所述安全内存和普通内存之间通过限制页表指向关系,保护安全内存;所述安全内存由安全处理器配置,所述普通内存由操作系统配置;
其中,所述内存保护区域包括安全内存保护区域和普通内存保护区域,所述安全内存保护区域用于运行所述安全代码和存取所述安全数据,所述普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;所述安全内存保护区域使用所述安全内存存储所述安全代码和安全数据,所述普通内存保护区域使用所述普通内存存储数据。
可选的,所述页表指向关系包括如下至少一项:
普通内存页面的页表禁止指向安全内存页面;
安全内存页面的页目录允许指向普通内存页面;
安全内存页面的页目录允许指向安全内存页面;
安全内存页面的页表允许指向安全内存页面或普通内存页面。
可选的,不同的内存保护区域对应的安全内存使用不同的密钥进行加密。
可选的,所述安全内存还存储内存保护区域的安全代码控制信息结构,所述安全代码控制信息结构用于描述内存保护区域的整体配置信息。
可选的,所述内存保护区域运行的安全代码包括系统代码和用户代码;其中,所述系统代码作为独立模块并具有独立的数字签名,或者,所述系统代码与所述用户代码具体统一的数字签名。
可选的,所述系统代码提供有系统调用,以在内存保护区域运行时,动态随机改变内存保护区域的虚拟地址和物理地址之间的映射关系;和/或,所述系统代码提供有系统调用,以在内存保护区域运行时,动态切换用户代码对应的页表,使得用户代码在多个安全内存区域之间切换,其中,所述系统代码预先为用户代码定制有多份页表。
可选的,所述普通内存包括普通内存共享区域,所述普通内存共享区域由所述安全代码和操作系统或所述普通代码共同访问,以在所述安全代码和操作系统或普通代码间共享数据。
可选的,所述内存保护区域为基于软件的可信任执行环境。
本发明实施例还提供一种认证方法,基于上述所述的代码保护系统,所述认证方法包括:
获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;
使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;
至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。
可选的,所述方法还包括:
安全处理器启动内存保护区域时,根据CPU根密钥和内存保护区域的原始身份信息,生成内存保护区域的身份密钥;
安全处理器使用安全处理器的签名密钥,对内存保护区域的身份密钥对应的公钥进行签名,生成内存保护区域的身份证书。
可选的,所述内存保护区域的原始身份信息包括内存保护区域的初始信息,以及开发者公钥信息的数字摘要;所述内存保护区域的初始信息包括内存保护区域运行的安全代码,初始数据,以及内存保护区域的安全代码控制信息结构中的信息。
可选的,所述内存保护区域运行的代码包括系统代码和用户代码;所述内存保护区域的身份密钥作为根密钥限定为被系统代码访问;所述用户代码通过中断方法或者系统代码提供的系统调用访问系统代码,以调用内存保护区域的根密钥。
可选的,安全处理器的签名密钥证书由芯片厂商的芯片签名密钥对安全处理器的签名密钥对应的公钥进行签名产生。
本发明实施例还提供一种认证装置,基于上述所述的代码保护系统,所述认证装置包括:
请求获取模块,用于获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;
签名模块,用于使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;
证书链发送模块,用于至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。
本发明实施例还提供一种芯片,包括上述所述的代码保护系统。
本发明实施例还提供一种电子设备,包括上述所述的芯片。
本发明实施例所提供的代码保护系统中,内存保护区域需要同时使用物理内存中的普通内存和安全内存,且普通内存由操作系统配置,安全内存由安全处理器配置,普通内存页面和安全内存页面之间通过限制页表指向关系,保护安全内存;内存保护区域可进一步包括运行软件的安全代码和存取软件的安全数据的安全内存保护区域,和用于在所述安全代码和运行于普通内存的普通代码间共享数据的普通内存保护区域,其中,安全内存保护区域使用物理内存中的安全内存存储安全代码和安全数据,普通内存保护区域使用物理内存中的普通内存存储数据;从而,存储安全代码的安全内存页面的页表(即安全代码对应的页表)可由安全处理器管理和控制,由于安全处理器为专门设置的负责处理与安全相关操作的处理器,安全处理器具有较高的安全性,因此本发明实施例减少了恶意的操作系统通过操控安全代码对应的页表,对安全代码实现侧信道攻击的可能,可提升软件代码保护的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为软件代码保护方案的示意图;
图2为SGX模块与软件的交互示意图;
图3为enclave的架构示意图;
图4为基于安全虚拟化技术的虚拟化环境的系统架构示意图;
图5为安全虚拟化技术的微架构示意图;
图6为物理内存包括安全内存和普通内存的示意图;
图7为页表指向关系的示意图;
图8为页表指向关系的另一示意图;
图9为本发明实施例提供的代码保护系统的结构示意图;
图10为本发明实施例提供的代码保护系统的另一结构示意图;
图11为代码包括系统代码和用户代码的示意图;
图12为本发明实施例提供的认证方法的流程图;
图13为安全处理器为内存保护区域生成身份密钥以及身份证书的流程图;
图14为本发明实施例提供的认证装置的框图。
具体实施方式
软件代码保护是指对软件的代码提供安全保护,不仅提供对软件代码的数据机密性保护,还提供对软件代码的数据完整性保护;此处所指的软件并不限于应用软件,还可以是系统软件。
常见的软件代码保护方案是在软件的虚拟地址空间内创建一块内存保护区域,在该内存保护区域中运行软件需要安全保护的代码(软件需要安全保护的代码可称为安全代码,软件的非安全代码可称为普通代码),并存取软件的安全数据(软件需要安全保护的数据可称为安全数据),内存保护区域可对运行于其中的安全代码和存取的安全数据进行保护,并且结合加密技术和硬件隔离技术,硬件可为该内存保护区域提供机密性和完整性保护,从而该内存保护区域可以作为独立的安全模块,运行于和软件的OS(操作系统)及虚拟机管理器(在虚拟化环境下适用)隔离的硬件环境中,实现软件代码保护;在虚拟化环境下,图1示出了一种软件代码保护方案的示意图,虚拟化环境是指通过虚拟化技术(Virtualization),由主机虚拟化出多台虚拟机(Virtual Machine,VM)的环境;如图1所示:
通过调整编程模式,软件中的部分代码可作为安全代码,非安全代码作为普通代码;例如通过调整的编程模式在软件的代码中划分出安全代码和普通代码,该安全代码可在软件的虚拟地址空间内创建的一块内存保护区域中运行,而普通代码可在物理内存中运行,并且该内存保护区域作为独立的安全模块运行于操作系统及虚拟机管理器均隔离的硬件环境中,从而内存保护区域可对运行于其中的安全代码进行保护;示例的,软件的安全代码可由图1软件的方框中的加粗虚线框示意,隔离的硬件环境可由图1硬件的方框中的加粗虚线框示意。
上述内存保护区域的安全代码和安全数据可存放在特殊的内存保护区域页面缓存中,该特殊的内存保护区域页面缓存可以使用内存加密引擎进行加密,且该内存保护区域页面缓存可存在于一种专用的芯片上;也就是说,内存总线的外部读取只能观察到内存保护区域页面缓存的加密数据,而页面只会在处理器内核中才能被解密;从而,与安全代码相关的操作被封装在内存保护区域中,该内存保护区域作为独立的安全模块,当调用安全模块时,只有安全模块的安全代码才能查看安全模块内的数据,当安全模块调用结束时,安全模块的安全代码和安全数据存放在该专用芯片的内存保护区域页面缓存中,进而,只能通过安全模块提供的对外固定接口调用安全模块,缩小了安全模块内运行的安全代码和存取的安全数据的被攻击面。
作为一种可选实现,上述内存保护区域可以是基于SGX(Software GuardExtensions,软件扩展保护)技术实现的enclave(内存保护区域的一种示例);示例的,图2示出了SGX模块与软件的交互示意图,SGX模块是对CPU架构的一种扩展,为软件的安全执行提供硬件保护,这种扩展允许软件(特别是用户模式的软件)在虚拟地址空间内创建一块enclave,硬件为enclave提供机密性和完整性保护,从而由enclave运行软件的安全代码并存取软件的安全数据,可对软件代码实现保护,其中,enclave的安全代码和安全数据放置在芯片专用的enclave页面缓存(EPC)中,该EPC可以使用内存加密引擎进行加密;
示例的,如图3示出了enclave的可选架构示意,可进行参照,其中,TCS(ThreadControl Structure,线程控制结构)保存着进入或退出enclave时恢复enclave线程的特殊信息。
需要说明的是,上述内存保护区域基于SGX技术实现仅是一种示例说明,本发明实施例也可支持其他方式实现的内存保护区域,即该内存保护区域是在软件的虚拟地址空间内创建,且该内存保护区域运行软件的安全代码和存取软件的安全数据。
可选的,上述所指的内存保护区域(例如enclave)实际可以理解为提供了一个基于软件的TEE(Trusted Execution Environment,可信执行环境)。
图1所示软件代码保护方案虽然可以在一定程度上为软件的安全代码提供保护,但图1所示软件代码保护方案存在的主要问题是:安全代码虽然运行于隔离的内存保护区域中,但安全代码对应的页表实际由操作系统管理和控制(安全代码对应的页表可用于安全代码的虚拟地址到物理地址的映射,例如安全代码位于的内存保护区域的虚拟地址到物理地址的映射),这就导致恶意的操作系统可以通过操控安全代码对应的页表,对安全代码实现侧信道攻击,存在软件代码保护的可靠性较低的问题;例如,由于操作系统管理安全代码对应的页表,这就给恶意的操作系统提供了通过产生缺页等方式进行攻击的漏洞,同时也将安全代码使用的物理地址信息暴露给恶意的操作系统,使得恶意的操作系统可更加容易的使用基于缓存的侧信道攻击。
图1所示软件代码保护方案更进一步的问题是:图1所示软件代码保护方案可支持的安全代码的数据量较小,软件代码保护方案缺乏灵活性;例如,图1所示软件代码保护方案需要维护一个专门的页面缓存映射结构,以存储页面状态,该页面缓存映射结构的大小限制了内存保护区域页面缓存的大小,使得图1所示软件代码保护方案无法对数据量较大的安全代码提供保护,限制了图1所示软件代码保护方案可以支持的安全代码的大小,导致图1所示软件代码保护方案只能对数据量相对较小的安全代码提供保护,软件代码保护缺乏灵活性;例如,在SGX技术中,需要使用EPCM(Enclave页面缓存映射)结构存储页面状态,EPCM的大小限制了EPC(存放enclave的安全代码和数据)的大小,EPC的大小一般由BIOS设置,被限制为最大128M,这使得SGX技术无法对数据量较大的安全代码提供保护;
进一步,页面缓存映射结构(如EPCM)需要包含一些非常复杂的指令,导致其硬件实现相对比较复杂。
基于此,本发明实施例提供改进的软件代码保护方案,以提升软件代码保护的可靠性,并进一步降低实现复杂度,提高软件代码保护的灵活性。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的软件代码保护方案可基于安全虚拟化技术实现,安全虚拟化技术是在常规虚拟化技术基础上改进的,可对虚拟机内存进行安全保护的虚拟化技术;作为一种可选示例,图4示出了基于安全虚拟化技术的虚拟化环境的系统架构示意图,如图4所示,该系统架构可以包括:CPU(CentralProcessing Unit,中央处理器)核心1,内存控制器2,物理内存3和安全处理器4;
其中,CPU核心可通过软件形式配置虚拟机管理器11,并通过虚拟化技术虚拟化出多台虚拟机12;
内存控制器2是控制物理内存3,并且使物理内存3与CPU核心之间交换数据的硬件,物理内存3的部分或全部可以作为虚拟机内存,以为虚拟机分配内存空间;在典型的计算机系统中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历物理内存的页表查找该地址并读取该地址相应的数据;
安全处理器4为专门设置的负责处理与安全相关操作的处理器,例如,安全处理器4可对虚拟机内存进行加解密等操作;在本发明实施例中,虚拟机管理器11可配置与安全处理器4相通信的API接口,实现虚拟机管理器11与安全处理器4的数据交互;
在本发明实施例中,内存控制器2可配置加密引擎21,加密引擎21可存储密钥;
安全处理器4可通过加密引擎21存储的密钥为部分或所有虚拟机内存进行加密,并且不同虚拟机内存通过不同的密钥进行加密;可选的,为了更好地预防重放攻击,虚拟机内存中不同物理地址可使用不同的加密参数;需要说明的是,重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要在身份认证场景下破坏认证的正确性。
安全虚拟化技术可对虚拟机内存进行安全保护,例如可对虚拟机内存进行加密等安全保护的虚拟化技术,当然,安全虚拟化技术还可例如对虚拟机内存进行隔离等保护的虚拟化技术;
在一种示例的安全虚拟化技术中,通过安全虚拟化技术可对部分或所有虚拟机的虚拟机内存进行加密,而且不同虚拟机内存通过不同的密钥加密,虚拟机管理器也无法访问密钥,从而防止物理主机、虚拟机管理器对虚拟机内存中虚拟机数据的访问和篡改,提升虚拟机数据的安全性。
示例的,图5示出了安全虚拟化技术的微架构示意图,如图5所示,安全处理器位于SoC(System on Chip,片上系统)上,处理虚拟机内存加解密和启动虚拟机,安全处理器4可与CPU核心1通过API接口交互,安全处理器4与内存控制器(memory controller)2通过总线交互,并运行program(程式);
在SoC内部涉及到的部件有CPU核心1,安全处理器4,和内存控制器2;SOC外部设计有物理内存3(例如动态随机存取存储器DRAM等);可选的,SOC外部的数据可以为加密后的密文,SOC内部为明文;
图5中多个VEK(VirtualizationEncrypted Key,虚拟机加密密钥)分别用于不同的虚拟机,使得每个不同的虚拟机(或主机)都可以有各自独立的密钥,保证不同虚拟机和主机都无法读到其它虚拟机或主机的正确数据。
可选的,图4和图5所示系统架构中,CPU核心,内存控制器,安全处理器可集成在SOC(System on Chip,片上系统)上;显然,SOC仅是计算机体系结构的一种可选形式,本发明实施例也可支持其他形式的计算机体系结构,例如,处理器和南桥相耦合的计算机体系结构,分设南桥和北桥的计算机体系结构等,此时,CPU核心,内存控制器,物理内存,和安全处理器可相应部署,此处不再展开说明。
在本发明实施例中,物理内存可包括安全内存(空间)和普通内存(空间),示例的,图6示出了物理内存包括安全内存和普通内存的示意图,作为一种可选实现,物理内存的若干内存区域可以设置为安全内存,并采用安全保护机制进行保护,物理内存中的非安全内存可称为普通内存,普通内存一般未采用安全保护机制进行保护,安全内存的安全性可高于普通内存;作为一种可选示例,安全内存的大小可大于普通内存,当然,本发明实施例也可支持安全内存的大小可小于普通内存;
区别于图1所示软件代码保护方案将内存保护区域(如enclave)的安全代码和数据存放在内存保护区域页面缓存(如EPC),并由页面缓存映射结构(如EPCM)定义内存保护区域页面缓存(如EPC)的方式,本发明实施例可在物理内存的安全内存中保护内存保护区域(如enclave)的安全代码和安全数据,并且,本发明实施例由安全处理器实现安全内存的配置,并通过限制内存访问时普通内存页面和安全内存页面的页表指向关系,实现对安全内存的隔离与保护,从而对存放在安全内存的安全代码和安全数据提供保护;
需要说明的是,物理内存是以内存页面为单位,位于安全内存的内存页面可称为安全内存页面,位于普通内存的内存页面可以称为普通内存页面,并且物理内存可以使用多级页表进行内存管理,末级页表中保存着虚拟地址到物理地址的映射,称为页表项,除末级页表外的其他页表中,上级页表保存着虚拟地址到下级页表的映射,称为页目录。
可选的,普通内存页面和安全内存页面间限制的页表指向关系可至少包括:普通内存页面的页表禁止指向安全内存页面;即普通内存页面的页目录禁止指向安全内存页面,否则,进行报错;具体的,上级普通内存页面的页表禁止指向下级安全内存页面的页表;
可选的,更进一步的,在本发明实施例中,页表可以指向安全内存页面,也可以指向普通内存页面,但本发明实施例设置的页表指向关系还可包括如下至少一方面:
安全内存页面的页目录允许指向普通内存页面;其中,上级页表保存着虚拟地址到下级页表的映射,称为页目录;具体的,上级安全内存页面的页表允许指向下级普通内存页面的页表;
安全内存页面的页目录允许指向安全内存页面;具体的,上级安全内存页面的页表允许指向下级安全内存页面的页表;
安全内存页面的页表允许指向安全内存页面或普通内存页面。
示例的,以图7中的页表为例,图7中普通内存的页面可以由带有斜线的页面表示,安全内存的页面可以由不带有斜线的页面表示;可以看出,图7中不违反页表指向关系的情况例如:第一级位于安全内存页面的页表101指向位于第二级安全内存页面的页表102和103,第二级安全内存页面的页表102指向第三级普通内存页面的页表104,以及,第二级安全内存页面的页表103指向第三级普通内存页面的页表105等;在不违反页表指向关系的情况下,可以执行对页表的遍历查找,得到内存访问对应的物理地址。
在又一示例中,与图7类似,图8中不违反页表指向关系的情况例如:第一级安全内存页面的页表201指向第二级安全内存页面的页表202和203,第二级安全内存页面的页表202指向第三级普通内存页面的页表204,以及,第二级安全内存页面的页表203指向第三级普通内存页面的页表205;但,第三级普通内存页面的页表205指向第四级安全内存页面的页表206,则违反了页表指向关系,在违反页表指向关系的情况下,无法进行后续的页表遍历查找,无法得到内存访问对应的物理地址,从而可在内存访问违反页表指向关系的情况下,实现对安全内存的保护和隔离。
可见,本发明实施例可在物理内存的安全内存中,至少保护内存保护区域(如enclave)的安全代码,并且本发明实施例通过限制普通内存页面和安全内存页面的页表指向关系,可实现对安全内存的隔离与保护;相比于图1所示软件代码保护方案,本发明实施例保护安全代码的安全内存位于物理内存中,并且安全内存的大小可以由安全内存页面的页表进行定义,可以实现较大空间的安全内存的定义,使得保护安全代码的安全内存可以支持较大的容量,实现对数据量相对较大的安全代码提供安全保护,提升软件代码保护的灵活性。
基于安全虚拟化技术,本发明实施例提供的代码保护系统的一种可选结构可以如图9所示,参照图9,该代码保护系统可以包括:物理内存3,安全处理器4,操作系统11,内存保护区域01;其中,物理内存3包括安全内存31和普通内存32,并且普通内存页面和安全内存页面之间通过限制页表指向关系,实现对安全内存的保护和隔离;
内存保护区域01是软件在虚拟地址空间内创建的一块内存保护区域,即内存保护区域创建在虚拟地址空间,且软件的安全代码运行在该内存保护区域中,且内存保护区域可存取软件的安全数据;该内存保护区域01可以视为是一个TEE(可信任执行环境);此处所指的软件可以是系统软件也可以是应用软件;
在本发明实施例中,内存保护区域01可以包括安全内存保护区域011和普通内存保护区域012,安全内存保护区域011可运行软件的安全代码和存取软件的安全数据,普通内存保护区域可以用于在运行于安全内存保护区域的安全代码和运行于普通内存的普通代码间共享数据;并且,安全内存保护区域使用安全内存,普通内存保护区域使用普通内存,且安全内存由安全处理器4配置,普通内存由操作系统11配置,示例的,普通内存可由主机软件(如虚拟机管理器Hypervisor)配置;
可选的,安全内存由安全处理器配置可以是,安全内存页面的页表由安全处理器配置,并且安全处理器配置普通内存页面和安全内存页面之间限制的页表指向关系;
可选的,普通内存可进一步包括普通内存共享区域,该普通内存共享区域可被安全代码和操作系统或普通代码共同访问(即普通内存共享区域可被安全代码和操作系统共同访问,或者可被安全代码和普通代码共同访问),以实现安全代码和操作系统或普通代码间共享数据。
可见,在本发明实施例中,内存保护区域需要同时使用物理内存中的普通内存和安全内存,且普通内存由操作系统配置,安全内存由安全处理器配置,普通内存页面和安全内存页面之间通过限制页表指向关系,保护安全内存;内存保护区域可进一步包括运行软件的安全代码和存取软件的安全数据的安全内存保护区域,和用于在所述安全代码和运行于普通内存的普通代码间共享数据的普通内存保护区域,其中,安全内存保护区域使用物理内存中的安全内存存储安全代码和安全数据,普通内存保护区域使用物理内存中的普通内存存储数据;从而,存储安全代码的安全内存页面的页表(即安全代码对应的页表)可由安全处理器管理和控制,由于安全处理器为专门设置的负责处理与安全相关操作的处理器,安全处理器具有较高的安全性,因此本发明实施例减少了恶意的操作系统通过操控安全代码对应的页表,对安全代码实现侧信道攻击的可能,可提升软件代码保护的可靠性。
进一步,在本发明实施例中,安全内存位于物理内存中,并且安全内存的大小可以由安全内存页面的页表进行定义,可以实现较大空间的安全内存的定义,使得保护安全代码的安全内存可以支持较大的容量,实现了对数据量相对较大的安全代码提供安全保护,提升了软件代码保护的灵活性。
更进一步的,由于本发明实施例是在安全处理器配置的安全内存中保护软件的安全代码,并且由安全处理器配置安全内存页表,实现对安全内存的保护,因此不需维护专门的页面缓存映射结构,来存储页面状态,可减少使用的复杂指令,使得软件代码保护的硬件实现更为简便、高效。
在一种可选实现中,安全内存可在初始化时,由安全处理器进行配置,安全处理器在初始化时所配置的安全内存不可修改;例如,安全代码对应的页表(一般是多级页表的形式,在一种实现中可称为嵌套页表)确定了安全代码的虚拟地址到物理内存的物理地址的映射关系,该映射关系可以是安全处理器在初始化时进行配置,并在初始化配置后不可修改;
在另一种可选实现中,本发明实施例也可支持安全内存可由安全处理器动态修改配置,例如安全处理器可基于协商的协议,实现安全内存的动态修改配置;例如,安全代码对应的页表确定了安全代码的虚拟地址到物理内存的物理地址的映射关系,该映射关系可由安全处理器根据协商动态修改。
在一种示例中,本发明实施例所指的内存保护区域可以认为是TEE(例如,内存保护区域是基于SGX技术实现的enclave等),如图10所示,TEE可以包括运行软件的安全代码和存取软件的安全数据的安全内存TEE,和用于在所述安全代码和运行于普通内存的普通代码间共享数据的普通内存TEE,安全内存TEE使用物理内存中的安全内存存储安全代码和安全数据,普通内存TEE使用物理内存中的普通内存存储数据,其中,安全内存由安全处理器配置,普通内存由操作系统配置。
通过本发明实施例可对不同内存保护区域(如不同的enclave)进行隔离,如为每个内存保护区域设置不同的安全内存空间,不同的安全内存空间存储不同的内存保护区域运行的安全代码和存取的安全数据,从而实现对不同内存保护区域进行隔离。
可选的,本发明实施例可对安全内存进行加密,以进一步防止安全内存存储的安全代码和安全数据被攻击的风险,示例的,不同的内存保护区域(如不同的enclave)对应的安全内存可以使用不同的密钥进行加密;
在一种可选实现中,本发明实施例可基于安全虚拟化技术,由安全处理器对安全内存进行加密,结合图4和图5所示,安全处理器可通过加密引擎存储的密钥为安全内存进行加密;示例的,不同的内存保护区域(如不同的enclave)对应的安全内存使用不同的密钥进行加密;
在另一种可选实现中,本发明实施例也可使用安全内存加密技术,例如SME(Security Memory Encryption),为安全内存进行加密;示例的,不同的内存保护区域(如不同的enclave)对应的安全内存使用不同的密钥进行加密。
可选的,在进一步的可选实现中,为保障内存保护区域的配置完整性,本发明实施例可给每个内存保护区域定义安全代码控制信息结构(SCCS),通过安全代码控制信息结构可以描述内存保护区域的整体配置信息,包括但不限于:内存保护区域的各代码和数据的地址分布信息,内存保护区域使用的代码签名信息,内存保护区域对应的软件版本号,内存保护区域对硬件的配置要求等;
可选的,内存保护区域的安全代码控制信息结构可以由安全处理器通过软件进行定义,内存保护区域的安全代码控制信息结构可以存储于内存保护区域使用的安全内存中,并通过位于安全内存的地址字段指向内存保护区域的安全代码控制信息结构。
可选的,在进一步的可选实现中,如图11所示,内存保护区域(可视为是TEE)运行的安全代码除包括用户代码(例如ring3代码)外,还可以包括系统代码(例如ring0代码);当然,本发明实施例也可支持内存保护区域运行的安全代码为用户代码;
可以理解的是,处理器可通过ring级别进行访问控制,ring级别可以分为4层,从ring0到ring3,ring0拥有最高的权限,ring3拥有最低的权限,应用程序代码工作在ring3层,操作系统工作在ring0层,即ring0代码可以视为是系统代码,ring3代码可以视为是用户代码;本发明实施例可支持内存保护区域运行的代码为ring0代码和ring3代码;
可选的,在本发明实施例中,运行在内存保护区域的系统代码可以作为独立模块,并拥有独立的数字签名,相应的,用户代码也可作为独立模块并具有独立的数字签名;从而,在软件的代码存在缺陷需要进行修改时,可根据实际的代码缺陷情况独立的修改用户代码或系统代码,减少代码修改工作量;同时,系统代码作为独立模块,还可支持系统代码和用户代码的独立开发,使得系统代码和用户代码可以由不同的开发者进行开发,提供代码开发效率;
当然,本发明实施例也可支持系统代码和用户代码具有统一的数字签名。
进一步的,内存保护区域的系统代码可以提供系统调用,并在内存保护区域运行时,通过系统代码提供的系统调用,动态随机改变内存保护区域的虚拟地址(如线性地址)和物理地址之间的映射关系,能够较好的抵御基于缓存的侧信道攻击;
更进一步的,内存保护区域的系统代码可以预先定制多份页表给用户代码,从而在内存保护区域运行时,可以通过系统代码提供的系统调用,动态的切换用户代码对应的页表,使得用户代码可以在多个安全内存区域之间切换,进一步提升用户代码的安全性。
本发明实施例提供的代码保护系统,可以提升软件代码保护的可靠性,并进一步降低实现复杂度,提高软件代码保护的灵活性。
基于本发明实施例提供的代码保护系统,本发明实施例还可提供远程认证功能,使得软件可以向远程(或本地)的其它软件或者硬件证明,软件是运行在安全环境下,从而在软件证明自身可信的情况下,保障软件功能的正常运行;
可选的,图12示出了本发明实施例提供的认证方法的流程图,参照图12,该流程可主要涉及认证设备和待认证设备,其中,安全处理器和运行软件代码的内存保护区域可设置于待认证设备,该流程主要是由认证设备对待认证设备中的软件进行认证,以证明待认证设备中的软件运行在安全环境下;
参照图12,该流程可以包括:
步骤S10、认证设备向待认证设备发送认证请求,所述认证请求用于请求认证软件的运行环境,所述认证请求包括请求信息。
基于本发明实施例提供的代码保护系统进行代码保护后,安全处理器和运行软件的内存保护区域可设置于待认证设备,为确保待认证设备中的软件运行在安全环境,并且代码不经过篡改,本发明实施例可将运行在网络或本地可控环境(如安全环境)的服务器作为认证设备,由认证设备向待认证设备发送认证请求,所述认证请求包括请求信息;示例的,请求信息可以包括随机数。
步骤S11、待认证设备使用内存保护区域的身份密钥,对所述请求信息以及软件的摘要信息进行签名,得到签名信息。
可选的,步骤S11可以是由待认证设备中的待认证软件进行,该待认证软件的代码可使用本发明实施例提供的代码保护系统进行保护;可选的,待认证软件在接收认证设备的认证请求后,可使用运行待认证软件的内存保护区域(如TEE)的身份密钥,对所述认证请求携带的请求信息以及待认证软件的摘要信息进行签名,从而得到签名信息;
示例的,待认证软件可使用内存保护区域(如TEE)的身份密钥,对请求信息中的随机数以及待认证软件的摘要信息进行签名。
可选的,在安全处理器初始化内存保护区域时,安全处理器可为内存保护区域生成身份密钥以及身份证书,示例的,图13示出了安全处理器为内存保护区域生成身份密钥以及身份证书的一种可选流程,参照图13,该流程可以包括:
步骤S111、安全处理器启动内存保护区域时,根据CPU根密钥和内存保护区域的原始身份信息,生成内存保护区域的身份密钥。
可选的,在内存保护区域装载时,内存保护区域需已被开发者进行了数字签名,而且已经拥有相应的证书链,内存保护区域的数字签名可以是针对内存保护区域的原始身份信息,从而安全处理器可以识别内存保护区域的根证书,获取到内存保护区域的原始身份信息;
示例的,内存保护区域的原始身份信息可以包括内存保护区域的初始信息,以及开发者公钥信息的数字摘要;可选的,内存保护区域的初始信息除包括内存保护区域运行的安全代码以外,还可包括内存保护区域的初始数据,以及内存保护区域的安全代码控制信息结构(SCCS)中的信息等。
在安全处理器初始化内存保护区域时,安全处理器可以根据内存保护区域的原始身份信息和CPU根密钥,为内存保护区域生成唯一的身份密钥(即内存保护区域的根密钥),使得内存保护区域拥有自身的根密钥;
可选的,安全处理器可使用密钥派生算法(如KDF),根据CPU根密钥和内存保护区域的原始身份信息,派生内存保护区域唯一的身份密钥。
可选的,内存保护区域的身份密钥作为根密钥可以写入预定的私有内存中,从而内存保护区域的代码可以拥有根密钥;
示例的,如果内存保护区域运行的代码包括系统代码和用户代码,则内存保护区域的根密钥可限定为被系统代码访问,进一步,系统代码可以作为独立模块且拥有独立的数字签名;当用户代码需要使用内存保护区域的根密钥,以生成用户代码相应的密钥时,用户代码可以通过中断方法或者系统代码提供的系统调用,来访问系统代码,以通过系统代码调用内存保护区域的根密钥,即用户代码需通过系统代码间接访问内存保护区域的根密钥,从而提升了内存保护区域的根密钥的安全性,实现内存保护区域的根密钥更为有效的保护。
步骤S112、安全处理器使用安全处理器的签名密钥,对内存保护区域的身份密钥对应的公钥进行签名,生成内存保护区域的身份证书。
回到图12,如图12所示步骤S12:待认证设备至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链发送给认证设备。
可选的,步骤S12可由待认证设备中的待认证软件进行。
步骤S13、认证设备至少根据所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链,认证软件的运行环境的安全性。
认证设备可至少根据所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链,来确认软件的运行环境的安全性,认证软件是否运行在指定芯片厂商生成的芯片上,并且软件没有被篡改;
需要说明的是,安全处理器的签名密钥证书可由芯片厂商的芯片签名密钥对安全处理器的签名密钥对应的公钥进行签名产生,芯片厂商还可公布芯片厂商的芯片签名密钥对应的公钥。
更进一步的,软件可以运行在云服务器上,为了确认运行在云服务器上的软件没有篡改,云服务提供商还可事先使用云服务提供商的签名密钥,对安全处理器的签名密钥对应的公钥进行签名,从而认证证书链时,还可以使用云服务提供商的根密钥,认证软件是否运行在云服务提供商的云服务器上。
可以看出,认证使用的证书链可以携带芯片相关的证书,也可以携带软件相关的证书,所使用的证书可以不限于一级证书,还可以采用多级证书。
通过本发明实施例提供的认证方法,可以认证一款发布的运行在远程机器的软件,是否运行在安全环境、是否被篡改,从而实现软件安全环境的远程认证。
作为一种可选实现,本发明实施例还提供一种认证装置,该认证装置可以是待认证设备为实现本发明实施例提供的认证方法,所需设置的程序模块(可以是软件的程序模块);下文描述的认证装置的内容,可与上文描述的认证方法的内容相互对应参照。
图14为本发明实施例提供的认证装置的框图,基于本发明实施例提供的代码保护系统,参照图14,该认证装置可以包括:
请求获取模块1000,用于获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;
签名模块1100,用于使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;
证书链发送模块1200,用于至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书发送给认证设备,以便所述认证设备至少根据所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链,认证所述软件的运行环境的安全性。
可选的,内存保护区域的身份密钥的生成过程可以是:安全处理器启动内存保护区域时,根据CPU根密钥和内存保护区域的原始身份信息,生成内存保护区域的身份密钥;
可选的,内存保护区域的身份证书的生成过程可以是:生成内存保护区域的身份密钥后,安全处理器使用安全处理器的签名密钥,对内存保护区域的身份密钥对应的公钥进行签名,生成内存保护区域的身份证书。
可选的,所述内存保护区域的原始身份信息包括内存保护区域的初始信息,以及开发者公钥信息的数字摘要;所述内存保护区域的初始信息包括内存保护区域运行的安全代码,初始数据,以及内存保护区域的安全代码控制信息结构中的信息。
可选的,如果所述内存保护区域运行的代码包括系统代码和用户代码;所述内存保护区域的身份密钥可作为根密钥,并限定为被系统代码访问;从而,所述用户代码可通过中断方法或者系统代码提供的系统调用访问系统代码,以调用内存保护区域的根密钥。
可选的,安全处理器的签名密钥证书由芯片厂商的芯片签名密钥对安全处理器的签名密钥对应的公钥进行签名产生。
作为一种可选实现,本发明实施例还提供一种芯片,该芯片可以包括本发明实施例提供的代码保护系统。
作为一种可选实现,本发明实施例还提供一种电子设备,该电子设备可以包括上述所述的芯片。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (16)

1.一种代码保护系统,其特征在于,包括:
在虚拟地址空间创建的内存保护区域,所述内存保护区域运行软件的安全代码和存取软件的安全数据;
物理内存,所述物理内存包括安全内存和普通内存,所述安全内存和普通内存之间通过限制页表指向关系,保护安全内存;所述安全内存由安全处理器配置,所述普通内存由操作系统配置;
其中,所述内存保护区域包括安全内存保护区域和普通内存保护区域,所述安全内存保护区域用于运行所述安全代码和存取所述安全数据,所述普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;所述安全内存保护区域使用所述安全内存存储所述安全代码和安全数据,所述普通内存保护区域使用所述普通内存存储数据。
2.根据权利要求1所述的代码保护系统,其特征在于,所述页表指向关系包括如下至少一项:
普通内存页面的页表禁止指向安全内存页面;
安全内存页面的页目录允许指向普通内存页面;
安全内存页面的页目录允许指向安全内存页面;
安全内存页面的页表允许指向安全内存页面或普通内存页面。
3.根据权利要求1或2所述的代码保护系统,其特征在于,不同的内存保护区域对应的安全内存使用不同的密钥进行加密。
4.根据权利要求1或2所述的代码保护系统,其特征在于,所述安全内存还存储内存保护区域的安全代码控制信息结构,所述安全代码控制信息结构用于描述内存保护区域的整体配置信息。
5.根据权利要求1或2所述的代码保护系统,其特征在于,所述内存保护区域运行的安全代码包括系统代码和用户代码;其中,所述系统代码作为独立模块并具有独立的数字签名,或者,所述系统代码与所述用户代码具体统一的数字签名。
6.根据权利要求5所述的代码保护系统,其特征在于,所述系统代码提供有系统调用,以在内存保护区域运行时,动态随机改变内存保护区域的虚拟地址和物理地址之间的映射关系;和/或,所述系统代码提供有系统调用,以在内存保护区域运行时,动态切换用户代码对应的页表,使得用户代码在多个安全内存区域之间切换,其中,所述系统代码预先为用户代码定制有多份页表。
7.根据权利要求1或2所述的代码保护系统,其特征在于,所述普通内存包括普通内存共享区域,所述普通内存共享区域由所述安全代码和操作系统或普通代码共同访问,以在所述安全代码和操作系统或普通代码间共享数据。
8.根据权利要求1或2所述的代码保护系统,其特征在于,所述内存保护区域提供基于软件的可信任执行环境。
9.一种认证方法,其特征在于,基于权利要求1-8任一项所述的代码保护系统,所述认证方法包括:
获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;
使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;
至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。
10.根据权利要求9所述的认证方法,其特征在于,所述方法还包括:
安全处理器启动内存保护区域时,根据CPU根密钥和内存保护区域的原始身份信息,生成内存保护区域的身份密钥;
安全处理器使用安全处理器的签名密钥,对内存保护区域的身份密钥对应的公钥进行签名,生成内存保护区域的身份证书。
11.根据权利要求10所述的认证方法,其特征在于,所述内存保护区域的原始身份信息包括内存保护区域的初始信息,以及开发者公钥信息的数字摘要;所述内存保护区域的初始信息包括内存保护区域运行的安全代码,初始数据,以及内存保护区域的安全代码控制信息结构中的信息。
12.根据权利要求10所述的认证方法,其特征在于,所述内存保护区域运行的代码包括系统代码和用户代码;所述内存保护区域的身份密钥作为根密钥限定为被系统代码访问;所述用户代码通过中断方法或者系统代码提供的系统调用访问系统代码,以调用内存保护区域的根密钥。
13.根据权利要求9-13任一项所述的认证方法,其特征在于,安全处理器的签名密钥证书由芯片厂商的芯片签名密钥对安全处理器的签名密钥对应的公钥进行签名产生。
14.一种认证装置,其特征在于,基于权利要求1-8任一项所述的代码保护系统,所述认证装置包括:
请求获取模块,用于获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;
签名模块,用于使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;
证书链发送模块,用于将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。
15.一种芯片,其特征在于,包括权利要求1-8任一项所述的代码保护系统。
16.一种电子设备,其特征在于,包括权利要求15所述的芯片。
CN201910522236.4A 2019-06-17 2019-06-17 一种代码保护系统、认证方法、装置、芯片及电子设备 Active CN110348204B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910522236.4A CN110348204B (zh) 2019-06-17 2019-06-17 一种代码保护系统、认证方法、装置、芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910522236.4A CN110348204B (zh) 2019-06-17 2019-06-17 一种代码保护系统、认证方法、装置、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN110348204A true CN110348204A (zh) 2019-10-18
CN110348204B CN110348204B (zh) 2023-05-16

Family

ID=68182262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910522236.4A Active CN110348204B (zh) 2019-06-17 2019-06-17 一种代码保护系统、认证方法、装置、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN110348204B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955888A (zh) * 2019-12-18 2020-04-03 海光信息技术有限公司 应用程序数据保护方法、装置、设备、存储介质
CN111881467A (zh) * 2020-06-12 2020-11-03 海光信息技术有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备
CN111913806A (zh) * 2020-08-03 2020-11-10 Oppo广东移动通信有限公司 一种内存区域的管理方法、电子设备和存储介质
CN112241306A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 固件数据加载方法、装置、安全处理器、芯片及电子设备
CN112527457A (zh) * 2020-12-11 2021-03-19 成都云铀子网络科技有限公司 一种通用Unicorn模拟指令执行的虚拟机实现方法
CN113268353A (zh) * 2021-06-11 2021-08-17 海光信息技术股份有限公司 一种提供可信内存的方法、装置、处理器芯片和电子设备
CN113609156A (zh) * 2021-08-02 2021-11-05 北京百度网讯科技有限公司 数据的查询与写入方法、装置、电子设备及可读存储介质
CN115391235A (zh) * 2022-08-15 2022-11-25 清华大学 一种硬件辅助的软件安全防护方法、设备及介质
CN115659290A (zh) * 2022-11-07 2023-01-31 海光信息技术股份有限公司 代码保护系统、方法、虚拟系统架构、芯片及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法
CN106936774A (zh) * 2015-12-29 2017-07-07 中国电信股份有限公司 可信执行环境中的认证方法和系统
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
US20170286320A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Avoiding redundant memory encryption in a cryptographic protection system
CN107454958A (zh) * 2015-04-09 2017-12-08 威睿公司 使用多个嵌套页表隔离客户机代码和数据
CN108768664A (zh) * 2018-06-06 2018-11-06 腾讯科技(深圳)有限公司 密钥管理方法、装置、系统、存储介质和计算机设备
CN109460373A (zh) * 2017-09-06 2019-03-12 阿里巴巴集团控股有限公司 一种数据共享方法、终端设备和存储介质
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN109800050A (zh) * 2018-11-22 2019-05-24 海光信息技术有限公司 一种虚拟机的内存管理方法、装置、相关设备及系统
CN109828827A (zh) * 2018-11-22 2019-05-31 海光信息技术有限公司 一种检测方法、装置及相关设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法
CN107454958A (zh) * 2015-04-09 2017-12-08 威睿公司 使用多个嵌套页表隔离客户机代码和数据
CN106936774A (zh) * 2015-12-29 2017-07-07 中国电信股份有限公司 可信执行环境中的认证方法和系统
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
US20170286320A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Avoiding redundant memory encryption in a cryptographic protection system
CN109460373A (zh) * 2017-09-06 2019-03-12 阿里巴巴集团控股有限公司 一种数据共享方法、终端设备和存储介质
CN108768664A (zh) * 2018-06-06 2018-11-06 腾讯科技(深圳)有限公司 密钥管理方法、装置、系统、存储介质和计算机设备
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN109800050A (zh) * 2018-11-22 2019-05-24 海光信息技术有限公司 一种虚拟机的内存管理方法、装置、相关设备及系统
CN109828827A (zh) * 2018-11-22 2019-05-31 海光信息技术有限公司 一种检测方法、装置及相关设备
CN109858265A (zh) * 2018-11-22 2019-06-07 海光信息技术有限公司 一种加密方法、装置及相关设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
姚前: "《数字货币初探》", 31 May 2018 *
王鹃: "SGX技术的分析和研究", 《信息科技》 *
赵炯等: "《Linux操作系统实现原理》", 30 September 2018 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955888A (zh) * 2019-12-18 2020-04-03 海光信息技术有限公司 应用程序数据保护方法、装置、设备、存储介质
CN110955888B (zh) * 2019-12-18 2023-10-27 海光信息技术股份有限公司 应用程序数据保护方法、装置、设备、存储介质
CN111881467A (zh) * 2020-06-12 2020-11-03 海光信息技术有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备
CN111881467B (zh) * 2020-06-12 2022-10-28 海光信息技术股份有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备
CN111913806A (zh) * 2020-08-03 2020-11-10 Oppo广东移动通信有限公司 一种内存区域的管理方法、电子设备和存储介质
CN112241306B (zh) * 2020-10-21 2023-06-09 海光信息技术股份有限公司 固件数据加载方法、装置、安全处理器、芯片及电子设备
CN112241306A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 固件数据加载方法、装置、安全处理器、芯片及电子设备
CN112527457A (zh) * 2020-12-11 2021-03-19 成都云铀子网络科技有限公司 一种通用Unicorn模拟指令执行的虚拟机实现方法
CN113268353A (zh) * 2021-06-11 2021-08-17 海光信息技术股份有限公司 一种提供可信内存的方法、装置、处理器芯片和电子设备
CN113609156A (zh) * 2021-08-02 2021-11-05 北京百度网讯科技有限公司 数据的查询与写入方法、装置、电子设备及可读存储介质
CN113609156B (zh) * 2021-08-02 2023-12-12 北京百度网讯科技有限公司 数据的查询与写入方法、装置、电子设备及可读存储介质
CN115391235B (zh) * 2022-08-15 2023-06-06 清华大学 一种硬件辅助的软件安全防护方法、设备及介质
CN115391235A (zh) * 2022-08-15 2022-11-25 清华大学 一种硬件辅助的软件安全防护方法、设备及介质
CN115659290A (zh) * 2022-11-07 2023-01-31 海光信息技术股份有限公司 代码保护系统、方法、虚拟系统架构、芯片及电子设备
CN115659290B (zh) * 2022-11-07 2023-07-21 海光信息技术股份有限公司 代码保护系统、方法、虚拟系统、芯片及电子设备

Also Published As

Publication number Publication date
CN110348204B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN110348204A (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
US11770368B2 (en) Techniques for shared private data objects in a trusted execution environment
US10831886B2 (en) Virtual machine manager facilitated selective code integrity enforcement
US7073059B2 (en) Secure machine platform that interfaces to operating systems and customized control programs
US8826391B2 (en) Virtualized trusted descriptors
JP5647360B2 (ja) メモリ範囲を無作為に割り当てたセキュアシステムにおいてjitをサポートするためのシステム及び方法
CN105184147B (zh) 云计算平台中的用户安全管理方法
US7478220B2 (en) Method, apparatus, and product for prohibiting unauthorized access of data stored on storage drives
CN106462438A (zh) 包含受信执行环境的主机的证明
CN109828827A (zh) 一种检测方法、装置及相关设备
US20110154501A1 (en) Hardware attestation techniques
KR20140099325A (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
EP3980911A1 (en) Trusted device and computing system
Kaplan Hardware VM Isolation in the Cloud: Enabling confidential computing with AMD SEV-SNP technology
Batten Trusted execution: applications and verification

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin

Applicant after: Haiguang Information Technology Co.,Ltd.

Address before: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant