一种终端的安全启动系统和方法

文档序号:9471862阅读:699来源:国知局
一种终端的安全启动系统和方法
【技术领域】
[0001]本发明涉及电子领域,特别是涉及一种终端的安全启动系统和方法。
【背景技术】
[0002]嵌入式终端设备已经广泛使用在人们的日常生活中,在人们享受它给我们带来了巨大便利性的同时,安全性已经成为一项重要的课题,甚至也是人们选购嵌入式终端产品的一项重要考量。目前,对于嵌入式终端设备的运行安全,已经有了很多成熟、有效的解决方案,然而,对于启动阶段的保护,并不多见。
[0003]在嵌入式系统启动阶段,目前主流的安全设计一般通过对所需加载的系统进行数字签名的方式,来验证所加载系统的完整性和一致性。然而,对于和私钥(Prk)配对用来数字签名验证的公钥(Puk)来说,它的安全性并没有得到保障。这意味着,恶意代码可以通过修改Puk的方式,来使被修改的系统通过验证。同时,单一 Puk、Prk配对的验证使得一旦数字签名被破解,整个系统便处于危险之中。

【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种终端的安全启动系统和方法,用于解决现有技术中对启动阶段保护较少,且安全性存在漏洞的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种终端的安全启动系统,包括??文件加载模块,用于在所述终端上电复位后,加载所述终端的系统文件的进程;存储模块,用于存储所述系统文件;引导加载模块,用于引导加载所述存储模块完成加载;安全验证模块,用于对验证所述存储模块加载后的内容;系统启动模块,用于启动安全协议同时完成操作所述终端的系统加载。
[0006]于本发明的一实施例中,所述文件加载模块还用于从预先设定的地址上获取指令,从而将固态设备映射到所述地址上。
[0007]于本发明的一实施例中,所述存储模块包括:0ΤΡ单元;用于所述存储模块初始化后,存储所述系统文件的公钥的值进行hash运算后的hash值;随机存储单元;用于所述存储模块初始化后,存储所述公钥的值。
[0008]于本发明的一实施例中,所述文件加载模块还用于检查系统内存映射、加载内核映像及文件系统映像。
[0009]于本发明的一实施例中,还包括:数字签名模块,用于对需要加载的所述内核映像及所述文件系统映像分段进行数字签名;所述安全验证模块还用于分段加载后,判断所述OTP单元中的hash值与所述随机存储单元中的所述公钥的值的匹配结果是否一致,以及判断所述公钥的值进行数字签名认证是否通过;还用于将上述判断结果发送至所述系统启动模块;所述系统启动模块根据所述安全验证模块的判断结果决定是否安全启动系统。
[0010]本发明还提供一种终端的安全启动方法,涉及上述的终端的安全启动系统,所述终端的安全启动方法包括以下步骤:S1、所述终端上电复位,所述文件加载模块加载所述终端的系统文件的进程;S2、所述引导加载程序模块引导所述存储模块加载完成系统文件;S3、所述安全验证模块进行安全验证;S4、所述系统启动模块启动安全协议同时完成所述终端的系统加载。
[0011]于本发明的一实施例中,所述步骤SI还包括步骤:从预先设定的地址上获取指令,从而将固态设备映射到所述地址上。
[0012]于本发明的一实施例中,所述步骤S2还包括步骤:S21、对所述存储模块进行初始化;S22、存储所述系统文件的公钥的值进行hash运算后的hash值到所述OTP单元;S23、存储所述公钥的值至所述随机存储单元。
[0013]于本发明的一实施例中,所述步骤S2还包括步骤:所述文件加载模块检查系统内存映射;加载内核映像及文件系统映像。
[0014]于本发明的一实施例中,所述步骤S3还包括步骤:S31、所述数字签名模块对需要加载的所述内核映像及所述文件系统映像分段进行数字签名,同时提供与私钥对应的公钥;S32、所述安全验证模块将分段加载后所述OTP单元中的hash值与初始的所述公钥的值进行匹配,并判断结果是否一致;若否则系统加载失败;若是,则进入步骤S33 ;S33、判断所述公钥的值进行数字签名认证是否通过;若否,则系统加载失败;若是,则所述系统启动模块控制所述终端跳转至所述终端的内核的第一条指令处;S34、从所述第一条指令处依次执行所有指令。
[0015]如上所述,本发明的终端的安全启动系统和方法,具有以下有益效果:在数字签名的基础上,采用OTP硬件并结合hash运算,来对公钥Puk提供更高的安全性,对启动系统提供更加可靠地保障。
【附图说明】
[0016]图1显示为本发明终端的安全启动系统的一实施例中的模块方框示意图。
[0017]图2显示为本发明终端的安全启动方法的一实施例中的流程方框示意图。
[0018]图3显示为本发明终端的安全启动方法的另一实施例中的步骤S2的流程方框示意图。
[0019]图4显示为本发明终端的安全启动方法的另一实施例中的步骤S3的流程方框示意图。
[0020]元件标号说明
[0021]10 文件加载模块
[0022]20 存储模块
[0023]30 引导加载模块
[0024]40 安全验证模块
[0025]50 系统启动模块
[0026]60 数字签名模块
[0027]201 OPT 单元
[0028]202 随机存储单元
【具体实施方式】
[0029]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0030]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0031]请参阅图1,图1显示为本发明终端的安全启动系统的一实施例中的模块方框示意图。本发明提供一种终端的安全启动系统,包括:文件加载模块10,用于在终端上电复位后,加载终端的系统文件的进程;存储模块20,用于存储系统文件;引导加载模块30,用于引导加载存储申旲块完成加载;安全验证申旲块40,用于对验证存储I旲块加载后的内谷;系统启动模块50,用于启动安全协议同时完成操作终端的系统加载。
[0032]进一步地,文件加载模块10还用于从预先设定的地址上获取指令,从而将固态设备映射到地址上。本发明的一实施例中,存储模块20包括:OTP (one-time-programmable)单元201 ;用于存储模块初始化后,存储系统文件的公钥的值进行hash(哈希)运算后的hash值;随机存储单元202;用于存储模块初始化后,存储公钥的值。一般而言,通过RSA-PSS算法生产的公钥(Puk)长度超过1024位。因此,为了减少OTP的使用,降低SOC的成本,本发明对公钥(Puk)进行hash (哈希)运算,得到长度较小的hash (哈希)值,这样,公钥(Puk)便可以存放在安全性相对较低的Off-soc,而在OTP中存放公钥(Puk)的hash (哈希)值。利用OTP只能写一次的硬件特性,在Soc中集成多个0ΤΡ,以存放公钥(Puk)的hash(哈希)值,以保证公钥(Puk)的安全性。
[0033]文件加载模块10还用于检查系统内存映射、加载内核映像及文件系统映像。终端的安全启动系统还包括数字签名模块60,用于对需要加载的内核映像及文件系统映像分段进行数字签名。通常受信任的嵌入式设备生产商通过私钥(Prk)对系统映像(image)进行签名,同时,在设备上提供一个与私钥(Prk)配对的公钥(Puk)进行数字签名验证。在此基础上,嵌入式设备生产商可以对文件系统映像(image)进行分段,即通过多段数字签名,以保证系统启动时文件加载模块10在每一段都加载了正确的系统image。
[0034]安全验证模块40还用于分段加载后,判断OTP单元201中的hash值与随机存储单元202中的公钥的值的匹配结果是否一致,以及判断公钥的值进行数字签名认证是否通过;还用于将上述判断结果发送至系统启动模块;系统启动模块50根据安全验证模块的判断结果决定是否安全启动系统。当判断OTP单元201中的hash值与随机存储单元202中的公钥的值的匹配结果不一致或者公钥的值进行数字签名认证没有通过时,系统加载失败。当判断OTP单元201中的hash值与随机存储单元202中的公钥的值的匹配结果一致且者公钥的值进行数字签名认证通过时,内核映像(kernel image)
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1