校验及形成签名映像的方法与流程

文档序号:12825455阅读:289来源:国知局
校验及形成签名映像的方法与流程

本发明涉及通信领域,特别涉及一种校验签名映像的方法用于安全启动以及一种形成签名映像的方法。



背景技术:

安全启动(secureboot)指使用固件(firmware)校验启动装载(bootloader)映像(image)和其它相关映像的电子签名以确保这些映像在启动过程中没有被篡改或绕过。其中,其它相关映像文件至少包括:闪存下载(flashdownload,fdl)分区映像、内核(kernel)分区映像、系统分区映像、系统恢复(recovery)分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。具体说明的是,所述启动装载包括两个操作模式:(1)启动模式:在这种模式下,启动装载从目标机上的某个固态存储装置上将操作系统加载到随机存取存储器(randomaccessmemory,ram)中运行,整个过程并没有用户的介入;(2)交互模式:在这种模式下,目标机上的启动装载将通过串口或网络等通行手段从开发主机(host)上下载内核分区映像等到随机存取存储器中,其中,下载映像可以被启动装载写到目标机上的固态存储装置中,或者直接进入系统的引导。此外,所述启动装载的启动过程分为两个阶段。第一阶段的任务至少包括:硬件设备初始化、为第二阶段准备随机存取存储器空间、复制启动装载的第二阶段代码到随机存取存储器、设置堆栈(stack)。第二阶段的任务至少包括:初始化本阶段要使用到的硬件设备、检测系统内存映射、将内核分区映像和根文件系统分区映像从闪存(flash)读到随机存取存储器、为内核设置启动参数及调用内核。

现有技术中,使用公用密钥(publickey)校验启动装载映像或其它相关映像的电子签名,所述公用密钥和启动装载映像或其它相关映像存储在固态存储装置中的同一个分区里。一旦所述分区存在安全问题导致所述公用密钥泄漏,同分区里的启动装载映像或其它相关映像就可能会被篡改或绕过。更严重的是,在有些情况下,会使用同一公用密钥来校验启动装载映像和其它 相关映像的电子签名,所述公用密钥会和启动装载映像及其它相关映像存储在同一分区里,所以一旦所述公用密钥泄漏,启动装载映像和其它相关映像都将有可能被篡改或绕过。因此,现有的签名校验方法存在安全隐患。



技术实现要素:

本发明解决的问题是,现有技术中,公用密钥和启动装载映像或其它相关映像存储在固态存储装置中的同一个分区里,所以一旦所述分区存在安全问题导致所述公用密钥泄漏,同分区里的启动装载映像或其它相关映像就可能会被篡改或绕过。因此,现有的签名校验方法存在安全隐患。

为解决上述问题,本发明实施例提供一种校验签名映像的方法,用于安全启动,包括:校验第一公用密钥;使用所述第一公用密钥校验第一签名映像中的部分文件,其中,所述部分文件包括第二公用密钥;以及使用所述第二公用密钥校验第二签名映像,其中,所述第二签名映像包括第三公用密钥,所述第三公用密钥用于校验第三签名映像。

可选地,校验第一公用密钥包括:使用散列(hash)算法校验所述第一公用密钥。

可选地,所述散列算法或所述第一公用密钥对应的校验散列值存储于一次性可编程(onetimeprogrammable,otp)存储装置中。

可选地,所述第一签名映像包括所述第一公用密钥。

可选地,所述第一签名映像中的所述部分文件和所述第二签名映像具有不同的加密强度。

可选地,所述第一签名映像中的所述部分文件还包括第一原始映像,所述第二签名映像包括第二原始映像。

可选地,所述第一原始映像包括:二次程序载入器(secondaryprogramloader,spl)映像或第一闪存下载分区映像。

可选地,所述第二原始映像包括:u启动(u-boot)映像或第二闪存下载分区映像。

可选地,所述第三签名映像包括第三原始映像,当所述第三原始映像不 同于所述第一原始映像和所述第二原始映像时,所述校验签名映像的方法还包括:使用所述第三公用密钥校验所述第三签名映像。

可选地,所述第三签名映像和所述第一签名映像中的所述部分文件或所述第二签名映像具有不同的加密强度。

本发明实施例还提供一种形成第一签名映像的方法,所述形成第一签名映像的方法包括:获得第一原始映像;以及添加第一公用密钥和第二公用密钥到所述第一原始映像,其中,所述第二公用密钥用于校验第二签名映像。

