一种代码保护系统、认证方法、装置、芯片及电子设备制造方法及图纸

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

A code protection system, authentication method, device, chip and electronic equipment

【技术实现步骤摘要】
一种代码保护系统、认证方法、装置、芯片及电子设备
本专利技术实施例涉及代码保护
,具体涉及一种代码保护系统、认证方法、装置、芯片及电子设备。
技术介绍
代码是使用开发工具所支持的语言编写的文件,是一组由字符、符号或信号码元以离散形式表示信息的明确规则体系;代码是构建软件的基本要素,计算机通过代码构建的软件可以实现不同的功能,为减少代码的安全缺陷、保障软件功能的正常运行,软件代码保护至关重要。软件代码保护是指对软件的代码提供安全保护,目前如何改进软件代码保护方案,以提高软件代码保护的可靠性,一直是本领域技术人员研究的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种代码保护系统、认证方法、装置、芯片及电子设备,以提高软件代码保护的可靠性。为实现上述目的,本专利技术实施例提供如下技术方案:一种代码保护系统,包括:在虚拟地址空间创建的内存保护区域,所述内存保护区域运行软件的安全代码和存取软件的安全数据;物理内存,所述物理内存包括安全内存和普通内存,所述安全内存和普通内存之间通过限制页表指向关系,保护安全内存;所述安全内存由安全处理器配置,所述普通内存由操作系统配置;其中,所述内存保护区域包括安全内存保护区域和普通内存保护区域,所述安全内存保护区域用于运行所述安全代码和存取所述安全数据,所述普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;所述安全内存保护区域使用所述安全内存存储所述安全代码和安全数据,所述普通内存保护区域使用所述普通内存存储数据。可选的,所述页表指向关系包括如下至少一项:普通内存页面的页表禁止指向安全内存页面;安全内存页面的页目录允许指向普通内存页面;安全内存页面的页目录允许指向安全内存页面;安全内存页面的页表允许指向安全内存页面或普通内存页面。可选的,不同的内存保护区域对应的安全内存使用不同的密钥进行加密。可选的,所述安全内存还存储内存保护区域的安全代码控制信息结构,所述安全代码控制信息结构用于描述内存保护区域的整体配置信息。可选的,所述内存保护区域运行的安全代码包括系统代码和用户代码;其中,所述系统代码作为独立模块并具有独立的数字签名,或者,所述系统代码与所述用户代码具体统一的数字签名。可选的,所述系统代码提供有系统调用,以在内存保护区域运行时,动态随机改变内存保护区域的虚拟地址和物理地址之间的映射关系;和/或,所述系统代码提供有系统调用,以在内存保护区域运行时,动态切换用户代码对应的页表,使得用户代码在多个安全内存区域之间切换,其中,所述系统代码预先为用户代码定制有多份页表。可选的,所述普通内存包括普通内存共享区域,所述普通内存共享区域由所述安全代码和操作系统或所述普通代码共同访问,以在所述安全代码和操作系统或普通代码间共享数据。可选的,所述内存保护区域为基于软件的可信任执行环境。本专利技术实施例还提供一种认证方法,基于上述所述的代码保护系统,所述认证方法包括:获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书形成的证书链发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。可选的,所述方法还包括:安全处理器启动内存保护区域时,根据CPU根密钥和内存保护区域的原始身份信息,生成内存保护区域的身份密钥;安全处理器使用安全处理器的签名密钥,对内存保护区域的身份密钥对应的公钥进行签名,生成内存保护区域的身份证书。可选的,所述内存保护区域的原始身份信息包括内存保护区域的初始信息,以及开发者公钥信息的数字摘要;所述内存保护区域的初始信息包括内存保护区域运行的安全代码,初始数据,以及内存保护区域的安全代码控制信息结构中的信息。可选的,所述内存保护区域运行的代码包括系统代码和用户代码;所述内存保护区域的身份密钥作为根密钥限定为被系统代码访问;所述用户代码通过中断方法或者系统代码提供的系统调用访问系统代码,以调用内存保护区域的根密钥。可选的,安全处理器的签名密钥证书由芯片厂商的芯片签名密钥对安全处理器的签名密钥对应的公钥进行签名产生。本专利技术实施例还提供一种认证装置,基于上述所述的代码保护系统,所述认证装置包括:请求获取模块,用于获取认证设备发送的用于请求认证软件的运行环境的认证请求,所述认证请求包括请求信息;签名模块,用于使用内存保护区域的身份密钥,对所述请求信息以及所述软件的摘要信息进行签名,得到签名信息;证书链发送模块,用于至少将所述签名信息,内存保护区域的身份证书,和安全处理器的签名密钥证书发送给认证设备,以便所述认证设备至少根据所述证书链,认证所述软件的运行环境的安全性。本专利技术实施例还提供一种芯片,包括上述所述的代码保护系统。本专利技术实施例还提供一种电子设备,包括上述所述的芯片。本专利技术实施例所提供的代码保护系统中,内存保护区域需要同时使用物理内存中的普通内存和安全内存,且普通内存由操作系统配置,安全内存由安全处理器配置,普通内存页面和安全内存页面之间通过限制页表指向关系,保护安全内存;内存保护区域可进一步包括运行软件的安全代码和存取软件的安全数据的安全内存保护区域,和用于在所述安全代码和运行于普通内存的普通代码间共享数据的普通内存保护区域,其中,安全内存保护区域使用物理内存中的安全内存存储安全代码和安全数据,普通内存保护区域使用物理内存中的普通内存存储数据;从而,存储安全代码的安全内存页面的页表(即安全代码对应的页表)可由安全处理器管理和控制,由于安全处理器为专门设置的负责处理与安全相关操作的处理器,安全处理器具有较高的安全性,因此本专利技术实施例减少了恶意的操作系统通过操控安全代码对应的页表,对安全代码实现侧信道攻击的可能,可提升软件代码保护的可靠性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为软件代码保护方案的示意图;图2为SGX模块与软件的交互示意图;图3为enclave的架构示意图;图4为基于安全虚拟化技术的虚拟化环境的系统架构示意图;图5为安全虚拟化技术的微架构示意图;图6为物理内存包括安全内存和普通内存的示意图;图7为页表指向关系的示意图;图8为页表指向关系的另一示意图;图9为本专利技术实施例提供的代码保护系统的结构示意图;图10为本专利技术实施例提供的代码保护系统的另一结构示意图;图11为代码包括系统代码和用户代码的示意图;图12为本专利技术实施例提供的认证方法的流程图;图13为安全处理器为内存保护区域生成身份密钥以及身份证书的流程图;图14为本专利技术实施例提供的认证装置的框图。具体实施方式软件代码保护是指对软件的代码提供安全保护,不仅提供对软件代码的数据机密性保护,还提供对软件代码的数据完整性保护;此处所指的软件并不限于应用软件,还可以是系统软件。常见的软件代码保护方案是在软件的虚拟地址空间内创建一块内存保护区域,在该内存保护区域中运本文档来自技高网...

