CN116484379A - 系统启动方法、包含可信计算基软件的系统、设备及介质 - Google Patents

系统启动方法、包含可信计算基软件的系统、设备及介质 Download PDF

Info

Publication number
CN116484379A
CN116484379A CN202310328694.0A CN202310328694A CN116484379A CN 116484379 A CN116484379 A CN 116484379A CN 202310328694 A CN202310328694 A CN 202310328694A CN 116484379 A CN116484379 A CN 116484379A
Authority
CN
China
Prior art keywords
security center
trusted computing
verification
computing base
disk
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.)
Pending
Application number
CN202310328694.0A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310328694.0A priority Critical patent/CN116484379A/zh
Publication of CN116484379A publication Critical patent/CN116484379A/zh
Pending legal-status Critical Current

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

本申请实施例提供系统启动方法、包含可信计算基软件的系统、设备及介质。该方法包括:响应于系统启动请求,获取由用户安全中心生成的可信计算基软件;在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告;将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;在平台可信验证通过后,通过所述引导程序引导启动系统。能够在不依赖可信平台模块的情况下,实现对平台可信验证,提高系统启动过程安全防护效果。

Description

系统启动方法、包含可信计算基软件的系统、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及系统启动方法、包含可信计算基软件的系统、设备及介质。
背景技术
现有系统安全防护工作中,对可信平台模块(Trusted Platform Module,TPM)依赖度比较高。可信平台模块是一种能够提供可信根能力的计算机芯片。然而,在实际应用过程中,可信平台模块存在诸多问题,比如,可信平台模块资源的获取容易受到限制;再比如,有的用户想要使用云服务提供方提供的云服务资源的时候,存在对服务提供方所提供的可信计算基不信任的问题。因此,需要一种能够不依赖于可信平台模块的情况下确保系统可信启动的解决方案。
发明内容
为解决或改善现有技术中存在的问题,本申请各实施例提供了系统启动方法、包含可信计算基软件的系统、设备及介质。
第一方面,在本申请的一个实施例中,提供了一种系统启动方法。应用于服务器端,该方法包括:
响应于系统启动请求,获取由用户安全中心生成的可信计算基软件;
在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告;
将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;
在平台可信验证通过后,通过所述引导程序引导启动系统。
第二方面,本申请的一个实施例中,提供了一种系统启动方法,应用于安全中心,所述方法包括:
向服务器端发送用于执行系统启动请求,以及可信计算基软件;
在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告;
基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
第三方面,本申请的一个实施例中,提供了一种包含可信计算基软件的系统,包括:
安全中心,用于执行第二方面所述的方法;
服务器,用于执行第一方面所述的方法。
第四方面,在本申请的一个实施例中,提供了一种电子设备,包括存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现第一方面所述的方法,或用于实现第二方面所述的方法。
第五方面,在本申请的一个实施例中,提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如第一方面所述的方法或第二方面所述的方法。
本申请实施例提供的技术方案,在用户选择服务器端为其提供其所需的云应用时,为了确保服务器端系统安全,当服务器端接收到用户提出的系统启动请求之后,服务器端接收到用户的安全中心生成的携带有时间戳的可信计算基软件。由于该可信计算基软件是由用户的安全中心提供的,也就是用户能够掌控可信计算机软件。服务器端在接收到可信计算基软件之后,将进一步利用可信计算基软件得到度量报告。当安全中心基于度量报告对平台可信验证通过后,也就表示用户认可服务器端安全可靠,可以启动系统以及进行后续数据处理工作。进而由服务器端通过引导程序对系统磁盘解密并引导启动系统。通过上述方案,能够在不依赖可信平台模块的情况下,实现对平台可信验证。由于在可信计算基软件中携带有时间戳,能够实现对系统启动时间限制,实现可信计算基软件的动态更新,提高系统启动过程的安全防护效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的系统启动方法的流程示意图;
图2为本申请实施例提供的另一种系统启动方法的流程示意图;
图3为本申请实施例提供的可信计算基软件的生成方法的流程示意图;
图4为本申请实施例提供的系统启动的流程示意图;
图5为包含可信计算基软件的系统的结构示意图;
图6a为本申请实施例提供的系统启动装置的结构示意图;
图6b为本申请实施例提供的另一种系统启动装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下文描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的系统安全启动方案中,可信度量和磁盘解密方案均依赖本地可信硬件可信平台模块(TPM)。在系统启动过程中,首先对基本输入输出系统(Basic Input OutputSystem,BIOS)自检,然后利用可信平台模块(TPM)开始度量服务器端的平台完整性,确认平台软硬件均没有被篡改过,然后使用TPM保护的解密秘钥解密系统磁盘,引导操作系统(Operating System,OS)启动。但是传统的系统安全启动方案有几个问题:其中一个问题是必须依赖TPM硬件芯片,而TPM标准和相关算法由芯片提供方掌控,服务提供方以及用户无法完全信任芯片提供方,此外芯片的获取也会受到限制。另一个问题是,TPM硬件芯片中的数据是被固化的,具体来说,内部存储了非对称加密算法私钥(RSA私钥),存在被破解风险(比如,采用量子计算进行破解),进而导致TPM硬件芯片中所固化的非对称加密算法私钥反而变得不再安全。再一个问题是,TPM硬件芯片作为一种物理实体存在,对于持有者而言是安全可信的,然而,对于非持有者用户(比如,服务器端的租赁用户)来说,可能不信任服务器端的TPM硬件芯片,很多用户为了确保使用安全会使用自己的可信平台模块,导致系统和使用过程变得更加复杂,成本也提升。因此,需要一种能够不依赖于可信平台模块的情况下确保系统可信启动的解决方案。
术语解释:
可信平台模块(Trusted Platform Module,TPM),是一种计算机芯片,提供了可信根能力。
可信计算基(Trusted computing base,TCB),指为实现计算机系统安全保护的所有安全保护机制的集合,机制可以是硬件、固件和软件的形式出现。一旦可信计算基的某个硬件或者软件出现程序错误或者安全隐患,就存在对整个系统的安全造成危害的可能。与之相反,如果除可信计算基之外的系统的其他部分出现问题,也只是泄漏了系统安全策略赋予它们的相关权限而已,这些权限一般都是比较低的,所产生的安全影响也是比较低且可控的。
可信根,包括可信度量根、可信存储根、可信报告根。可信度量根是中央处理器(Central Processing Unit,CPU)复位后首先执行的指令,作为信任链的起点。可信存储根是屏蔽TPM硬件芯片外部访问的安全存储实体,如保护签名私钥不被访问或导出。可信报告根指的是TPM中的值(比如,包括平台配置数据、审计日志、关键属性等)的数据签名摘要。
完整性度量,通过对度量对象进行哈希计算及比较,实现完整性度量,得到相应的度量报告。平台是否可信,主要是通过度量平台可变配置部分(软件、数据等)完整性来判断是否发生篡改实现的,并将相应度量值和相关信息写入到度量报告中。
信任链,可信计算的思路是首先构建一个可信根,再从可信根开始度量硬件平台、再由硬件平台度量操作系统,再由操作系统度量应用软件,构建起一条信任链,一级认证一级,最终把信任从根扩展到整个计算机系统。
白盒密码,一种纯软件密钥保护技术,通过将密钥(一般为几百比特)扩展成占用较大空间存储的密钥查找表(一般为几百KB或者MB级别)的形式,提高攻击者获取加密/解密能力的难度。其安全性在于:攻击者无法通过掌握部分查找表获取等同于原始密钥的加密/解密能力,也不能从查找表中反推出原始密钥;即攻击者只能通过获取全部查找表的方式实施攻击。本方法所描述的白盒密码方案既可以通过白盒化现有标准加密方案构造,也可以使用经过特殊设计的,满足上述白盒安全性的其他白盒加密算法。
白盒程序,指使用白盒密码算法保护敏感信息的程序,其中包含了白盒加/解密逻辑和对应某个密钥的白盒查找表,具备使用上述白盒密码算法对敏感信息进行保护的能力。该程序可以通过动态的方式进行部署,即每次部署时都使用不同密钥对应的白盒查找表,提升对敏感信息的保护能力。
下面将结合具体实施例对本申请实现的技术方案进行解释说明。
如图1为本申请实施例提供的系统启动方法的流程示意图。该方法的执行主体可以是服务器端(比如云服务器端)。从图1中可以看到具体包括如下步骤:
101:响应于系统启动请求,获取由用户的安全中心生成的可信计算基软件。
102:在完成对所述可信计算基软件的安全验证之后,通过引导程序调用所述可信计算基软件生成度量报告。
103:将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
104:在平台可信验证通过后,通过所述引导程序引导启动系统。
需要说明的是,这里所说的安全中心是归用户所有,而服务器端则可以是归用户所有,或者用户租赁使用归服务提供方。可信计算基软件是由安全中心生成的,可信计算基软件中的信息都是可被用户掌控的。
此外,在可信计算基软件中还包含有时间戳,在后续各项完整性验证、可信验证过程中,都需要在规定时间内完成。若超过时间阈值,则将终止验证。此外,下次系统启动的时候,还会对可信计算基软件进行更新。换言之,本申请方案中的可信计算基软件是可动态更新的,能够有效提高可信计算基软件的安全等级。
这里所说的引导程序是位于服务器端的用于引导操作系统启动的程序。在系统启动过程中可以通过引导程序调用可信计算基软件接口获取到基于可信计算基软件得到的度量报告。该度量报告是用于对服务器端所提供的平台进行平台可信验证的报告。将在下述实施例中对度量报告的生成过程进行说明,这里就不再重复赘述。
通过上述方案,由安全中心生成并向服务器端提供可以由用户掌控的可信计算基软件,不再依赖于TPM硬件芯片,并且该软件能够被用户掌控并且获得用户信任,进而能够在不依赖可信平台模块的情况下,实现对平台可信验证。由于在可信计算基软件中携带有时间戳,能够实现对系统启动时间限制,实现可信计算基软件的动态更新,提高系统启动过程的安全防护效果。
如步骤103所述,将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证,包括:
1031:通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥。
1032:将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
在实际应用中,引导程序会查找当前系统磁盘中用于对磁盘的数据分区或数据块加密,所采用的磁盘数据密钥比如可以是对称AES256密钥。在磁盘苏家密钥处于加密状态,要交给用户的安全中心对其进行安全验证,确保磁盘数据密钥是有效的(比如,确保磁盘数据密钥没有被篡改),对磁盘数据密钥的安全验证过程将在下述实施例中进行说明,这里就不再重复赘述。
同时,服务器端还会将度量报告发送给安全中心,以便安全中心基于度量报告的内容对当前系统平台进行平台可信验证。通过上述方案,用户有权利对接收到的度量报告进行可信验证,而且用户还能够对磁盘数据密钥的进行安全验证,从而使得平台可信验证和磁盘安全都在用户可控范围内。
如步骤104所述在平台可信验证通过后,通过所述引导程序引导启动系统,包括:
1041:在平台可信验证通过后,接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥。
1042:通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
服务器端的系统磁盘中存储有操作系统,为了确保系统安全可靠,需要对系统磁盘加密。本申请方案中,可以由安全中心提供磁盘数据密钥,以便利用磁盘数据密钥对系统磁盘进行加解密。为了确保磁盘数据密钥的安全,在服务器端存储的磁盘数据密钥可以是以被加密形式存储,当需要利用磁盘数据密钥的时候,可以将加密状态的磁盘数据密钥发送给安全中心,进而由安全中心将解密得到的解密后的磁盘数据密钥发送给服务器端对系统磁盘进行解密。需要说明的是,只有在安全中心基于度量报告对服务器端的平台可信验证通过之后,安全中心才会将解密后的磁盘数据密钥发送给服务器端,换言之,需要安全中心确认服务器端安全可靠的情况下,才会将解密后的磁盘数据密钥发送给服务器端,否则将拒绝发送,或者在接收到加密状态的磁盘数据密钥之后就不进行解密了。一旦系统磁盘被解密,则表示系统将能够被启动,并且磁盘中的数据也将能够被获取。此外,这里所说的安全中心对磁盘数据密钥(DEK)进行解密,是利用密钥加密密钥(KEK)对磁盘数据密钥(DEK)解密,得到解密后的磁盘数据密钥。在传输解密后的磁盘数据密钥的时候,可以通过对服务器端与安全中心间的网络进行加密,进而可以安全传输解密后的明文状态的磁盘数据密钥;或者,利用加密密钥(CK)对解密后的磁盘数据密钥进行加密,并将利用加密密钥CK加密后的磁盘数据密钥发送给服务器端,从而确保磁盘数据密钥安全传输。
在本申请的一个或者多个实施例中,获取由用户的安全中心生成的可信计算基软件,包括:
向所述安全中心发送下载请求,以便所述安全中心生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;生成平台信息收集指示和针对平台的完整性度量算法;利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件;
接收携带有时间戳的所述可信计算基软件。
如前文所述可知,当需要启动系统的时候,会向安全中心发送下载可信计算基软件的下载请求。因为在本申请方案中,服务器端没有安装TPM硬件芯片,而是由安全中心生成签名密钥(Secret Key,SK),该签名密钥是用于对度量报告进行签名的。由安全中心生成加密密钥(Crypto Key,CK),该加密密钥是用于对度量报告中的报告信息进行加密的。需要说明的是,本申请方案中签名密钥SK和加密密钥CK都是一次性的,也就是在当前启动过程中有效,并设定有效时间阈值,超过时间阈值则会失效,也就无法继续执行系统启动任务。换言之,签名密钥SK和加密密钥CK保持动态更新,从而有效提高安全防护效果。
此外,安全中心还会生成平台信息收集指示,用于收集服务器端的平台信息(比如,包括:中央处理器信息、网卡信息等等)。安全中心还会生成针对服务器端的平台的完整性度量算法,比如利用哈希算法计算得到平台完整性对应的度量值。
在得到上述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法之后,将利用白盒算法对上述内容进行加密封装,从而能够得到加密封装后的可信计算基软件。具体来说,在利用白盒算法进行封装的时候,白盒程序是动态更新的,也就是每次执行该步骤的时候,都采用了不同的密钥对应的白盒查找表,使得不法攻击者在时间阈值范围内实施攻击的结果不会累加到另一个周期中,从而使得白盒加密状态下的获得更好的安全防护效果。
在本申请的一个或者多个实施例中,生成所述可信计算基软件之后,还包括:
接收所述可信计算基软件以及对应的签名后的信息摘要;其中,所述信息摘要是基于所述可信计算基软件和时间戳生成的,利用所述安全中心私钥对得到所述信息摘要进行签名得到所述签名后的信息摘要。
在实际应用中,信息摘要是由安全中心根据可信计算基和时间戳利用特定算法(比如,Message Digest Algorithm 5,MD5算法)计算得到的。进而,可以利用安全中心私钥对信息摘要进行签名。安全中心可以将可信计算基软件对应的签名的信息摘要发送给服务器端。
在本申请的一个或者多个实施例中,获取由安全中心生成并提供的携带有时间戳的可信计算基软件之后,还包括:
利用安全中心公钥对所述信息摘要的签名进行验证;
若验证通过,则对所述信息摘要携带的所述时间戳进行时效验证;
若验证通过,则对利用所述可信计算基软件进行完整性验证。
安全中心公钥是由安全中心提供给服务器端的,并且服务器端可以将该安全中心公钥保存在固件当中,以便由硬件、固件确保BIOS和PXE程序不被非授权篡改。
服务器端在接收到签名后的信息摘要之后,利用安全中心公钥对信息治癌药进行签名验证。若信息摘要的签名验证通过,则对信息摘要携带的时间戳进行时效验证。也就是,利用时间戳记录可信计算基软件的有效时间,当时间戳失效(也就是可信计算基软件超过有效时间),则终止系统启动。若时间戳没有失效,则可以继续执行后续工作。具体来说,若对信息摘要携带的时间戳安全验证通过,则对可信计算基软件进行完整性验证。通过上述验证,能够有效确保服务器端所获取到的可信计算基软件是安全可靠的,防止攻击者欺骗服务器端下载恶意的可信计算基软件。
在本申请的一个或者多个实施例中,所述通过引导程序调用所述可信计算基软件生成度量报告,包括:
执行所述可信计算基软件,基于所述平台信息收集指示收集硬件平台信息,所述硬件平台信息包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个;
基于所述硬件平台信息,对所述硬件平台信息进行完整性度量,得到硬件度量值;
对所述引导程序进行完整性度量,得到软件度量值;
若所述平台信息和所述引导程序完整性验证通过,则将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。
在实际应用中,引导程序成功调用可信计算基软件之后,执行可信计算基软件,利用所述平台信息收集指示对应的可信计算基软件中用于执行平台信息收集的平台信息收集算法对服务器端的硬件平台信息进行收集。这里所说的硬件平台信息比如可以包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个。其中,这里所说的处理器标识可以是中央处理器CPU ID,网卡的物理地址可以是网卡MAC,基本输入输出系统编号可以是BIOS编号。当然,在实际应用中,需要获取哪些硬件平台信息可以根据实际需要进行增删调整。这里仅作为举例说明,并不构成对本申请可实现方案的限制。
在获取到硬件平台信息之后,将对硬件平台信息进行完整性度量,得到硬件度量值。具体来说,可以利用哈希算法对硬件平台信息进行计算,得到硬件哈希值作为硬件度量值;因为若硬件平台信息中的任一项发生的改变则计算得到的硬件哈希值也一定会发生变化。
在实际应用中不仅要对硬件平台信息进行度量,还需要对软件进行度量。具体来说,对引导程序和/或固件进行完整性度度量。通过完整性度量确认软件没有发生篡改或者被非法植入的情况。
进而,将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。需要说明的是,在得到硬件平台信息之后,会利用加密密钥CK对硬件平台信息进行加密并存储在内存当中,以便后续生成度量报告。同时,在得到硬件度量值和软件度量值之后,也需要利用加密密钥CK对硬件度量值和软件度量值进行加密处理并存储到内存当中,后续用于作为报告内容写入度量报告中。
通过上述方式,利用由安全中心提供的可信计算基软件对服务器端进行完整性度量,而不是利用服务器端自身持有的TPM硬件芯片度量,能够有效提高用户对该度量报告的认可程度。当然,在得到度量报告之后,还需要对该度量报告进行验证,将在下述实施例中具体展开说明,这里就不再重复赘述。
在本申请的一个或者多个实施例中,通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥之后,还包括:
利用所述签名密钥对所述度量报告进行签名;
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心。
在实际应用中,为了确保度量报告传输过程中不被篡改,需要对度量报告进行签名处理。具体的,可以利用签名密钥SK对度量报告进行签名。将签名后的度量报告以及系统磁盘对应的加密状态的磁盘数据密钥发送给安全中心。在传输过程中,被传输的磁盘数据密钥和度量报告都是处于保护状态,能够有效确保传输过程安全可靠。
在本申请的一个或者多个实施例中,所述接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥,包括:
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,所述安全中心对所述度量报告进行签名和完整性验证;在验证通过的情况下,所述安全中心利用所述加密密钥对应的私钥对所述度量报告中的报告信息进行解密并进行验证;
若验证通过,则接收由所述安全中心解密得到的解密后的磁盘数据密钥。
在实际应用中,在签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,安全中心将对签名真伪以及度量报告完整性进行验证。具体来说,安全中心会利用签名密钥对应的安全中心私钥(该私钥是与签名密钥SK对应的私钥,因此具有与SK相同的时效性,这里在使用的时候需要确保该私钥处于有效状态)验证签名是否正确,若正确,则进一步验证报告完整性,若也正确,则进一步对度量报告中的报告信息进行验证。具体来说,利用加密密钥CK对应的私钥对加密状态的报告信息进行解密,进而获取到硬件平台信息以及硬件度量值、软件度量值等相关报告信息,并对解密得到的报告信息进行真伪性对比判断(比如,与此前接收记录到的存储信息进行对比)。
在本申请的一个或者多个实施例中,将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心之后,还包括:
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,若平台可信验证未通过,接收到所述安全中心提供的终止系统启动任务。
在实际应用中,安全中心基于接收到的度量报告对服务器端进行平台可信验证,比如,若发现度量报告的签名对比结果不同,和/或,报告信息中的硬件度量值对比结果为不一致,和/或,报告信息中的软件度量值对比结果为不一致,则判定对平台可信验证未通过。平台可信验证未通过,则表示服务器端不可靠,硬件或者软件存在安全隐患。因此,安全中心可以不获取加密状态的磁盘数据密钥对应的解密后的磁盘数据密钥,或者,即便获取了解密后的磁盘数据密钥也不会发送给服务器端。进而,安全中心可以向服务器端发送系统启动终止的信息,或者直接不响应,等到超过时间阈值之后,自动判定系统启动失败。
在本申请的一个或者多个实施例中,还包括:响应于对所述系统磁盘的摘盘请求或者挂载请求,确定对应的度量报告;当所述安全中心基于所述度量报告进行平台可信验证通过后,则接收到所述安全中心提供的所述摘盘请求或者所述挂载请求对应的确认信息;执行对所述系统磁盘的摘盘任务或挂载任务。
在实际应用中,根据实际需求可能会对服务器端的磁盘进行摘盘或者挂载。比如,磁盘发生故障,需要启用新的磁盘以确保服务器端能够正常工作。为了确保摘盘或者挂载过程中需要对启动、引导过程做可信度量,防止解密时磁盘数据密钥暴露在不可信环境中,可以对磁盘数字密钥DEK进行加密。而用于对磁盘数据密钥DEK进行加密的秘钥KEK也进行加密保护,加密密钥KEK应存储在安全硬件中且不可导出,比如,存储在用户的安全中心的硬件中且不可导出。通过上述方式,能够有效确保服务器端在摘盘、挂载过程中磁盘不会遭受解密攻击,从而有效确保摘盘、挂载过程安全可靠。
基于同样的想法,本申请实施例还提供一种系统启动方法,图2为本申请实施例提供的另一种系统启动方法的流程示意图。该方法的执行主体可以是用户端的安全中心。
从图2中可以看到具体包括如下步骤:
201:向服务器端发送用于执行系统启动请求,以及可信计算基软件。
202:在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告。
203:基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
需要说明的是,安全中心是归用户所有,也就是,安全中心中的信息是受用户掌控的,用户可以根据需要对签名密钥SK、加密密钥CK进行修改,也可以根据需要对时间戳的时间长短进行修改。通过安全中心生成的可信计算基软件是受到用户信任的。因此,利用上述方案,在满足用户的系统启动安全防护需求的同时,还能够避免对TPM硬件芯片的依赖。
进一步地,安全中心将可信计算基软件发送给服务器端之后,将由服务器端执行可信计算基软件对平台进行完整性度量,得到度量报告。安全中心接收到度量报告之后,根据度量报告对服务器端进行平台可信验证。若验证通过,则会对服务器端提供的加密状态的磁盘加密密钥进行解密,得到解密后的磁盘加密密钥,并将解密后的磁盘加密密钥发送给服务器端。
服务器端在接收到解密后的磁盘加密密钥之后会对系统磁盘进行解密,通过引导程序引导系统磁盘中的操作系统启动。
通过上述方案,能够在不依赖TPM芯片的情况下,确保系统磁盘安全启动。
如图3为本申请实施例提供的可信计算基软件的生成方法的流程示意图。从图3中可以看到,具体包括如下步骤:
301:生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥。
302:生成平台信息收集指示和针对平台的完整性度量算法。
303:利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件。
本申请技术方案中,可信计算基软件以及其中包含的签名密钥、加密密钥等内容都采用动态的秘钥保护方法,不需要将加密密钥或签名密钥固化到硬件芯片中。这里所说的动态是指在一次系统启动周期中可信计算基软件以及其中包含的签名密钥、加密密钥等内容有效,下次启动周期将失效,这些密钥具有时效性。为了防止秘钥在有效时间阈值内(也就是系统启动周期内)被破解,采用白盒密码保护秘钥。这样攻击者几乎不可能在有效时间(通常1、2分钟)内解密出秘钥。
为了便于理解,下面将通过具体实施例对本申请技术方案的实现过程进行说明。如图4为本申请实施例提供的系统启动的流程示意图。从图4中可以看到,启动过程主要包括如下步骤:
第一步,由硬件/固件保证基本输入输出系统(Basic Input Output System,BIOS)和预启动执行环境(Preboot eXecution Environment,PXE)程序不被非授权篡改。固件中需要预置安全中心公钥,用于验证可信计算基软件的真实性、完整性。
第二步,安全中心生成的签名秘钥SK和加密秘钥CK。其中,SK用于对度量报告签名,加密秘钥CK用于对报告中的信息进行加密。签名秘钥SK和加密秘钥CK都是一次性的,仅在本次系统启动过程中有效,并设置了时间阈值(该时间阈值为操作系统启动前的度量和引导时间,比如,该时间阈值可以设置为不超过1分钟)。签名秘钥、加密密钥、平台信息收集算法,以及度量算法使用白盒密码封装成可信计算基软件,确保攻击者很难在有效期内攻破程序获得秘钥。更进一步的,封装过程是用的白盒程序是动态的,即每次执行该步骤时都采用了不同的密钥对应的白盒查找表,使得攻击者在某个有效期内实施的攻击效果不会“外溢”到后续系统启动有效周期。
第三步,安全中心会把可信计算基软件返回给服务器端,并携带了加入时间戳的信息摘要,并用安全中心私钥对信息摘要签名。服务器端收到可信计算基软件和信息摘要、签名信息后,使用服务器端的固件中预置的安全中心公钥验证签名真实性,可信计算基软件的完整性和时效性(根据时间戳判断时效性),防止攻击者欺骗服务器端下载恶意的可信计算基软件。
第四步,可信计算基软件执行后,利用其中包含的硬件信息收集算法以及度量算法完成硬件平台和软件度量,包括采集CPU ID、网卡MAC、磁盘序列号、BIOS编号等硬件信息。对BIOS、引导程序的完整性度量。当确认硬件平台和软件完整性没有被破坏的情况下,则加载执行引导程序。这里所有的硬件信息和硬件度量值、软件度量值,都要使用加密密钥ck加密保存在内存中。
第五步,引导程序调用可信计算基软件生成度量报告,度量报告包括硬件平台信息、硬件和软件(包括固件)完整性度量值,时间戳,该度量报告使用签名密钥SK签名,保证完整性。然后,引导程序从本地磁盘上找到磁盘数据密钥DEK的密文,将DEK密文和度量报告封装后传给安全中心。
第六步,安全中心利用接收到的度量报告验证平台合法性和完整性。安全中心首先根据时间戳验证签名秘钥有效性,如果本地SK的验证公钥已经失效,那么拒绝本次系统启动请求。当签名秘钥还在有效期内,安全中心使用验签秘钥SK验证度量报告的完整性,然后根据度量报告的报告信息与记录的平台信息和软件/固件完整性信息做对比,确认是合法硬件平台且当前运行环境可信后,将DEK密文用服务器端专属秘钥解密后返回给服务器端。
第七步,引导程序获得明文DEK后,解密系统磁盘并引导启动操作系统OS启动。
需要说明的是,磁盘数据密钥(DEK):用于加密数据分区或数据块。使用不同的密钥加密每个数据块可以增加加密分析攻击的难度。资源提供程序或应用程序实例需要DEK访问权限才能加密和解密特定的块。将DEK替换为新密钥时,只需使用新密钥对其关联的块中的数据重新加密。密钥加密密钥(KEK):用于加密DEK的加密密钥。KEK始终在KeyVault中,这使得DEK本身能得到加密和控制。具有KEK访问权限的实体可能不是需要DEK的实体。由于解密DEK需要KEK,因此KEK实际上构成了一个单点机制:删除KEK即可删除DEK。DEK使用KEK加密且单独存储。只有有权访问KEK的实体才能解密这些DEK。
基于同样的思路,本申请实施例还提供一种包含可信计算基软件的系统。如图5为包含可信计算基软件的系统的结构示意图。从图5中可以看到,该系统包括:
安全中心51,用于向服务器端发送用于执行系统启动请求,以及可信计算基软件;
在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告;
基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
需要说明的是,在本申请技术方案中,可信计算基软件可以应用于本地操作系统,也可以应用于远程操作系统。
安全中心51,还用于生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;
生成平台信息收集指示和针对平台的完整性度量算法;
利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件。
服务器52,用于响应于系统启动请求,获取由用户安全中心生成的可信计算基软件;
在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告;
将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;
在平台可信验证通过后,通过所述引导程序引导启动系统。
服务器52,还用于通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥;
将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
服务器52,还用于在平台可信验证通过后,接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥;
通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
服务器52,用于向所述安全中心发送下载请求,以便所述安全中心生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;生成平台信息收集指示和针对平台的完整性度量算法;利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件;
接收携带有时间戳的所述可信计算基软件。
服务器52,用于接收所述可信计算基软件以及对应的签名后的信息摘要;其中,所述信息摘要是基于所述可信计算基软件和时间戳生成的,利用所述安全中心私钥对得到所述信息摘要进行签名得到所述签名后的信息摘要。
服务器52,用于利用安全中心公钥对所述信息摘要的签名进行验证;
若验证通过,则对所述信息摘要携带的所述时间戳进行时效验证;
若验证通过,则对利用所述可信计算基软件进行完整性验证。
服务器52,用于执行所述可信计算基软件,基于所述平台信息收集指示收集硬件平台信息,所述硬件平台信息包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个;
基于所述硬件平台信息,对所述硬件平台信息进行完整性度量,得到硬件度量值;
对所述引导程序进行完整性度量,得到软件度量值;
若所述平台信息和所述引导程序完整性验证通过,则将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。
服务器52,用于利用所述签名密钥对所述度量报告进行签名;
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心。
服务器52,用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,所述安全中心对所述度量报告进行签名和完整性验证;在验证通过的情况下,所述安全中心利用所述加密密钥对应的私钥对所述度量报告中的报告信息进行解密并进行验证;
若验证通过,则接收由所述安全中心解密得到的解密后的磁盘数据密钥。
服务器52,用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,若平台可信验证未通过,接收到所述安全中心提供的终止系统启动任务。
服务器52,用于响应于对所述系统磁盘的摘盘请求或者挂载请求,确定对应的度量报告;
当所述安全中心基于所述度量报告进行平台可信验证通过后,则接收到所述安全中心提供的所述摘盘请求或者所述挂载请求对应的确认信息;
执行对所述系统磁盘的摘盘任务或挂载任务。
基于同样的思路,本身实施例还提供一种系统启动装置。该装置应用于服务器端,如图6a为本申请实施例提供的系统启动装置的结构示意图。从图6a中可以看到,所述装置包括:
获取模块6a1,用于响应于系统启动请求,获取由用户安全中心生成的可信计算基软件。
生成模块6a2,用于在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告。
发送模块6a3,用于将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
启动模块6a5,用于在平台可信验证通过后,通过所述引导程序引导启动系统。
发送模块6a3,用于通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥;
将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
启动模块6a5,用于在平台可信验证通过后,接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥;
通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
获取模块6a1,用于向所述安全中心发送下载请求,以便所述安全中心生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;生成平台信息收集指示和针对平台的完整性度量算法;利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件;
接收所述可信计算基软件。
可选地,还包括接收模块6a4,用于接收所述可信计算基软件以及对应的签名后的信息摘要;其中,所述信息摘要是基于所述可信计算基软件和时间戳生成的,利用所述安全中心私钥对得到所述信息摘要进行签名得到所述签名后的信息摘要。
可选地,还包括验证模块6a6,用于利用安全中心公钥对所述信息摘要的签名进行验证;
若验证通过,则对所述信息摘要携带的所述时间戳进行时效验证;
若验证通过,则对利用所述可信计算基软件进行完整性验证。
生成模块6a2,用于执行所述可信计算基软件,基于所述平台信息收集指示收集硬件平台信息,所述硬件平台信息包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个;
基于所述硬件平台信息,对所述硬件平台信息进行完整性度量,得到硬件度量值;
对所述引导程序进行完整性度量,得到软件度量值;
若所述平台信息和所述引导程序完整性验证通过,则将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。
生成模块6a2,用于利用所述签名密钥对所述度量报告进行签名;
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心。
接收模块6a4,用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,所述安全中心对所述度量报告进行签名和完整性验证;在验证通过的情况下,所述安全中心利用所述加密密钥对应的私钥对所述度量报告中的报告信息进行解密并进行验证;
若验证通过,则接收由所述安全中心解密得到的解密后的磁盘数据密钥。
接收模块6a4还用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,若平台可信验证未通过,接收到所述安全中心提供的终止系统启动任务。
可选地,还包括磁盘处理模块6a7,用于响应于对所述系统磁盘的摘盘请求或者挂载请求,确定对应的度量报告;
当所述安全中心基于所述度量报告进行平台可信验证通过后,则接收到所述安全中心提供的所述摘盘请求或者所述挂载请求对应的确认信息;
执行对所述系统磁盘的摘盘任务或挂载任务。
基于同样的思路,本身实施例还提供一种系统启动装置。该装置应用于安全中心,如图6b为本申请实施例提供的另一种系统启动装置的结构示意图。从图6b中可以看到,所述装置包括:
发送模块6b1,用于向服务器端发送用于执行系统启动请求,以及可信计算基软件。
接收模块6b2,用于在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告。
验证模块6b3,用于基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
所述发送模块6b1还用于若验证通过,则将解密后的所述磁盘数据密钥发送给所述服务器端,以便所述服务器端通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
可选地,还包括生成模块6b4,用于生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;
生成平台信息收集指示和针对平台的完整性度量算法;
利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件。
本申请一个实施例还提供一种电子设备。该电子设备为计算单元中主节点电子设备。如图7为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括存储器701、处理器702及通信组件703;其中,
所述存储器701,用于存储程序;
所述处理器702,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
响应于系统启动请求,获取由用户安全中心生成的可信计算基软件;
在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告;
将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;
在平台可信验证通过后,通过所述引导程序引导启动系统。
处理器702,用于通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥;
将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证。
处理器702,用于在平台可信验证通过后,接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥;
通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
处理器702,用于向所述安全中心发送下载请求,以便所述安全中心生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;生成平台信息收集指示和针对平台的完整性度量算法;利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件;
接收所述可信计算基软件。
处理器702,用于接收所述可信计算基软件以及对应的签名后的信息摘要;其中,所述信息摘要是基于所述可信计算基软件和时间戳生成的,利用所述安全中心私钥对得到所述信息摘要进行签名得到所述签名后的信息摘要。
处理器702,用于利用安全中心公钥对所述信息摘要的签名进行验证;
若验证通过,则对所述信息摘要携带的所述时间戳进行时效验证;
若验证通过,则对利用所述可信计算基软件进行完整性验证。
处理器702,用于执行所述可信计算基软件,基于所述平台信息收集指示收集硬件平台信息,所述硬件平台信息包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个;
基于所述硬件平台信息,对所述硬件平台信息进行完整性度量,得到硬件度量值;
对所述引导程序进行完整性度量,得到软件度量值;
若所述平台信息和所述引导程序完整性验证通过,则将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。
处理器702,用于利用所述签名密钥对所述度量报告进行签名;
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心。
处理器702,用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,所述安全中心对所述度量报告进行签名和完整性验证;在验证通过的情况下,所述安全中心利用所述加密密钥对应的私钥对所述度量报告中的报告信息进行解密并进行验证;
若验证通过,则接收由所述安全中心解密得到的解密后的磁盘数据密钥。
处理器702,用于将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,若平台可信验证未通过,接收到所述安全中心提供的终止系统启动任务。
处理器702,用于响应于对所述系统磁盘的摘盘请求或者挂载请求,确定对应的度量报告;
当所述安全中心基于所述度量报告进行平台可信验证通过后,则接收到所述安全中心提供的所述摘盘请求或者所述挂载请求对应的确认信息;
执行对所述系统磁盘的摘盘任务或挂载任务。
处理器702,还用于向服务器端发送用于执行系统启动请求,以及可信计算基软件;
在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告;
基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
处理器702,还用于生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;
生成平台信息收集指示和针对平台的完整性度量算法;
利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件。
上述存储器701可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器
(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步地,本实施例中的所述处理器702可以具体是:可编程交换处理芯片,该可编程交换处理芯片中配置有数据复制引擎,能对接收到的数据进行复制。
上述处理器702在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。进一步,如图7所示,电子设备还包括:电源组件704等其它组件。
本申请实施例还提供一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行图1或图2对应实施例所述的方法。
基于上述实施例,在用户选择服务器端为其提供其所需的云应用时,为了确保服务器端系统安全,当服务器端接收到用户提出的系统启动请求之后,服务器端接收到用户的安全中心生成的携带有时间戳的可信计算基软件。由于该可信计算基软件是由用户的安全中心提供的,也就是用户能够掌控可信计算机软件。服务器端在接收到可信计算基软件之后,将进一步利用可信计算基软件得到度量报告,以及服务器端的系统磁盘对应的加密状态的磁盘数据密钥。当安全中心基于度量报告对平台可信验证通过后,也就表示用户认可服务器端安全可靠,可以启动系统以及进行后续数据处理工作。安全中心会把解密后的磁盘数据密钥发送给服务器端,进而由服务器端通过引导程序利用解密后的磁盘数据密钥实现对系统磁盘解密并引导启动系统。通过上述方案,能够在不依赖可信平台模块的情况下,实现对平台可信验证。由于在可信计算基软件中携带有时间戳,能够实现对系统启动时间限制,实现可信计算基软件的动态更新,提高系统启动过程的安全防护效果。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种系统启动方法,其特征在于,应用于服务器端,所述方法包括:
响应于系统启动请求,获取由用户安全中心生成的可信计算基软件;
在完成对所述可信计算基软件的安全验证后,通过引导程序调用所述可信计算基软件生成度量报告;
将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;
在平台可信验证通过后,通过所述引导程序引导启动系统。
2.根据权利要求1所述的方法,其特征在于,所述将所述度量报告发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证,包括:
通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥;
将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心,以便所述安全中心基于所述度量报告进行平台可信验证;
所述在平台可信验证通过后,通过所述引导程序引导启动系统,包括:
在平台可信验证通过后,接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥;
通过所述引导程序利用所述解密后的磁盘数据密钥对所述系统磁盘进行解密并引导启动系统。
3.根据权利要求2所述的方法,其特征在于,获取由用户的安全中心生成的可信计算基软件,包括:
向所述安全中心发送下载请求,以便所述安全中心生成用于对所述度量报告进行签名的签名密钥,以及用于对所述度量报告中的报告信息进行加密的加密密钥;生成平台信息收集指示和针对平台的完整性度量算法;利用白盒算法对所述签名密钥、所述加密密钥、所述平台信息收集指示以及所述完整性度量算法进行加密封装,得到所述可信计算基软件;
接收携带有时间戳的所述可信计算基软件。
4.根据权利要求3所述的方法,生成所述可信计算基软件之后,还包括:
接收所述可信计算基软件以及对应的签名后的信息摘要;其中,所述信息摘要是基于所述可信计算基软件和时间戳生成的,利用所述安全中心私钥对得到所述信息摘要进行签名得到所述签名后的信息摘要。
5.根据权利要求4所述的方法,其特征在于,获取由安全中心生成并提供的携带有时间戳的可信计算基软件之后,还包括:
利用安全中心公钥对所述信息摘要的签名进行验证;
若验证通过,则对所述信息摘要携带的所述时间戳进行时效验证;
若验证通过,则对利用所述可信计算基软件进行完整性验证。
6.根据权利要求4所述的方法,其特征在于,所述通过引导程序调用所述可信计算基软件生成度量报告,包括:
执行所述可信计算基软件,基于所述平台信息收集指示收集硬件平台信息,所述硬件平台信息包括:处理器标识、网卡物理地址、系统磁盘序列号以及基本输入输出系统编号中至少一个;
基于所述硬件平台信息,对所述硬件平台信息进行完整性度量,得到硬件度量值;
对所述引导程序进行完整性度量,得到软件度量值;
若所述平台信息和所述引导程序完整性验证通过,则将所述硬件平台信息、所述硬件度量值、所述软件度量值作为报告信息写入所述度量报告。
7.根据权利要求6所述的方法,其特征在于,通过所述引导程序确定系统磁盘对应的加密状态的磁盘数据密钥之后,还包括:
利用所述签名密钥对所述度量报告进行签名;
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心。
8.根据权利要求7所述的方法,其特征在于,所述接收所述安全中心提供的所述磁盘数据密钥对应的解密后的磁盘数据密钥,包括:
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,所述安全中心对所述度量报告进行签名和完整性验证;在验证通过的情况下,所述安全中心利用所述加密密钥对应的私钥对所述度量报告中的报告信息进行解密并进行验证;
若验证通过,则接收由所述安全中心解密得到的解密后的磁盘数据密钥。
9.根据权利要求2所述的方法,其特征在于,将所述度量报告和所述加密状态的磁盘数据密钥发送给所述安全中心之后,还包括:
将签名的度量报告以及所述系统磁盘对应的加密状态的磁盘数据密钥发送给所述安全中心之后,若平台可信验证未通过,接收到所述安全中心提供的终止系统启动任务。
10.根据权利要求1所述的方法,其特征在于,还包括:
响应于对所述系统磁盘的摘盘请求或者挂载请求,确定对应的度量报告;
当所述安全中心基于所述度量报告进行平台可信验证通过后,则接收到所述安全中心提供的所述摘盘请求或者所述挂载请求对应的确认信息;
执行对所述系统磁盘的摘盘任务或挂载任务。
11.一种系统启动方法,其特征在于,应用于安全中心,所述方法包括:
向服务器端发送用于执行系统启动请求,以及可信计算基软件;
在所述服务器端完成对所述可信计算基软件的安全验证之后,接收通过引导程序调用所述可信计算基软件生成度量报告;
基于所述度量报告对所述服务器端进行平台可信验证,以便在验证通过后所述服务器端通过所述引导程序引导启动系统。
12.一种包含可信计算基软件的系统,其特征在于,所述系统包括:
安全中心,用于执行权利要求11所述的方法;
服务器,用于执行权利要求1至10中任一项所述的方法。
13.一种电子设备,包括存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现上述权利要求1至10中任一项所述的方法,或权利要求11项所述的方法。
14.一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的方法,或权利要求11所述的方法。
CN202310328694.0A 2023-03-27 2023-03-27 系统启动方法、包含可信计算基软件的系统、设备及介质 Pending CN116484379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310328694.0A CN116484379A (zh) 2023-03-27 2023-03-27 系统启动方法、包含可信计算基软件的系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310328694.0A CN116484379A (zh) 2023-03-27 2023-03-27 系统启动方法、包含可信计算基软件的系统、设备及介质

Publications (1)

Publication Number Publication Date
CN116484379A true CN116484379A (zh) 2023-07-25

Family

ID=87222313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310328694.0A Pending CN116484379A (zh) 2023-03-27 2023-03-27 系统启动方法、包含可信计算基软件的系统、设备及介质

Country Status (1)

Country Link
CN (1) CN116484379A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质
CN117556430B (zh) * 2024-01-12 2024-03-29 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
EP3382933B1 (en) Using a trusted execution environment as a trusted third party providing privacy for attestation
CN103843303B (zh) 虚拟机的管理控制方法及装置、系统
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
CN109937419B (zh) 安全功能强化的设备的初始化方法及设备的固件更新方法
US6385727B1 (en) Apparatus for providing a secure processing environment
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
US6438666B2 (en) Method and apparatus for controlling access to confidential data by analyzing property inherent in data
US11218299B2 (en) Software encryption
CN109361668A (zh) 一种数据可信传输方法
US20050283826A1 (en) Systems and methods for performing secure communications between an authorized computing platform and a hardware component
KR100702499B1 (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
EP2548353A2 (en) System and method of enforcing a computer policy
US20180204004A1 (en) Authentication method and apparatus for reinforced software
KR20110035573A (ko) 클라우드 컴퓨팅 환경에서 안전한 가상 머신 설치를 제공하는 방법
JP2020126586A (ja) ログデータの完全性保護
CA2309627A1 (en) An apparatus for providing a secure processing environment
CN116484379A (zh) 系统启动方法、包含可信计算基软件的系统、设备及介质
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN109302442B (zh) 一种数据存储证明方法及相关设备
CN108242997B (zh) 安全通信的方法与设备
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
KR20150089696A (ko) 접근제어와 우선순위기반 무결성 검증 시스템 및 그 방법
CN110855434B (zh) 一种密钥处理方法、装置、终端设备及存储介质
CN115879087A (zh) 一种面向电力终端的安全可信启动方法及系统
Murti et al. Security in embedded systems

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