可选地,所述第一原始映像包括:二次程序载入器映像或第一闪存下载分区映像。

可选地,所述形成第一签名映像的方法还包括:使用第一私有密钥(privatekey)生成第一电子签名;以及添加所述第一电子签名到所述第一原始映像和/或所述第二公用密钥,从而形成所述第一签名映像,其中,所述第一公用密钥至少用于校验所述第一签名映像中带有所述第一电子签名的文件。

本发明实施例还提供一种形成第二签名映像的方法,所述形成第二签名映像的方法包括:获得第二原始映像;以及添加第三公用密钥到所述第二原始映像,其中,所述第三公用密钥用于校验第三签名映像。

可选地,所述第二原始映像包括:u启动映像或第二闪存下载分区映像。

可选地,所述形成第二签名映像的方法还包括:使用第二私有密钥生成第二电子签名;以及添加所述第二电子签名到所述第二原始映像和/或所述第三公用密钥,从而形成所述第二签名映像。

本发明实施例还提供一种形成第三签名映像的方法,所述形成第三签名映像的方法包括:获得第三原始映像;使用第三私有密钥生成第三电子签名;以及添加所述第三电子签名到所述第三原始签名映像,从而形成所述第三签名映像。

可选地,所述第三原始映像至少包括:内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。

与现有技术相比,本发明实施例的技术方案具有以下优点:

实现多阶段校验签名映像,下一阶段签名映像包括的公用密钥受上一阶段签名映像包括的公用密钥保护。如此,即使下一阶段签名映像中的公用密钥泄漏,也不会对上一阶段的签名映像产生影响。因此,加强了安全性。

进一步地,每个阶段签名映像中的电子签名是由不同的私有密钥生成的,并且每个阶段的密钥可以根据需要设置不同的管辖范围,这样在加强了安全性的同时,还提高了灵活性。

附图说明

图1是本发明一实施例的校验签名映像的方法的流程图;

图2是本发明另一实施例的启动模式下校验签名映像的方法的流程图;

图3是本发明另一实施例的交互模式下校验签名映像的方法的流程图;

图4是本发明一实施例的形成第一签名映像的方法的流程图;

图5是本发明一实施例的形成第二签名映像的方法的流程图;以及

图6是本发明一实施例的形成第三签名映像的方法的流程图。

具体实施方式

由背景技术可知,现有技术中,公用密钥和启动装载映像或其它相关映像存储在固体存储装置中的同一个分区里,所以一旦所述分区存在安全问题导致所述公用密钥泄漏,同分区里的启动装载映像或其它相关映像就可能被篡改或绕过。因此,现有的签名校验方法存在安全隐患。

本发明的发明人研究了现有的签名校验方法后,发现可以采用多阶段校验签名映像,其中,上一阶段的签名映像中包括用于校验下一阶段签名映像的公用密钥,因此,只有在上一阶段的签名映像校验完成并获得了在该签名映像中包括的公用密钥的前提下,才能进行下一阶段签名映像的校验。这样,即使一个阶段签名映像中的公用密钥泄漏,不会对上一阶段的签名映像产生影响,从而使得安全性得到了加强。进一步地,每个阶段签名映像中的电子签名是由不同的私有密钥生成的,并且每个阶段的密钥可以根据需要设置不同的管辖范围,这样在加强了安全性的同时,还提高了灵活性。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。需要说明的是,提供这些附图的目的是有助于理解本发明的实施例,而不应解释为对本发明的不当的限制。

图1是本发明一实施例的校验签名映像的方法100的流程图。所述校验签名映像的方法100包括:

102:校验第一公用密钥;

104:使用所述第一公用密钥校验第一签名映像中的部分文件,其中,所述部分文件包括第二公用密钥;以及

106:使用所述第二公用密钥校验第二签名映像,其中,所述第二签名映像包括第三公用密钥,所述第三公用密钥用于校验第三签名映像。

需要说明的是,所述部分文件还包括第一电子签名,所述第一电子签名是由第一私有密钥生成的,所述第一公用密钥用于校验使用所述第一私有密钥生成的所述第一电子签名;所述第二签名映像还包括第二电子签名,所述第二电子签名由第二私有密钥生成的,所述第二公用密钥用于校验使用所述第二私有密钥生成的所述第二电子签名;所述第三签名映像包括第三电子签名,所述第三电子签名由第三私有密钥生成的,所述第三公用密钥用于校验使用所述第三私有密钥生成的所述第三电子签名。