【技术保护点】
1.一种代码保护系统,其特征在于,包括:在虚拟地址空间创建的内存保护区域,所述内存保护区域运行软件的安全代码和存取软件的安全数据;物理内存,所述物理内存包括安全内存和普通内存,所述安全内存和普通内存之间通过限制页表指向关系,保护安全内存;所述安全内存由安全处理器配置,所述普通内存由操作系统配置;其中,所述内存保护区域包括安全内存保护区域和普通内存保护区域,所述安全内存保护区域用于运行所述安全代码和存取所述安全数据,所述普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;所述安全内存保护区域使用所述安全内存存储所述安全代码和安全数据,所述普通内存保护区域使用所述普通内存存储数据。

【技术特征摘要】
1.一种代码保护系统,其特征在于,包括:在虚拟地址空间创建的内存保护区域,所述内存保护区域运行软件的安全代码和存取软件的安全数据;物理内存,所述物理内存包括安全内存和普通内存,所述安全内存和普通内存之间通过限制页表指向关系,保护安全内存;所述安全内存由安全处理器配置,所述普通内存由操作系统配置;其中,所述内存保护区域包括安全内存保护区域和普通内存保护区域,所述安全内存保护区域用于运行所述安全代码和存取所述安全数据,所述普通内存保护区域用于在所述安全代码和运行于普通内存的普通代码间共享数据;所述安全内存保护区域使用所述安全内存存储所述安全代码和安全数据,所述普通内存保护区域使用所述普通内存存储数据。2.根据权利要求1所述的代码保护系统,其特征在于,所述页表指向关系包括如下至少一项:普通内存页面的页表禁止指向安全内存页面;安全内存页面的页目录允许指向普通内存页面;安全内存页面的页目录允许指向安全内存页面;安全内存页面的页表允许指向安全内存页面或普通内存页面。3.根据权利要求1或2所述的代码保护系统,其特征在于,不同的内存保护区域对应的安全内存使用不同的密钥进行加密。4.根据权利要求1或2所述的代码保护系统,其特征在于,所述安全内存还存储内存保护区域的安全代码控制信息结构,所述安全代码控制信息结构用于描述内存保护区域的整体配置信息。5.根据权利要求1或2所述的代码保护系统,其特征在于,所述内存保护区域运行的安全代码包括系统代码和用户代码;其中,所述系统代码作为独立模块并具有独立的数字签名,或者,所述系统代码与所述用户代码具体统一的数字签名。6.根据权利要求5所述的代码保护系统,其特征在于,所述系统代码提供有系统调用,以在内存保护区域运行时,动态随机改变内存保护区域的虚拟地址和物理地址之间的映射关系;和/或,所述系统代码提供有系统调用,以在内存保护区域运行时,动态切换用户代码对应的页表,使得用户代码在多个安全内存区域之间切换,其中,所述系统代码预先为用户代码定制有多份页表。7.根据权利要求1或2所述的代码保护系统,其特征在于,所述普通内存包括普通内存共享区域,所述普通内存共享区域由所述安全代码和操作系统或普通代码共同访问,以在所述安全代码和操作系统或普通代码间共享数据。8.根据权利要求1或2所述的代码保护系统,其特征在于,所述内存保护区域提供基于软件...

【专利技术属性】
技术研发人员:杜朝晖应志伟
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1