CN116305092A - 一种可信的虚拟化系统的实现方法及系统 - Google Patents

一种可信的虚拟化系统的实现方法及系统 Download PDF

Info

Publication number
CN116305092A
CN116305092A CN202310579268.4A CN202310579268A CN116305092A CN 116305092 A CN116305092 A CN 116305092A CN 202310579268 A CN202310579268 A CN 202310579268A CN 116305092 A CN116305092 A CN 116305092A
Authority
CN
China
Prior art keywords
virtual machine
host
log file
verification
certificates
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
CN202310579268.4A
Other languages
English (en)
Other versions
CN116305092B (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.)
Shandong Trusted Cloud Information Technology Research Institute
Original Assignee
Shandong Trusted Cloud Information Technology Research Institute
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 Shandong Trusted Cloud Information Technology Research Institute filed Critical Shandong Trusted Cloud Information Technology Research Institute
Priority to CN202310579268.4A priority Critical patent/CN116305092B/zh
Publication of CN116305092A publication Critical patent/CN116305092A/zh
Application granted granted Critical
Publication of CN116305092B publication Critical patent/CN116305092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供一种可信的虚拟化系统的实现方法及系统,属于信息安全技术领域;该方法包括以下步骤:主机和虚拟机分别进行注册,获取主机和虚拟机的证书;在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;对主机和虚拟机的PCR值以及日志文件进行验证。该系统包括:注册模块、获取模块、解密模块和验证模块。本发明将可信技术与云虚拟化技术相结合,确保重要的数据不被篡改。当发生篡改时,能够识别,并采取应对措施。

Description