在一些实施例中,校验第一公用密钥包括:使用散列算法校验所述第一公用密钥。具体说明的是,对所述第一公用密钥执行所述散列算法得到散列值;比较所述散列值和所述第一公用密钥对应的校验散列值;确定所述散列值等于所述校验散列值以校验所述第一公用密钥。如果所述第一公用密钥被篡改,使用所述散列算法算得的所述散列值不等于所述校验散列值。

在一些实施例中,所述散列算法或所述第一公用密钥对应的所述校验散列值存储于一次性可编程存储装置中。需要说明的是,所述散列算法或所述校验散列值一旦存储于所述一次性可编程存储装置中就不能再被改写。在一些实施例中,所述一次性可编程存储装置为芯片内部存储装置。

除上述包括第二公用密钥的部分文件以外,所述第一签名映像还包括其它文件,在一些实施例中,所述第一公用密钥可以包括在所述其它文件中, 在另一些实施例中,所述第一公用密钥也可以与所述第一签名映像相互独立。

在一些实施例中,所述第一签名映像中的所述部分文件和所述第二签名映像具有不同的加密强度。具体说明的是,所述第一私有密钥和所述第二私有密钥分别用于生成加密强度不同的所述第一电子签名和所述第二电子签名,从而使得分别包括所述第一电子签名和所述第二电子签名的所述第一签名映像和所述第二签名映像具有不同的加密强度。这样,可以根据签名映像的重要性设置电子签名,重要性高的签名映像使用加密强度大的电子签名。

在一些实施例中,所述部分文件还包括第一原始映像,所述第二签名映像包括第二原始映像。具体说明的是,原始映像包括未经修改或添加的原始文件。

在一些实施例中,所述第一原始映像包括:二次程序载入器映像或第一闪存下载分区映像。具体说明的是,在启动模式下,所述第一原始映像是所述二次程序载入器映像;在交互模式下,所述第一原始映像是所述第一闪存下载分区映像。其中,所述二次程序载入器映像是启动装载映像的一个部分,至少用于在启动模式下初始化随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器(doubledataratesynchronousdynamicrandomaccessmemory,ddrsdram)。其中,所述第一闪存下载分区映像至少用于在交互模式下初始化随机存取存储器。

在一些实施例中,所述第二原始映像包括:u启动映像或第二闪存下载分区映像。具体说明的是,在启动模式下,所述第二原始映像是所述u启动映像;在交互模式下,所述第二原始映像是所述第二闪存下载分区映像。其中,所述u启动映像是启动装载映像的另一个部分,至少用于在启动模式下,使用所述第三公用密钥校验除所述二次程序载入器映像和所述u启动映像外的其它映像及将所述其它映像读入到随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器(doubledataratesynchronousdynamicrandomaccessmemory,ddrsdram)。其中,所述第二闪存下载分区映像至少用于在交互模式下,使用所述第三公用密钥校验所述其它映像及将所述其它映像读入到随机存取存储器。

在一些实施例中,所述第三签名映像包括第三原始映像。在启动模式下,所述第三原始映像至少包括:内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。在交互模式下,所述第三原始映像至少包括:二次程序载入器映像、u启动映像、内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。当所述第三原始映像不同于所述第一原始映像和所述第二原始映像时,所述校验签名映像的方法100还包括:

108:使用所述第三公用密钥校验所述第三签名映像。

如果所述第三原始映像包括二次程序载入器映像或u启动映像,启动装载由交互模式切换到启动模式,从步骤102开始校验签名映像。

在一些实施例中,所述第三签名映像和所述第一签名映像中的所述部分文件或所述第二签名映像具有不同的加密强度。具体说明的是,所述第三私有密钥用于生成与所述第一电子签名或所述第二电子签名加密强度不同的所述第三电子签名,从而使得包括所述第三电子签名的所述第三签名映像具有与所述第一签名映像或所述第二签名映像不同的加密强度。这样,可以根据签名映像的重要性设置电子签名,重要性高的签名映像使用加密强度大的电子签名。

