一种基于芯片的信任链构建方法和装置的制造方法

文档序号:9249422阅读:324来源:国知局
一种基于芯片的信任链构建方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机安全领域,特别涉及一种基于芯片的信任链构建方法和装置。
【背景技术】
[0002]基本输入输出系统(B1S)保存着计算机的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序,为计算机提供最底层的、最直接的硬件设置和控制,使得B1S常常被病毒木马攻击。目前,主要通过可信计算的信任链技术检测B1S的完整性,即检测B1S是否被破坏。
[0003]在现有信任链技术中,常常以可信赖平台模块(TPM)提供的SHA-1算法检测B1S的完整性,并构建信任链启动服务器。在现有技术中,128位的SHA-1算法结果已经被破解,使得信任链的安全性较低。

【发明内容】

[0004]本发明提供一种基于芯片的信任链构建方法和装置,以提高信任链的安全性。
[0005]一种基于芯片的信任链构建方法,在芯片中建立SM3算法,在芯片中为信任链的每一个模块配置对应的配置寄存器PCR,并将所述信任链的每一个模块的基准值存储于所述对应的配置寄存器PCR,所述信任链,包括:CRTM模块、平台启动代码模块、B1S BootBlock模块、B1S的版本信息模块、B1S Main Block模块、主板外设模块、Bootloader Grub模块和操作系统内核模块中任意一个或多个模块;还包括:
[0006]利用所述SM3算法,通过逐级度量的方式,对信任链的当前预加载模块中的代码进行度量,根据所述当前预加载模块中代码的16进制数据,获取所述当前预加载模块对应的Hash值;
[0007]判断所述当前预加载模块对应的Hash值与存储于所述当前预加载模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述当前预加载模块中的代码和数据,否则不对所述当前预加载模块进行加载,并结束所述当前预加载模块对下一预加载模块的度量。
[0008]优选地,该方法进一步包括:确定B1S中的一段初始代码为绝对可信代码;
[0009]所述芯片为所述信任链的每一个模块提供对应的接口 ;
[0010]所述信任链的每一个模块通过对应的接口获取所述SM3算法;
[0011]所述利用所述SM3算法,通过逐级度量的方式,对信任链的当前预加载模块中的代码进行度量,根据所述当前预加载模块中代码的16进制数据,获取所述当前预加载模块对应的Hash值,包括:
[0012]所述绝对可信代码利用获取的所述SM3算法,对所述CRTM模块进行度量,根据所述CRTM模块中代码的16进制数据,获取所述CRTM模块对应的第一 Hash值;
[0013]所述CRTM模块利用获取的所述SM3算法,对所述平台启动代码模块和所述B1SBoot Block模块进行度量,根据所述平台启动代码模块和所述B1S Boot Block模块中代码的16进制数据,获取所述平台启动代码模块和所述B1S Boot Block模块对应的第二Hash值和第三Hash值;
[0014]所述B1S Boot Block模块利用获取的所述SM3算法,对所述B1S的版本信息模块和所述B1S Main Block模块代码和数据进行度量,根据所述所述B1S的版本信息模块和所述B1S Main Block模块中代码的16进制数据,获取所述B1S的版本信息模块和所述B1S Main Block模块对应的第四Hash值和第五Hash值;
[0015]所述B1S Main Block模块利用获取的所述SM3算法,对所述主板外设模块和所述Bootloader Grub模块代码和数据进行度量,根据所述主板外设模块和所述BootloaderGrub模块中外设数据和代码的16进制数据,获取所述主板外设模块和所述BootloaderGrub模块对应的第六Hash值和第七Hash值;
[0016]所述Bootloader Grub模块利用获取的所述SM3算法,对所述操作系统内核模块代码和配置文件进行度量,根据所述所述操作系统内核模块中配置文件信息和代码的16进制数据,获取所述操作系统内核模块对应的第八Hash值。
[0017]优选地,所述判断所述当前预加载模块对应的Hash值与存储于所述当前预加载模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述当前预加载模块中的代码和数据,否则不对所述当前预加载模块进行加载,并结束所述当前预加载模块对下一预加载模块的度量,包括:
[0018]判断所述第一 Hash值与存储于所述CRTM模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述CRTM模块,否则,不对所述CRTM模块进行加载,并结束所述CRTM模块对平台启动代码模块和所述B1S Boot Block模块的度量;
[0019]判断所述第二 Hash值和第三Hash值与存储于所述平台启动代码模块和所述B1SBoot Block模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述平台启动代码模块和所述B1S Boot Block模块,否则,不对所述平台启动代码模块和所述B1SBoot Block模块进行加载,并结束所述B1S Boot Block模块对所述B1S的版本信息模块和所述B1S Main Block模块的度量;
[0020]判断所述第四Hash值和第五Hash值与存储于所述B1S的版本信息模块和所述B1S Main Block模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述B1S的版本信息模块和所述B1S Main Block模块,否则,不对所述B1S的版本信息模块和所述B1S Main Block模块进行加载,并结束所述B1S Main Block模块对所述主板外设模块和所述Bootloader Grub模块的度量;
[0021]判断所述第六Hash值和第七Hash值与存储于所述主板外设模块和所述Bootloader Grub模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述主板外设模块和所述Bootloader Grub模块,否则,不对所述主板外设模块和所述BootloaderGrub模块进行加载,并结束所述Bootloader Grub模块对所述操作系统内核模块的度量;
[0022]判断所述第八Hash值与存储于所述所述操作系统内核模块对应的配置寄存器PCR中的基准值是否一致,如果是,则加载所述所述操作系统内核模块,否则,不对所述所述操作系统内核模块进行加载。
[0023]优选地,该方法进一步包括:划分所述Bootloader Grub模块,形成Stagel、Stagel.5和Stage2三个模块;
[0024]所述通过逐级度量的方式,对信任链的当前预加载模块中的代码进行度量,包括:当所述当前预加载模块为所述Bootloader Grub模块时,所述B1S Main Block模块对所述Stagel模块进行度量,所述Stagel模块对所述Stagel.5模块进行度量,所述Stagel.5模块对所述Stage2模块进行度量;
[0025]当所述当前预加载模块为所述操作系统内核模块时,所述Stage2模块对所述操作系统内核模块代码和配置文件进行度量。
[0026]优选地,所述芯片为Z32H320TC芯片;
[0027]所述为每一个模块配置对应的配置寄存器PCR,包括:
[0028]为所述CRTM模块、所述平台启动代码模块、所述B1S Boot Block模块、B1S的版本信息模块和B1S Main Block模块中任意一个或多个模块配置Z32H320TC芯片的配置寄存器PCRO ;
[0029]为所述主板外设模块配置Z32H320TC芯片的配置寄存器PCR2 ;
[0030]为所述Bootloader Grub模块配置Z32H320TC芯片的配置寄存器PCR4 ;
[0031]为所述操作系统内核模块配置Z32H320TC芯片的配置寄存器PCR5。
[0032]优选地,该方法进一步包括:
[0033]当平台中的系统初次启动时,利用所述SM3算法,通过逐级度量的方式,依次获取每一个模块对应的初始Hash值,并将所述CRTM模块、所述平台启动代码模块、所述B1SBoot Block模块、所述B1S的版本信息模块和所述B1S Main Block模块各自的初始Hash值作为基准值存储于所述配置寄存器PCR,将所述主板外设模块的初始Hash值存储于配置寄存器PCR2,将所述Bootloader Grub模块的初始Hash值存储于配置寄存器PCR4,将所述操作系统内核模块的初始Hash值存储于配置寄存器PCR5。
[0034]一种信任链构建装置,包括:
[0035]设定单元,用于在芯片中建立SM3算法;
[0036]配置单元,用于在芯片中为信任链的每一个模块配置对应的配置寄存器PCR ;
[0037]存储单元,用于将所述信任链的每一个模块的基准值存储于所述对应的配置寄存器PCR,所述信任链的每一个模块,包括:CRTM模块、平台启动代码模块、B1S Boot Block模块、B1S的版本信息模块、B1S Main Block模块、主板外设模块、Bootloader Grub模块和操作系统内核模块;
[0038]度量获取单元,用于利用所述设定单元建立的所述SM3算法,通过逐级度量的方式,对信任链的当前预加载模块中的代码进行度量,根据所述当前预加载模块中代码的16进制数据,获取所述当前预加载模块对应的Hash值;
[0039]判断单元,用于判断所述度量获取单元获取的当前预加载模块对应的Hash值与存储于所述当前预加载模块对应的配置寄存器PCR中的基准值是否一致,如果是,则触发加载单元;
[0040]所述加载单元,用于接收所述判断单元的触发,加载所述当前预加载模块中的代码和数据。
[0041]优选地,该装置进一步包括:确定单元和SM3算法提供单元,其中,
[0042]所述确定单元,用于确定B1S中的一段初始代码为绝对可信代码;
[0043]所述SM3算法提供单元,所述芯片为所述信任链的每一个模块提供对应的接口,该对应的接口为对应的模块提供所述SM3算法;
[0044]所述度量获取单元,用于控制所述绝对可信代码利用所述SM3算法提供单元提供的所述SM3算法,对所述CRTM模块进行度量,根据所述CRTM模块中代码的16进制数据,获取所述CRTM模块对应的第一 Hash值;控制所述CRTM模块利用所述SM3算法提供单元提供的所述SM3算法,对所述平台启动代码模块和所述B1S Boot Block模块进行度量,根据所述平台启动代码模块和所述B1S Boot Block模块中代码的16进制数据,获取所述平台启动代码模块和所述B1S Boot Block模块对应的第二 Hash值和第三Hash值;控制所述B1S Boot Block模块利用所述SM3算法提供单元提供的所述SM3算法,对所述B1S的版本信息模块和所述B1S Main Block模块代码和数据进行度量,根据所述所述B1S的版本信息模块和所述B1S Main Block模块中
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1