一种可信的虚拟化系统的实现方法及系统
技术领域
本发明涉及信息安全技术领域,具体涉及一种可信的虚拟化系统的实现方法及系统。
背景技术
虚拟化集群中的系统可信性问题包括主机软件的可信性,以及运行在主机上的虚拟机的可信性问题。这里的可信性,是指主机以及虚拟机上文件的完整性。它包括启动的可信性以及启动完毕之后对系统的持续的动态度量验证。在一般的可信系统中,虚拟机对于TPM硬件的使用是一大难点与痛点,基本上虚拟机中的TPM器件以软件模拟为主,数据容易被篡改。
发明内容
本发明的目的在于提供一种可信的虚拟化系统的实现方法及系统,解决虚拟化集群中的系统可信性问题。
为解决上述技术问题,本发明提供一种可信的虚拟化系统的实现方法,包括以下步骤:
主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
对主机和虚拟机的PCR值以及日志文件进行验证。
优选地,对主机和虚拟机的PCR值以及日志文件进行验证,具体包括以下步骤:
主机和虚拟机各自的日志文件与相应的PCR值进行匹配;若主机和虚拟机的日志文件与相应的PCR值不匹配,则验证失败;
主机和虚拟机的日志文件分别与白名单进行对比;若主机或虚拟机的日志文件与白名单对比失败,则验证失败。
优选地,验证失败之后,还包括以下步骤:
若主机的日志文件与相应的PCR值不匹配,或主机的日志文件与白名单对比失败,则主机的日志文件被篡改;
获取主机被篡改前的日志文件,覆盖主机的日志文件,进行重新验证;
若重新验证失败,则将主机进行隔离;
若重新验证成功,则告警后用户自行处理主机。
优选地,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则虚拟机的日志文件被篡改;
获取虚拟机被篡改前的日志文件,覆盖虚拟机的日志文件,进行重新验证;
若重新验证失败,则将虚拟机进行隔离;
若重新验证成功,则告警后用户自行处理虚拟机。
优选地,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则对相应的虚拟机进行断网,然后用户自行处理。
优选地,主机和虚拟机分别进行注册,获取主机和虚拟机的证书,具体包括以下步骤:
获取主机和虚拟机的EKCERT证书、通用唯一识别码UUIDTPM、公钥EK和身份认证密钥AIK,作为主机和虚拟机的证书;
验证主机和虚拟机的EKCERT证书是否合法;
若主机和虚拟机的EKCERT证书合法,则生成随机数random;
将随机数random发送给若主机和虚拟机;
以随机数random作为密钥,对获取到的主机和虚拟机的通用唯一识别码UUIDTPM,以及主机和虚拟机中的原始通用唯一识别码UUIDTPM分别进行HMAC操作,得到主机和虚拟机的第一验证序列和第二验证序列;
主机的第一验证序列与第二验证序列进行对比,虚拟机的第一验证序列与第二验证序列进行对比;若主机和虚拟机各自的第一验证序列与第二验证序列均相同,则注册成功。
优选地,将随机数random发送给若主机和虚拟机,具体包括以下步骤:
随机数random分别通过获取到的主机和虚拟机各自的公钥EK和身份认证密钥AIK加密,得到加密后数据,然后发送给相应的主机和虚拟机;
主机和虚拟机分别通过各自的原始公钥EK和身份认证密钥AIK对加密后数据进行解密,得到随机数random。
优选地,所述虚拟机从相应的主机中获取公钥EK和身份认证密钥AIK,作为虚拟机的公钥EK和身份认证密钥AIK。
本发明还提供一种可信的虚拟化系统的实现系统,包括:
注册模块,用于主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
获取模块,用于在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
解密模块,用于根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
验证模块,用于对主机和虚拟机的PCR值以及日志文件进行验证。
与现有技术相比,本发明的有益效果为:
本发明将可信技术与云虚拟化技术相结合,确保重要的数据不被篡改。当发生篡改时,能够识别,并采取应对措施。可信技术依赖于TPM硬件或TCM硬件,本发明实现了一种虚拟机与硬件的关联方式。并以此为基础,对于整个系统进行完整性度量。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1是本发明一种可信的虚拟化系统的实现方法的流程示意图;
图2是实现系统的整体架构示意图;
图3是主机注册的流程示意图;
图4是虚拟机注册的流程示意图;
图5是主机可信性监控的流程示意图;
图6是虚拟机可信性监控的流程示意图;
图7是可信度量失败处理流程示意图;
图8是应对度量失败的措施的流程示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合图1-图8对本发明做进一步的详细描述:
本发明提供一种可信的虚拟化系统的实现方法,包括以下步骤:
主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
对主机和虚拟机的PCR值以及日志文件进行验证。
优选地,对主机和虚拟机的PCR值以及日志文件进行验证,具体包括以下步骤:
主机和虚拟机各自的日志文件与相应的PCR值进行匹配;若主机和虚拟机的日志文件与相应的PCR值不匹配,则验证失败;
主机和虚拟机的日志文件分别与白名单进行对比;若主机或虚拟机的日志文件与白名单对比失败,则验证失败。
优选地,验证失败之后,还包括以下步骤:
若主机的日志文件与相应的PCR值不匹配,或主机的日志文件与白名单对比失败,则主机的日志文件被篡改;
获取主机被篡改前的日志文件,覆盖主机的日志文件,进行重新验证;
若重新验证失败,则将主机进行隔离;
若重新验证成功,则告警后用户自行处理主机。
优选地,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则虚拟机的日志文件被篡改;
获取虚拟机被篡改前的日志文件,覆盖虚拟机的日志文件,进行重新验证;
若重新验证失败,则将虚拟机进行隔离;
若重新验证成功,则告警后用户自行处理虚拟机。
优选地,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则对相应的虚拟机进行断网,然后用户自行处理。
优选地,主机和虚拟机分别进行注册,获取主机和虚拟机的证书,具体包括以下步骤:
获取主机和虚拟机的EKCERT证书、通用唯一识别码UUIDTPM、公钥EK和身份认证密钥AIK,作为主机和虚拟机的证书;
验证主机和虚拟机的EKCERT证书是否合法;
若主机和虚拟机的EKCERT证书合法,则生成随机数random;
将随机数random发送给若主机和虚拟机;
以随机数random作为密钥,对获取到的主机和虚拟机的通用唯一识别码UUIDTPM,以及主机和虚拟机中的原始通用唯一识别码UUIDTPM分别进行HMAC操作,得到主机和虚拟机的第一验证序列和第二验证序列;
主机的第一验证序列与第二验证序列进行对比,虚拟机的第一验证序列与第二验证序列进行对比;若主机和虚拟机各自的第一验证序列与第二验证序列均相同,则注册成功。
优选地,将随机数random发送给若主机和虚拟机,具体包括以下步骤:
随机数random分别通过获取到的主机和虚拟机各自的公钥EK和身份认证密钥AIK加密,得到加密后数据,然后发送给相应的主机和虚拟机;
主机和虚拟机分别通过各自的原始公钥EK和身份认证密钥AIK对加密后数据进行解密,得到随机数random。
优选地,所述虚拟机从相应的主机中获取公钥EK和身份认证密钥AIK,作为虚拟机的公钥EK和身份认证密钥AIK。
本发明还提供一种可信的虚拟化系统的实现系统,包括:
注册模块,用于主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
获取模块,用于在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
解密模块,用于根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
验证模块,用于对主机和虚拟机的PCR值以及日志文件进行验证。
为了更好的说明本发明的技术效果,本发明提供如下具体实施例说明上述技术流程,包括以下步骤:本发明基于tpm2.0硬件以及相关技术,解决虚拟化集群中的系统可信性问题。
实施例1,一种可信的虚拟化系统的实现方法,如图1所示:
(1)方案的整体架构,如图2所示;
根据可度量启动的规定,统一可扩展固件接口UEFI在启动过程中,会将启动过程中执行到的代码(或数据)的哈希值扩展到TPM硬件的PCR寄存器中。哈希值被扩展到PCR寄存器中的代码或数据包括统一可扩展固件接口UEFI有关模块、统一可扩展固件接口UEFI中的证书、内核、内核启动参数等等。Linux主机含有IMA模块,它是内核的一部分。内核启动完毕后,IMA模块会根据策略配置,每当加载可执行程序时,都会将可执行程序的哈希值扩展到TPM硬件的PCR10中。如此,整个机器从启动到运行,所有的可执行文件以及重要数据都完成了可信性度量。
此方法主要是通过监控可信计算(TCG)规定的上述各种PCR值,来完成虚拟化集群的可信性度量。可信度量是基于TPM硬件的。而虚拟机中并不存在真正的硬件。本发明将vTPM与TPM硬件关联在一起,使vTPM持有硬件属性。从而保证度量的可信性。
从架构图中可以看到,主机和虚拟机都有一个Agent模块。Agent模块会持续将PCR中的值以及相关的日志文件向可信管理平台发送。可信管理平台的verifier模块模块会进行两个验证,(1)日志文件是否与PCR值相匹配,若匹配则证明日志文件没有被篡改。(2)将Agent模块的日志文件与verifier模块的白名单进行对比,如果发现不一致,则认为相关机器不可信。
(2)主机与虚拟机的注册;
由于主机持有TPM硬件。所以主机向register模块注册是简单的,如图3所示。
1、主机上的Agent模块启动之后,会操作TPM硬件,生成公钥EK,身份认证密钥AIK。作为TPM硬件的EKCERT证书。
2、Agent模块将TPM硬件的EKCERT证书,以及TPM生成的公钥EK,以及身份认证密钥AIK,以及自己的通用唯一识别码UUID发送给register模块进行HMAC操作。
3、register模块收到之后,会验证EKCERT证书是否合法,即此TPM硬件是否是合法硬件。同时会生成一个随机数random,并用主机的公钥EK, 身份认证密钥AIK加密。然后发送给主机Agent模块。
4、Agent模块收到加密后数据之后,进行解密获得随机数random。对于random的解密是TPM硬件参与的,因为只有TPM硬件有对应的私钥。一般通过tpm2_makecredential,tpm2_activatecredential命令行完成相应功能。主机解密random后,使用random做密钥,对通用唯一识别码UUID进行HMAC操作,并将结果发送给register模块。
5、register模块收到之后,对比两次HMAC操作的结果是否相同,如果相同,则注册成功。
虚拟机没有真正的TPM硬件,只能使用软件模拟加底层硬件支持相结合的方式,如图4所示。
与主机Agent模块不同的是,虚拟机公钥EK和身份认证密钥AIK的生成是通过自己的主机的TPM硬件。同样,涉及到的硬件操作也是主机上的TPM硬件完成的。由于TPM硬件的资源是有限的,当虚拟机过多时,需要将TPM硬件的数据通过TPM硬件加密导出到硬件之外,在使用时候,再加载到TPM硬件之中。这个过程是manager模块进行处理的。
这样在register模块看过来,所有的机器,不论是虚拟机还是主机,操作流程都是一样的。
虚拟机中的TPM硬件如果是软件模拟的话,一般被认为不是密码学安全的。软件模拟的随机数都是伪随机的,生成的密钥强度比不上TPM硬件。另外,密码硬件遵循的原则是密钥不出key,而软件模拟无法真正保证这一点。 最后,一旦主机被攻破,主机上的所有虚拟机的软件模拟的TPM都可以被任意操控,篡改。
(3)主机与虚拟机的可信性监控。
主机持有TPM硬件,Agent模块管理着TPM硬件,如图5所示。
1、verifier模块定时向Agent模块发送度量请求,第一次度量时,需要进行可信启动度量。可信启动度量只有在每次重启后进行。verifier模块要求Agent模块将TPM硬件中PCR0~PCR9,以及PCR14的值发送给verifier模块。PCR0~PCR9,PCR14用来度量安全启动。同时,Agent模块还需要将启动日志文件(/sys/kernel/security/tpm0/binary_bios_measurements)发送给verifier模块。与之相对应的是时时度量,时时度量每3秒度量一次(可配置)。对应PCR10的值。对应的日志文件为/sys/kernel/security/ima/ascii_runtime_measurements。
2、收到verifier模块的请求后,Agent模块将PCR值,使用TPM硬件根据身份认证密钥AIK值进行封装(一般使用tpm2_createQuote数据命令)生成一系列加密值(成为Quote数据)。同时Agent模块也会将日志文件传送给verifier模块。如上所述,对于linux系统来说,pcr10对应的日志文件是ima模块生成的 /sys/kernel/security/ima/ascii_runtime_measurements。启动日志文件对应/sys/kernel/security/tpm0/binary_bios_measurements。是由统一可扩展固件接口UEFI生成。
3、verifier模块收到Quote数据以及日志文件后,会从register模块获取身份认证密钥AIK值,从而解密Quote数据,获得PCR值。同时会计算日志文件里面的数据,得到一个PCR值。对比这两个PCR值是否相同,从而确认日志是否被修改,若日志被修改则验证失败。另一方面,日志文件里面的数据会与verifier模块存储的白名单进行对比,如果发现不一致则验证失败。
虚拟机与可信管理平台的验证和主机是一致的。唯一有区别的是,虚拟机不持有TPM硬件。所以有些命令的执行需要通过主机上TPM硬件处理,如图6所示。需要TPM硬件处理的有两项:
1、对于涉及虚拟机安全启动的PCR值(PCR0~9,PCR14)。verifier模块只会读取并验证一次。虚拟机生成的这些PCR值,通过manager模块将PCR值用TPM硬件保护起来(使用硬件加密存储即可)。如果PCR值发生变更则重新计算存储。
2、PCR10的值,处于经常变更状态。而主机上又有众多的虚拟机。所以使用上述方案,仅用TPM硬件保护相应的值,会存在不停的加密解密操作。性能上是无法接受的。所以,对于PCR10,每台虚拟机,都使用主机TPM硬件的NVRAM资源。通过Tpm2_nv_DefineSpace 创建一个混合扩展索引,模拟PCR。将虚拟机里面的tpm2_extend转换为主机TPM硬件的Tpm2_nvextend。从而达到为每个虚拟机创建一个硬件PCR10的目的。
一般来讲,注册过程中,Agent模块是处于安全状态的,而度量过程中,未必是安全状态。Register过程中,Agent模块的身份认证密钥AIK被保存在了center当中。在度量过程中并不需要去Agent模块获取身份认证密钥AIK,而是去register模块获取身份认证密钥AIK。避免agent被攻破后,提供虚假的身份认证密钥AIK。当然了,注册过程还能提供对身份认证密钥AIK统一管理(增删查改等)。
(4)可信度量失败处理,如图7所示:
1、如果发现主机验证失败,verifier模块会告知RevoCA证书tion Notifier(RN)
2、RN会群发消息给注册者,包括一个自签名的CA证书和诸多节点。
3、CA证书会更新一个CRL信息,告知哪个节点度量失败。
4、其它节点从CA证书获得更新后的CRL信息,得知哪个机器失败,从而采取相应的自我保护措施。
不同的机器采取的应对度量失败的措施,一般来讲是不同的,如图8所示:
1、首先判断是不是主机度量失败,文件被篡改。
即判断主机的日志文件与相应的PCR值不匹配,或主机的日志文件与白名单对比失败;
2、如果主机文件被篡改,那么需要从可信管理平台获取被篡改前的文件,直接进行覆盖,并且从新验证。
3、如果依然验证失败,或者连续验证失败,则将主机进行隔离。同时根据需要决定是否对主机上的虚拟机进行停止操作。
4、如果主机能正确的重新认证成功。则告警,让用户确认自行决定是否继续处理。
5、如果是虚拟机度量失败,可以将其进行简单的断网操作,令用户自行处理。
对于重要的虚拟机,也可以采用与主机相同的处理方式,先向可信管理平台获取篡改前的文件,然后再次重新度量。
本实施例提供了一个虚拟机使用主机TPM硬件完成可信认证的新思路。本实施例基于TPM硬件进行描述,但是TCM硬件也是类似的。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、模组或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元、模组或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本发明的方法中限定的上述功能。需要说明的是,本发明上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种可信的虚拟化系统的实现方法,其特征在于,包括以下步骤:
主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
对主机和虚拟机的PCR值以及日志文件进行验证。
2.根据权利要求1所述的可信的虚拟化系统的实现方法,其特征在于,对主机和虚拟机的PCR值以及日志文件进行验证,具体包括以下步骤:
主机和虚拟机各自的日志文件与相应的PCR值进行匹配;若主机和虚拟机的日志文件与相应的PCR值不匹配,则验证失败;
主机和虚拟机的日志文件分别与白名单进行对比;若主机或虚拟机的日志文件与白名单对比失败,则验证失败。
3.根据权利要求2所述的可信的虚拟化系统的实现方法,其特征在于,验证失败之后,还包括以下步骤:
若主机的日志文件与相应的PCR值不匹配,或主机的日志文件与白名单对比失败,则主机的日志文件被篡改;
获取主机被篡改前的日志文件,覆盖主机的日志文件,进行重新验证;
若重新验证失败,则将主机进行隔离;
若重新验证成功,则告警后用户自行处理主机。
4.根据权利要求2所述的可信的虚拟化系统的实现方法,其特征在于,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则虚拟机的日志文件被篡改;
获取虚拟机被篡改前的日志文件,覆盖虚拟机的日志文件,进行重新验证;
若重新验证失败,则将虚拟机进行隔离;
若重新验证成功,则告警后用户自行处理虚拟机。
5.根据权利要求2所述的可信的虚拟化系统的实现方法,其特征在于,验证失败之后,还包括以下步骤:
若虚拟机的日志文件与相应的PCR值不匹配,或虚拟机的日志文件与白名单对比失败,则对相应的虚拟机进行断网,然后用户自行处理。
6.根据权利要求1所述的可信的虚拟化系统的实现方法,其特征在于,主机和虚拟机分别进行注册,获取主机和虚拟机的证书,具体包括以下步骤:
获取主机和虚拟机的EKCERT证书、通用唯一识别码UUIDTPM、公钥EK和身份认证密钥AIK,作为主机和虚拟机的证书;
验证主机和虚拟机的EKCERT证书是否合法;
若主机和虚拟机的EKCERT证书合法,则生成随机数random;
将随机数random发送给若主机和虚拟机;
以随机数random作为密钥,对获取到的主机和虚拟机的通用唯一识别码UUIDTPM,以及主机和虚拟机中的原始通用唯一识别码UUIDTPM分别进行HMAC操作,得到主机和虚拟机的第一验证序列和第二验证序列;
主机的第一验证序列与第二验证序列进行对比,虚拟机的第一验证序列与第二验证序列进行对比;若主机和虚拟机各自的第一验证序列与第二验证序列均相同,则注册成功。
7.根据权利要求6所述的可信的虚拟化系统的实现方法,其特征在于,将随机数random发送给若主机和虚拟机,具体包括以下步骤:
随机数random分别通过获取到的主机和虚拟机各自的公钥EK和身份认证密钥AIK加密,得到加密后数据,然后发送给相应的主机和虚拟机;
主机和虚拟机分别通过各自的原始公钥EK和身份认证密钥AIK对加密后数据进行解密,得到随机数random。
8.根据权利要求7所述的可信的虚拟化系统的实现方法,其特征在于:
所述虚拟机从相应的主机中获取公钥EK和身份认证密钥AIK,作为虚拟机的公钥EK和身份认证密钥AIK。
9.一种可信的虚拟化系统的实现系统,用于实现如权利要求1-8任一所述的一种可信的虚拟化系统的实现方法,其特征在于,包括:
注册模块,用于主机和虚拟机分别进行注册,获取主机和虚拟机的证书;
获取模块,用于在对主机和虚拟机进行可信性度量时,获取主机和虚拟机的日志文件以及封装后PCR值;
解密模块,用于根据主机和虚拟机的证书,对相应的封装后PCR值进行解密,得到主机和虚拟机的PCR值;
验证模块,用于对主机和虚拟机的PCR值以及日志文件进行验证。
CN202310579268.4A 2023-05-23 2023-05-23 一种可信的虚拟化系统的实现方法及系统 Active CN116305092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310579268.4A CN116305092B (zh) 2023-05-23 2023-05-23 一种可信的虚拟化系统的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310579268.4A CN116305092B (zh) 2023-05-23 2023-05-23 一种可信的虚拟化系统的实现方法及系统

