一种版本信息的控制方法和控制装置的制造方法

文档序号:9667158阅读:228来源:国知局
一种版本信息的控制方法和控制装置的制造方法
【技术领域】
[0001]本发明涉及版本控制领域,尤其涉及一种版本信息的控制方法和版本信息的控制
目.ο
【背景技术】
[0002]通常软件版本的控制都是将应用程序的版本控制信息存储于0TP(0neTimeProgra_able)中,同时在应用程序的数据块中也记录了其版本信息,在加载或更新应用程序时将二者进行比较来达到版本控制的目的。
[0003]当应用程序被加载时,会将数据块中的版本信息与对应的0ΤΡ中的版本信息进行比较,如果数据块中的版本信息低于0ΤΡ中对应的版本信息,则该数据块将不被加载。当应用程序被更新时,同样会判断数据块的版本信息是否高于0ΤΡ中对应的版本信息,如果不是高于,则不更新当前的数据块;如果是高于,则更新当前的数据块并更新对应在0ΤΡ中的版本控制信息。
[0004]然而因为0ΤΡ的编程特性,0ΤΡ中的版本控制信息升级次数很有限。如果应用程序的更新频度比较大,便会有很多的升级次数,如此就需要更多的0ΤΡ空间来存储版本信息。然而0ΤΡ空间毕竟有限,占用太多0ΤΡ空间,会使得成本大大增加。

【发明内容】

[0005]本发明的目的旨在至少解决上述技术缺陷之一,提供一种版本信息的控制方法和版本信息的控制装置。
[0006]本发明提供一种版本信息的控制方法,所述控制方法包括以下步骤:
获取一次性可编程器中的安全计数值,闪存中版本数据块对应的版本控制信息以及所述安全计数值和版本控制信息的签名数据;
根据所述安全计数值和版本控制信息的签名数据对所述安全计数值和版本控制信息进行校验;
当校验通过时,获取应用程序数据块的版本控制信息;
判断应用程序数据块的版本控制信息是否高于或等于版本数据块对应的版本控制信息;
如果是,加载应用程序数据块中的应用程序。
[0007]从上述方法的方案可以看出,当需要加载应用程序时,需要先对跟所述安全计数值和版本控制信息的签名数据对所述安全计数值和版本控制信息进行校验之后,再进行版本控制,以保证加载应用程序的安全性,另外,由于版本信息存储在闪存中,可以大大提高了版本信息的升级次数。
[0008]本发明还提供版本信息的控制装置,所述控制装置包括:
一次性可编程器,用于存储安全计数值;
闪存,用于存储版本数据块和应用程序数据块; 控制器,用于获取一次性可编程器中的安全计数值,闪存中版本数据块对应的版本控制信息以及所述安全计数值和版本控制信息的签名数据;根据所述安全计数值和版本控制信息的签名数据对所述安全计数值和版本控制信息进行校验;当校验通过时,获取闪存中应用程序数据块的版本控制信息;判断应用程序数据块的版本控制信息是否高于或等于版本数据块对应的版本控制信息;如果是,加载应用程序数据块中的应用程序。
[0009]从上述控制装置的方案可以看出,当需要加载应用程序时,需要先对跟所述安全计数值和版本控制信息的签名数据对所述安全计数值和版本控制信息进行校验之后,再进行版本控制,以保证加载应用程序的安全性,另外,由于版本信息存储在闪存中,可以大大提高了版本信息的升级次数。
【附图说明】
[0010]图1为本发明的版本信息的控制方法一种实施例的流程图;
图2为本发明的数据传输的控制方法第一实施例的流程图;
图3为本发明的微代码结构示意图;
图4为本发明的数据传输的控制方法第二实施例的流程图。
【具体实施方式】
[0011]为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0012]本发明提供一种实施例的版本信息的控制方法,如图1所示,所述控制方法包括以下步骤:
S01,获取一次性可编程器中的安全计数值,闪存中版本数据块对应的版本控制信息以及所述安全计数值和版本控制信息的签名数据;
S02,根据所述安全计数值和版本控制信息的签名数据对所述安全计数值和版本控制信息进行校验;
S03,当校验通过时,获取应用程序数据块的版本控制信息;
S04,判断应用程序数据块的版本控制信息是否高于或等于版本数据块对应的版本控制信息;
S05,如果是,加载应用程序数据块中的应用程序;
S06,如果否,加载程序结束。
[0013]由于应用程序大部分的更新可能是与安全无关的,仅仅只是功能上的修改,但是会使得应用程序更新的频度比较大,如果将其版本控制信息存储于0ΤΡ中,为保证能升级足够次数,则需要非常大的0ΤΡ空间。为避免占用太多0ΤΡ空间又确保版本信息安全可信,本发明采取以下方式:
第一,使用部分OTP空间,但不作为存储版本控制信息用,而是作为计数应用程序涉及安全的升级,即用于存储安全计数值,用于记录应用程序的安全升级次数,从而增加控制方法的安全性。另外,将安全计数值命名为VR-Count er。
[0014]第二,将版本控制信息存储于版本数据块(VRDB,Vers1n Data Block)中,而VRDB会被签名并存储于闪存(Flash)中;因为Flash没有OTP的编程特性,部分的存储空间用于存储版本信息以便于数量较多次数的升级比如:4294967296次,可以大大提高了版本信息的升级次数。
[0015]也就是说,系统在启动时首先会校验安全计数值和版本控制信息形成的数据组,校验通过后进行版本控制;如果应用程序数据块中的版本信息低于VRDB中对应的版本信息,应用程序将不被加载;版本控制通过后才加载应用程序。
[0016]在多个应用程序的情况下,现有技术将版本控制信息存储在0ΤΡ中会继续增加0ΤΡ空间的使用;而通过以上的版本控制方法,只需要增加一点Flash空间来存储版本信息,不仅省去原本用来存储版本信息的0ΤΡ空间,同时也不受限于0ΤΡ的编程特性使版本信息升级次数有限,真正实现了任意次版本控制。
[0017]在具体实施中,所述控制方法还包括以下步骤:
获取应用程序的更新信号;
获取更新后应用程序数据块的版本控制信息,当前版本数据块对应的版本控制信息和一次性可编程器中的安全计数值;
判断更新后应用程序数据块的版本控制信息是否高于当前版本数据块对应的版本控制信息;
如果是,对更新后的版本控制信息和安全计数值进行签名,得到更新后的签名数据,即更新后的版本控制信息和安全计数值形成数据组,对所述数据组使用SHA(SeCUre HashAlgorithm,安全哈希算法)算法进行SHA运算,再进行加密,得到更新后的签名数据;
将更新后的版本控制信息和更新后的签名数据更新到闪存的版本数据块中。
[0018]如果应用程序更新,则升级VRDB中对应的版本信息,即更新VRDB;若应用程序的更新与安全有关,则同时还需要升级VR-Counter,然后重新签名数据组;将升级后的VRDB、VR-Counter和重新签名获得的签名数据更新至相对应位置,复位后重新进入应用程序加载流程,也就是说更新后的签名数据作为下一次加载流程中的获取到的签名数据。
[0019]在具体实施中,所述版本控制信息包括安全版本号、主版本号和子版本号。
[0020]在具体实施中,当更新后的版本控制信息的安全版本号进行更新时,对所述安全计数值进行升级。
[0021]在具体实施中,存储在VRDB中的版本信息一般为一个32位4个字节的数据,各个字节分别指示应用程序数据块的安全版本号、主版本号(2个字节)、子版本号。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1