下文针对启动装载不同的操作模式,对所述校验签名映像的方法做进一步地说明。

图2是本发明另一实施例的启动模式下校验签名映像的方法200的流程图。所述校验签名映像的方法200包括:

202:校验第一公用密钥;

204:使用所述第一公用密钥校验第一签名映像中的部分文件,所述部分文件包括二次程序载入器映像和第二公用密钥;

206:使用所述第二公用密钥校验第二签名映像,所述第二签名映像包括u启动映像和第三公用密钥;以及

208:使用所述第三公用密钥校验第三签名映像。

其中,所述二次程序载入器映像是启动装载映像的一个部分,至少用于初始化随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器。

其中,所述u启动映像是启动装载映像的另一个部分,至少用于使用所述第三公用密钥校验除所述二次程序载入器映像和所述u启动映像外的其它映像及将所述其它映像读入到所述随机存取存储器。

需要说明的是,所述部分文件还包括第一电子签名,所述第一电子签名是由第一私有密钥生成的,所述第一公用密钥用于校验使用所述第一私有密钥生成的所述第一电子签名;所述第二签名映像还包括第二电子签名,所述第二电子签名由第二私有密钥生成的,所述第二公用密钥用于校验使用所述第二私有密钥生成的所述第二电子签名;所述第三签名映像包括第三电子签名,所述第三电子签名由第三私有密钥生成的,所述第三公用密钥用于校验使用所述第三私有密钥生成的所述第三电子签名。

在一些实施例中,校验第一公用密钥包括:使用散列算法校验所述第一公用密钥。如果所述第一公用密钥被篡改,使用所述散列算法算得的散列值不等于所述第一公用密钥对应的校验散列值。

在一些实施例中,所述散列算法或所述校验散列值存储于一次性可编程存储装置中。在一些实施例中,所述一次性可编程存储装置为芯片内部存储装置。

除上述包括二次程序载入器映像和第二公用密钥的部分文件以外,所述第一签名映像还包括其它文件,在一些实施例中,所述第一公用密钥可以包括在所述其它文件中,在另一些实施例中,所述第一公用密钥也可以与所述第一签名映像相互独立。

在一些实施例中,所述第一签名映像中的所述部分文件和所述第二签名映像具有不同的加密强度。

在一些实施例中,所述第三签名映像包括第三原始映像,其中,所述第三原始映像至少包括:内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。

在一些实施例中,所述第三签名映像和所述第一签名映像中的所述部分文件或所述第二签名映像具有不同的加密强度。

图3是本发明另一实施例的交互模式下校验签名映像的方法300的流程图。所述校验签名映像的方法300包括:

302:校验第一公用密钥;

304:使用所述第一公用密钥校验第一签名映像中的部分文件,所述部分文件包括第一闪存下载分区映像和第二公用密钥;以及

306:使用所述第二公用密钥校验第二签名映像,所述第二签名映像包括第二闪存下载分区映像和第三公用密钥,其中,所述第三公用密钥用于校验第三签名映像。

其中,所述第一闪存下载分区映像至少用于初始化随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器。

其中,所述第二闪存下载分区映像至少用于使用所述第三公用密钥校验除二次程序载入器映像和u启动映像外的其它映像及将所述其它映像读入到所述随机存取存储器。

需要说明的是,所述部分文件还包括第一电子签名,所述第一电子签名是由第一私有密钥生成的,所述第一公用密钥用于校验使用所述第一私有密钥生成的所述第一电子签名;所述第二签名映像还包括第二电子签名,所述第二电子签名由第二私有密钥生成的,所述第二公用密钥用于校验使用所述第二私有密钥生成的所述第二电子签名;所述第三签名映像包括第三电子签名,所述第三电子签名由第三私有密钥生成的,所述第三公用密钥用于校验使用所述第三私有密钥生成的所述第三电子签名。

在一些实施例中,校验第一公用密钥包括:使用散列算法校验所述第一公用密钥。如果所述第一公用密钥被篡改,使用所述散列算法算得的散列值不等于所述第一公用密钥对应的校验散列值。

在一些实施例中,所述散列算法或所述校验散列值存储于一次性可编程存储装置中。在一些实施例中,所述一次性可编程存储装置为芯片内部存储 装置。

