TPCM在位检测方法、装置、服务器启动方法及服务器与流程

未命名 08-26 阅读:144 评论:0

tpcm在位检测方法、装置、服务器启动方法及服务器
技术领域
1.本发明涉及计算机安全技术领域,特别是涉及一种tpcm在位检测方法、装置、服务器启动方法及服务器。


背景技术:

2.目前,随着信息技术与计算机科学的发展,信息安全和信息保密变得越来越重要。为了保证计算机的固件不被篡改,引入和采用了可信根认证的概念,通过经过验证的tpcm模块对bmc、bios进行度量,从而保证bmc、bios等固件不被篡改。在实际使用中,tpcm模块安装在主板上,通过主板上的tpcm接口与主板相连接,通过螺丝锁固在主板上。
3.但是在现有的结构设计中,只是通过简单的特殊形状螺丝锁固防拆机制放置tpcm模块被替换,因此在结构上具有被替换的隐患和风险。尤其是在tpcm接口形成统一标准后,管脚定义信息以及流程更容易被获得,使得破解机会更高,安全性降低。因此,目前亟需一种能够防止tpcm被替换或篡改的方法,来提高服务器系统的安全性。


技术实现要素:

4.为了解决上述技术问题,本发明提供了一种tpcm在位检测方法、装置、服务器启动方法及服务器,以能够解决现有技术中tpcm模块会被替换或篡改等问题,提高服务器系统的安全性。
5.为了达到上述目的,第一方面,本发明提供了一种tpcm在位检测方法,所述方法包括:
6.在服务器系统上电后,获取来自tpcm的第一密钥信息;
7.根据所述第一密钥信息判断所述tpcm是否为可信在位;
8.若所述tpcm为可信在位,则响应来自tpcm的度量结果;
9.若所述tpcm为不可信在位,则停止启动时序。
10.进一步地,将所述第一密钥信息与预先配置好的第二密钥信息相比对,若比对一致,则判定所述tpcm为可信在位,若比对不一致,则判定所述tpcm为不可信在位。
11.进一步地,所述将所述第一密钥信息与预先配置好的第二密钥信息相比对之前,所述方法还包括:
12.获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;
13.若密钥已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;
14.若密钥未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。
15.进一步地,所述根据所述第一密钥信息对所述第二密钥信息进行配置的步骤包括:
16.根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信
息设置为配置中状态;
17.若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。
18.进一步地,所述第一密钥信息为预先存储在tpcm中的密钥信息且唯一。
19.进一步地,所述度量结果为根据tpcm对度量目标进行度量所生成的数据序列,所述数据序列包括度量目标数据和度量状态数据。
20.进一步地,所述若所述tpcm为可信在位,则响应来自tpcm的度量结果的步骤包括:
21.获取来自tpcm的度量结果,根据所述度量结果,获取度量目标的度量状态,执行相应的时序控制。
22.进一步地,所述获取度量目标的度量状态,执行相应的时序控制的步骤包括:
23.若所述度量状态为度量中状态,则不执行启动时序,直到所述度量状态为度量完成状态;
24.若所述度量状态为度量完成状态,则根据所述度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。
25.第二方面,本发明提供了一种tpcm在位检测装置,所述装置包括:
26.密钥获取模块,用于在服务器系统上电后,获取来自tpcm的第一密钥信息;
27.可信判断模块,用于根据所述第一密钥信息判断所述tpcm是否为可信在位;
28.时序控制模块,用于若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。
29.进一步地,所述可信判断模块,还用于将所述第一密钥信息与预先配置好的第二密钥信息相比对,若比对一致,则判定所述tpcm为可信在位,若比对不一致,则判定所述tpcm为不可信在位。
30.进一步地,所述可信判断模块,还用于获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;若已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;若未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。
31.进一步地,所述可信判断模块还包括密钥配置模块;
32.所述密钥配置模块,用于根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信息设置为配置中状态;
33.若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。
34.进一步地,所述第一密钥信息为预先存储在tpcm中的密钥信息且唯一。
35.进一步地,所述度量结果为根据tpcm对度量目标进行度量所生成的数据序列,所述数据序列包括度量目标数据和度量状态数据。
36.进一步地,所述时序控制模块,还用于若所述度量状态为度量中状态,则不执行启动时序,直到所述度量状态为度量完成状态;若所述度量状态为度量完成状态,则根据所述
度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。
37.第三方面,本发明提供了一种服务器启动方法,采用如上所述的tpcm在位检测方法对tpcm进行可信在位检测,并在检测通过时启动服务器。
38.第四方面,本发明提供了一种服务器,所述服务器包括通过串行通信单向连接的tpcm和cpld,所述tpcm预置有第一密钥信息,所述cpld采用如权利要求1至8任一项所述的tpcm在位检测方法对tpcm进行可信在位检测。
39.进一步地,所述cpld外接有eeprom,所述eeprom用于存储配置好的第二密钥信息。
40.本发明提供了一种tpcm在位检测方法、装置、服务器启动方法及服务器。本发明增加了cpld对tpcm进行主动认证的机制,丰富了tpcm的状态传输信息方式,通过双重控制方式避免了tpcm实体被短接、以及物理替换等缺陷和风险,有效提高了服务器系统的安全性和稳定性。
附图说明
41.图1是现有技术中cpld与tpcm互联的结构示意图;
42.图2是现有技术中基于tpcm的服务器启动流程示意图;
43.图3是本发明实施例中tpcm在位检测方法的流程示意图;
44.图4是本发明实施例中密钥配置方法的流程示意图;
45.图5是本发明实施例中tpcm在位检测装置的结构示意图;
46.图6是本发明实施例中服务器启动方法的流程示意图;
47.图7是本发明实施例中服务器的结构示意图。
具体实施方式
48.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.在对本发明的技术方案进行说明之前,先对本发明涉及到的技术关键词进行解释:tpcm(trusted platform control module):可信平台控制模块、或可信认证启动流程;bios(basic input output system):基本输入输出系统;bmc(baseboard management controller):基板管理控制器;cpld(complex programmable logic device):复杂可编程逻辑器件;fw(firmware):固件版本;od(open drain):漏极开路输出。
50.请参阅图1,在现有的tpcm模块的工作机制中,tpcm安装在服务器主板上,通过cpld上的tpcm接口与主板相连接,通过螺丝锁固定在主板上,tpcm与cpld之间传输的主要信号包括tpcm_present_n信号、bmc_check_pass_n信号和bios_check_pass_n信号,这三种信号通过高低电平来表示不同的含义,并且三个连接线路与电源vcc之间均设置有上拉电阻,其中,tpcm_present_n信号用于表示是否安装了tpcm,bmc_check_pass_n信号用于表示tpcm对bmc的度量是否通过,bios_check_pass_n信号则用于表示tpcm对bios的度量是否通过。
51.结合图1所示的结构拓扑,请参阅图2,现有的基于tpcm的服务器启动的工作流程
为:系统上电,主板上的cpld和tpcm最先启动。cpld通过tpcm_present_n信号判断tpcm模块是否安装在位。如果tpcm接口没有安装tpcm模块,tpcm_present_n信号由于主板上的上拉电阻呈现高电平,则判断tpcm未安装;cpld停止启动时序,保持bmc处于复位状态,系统main域电源不上电。如果安装了tpcm,则tpcm_present_n信号被tpcm上的对地电阻强拉低,tpcm_present_n信号呈现低电平,cpld判断tpcm_present_n信号为低后,就按照预定流程进行启动。
52.按照预定流程,tpcm首先对bmc flash中的固件进行校验。如果bmc固件校验失败,则tpcm不对bmc_check_pass_n信号做处理,bmc_check_pass_n信号仍为高电平;cpld在一定时间后没有收到bmc_check_pass_n信号变低,则说明bmc固件度量失败,cpld停止启动时序,保持bmc处于复位状态,系统main域电源不上电。如果bmc度量通过,tpcm会拉低bmc_check_pass_n信号,cpld判断bmc_check_pass_n信号为低后,就按照预定流程进行启动。
53.当系统收到开机指令后,按照预定流程,tpcm对bios flash中的固件进行校验。如果bios固件校验失败,则tpcm不对bios_check_pass_n信号做处理,bios_check_pass_n仍为高电平;cpld在一定时间后没有收到bios_check_pass_n信号变低,则说明bios固件度量失败,cpld停止启动时序,系统main域电源不上电。如果bios度量通过,tpcm会拉低bios_check_pass_n信号,cpld收到bios_check_pass_n信号为高后,就按照预定流程进行启动。至此,传统方式基于tpcm启动流程完成。
54.传统方式虽然利用了tpcm对bmc和bios进行度量提高了服务器系统的安全性,但是仍存在一些问题,一方面是tpcm并没有被验证,而使用未被验证过的tpcm进行度量实际上并不能完全保证度量结果的安全性和准确性,会存在tpcm被替换或篡改而导致的系统不可信,比如使用被篡改过的tpcm进行替换,无论度量通过与否,都会发出度量通过信号,欺骗cpld绕过tpcm的校验而完成系统启动;
55.另一方面,针对现有结构,也可以通过短接等方式绕过tpcm的验证,比如通过短接tpcm_present_n对地,以欺骗cpld误以为tpcm在位,或者在一定时间内,短接bmc_check_pass_n对地,以欺骗cpld误以为bmc度量通过,或者在一定时间内,短接bios_check_pass_n对地,以欺骗cpld误以为bios度量通过,通过这种简单的硬件短接方式,同样可以欺骗cpld绕过tpcm的校验,从而完成系统启动。而通过短接或者物理替换等方式进行的系统启动必然会导致服务器系统的不可信。
56.为了解决上述现有的基于tpcm的启动方式,请参阅图3,本发明第一实施例提出的一种tpcm在位检测方法,包括步骤s10~s20:
57.步骤s10,在服务器系统上电后,获取来自tpcm的第一密钥信息;
58.步骤s20,根据所述第一密钥信息判断所述tpcm是否为可信在位。
59.在现有的tpcm启动方式中,是通过传统的gpio高低电平侦测tpcm模块是否在位,并不会对tpcm进行可信验证,而这种高低电平信号又可以通过短接等方式来欺骗cpld误以为tpcm在位,因此会存在tpcm被替换或者篡改的风险,为此,本发明设计了一种检测方式来验证tpcm是否可信,在本实施例中,采用了串行数据的方式进行在位检验,即为tpcm设置一个密钥信息,将该密钥信息作为tpcm的身份证明,通过对tpcm的密钥信息的验证,来判断tpcm是否是可信在位的,从而实现了对tpcm的可信验证,避免了被引脚短接欺骗cpld tpcm在位的情况发生。
60.在一个优选的实施例中,tpcm的密钥信息可以采用在外部通过预设方式生成后,预先存储在tpcm内部,该密钥信息作为tpcm的身份信息,应该是有且仅有一个的,即该密钥信息应当具有唯一性,是与tpcm一一对应的,这种唯一性能够保证验证结果的准确性。当然,该密钥信息也可以是通过在tpcm内置密钥生成装置,由该密钥生成装置随机或者按照预设方式只生成一次密钥,并将该唯一的密钥信息并存储在tpcm内部,此外,本发明还提供了另一个优选的实施例,即在tpcm首次安装时,由验证方比如由cpld发送一个密钥信息到tpcm,作为该tpcm的密钥信息进行存储,再后续对tpcm进行验证时,可以使用该密钥信息作为tpcm的身份信息进行验证,该密钥信息既可以在外部安装预设方式生成并提前存储在cpld内部,也可以在cpld内部安装密钥生成装置来生成该密钥信息,在该实施例中,由于tpcm并不知晓该密钥信息的生成方式,因此也能够保证密钥信息的安全性。
61.在现有的启动流程中,是由cpld来判断tpcm是否在位,本发明利用这一特性,同样采用cpld来验证tpcm的密钥信息是否正确,因此在系统上电后tpcm的密钥信息需要传输给cpld以进行可信在位的验证,对于密钥信息的传输,可以采用明文或者加密传输,如果采用明文传输,当收到该密钥信息时可以直接对密钥信息进行读取并判断该密钥是否正确,从而能够快速的确认tpcm是否可信;如果采用加密传输,则还需要在发送方和接收方配置加解密装置,这种加密传输的方式则可以提高传输的安全性。应当理解的是,其他的密钥信息生成方法和传输方法都可以应用于本发明中,在此不再一一赘述。
62.在接收到密钥信息之后,对密钥信息的验证也可以有多种验证方法,比如该密钥信息是以预设的规则生成的,因此可以通过判定该密钥信息是否符合预设规则的方式来验证密钥信息是否正确,当然还可以采用如本发明所使用的验证方式,即将第一密钥信息与预先配置好的第二密钥信息相比对,若比对一致,则判定tpcm为可信在位,若比对不一致,则判定tpcm为不可信在位。
63.其中,第二密钥信息与第一密钥信息相同,通过对两个密钥信息的比对,就可以验证该第一密钥信息是否正确,从而确认tpcm在位且未被篡改或者替换,这种验证方式不仅简单便捷,并且具有极高的准确度。
64.在本实施例中,第二密钥信息是预先配置好的密钥信息,该密钥信息被预存在cpld一侧,由于在本实施例中第二密钥信息是需要提前配置的,为了避免在第二密钥信息尚未配置成功就进行密钥比对而导致的无效检验的情况发生,本发明还提供了一个优选的实施例,在该实施例中,在将第一密钥信息与第二密钥信息进行比对之前,还需要执行的步骤为:
65.获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;
66.若密钥已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;
67.若密钥未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。
68.其中,本实施例中的密钥状态信息是用来表示第二密钥信息的配置状态,比如配置未完成或者配置已完成,只有配置已完成的密钥信息才可以被用来验证tpcm的第一密钥信息,而在配置未完成的情况下,对于第一密钥信息的验证结果是无效的或者不会进行验证,通过这种方式可以进一步地的确保密钥对比结果的准确性,避免了在第二密钥信息尚未配置完成的情况进行了无效验证等情况的出现,其中,密钥状态信息可以为预设的字符
串,通过设置不同的字符数据来表示不同的状态。
69.在对tpcm进行可信验证之前,首先要确认第二密钥信息是否已经配置完成,只有在密钥状态信息为配置完成的情况下,后续对第一密钥信息的验证才是有效的,否则,就需要先对第二密钥信息进行配置。对第二密钥信息进行配置也可以采用多种方法,比如在tcpm中预存第一密钥信息时,同时将第一密钥信息作为第二密钥信息预存在cpld中,并在第二密钥信息预存完成后将密钥状态信息设置为配置完成状态,但是在该方法中,tpcm和cpld需要为一一对应,即二者需要一一对应的安装,如果安装错误就会引起tpcm无法验证且无法第二密钥信息无法修改的情况,因此该配置方法虽然简单不会增加过多额外的成本,但是对于生产安装要求很高,不利于生产效率的提升;另一种配置方法则是在第一密钥信息为cpld生成并发送至tpcm的情况下,在对第一密钥信息进行发送的同时,将生成的密钥信息作为第二密钥信息进行存储,并在第一密钥信息发送成功后,将密钥状态信息设置为配置完成状态,该方法能够极大的提高密钥信息的安全,从而提高验证结果的准确性,但是该方法存在问题是需要在cpld中设置密钥生成装置,并且为了保证密钥的唯一性,该密钥生成装置在主板安装成功后只需要生成一次密钥信息即可,因此不可避免的会提高生产成本并且造成了资源浪费,为了解决上述问题,能够在不提高生产成本的情况下既保证了密钥的安全性和唯一性,又便于工厂流水线的生产安装,不会给生产过程带来额外的负担,本发明针对第二密钥信息的配置方法提供了一种优选的实施例,其配置步骤如下所示:
70.根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信息设置为配置中状态;
71.若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。
72.在该实施例中,第二密钥信息根据第一密钥信息配置而成,而第一密钥信息可以为预存在tpcm中也可以采用由在tpcm内部生成的方式,当然后一种方法虽然具有极高的密钥安全性,但是如上所述,该方法也需要增加额外的密钥生成装置且该装置只需要生成一次密钥,因此,本发明优选的采用将第一密钥信息提取存储在tpcm中的方式,然后在主板安装成功第一次上电时,将第一密钥信息发送给cpld作为第二密钥信息进行存储,并且为了保证数据传输的准确性,请参阅图4,本发明采用的密钥配置流程为:
73.在系统上电后,首先接收来自tpcm的第一密钥信息,然后判断密钥状态信息,在本实施例中使用了两个字节作为密钥状态位,通过密钥状态位来判断密钥的配置状态,密钥状态位可以存储在eeprom中,其中00表示未配置状态,01表示配置中状态,10表示配置完成状态。如果密钥状态信息为00即未配置状态,那么就将第一密钥信息作为第二密钥信息进行存储,并且将密钥状态信息由00修改为01,表示配置中状态。为了保证配置结果是准确的,本实施例中不是直接将未配置状态变为配置完成状态,而是设置了配置中状态,通过两次配置比对来确保配置结果的准确有效,即,在系统再次上电,再次接收到第一密钥信息后,如果密钥状态信息为配置中状态即为01时,需要将第一密钥信息与存储的第二密钥信息进行比对,如果一致,就认为存储的第二密钥信息为有效信息,此时就可以将密钥状态信息修改为配置完成状态即改为10,如果不一致,则认为第一次传输发生了错误,第一次存储
的密钥信息是不可信的,此时就将密钥状态信息修改为00未配置状态,并将存储的第二密钥信息丢弃,等待下次启动时重新记录密钥信息,直到密钥配置完成,密钥状态信息为10即配置完成状态。系统再次上电后,如果判断密钥状态信息为配置完成状态,就说明cpld已经完成了第二密钥信息的配置,此时可以按照预定流程进行后续的启动。
74.本发明通过二次配置的方式保证了密钥配置流程的完整性和配置结果是准确性,从而保证了后续对tpcm进行可信验证的结果是有效的,本发明提供的配置方法不需要在tpcm或者cpld侧增加额外的如密钥生成器等复杂装置,只需要在tpcm内预存一个密钥信息即可,也不需要对cpld进行对应设置,该密钥配置方法不仅简单高效,并且不会给生产安装带来额外的负担。
75.本发明通过首次上电记录tpc的密钥信息,并在后期上电时对tpcm的密钥信息做比对,通过对tpcm的可信在位检测,避免了后期被恶意更换tpcm的情况发生,提高了服务器系统的安全性。
76.步骤s30,若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。
77.通过对上述现有技术的说明可知,由于tpcm对bmc或者bios等的固件度量结果是通过高低电平信号的方式来告知cpld的,并且是由不同的引脚信号来表示不同的度量结果,而在tpcm被移除后,可以通过短接相关pin脚的方式绕过可行根认证,从而恶意篡改系统,为了解决现有技术存在的这一问题,本发明将现有技术中采用高低电平信息表示度量结果的方式替换为以数据序列的方式表示度量结果,从而避免了通过短接方式来欺骗cpld度量通过的情况发生。
78.本发明将由不同引脚的高低电平信息表示的度量结果表示为一串数据序列,即通过数据序列的不同bit位的值就能够表示对于bmc或者bios等不同装置进行度量的度量结果,比如度量的目标是bmc还是bios,度量的结果是通过还是不通过,当cpld收到该度量结果时,通过对数据序列的读取就能够知晓tpcm的度量目标和度量结果,从而根据读取到的信息执行相应的时序控制,比如时序启动或者停止启动等。在该实施例中,由于度量结果由数据序列来表示,该数据序列中不仅有度量结果同时还有度量目标,因此该数据序列并不需要如现有设计中需要通过多个gpio来传输电平,而是只需要一个端口进行数据传输即可,即本发明通过数据序列表示度量结果的设计,在避免了通过pin脚短接方式绕过可行根认证的情况发生之外,还能够有效减少tpcm的接口数量。
79.进一步的,在现有设计中,cpld只能通过在一定时间内去读取相应gipo的电平信息来判断tpcm的固件度量是否完成,而在读取到电平信息之前cpld并不知晓tpcm当前的状态,即tpcm是否正在进行固件度量,在这种设计下,通过引脚短接的方式来欺骗cpld误以为tpcm度量已通过是非常容易实现的,因为cpld只能通过高低电平来判断度量结果,并不能通过其他方式来获取tpcm是否正在度量的信息,这也是因为现有设计采用电平信号来传输度量结果所带来的弊端。
80.为此,本发明提供了一种优选的实施例,即在使用数据序列传输度量结果的基础上,增加了数据序列的格式信息,将度量的状态信息加入了数据序列中,并且只要tpcm开始度量,就会将度量状态信息写入数据序列中,并通过不断的重复发送来时时告知cpld tpcm的当前状态,以避免cpld不了解tpcm的度量状态而被度量结果欺骗的情况发生。而在增加
了度量状态信息后,cpld根据度量目标的度量状态执行相应的时序控制的步骤为:
81.若所述度量状态为度量中状态,则不执行启动时序,直到所述度量状态为度量完成状态;
82.若所述度量状态为度量完成状态,则根据所述度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。
83.在本实施例中,cpld与tpcm的数据交互采用了8bit指令进行沟通,数据格式可以设置为:msb_xx_xx_xx_xx_lbs,其中,格式与定义如下表1所示:
[0084][0085][0086]
表1数据传输格式
[0087]
在上表中,tpcm发送bmc度量中命令的数据为:0000_00_00,在整个度量过程中会不断重复发送以通知cpld其度量状态;
[0088]
tpcm发送bmc度量通过的数据为:0000_00_11,度量不通过的数据为:0000_00_10,该数据序列会在bmc度量完成后发送;
[0089]
tpcm发送bios度量中命令的数据为:0000_01_00,在整个度量过程中会不断重复发送以通知cpld其度量状态;
[0090]
tpcm发送bios度量通过的数据为:0000_01_11,度量不通过的数据为:0000_01_10,该数据序列会在bios度量完成后发送。
[0091]
当然以上只是针对度量状态的举例说明,在实际情况中,还可以设置度量错误等信息,也可以设置其他的数据格式等,在此将不在一一赘述。
[0092]
本发明提出的tpcm在位检测方法,摒弃了传统的通过gpio高低电平侦测tpcm是否在位以及度量是否完成的方式,设计了采用串行数据的方式进行验证验证以及传输度量结果,不仅可以避免tpcm被替换或恶意篡改导致的可信根失效以及通过短接绕过可信根认证导致的系统不可信,并且还可以减少gpio数量的使用,减少了tpcm的接口数量,同时丰富了tpcm状态信息的更新,从而有效提高了服务器系统启动的安全性和运行的稳定性。
[0093]
请参阅图5,基于同一发明构思,本发明第二实施例提出的一种tpcm在位检测装置,包括:
[0094]
密钥获取模块10,用于在服务器系统上电后,获取来自tpcm的第一密钥信息;
[0095]
可信判断模块20,用于根据所述第一密钥信息判断所述tpcm是否为可信在位;
[0096]
时序控制模块30,用于若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。
[0097]
在本实施例中,采用了串行数据的方式进行在位检验,即为tpcm设置一个密钥信息,将该密钥信息作为tpcm的身份证明,通过对tpcm的密钥信息的验证,来判断tpcm是否是可信在位的,从而实现了对tpcm的可信验证,避免了被引脚短接欺骗cpld tpcm在位的情况发生。而在一个优选的实施例中,tpcm的密钥信息可以采用在外部通过预设方式生成后,预先存储在tpcm内部,该密钥信息作为tpcm的身份信息,应该是有且仅有一个的,即该密钥信息应当具有唯一性,是与tpcm一一对应的,这种唯一性能够保证验证结果的准确性。
[0098]
进一步地,本发明还提供了另一个优选的实施例,在该实施例中:
[0099]
可信判断模块,还用于获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;若已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;若未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。
[0100]
在本实施例中,第二密钥信息与第一密钥信息相同,通过对两个密钥信息的比对,就可以验证该第一密钥信息是否正确,从而确认tpcm在位且未被篡改或者替换,这种验证方式不仅简单便捷,并且具有极高的准确度。
[0101]
进一步地,本发明还提供了另一个优选的实施例,在该实施例中所述装置还包括:
[0102]
密钥配置模块,用于根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信息设置为配置中状态;
[0103]
若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。
[0104]
在本实施例中,密钥状态信息用来表示第二密钥信息的配置状态,比如配置未完成或者配置已完成,只有配置已完成的密钥信息才可以被用来验证tpcm的第一密钥信息,而在配置未完成的情况下,对于第一密钥信息的验证结果是无效的或者不会进行验证,通过这种方式可以进一步地的确保密钥对比结果的准确性,避免了在第二密钥信息尚未配置完成的情况进行了无效验证等情况的出现,其中,密钥状态信息可以为预设的字符串,通过设置不同的字符数据来表示不同的状态。
[0105]
进一步地,本发明还提供了另一个优选的实施例,在该实施例中:
[0106]
所述度量结果为根据tpcm对度量目标进行度量所生成的数据序列,所述数据序列包括度量目标数据和度量状态数据。
[0107]
本实施例将现有技术中采用高低电平信息表示度量结果的方式替换为以数据序列的方式表示度量结果,从而避免了通过短接方式来欺骗cpld度量通过的情况发生。在本实施例中,由于度量结果由数据序列来表示,该数据序列中不仅有度量结果同时还有度量目标,因此该数据序列并不需要如现有设计中需要通过多个gpio来传输电平,而是只需要一个端口进行数据传输即可,即本发明通过数据序列表示度量结果的设计,在避免了通过pin脚短接方式绕过可行根认证的情况发生之外,还能够有效减少tpcm的接口数量。
[0108]
进一步地,本发明还提供了另一个优选的实施例,在该实施例中:
[0109]
时序控制模块,还用于若所述度量状态为度量中状态,则不执行启动时序,直到所
述度量状态为度量完成状态;若所述度量状态为度量完成状态,则根据所述度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。
[0110]
本实施例在使用数据序列传输度量结果的基础上,增加了数据序列的格式信息,将度量的状态信息加入了数据序列中,并且只要tpcm开始度量,就会将度量状态信息写入数据序列中,并通过不断的重复发送该数据序列来时时告知cpld tpcm的当前状态,以避免cpld不了解tpcm的度量状态而被度量结果欺骗的情况发生。
[0111]
本发明实施例提出的tpcm在位检测装置的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。上述tpcm在位检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0112]
本发明第三实施例提出的一种服务器启动方法,采用如上所述的tpcm在位检测方法对tpcm进行可信在位检测,并在检测通过时启动服务器。
[0113]
在现有设计中,通过引脚短接等方式可以欺骗cpld,以绕过可信根认证,从而使系统不可信,本发明为了解决现有设计所存在的问题,提出了tpcm在位检测方法对tpcm进行可信认证,而此基础上,本发明还提供了一种服务器启动方法,从服务器启动流程入手,更改现有的启动流程和方法,以提高服务器系统启动的安全性,从而确保了服务器系统运行的安全性和稳定性。
[0114]
结合图2所示的基于tcpm的传统启动流程可知,在传统的启动流程中,由于是通过高低电平的方式评估tpcm是否在位,并且通过高低电平的方式来传输tpcm的度量结果,因此缺乏对tpcm的可信认证,以及可以通过短接等方式欺骗cpld,以绕过tpcm的可信认证,从而导致系统的不可信启动。为此,本发明提供了一种新的服务器启动方法,以解决现有启动方法存在的这些问题。请参阅图6,本发明提供的服务器启动方法为:
[0115]
在服务器系统上电后,cpld会通过时序控制复位bmc,该步骤与传统启动方式相同,而在该步骤之后,通过tpcm发送的密钥信息来对tpcm进行可信认证,如果密钥比对成功,则认为tpcm可信在位,此时等待tpcm对bmc进行度量,而对bmc度量完成之后,根据度量结果生成数据序列并发送至cpld,cpld接收到对于bmc度量的数据序列后,通过该数据序列获取对bmc的度量结果,如果度量通过,则解除bmc的复位状态,并启动bmc,如果度量不通过,则停止启动时序。
[0116]
在服务器系统收到开机指令后,tpcm对bios进行固件度量,并根据度量结果生成数据序列,该数据序列同样被发送至cpld,由cpld根据该数据序列判断bios是否度量通过,如果度量不通过,就停止启动时序,如果度量通过,则解除bios的复位状态启动bios,从而完成服务器系统的可信启动。需要说明的是,在对tpcm的第一密钥信息进行比对验证之前,需要完成第二密钥信息的配置,密钥信息的配置方法同样可以采用上述的tpcm在位检测方法中的配置方式,并且其度量结果的数据序列生成方式也与上述的tpcm在位检测方法中的数据序列生成方式相同,在此将不在一一赘述。
[0117]
本发明在服务器系统的启动过程中增加了对tpcm认证的过程,并且通过串行数据的方式进行的可信根认证和度量结果的传输,可以防止tpcm被移除后,通过短接相关pin脚的方式绕过可信根认证,恶意篡改系统,并且可以防止tpcm被更换或恶意篡改后导致可信
根失效,导致的系统不可信,进一步地,还可以减少gpio数量的使用,减少tpcm模块接口数量,丰富tpcm状态信息的更新,从多个方面保证了服务器系统能够安全可信的启动,从而提高了服务器系统的信息安全。
[0118]
请参阅图7,本发明第四实施例提供的一种服务器,该服务器包括通过串行通信单向连接的tpcm和cpld,所述tpcm预置有第一密钥信息,所述cpld采用如上所述的tpcm在位检测方法对tpcm进行可信在位检测。
[0119]
在现有设计中,由于cpld是通过不同引脚的高低电平来评估tpcm是否在位、以及tpcm对bmc和bios进行固件度量的度量结果,因此至少需要三对gpio端口,同时该设计还容易通过pin脚短接的方式来欺骗cpld,而本发明提供了一种可以通过串行数据来进行tpcm的认证和传输度量结果的方法,该方法中所有信息都是串行数据,因此可以将tpcm与cpld之间的连接关系从传统的gpio电平的工作方式变更为串行通信,具体为,tpcm与cpld之间通过tpcm_cpld_data_tx信号连接,该信号为单向信号,由tpcm发送、cpld接收。tpcm端通过od输出的方式控制外部信号,方便与主板电平匹配。
[0120]
通过串行通信的方式,将原有的需要至少三对gpio端口的连接结构变更为只需要一对gpio端口进行串行通信即可,当然在gpio的连接线路上也设置有上拉电阻,本发明的这种拓扑设计,除了可以避免通过短接或者替换等方式欺骗cpld之外,还可以有效减少gpio接口的数量。并且通过规定该信号为单向传输,tpcm不会有外部数据的输入,进一步保证了tpcm的密钥信息的安全性。
[0121]
进一步地,由于本发明中cpld需要对tpcm的密钥信息进行验证,因此需要配置并存储第二密钥信息,如果将该第二密钥信息存储在cpld内置的flash中,当cpld升级时容易影响到密钥信息,从而导致密钥信息失效等问题出现,为此,本发明提供了一种优选的实施例,在该实施例中,将cpld外挂eeprom,该eerpom的位置不受cpld升级的影响,在系统上电后,cpld会将tpcm发送过来的密钥信息保存在该eeprom中,从而确保了配置好的密钥信息不会因为系统意外断电或者cpld升级等原因被覆盖、清空或者篡改。下面结合图7的拓扑结构,对服务器的启动流程进行说明:
[0122]
在系统上电初期,tpcm通过tpcm_cpld_data_tx信号向cpld发送tpcm的密钥信息,此密钥在tpcm内部具有唯一性。cpld在收到密钥信息后,先判断cpld内存储的密钥信息是否配置完成,如果配置完成,就对接收到的密钥信息进行比对验证,如果没配置完成,就根据接收到的密钥信息进行密钥配置。
[0123]
在密钥配置时,先判断eeprom中的密钥状态信息,如果为未配置状态,就记录密钥信息至eeprom,并将eeprom中的密钥状态信息写为配置中状态,如果为配置中状态,则与eeprom中第一次存储的密钥做比对,比对一致则写eeprom中的密钥状态信息为配置完成状态,比对不一致则写eeprom中的密钥状态信息为未配置状态,等待下次启动时重新记录密钥,直至密钥配置完成,密钥状态信息为配置完成状态。
[0124]
cpld通过将存储的密钥信息与接收的密钥信息相比对,来验证密钥信息的正确与否,cpld如果收到正确的tpcm密钥信息,则可以判断为tpcm在位且未被篡改或者替换,即为可信在位;如果没有接收到正确的tpcm密钥信息,则说明tpcm模块被篡改或者替换,cpld停止启动时序,保持bmc处于复位状态,系统main域电源不上电。
[0125]
按照预定流程,tpcm首先对bmc flash中的固件进行校验,在度量过程中,tpcm通
过tpcm_cpld_data_tx信号不断的向cpld发送度量状态为度量中的数据序列直到度量完成,cpld如果接到度量中的数据序列就进行等待,直到接收到度量完成的数据序列。如果bmc固件度量失败,则tpcm通过tpcm_cpld_data_tx信号向cpld发送bmc固件度量失败的数据序列,cpld停止启动时序,保持bmc处于复位状态,系统main域电源不上电;如果bmc固件度量成功,则tpcm通过tpcm_cpld_data_tx信号向cpld发送bmc固件度量成功的数据序列,cpld按照预定流程进行启动。
[0126]
当系统收到开机指令后,tpcm对bios flash中的固件进行校验,在度量过程中,tpcm通过tpcm_cpld_data_tx信号不断的向cpld发送度量状态为度量中的数据序列直到度量完成,cpld如果接到度量中的数据序列就进行等待,直到接收到度量完成的数据序列。如果bios固件度量失败,则tpcm通过tpcm_cpld_data_tx信号向cpld发送bios固件度量失败的数据序列,cpld停止启动流程,系统main域电源不上电;如果bios固件度量成功,则tpcm通过tpcm_cpld_data_tx信号向cpld发送bios固件度量成功的数据序列,cpld按照预定流程进行启动。从而完成基于tpcm的启动流程。
[0127]
本发明通过单向信号的串行通信方式,减少了tpcm接口的数量,避免了外部数据输入tpcm,从结构设计上提高了tpcm内部数据的安全性,并且通过cpld外挂eeprom的方式,避免了存储的密钥信息受cpld升级等情况的影响,本发明通过对服务器在拓扑结构上的改进,提高了服务器系统的数据安全性,从而使服务器系统的运行更加安全稳定。
[0128]
需要说明的是,本发明提供的服务器的拓扑结构只是根据上述的服务器启动方法相匹配的一种优选的拓扑结构,在该优选实施例的基础上,还可以对服务器的拓扑结构做进一步的改进或者替换,比如对于tpcm和cpld之间的串行通信,可以设置为双向通信,在这种设计下,除了可以采用本发明提供的密钥配置方法和密钥比对方法之外,还可以实现上述的多种优选的密钥配置方法,包括由cpld向tpcm发送代表tpcm身份的密钥信息,并接收来自tpcm的密钥信息进行验证,或者由cpld向tpcm发送密钥信号进行配置,cpld会向tpmc发送密钥配置是否成功的信息等密钥配置方法;又比如在原有tpcm和cpld的拓扑连接结构上增加串行通信,在该情况下,可以通过密钥比对和高低电平信号的双重判定的方式,来进一步确保tpcm未被替换或篡改,当然还可以采用cpld外挂多个eeprom的拓扑结构,将cpld存储的密钥信息和密钥状态信息以及其他的数据都存储在不同的外挂eeprom中,以提高cpld存储的数据的安全性。即在不脱离本发明技术原理的前提下,可以对结构以及方法做出若干改进和替换,这些改进和替换也应视为本技术的保护范围。
[0129]
综上,本发明实施例提出的tpcm在位检测方法、装置、服务器启动方法及服务器,所述方法通过在服务器系统上电后,获取来自tpcm的第一密钥信息;根据所述第一密钥信息判断所述tpcm是否为可信在位;若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。本发明通过增加tpcm的认证动作以及通过数据流代替传统电平的方式传输状态信息,可以有效防止tpcm被移除后,通过短接相关pin脚的方式绕过可信根认证,恶意篡改系统,以及防止tpcm被更换或恶意篡改,导致可信根失效而引起的系统不可信,同时还可以减少gpio数量的使用,减少tpcm模块接口数量,丰富tpcm状态信息的更新。本发明通过增加了cpld对tpcm模块主动认证的机制,丰富了tpcm模块的状态传输信息方式,双重确保了tpcm实体不被短接或不被替换篡改,本发明通过方法和结构上的改进,确保了服务器系统的信息安全。
[0130]
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0131]
以上所述实施例仅表达了本技术的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本技术的保护范围。因此,本技术专利的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种tpcm在位检测方法,其特征在于,包括:在服务器系统上电后,获取来自tpcm的第一密钥信息;根据所述第一密钥信息判断所述tpcm是否为可信在位;若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。2.根据权利要求1所述的tpcm在位检测方法,其特征在于,所述根据所述第一密钥信息判断所述tpcm是否为可信在位的步骤包括:将所述第一密钥信息与预先配置好的第二密钥信息相比对,若比对一致,则判定所述tpcm为可信在位,若比对不一致,则判定所述tpcm为不可信在位。3.根据权利要求2所述的tpcm在位检测方法,其特征在于,所述将所述第一密钥信息与预先配置好的第二密钥信息相比对之前,所述方法还包括:获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;若密钥已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;若密钥未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。4.根据权利要求3所述的tpcm在位检测方法,其特征在于,所述根据所述第一密钥信息对所述第二密钥信息进行配置的步骤包括:根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信息设置为配置中状态;若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。5.根据权利要求1所述的tpcm在位检测方法,其特征在于,所述第一密钥信息为预先存储在tpcm中的密钥信息且唯一。6.根据权利要求1所述的tpcm在位检测方法,其特征在于,所述度量结果为根据tpcm对度量目标进行度量所生成的数据序列,所述数据序列包括度量目标数据和度量状态数据。7.根据权利要求6所述的tpcm在位检测方法,其特征在于,所述若所述tpcm为可信在位,则响应来自tpcm的度量结果的步骤包括:获取来自tpcm的度量结果,根据所述度量结果,获取度量目标的度量状态,执行相应的时序控制。8.根据权利要求7所述的tpcm在位检测方法,其特征在于,所述获取度量目标的度量状态,执行相应的时序控制的步骤包括:若所述度量状态为度量中状态,则不执行启动时序,直到所述度量状态为度量完成状态;若所述度量状态为度量完成状态,则根据所述度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。9.一种tpcm在位检测装置,其特征在于,所述装置包括:密钥获取模块,用于在服务器系统上电后,获取来自tpcm的第一密钥信息;可信判断模块,用于根据所述第一密钥信息判断所述tpcm是否为可信在位;
时序控制模块,用于若所述tpcm为可信在位,则响应来自tpcm的度量结果;若所述tpcm为不可信在位,则停止启动时序。10.根据权利要求9所述的tpcm在位检测装置,其特征在于,所述可信判断模块,还用于将所述第一密钥信息与预先配置好的第二密钥信息相比对,若比对一致,则判定所述tpcm为可信在位,若比对不一致,则判定所述tpcm为不可信在位。11.根据权利要求10所述的tpcm在位检测装置,其特征在于,所述可信判断模块,还用于获取预存的密钥状态信息,根据所述密钥状态信息判断第二密钥信息是否配置完成;若已配置完成,则将所述第一密钥信息与所述第二密钥信息相比对;若未配置完成,则根据所述第一密钥信息对所述第二密钥信息进行配置。12.根据权利要求11所述的tpcm在位检测装置,其特征在于,所述装置还包括密钥配置模块;所述密钥配置模块,用于根据所述密钥状态信息判断所述第二密钥信息的配置状态,若所述密钥状态信息为未配置状态,则将所述第一密钥信息作为第二密钥信息进行存储,并将所述密钥状态信息设置为配置中状态;若所述密钥状态信息为配置中状态,则将所述第一密钥信息与存储的第二密钥信息相比对,若比对一致,则将所述密钥状态信息设置为配置完成状态,若比对不一致,则将所述密钥状态信息设置为未配置状态。13.根据权利要求9所述的tpcm在位检测装置,其特征在于,所述第一密钥信息为预先存储在tpcm中的密钥信息且唯一。14.根据权利要求13所述的tpcm在位检测装置,其特征在于,所述度量结果为根据tpcm对度量目标进行度量所生成的数据序列,所述数据序列包括度量目标数据和度量状态数据。15.根据权利要求14所述的tpcm在位检测装置,其特征在于,所述时序控制模块,还用于若所述度量状态为度量中状态,则不执行启动时序,直到所述度量状态为度量完成状态;若所述度量状态为度量完成状态,则根据所述度量完成状态判断度量是否通过,并根据度量通过与否,执行相应的时序控制。16.一种服务器启动方法,其特征在于,采用如权利要求1至8任一项所述的tpcm在位检测方法对tpcm进行可信在位检测,并在检测通过时启动服务器。17.一种服务器,其特征在于,所述服务器包括通过串行通信单向连接的tpcm和cpld,所述tpcm预置有第一密钥信息,所述cpld采用如权利要求1至8任一项所述的tpcm在位检测方法对tpcm进行可信在位检测。18.根据权利要求17所述的服务器,其特征在于,所述cpld外接有eeprom,所述eeprom用于存储配置好的第二密钥信息。

技术总结
本发明涉及计算机安全技术领域,公开了TPCM在位检测方法、装置、服务器启动方法及服务器,所述方法通过在服务器系统上电后,获取来自TPCM的第一密钥信息;根据所述第一密钥信息判断所述TPCM是否为可信在位;若所述TPCM为可信在位,则响应来自TPCM的度量结果;若所述TPCM为不可信在位,则停止启动时序。本发明通过增加了CPLD对TPCM模块主动认证的机制,丰富了TPCM模块的状态传输信息方式,双重确保了TPCM实体不被短接或不被替换篡改,避免了TPCM被短接和物理替换等缺陷和风险,通过方法和结构上的双重改进,进一步确保了服务器系统的信息安全。息安全。息安全。


技术研发人员:申明伟 谷兆艳
受保护的技术使用者:上海合芯数字科技有限公司
技术研发日:2023.05.25
技术公布日:2023/8/23
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