Publications (2)

Publication Number Publication Date
CN116305092A true CN116305092A (zh) 2023-06-23
CN116305092B CN116305092B (zh) 2023-08-01

Family

ID=86836324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310579268.4A Active CN116305092B (zh) 2023-05-23 2023-05-23 一种可信的虚拟化系统的实现方法及系统

Country Status (1)

Country Link
CN (1) CN116305092B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020781A1 (en) * 2004-06-24 2006-01-26 Scarlata Vincent R Method and apparatus for providing secure virtualization of a trusted platform module
US20070016801A1 (en) * 2005-07-12 2007-01-18 Bade Steven A Method, apparatus, and product for establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform
US20140040997A1 (en) * 2012-07-31 2014-02-06 Ca, Inc. Self-deleting virtual machines
CN103888251A (zh) * 2014-04-11 2014-06-25 北京工业大学 一种云环境中虚拟机可信保障的方法
CN108322306A (zh) * 2018-03-17 2018-07-24 北京工业大学 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
CN109101284A (zh) * 2018-07-18 2018-12-28 浪潮(北京)电子信息产业有限公司 一种虚拟机启动方法、装置、设备及存储介质
CN111580929A (zh) * 2020-05-07 2020-08-25 上海英方软件股份有限公司 一种基于虚拟机保护数据的有效性验证系统及方法
CN112597505A (zh) * 2020-12-29 2021-04-02 海光信息技术股份有限公司 可信度量方法、控制方法、处理器、芯片、装置及介质
CN112995206A (zh) * 2021-04-13 2021-06-18 北京电信易通信息技术股份有限公司 一种基于可信技术实现多型工作单元安全联动的方法
CN113641463A (zh) * 2021-10-14 2021-11-12 云宏信息科技股份有限公司 虚拟化系统可信认证方法、系统及计算机可读存储介质
CN113986470A (zh) * 2021-11-09 2022-01-28 四川大学 一种用户无感知的虚拟机批量远程证明方法
CN114035896A (zh) * 2021-11-09 2022-02-11 四川大学 一种基于可信计算的批量云取证方法
CN115001766A (zh) * 2022-05-24 2022-09-02 四川大学 一种高效的多节点批量远程证明方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020781A1 (en) * 2004-06-24 2006-01-26 Scarlata Vincent R Method and apparatus for providing secure virtualization of a trusted platform module
US20070016801A1 (en) * 2005-07-12 2007-01-18 Bade Steven A Method, apparatus, and product for establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform
US20140040997A1 (en) * 2012-07-31 2014-02-06 Ca, Inc. Self-deleting virtual machines
CN103888251A (zh) * 2014-04-11 2014-06-25 北京工业大学 一种云环境中虚拟机可信保障的方法
CN108322306A (zh) * 2018-03-17 2018-07-24 北京工业大学 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
CN109101284A (zh) * 2018-07-18 2018-12-28 浪潮(北京)电子信息产业有限公司 一种虚拟机启动方法、装置、设备及存储介质
CN111580929A (zh) * 2020-05-07 2020-08-25 上海英方软件股份有限公司 一种基于虚拟机保护数据的有效性验证系统及方法
CN112597505A (zh) * 2020-12-29 2021-04-02 海光信息技术股份有限公司 可信度量方法、控制方法、处理器、芯片、装置及介质
CN112995206A (zh) * 2021-04-13 2021-06-18 北京电信易通信息技术股份有限公司 一种基于可信技术实现多型工作单元安全联动的方法
CN113641463A (zh) * 2021-10-14 2021-11-12 云宏信息科技股份有限公司 虚拟化系统可信认证方法、系统及计算机可读存储介质
CN113986470A (zh) * 2021-11-09 2022-01-28 四川大学 一种用户无感知的虚拟机批量远程证明方法
CN114035896A (zh) * 2021-11-09 2022-02-11 四川大学 一种基于可信计算的批量云取证方法
CN115001766A (zh) * 2022-05-24 2022-09-02 四川大学 一种高效的多节点批量远程证明方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄强;孔志印;张德华;常乐;: "一种云计算适用的虚拟可信报告根构建机制", 工程科学与技术, no. 02 *