除上述包括第一闪存下载分区映像和第二公用密钥的部分文件以外,所述第一签名映像还包括其它文件,在一些实施例中,所述第一公用密钥可以包括在所述其它文件中,在另一些实施例中,所述第一公用密钥也可以与所述第一签名映像相互独立。

在一些实施例中,所述第一签名映像中的所述部分文件和所述第二签名映像具有不同的加密强度。

在一些实施例中,所述第三签名映像包括第三原始映像,其中,所述第三原始映像至少包括:二次程序载入器映像、u启动映像、内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。当所述第三原始映像包括除二次程序载入器映像和u启动映像外的其它映像时,所述校验签名映像的方法300还包括:

308:使用所述第三公用密钥校验所述第三签名映像。

如果所述第三原始映像包括二次程序载入器映像或u启动映像,启动装载由交互模式切换到启动模式。

在一些实施例中,所述第三签名映像和所述第一签名映像中的所述部分文件或所述第二签名映像具有不同的加密强度。

由上述实施例可知,第一公用密钥、第二公用密钥和第三公用密钥管控范围各不相同;此外,使用不同加密强度的私有密钥可以得到不同加密强度的电子签名,从而使第一签名映像、第二签名映像和第三签名映像具有不同的加密强度。

所述用于安全启动的校验签名映像的方法可以应用于系统启动、映像下载、快速系统启动(fastboot)或系统恢复。

本发明实施例还提供形成签名映像的方法。图4是本发明一实施例的形成第一签名映像的方法400的流程图。所述形成第一签名映像的方法400包括:

402:获得第一原始映像;

404:添加第一公用密钥和第二公用密钥到所述第一原始映像,其中,所述第二公用密钥用于校验第二签名映像;

406:使用第一私有密钥生成第一电子签名;以及

408:添加所述第一电子签名到所述第一原始映像和/或所述第二公用密钥,从而形成所述第一签名映像,其中,所述第一公用密钥至少用于校验所述第一签名映像中带有所述第一电子签名的文件。

具体说明的是,所述第一公用密钥用于校验使用所述第一私有密钥生成的所述第一电子签名,从而校验带有所述第一电子签名的文件,即所述第一原始映像和/或第二公用密钥。

需要说明的是,所述第二签名映像包括第二电子签名,所述第二电子签名由第二私有密钥生成的,所述第二公用密钥用于校验使用所述第二私有密钥生成的所述第二电子签名。

在一些实施例中,所述第一原始映像包括:二次程序载入器映像或第一闪存下载分区映像。其中,所述二次程序载入器映像是启动装载映像的一个部分,至少用于在启动模式下初始化随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器。其中,所述第一闪存下载分区映像至少用于在交互模式下初始化随机存取存储器。

图5是本发明一实施例的形成第二签名映像的方法500的流程图。所述形成第二签名映像的方法500包括:

502:获得第二原始映像;

504:添加第三公用密钥到所述第二原始映像,其中,所述第三公用密钥用于校验第三签名映像;

506:使用第二私有密钥生成第二电子签名;以及

508:添加所述第二电子签名到所述第二原始映像和/或所述第三公用密钥,从而形成所述第二签名映像。

需要说明的是,所述第三签名映像包括第三电子签名,所述第三电子签名由第三私有密钥生成的,所述第三公用密钥用于校验使用所述第三私有密 钥生成的所述第三电子签名。

在一些实施例中,所述第二原始映像包括:u启动映像或第二闪存下载分区映像。其中,所述u启动映像是启动装载映像的一个部分,至少用于在启动模式下,使用所述第三公用密钥校验除所述二次程序载入器映像和所述u启动映像外的其它映像及将所述其它映像读入到随机存取存储器。在一些实施例中,所述随机存取存储器可以是双倍速率同步动态随机存储器。其中,所述第二闪存下载分区映像至少用于在交互模式下,使用所述第三公用密钥校验所述其它映像及将所述其它映像读入到随机存取存储器。

图6是本发明一实施例的形成第三签名映像的方法600的流程图。所述形成第三签名映像的方法600包括:

602:获得第三原始映像;

604:使用第三私有密钥生成第三电子签名;以及

606:添加所述第三电子签名到所述第三签名原始映像,从而形成所述第三签名映像。

在一些实施例中,所述第三原始映像包括:内核分区映像、系统分区映像、系统恢复分区映像、调制解调器固件分区映像或数字信号处理器固件分区映像。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1