CN118101201A - 一种基于DICE和pKVM的隐私数据保护***和方法 - Google Patents

一种基于DICE和pKVM的隐私数据保护***和方法 Download PDF

Info

Publication number
CN118101201A
CN118101201A CN202410472240.5A CN202410472240A CN118101201A CN 118101201 A CN118101201 A CN 118101201A CN 202410472240 A CN202410472240 A CN 202410472240A CN 118101201 A CN118101201 A CN 118101201A
Authority
CN
China
Prior art keywords
virtual machine
key
data
host
privacy
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
CN202410472240.5A
Other languages
English (en)
Other versions
CN118101201B (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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software 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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202410472240.5A priority Critical patent/CN118101201B/zh
Publication of CN118101201A publication Critical patent/CN118101201A/zh
Application granted granted Critical
Publication of CN118101201B publication Critical patent/CN118101201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及数据处理技术领域,具体提供一种基于DICE和pKVM的隐私数据保护***和方法,所述***包括运行在主机***环境中的隐私环境代理模块以及运行在虚拟机隔离环境中的密钥管理模块、隐私数据处理模块;隐私环境代理模块包括代理接口模块、配置模块和管理模块,密钥管理模块用于生成和管理对称密钥和不对称密钥,所述对称密钥用于隐私数据加密,所述不对称密钥用于签名验证;隐私数据处理模块用于通过所述密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理。解决了现有技术中对于隐私数据保护无法兼具不依赖硬件以及运行数据可靠性的技术问题。

Description

一种基于DICE和pKVM的隐私数据保护***和方法
技术领域
本发明涉及数据处理技术领域,具体提供一种基于DICE和pKVM的隐私数据保护***和方法。
背景技术
在当前隐私数据保护与处理技术中,基于密码学加密算法的数据处理方法和基于可信执行环境(TEE,Trusted Execution Environment)的数据处理方法都在各自擅长的领域中实现对隐私数据的处理与保护。
基于密码学加密算法的处理方法通常使用在可信度较低的开放***内,当该***遭受恶意攻击并获得读取***内存等高级权限时,内存中待加密处理的明文很有可能被窃取,隐私数据在***运行过程中得不到应有的保护。
为防止此类问题的发生,硬件厂商给出TrustZone等隔离安全域方案,衍生出了多种基于可信执行环境(TEE)的隐私计算方法。通过软硬件配合形成安全隔离的运行环境,结合加密算法,为隐私数据处理提供有力支持。但该方案与硬件结合过于紧密,不同硬件厂商推出的TEE技术各异,标准及***不统一,使得进行安全应用开发时效率较低,不易进行开发与升级维护。
隔离执行环境方案解决了常规密码学算法的执行环境安全问题。但是由于上述TrustZone安全隔离方案中的TEE执行权限最高,可以访问设备所有资源,在TEE被攻陷后,整个设备都面临较大的安全风险。而同样可以提供隔离执行环境的虚拟化技术则可以解决TrustZone技术过于依赖硬件和TEE操作***平台难统一的问题,且降低了受攻击后的安全风险(虚拟机被攻陷后只影响当前虚拟机执行环境的安全,不会影响其他执行环境的正常运行)。
在基于虚拟化的隔离技术中,KVM(Kernel-based Virtual Machine)基于硬件虚拟化扩展支持,为虚拟机提供隔离的虚拟运行环境,但KVM中运行的虚拟机内存依然能够被主机***访问,存在虚拟机运行数据泄漏的安全问题。pKVM(protected Kernel-basedVirtual Machine)虚拟化技术则进一步在ARM 64位处理器的EL2异常级别对主机和虚拟机的运行环境实施全面管控,解决了主机***与虚拟机***敏感运行数据的安全隔离问题,并已由谷歌开发人员基于ARM 64位处理器的硬件虚拟化实现并应用于安卓13中,为基于虚拟机通用操作***的安全隔离隐私计算提供了可能。但虚拟机环境没有TrustZone中的TEE的高权限,无法提供基于硬件HUK的密钥管理单元,缺少安全的密钥生成与管理机制。
发明内容
为了克服上述缺陷,提出了本发明,解决了现有技术中对于隐私数据保护无法兼具不依赖硬件以及运行数据可靠性的技术问题。
在第一方面,本发明提供一种基于DICE和pKVM的隐私数据保护***,包括运行在主机***环境中的隐私环境代理模块以及运行在虚拟机隔离环境中的密钥管理模块、隐私数据处理模块;
所述隐私环境代理模块包括代理接口模块、配置模块和管理模块,所述代理接口模块用于给应用开发提供与虚拟机隔离环境通信的接口和服务调用,所述配置模块用于配置虚拟机中的程序、组件、主机与虚拟机之间的共享文件夹、CPU资源、内存大小和直通设备,所述管理模块用于根据配置模块产生的结果配置参数,调用VMM启动相应的虚拟机,提供虚拟机隔离运行环境,在虚拟机使用结束后,停止虚拟机;
所述密钥管理模块用于生成和管理对称密钥和不对称密钥,所述对称密钥用于隐私数据加密,所述不对称密钥用于签名验证;
所述隐私数据处理模块用于通过所述密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理。
进一步,所述虚拟机隔离环境包括:
虚拟机操作***,采用主流通用操作***;
Hypervisor,采用基于开源pKVM的hypersivor,用于在硬件虚拟化支持的异常级别中提供主机***环境和虚拟机隔离环境的切换保护,以及在Linux KVM基础上提供内存隔离增强、DMA隔离管控、中断处理和计时器增强;
基于DICE生成的CDI,由基于DICE的主机安全验证启动过程和虚拟机安全验证启动过程产生,用于提供给主机***环境和虚拟机隔离环境的隐私计算使用。
进一步,所述内存隔离增强采用内存管理单元进行第二阶段地址转换的访问权限控制,通过内存页所有权标志位限制主机***和虚拟机***之间所有的内存访问;所述DMA隔离管控采用ARM处理器上的***内存管理单位,对输入输出内存管理单元硬件以页面粒度控制内存读/写访问权限;所述中断处理和计时器增强采用完整的GICv3模拟方式,将计时器和IPI作为不受信任的模拟代码组成部分进行处理。
进一步,所述主机安全验证启动过程采用ARM处理器非虚拟化主机扩展模式,提供hypervisor和主机安全验证启动过程,所述hypervisor的代码会在初始化硬件后从内核映像中分离并以EL2异常级别权限运行,主机***以EL1异常级别权限运行;所述虚拟机安全验证启动过程采用可信启动固件和DICE加密可信链的结合,链式验证并加载运行虚拟机。
进一步,所述可信启动固件用于执行验证虚拟机引导加载程序的完整性,在不支持DICE机制的硬件上可提供模拟的UDS,并生成CDI提供给下一软件层,所述可信启动固件在所述hypervisor启动分离内核阶段载入受保护的内存中,为虚拟机链式验证提供可信执行根;
所述DICE加密可信链用于链式启动虚拟机操作***,所述DICE加密可信链基于硬件中的UDS链式创建或读取安全启动中每个软件层独有的密封CDI和消息摘要值,在第一次启动虚拟机时执行创建操作,对各级启动软件栈执行签名,写入特定实例映像中,在后续启动已创建的虚拟机时,从所述特定实例映像中读取数据,从所述可信启动固件开始逐个软件层执行所述虚拟机安全验证启动过程。
进一步,所述对称密钥采用AES算法所需的密钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和空盐值,生成指定位数的对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据;
所述不对称密钥采用RSA算法所需的公钥和私钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据所述主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和随机盐值,生成秘密种子,再基于所述秘密种子生成不对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据。
进一步,所述对隐私数据进行处理包括:
根据主机应用程序发送的指令,使用对称密钥和不对称密钥对所述主机与虚拟机之间的共享文件夹中的数据文件进行加密或解密、完整性计算、签名或验签。
在第二方面,本发明提供一种基于DICE和pKVM的隐私数据保护方法,包括以下步骤:
当hypervisor运行于处理器EL2异常级别,主机操作***运行于EL1异常级别的运行环境中,隐私环境代理模块根据用户需求设置虚拟机相关配置,设置主机与虚拟机之间的共享文件夹,调用VMM在创建和启动虚拟机时,基于DICE加密可信链验证启动虚拟机;
虚拟机安全启动后,密钥管理模块获取配置模块提供的当前虚拟机对应的程序和组件的映像信息,结合当前软件层的密封CDI,按照DICE规则派生出下一软件层的密封CDI,基于当前派生的密封CDI生成不对称密钥对,将不对称密钥对的的公钥传递给隐私数据处理模块,用于主机向虚拟机传输加密信息;
主机应用程序通过vsock向隐私数据处理模块发起隐私数据处理请求;
隐私数据处理模块通过vsock向主机应用程序返回包含密钥管理模块生成的不对称密钥对的公钥;
主机应用程序获取不对称密钥对的公钥,并根据不对称密钥对的公钥使用不对称加密算法加密待发送的指令和数据,之后将加密的指令和数据通过vsock发送给所述隐私数据处理模块;
隐私数据处理模块使用不对称密钥对的私钥解密所述加密的指令和数据,并发送给密钥管理模块;
密钥管理模块基于当前软件层的密封CDI、验证数据和空盐值,动态生成新的对称密钥,密钥管理模块基于当前软件层的密封CDI、验证数据和随机盐值,生成新的不对称密钥;
隐私数据处理模块通过对称密钥对隐私数据进行加密或解密处理,隐私数据处理模块通过不对称密钥进行签名或验签处理,并返回执行结果给主机程序。
进一步,隐私数据处理模块通过对称密钥对隐私数据进行加密处理,包括步骤:
对主机应用程序提供的数据使用对称密钥加密,得到加密数据;
若在生成密钥的过程中未使用空盐值,HMAC算法使用对称密钥计算加密数据的消息摘要值;若在生成密钥的过程中使用了空盐值,将空盐值与加密数据合并后,HMAC算法使用对称密钥计算加密数据的消息摘要值;
使用不对称密钥对的私钥对加密数据和消息摘要值进行签名;
将加密数据、消息摘要值、签名在主机与虚拟机之间的共享文件夹中存储,若在生成密钥的过程中使用了空盐值,将空盐值一起存储。
进一步,隐私数据处理模块通过不对称密钥对隐私数据进行解密的处理,包括步骤:
向密钥管理模块申请解密所需密钥;
使用不对称密钥中的公钥对存储的加密数据和消息摘要值进行验证;
HMAC算法使用对称密钥对存储的加密数据和空盐值进行完整性验证;
在所述验证均通过的情况下,使用生成的对称密钥解密加密数据。
本发明的工作原理和有益效果:
本发明中,提供通用操作***安全隔离运行环境、减小攻击面的同时,基于DICE机制的加密计算可信根和用户隐私信息,动态生成所需的对称密钥、不对称密钥等各类加密密钥,综合运用加密算法,执行定制的管理策略,为隐私数据提供加密、完整性计算、签名等多层次安全保护。
附图说明
参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。此外,图中类似的数字用以表示类似的部件,其中:
图1是本发明一种基于DICE和pKVM的隐私数据保护***的原理框图;
图2是本发明一种基于DICE和pKVM的隐私数据保护方法的步骤原理示意图;
图3是本发明隐私数据保护方法中加密过程的步骤原理示意图;
图4是本发明隐私数据保护方法中解密过程的步骤原理示意图。
具体实施方式
下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
本方案基于pKVM的虚拟机提供KVM无法满足的安全隔离环境,可运行通用操作***,便于开发统一的安全应用,解决硬件TEE中过度依赖硬件的问题;本方案基于DICE安全机制为虚拟机安全启动提供保障,同时提供了一个动态生成密钥的管理方案,无需TrustZone为TEE提供硬件级的密钥存储与管理。在这样一个安全隔离环境下可执行机密计算,加解密计算过程中使用的密钥也能得到有效保证。
实施例1
图1是本发明一种基于DICE和pKVM的隐私数据保护***的原理框图。如图1所示,本实施例中的一种基于DICE和pKVM的隐私数据保护***主要包括主机***环境(绿色部分所示内容)和虚拟机隔离环境(红色部分所示内容),其中分别运行着主机操作***和虚拟机操作***,主机操作***中运行有隐私环境代理模块,虚拟机隔离环境包括虚拟机操作***、Hypervisor及基于DICE的可信根,虚拟机操作***中运行有相互连接的密钥管理模块及隐私数据处理模块。
一、主机***环境
主机操作***运行于主机***环境中,主机操作***中运行有隐私环境代理模块。
隐私环境代理模块包括代理接口模块、配置模块和管理模块,配置模块和管理模块相互连接。
代理接口模块用于给应用开发提供与虚拟机隔离环境通信的接口和服务调用。
配置模块用于配置虚拟机中的程序、组件、主机与虚拟机之间的共享文件夹、CPU资源、内存大小和直通设备。
管理模块用于根据配置模块产生的结果配置参数,调用VMM启动相应的虚拟机,提供虚拟机隔离运行环境,在虚拟机使用结束后,停止虚拟机。
二、虚拟机隔离环境
1、Hypervisor用于在硬件虚拟化支持的异常级别中提供主机***环境和虚拟机隔离环境的切换保护。
进一步,Hypervisor在实现主机***环境和虚拟机隔离环境之间环境隔离的作用机制如下:
Hypervisor采用基于开源pKVM的hypersivor,其在硬件虚拟化支持的异常级别中提供主机***环境和虚拟机隔离环境的切换保护以及在Linux KVM基础上提供内存隔离增强、DMA隔离管控、中断处理和计时器增强。
本实施例中,内存隔离增强采用MMU(Memory Management Unit,内存管理单元)重点进行第二阶段地址转换的访问权限控制,通过内存页所有权标志位限制主机操作***和虚拟机操作***之间所有的内存访问,达到内存隔离的目的。DMA隔离管控采用ARM处理器上的***内存管理单位(SMMU,System Memory Management Unit),对IOMMU(Input/OutputMemory Management Unit,输入输出内存管理单元)硬件以页面粒度控制内存读/写访问权限,实现隔离和直接分配。中断处理和计时器增强采用完整的GICv3(Generic InterruptController version 3)模拟方式,改变以往KVM将所有虚拟中断管理委托给 EL1 的主机的情况,增强中断处理和计时器隔离安全,将计时器和IPI(Inter-Processor Interrupt)作为不受信任的模拟代码组成部分进行处理。
2、基于DICE生成的CDI由基于DICE的主机安全验证启动过程和虚拟机安全验证启动过程产生,用于提供给主机***环境和虚拟机隔离环境隐私计算使用。主机安全验证启动过程用于确保主机启动过程的安全完整性;虚拟机安全验证启动过程,用于确保所述通用虚拟机操作***启动过程安全完整。
进一步,基于DICE生成的CDI在实现主机***环境和虚拟机隔离环境之间环境隔离的作用机制如下:
主机安全验证启动过程,采用ARM处理器非虚拟化主机扩展nVHE(non-Virtualization Host Extensions)模式,在该模式下提供hypervisor和主机安全验证启动过程,主机安全验证启动过程参考android验证启动(AVB)过程以确保各启动阶段数据的完整性,hypervisor的代码会在初始化硬件后第一时间从内核映像中分离并以EL2异常级别权限运行,做好自我保护而不再信任主机操作***内核,主机操作***以EL1异常级别权限运行。
虚拟机安全验证启动过程,采用可信启动固件和DICE加密可信链的结合,链式验证并加载运行虚拟机。
其中,可信启动固件用于执行验证虚拟机引导加载程序的完整性,在不支持DICE机制的硬件上可提供模拟的UDS(Unique Device Secret),并生成CDI(Compound DeviceIdentifier)提供给下一软件层,如虚拟机引导加载程序;可信启动固件在hypervisor启动分离内核阶段载入受保护的内存中,为虚拟机链式验证提供可信执行根;
DICE加密可信链用于链式启动虚拟机操作***,DICE加密可信链基于硬件中的UDS链式创建或读取安全启动中每个软件层(虚拟机引导加载程序层、内核层等)独有的密封CDI和消息摘要值等机密信息,在第一次启动虚拟机时执行创建操作,对各级启动软件栈执行签名,写入特定实例映像中,在后续启动已创建的虚拟机时,从特定实例映像中读取数据,从可信启动固件开始逐个软件层执行虚拟机安全验证启动过程。
3、虚拟机操作***
虚拟机操作***运行于虚拟机隔离环境中,是主流通用操作***,具体的,可以是采用裁减定制的安卓通用操作***;虚拟机操作***中运行有相互连接的密钥管理模块和隐私数据处理模块,密钥管理模块和隐私数据处理模块均通过vsock与主机操作***内的主机应用程序建立通信连接。
密钥管理模块用于生成和管理对称密钥和不对称密钥,对称密钥用于隐私数据加密,不对称密钥用于签名验证。
对称密钥采用AES算法所需的密钥,根据主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和空盐值,生成指定位数的对称密钥,验证数据包括主机应用程序提供密码数据(数据中的密码部分),或无需主机应用程序提供,由虚拟机直接读取直通设备提供的采集数据,如摄像头的人脸数据。
不对称密钥采用RSA算法所需的公钥和私钥,根据主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和随机盐值,生成秘密种子,再基于秘密种子生成不对称密钥,随机盐值可以是一个特定的字符串常量,验证数据包括主机应用程序提供的密码数据(数据中的密码部分),或无需主机应用程序提供,由虚拟机直接读取直通设备提供的采集数据,如摄像头的人脸数据。
隐私数据处理模块用于通过密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理,根据主机应用程序发送的指令完成隐私数据加密或解密、完整性计算、签名或验签等功能。
本实施例中,对隐私数据进行处理包括:根据主机应用程序发送的指令,使用对称密钥和不对称密钥对主机与虚拟机之间的共享文件夹中的数据文件进行加密或解密、完整性计算、签名或验签。其中,主机应用程序提供的数据是未被加密保护的隐私数据,共享文件夹中的数据文件是已经被加密的主机应用程序提供的数据。
实施例2
图2是本发明一种基于DICE和pKVM的隐私数据保护方法的步骤原理示意图。如图2所示,本实施例提出了一种基于DICE和pKVM的隐私数据保护方法,包括以下步骤:
当hypervisor运行于处理器EL2异常级别,主机操作***运行于EL1异常级别的运行环境中,隐私环境代理模块根据用户需求设置虚拟机相关配置,设置主机与虚拟机之间的共享文件夹,调用VMM在创建和启动虚拟机时,基于DICE加密可信链验证启动虚拟机。
虚拟机安全启动后,密钥管理模块获取配置模块提供的当前虚拟机对应的程序和组件的映像信息,结合当前软件层(如虚拟机操作***内核)的密封CDI,按照DICE规则派生出下一软件层(即虚拟机需要加载运行的额外可执行程序和组件)的密封CDI。基于当前派生的密封CDI生成不对称密钥对,将不对称密钥对的公钥传递给隐私数据处理模块,用于主机向虚拟机传输加密信息;
主机应用程序通过vsock向隐私数据处理模块发起隐私数据处理请求;
隐私数据处理模块通过vsock向主机应用程序返回包含密钥管理模块生成的不对称密钥对的公钥;
主机应用程序获取不对称密钥对的公钥,并根据不对称密钥对的公钥使用不对称加密算法(如RSA算法)加密待发送的指令和数据,之后将加密的指令和数据通过vsock发送给隐私数据处理模块;
隐私数据处理模块使用不对称密钥对的私钥解密加密的指令和数据,并发送给密钥管理模块;
密钥管理模块基于当前软件层的密封CDI、验证数据和空盐值,动态生成新的对称密钥,验证数据包括主机应用提供的密码数据(数据中的密码部分),或无需主机应用程序提供,由虚拟机直接读取直通设备提供的采集数据,如摄像头的人脸数据,密钥管理模块基于当前软件层的密封CDI、验证数据和随机盐值,生成新的不对称密钥,随机盐值也可以是一个特定的字符串常量,验证数据包括主机应用提供的密码数据(数据中的密码部分),或无需主机应用程序提供,由虚拟机直接读取直通设备提供的采集数据,如摄像头的人脸数据;
隐私数据处理模块通过对称密钥对隐私数据进行加密或解密处理,隐私数据处理模块通过不对称密钥进行签名或验签处理,并返回执行结果给主机程序。
其中,隐私数据包括主机应用程序提供的数据、虚拟机内加载运行程序生成的数据和配置模块配置的共享文件夹中的数据文件等。主机应用程序提供的数据是未被加密保护的隐私数据,共享文件夹中的数据文件是已经被加密的主机应用程序提供的数据。虚拟机内加载运行程序生成的数据在计算处理时为明文,计算完成后再加密存储。在与主机***进行指令和数据的传输交互时,使用的交互公钥是用来加密这些指令和数据的,在虚拟机里再使用私钥来解密。后面重新生成的非对称密钥是用来签名与验签隐私数据的,对称密钥则是将明文的隐私数据加密成密文。
图3是本发明隐私数据保护方法中加密过程的步骤原理示意图。如图3所示,隐私数据处理模块对隐私数据进行加密处理,包括步骤:
对主机应用程序提供的数据使用对称密钥加密,得到加密数据。
若在生成密钥的过程中未使用空盐值,HMAC算法使用对称密钥计算加密数据的消息摘要值;若在生成密钥的过程中使用了空盐值,将空盐值与加密数据合并后,HMAC算法使用对称密钥计算加密数据的消息摘要值;
使用不对称密钥对的私钥对加密数据和消息摘要值进行签名;
将加密数据、消息摘要值、签名在主机与虚拟机之间的共享文件夹中存储,若在生成密钥的过程中使用了空盐值,将空盐值一起存储。
图4是本发明隐私数据保护方法中解密过程的步骤原理示意图。如图4所示,隐私数据处理模块对隐私数据进行解密的处理,包括步骤:
1、向密钥管理模块申请解密所需密钥。
假设上次加密数据后,重启了虚拟机,那么此时密钥管理模块未生成过密钥,所以在此步骤之后,还需要判断密钥管理模块中是否已有生成密钥;
2、若有,则执行如下操作:
(1)使用不对称密钥对的公钥对共享文件夹中的数据文件和消息摘要值进行验签;
(2)判断是否成功验签。
若验签失败,则中止操作,返回错误;
若验签成功,则判断是否存在空盐值:若存在,则HMAC算法使用对称密钥对存储的加密数据和空盐值进行完整性验证;若不存在,则HMAC算法使用对称密钥对存储的加密数据进行完整性验证;
(3)判断是否通过完整性验证。
若未通过完整性验证,则中止操作,返回错误;
若通过完整性验证,则使用对称密钥解密在共享文件夹中读取的数据文件,根据主机应用程序提供的指令处理该数据文件;
(4)隐私数据处理完后按照图3的逻辑对隐私数据进行加密存储;
3、若无,则先执行如下操作,再执行上述步骤2中的(1)-(4)
读取存储的空盐值。由于在图3所示的加密过程里,加密的最后会将空盐值附在加密文件后一起存储,读取加密数据文件时就可以一起读取。
若成功读取空盐值,则基于当前软件层的密封CDI、验证数据和空盐值生成对称密钥以及不对称密钥对;
若未成功读取空盐值,则基于当前软件层的密封CDI及验证数据生成对称密钥以及不对称密钥对;
需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (10)

1.一种基于DICE和pKVM的隐私数据保护***,其特征在于,包括运行在主机***环境中的隐私环境代理模块以及运行在虚拟机隔离环境中的密钥管理模块、隐私数据处理模块;
所述隐私环境代理模块包括代理接口模块、配置模块和管理模块,所述代理接口模块用于给应用开发提供与虚拟机隔离环境通信的接口和服务调用,所述配置模块用于配置虚拟机中的程序、组件、主机与虚拟机之间的共享文件夹、CPU资源、内存大小和直通设备,所述管理模块用于根据配置模块产生的结果配置参数,调用VMM启动相应的虚拟机,提供虚拟机隔离运行环境,在虚拟机使用结束后,停止虚拟机;
所述密钥管理模块用于生成和管理对称密钥和不对称密钥,所述对称密钥用于隐私数据加密,所述不对称密钥用于签名验证;
所述隐私数据处理模块用于通过所述密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理。
2.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,所述虚拟机隔离环境包括:
虚拟机操作***,采用主流通用操作***;
Hypervisor,采用基于开源pKVM的hypersivor,用于在硬件虚拟化支持的异常级别中提供主机***环境和虚拟机隔离环境的切换保护,以及在Linux KVM基础上提供内存隔离增强、DMA隔离管控、中断处理和计时器增强;
基于DICE生成的CDI,由基于DICE的主机安全验证启动过程和虚拟机安全验证启动过程产生,用于提供给主机***环境和虚拟机隔离环境的隐私计算使用。
3.根据权利要求2所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,所述内存隔离增强采用内存管理单元进行第二阶段地址转换的访问权限控制,通过内存页所有权标志位限制主机***和虚拟机***之间所有的内存访问;所述DMA隔离管控采用ARM处理器上的***内存管理单位,对输入输出内存管理单元硬件以页面粒度控制内存读/写访问权限;所述中断处理和计时器增强采用完整的GICv3模拟方式,将计时器和IPI作为不受信任的模拟代码组成部分进行处理。
4.根据权利要求2所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,所述主机安全验证启动过程采用ARM处理器非虚拟化主机扩展模式,提供hypervisor和主机安全验证启动过程,所述hypervisor的代码会在初始化硬件后从内核映像中分离并以EL2异常级别权限运行,主机***以EL1异常级别权限运行;所述虚拟机安全验证启动过程采用可信启动固件和DICE加密可信链的结合,链式验证并加载运行虚拟机。
5.根据权利要求4所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,所述可信启动固件用于执行验证虚拟机引导加载程序的完整性,在不支持DICE机制的硬件上可提供模拟的UDS,并生成CDI提供给下一软件层,所述可信启动固件在所述hypervisor启动分离内核阶段载入受保护的内存中,为虚拟机链式验证提供可信执行根;
所述DICE加密可信链用于链式启动虚拟机操作***,所述DICE加密可信链基于硬件中的UDS链式创建或读取安全启动中每个软件层独有的密封CDI和消息摘要值,在第一次启动虚拟机时执行创建操作,对各级启动软件栈执行签名,写入特定实例映像中,在后续启动已创建的虚拟机时,从所述特定实例映像中读取数据,从所述可信启动固件开始逐个软件层执行所述虚拟机安全验证启动过程。
6.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,
所述对称密钥采用AES算法所需的密钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和空盐值,生成指定位数的对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据;
所述不对称密钥采用RSA算法所需的公钥和私钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据所述主机应用程序明确的指令和数据,基于当前软件层的密封CDI、验证数据和随机盐值,生成秘密种子,再基于所述秘密种子生成不对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据。
7.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护***,其特征在于,所述对隐私数据进行处理包括:
根据主机应用程序发送的指令,使用对称密钥和不对称密钥对所述主机与虚拟机之间的共享文件夹中的数据文件进行加密或解密、完整性计算、签名或验签。
8.一种基于DICE和pKVM的隐私数据保护方法,其特征在于,包括以下步骤:
当hypervisor运行于处理器EL2异常级别,主机操作***运行于EL1异常级别的运行环境中,隐私环境代理模块根据用户需求设置虚拟机相关配置,设置主机与虚拟机之间的共享文件夹,调用VMM在创建和启动虚拟机时,基于DICE加密可信链验证启动虚拟机;
虚拟机安全启动后,密钥管理模块获取配置模块提供的当前虚拟机对应的程序和组件的映像信息,结合当前软件层的密封CDI,按照DICE规则派生出下一软件层的密封CDI,基于当前派生的密封CDI生成不对称密钥对,将不对称密钥对的的公钥传递给隐私数据处理模块,用于主机向虚拟机传输加密信息;
主机应用程序通过vsock向隐私数据处理模块发起隐私数据处理请求;
隐私数据处理模块通过vsock向主机应用程序返回包含密钥管理模块生成的不对称密钥对的公钥;
主机应用程序获取不对称密钥对的公钥,并根据不对称密钥对的公钥使用不对称加密算法加密待发送的指令和数据,之后将加密的指令和数据通过vsock发送给所述隐私数据处理模块;
隐私数据处理模块使用不对称密钥对的私钥解密所述加密的指令和数据,并发送给密钥管理模块;
密钥管理模块基于当前软件层的密封CDI、验证数据和空盐值,动态生成新的对称密钥,密钥管理模块基于当前软件层的密封CDI、验证数据和随机盐值,生成新的不对称密钥;
隐私数据处理模块通过对称密钥对隐私数据进行加密或解密处理,隐私数据处理模块通过不对称密钥进行签名或验签处理,并返回执行结果给主机程序。
9.根据权利要求8所述的一种基于DICE和pKVM的隐私数据保护方法,其特征在于,隐私数据处理模块通过对称密钥对隐私数据进行加密处理,包括步骤:
对主机应用程序提供的数据使用对称密钥加密,得到加密数据;
若在生成密钥的过程中未使用空盐值,HMAC算法使用对称密钥计算加密数据的消息摘要值;若在生成密钥的过程中使用了空盐值,将空盐值与加密数据合并后,HMAC算法使用对称密钥计算加密数据的消息摘要值;
使用不对称密钥对的私钥对加密数据和消息摘要值进行签名;
将加密数据、消息摘要值、签名在主机与虚拟机之间的共享文件夹中存储,若在生成密钥的过程中使用了空盐值,将空盐值一起存储。
10.根据权利要求8所述的一种基于DICE和pKVM的隐私数据保护方法,其特征在于,隐私数据处理模块通过不对称密钥对隐私数据进行解密的处理,包括步骤:
向密钥管理模块申请解密所需密钥;
使用不对称密钥中的公钥对存储的加密数据和消息摘要值进行验证;
HMAC算法使用对称密钥对存储的加密数据和空盐值进行完整性验证;
在所述验证均通过的情况下,使用生成的对称密钥解密加密数据。
CN202410472240.5A 2024-04-19 2024-04-19 一种基于DICE和pKVM的隐私数据保护***和方法 Active CN118101201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410472240.5A CN118101201B (zh) 2024-04-19 2024-04-19 一种基于DICE和pKVM的隐私数据保护***和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410472240.5A CN118101201B (zh) 2024-04-19 2024-04-19 一种基于DICE和pKVM的隐私数据保护***和方法

Publications (2)

Publication Number Publication Date
CN118101201A true CN118101201A (zh) 2024-05-28
CN118101201B CN118101201B (zh) 2024-07-19

Family

ID=91144086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410472240.5A Active CN118101201B (zh) 2024-04-19 2024-04-19 一种基于DICE和pKVM的隐私数据保护***和方法

Country Status (1)

Country Link
CN (1) CN118101201B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150256341A1 (en) * 2012-11-22 2015-09-10 Huawei Technologies Co., Ltd. Management Control Method, Apparatus, and System for Virtual Machine
CN105184164A (zh) * 2015-09-08 2015-12-23 成都博元科技有限公司 一种数据处理方法
CN113642041A (zh) * 2021-08-14 2021-11-12 深圳众享互联科技有限公司 一种实现合约隐私的数据处理与存储方法
CN114547656A (zh) * 2022-02-26 2022-05-27 北京工业大学 一种云环境下基于Intel SGX的两阶段远程证明方法
US20220171648A1 (en) * 2019-05-10 2022-06-02 Intel Corporation Container-first architecture
CN115499171A (zh) * 2022-08-26 2022-12-20 先进操作***创新中心(天津)有限公司 人工智能可信计算统一框架、边缘设备安全计算可信框架、安全控制及去中心化方法
CN116582261A (zh) * 2023-06-25 2023-08-11 北京微芯区块链与边缘计算研究院 一种区块链隐私合约密钥***及密钥生成方法、使用方法
CN116841691A (zh) * 2023-06-15 2023-10-03 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150256341A1 (en) * 2012-11-22 2015-09-10 Huawei Technologies Co., Ltd. Management Control Method, Apparatus, and System for Virtual Machine
CN105184164A (zh) * 2015-09-08 2015-12-23 成都博元科技有限公司 一种数据处理方法
US20220171648A1 (en) * 2019-05-10 2022-06-02 Intel Corporation Container-first architecture
CN113642041A (zh) * 2021-08-14 2021-11-12 深圳众享互联科技有限公司 一种实现合约隐私的数据处理与存储方法
CN114547656A (zh) * 2022-02-26 2022-05-27 北京工业大学 一种云环境下基于Intel SGX的两阶段远程证明方法
CN115499171A (zh) * 2022-08-26 2022-12-20 先进操作***创新中心(天津)有限公司 人工智能可信计算统一框架、边缘设备安全计算可信框架、安全控制及去中心化方法
CN116841691A (zh) * 2023-06-15 2023-10-03 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备
CN116582261A (zh) * 2023-06-25 2023-08-11 北京微芯区块链与边缘计算研究院 一种区块链隐私合约密钥***及密钥生成方法、使用方法

Also Published As

Publication number Publication date
CN118101201B (zh) 2024-07-19

Similar Documents

Publication Publication Date Title
CN109858265B (zh) 一种加密方法、装置及相关设备
McCune et al. Flicker: An execution infrastructure for TCB minimization
CN103069428B (zh) 不可信云基础设施中的安全虚拟机引导
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
US8391494B1 (en) Systems and methods for protecting enterprise rights management keys
KR100611687B1 (ko) 멀티-토큰 실 및 실 해제
US11323259B2 (en) Version control for trusted computing
WO2019185125A1 (en) Trusted execution environment instances licenses management
US20230325492A1 (en) Secure Runtime Systems And Methods
CN109756492B (zh) 基于sgx的云平台可信执行方法、装置、设备及介质
JP2013545182A (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
Suciu et al. Horizontal privilege escalation in trusted applications
CN111431718A (zh) 基于tee扩展的计算机通用安全加密转换层方法及***
Narayanan et al. Remote attestation of confidential VMs using ephemeral vTPMs
EP3776303A1 (en) Instance handling of a trusted execution environment
Bugiel et al. Implementing an application-specific credential platform using late-launched mobile trusted module
CN118101201B (zh) 一种基于DICE和pKVM的隐私数据保护***和方法
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud
CN114491544A (zh) 一种虚拟可信平台模块的实现方法及相关装置
Chu et al. Secure cryptography infrastructures in the cloud
US20230267214A1 (en) Virtual trusted platform module implementation method and related apparatus
EP4174694A1 (en) Method for securely executing an application
US20240037217A1 (en) Digital content management through on-die cryptography and remote attestation
Weiß et al. Integrity verification and secure loading of remote binaries for microkernel-based runtime environments
McCune et al. An execution infrastructure for TCB minimization

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