一种运行引导程序的方法及装置制造方法及图纸

技术编号:19125999 阅读:57 留言:0更新日期:2018-10-10 07:29
本发明专利技术涉及一种运行引导程序的方法及装置,所述方法包括:从外部存储器中读取加密过的第一密钥;利用对应的第二密钥对加密过的第一密钥进行解密,得到第一密钥;从外部存储器中读取加密过的引导程序的版本头;利用第一密钥对加密过的引导程序的版本头进行解密,得到引导程序的版本头;从外部存储器中的引导程序中读取部分数据,并计算其第一校验值;如果所述第一校验值与版本头中的第二校验值相同,则根据第三密钥对引导程序的部分数据进行解密;运行引导程序的部分数据。通过本发明专利技术实施例的技术方案,可以实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,进一步降低设备成本、提高设备性能。

【技术实现步骤摘要】
一种运行引导程序的方法及装置
本专利技术涉及计算机控制
,尤其涉及一种运行引导程序的方法及装置。
技术介绍
目前,嵌入式系统中,设备一般从外部存储设备中读取引导程序BOOT程序,启动引导程序。直接焊接在设备中的外部存储设备,若外部存储设备中的程序不加任何防护,黑客可以利用系统的漏洞,获取到BOOT程序,亦可焊下存储设备FLASH,通过其他设备暴力读取FLASH中的BOOT程序,反汇编分析BOOT程序并修改BOOT程序,再次写入FLASH。为保护BOOT程序不被损坏,现有技术往往对BOOT程序进行加密处理,处理器启动时,需先对BOOT程序进行解密,再运行BOOT程序。对BOOT程序进行加密处理,需要额外的存储设备用来存储解密的密钥,势必需要额外增加设备成本。
技术实现思路
本专利技术要解决的技术问题是提供一种运行引导程序的方法,利用此方法实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,进一步降低设备成本、提高设备性能。本专利技术提供的技术方案如下:一种运行引导程序的方法,所述方法包括:从外部存储器中第一存储区域读取加密过的第一密钥;利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;如果所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,则根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;运行所述引导程序的部分数据。进一步地,所述运行引导程序的方法中,所述从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值的步骤之前,所述方法还包括:根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。进一步地,所述运行引导程序的方法中,所述根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密包括:根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。进一步地,所述运行引导程序的方法中,所述方法还包括:从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;如果所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;如果所述外部存储器中第三存储区域存储的引导程序未加密,运行所述引导程序;如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密后,运行所述引导程序。进一步地,所述运行引导程序的方法中,所述加密过的引导程序的版本头包括:存放于第一预定位置的第二校验值;存放于第二预定位置的第三密钥;存放于第三预定位置的第三校验值;存放于第四预定位置的第四校验值;存放于第五预定位置的第五校验值;以及,存放于第六预定位置的第七校验值。此外,本专利技术还涉及一种运行引导程序的装置,所述装置包括:第一读取模块,用于从外部存储器中第一存储区域读取加密过的第一密钥;第一解密模块,用于利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;第二读取模块,用于从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;第二解密模块,用于利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;第一处理模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;第三解密模块,用于当所述第一处理模块计算所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同时,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;程序运行模块,用于运行所述引导程序的部分数据。进一步地,所述运行引导程序的装置中,所述装置还包括:第一校验模块,所述第一校验模块用于根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。进一步地,所述运行引导程序的装置中,所述装置还包括:第二校验模块,所述第二校验模块用于根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;如果所述外部存储器中第三存储区域存储的引导程序加密,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。进一步地,所述运行引导程序的装置中,所述装置还包括:第三读取模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;第三校验模块,所述第三校验模块用于当所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同时,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;如果所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序未加密,所述程序运行模块运行所述引导程序;第四解密模块,用于当所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序加密时,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密,所述引导程序进行解密后,所述程序运行模块运行所述引导程序。进一步地,所述运行引导程序的装置中,所述第二存储区域包括:第一预定位置,用于存放第二校验值;第二预定位置,用于存放第三密钥;第三预定位置,用于存放第三校验值;第四预定位置,用于存放第四校验值;第五预定位置,用于存放第五校验值;以及,第六预定位置,用于存放第七校验值。本专利技术所带来的有益效果如下:本专利技术实施例所提供的一种运行引导程序的方法及装置,通过设备中央处理器CPU与外部存储器的数据相互配合,实现BOOT程序加密密钥的加密存储。利用此方法本专利技术实施例技术方案,可以实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,从而进一步降低设备成本、进一步提高设备性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1表示本专利技术实施例提供的一种运行引导程序的方法的流程图;图2表示本专利技术实施例提供的外部存储器结构示意图;图3表示本专利技术实施例提供的另一种运行引导程序的方法的流程图;图4表示本专利技术实施例涉及的引导程序的版本头的结构示意图;图5本文档来自技高网...
一种运行引导程序的方法及装置

【技术保护点】
1.一种运行引导程序的方法,其特征在于,所述方法包括:从外部存储器中第一存储区域读取加密过的第一密钥;利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;如果所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,则根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;运行所述引导程序的部分数据。

【技术特征摘要】
1.一种运行引导程序的方法,其特征在于,所述方法包括:从外部存储器中第一存储区域读取加密过的第一密钥;利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;如果所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,则根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;运行所述引导程序的部分数据。2.根据权利要求1所述运行引导程序的方法,其特征在于,所述从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值的步骤之前,所述方法还包括:根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。3.根据权利要求1所述运行引导程序的方法,其特征在于,所述根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密包括:根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。4.根据权利要求1所述运行引导程序的方法,其特征在于,所述方法还包括:从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;如果所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;如果所述外部存储器中第三存储区域存储的引导程序未加密,运行所述引导程序;如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密后,运行所述引导程序。5.根据权利要求1-4任一项所述运行引导程序的方法,其特征在于,所述加密过的引导程序的版本头包括:存放于第一预定位置的第二校验值;存放于第二预定位置的第三密钥;存放于第三预定位置的第三校验值;存放于第四预定位置的第四校验值;存放于第五预定位置的第五校验值;以及,存放于第六预定位置的第七校验值。6.一种运行引导程序的装置,其特征在于,所述装置包括:第一读取模块,用于从外部存储器中第一存储区域读取加密过...

【专利技术属性】
技术研发人员:鲍小云江坤刘怀霖
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1