Also Published As

Publication number Publication date
CN116305092B (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US10530753B2 (en) System and method for secure cloud computing
CN109313690B (zh) 自包含的加密引导策略验证
US10885197B2 (en) Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
EP3540626B1 (en) Enclave launch and authentication
US7143287B2 (en) Method and system for verifying binding of an initial trusted device to a secured processing system
TW201732669A (zh) 受控的安全碼鑑認
US8127146B2 (en) Transparent trust validation of an unknown platform
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
EP3637297A1 (en) Securing firmware
US11206141B2 (en) Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
CN110770729B (zh) 用于证明虚拟机完整性的方法和设备
US10230738B2 (en) Procedure for platform enforced secure storage in infrastructure clouds
CN111666564B (zh) 应用程序安全启动方法、装置、计算机设备和存储介质
CN106790045B (zh) 一种基于云环境分布式虚拟机代理装置及数据完整性保障方法
CN111310173A (zh) 一种可信芯片的终端虚拟机身份认证方法及系统
US11646890B2 (en) Enclave population
CN112861137A (zh) 安全固件
CN116305092B (zh) 一种可信的虚拟化系统的实现方法及系统
CN115357908A (zh) 一种网络设备内核可信度量与自动修复方法
CN114650175B (zh) 一种验证方法及装置
US11972002B2 (en) Method of logging in to operating system, electronic device and readable storage medium
CN114020329A (zh) 一种动态度量方法、装置及动态度量系统
CN116388992A (zh) 针对分布式tee应用的远程认证方法及装置

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