一种嵌入式设备的安全启动方法及启动安全的嵌入式设备的制造方法_2

文档序号:8543548阅读:来源:国知局
br>[0053]所述嵌入式处理器的数据总线直接与外置启动ROM相连。
[0054]所述嵌入式设备采用权利要求1?4中任一项所述的方法实现安全启动。
[0055]所述非易失存储器的使能端接嵌入式处理器的CSl片选信号端;非易失存储器的地址空间由CSl对应的地址寄存器配置;
[0056]所述外置启动ROM的使能端接嵌入式处理器的CSO片选信号端;地址信号和CSO片选信号先通过FPGA做译码控制,然后再连接到外置启动ROM上;外置启动ROM的地址空间由CSO对应的地址寄存器配置。
[0057]实施例1:
[0058]a)硬件设计的具体实施
[0059]本发明的硬件系统设计,如图4所示。硬件组成由非易失性存储器、外置启动R0M、嵌入式设备的处理器和FPGA译码控制器等主要部件组成。选用外置启动ROM是因为不存在技术壁皇,外置启动ROM使用很普遍,也很通用,如果选用内置ROM可能会受到相关厂商的技术限制,不利于系统实现或移植。处理器本地总线中的地址总线和CSO片选控制信号先通过FPGA做译码控制,然后再连接到外置启动ROM上。【是本地总线中的地址总线和控制总线与FPGA相连;本地总线中的数据总线直接与外置启动ROM相连】本地总线是处理器的地址总线、数据总线和控制总线的集合。外置启动ROM的地址空间由CSO相关的地址寄存器来配置。FPGA主要完成地址译码,目的是保证系统启动后,取第一条指令的地址落在外置启动ROM中的安全启动认证模块的入口地址,如图2所示。外置启动ROM用来保存安全启动认证模块和公钥。嵌入式设备加电运行后,处理器必须首先执行启动ROM中的安全启动认证模块,然后再由安全启动认证模块控制系统的安全启动。
[0060]处理器与非易失存储器通过本地总线连接。非易失存储器由本地总线的CSl片选控制信号使能,因此非易失存储器的地址空间就由CSl相关的地址寄存器来配置。非易失存储器需要保存一些关键数据,1)RSA加密后的密文;2)RSA的公钥;3)系统启动程序。该存储器中的存储区必须给以明确的划分,用以保存不同的数据,这些存储区可以是连续的,也可以是不连续的,但不能有重叠区域。非易失存储器通过本地总线挂接到处理器上,存储区的地址参与处理器的统一编址。每个存储区的起始地址应设为固定的且是绝对地址,在启动过程中,保存1)RSA加密后的密文;2)RSA的公钥;3)系统启动程序的存储区必须禁止cache和禁止MMU (内存管理单元),这样才能保证执行安全认证模块。【基本上所有CPU都有控制cache和MMU的相关寄存器,通过配置这些寄存器可以禁止对应地址空间中的cache和MMU。此处就是通过配置CPU的相关寄存器来完成。】
[0061]b)方法设计的实施
[0062]如图1所示,通过FPGA译码控制,将嵌入式处理器的第一条取指地址映射到外部启动ROM的安全启动认证模块的入口地址,此时处理器先执行启动ROM中的安全启动认证模块,然后再执行系统启动程序的特性,实现安全启动认证机制。。
[0063]安全启动认证机制,分两部分来具体实现:第一部分是安全启动认证环境的建立;第二部分是安全启动认证模块的执行。安全启动认证环境建立的方法为:a)用户在主机PC上对启动程序执行hash运算,得到明文;b)用户在主机PC上使用私钥对明文进行RSA非对称加密,得到加密密文,将该加密密文和公钥烧写到设备的非易失存储器的指定位置;c)用户在主机PC上使用处理器(CPU)对应的仿真器【目前市面上的嵌入式CPU都有对应的仿真器,用于该CPU的硬件调试。仿真器就是一种调试设备,在CPU还没有正确运行软件的时候,可通过仿真器及其调试程序,对CPU的寄存器进行配置,以及访问CPU上对应的地址空间】。将公钥和安全启动认证模块烧写到外置启动ROM中;d)用户在主机PC上使用仿真器将启动程序烧写到非易失存储器的指定位置。
[0064]安全启动认证模块执行的过程为:处理器会先执行启动ROM中的安全启动认证模块,然后再根据安全启动认证模块的执行结果判断启动程序是否安全。如果安全,设备正常启动,如果不安全,设备就不能启动。如图3所不,安全启动认证1?块需实现以下内谷:a)从非易失存储器的指定位置读出公钥,然后与外部启动ROM中保存的公钥进行比对,保证公钥无错误;b)从非易失存储器的指定位置读出加密密文,然后用公钥对加密密文进行解密,从而得到明文;c)对非易失存储器的指定位置中保存的启动程序执行hash运算,将得到的运算结果与b)中得到的明文比对,如果相同,那么启动程序是安全的、授权的,开始执行启动程序,如果不相同,那么启动程序是不安全的,停止执行启动程序。
[0065]选择不同复杂度的Hash算法的选择,以及RSA算法中秘钥位数的选择,对嵌入式处理器的执行能力和系统资源要求情况会不同。Hash算法复杂度越高和RSA的私钥位数越宽,对处理器的运算能力要求就越高,且对系统资源要求也越多,同时所带来的执行时间、系统启动时间也越长,但相应的安全系数会越高,因此需根据实际情况具体选择。值得提到的是,私钥必须由使用者或用户妥善保存,防止泄露,否则安全启动认证机制将被破解。
[0066]由于整个嵌入式设备的系统软件一般可与启动程序绑定运行的,因此对整个设备的启动安全认证也将起到对嵌入式设备的系统软件的安全认证,从而嵌入式设备的软件系统不被轻易更换或避免受到恶意程序的篡改和破坏,提高整个嵌入式设备的安全性。
【主权项】
1.一种嵌入式设备的安全启动方法,其特征在于,所述嵌入式设备包括嵌入式处理器、非易失存储器、FPGA和外置启动ROM ;所述嵌入式处理器通过地址总线、数据总线和控制总线与非易失存储器相连;所述嵌入式处理器的地址总线和控制总线通过FPGA与外置启动ROM相连;所述嵌入式处理器的数据总线直接与外置启动ROM相连; 安全启动方法包括两个步骤:建立安全启动认证环境和执行安全启动认证模块; 嵌入式处理器复位后,优先执行外置启动ROM中的安全启动认证模块,对嵌入式设备的启动程序进行安全认证检测;然后再根据安全启动认证模块的执行结果判断启动程序是否安全;如果安全,开始执行启动程序,如果不安全,停止执行启动程序。
2.根据要求I所述的嵌入式设备的安全启动方法,其特征在于,所述建立安全启动认证环境的步骤为: a)在主机PC上对嵌入式设备的启动程序执行hash运算,得到明文; b)在主机PC上使用私钥对上述明文进行RSA非对称加密,得到加密密文,将该加密密文和公钥分别烧写到所述非易失存储器的第一存储区和第二存储区; c)在主机PC上使用所述嵌入式处理器对应的仿真器将公钥和安全认证模块烧写到所述外置启动ROM的第一存储区和第二存储区; d)在主机PC上使用所述嵌入式处理器对应的仿真器将嵌入式设备的启动程序烧写到非易失存储器的第三存储区; 所述执行安全启动认证模块的步骤为: 1)从非易失存储器的第一存储区读出加密密文,从第二存储区读出公钥,然后用公钥对加密密文进行解密,从而得到明文; 2)对非易失存储器的第三存储区中保存的嵌入式设备的启动程序执行hash运算,将得到的运算结果与I)中得到的明文进行比对,如果两者相同,则说明启动程序是安全的;如果不相同,则启动程序是不安全的。
3.根据要求2所述的嵌入式设备的安全启动方法,其特征在于,所述FPGA进行地址译码,使得嵌入式处理器在系统复位后,取第一条指令的地址为外置启动ROM中的安全启动认证模块的入口地址。
4.根据要求3所述的嵌入式设备的安全启动方法,其特征在于,所述步骤I)之前还包括对公钥进行正确性验证的步骤,即从非易失存储器的第二存储区读出公钥,然后与外置启动ROM的第一存储区中保存的公钥进行比对,验证公钥是否正确;若公钥正确,则继续执行步骤I);否则若公钥不正确,则重新烧写公钥至所述非易失存储器的第二存储区中和外置启动ROM的第一存储区。
5.根据要求4所述的嵌入式设备的安全启动方法,其特征在于,所述非易失存储器的使能端接嵌入式处理器的CSl片选信号端;非易失存储器的地址空间由CSl对应的地址寄存器来配置; 所述外置启动ROM的使能端接接嵌入式处理器CSO片选信号端;本地总线中的地址总线和CSO片选信号先通过FPGA做译码控制,然后再连接到外置启动ROM上;外置启动ROM的地址空间由CSO对应的地址寄存器来配置。
6.一种启动安全的嵌入式设备,其特征在于,包括嵌入式处理器、非易失存储器、FPGA和外置启动ROM ;所述嵌入式处理器通过地址总线、数据总线和控制总线与非易失存储器相连; 所述嵌入式处理器的地址总线和控制总线通过FPGA与外置启动ROM相连; 所述嵌入式处理器的数据总线直接与外置启动ROM相连。 所述嵌入式设备采用权利要求1?4中任一项所述的方法实现安全启动。
7.根据权利要求6所述的启动安全的嵌入式设备,其特征在于,所述非易失存储器的使能端接嵌入式处理器的CSl片选信号端;非易失存储器的地址空间由CSl对应的地址寄存器配置; 所述外置启动ROM的使能端接嵌入式处理器的CSO片选信号端;地址信号和CSO片选信号先通过FPGA做译码控制,然后再连接到外置启动ROM上;外置启动ROM的地址空间由CSO对应的地址寄存器配置。
【专利摘要】本发明公开了一种嵌入式设备的安全启动方法及启动安全的嵌入式设备,嵌入式设备包括嵌入式处理器、非易失存储器、FPGA和外置启动ROM;嵌入式处理器通过本地总线与非易失存储器相连;嵌入式处理器的地址总线和控制总线通过FPGA与外置启动ROM相连;嵌入式处理器的数据总线直接与外置启动ROM相连。安全启动方法包括两个步骤:建立安全启动认证环境和执行安全启动认证模块;复位后,处理器先执行外置启动ROM中的安全启动认证模块,根据安全启动认证模块的执行结果判断启动程序是否安全;如果安全,设备正常启动,否则,设备不能启动。本发明能对嵌入式设备的启动程序进行安全启动认证,从而保证设备在系统启动时的安全。
【IPC分类】G06F9-445, G06F21-44
【公开号】CN104866343
【申请号】CN201510246872
【发明人】刘智臣, 龙建, 吕艳辉, 聂世刚, 孙文德, 符鹤, 陈志才
【申请人】长城信息产业股份有限公司, 长沙湘计海盾科技有限公司
【公开日】2015年8月26日
【申请日】2015年5月15日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1