CN104794394A - 一种虚拟机启动校验的方法及装置 - Google Patents

一种虚拟机启动校验的方法及装置 Download PDF

Info

Publication number
CN104794394A
CN104794394A CN201510217704.9A CN201510217704A CN104794394A CN 104794394 A CN104794394 A CN 104794394A CN 201510217704 A CN201510217704 A CN 201510217704A CN 104794394 A CN104794394 A CN 104794394A
Authority
CN
China
Prior art keywords
configuration file
key
authorization value
algorithm
cryptographic hash
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
CN201510217704.9A
Other languages
English (en)
Other versions
CN104794394B (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510217704.9A priority Critical patent/CN104794394B/zh
Publication of CN104794394A publication Critical patent/CN104794394A/zh
Application granted granted Critical
Publication of CN104794394B publication Critical patent/CN104794394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

本发明提供了一种虚拟机启动校验的方法及装置,该方法包括:根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,预先对所述虚拟机的配置文件进行加密;根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。通过本发明提供了一种虚拟机启动校验的方法及装置,能够提高虚拟机的安全性。

Description

一种虚拟机启动校验的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种虚拟机启动校验的方法及装置。
背景技术
随着科技的快速发展,在云计算、大数据的背景下,虚拟化扮演了越来越重要的角色。Iaas(Infrastructure as a Service,基础设施即服务)作为云计算下的一种服务模式,向用户提供完整的计算机基础设施服务,其中的一种服务方式便是以向用户提供虚拟机的方式完成的,即用户通过网络获取虚拟机的使用权限就好像在使用一台完整的服务器一样。
在网络高度发达的今天,计算机安全问题日益严重,传统的Rootkit攻击已由针对用户模式和内核模式的攻击转变为了针对计算机固件、BootLoader(启动装载)的攻击,这种攻击方式更靠近计算机硬件,且一旦攻击成功,服务器上层提供的服务将不再安全。同时,传统的黑客依旧在威胁着当今的主机安全,一旦虚拟机的root权限被窃取,虚拟机上所运行的客户应用将遭受巨大的安全威胁。针对这些安全威胁,现有技术中,用户设置账户密码,用户在登录时,通过密码登录到虚拟机,获取该账户对应的操作权限。
通过上述描述可见,现有技术中,通过设置登录密码来保证虚拟机的安全,虚拟机的安全性较低。
发明内容
有鉴于此,本发明提供了一种虚拟机启动校验的方法及装置,能够提高虚拟机的安全性。
一方面,本发明提供了一种虚拟机启动校验的方法,包括:S0:根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,预先对所述虚拟机的配置文件进行加密,还包括:
S1:根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
进一步地,所述S0,包括:
D1:根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密;
所述S1,包括:
D2:根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
进一步地,所述D1,包括:
A1:通过第一哈希算法,确定所述原始代码的第一哈希值和所述初始密码的第二哈希值;
A2:根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值;
A3:根据所述第一授权值确定所述配置文件密钥;
A4:通过所述配置文件密钥对所述配置文件进行加密;
所述D2中,根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,包括:
B1:通过所述第一哈希算法,确定所述当前代码的第三哈希值和所述当前密码的第四哈希值;
B2:根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值;
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
进一步地,所述A1,包括:从安全芯片TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,在所述TPM芯片中通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值;
所述A2,包括:将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值;
所述A3,包括:获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥;
所述A4,包括:将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密;
所述B1,包括:通过从所述TPM芯片中确定出的所述第一哈希算法,在所述TPM芯片中确定所述第三哈希值和所述第四哈希值;
所述B2,包括:根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
进一步地,包括:
所述第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个;
和/或,
所述根据所述初始授权值,通过所述TPM芯片确定父密钥,包括:根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥;
和/或,
所述根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥,包括:
根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥;
和/或,
所述将所述配置文件密钥加载到所述TPM芯片中,包括:
将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
另一方面,本发明提供了一种虚拟机启动校验的装置,包括:
配置文件加密单元,用于根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,对所述虚拟机的配置文件进行加密;
配置文件解密单元,用于根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
进一步地,所述配置文件加密单元,用于根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密;
所述配置文件解密单元,用于根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
进一步地,所述配置文件加密单元,包括:
第一确定子单元,用于通过第一哈希算法,确定所述原始代码的第一哈希值和所述初始密码的第二哈希值;
第二确定子单元,用于根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值;
授权密钥生成单元,用于根据所述第一授权值确定所述配置文件密钥;
加密子单元,用于通过所述配置文件密钥对所述配置文件进行加密;
所述解密单元,包括:
第三确定子单元,用于通过所述第一哈希算法,确定所述当前代码的第三哈希值和所述当前密码的第四哈希值;
第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值;
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
进一步地,所述第一确定子单元,用于从安全芯片TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,在所述TPM芯片中通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值;
所述第二确定子单元,用于将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值;
所述授权密钥生成单元,用于获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥;
所述加密子单元,用于将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密;
所述第三确定子单元,用于通过从所述TPM芯片中确定出的所述第一哈希算法,在所述TPM芯片中确定所述第三哈希值和所述第四哈希值;
所述第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
进一步地,包括:
所述第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个;
和/或,
所述授权密钥生成单元,用于根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥;
和/或,
所述所述第三确定子单元,用于根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥;
和/或,
所述加密子单元,用于将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
本发明提供了一种虚拟机启动校验的方法及装置,预先通过预设的初始密码和关键代码段中的原始代码对虚拟机的配置文件进行加密,在启动该虚拟机时,根据用户输入的当前密码和关键代码段中的当前代码对应配置文件进行解密,如果用户输入的当前密码不对,或者关键代码段中的当前代码被修改,则会解密失败,无法启动虚拟机,提高了虚拟机的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种虚拟机启动校验的方法的流程图;
图2是本发明一实施例提供的另一种虚拟机启动校验的方法的流程图;
图3是本发明一实施例提供的一种虚拟机启动校验的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种虚拟机启动校验的方法,该方法可以包括以下步骤:
S0:根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,预先对所述虚拟机的配置文件进行加密;
S1:根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
通过本发明实施例提供的一种虚拟机启动校验的方法,预先通过预设的初始密码和关键代码段中的原始代码对虚拟机的配置文件进行加密,在启动该虚拟机时,根据用户输入的当前密码和关键代码段中的当前代码对应配置文件进行解密,如果用户输入的当前密码不对,或者关键代码段中的当前代码被修改,则会解密失败,无法启动虚拟机,提高了虚拟机的安全性。
在一种可能的实现方式中,所述S0,包括:D1:根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密。
所述S1,包括:D2:根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
在该实现方式中,用当前密码和当前代码,通过与计算第一授权值相同的算法来计算第二授权值,只要当前密码和当前代码中有一个发生变化,第二授权值就会与第一授权值不同,第二授权值就无法对配置文件密钥进行授权,最终就无法对配置文件进行解密,实现了对虚拟机的安全保护。需要说明的是:在该实现方式中,通过第一算法用来表明D1和D2中所使用的算法相同。
在一种可能的实现方式中,所述D1,包括:
A1:通过第一哈希算法,在所述TPM芯片中确定所述原始代码的第一哈希值和所述初始密码的第二哈希值;
A2:根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值;
A3:根据所述第一授权值确定所述配置文件密钥;
A4:通过所述配置文件密钥对所述配置文件进行加密;
所述D2中,根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,包括:
B1:通过所述第一哈希算法,在所述TPM芯片中确定所述当前代码的第三哈希值和所述当前密码的第四哈希值;
B2:根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值;
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
在该实现方式中,通过第一哈希算法用来表明A1和B1中所使用的哈希算法相同。
在一种可能的实现方式中,可以通过上述服务器中的TPM(TrustedPlatform Module,安全芯片)芯片来实现本发明的方法。TPM芯片中有专用密码学模块,可以独立完成哈希、生成密钥、加解密数据等密码学过程。同时,TPM利用硬件工艺,可以有效的防止外部对密码学过程的监听。TPM芯片采用“存储保护体系”,TPM采用一种树形的保护体系保护生成的密钥,即外部获取的密钥的Private部分都已被密钥的父密钥加密保护,TPM自己保存了一个根密钥,外部只能获取该密钥的Public部分,由此来保护整个体系的安全。TPM中引入了增强型授权功能,用户可以根据自身需求生成授权策略来完成对TPM生成的某一对像的授权使用,该授权信息即可以由用户提供,也可以根据TPM芯片中PCR(Program Control Register,程序控制暂存器)中存放的值计算出。根据可信计算思想,服务器启动过程中的关键部件在将控制权转移给下一级前需度量(哈希)下一级的代码,并将度量值扩展至对应PCR中,因此PCR中存放了本次的启动信息,一旦平台底层部件遭受了篡改,根据哈希的特性,度量值会马上反应这种改变,其中,关键部件可以为关键代码段。
所述A1,包括:从TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值。
其中,TPM芯片预设了一些哈希算法,在使用时可以从芯片中任意选择一种来使用。举例来说,芯片中预设的哈希算法包括:SHA-1、SHA-224、SHA-256、SHA-384、SHA-512,第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个。
所述A2,包括:将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值。
其中,TPM芯片中有预设授权值算法,将该预设授权值算法作为上述的授权值算法,利用的TPM芯片的增强型授权功能计算出第一授权值。
所述A3,包括:获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥。
在用户获取TPM芯片的所有权后,用户可以设置一个初始授权值,通过该初始授权值可以生成父密钥,该父密钥保存在芯片内部,通过该父密钥可以生成多个子密钥,上述的配置文件密钥就是一个子密钥,父密钥可以对子密钥的私有部分进行加密,保证子密钥的安全。
具体地,所述根据所述初始授权值,通过所述TPM芯片确定父密钥,包括:根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥。
具体地,所述根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥,包括:
根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥。
所述A4,包括:将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密。
具体地,所述将所述配置文件密钥加载到所述TPM芯片中,包括:
将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
所述B1,包括:通过从所述TPM芯片中确定出的所述第一哈希算法,确定所述第三哈希值和所述第四哈希值;
所述B2,包括:根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种虚拟机启动校验的方法,该方法可以包括以下步骤:
步骤201:在TPM芯片中创建第一授权会话,在所述第一授权会话中设置第一哈希算法为SHA-1。
具体地,使用TPM2_StartAuthSession命令开启第一授权会话,会话的类型TPM_SE_POLICY,会话中的哈希算法选择SHA-1,该命令执行成功后会返回会话句柄sessionHandle1,当需要使用该第一授权会话时,通过sessionHandle1即可实现。
步骤202:在第一授权会话中,通过SHA-1计算出预先设置的初始PIN(Personal Identification Number,个人识别密码)的第一哈希值。
具体地,得到第一哈希值后,将第一哈希值与第一授权会话绑定。
其中,上述的第一哈希算法为SHA-1,初始密码为初始PIN。
步骤203:在第一授权会话中,通过SHA-1计算出虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码的第二哈希值。
其中,关键代码段包括:BIOS BOOT BLOCK(BIOS引导块),BIOS MAINBLOCK(BIOS主块)、OPTION ROM、MBT。
预先指定关键代码段,在启动服务器时,需要通过关键代码段来实现,如果关键代码段被修改,就说明虚拟机的平台环境可以存在安全问题,为了验证虚拟机的平台环境的安全,将关键代码段引入虚拟机的启动验证中。
具体地,向TPM芯片发送TPM2_PolicyPCR命令,该命令中授权会话使用sessionHandle1,即使用第一授权会话,通过TPML_PCR_SELECTION命令选择PCR1,PCR2,PCR4,将关键代码段的原始代码的哈希值保存到对应的PCR中,其中,不同的关键代码段的原始代码的哈希值可以保存在对应的PCR中,在需要关键代码段的原始代码的哈希值时,从对应的PCR中取即可。该命令执行完毕后向TPM芯片发送TPM2_PolicyGetDigest命令,获取sessionHandle1会话得到的第二哈希值,将第二哈希值与第一授权会话绑定。
步骤204:在第一授权会话中,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值。
举例来说,利用TPM2_PolicyRestart命令重启第一授权会话,利用TPM2_PolicyOR命令生成第一授权值,其中,输入的信息有20字节的0、第一哈希值、第二哈希值,可以利用TPM2_PolicyGetDigest命令获取第一授权值。
在本步骤中,根据与第一授权会话绑定的第一哈希值和第二哈希值,在第一授权会话中计算出第一授权值。
步骤205:获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片中的RSA算法确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥。
举例来说,在TPM_RH_OWNER等级下,通过RSA算法生成父密钥,父密钥的敏感数据不被返回,保存在TPM芯片中,无需使用TPM2_Load加载。
具体地,根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥;
使用TPM2_Create命令,根据父密钥创建一个SM4的对称密钥,该对称密钥为上述的初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥,返回配置文件密钥的公开数据outPublic和私有数据outPrivate。
步骤206:将所述配置文件密钥加载到所述TPM芯片中。
举例来说,将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片,作为TPM2_Load命令的参数传递给TPM芯片,执行成功后配置文件密钥就被加载进TPM芯片。
步骤207:在第一授权会话中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,授权使用配置文件密钥预先对虚拟机的配置文件进行加密。
步骤208:在TPM芯片中创建第二授权会话,在所述第二授权会话中设置第一哈希算法为SHA-1。
具体地,使用TPM2_StartAuthSession命令开启第二授权会话,会话的类型TPM_SE_POLICY,会话中的哈希算法选择SHA-1,该命令执行成功后会返回会话句柄sessionHandle2,当需要使用该第二授权会话时,通过sessionHandle2即可实现。
步骤209:在第二授权会话中,通过SHA-1计算出用户输入的当前PIN的第四哈希值。
具体地,得到第四哈希值后,将第四哈希值与第二授权会话绑定。
其中,上述的第一哈希算法为SHA-1,初始密码为初始PIN。
步骤210:在第二授权会话中,通过SHA-1计算出关键代码段中的当前代码的第三哈希值。
具体地,向TPM芯片发送TPM2_PolicyPCR命令,该命令中授权会话使用sessionHandle2,即使用第二授权会话,通过TPML_PCR_SELECTION命令选择PCR1,PCR2,PCR4,将关键代码段的原始代码的哈希值保存到对应的PCR中,其中,不同的关键代码段的原始代码的哈希值可以保存在对应的PCR中,在需要关键代码段的原始代码的哈希值时,从对应的PCR中取即可。该命令执行完毕后向TPM芯片发送TPM2_PolicyGetDigest命令,获取sessionHandle1会话得到的第三哈希值,将第三哈希值与第二授权会话绑定。
步骤211:在第二授权会话中,根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
举例来说,利用TPM2_PolicyRestart命令重启第二授权会话,利用TPM2_PolicyOR命令生成第二授权值,其中,输入的信息有20字节的0、第三哈希值、第四哈希值,可以利用TPM2_PolicyGetDigest命令获取第二授权值。
在本步骤中,根据与第二授权会话绑定的第三哈希值和第四哈希值,在第二授权会话中计算出第二授权值。
步骤212:获取所述配置文件密钥,在第二授权会话中,根据所述第二授权值,授权使用所述配置文件密钥对加密后的配置文件进行解密。
步骤213:判断配置文件是否解密成功,如果是,则执行步骤214,否则,执行步骤215。
步骤214:根据解密得到所述配置文件正常启动虚拟机。
步骤215:不启动虚拟机。
另外,有时用户能够确定当前的虚拟机是安全的,但是由于关键代码段被修改或者当前密码与初始密码不同,导致无法正常启动虚拟机,为了在这种情况下启动虚拟机,可以预先保存第一授权值,在无法成功解密配置文件时,直接利用保存的第一授权值授权使用配置文件密钥对配置文件进行解密。
需要说明的是:上述步骤201-207可以是在创建虚拟机后就实现,当用户需要访问虚拟机时,需要通过步骤208-215来进行启动验证。
上述的TPM芯片可以在虚拟机所在的服务器上,虚拟机可以建立Xen平台上,上述的TPM芯片可以是Z32H320TC安全芯片。
如图3所示,本实施例还提供的一种虚拟机启动校验的装置,包括:
配置文件加密单元301,用于根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,对所述虚拟机的配置文件进行加密。
配置文件解密单元302,用于根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
在一种可能的实现方式中,所述配置文件加密单元301,用于根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密。
所述配置文件解密单元302,用于根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
在一种可能的实现方式中,所述配置文件加密单元301,包括:
第一确定子单元,用于通过第一哈希算法,确定所述原始代码的第一哈希值和所述初始密码的第二哈希值。
第二确定子单元,用于根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值。
授权密钥生成单元,用于根据所述第一授权值确定所述配置文件密钥。
加密子单元,用于通过所述配置文件密钥对所述配置文件进行加密。
所述解密单元,包括:
第三确定子单元,用于通过所述第一哈希算法,确定所述当前代码的第三哈希值和所述当前密码的第四哈希值。
第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值。
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
在一种可能的实现方式中,所述第一确定子单元,用于从安全芯片TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,在所述TPM芯片中通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值。
所述第二确定子单元,用于将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值。
所述授权密钥生成单元,用于获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥。
所述加密子单元,用于将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密。
所述第三确定子单元,用于通过从所述TPM芯片中确定出的所述第一哈希算法,在所述TPM芯片中确定所述第三哈希值和所述第四哈希值。
所述第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
在一种可能的实现方式中,所述第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个。
在一种可能的实现方式中,所述授权密钥生成单元,用于根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥。
在一种可能的实现方式中,所述所述第三确定子单元,用于根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥。
在一种可能的实现方式中,所述加密子单元,用于将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供的一种虚拟机启动校验的方法及装置,具有如下有益效果:
1、通过本发明实施例提供的一种虚拟机启动校验的方法及装置,预先通过预设的初始密码和关键代码段中的原始代码对虚拟机的配置文件进行加密,在启动该虚拟机时,根据用户输入的当前密码和关键代码段中的当前代码对应配置文件进行解密,如果用户输入的当前密码不对,或者关键代码段中的当前代码被修改,则会解密失败,无法启动虚拟机,提高了虚拟机的安全性。
2、通过本发明实施例提供的一种虚拟机启动校验的方法及装置,利用TPM芯片的防监听硬件特性和增强型授权功能,将密钥的可用性、虚拟机所在服务器的完整性、启动用户的可信性绑定,保证虚拟机所处的底层环境安全可信,虚拟机的启动用户为合法用户。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种虚拟机启动校验的方法,其特征在于,包括:S0:根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,预先对所述虚拟机的配置文件进行加密,还包括:
S1:根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述S0,包括:
D1:根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密;
所述S1,包括:
D2:根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
3.根据权利要求3所述的方法,其特征在于,所述D1,包括:
A1:通过第一哈希算法,确定所述原始代码的第一哈希值和所述初始密码的第二哈希值;
A2:根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值;
A3:根据所述第一授权值确定所述配置文件密钥;
A4:通过所述配置文件密钥对所述配置文件进行加密;
所述D2中,根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,包括:
B1:通过所述第一哈希算法,确定所述当前代码的第三哈希值和所述当前密码的第四哈希值;
B2:根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值;
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
4.根据权利要求3所述的方法,其特征在于,
所述A1,包括:从安全芯片TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,在所述TPM芯片中通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值;
所述A2,包括:将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值;
所述A3,包括:获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥;
所述A4,包括:将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密;
所述B1,包括:通过从所述TPM芯片中确定出的所述第一哈希算法,在所述TPM芯片中确定所述第三哈希值和所述第四哈希值;
所述B2,包括:根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
5.根据权利要求4所述的方法,其特征在于,包括:
所述第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个;
和/或,
所述根据所述初始授权值,通过所述TPM芯片确定父密钥,包括:根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥;
和/或,
所述根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥,包括:
根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥;
和/或,
所述将所述配置文件密钥加载到所述TPM芯片中,包括:
将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
6.一种虚拟机启动校验的装置,其特征在于,包括:
配置文件加密单元,用于根据预先设置的初始密码和虚拟机所在的服务器的启动过程中的预先指定的关键代码段中的原始代码,对所述虚拟机的配置文件进行加密;
配置文件解密单元,用于根据用户输入的当前密码和所述关键代码段中的当前代码,对加密后的配置文件进行解密,当解密成功后,根据解密得到所述配置文件启动所述虚拟机,当解密失败后,不启动所述虚拟机。
7.根据权利要求6所述的装置,其特征在于,
所述配置文件加密单元,用于根据所述初始密码和所述原始代码,通过第一算法确定第一授权值,根据所述第一授权值确定配置文件密钥,并通过所述配置文件密钥对所述虚拟机的配置文件进行加密;
所述配置文件解密单元,用于根据所述当前密码和所述当前代码,通过所述第一算法确定第二授权值,获取所述配置文件密钥,根据所述第二授权值授权所述配置文件密钥对加密后的配置文件进行解密。
8.根据权利要求7所述的装置,其特征在于,所述配置文件加密单元,包括:
第一确定子单元,用于通过第一哈希算法,确定所述原始代码的第一哈希值和所述初始密码的第二哈希值;
第二确定子单元,用于根据所述第一哈希值和所述第二哈希值,通过授权值算法确定所述第一授权值;
授权密钥生成单元,用于根据所述第一授权值确定所述配置文件密钥;
加密子单元,用于通过所述配置文件密钥对所述配置文件进行加密;
所述解密单元,包括:
第三确定子单元,用于通过所述第一哈希算法,确定所述当前代码的第三哈希值和所述当前密码的第四哈希值;
第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,通过所述授权值算法确定所述第二授权值;
其中,所述第一算法包括:所述第一哈希算法、所述授权值算法。
9.根据权利要求8所述的装置,其特征在于,
所述第一确定子单元,用于从安全芯片TPM芯片中预设的所有哈希算法中确定任一哈希算法作为所述第一哈希算法,在所述TPM芯片中通过所述第一哈希算法确定所述第一哈希值和所述第二哈希值;
所述第二确定子单元,用于将所述TPM芯片中的预设授权值算法作为所述授权值算法,根据所述第一哈希值和所述第二哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第一授权值;
所述授权密钥生成单元,用于获取所述TPM芯片中预设的初始授权值,根据所述初始授权值,通过所述TPM芯片确定父密钥,根据所述父密钥和所述第一授权值,通过所述TPM芯片确定所述配置文件密钥;
所述加密子单元,用于将所述配置文件密钥加载到所述TPM芯片中,通过加载有所述配置文件密钥的所述TPM芯片和所述配置文件密钥,对所述配置文件进行加密;
所述第三确定子单元,用于通过从所述TPM芯片中确定出的所述第一哈希算法,在所述TPM芯片中确定所述第三哈希值和所述第四哈希值;
所述第四确定子单元,用于根据所述第三哈希值和所述第四哈希值,在所述TPM芯片中通过所述预设授权值算法确定所述第二授权值。
10.根据权利要求9所述的装置,其特征在于,包括:
所述第一哈希算法为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512中的一个;
和/或,
所述授权密钥生成单元,用于根据所述初始授权值,通过所述TPM芯片中的RSA算法确定所述父密钥;
和/或,
所述所述第三确定子单元,用于根据所述父密钥通过SM4算法确定初始密钥,将所述初始密钥的inSensitive中的userAuth和所述初始密钥的inPublic中的authPolicy设置为所述第一授权值,得到所述配置文件密钥;
和/或,
所述加密子单元,用于将所述配置文件密钥的公开数据和私有数据传递给所述TPM芯片。
CN201510217704.9A 2015-04-30 2015-04-30 一种虚拟机启动校验的方法及装置 Active CN104794394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510217704.9A CN104794394B (zh) 2015-04-30 2015-04-30 一种虚拟机启动校验的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510217704.9A CN104794394B (zh) 2015-04-30 2015-04-30 一种虚拟机启动校验的方法及装置

Publications (2)

Publication Number Publication Date
CN104794394A true CN104794394A (zh) 2015-07-22
CN104794394B CN104794394B (zh) 2017-11-03

Family

ID=53559183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510217704.9A Active CN104794394B (zh) 2015-04-30 2015-04-30 一种虚拟机启动校验的方法及装置

Country Status (1)

Country Link
CN (1) CN104794394B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105404470A (zh) * 2015-10-27 2016-03-16 浪潮电子信息产业股份有限公司 数据存储方法及安全装置、数据存储系统
CN105447403A (zh) * 2015-11-05 2016-03-30 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
CN105912953A (zh) * 2016-05-11 2016-08-31 北京北信源软件股份有限公司 一种基于可信启动的虚拟机数据保护方法
CN106445566A (zh) * 2015-08-04 2017-02-22 深圳三诺信息科技有限公司 一种基于Windows系统的一键安装方法及系统
CN106845243A (zh) * 2016-12-13 2017-06-13 北京元心科技有限公司 提高启动安全的方法和系统
CN114679253A (zh) * 2022-04-22 2022-06-28 四川大学 一种vTPM2.0的中国商用密码算法扩展方法
CN117032908A (zh) * 2023-10-10 2023-11-10 中国船舶集团有限公司第七〇七研究所 基于冗余架构的集成计算设备部署运行方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516728A (zh) * 2013-10-14 2014-01-15 武汉大学 一种防止云平台虚拟机非法启动的镜像加解密方法
US20140143389A1 (en) * 2009-06-01 2014-05-22 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
CN103888429A (zh) * 2012-12-21 2014-06-25 华为技术有限公司 虚拟机启动方法、相关设备和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140143389A1 (en) * 2009-06-01 2014-05-22 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
CN103888429A (zh) * 2012-12-21 2014-06-25 华为技术有限公司 虚拟机启动方法、相关设备和系统
CN103516728A (zh) * 2013-10-14 2014-01-15 武汉大学 一种防止云平台虚拟机非法启动的镜像加解密方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445566A (zh) * 2015-08-04 2017-02-22 深圳三诺信息科技有限公司 一种基于Windows系统的一键安装方法及系统
CN105404470A (zh) * 2015-10-27 2016-03-16 浪潮电子信息产业股份有限公司 数据存储方法及安全装置、数据存储系统
CN105404470B (zh) * 2015-10-27 2018-04-24 浪潮电子信息产业股份有限公司 数据存储方法及安全装置、数据存储系统
CN105447403A (zh) * 2015-11-05 2016-03-30 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
CN105447403B (zh) * 2015-11-05 2018-05-25 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
CN105912953A (zh) * 2016-05-11 2016-08-31 北京北信源软件股份有限公司 一种基于可信启动的虚拟机数据保护方法
CN105912953B (zh) * 2016-05-11 2019-04-30 北京北信源软件股份有限公司 一种基于可信启动的虚拟机数据保护方法
CN106845243A (zh) * 2016-12-13 2017-06-13 北京元心科技有限公司 提高启动安全的方法和系统
CN114679253A (zh) * 2022-04-22 2022-06-28 四川大学 一种vTPM2.0的中国商用密码算法扩展方法
CN114679253B (zh) * 2022-04-22 2023-03-14 四川大学 一种vTPM2.0的中国商用密码算法扩展方法
CN117032908A (zh) * 2023-10-10 2023-11-10 中国船舶集团有限公司第七〇七研究所 基于冗余架构的集成计算设备部署运行方法及系统
CN117032908B (zh) * 2023-10-10 2023-12-08 中国船舶集团有限公司第七〇七研究所 基于冗余架构的集成计算设备部署运行方法及系统

Also Published As

Publication number Publication date
CN104794394B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
US9953166B2 (en) Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
EP2913956B1 (en) Management control method and device for virtual machines
US9628277B2 (en) Methods, systems and apparatus to self authorize platform code
TWI438686B (zh) 用於使用狀態確認來保護作業系統啟動過程的系統及方法
CN104794394A (zh) 一种虚拟机启动校验的方法及装置
EP2278514B1 (en) System and method for providing secure virtual machines
US10726132B2 (en) Enclave launch and authentication
US20110246778A1 (en) Providing security mechanisms for virtual machine images
KR102157560B1 (ko) 전자 디바이스의 무결성을 검증하기 위한 시스템 및 방법
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
US20110093693A1 (en) Binding a cryptographic module to a platform
EP2791817A1 (en) Cryptographic certification of secure hosted execution environments
TW201802719A (zh) 具安全碼驗證之信息認證
CN102456111B (zh) 一种Linux操作系统许可控制的方法及系统
TW202036347A (zh) 資料儲存、驗證方法及裝置
WO2016045458A1 (zh) 一种安全控制方法及网络设备
US20090199017A1 (en) One time settable tamper resistant software repository
CN104715208A (zh) 一种基于tpm芯片的平台完整性校验方法
Götzfried et al. Mutual authentication and trust bootstrapping towards secure disk encryption
CN115879087A (zh) 一种面向电力终端的安全可信启动方法及系统
Huang et al. Research on Linux trusted boot method based on reverse integrity verification
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN117411714A (zh) 拟态防御网络设备的授权认证方法、装置、电子设备和存储介质
Murase et al. Dependable TCB Based on the Cell Broadband Engine Isolation Facility

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant