CN118101201B - 一种基于DICE和pKVM的隐私数据保护系统和方法 - Google Patents
一种基于DICE和pKVM的隐私数据保护系统和方法 Download PDFInfo
- Publication number
- CN118101201B CN118101201B CN202410472240.5A CN202410472240A CN118101201B CN 118101201 B CN118101201 B CN 118101201B CN 202410472240 A CN202410472240 A CN 202410472240A CN 118101201 B CN118101201 B CN 118101201B
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012795 verification Methods 0.000 claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000002955 isolation Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims description 41
- 150000003839 salts Chemical class 0.000 claims description 37
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 claims description 5
- 238000013459 approach Methods 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 2
- 239000002131 composite material Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 8
- 238000007789 sealing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000010534 mechanism of action Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据处理技术领域,具体提供一种基于DICE和pKVM的隐私数据保护系统和方法,所述系统包括运行在主机系统环境中的隐私环境代理模块以及运行在虚拟机隔离环境中的密钥管理模块、隐私数据处理模块;隐私环境代理模块包括代理接口模块、配置模块和管理模块,密钥管理模块用于生成和管理对称密钥和不对称密钥,所述对称密钥用于隐私数据加密,所述不对称密钥用于签名验证;隐私数据处理模块用于通过所述密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理。解决了现有技术中对于隐私数据保护无法兼具不依赖硬件以及运行数据可靠性的技术问题。
Description
技术领域
本发明涉及数据处理技术领域,具体提供一种基于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 (7)
1.一种基于DICE和pKVM的隐私数据保护系统,其特征在于,包括运行在主机系统环境中的隐私环境代理模块以及运行在虚拟机隔离环境中的密钥管理模块、隐私数据处理模块;
所述隐私环境代理模块包括代理接口模块、配置模块和管理模块,所述代理接口模块用于给应用开发提供与虚拟机隔离环境通信的接口和服务调用,所述配置模块用于配置虚拟机中的程序、组件、主机与虚拟机之间的共享文件夹、CPU资源、内存大小和直通设备,所述管理模块用于根据配置模块产生的结果配置参数,调用VMM启动相应的虚拟机,提供虚拟机隔离运行环境,在虚拟机使用结束后,停止虚拟机;
所述密钥管理模块用于生成和管理对称密钥和不对称密钥,所述对称密钥用于隐私数据加密,所述不对称密钥用于签名验证;
所述隐私数据处理模块用于通过所述密钥管理模块提供的对称密钥和不对称密钥对隐私数据进行处理;
所述虚拟机隔离环境包括:
虚拟机操作系统,采用主流通用操作系统;
Hypervisor,采用基于开源pKVM的hypersivor,用于在硬件虚拟化支持的异常级别中提供主机系统环境和虚拟机隔离环境的切换保护,以及在Linux KVM基础上提供内存隔离增强、DMA隔离管控、中断处理和计时器增强;
基于DICE生成的CDI,由基于DICE的主机安全验证启动过程和虚拟机安全验证启动过程产生,用于提供给主机系统环境和虚拟机隔离环境的隐私计算使用;
所述主机安全验证启动过程采用ARM处理器非虚拟化主机扩展模式,提供hypervisor和主机安全验证启动过程,所述hypervisor的代码会在初始化硬件后从内核映像中分离并以EL2异常级别权限运行,主机系统以EL1异常级别权限运行;所述虚拟机安全验证启动过程采用可信启动固件和DICE加密可信链的结合,链式验证并加载运行虚拟机;
所述可信启动固件用于执行验证虚拟机引导加载程序的完整性,在不支持DICE机制的硬件上可提供模拟的UDS,并生成CDI提供给下一软件层,所述可信启动固件在所述hypervisor启动分离内核阶段载入受保护的内存中,为虚拟机链式验证提供可信执行根;
所述DICE加密可信链用于链式启动虚拟机操作系统,所述DICE加密可信链基于硬件中的UDS链式创建或读取安全启动中每个软件层独有的CDI和消息摘要值,在第一次启动虚拟机时执行创建操作,对各级启动软件栈执行签名,写入特定实例映像中,在后续启动已创建的虚拟机时,从所述特定实例映像中读取数据,从所述可信启动固件开始逐个软件层执行所述虚拟机安全验证启动过程;
所述CDI表示复合设备标识符,所述UDS表示设备唯一机密值,所述EL1、EL2表示ARM架构下的两种异常级别权限。
2.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护系统,其特征在于,所述内存隔离增强采用内存管理单元进行第二阶段地址转换的访问权限控制,通过内存页所有权标志位限制主机系统和虚拟机系统之间所有的内存访问;所述DMA隔离管控采用ARM处理器上的系统内存管理单位,对输入输出内存管理单元硬件以页面粒度控制内存读/写访问权限;所述中断处理和计时器增强采用完整的GICv3模拟方式,将计时器和IPI作为不受信任的模拟代码组成部分进行处理,所述GICv3表示一种通用的中断控制器,所述IPI表示处理器间中断。
3.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护系统,其特征在于,
所述对称密钥采用AES算法所需的密钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据主机应用程序明确的指令和数据,基于当前软件层的CDI、验证数据和空盐值,生成指定位数的对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据;
所述不对称密钥采用RSA算法所需的公钥和私钥,所述密钥管理模块通过vsock与主机应用建立通信连接,根据所述主机应用程序明确的指令和数据,基于当前软件层的CDI、验证数据和随机盐值,生成秘密种子,再基于所述秘密种子生成不对称密钥,所述验证数据包括主机应用程序提供的密码数据或由虚拟机读取直通设备提供的采集数据。
4.根据权利要求1所述的一种基于DICE和pKVM的隐私数据保护系统,其特征在于,所述对隐私数据进行处理包括:
根据主机应用程序发送的指令,使用对称密钥和不对称密钥对所述主机与虚拟机之间的共享文件夹中的数据文件进行加密或解密、完整性计算、签名或验签。
5.一种基于DICE和pKVM的隐私数据保护方法,其特征在于,包括以下步骤:
当hypervisor运行于处理器EL2异常级别,主机操作系统运行于EL1异常级别的运行环境中,隐私环境代理模块根据用户需求设置虚拟机相关配置,设置主机与虚拟机之间的共享文件夹,调用VMM在创建和启动虚拟机时,基于DICE加密可信链验证启动虚拟机,所述EL1、EL2表示ARM架构下的两种异常级别权限;
虚拟机安全启动后,密钥管理模块获取配置模块提供的当前虚拟机对应的程序和组件的映像信息,结合当前软件层的CDI,按照DICE规则派生出下一软件层的CDI,基于当前派生的CDI生成不对称密钥对,将不对称密钥对的的公钥传递给隐私数据处理模块,用于主机向虚拟机传输加密信息,所述CDI表示复合设备标识符;
主机应用程序通过vsock向隐私数据处理模块发起隐私数据处理请求;
隐私数据处理模块通过vsock向主机应用程序返回包含密钥管理模块生成的不对称密钥对的公钥;
主机应用程序获取不对称密钥对的公钥,并根据不对称密钥对的公钥使用不对称加密算法加密待发送的指令和数据,之后将加密的指令和数据通过vsock发送给所述隐私数据处理模块;
隐私数据处理模块使用不对称密钥对的私钥解密所述加密的指令和数据,并发送给密钥管理模块;
密钥管理模块基于当前软件层的CDI、验证数据和空盐值,动态生成新的对称密钥,密钥管理模块基于当前软件层的CDI、验证数据和随机盐值,生成新的不对称密钥;
隐私数据处理模块通过对称密钥对隐私数据进行加密或解密处理,隐私数据处理模块通过不对称密钥进行签名或验签处理,并返回执行结果给主机程序。
6.根据权利要求5所述的一种基于DICE和pKVM的隐私数据保护方法,其特征在于,隐私数据处理模块通过对称密钥对隐私数据进行加密处理,包括步骤:
对主机应用程序提供的数据使用对称密钥加密,得到加密数据;
若在生成密钥的过程中未使用空盐值,HMAC算法使用对称密钥计算加密数据的消息摘要值;若在生成密钥的过程中使用了空盐值,将空盐值与加密数据合并后,HMAC算法使用对称密钥计算加密数据的消息摘要值;
使用不对称密钥对的私钥对加密数据和消息摘要值进行签名;
将加密数据、消息摘要值、签名在主机与虚拟机之间的共享文件夹中存储,若在生成密钥的过程中使用了空盐值,将空盐值一起存储。
7.根据权利要求5所述的一种基于DICE和pKVM的隐私数据保护方法,其特征在于,隐私数据处理模块通过不对称密钥对隐私数据进行解密的处理,包括步骤:
向密钥管理模块申请解密所需密钥;
使用不对称密钥中的公钥对存储的加密数据和消息摘要值进行验证;
HMAC算法使用对称密钥对存储的加密数据和空盐值进行完整性验证;
在所述验证均通过的情况下,使用生成的对称密钥解密加密数据。
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 CN118101201A (zh) | 2024-05-28 |
CN118101201B true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547656A (zh) * | 2022-02-26 | 2022-05-27 | 北京工业大学 | 一种云环境下基于Intel SGX的两阶段远程证明方法 |
CN115499171A (zh) * | 2022-08-26 | 2022-12-20 | 先进操作系统创新中心(天津)有限公司 | 人工智能可信计算统一框架、边缘设备安全计算可信框架、安全控制及去中心化方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014079009A1 (zh) * | 2012-11-22 | 2014-05-30 | 华为技术有限公司 | 虚拟机的管理控制方法及装置、系统 |
CN105184164B (zh) * | 2015-09-08 | 2017-11-24 | 成都博元科技有限公司 | 一种数据处理方法 |
WO2020231952A1 (en) * | 2019-05-10 | 2020-11-19 | Intel Corporation | Container-first architecture |
CN113642041A (zh) * | 2021-08-14 | 2021-11-12 | 深圳众享互联科技有限公司 | 一种实现合约隐私的数据处理与存储方法 |
CN116841691B (zh) * | 2023-06-15 | 2024-07-26 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
CN116582261A (zh) * | 2023-06-25 | 2023-08-11 | 北京微芯区块链与边缘计算研究院 | 一种区块链隐私合约密钥系统及密钥生成方法、使用方法 |
-
2024
- 2024-04-19 CN CN202410472240.5A patent/CN118101201B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547656A (zh) * | 2022-02-26 | 2022-05-27 | 北京工业大学 | 一种云环境下基于Intel SGX的两阶段远程证明方法 |
CN115499171A (zh) * | 2022-08-26 | 2022-12-20 | 先进操作系统创新中心(天津)有限公司 | 人工智能可信计算统一框架、边缘设备安全计算可信框架、安全控制及去中心化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118101201A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103069428B (zh) | 不可信云基础设施中的安全虚拟机引导 | |
McCune et al. | Flicker: An execution infrastructure for TCB minimization | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
EP3201822B1 (en) | End-to-end security for hardware running verified software | |
JP5670578B2 (ja) | 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 | |
KR100611687B1 (ko) | 멀티-토큰 실 및 실 해제 | |
KR101067399B1 (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
US20230325492A1 (en) | Secure Runtime Systems And Methods | |
CN112005237A (zh) | 安全区中的处理器与处理加速器之间的安全协作 | |
CN109756492B (zh) | 基于sgx的云平台可信执行方法、装置、设备及介质 | |
CN103038746A (zh) | 用于基础设施即服务云环境中的可信执行的方法和装置 | |
KR20030082484A (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색 | |
Suciu et al. | Horizontal privilege escalation in trusted applications | |
US11436318B2 (en) | System and method for remote attestation in trusted execution environment creation using virtualization technology | |
Zhao et al. | vSGX: virtualizing SGX enclaves on AMD SEV | |
CN111431718A (zh) | 基于tee扩展的计算机通用安全加密转换层方法及系统 | |
Narayanan et al. | Remote attestation of confidential VMs using ephemeral vTPMs | |
Bornträger et al. | Secure your cloud workloads with IBM Secure Execution for Linux on IBM z15 and LinuxONE III | |
Bugiel et al. | Implementing an application-specific credential platform using late-launched mobile trusted module | |
Khan et al. | A protocol for preventing insider attacks in untrusted infrastructure-as-a-service clouds | |
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 | |
US20240037217A1 (en) | Digital content management through on-die cryptography and remote attestation |
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 |