一种安全保护方法、装置及系统与流程

文档序号:31993833发布日期:2022-11-01 23:55阅读:238来源:国知局
一种安全保护方法、装置及系统与流程

1.本技术涉及计算机及通信技术领域,尤其涉及一种安全保护方法、装置及系统。


背景技术:

2.目前,基板管理控制器(base-board management controller,bmc)已经成为服务器的关键构成部分,是一个单独在服务器内运行的管理子系统。bmc作为一个平台管理系统,具备一系列的监控和控制功能,主要是通过监视服务器的温度、电压、风扇、电源等,并做相应的调节,以保证服务器处于健康的状态。
3.在服务器启动过程中,bmc往往先于服务器操作系统上电启动,并且可以通过专用可编程逻辑电路对服务器的上电开关和时序实现控制。bmc为服务器提供丰富的运维管理和控制能力的同时,也存在着严重的安全威胁。因此如果对bmc进行安全保护,是一个亟待解决的问题。


技术实现要素:

4.本技术提供一种安全保护方法、装置及系统,可以提高bmc的安全性。
5.第一方面,本技术实施例提供了一种bmc,bmc包括安全域以及非安全域,安全域与非安全域物理隔离;安全域包括串行闪存控制器(sfc)以及第一核,其中,sfc用于与可信密码模块(tcm)相连,第一核用于通过sfc与tcm交互实现bmc的安全功能。
6.本技术实施例中,bmc主控芯片内部架构划分为物理隔离的安全域和非安全域,通过对sfc的接口与tcm进行对接,实现对tcm的系统集成,使得在bmc主控芯片上电启动后,可以利用tcm的可信能力建立信任源点,并对从上电启动到软件正常运行的全过程实施可信度量,以确保各级代码在加载运行前没有被破坏,篡改或植入非法代码,从而可以确保bmc的软件执行环境的可信。
7.在一种可能的设计中,sfc与第一核通过先进外围设备总线(apb)相连。
8.在一种可能的设计中,sfc包括时钟(clk)信号端、串行输入输出(sio)信号端、串行输出输入(soi)信号端和片选信号(csn)信号端。
9.在一种可能的设计中,第一核用于生成第一命令,第一命令用于与tcm交互;其中,第一命令包括a个控制字、b个地址字以及c个载荷字,a为大于0的整数,b为大于0的整数,c为大于0的整数,a、b以及c的和不大于n,n为第一命令包括的字节的总数,其中,控制字用于指示读操作或者写操作,地址字用于携带地址信息,载荷字用于携带第一命令的负荷。
10.在一种可能的设计中,a个控制字为第一命令的第1~a个字节,b个地址字的第a+1~b个字节,c个载荷字为第一命令的第b+1~n个字节,a为大于1且小于n的整数,b为大于a+1且小于n的整数。
11.上述设计中,通过对sfc的接口进行软、硬件协议的转置改造,与tcm进行对接,实现对tcm的系统集成,并且,sfc接口对tcm的通信和控制只有“发送”和“接收”两个功能状态,具有高可靠性,使得tcm本身状态和内容不可被外界读写,并且仅可以在规定的地址区
域写入命令或读取功能输出信息,从而可以保障模块本身不易被篡改、劫持和仿冒。
12.在一种可能的设计中,第一命令为读命令或者写命令;或者,第一命令用于通知tcm发送第二命令的响应命令,第二命令为第一核通过sfc向tcm发送的读命令或者写命令。
13.在一种可能的设计中,非安全域包括第二核,和/或,外设,其中,第二核用于运行操作系统。
14.第二方面,本技术实施例提供了一种安全保护系统,系统包括第一方面所述的bmc以及tcm,其中,bmc中的安全域通过sfc与tcm相连。
15.本技术实施例中通过利用bmc安全域的sfc接口与tcm进行对接,实现对tcm的系统集成,使得在bmc主控芯片上电启动后,可以利用tcm的可信能力建立信任源点,并对从上电启动到软件正常运行的全过程实施可信度量,以确保各级代码在加载运行前没有被破坏,篡改或植入非法代码,从而可以确保bmc的软件执行环境的可信。
16.在一种可能的设计中,sfc与tcm满足如下连接关系:
17.sfc的clk信号端连接tcm的clk信号端,可以作为tcm接口spi总线同步时钟信号,以及作为tcm接口信号的时序参考信号;
18.sfc的sio信号端连接tcm的mosi信号端,可以作为tcm接口spi总线数据输入信号通道;
19.sfc的soi信号端连接tcm的miso信号端,可以作为tcm接口spi总线数据输出信号通道;
20.sfc的csn信号端连接tcm的cs信号端,可以作为tcm接口spi总线片选信号,其中,低电平有效,在第一核与tcm未交互时可以默认高电平。
21.在一种可能的设计中,安全域的通用输入输出(gpio)信号端连接tcm的物理在位(pp)信号端,作为tcm接口物理在位信号,高电平有效,在tcm与第一核连接时默认高电平。
22.第三方面,本技术实施例提供了一种安全保护方法,该方法应用于bmc,方法包括:第一核生成第一命令,其中,所述第一命令包括a个控制字、b个地址字以及c个载荷字,所述a为大于0的整数,所述b为大于0的整数,所述a为大于0的整数,所述a、b以及c的和不大于n,所述n为所述第一命令包括的字节的总数,其中,所述控制字用于指示读操作或者写操作,所述地址字用于携带地址信息,所述载荷字用于携带所述第一命令的负荷;第一核通过sfc向tcm发送第一命令。
23.本技术实施例中,通过对sfc的接口进行软、硬件协议的转置改造,与tcm进行对接,实现对tcm的系统集成,并且,sfc接口对tcm的通信和控制只有“发送”和“接收”两个功能状态,具有高可靠性,使得tcm本身状态和内容不可被外界读写,并且仅可以在规定的地址区域写入命令或读取功能输出信息,从而可以保障模块本身不易被篡改、劫持和仿冒。
24.在一种可能的设计中,a个控制字为第一命令的第1~a个字节,b个地址字的第a+1~b个字节,c个载荷字为第一命令的第b+1~n个字节,a为大于1且小于n的整数,b为大于a+1且小于n的整数。
25.在一种可能的设计中,第一核通过sfc向tcm发送第一命令,包括:第一核将a个控制字节写入sfc的指令寄存器;第一核将b个地址字节写入sfc的地址寄存器;第一核将c个载荷字节写入sfc的命令发送数据缓存区域;第一核触发命令写操作。通过上述设计,可以避免破坏写命令数据格式,从而可以提高命令传输的准确性。
26.在一种可能的设计中,第一核触发命令写操作,包括:第一核设置sfc的命令写操作控制位为第一值,第一值用于触发命令写操作。
27.在一种可能的设计中,第一命令为读命令或者写命令。
28.在一种可能的设计中,c个载荷字包括c1个命令标识字、c2个命令长度字、c3个命令码以及c4个负荷字,所述c1为大于0且小于c的整数,所述c2为大于0且小于c的整数,所述c3为大于0且小于c的整数,所述c4为大于0且小于c的整数,且c1、c2、c3以及c4的和不大于c,其中,所述命令标识字用于携带所述第一命令的标识,所述命令长度字用于指示所述第一命令的长度,所述命令码用于携带所述第一命令的代码,所述负荷字用于携带所述第一命令的负荷。
29.在一种可能的设计中,c1个命令标识字为第一命令的第b+1~c个字节,c2个命令长度字为第一命令的第c+1~d个字节,c3个命令码为第一命令的第d+1~e个字节,c4个负荷字为第一命令的第e+1~n个字节,其中,c为大于b+1且小于n的整数,d为大于c+1且小于n的整数,e为大于d+1且小于n的整数。
30.在一种可能的设计中,第一命令用于通知tcm发送第二命令的响应命令,第二命令为bmc向tcm发送的读命令或者写命令。
31.在一种可能的设计中,所述c个载荷字包括c1个命令标识字、c2个命令长度字、c3个返回码、c4个命令码以及c5个负荷字,所述c1为大于0且小于c的整数,所述c2为大于0且小于c的整数,所述c3为大于0且小于c的整数,所述c4为大于0且小于c的整数,所述c5为大于0且小于c的整数,且c1、c2、c3、c4以及c5的和不大于c,其中,所述命令标识字用于携带所述第一命令的标识,所述命令长度字用于指示所述第一命令的长度,所述返回码用于携带所述第一命令的返回码,所述命令码用于携带所述第一命令的代码,所述负荷字用于携带所述第一命令的负荷。
32.在一种可能的设计中,c1个命令标识字为第一命令的第b+1~c个字节,c2个命令长度字为第一命令的第c+1~d个字节,c3个返回码为第一命令的第d+1~e个字节,c4个命令码为第一命令的第e+1~f个字节,c5个负荷字为第一命令的第f+1~n个字节,其中,c为大于b+1且小于n的整数,d为大于c+1且小于n的整数,e为大于d+1且小于n的整数。
33.在一种可能的设计中,在第一核通过sfc向tcm发送第一命令之后,方法还包括:第一核通过sfc接收第二命令的响应命令。
34.在一种可能的设计中,第一核通过sfc接收第二命令的响应命令,包括:第一核触发命令读操作,其中,在命令读操作期间sfc的csn信号端在第一时间段内为高电平,在第二时间段内为低电平,第一时间段的起点为第一核触发命令读操作的时刻,第一时间段的时长为b个字节对应的时间长度,第二时间段的起点为第一时间段的终点,第二时间段的终点为命令读操作结束的时刻;第一核读取sfc的命令接收数据缓存区域中缓存的字节;第一核将读取的字节保存到静态随机访问存储器(sram)。上述设计,使得第一核可以从有效数据开始读取,从而可以提高命令传输的准确性。
35.在一种可能的设计中,第一核通过sfc接收第二命令的响应命令,包括:第一核间隔第一时长后触发命令读操作,其中,第一时长为b个字节对应的时间长度,处于读状态的sfc的csn信号端为低电平;第一核读取sfc的命令接收数据缓存区域中缓存的字节;第一核将读取的字节保存到sram。上述设计,使得第一核可以从有效数据开始读取,从而可以提高
命令传输的准确性。
36.第四方面,本技术实施例提供了一种安全保护装置,包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行上述第三方面及其任一可能的设计中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合。该通信接口可以是芯片的输入/输出接口。
37.第五方面,本技术实施例提供一种计算设备,包括处理器和存储器,所述处理器包括多个处理器核心;所述存储器,用于存储计算机程序或指令;所述处理器,用于执行计算机程序或指令,实现上述第三方面及其任一可能的设计所述的方法。
38.第六方面,本技术实施例提供了一种可读存储介质,用于存储指令,当所述指令被执行时,使上述第三方面及其任一可能的设计所述的方法被实现。
39.第七方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第三方面及其任一可能的设计所述的方法。
40.第八方面,本技术实施例提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,该芯片系统还可包括接口电路,所述接口电路用于接收程序或指令并传输至处理器;当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述第三方面及其任一可能的设计中的方法。
41.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
42.可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器(read-only memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
43.本技术在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
44.以上第四方面至第八方面及其任一可能的设计的有益效果可参见第三方面及其任一可能的设计中的有益效果。
附图说明
45.图1为本技术实施例的一种bmc与tcm的集成系统的结构示意图;
46.图2为本技术实施例的一种命令格式示意图;
47.图3为本技术实施例的一种读/写命令格式示意图;
48.图4为本技术实施例的一种命令格式示意图;
49.图5为本技术实施例的一种安全保护系统的结构示意图;
50.图6为本技术实施例的一种安全保护方法的流程示意图;
51.图7为本技术实施例的一种写操作的信号示意图;
52.图8为本技术实施例的一种写操作的信号示意图;
53.图9为本技术实施例的一种读操作的信号示意图;
54.图10为本技术实施例的一种读操作的信号示意图;
55.图11为本技术实施例的一种安全保护装置的结构示意图。
具体实施方式
56.为了解决背景技术中提及的问题,本技术实施例提供了一种安全保护方法、装置及系统,可以提高bmc的安全性。其中,方法和装置是基于同一技术构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
57.以下,对本技术中的部分用语进行解释说明,以便于本领域技术人员理解。
58.bmc:服务器的关键构成部分,是一个单独在服务器内运行的管理子系统。bmc作为一个平台管理系统,具备一系列的监控和控制功能,主要是通过监视服务器的温度、电压、风扇、电源等,并做相应的调节,以保证服务器处于健康的状态。其硬件是服务器的主板第一个上电启动部件和带外管理系统。
59.tcm:构建安全运算环境的硬件和固件的集合。其核心功能可以包括:平台完整性度量与验证、平台可信身份标识与鉴别、平台数据保护等。
60.可信度量根的核心(core of root of trusted measurement,crtm):建立平台度量根,保障完整性度量的核心功能代码或模块。crtm一般是服务器的独立系统上电启动后执行的第一段代码。
61.信任源点:信任源点是一个必须被信任的组件。在一个可信平台中可信源点包含三个可信根:可信度量根(root of trust for measurement,rtm)、可信存储根(root of trust for storage,rts)和可信报告根(root of trust for reporting,rtr)。
62.sfc-tcm接口:由串行闪存控制器(serial interface flash controller,sfc)的接口对接可信密码模块的串行接口,可以实现可信密码模块系统集成的物理总线接口以及驱动软件的集合。
63.下面介绍本技术实施例涉及的技术特征。
64.bmc在服务器中作为独立的管理控制子系统,是服务器第一个启动的子系统,并且可以通过专用可编程逻辑电路对服务器系统的上电开关和时序实现控制。bmc为服务器提供丰富的运维管理和控制能力的同时,也存在着严重的安全威胁。服务器固件和软件以及bmc中的固件和软件系统如果受到恶意代码植入,将会威胁到整个服务器的状态、控制和环境配置的安全性。通过bmc集成tcm可以对bmc进行安全保护。
65.目前,基于bmc集成tcm的硬件设计如图1所示,其硬件结构特点是基于bmc的串行外设接口(serial peripheral interface,spi)接口直接对接tcm的spi接口,实现基于spi总线的系统集成。其软件架构特点是由bmc软件(或固件)实现基于spi接口对tcm接口实现通信流程和状态控制。
66.但是,该方案利用bmc非安全域接口(即spi接口)对tcm实现系统集成,扩大了tcm的攻击面,致使在bmc上运行的运维管理应用软件具备了直接对tcm的状态和内容进行访问或篡改的可能。并且,该方案对spi接口的驱动、通信状态控制本身存储和执行环境没有得到可信度量或安全保障,存在针对bmc对tcm的接口驱动的植入恶意代码,对tcm命令接口篡改、劫持或仿冒的可能性。此外,该方案在bmc软件中实现对tcm状态的控制,状态定义和功
能状态均较复杂,其应用中间件存在安全隐患且不符合国际通用的可信密码模块访问方式。并且,bmc的对接tcm的软件需要通过对spi总线的状态查询获知tcm的物理在位状态,软件流程复杂。
67.本技术实施例提供一种安全保护方法、装置及系统。本技术实施例中,bmc主控芯片内部架构划分为物理隔离的安全域和非安全域,通过对sfc的接口进行软、硬件协议的转置改造,与tcm进行对接,实现对tcm的系统集成,使得在bmc主控芯片上电启动后,可以利用tcm的可信能力建立信任源点,并对从上电启动到软件正常运行的全过程实施可信度量,以确保各级代码在加载运行前没有被破坏,篡改或植入非法代码,从而可以确保bmc的软件执行环境的可信。
68.下面对本技术实施例提供的bmc进行说明。
69.该bmc的主控芯片包括安全域以及非安全域,安全域与非安全域物理隔离。其中,bmc的主控芯片至少包括两个核,其中,一个核在安全域,另一个核在非安全域,这两个核在硬件上是两个独立的核,或者,这两个核在硬件上位于同一个硅片的两个独立的区域,或者,这两个核在硬件上是两个独立的硅片。
70.安全域包括sfc以及第一核,其中,sfc用于与tcm相连,第一核用于通过sfc与tcm交互实现bmc的安全功能,例如,对bmc进行平台完整性度量与验证、平台可信身份标识与鉴别、平台数据保护等。
71.可选的,非安全域可以包括第二核,还可以包括外设等,其中,第二核用于运行操作系统。
72.由于安全域与非安全域物理隔离,部署在非安全域的核以及运行该核上的软件无法访问到安全域的sfc接口,因此可以减少tcm的攻击面,从而可以降低对tcm的状态和内容进行访问或篡改的可能性。
73.一种实现方式中,第一核用于生成第一命令,第一命令用于与tcm交互。其中,第一命令可以为读命令或者写命令;或者,第一命令也可以用于获取第二命令的响应命令,第二命令为第一核通过sfc向tcm发送的读命令或者写命令。
74.可选的,第一命令包括a个控制字、b个地址字以及c个载荷字,a为大于0的整数,b为大于0的整数,a为大于0的整数,a、b以及c的和不大于n,n为第一命令包括的字节的总数,其中,控制字用于指示读操作或者写操作,地址字用于携带地址信息,载荷字用于携带第一命令的负荷。
75.示例性的,第一命令的第1~a个字节为控制字,用于指示读操作或者写操作,第一命令的第a+1~b个字节为地址字,用于携带地址信息,第一命令的第b+1~n个字节为载荷字,用于携带第一命令的负荷,n为第一命令包括的字节的总数,a为大于1且小于n的整数,b为大于a+1且小于n的整数。
76.例如,第一命令的第1个字节用于指示读操作或者写操作,第一命令的第2~4个字节用于携带地址信息,第一命令的第5~n个字节用于携带第一命令的负荷,如图2所示。
77.可选的,n可以为不大于sfc可发送数据的最大长度的整数,例如,sfc可发送数据的最大长度为128,n可以为不大于128的整数,如n为128等。
78.一个示例中,第一命令为读命令或者写命令。c个载荷字包括c1个命令标识字、c2个命令长度字、c3个命令码以及c4个负荷字,c1为大于0且小于c的整数,c2为大于0且小于c
的整数,c3为大于0且小于c的整数,c4为大于0且小于c的整数,且c1、c2、c3以及c4的和不大于c,其中,命令标识字用于携带第一命令的标识,命令长度字用于指示第一命令的长度,命令码用于携带第一命令的代码,负荷字用于携带第一命令的负荷。
79.例如,第一命令的第b+1~c个字节为命令标识字,用于携带第一命令的标识,第一命令的第c+1~d个字节为命令长度字,用于指示第一命令的长度,第一命令的第d+1~e个字节为命令码,用于可以携带第一命令的代码,第一命令的第e+1~n个字节可以携带第一命令的负荷,其中,c为大于b+1且小于n的整数,d为大于c+1且小于n的整数,e为大于d+1且小于n的整数。
80.举例说明,第一命令的第1个字节用于指示读操作或者写操作,第一命令的第2~4个字节用于携带地址信息,第一命令的第5~6个字节可以携带第一命令的标识,第一命令的第7~10个字节可以指示第一命令的长度,第一命令的第11~14个字节可以携带第一命令的代码,第一命令的第15~n个字节可以携带第一命令的负荷,如图3所示。
81.另一个示例中,第一命令用于通知tcm发送第二命令的响应命令,第二命令为bmc向tcm发送的读命令或者写命令。c个载荷字包括c1个命令标识字、c2个命令长度字、c3个返回码、c4个命令码以及c5个负荷字,c1为大于0且小于c的整数,c2为大于0且小于c的整数,c3为大于0且小于c的整数,c4为大于0且小于c的整数,c5为大于0且小于c的整数,且c1、c2、c3、c4以及c5的和不大于c,其中,命令标识字用于携带第一命令的标识,命令长度字用于指示第一命令的长度,返回码用于携带第一命令的返回码,命令码用于携带第一命令的代码,负荷字用于携带第一命令的负荷。
82.例如,第一命令的第b+1~c个字节为命令标识字,用于携带第一命令的标识,第一命令的第c+1~d个字节为命令长度字,用于指示第一命令的长度,第一命令的第d+1~e个字节携带第一命令的返回码,第一命令的第e+1~f个字节为命令码,用于携带第一命令的代码,第一命令的第f+1~n个字节携带第一命令的负荷,其中,c为大于b+1且小于n的整数,d为大于c+1且小于n的整数,e为大于d+1且小于n的整数。
83.举例说明,第一命令的第1个字节用于指示读操作或者写操作,第一命令的第2~4个字节用于携带地址信息,第一命令的第5~6个字节可以携带第一命令的标识,第一命令的第7~10个字节可以指示第一命令的长度,第一命令的第11~14个字节可以携带第一命令的返回码,第一命令的第15~18个字节可以携带第一命令的代码,第一命令的第19~n个字节可以携带第一命令的负荷,如图4所示。
84.一种可能的实施方式中,第一核通过sfc与tcm相连,其中,sfc的接口可以为主模式,tcm的接口可以为从模式。
85.可选的,sfc与第一核可以通过先进外围设备总线(advanced peripheral bus,apb)相连。
86.一个实施例中,安全域可以包括片内只读存储区(read only memory,rom),片内rom与第一核可以通过apb相连。该片内rom可以包括可信度量根的核心(core of root of trusted measurement,crtm)代码段,部署sfc的接口的驱动和应用代码可以部署在该crtm代码段中。
87.安全域还可以包括片内静态随机访问存储器(static random access memory,sram),该片内sram与第一核可以通过私有外围设备总线(private peripheral bus,ppb)
相连。
88.通过上述实施例,bmc主控芯片上电启动开始时,第一核可以首先从片内rom读取crtm代码并通过ppb总线写至片内sram并执行,因此,sfc的接口驱动代码是bmc子系统上电后第一个阶段运行的代码,从而可以在上电启动后及时对bmc进行安全保护。
89.示例性的,sfc可以包括时钟(clock,clk)信号端、串行输入输出(serial input/output,sio)信号端、串行输出输入(serial output/input,soi)信号端和片选(chip select n,csn)信号端。
90.一种示例中,bmc主控芯片的硬件结构可以如图5所示,其中,图5所示高性能核可以为上文所述第二核,图5所示高安全核可以为上文所述第一核。
91.下面对本技术实施例提供的安全保护系统进行说明。该系统包括如图5所示的bmc以及tcm,其中,bmc中的安全域通过sfc与tcm相连。
92.一种示例性说明中,tcm可以为遵循《gm/t 0011-2012可信计算可信密码支撑平台功能与接口规范》、《gm/t 0012-2012可信计算可信密码模块接口规范》、《gm/t0013-2012可信计算可信密码模块符合性检测规范》等标准及认证要求的可信密码模块,对外可以提供基于spi物理协议以及自定义软件协议的命令响应交互型接口。
93.示例性的,tcm可以包括clk信号端、主输出从输入(master output/slave input,mosi)信号端、主输入从输出(master input/slave output,miso)信号端、片选(chip select,cs)信号端。
94.一种实现方式中,sfc与tcm可以满足如下连接关系:
95.sfc的clk信号端连接tcm的clk信号端,可以作为tcm接口spi总线同步时钟信号,以及作为tcm接口信号的时序参考信号;
96.sfc的sio信号端连接tcm的mosi信号端,可以作为tcm接口spi总线数据输入信号通道;
97.sfc的soi信号端连接tcm的miso信号端,可以作为tcm接口spi总线数据输出信号通道;
98.sfc的csn信号端连接tcm的cs信号端,可以作为tcm接口spi总线片选信号,其中,低电平有效,在第一核与tcm未交互时可以默认高电平。
99.此外,安全域的通用输入输出(general purpose input/output,gpio)信号端连接tcm的物理在位(pp)信号端,作为tcm接口物理在位信号,高电平有效,在tcm与第一核连接时默认高电平。
100.一种示例中,安全保护系统的结构可以如图5所示。
101.本技术实施例还提供一种安全保护方法,该方法可以应用于图5中的bmc。如图6所示,该方法包括:
102.s901,第一核生成第一命令。
103.其中,第一命令可以参阅上述关于第一命令的相关描述,这里不再重复赘述。
104.s902,第一核通过sfc向tcm发送第一命令。
105.一种实现方式中,第一核可以将第一命令的第1~a个字节写入sfc的指令寄存器;将第一命令的第a+1~b个字节写入sfc的地址寄存器;将第一命令的第b+1~n个字节写入sfc的命令发送数据缓存区域;触发命令写操作。
106.其中,第一核可以通过如下方式触发命令写操作:设置sfc的命令写操作控制位为第一值,第一值用于触发命令写操作,例如,第一值可以为1。其中,命令写操作控制位可以为sfc的一个寄存器,第一核可以通过控制该寄存器的状态触发命令写操作。
107.以图2所示第一命令为例,第一核可以将第一命令的第1个字节写入sfc的指令寄存器;将第一命令的第2~4个字节写入sfc的地址寄存器;将第一命令的第5~n个字节写入sfc的命令发送数据缓存区域;设置sfc的命令写操作控制位为“1”触发sfc的接口进行命令写操作。
108.一种可能的实施方式中,在步骤s901之前,第一核可以向tcm发送第二命令,第二命令为读命令或者写命令,其中,第二命令的格式可以参阅图2或图3所示的格式,第一核发送第二命令的方式具体可以参阅第一核发送第一命令的方式,重复之处不再赘述。
109.基于上述实施方式,第一核在发送第二命令之后发送的第一命令用于获取第二命令的响应命令。第一核在发送第一命令之后可以接收tcm发送的第二命令的响应命令。
110.一种实现方式中,第一核通过如下方式接收第二命令的响应命令:触发命令读操作,其中,命令读操作期间的sfc的csn信号端在第一时间段内为高电平,在第二时间段内为低电平,第一时间段的起点为第一核触发命令读操作的时刻,第一时间段的时长为b个字节对应的时间长度,第二时间段的起点为第一时间段的终点,第二时间段的终点为停止命令读操作的时刻;读取sfc的命令接收数据缓存区域中缓存的字节;将读取的字节保存到sram。
111.可选的,第一核可以通过如下方式触发命令读操作:设置sfc的命令读操作控制位为第二值,第二值用于触发命令读操作,例如,第二值可以为0。其中,命令读操作控制位可以为sfc的一个寄存器,第一核可以通过控制该寄存器的状态触发命令读操作。
112.可选的,命令写操作控制位与命令读操作控制位可以为同一个寄存器,也可以为不同的寄存器,这里不做具体限定。
113.另一种实现方式中,第一核也通过如下方式接收第二命令的响应命令:间隔第一时长后触发命令读操作,其中,第一时长为b个字节对应的时间长度,处于读状态的sfc的csn信号端为低电平;读取sfc的命令接收数据缓存区域中缓存的字节;将读取的字节保存到sram。
114.为了更好的理解第一核和tcm的交互过程,下面结合具体场景对交互过程进行示例性描述。
115.交互过程可以包括:
116.s1,第一核基于图3所示的信令格式生成命令1,其中,命令1为读命令或者写命令,该命令可以用于tcm实现平台完整性度量与验证、平台可信身份标识与鉴别、平台数据保护等功能。
117.s2,第一核将命令1的第一个字节写入sfc的指令寄存器,将命令1的第2~4个字节写入sfc的地址寄存器,将命令1的第5~n个字节写入sfc的命令发送数据缓存区域。
118.s3,第一核设置sfc的命令写操作控制位为“1”触发sfc的接口进行命令写操作。
119.其中,第一核在发送完命令2时控制sfc的csn为高电平,例如,第一核在sfc的命令写操作完成控制位为“1”时控制sfc的csn为高电平。
120.示例性的,sfc接口的写操作的第一个字节为读、写命令字,第二至第四个字节为
读、写地址字,后续字节为数据负载,sfc的信号端的信号示意图可以如图7所示。
121.由于sfc接口写操作时硬件会自动发送预置写命令与写地址,随后为发送数据缓存区由低字节至高字节发送数据,但这将造成发送数据前置四字节为全零字节将会破坏上述写命令数据格式,无法被tcm模块解析。本技术实施例中通过将第一个字节写入sfc的指令寄存器,将第二至第四字节依次写入sfc的地址寄存器,将第五至第n字节从写数据缓存区的第一字节写至第“n-4”字节,如图8所示,可以避免破坏写命令数据格式,从而可以提高命令传输的准确性。
122.s4,第一核基于图4所示的信令格式生成命令2,其中,命令2用于获取命令1的响应命令。
123.s5,第一核将命令2的第一个字节写入sfc的指令寄存器,将命令2的第2~4个字节写入sfc的地址寄存器,将命令2的第5~n个字节写入sfc的命令发送数据缓存区域。
124.s6,第一核设置sfc的命令写操作控制位为“1”触发sfc的接口进行命令写操作。之后执行步骤s7a,或者s7b。
125.其中,第一核在发送完命令2时控制sfc的csn为高电平,例如,第一核在sfc的命令写操作完成控制位为“1”时控制sfc的csn为高电平。
126.s7a,第一核设置sfc的命令读操作控制位为“1”触发sfc的接口进行命令读操作。
127.其中,第一核在命令读操作控制位为“1”时的前4个字节的时间段内控制sfc的csn为高电平,之后控制sfc的csn为低电平。
128.s7b,第一核间隔4个字节的时长后设置sfc的命令读操作控制位为“1”触发sfc的接口进行命令读操作。
129.其中,第一核在命令读操作控制位为“1”时控制sfc的csn为低电平。
130.由于sfc接口读操作时硬件会自动发送预置读命令与读地址,然后才会转入读周期,因此会造成读命令包尾附加有非预期数据,且读数据在缓存区开始4字节数据区域为空,如图9所示。而本技术实施例中通过控制csn在读操作时前4个字节为高电平,或者,在间隔4个字节的时长后触发读操作,如图10所示,使得第一核可以从有效数据开始读取,从而可以提高命令传输的准确性。
131.基于相同的发明构思,本技术实施例还提供一种安全保护装置,用于实现以上方法实施例所示的步骤。该装置可包括图11所示结构。该安全保护装置可用于实现图6所示的方法。如图11所示,该安全保护装置可以包括驱动模块1101、tcm应用中间件模块1102以及tcm应用软件模块1103。
132.其中,驱动模块1101用于驱动sfc的接口。例如,用于驱动sfc的接口与tcm的接口的进行交互,还可以用于向tcm应用中间件提供tcm读操作应用接口以及tcm写操作应用接口。
133.tcm应用中间件模块1102用于实现对tcm的读写操作,例如,可以基于驱动模块提供的tcm读操作应用接口以及tcm写操作应用接口实现并封装tcm功能、服务和流程等,还可以用于对tcm应用软件模块提供tcm应用接口。一种实现方式中,tcm应用中间件模块可以基于驱动模块提供的tcm读操作应用接口以及tcm写操作应用接口,根据《gm/t 0012-2012可信计算可信密码模块接口规范》实现并封装tcm功能、服务和流程等。
134.tcm应用软件模块1103用于实现对tcm的应用服务。例如,可以基于tcm应用中间件
模块提供的tcm应用接口实现对tcm的应用服务。
135.一种实现方式中,tcm应用中间件模块1102,具体用于基于tcm应用软件模块1103实现的应用服务生成第一命令,其中,所述第一命令包括a个控制字、b个地址字以及c个载荷字,所述a为大于0的整数,所述b为大于0的整数,所述a为大于0的整数,所述a、b以及c的和不大于n,所述n为所述第一命令包括的字节的总数,其中,所述控制字用于指示读操作或者写操作,所述地址字用于携带地址信息,所述载荷字用于携带所述第一命令的负荷;驱动模块1101,具体用于驱动sfc向tcm发送第一命令。
136.可选的,驱动模块1101,在驱动sfc向tcm发送第一命令时,具体用于:将a个控制字节写入sfc的指令寄存器;将b个地址字节写入sfc的地址寄存器;将c个载荷字节写入sfc的命令发送数据缓存区域;触发命令写操作。
137.具体的,驱动模块1101,在触发命令写操作时,具体用于:设置sfc的命令写操作控制位为第一值,第一值用于触发命令写操作。
138.示例性的,第一命令为读命令或者写命令。
139.示例性的,c个载荷字包括c1个命令标识字、c2个命令长度字、c3个命令码以及c4个负荷字,所述c1为大于0且小于c的整数,所述c2为大于0且小于c的整数,所述c3为大于0且小于c的整数,所述c4为大于0且小于c的整数,且c1、c2、c3以及c4的和不大于c,其中,所述命令标识字用于携带所述第一命令的标识,所述命令长度字用于指示所述第一命令的长度,所述命令码用于携带所述第一命令的代码,所述负荷字用于携带所述第一命令的负荷。
140.示例性的,第一命令用于通知所述tcm发送第二命令的响应命令,第二命令为bmc向tcm发送的读命令或者写命令。
141.示例性的,所述c个载荷字包括c1个命令标识字、c2个命令长度字、c3个返回码、c4个命令码以及c5个负荷字,所述c1为大于0且小于c的整数,所述c2为大于0且小于c的整数,所述c3为大于0且小于c的整数,所述c4为大于0且小于c的整数,所述c5为大于0且小于c的整数,且c1、c2、c3、c4以及c5的和不大于c,其中,所述命令标识字用于携带所述第一命令的标识,所述命令长度字用于指示所述第一命令的长度,所述返回码用于携带所述第一命令的返回码,所述命令码用于携带所述第一命令的代码,所述负荷字用于携带所述第一命令的负荷。
142.可选的,驱动模块1101,还用于通过sfc接收第二命令的响应命令。
143.可选的,驱动模块1101,在通过sfc接收第二命令的响应命令时,具体用于:触发命令读操作,其中,在命令读操作期间所述sfc的csn信号端在第一时间段内为高电平,在第二时间段内为低电平,所述第一时间段的起点为所述第一核触发命令读操作的时刻,所述第一时间段的时长为b个字节对应的时间长度,所述第二时间段的起点为所述第一时间段的终点,所述第二时间段的终点为命令读操作结束的时刻;读取sfc的命令接收数据缓存区域中缓存的字节;将读取的字节保存到sram。
144.或者,驱动模块1101,在通过sfc接收第二命令的响应命令时,具体用于:间隔第一时长后触发命令读操作,其中,第一时长为b个字节对应的时间长度,处于读状态的sfc的csn信号端为低电平;读取sfc的命令接收数据缓存区域中缓存的字节;将读取的字节保存到sram。
145.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计
算机程序,该计算机程序被计算机执行时,计算机可以实现上述方法实施例相关的流程。
146.本技术实施例还提供一种计算机程序产品,计算机程序产品用于存储计算机程序,该计算机程序被计算机执行时,计算机可以实现上述方法实施例相关的流程。
147.本技术实施例还提供一种芯片或芯片系统(或电路),该芯片可包括处理器,该处理器可用于调用存储器中的程序或指令,执行上述方法实施例提供的与网络设备和/或终端相关的流程。该芯片系统可包括该芯片、存储器或收发器等组件。
148.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
149.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
150.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
151.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
152.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1