CN111814162A - 一种基于定制硬件安全属性的内核敏感数据保护方法 - Google Patents
一种基于定制硬件安全属性的内核敏感数据保护方法 Download PDFInfo
- Publication number
- CN111814162A CN111814162A CN202010622226.0A CN202010622226A CN111814162A CN 111814162 A CN111814162 A CN 111814162A CN 202010622226 A CN202010622226 A CN 202010622226A CN 111814162 A CN111814162 A CN 111814162A
- Authority
- CN
- China
- Prior art keywords
- kernel
- sensitive data
- key
- customized hardware
- method based
- 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
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/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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于定制硬件安全属性的内核敏感数据保护方法,该方法在内核将敏感数据存储到内存时利用扩展指令进行加密,从内存中取回时再进行解密,确保敏感数据不会以明文的形式泄漏到内存中。本方法通过使用定制硬件大大提高了整体方案的性能,在提升内核安全性的同时只带来非常微小的性能开销。
Description
技术领域
本发明涉及计算机内核安全加固领域,尤其涉及一种基于定制硬件安全属性的内核敏感数据保护方法。
背景技术
据微软公司的统计,70%的漏洞都是由内存安全问题导致的。内核是操作系统的核心部分,操作系统内核的安全关系着整个计算机系统的安全。操作系统内核在运行时,会将许多包含内核相关信息的敏感数据以及中间变量,存储到内存中。攻击者可以利用内核漏洞收集或利用这些敏感信息,来对内核发动攻击。然而,目前现代操作系统内核中并没有对这些敏感数据的机密性进行保护,攻击者可以利用漏洞毫无障碍的从内存中获取这些数据。
发明内容
针对现有技术的不足,本发明提供一种基于定制硬件安全属性的内核敏感数据保护方法,具体技术方案如下:
一种基于定制硬件安全属性的内核敏感数据保护方法,在用户态进程切换至内核态请求内核服务之前,内核预先生成密码学算法操作所需要的密钥,在内核态进程执行过程中,当内核态进程涉及相关的内核敏感数据操作时,使用扩展后的密码学操作的指令对内核敏感数据进行加密或解密,加密或解密时输入一个随机变量;
当内核态进程将内核敏感数据存储到内存中时,使用扩展后的密码学操作的指令对内核敏感数据进行加密;当内核态进程使用内核敏感数据时,通过输入与加密时相同的随机变量将内存中的密文解密;
所述的扩展后的密码学操作的指令接收操作内容、密钥以及随机变量三个输入;
所述的密钥存储在隔离的特殊寄存器中,所述的密钥的更新频率应根据应用场景的安全性能要求决定。
进一步地,所述的密钥的更新频率为,每次进入内核态时密钥更新一次。
进一步地,该方法在单条指令内完成原子的密码学运算。
进一步地,所述的扩展后的密码学操作的指令对敏感内容进行加密或解密时选用轻量级对称密码算法。
进一步地,所述的轻量级对称密码算法为轻量级可调分组密码算法。
进一步地,所述的内核敏感数据包括控制数据、中间结果和内核密钥。
进一步地,所述的随机变量为固定常量、随机数或运行时上下文信息。
本发明的有益效果如下:
本发明通过指令集扩展,提供了一套细粒度密码学保护原语,并且通过使用该原语设计了一种适用于操作系统内核的敏感数据机密性保护方案,填补了现代操作系统在此方面设计的空缺。本方法通过使用定制硬件大大提高了整体方案的性能,在提升内核安全性的同时只带来非常微小的性能开销。
附图说明
图1是基于定制硬件安全属性的内核敏感数据保护方法流程图。
图2为内核返回地址保护实例的微观基准性能测试结果。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的基于定制硬件安全属性的内核敏感数据保护方法,在用户态进程切换至内核态请求内核服务之前,内核预先生成密码学算法操作所需要的密钥,在内核态进程执行过程中,当内核态进程涉及相关的内核敏感数据操作时,使用扩展后的密码学操作的指令对内核敏感数据进行加密或解密,加密或解密时输入一个随机变量;
当内核态进程将内核敏感数据存储到内存中时,使用扩展后的密码学操作的指令对内核敏感数据进行加密;当内核态进程使用内核敏感数据时,通过输入与加密时相同的随机变量将内存中的密文解密。
扩展后的密码学操作的指令是设计中进行操作的基本单位,负责对输入内容进行设定的密码算法运算,密钥的存储、更新等管理逻辑交由操作系统内核以及可信固件负责。这里的密码算法选用轻量级对称密码算法。轻量级密码学算法包括但不限于:异或运算、轻量级分组密码(PRESENT、LBlock)、轻量级可调分组密码(QARMA、CRAFT)。在符合设计安全性能要求的前提下,为了减小算法的运算延迟,优选轻量级可调分组密码算法。
所述的使用扩展后的密码学操作的指令对内核敏感数据进行加密或加密,具体为密码学保护原语接收操作内容、密钥以及随机变量等三个输入,进行设定的密码学运算,然后提供一个运算结果作为输出。当所使用算法支持额外输入时(例如可调分组密码的调柄、分组密码CBC模式初始化向量),随机变量可直接输入算法;若所使用算法不支持额外输入,应先将随机变量与待运算内容进行运算,再输入算法。根据使用场景不同,随机变量使用固定常量、随机数、运行时上下文信息。
所述的内核敏感数据包括控制数据(返回地址、函数指针)、中间结果(密码学库运算过程中生成的中间变量)和内核密钥。
所述的密钥存储在隔离的特殊寄存器中,其内容只能被处于内核所在的处理器特权模式以及更高的特权下的指令修改,任何权限下都不能读取其中内容。所述的密钥的更新频率应根据应用场景的安全性能要求决定,优选为每次进入内核态时密钥更新一次。
内核返回地址决定着内核的控制流,因此非常有必要进行保护。因此,下面以返回地址在存储到内存中为例,详细讲述采用本发明的方法对其进行保护的过程。
步骤一:在用户态进程切换至内核态请求内核服务之前,内核预先生成密码学算法操作所需要的密钥;
由于内核态进程运行中产生的返回地址生命周期仅为当前内核态进程的执行过程,因此,为每个内核进程分配一个进程密钥,当每次进入内核态时对密钥进行更新;
步骤二:当内核态进程需要将返回地址存储到内存中时,使用扩展后的密码学操作的指令对返回地址进行加密,加密时使用QARMA轻量级可调分组密码算法作为核心算法,使用返回地址所存放的栈地址作为调柄输入到原语中,算法本身的参数设定为64位、7轮。
当内核态进程使用返回地址时,先将内存中的密文加载到寄存器中完成解密,解密时输入的栈地址需要与加密时的输入相同;若返回地址或是对栈中的内容被攻击者篡改,则会导致解密出的返回地址与原有内容不符,通常会导致内核态进程进入错误的函数,触发段错误使进程结束;若一切正常,内核态进程完成服务处理后退出。
本发明中使用扩展后的密码学操作的指令保护敏感数据的核心原则是保证敏感数据在内存中存储时始终是密文格式,攻击者在没有获得密钥的情况下无法对敏感数据进行有效的篡改。扩展后的密码学操作的指令可以通过修改编译器批量插入,也可由设计人员在关键位置手工修改。
本发明的方法通过将轻量级密码学算法扩展到指令集中,使得处理器能够在一条指令内原子地完成加密或者解密操作。
本发明的方法在HiFive Unleashed开发板上进行了性能评估。根据QARMA算法中给出的最小延迟数据,所涉及的密码学扩展指令的延迟时间在4到5个周期之间,在测试中同时实现了这两个模型来作为模拟性能的上下边界。
为了测试保护方案对内核态进程进程执行的性能损耗,使用lmbench 3.0-a9和byte-unixbench 5.1.3基准测试程序对系统调用性能进行测试,测试主要包含常见的系统调用、进程创建、文件拷贝、管道吞吐以及浮点数运算测试。图2中的测试结果表明,可以看到本案例在一些简单的系统调用上的展现出了较高的性能损耗,但随着执行的指令数量增加,在复杂的系统调用(例如fork、exceve)中带来的性能损耗逐渐减少。两个模型的整体性能损耗分别为7.63%和8.21%。
为了测试本案例在真实应用环境中的性能,使用nbench-byte 2.2.3和coremark1.01基准测试程序进行测试。测试的内容主要包含常见的用户态应用程序,例如浮点数运算密集的应用、压缩算法相关应用、查找排序算法相关应用以及矩阵运算密集的神经网络应用等。表1展示了本案例在这些测试中的最终结果。表中每个测试单元的数据是进行50次测试取平均值得到的结果。在一般情况下,程序的大多数指令都在用户模式下运行,本案例只产生了非常微小的一部分额外开销,表现出了非常不错的性能,考虑到一些其他的环境因素,几乎可以忽略不计。
表1为内核返回地址保护实例的宏观基准性能测试结果
测试项目 | 4周期模型 | 5周期模型 |
CoreMark | 0.0206‰ | 0.0412‰ |
Numeric sort | 0.1393‰ | 0.1640‰ |
String sort | 0.0492‰ | 0.0655‰ |
Bitfield | 0.1169‰ | 0.1364‰ |
FP emulation | 0.0605‰ | 0.1062‰ |
Fourier | 0.2067‰ | 0.2349‰ |
Assignment | 0.0980‰ | 0.1333‰ |
Idea | 0.0831‰ | 0.0831‰ |
Huffman | 0.0926‰ | 0.1210‰ |
Neural net | 0.0514‰ | 0.0715‰ |
Lu decomposition | 0.1460‰ | 0.1918‰ |
综上所述,本案例使用密码学保护原语对内核返回地址的机密性进行保护的同时,带来非常微小的性能开销。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (7)
1.一种基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,在用户态进程切换至内核态请求内核服务之前,内核预先生成密码学算法操作所需要的密钥,在内核态进程执行过程中,当内核态进程涉及相关的内核敏感数据操作时,使用扩展后的密码学操作的指令对内核敏感数据进行加密或解密,加密或解密时输入一个随机变量;
当内核态进程将内核敏感数据存储到内存中时,使用扩展后的密码学操作的指令对内核敏感数据进行加密;当内核态进程使用内核敏感数据时,通过输入与加密时相同的随机变量将内存中的密文解密;
所述的扩展后的密码学操作的指令接收操作内容、密钥以及随机变量三个输入;
所述的密钥存储在隔离的特殊寄存器中,所述的密钥的更新频率应根据应用场景的安全性能要求决定。
2.根据权利要求1所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,所述的密钥的更新频率为,每次进入内核态时密钥更新一次。
3.根据权利要求1所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,该方法在单条指令内完成原子的密码学运算。
4.根据权利要求1所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,所述的扩展后的密码学操作的指令对敏感内容进行加密或解密时选用轻量级对称密码算法。
5.根据权利要求4所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,所述的轻量级对称密码算法为轻量级可调分组密码算法。
6.根据权利要求1所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,所述的内核敏感数据包括控制数据、中间结果和内核密钥。
7.根据权利要求1所述的基于定制硬件安全属性的内核敏感数据保护方法,其特征在于,所述的随机变量为固定常量、随机数或运行时上下文信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622226.0A CN111814162B (zh) | 2020-06-30 | 2020-06-30 | 一种基于定制硬件安全属性的内核敏感数据保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622226.0A CN111814162B (zh) | 2020-06-30 | 2020-06-30 | 一种基于定制硬件安全属性的内核敏感数据保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111814162A true CN111814162A (zh) | 2020-10-23 |
CN111814162B CN111814162B (zh) | 2022-02-11 |
Family
ID=72855923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010622226.0A Active CN111814162B (zh) | 2020-06-30 | 2020-06-30 | 一种基于定制硬件安全属性的内核敏感数据保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111814162B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287333A (zh) * | 2020-11-19 | 2021-01-29 | 衡阳师范学院 | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 |
CN112906015A (zh) * | 2021-01-26 | 2021-06-04 | 浙江大学 | 一种基于硬件标签的内存敏感数据加密保护系统 |
CN113688407A (zh) * | 2021-07-30 | 2021-11-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据管理方法及相关装置 |
CN116095685A (zh) * | 2022-06-01 | 2023-05-09 | 荣耀终端有限公司 | 关键信息的保护方法和终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866406A (zh) * | 2010-06-18 | 2010-10-20 | 中国科学院软件研究所 | 一种栈溢出攻击防御方法 |
CN106130719A (zh) * | 2016-07-21 | 2016-11-16 | 中国科学院信息工程研究所 | 一种抵抗内存泄漏攻击的密码算法多核实现方法及装置 |
CN109522736A (zh) * | 2018-12-13 | 2019-03-26 | 中国科学院信息工程研究所 | 一种在操作系统中进行密码运算的方法和系统 |
US20190296909A1 (en) * | 2016-12-29 | 2019-09-26 | Intel Corporation | Graphics Processor With Encrypted Kernels |
-
2020
- 2020-06-30 CN CN202010622226.0A patent/CN111814162B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866406A (zh) * | 2010-06-18 | 2010-10-20 | 中国科学院软件研究所 | 一种栈溢出攻击防御方法 |
CN106130719A (zh) * | 2016-07-21 | 2016-11-16 | 中国科学院信息工程研究所 | 一种抵抗内存泄漏攻击的密码算法多核实现方法及装置 |
US20190296909A1 (en) * | 2016-12-29 | 2019-09-26 | Intel Corporation | Graphics Processor With Encrypted Kernels |
CN109522736A (zh) * | 2018-12-13 | 2019-03-26 | 中国科学院信息工程研究所 | 一种在操作系统中进行密码运算的方法和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287333A (zh) * | 2020-11-19 | 2021-01-29 | 衡阳师范学院 | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 |
CN112287333B (zh) * | 2020-11-19 | 2023-12-01 | 衡阳师范学院 | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 |
CN112906015A (zh) * | 2021-01-26 | 2021-06-04 | 浙江大学 | 一种基于硬件标签的内存敏感数据加密保护系统 |
CN112906015B (zh) * | 2021-01-26 | 2023-11-28 | 浙江大学 | 一种基于硬件标签的内存敏感数据加密保护系统 |
CN113688407A (zh) * | 2021-07-30 | 2021-11-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据管理方法及相关装置 |
CN116095685A (zh) * | 2022-06-01 | 2023-05-09 | 荣耀终端有限公司 | 关键信息的保护方法和终端设备 |
CN116095685B (zh) * | 2022-06-01 | 2023-11-14 | 荣耀终端有限公司 | 关键信息的保护方法和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111814162B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111814162B (zh) | 一种基于定制硬件安全属性的内核敏感数据保护方法 | |
Wichelmann et al. | Microwalk: A framework for finding side channels in binaries | |
US11403234B2 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
CN111052115B (zh) | 取决于调用路径的认证的数据处理装置和方法 | |
Lee et al. | Architecture for protecting critical secrets in microprocessors | |
US5081677A (en) | Crypotographic key version control facility | |
US5214698A (en) | Method and apparatus for validating entry of cryptographic keys | |
US20220382885A1 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
US10733313B2 (en) | Counter integrity tree for memory security | |
US8498418B2 (en) | Conversion of cryptographic key protection | |
US10237059B2 (en) | Diversified instruction set processing to enhance security | |
CN111291401B (zh) | 基于隐私保护的业务预测模型训练方法和装置 | |
US20080010686A1 (en) | Confidential Information Processing Device | |
US7970133B2 (en) | System and method for secure and flexible key schedule generation | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN110825672A (zh) | 用于联机加密处理的高性能自主硬件引擎 | |
CN112906015A (zh) | 一种基于硬件标签的内存敏感数据加密保护系统 | |
Hua et al. | MGX: Near-zero overhead memory protection for data-intensive accelerators | |
Haas et al. | itimed: Cache attacks on the apple a10 fusion soc | |
Irazoqui et al. | Did we learn from LLC side channel attacks? A cache leakage detection tool for crypto libraries | |
US20230259660A1 (en) | Integrity tree for memory security | |
Li et al. | A control flow integrity checking technique based on hardware support | |
CN112287357B (zh) | 一种针对嵌入式裸机系统的控制流验证方法与系统 | |
CN104639313B (zh) | 一种密码算法的检测方法 | |
US20240080193A1 (en) | Counter integrity tree |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |