发明内容
鉴于上述问题,本发明提出了一种基于安全型芯片监测的CPU可信启动系统及方法,采用BIOS芯片和安全型FPGA(Field Programmable Gate Array, 现场可编程逻辑门阵列,是一种半定制化的电路,可以通过编程配置逻辑块,实现逻辑功能,其中,安全型FPGA为被编程配置为用于安全验证的FPGA)唯一密钥,并结合配套加密方案,实现对于CPU的可信启动方案,提升CPU可信启动的可靠性。
根据本发明实施例第一方面,提供一种基于安全型芯片监测的CPU可信启动系统。
在一个或多个实施例中,优选地,所述的一种基于安全型芯片监测的CPU可信启动系统包括:安全型芯片、蜂鸣器、开关机信号、BIOS芯片、微处理器和SOC模块;所述安全型芯片与所述蜂鸣器、所述BIOS芯片、所述开关机信号电连接,所述微处理器与所述安全型芯片电连接,所述微处理器与所述SOC模块电连接,所述SOC模块与所述安全型芯片电连接。
在一个或多个实施例中,优选地,所述安全型芯片采用FPGA。
在一个或多个实施例中,优选地,所述安全型芯片在校验通过时,释放所述微处理器复位信号,并将所述BIOS芯片内的系统启动。
在一个或多个实施例中,优选地,所述安全型芯片在校验失败时,通过所述蜂鸣器发出告警。
根据本发明实施例第二方面,提供一种基于安全型芯片监测的CPU可信启动方法。
在一个或多个实施例中,优选地,所述的一种基于安全型芯片监测的CPU可信启动方法包括:
获取FPGA加密密钥,并获得第一加密素数和第二加密素数,生成计算加密裕度;
根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数;
根据所述第一加密系数和所述第二加密系数,生成第一公钥和第二密钥,并利用第二密钥对系数数据加密;
当检测开机信号后,通过第一公钥和FPGA进行可信度校验,当校验通过后,在SOC模块监视下进行可信开机。
在一个或多个实施例中,优选地,所述获取FPGA加密密钥,并获得第一加密素数和第二加密素数,生成计算加密裕度,具体包括:
获取FPGA加密密钥,保存为第一密钥;
获取第一加密素数;
获取一个与所述第一加密素数不相等的所述第二加密素数;
利用第一计算公式计算加密裕度;
所述第一计算公式为:
k=mn
其中,k为所述加密裕度,m为所述第一加密素数,n为所述第二加密素数。
在一个或多个实施例中,优选地,所述根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数,具体包括:
根据所述第一加密素数和所述第二加密素数,利用第二计算公式计算加密函数值;
获得一个与所述加密函数值互质的第一加密系数;
根据所述第一加密系数进行乘法逆元运算,生成所述第二加密系数;
所述第二计算公式为:
p=(m-1)(n-1)
其中,p为所述加密函数值,m为所述第一加密素数,n为所述第二加密素数。
在一个或多个实施例中,优选地,所述根据所述第一加密系数和所述第二加密系数,生成第一公钥和第二密钥,并利用第二密钥对系数数据加密,具体包括:
根据所述加密裕度和所述第一加密系数,按照第三计算公式,作为第一公钥公开;
根据所述加密裕度和所述第二加密系数,按照第四计算公式,作为第二密钥保密;
在BIOS系统中读取利用第二密钥加密的系统数据;
所述第三计算公式为:
g1=(e1,k)
其中,g1为所述第一公钥,e1为所述第一加密系数,k为所述加密裕度;
所述第四计算公式为:
g2=(e2,k)
其中,g2为所述第二密钥,e2为所述第二加密系数,k为所述加密裕度。
在一个或多个实施例中,优选地,所述当检测开机信号后,通过第一公钥和FPGA进行可信度校验,当校验通过后,在SOC模块监视下进行可信开机,具体包括:
当检测开机信号后,利用所述第一公钥进行校验;
当所述第一公钥校验通过后,利用第二密钥进行解密,生成解密后系统数据;
对所述解密后系统数据通过FPGA利用第一密钥检验BIOS内系统的可信度;
通过FPGA的可信度校验后,释放CPU复位信号,并在SOC模块监视下进行可信开机。
根据本发明实施例第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面中任一项所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
1)本发明实施例通过安全型FPGA和BIOS芯片配合,实现了对于可信启动电路的设计,提供了实现基于硬件层面的密匙唯一验证;
2)本发明实施例通过多层次的加密实现了主动可信验证,增加了可信启动的安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着计算机的普及以及人们对个人信息安全的重视,如何保障计算机安全及个人信息安全已经成为了一个至关重要的问题。在保护主机安全方面,可信计算是很重要的技术手段。可信计算中的启动控制是利用物理平台上的可信芯片作为物理可信根,在系统引导阶段根据度量配置策略,进行系统启动前的度量,然后通过比较度量值与基准值判断当前主机是否可信。可信启动是设备安全的根基,在设备运行期间,必须要求全部的安全功能都应该在可信启动的基础上建立。
目前主要的可信启动方法基本上都是通过SOC模块去验证BIOS芯片和CPU芯片整个运行过程中的可信度量,在此基础上建立起一套较为主动的可信启动防御体系,但是这种方式下由于SOC模块的安全性不容易保障,导致传统的可信启动防御体系存在运行风险。
本发明实施例中,提供了一种基于安全型芯片监测的CPU可信启动系统及方法。该方案采用BIOS芯片和安全型FPGA唯一密钥,并结合配套加密方案,实现对于CPU的高可靠性可信启动。
根据本发明实施例第一方面,提供一种基于安全型芯片监测的CPU可信启动系统。
图1是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动系统的结构图。
如图1所示,在一个或多个实施例中,优选地,所述的一种基于安全型芯片监测的CPU可信启动系统包括:安全型芯片101、蜂鸣器102、开关机信号103、BIOS芯片104、微处理器105和SOC模块106;所述安全型芯片101与所述蜂鸣器102、所述BIOS芯片104、所述开关机信号103电连接,所述微处理器105与所述安全型芯片101电连接,所述微处理器105与所述SOC模块106电连接,所述SOC模块106与所述安全型芯片101电连接。
在本发明实施例中,提供了一种基于安全型芯片与BIOS芯片配合的可信启动方法,在安全型芯片内进行数据密钥加密,在BIOS芯片内存储系统数据,并经由安全型芯片进行数据校验。
图2是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动系统的示意图。
如图2所示,在一个或多个实施例中,优选地,所述安全型芯片采用FPGA。
在本发明实施例中,通过FPGA实现了硬件层面的验证密钥,提升了安全性。
在一个或多个实施例中,优选地,所述安全型芯片在校验通过时,释放所述微处理器复位信号,并将所述BIOS芯片内的系统启动。
在本发明实施例中,相对于通过SOC模块进行主动防御,通过此方式可以在启动前进行硬件数据校验,效率更高,而且更加安全。
在一个或多个实施例中,优选地,所述安全型芯片在校验失败时,通过所述蜂鸣器发出告警。
在本发明实施例中,由于校验过程在系统内部,因此在校验失败后,将会第一时间通过声音警告。
根据本发明实施例第二方面,提供一种基于安全型芯片监测的CPU可信启动方法。
图3是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动方法中的流程图。
如图3所示,在一个或多个实施例中,优选地,所述的一种基于安全型芯片监测的CPU可信启动方法包括:
S301、获取FPGA加密密钥,并获得第一加密素数和第二加密素数,生成计算加密裕度;
S302、根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数;
S303、根据所述第一加密系数和所述第二加密系数,生成第一公钥和第二密钥,并利用第二密钥对系数数据加密;
S304、当检测开机信号后,通过第一公钥和FPGA进行可信度校验,当校验通过后,在SOC模块监视下进行可信开机。
在本发明实施例中,通过FPGA进行硬件加密的基础上,还设置了软件加密配套软件加密,在软件加密过程中先通过两个加密素数生成加密裕度,进而形成一个公钥和一个密钥完成对于可信启动方法的二次加密。
图4是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动方法中的根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数的流程图。
如图4所示,在一个或多个实施例中,优选地,所述获取FPGA加密密钥,并获得第一加密素数和第二加密素数,生成计算加密裕度,具体包括:
S401、获取FPGA加密密钥,保存为第一密钥;
S402、获取第一加密素数;
S403、获取一个与所述第一加密素数不相等的所述第二加密素数;
S404、利用第一计算公式计算加密裕度;
所述第一计算公式为:
k=mn
其中,k为所述加密裕度,m为所述第一加密素数,n为所述第二加密素数。
在本发明实施例中,在进行硬件校验前,首先获得了FPGA的对应加密密钥,在此基础上,利用两个随机的不相同的大素数,进行获取加密裕度,加密裕度由于是两个大素数的乘积。因此,反推校验,两个大素数是仅有的不为1的公约数组合。
图5是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动方法中的根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数的流程图。
如图5所示,在一个或多个实施例中,优选地,所述根据所述第一加密素数和所述第二加密素数,计算获得第一加密系数和第二加密系数,具体包括:
S501、根据所述第一加密素数和所述第二加密素数,利用第二计算公式计算加密函数值;
S502、获得一个与所述加密函数值互质的第一加密系数;
S503、根据所述第一加密系数进行乘法逆元运算,生成所述第二加密系数;
所述第二计算公式为:
p=(m-1)(n-1)
其中,p为所述加密函数值,m为所述第一加密素数,n为所述第二加密素数。
在本发明实施例中,利用加密函数值分别生成了第一加密系数和第二加密系数,这两个系数是进行后续加密的数据基础。其中,第一加密系数为一个与加密函数值互质的数,而第二加密系数则为乘法逆元获得的唯一数。
图6是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动方法中的根据所述第一加密系数和所述第二加密系数,生成第一公钥和第二密钥,并利用第二密钥对系数数据加密的流程图。
如图6所示,在一个或多个实施例中,优选地,所述根据所述第一加密系数和所述第二加密系数,生成第一公钥和第二密钥,并利用第二密钥对系数数据加密,具体包括:
S601、根据所述加密裕度和所述第一加密系数,按照第三计算公式,作为第一公钥公开;
S602、根据所述加密裕度和所述第二加密系数,按照第四计算公式,作为第二密钥保密;
S603、在BIOS系统中读取利用第二密钥加密的系统数据;
所述第三计算公式为:
g1=(e1,k)
其中,g1为所述第一公钥,e1为所述第一加密系数,k为所述加密裕度;
所述第四计算公式为:
g2=(e2,k)
其中,g2为所述第二密钥,e2为所述第二加密系数,k为所述加密裕度。
在本发明实施例中,由于公钥的范围更大,而且公钥存在与密钥无法直接的推知的关系,可以保证在能够验证加密正确性的前提下,利用密钥进行加密。
图7是本发明一个实施例的一种基于安全型芯片监测的CPU可信启动方法中的当检测开机信号后,通过第一公钥和FPGA进行可信度校验,当校验通过后,在SOC模块监视下进行可信开机的流程图。
如图7所示,在一个或多个实施例中,优选地,所述当检测开机信号后,通过第一公钥和FPGA进行可信度校验,当校验通过后,在SOC模块监视下进行可信开机,具体包括:
S701、当检测开机信号后,利用所述第一公钥进行校验;
S702、当所述第一公钥校验通过后,利用第二密钥进行解密,生成解密后系统数据;
S703、对所述解密后系统数据通过FPGA利用第一密钥检验BIOS内系统的可信度;
S704、通过FPGA的可信度校验后,释放CPU复位信号,并在SOC模块监视下进行可信开机。
在本发明实施例中,在检测开机后,首先利用公钥进行校验,校验通过后,进行数据解密,解密后的数据则可以直接通过FPGA进行硬件层的解密。因此,经由软件和硬件的双重加密,保证了可信启动。
根据本发明实施例第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面中任一项所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
1)本发明实施例通过安全型FPGA和BIOS芯片配合,实现了对于可信启动电路的设计,提供了实现基于硬件层面的密匙唯一验证;
2)本发明实施例通过多层次的加密实现了主动可信验证,增加了可信启动的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。