CN107122668A - 固件加密方法 - Google Patents
固件加密方法 Download PDFInfo
- Publication number
- CN107122668A CN107122668A CN201710291973.9A CN201710291973A CN107122668A CN 107122668 A CN107122668 A CN 107122668A CN 201710291973 A CN201710291973 A CN 201710291973A CN 107122668 A CN107122668 A CN 107122668A
- Authority
- CN
- China
- Prior art keywords
- aku
- values
- user terminal
- server
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及一种固件加密方法,包括:用户终端通过OTA向服务器发送升级包检测请求;接收服务器反馈的检测结果信息,根据检测结果信息确定服务器具有升级包;通过OTA向服务器发送升级包下载请求;接收服务器下发的升级数据包;升级数据包包括升级包和升级包对应的MD5值;将MD5值写入用户终端的misc分区并存储为第一MD5值,并将升级包进行存储,在设置界面配置升级包的待检测信息;用户终端对设置界面进行检测,当检测到升级包的待检测信息后,接收用户输入的确认升级操作指令;根据确认升级操作指令进入recovery模式;通过MD5值校验后,根据升级包对用户终端的系统进行升级。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种固件加密方法。
背景技术
固件(firmware),又叫韧件,是一种嵌入在硬件装置中的软件。通常它是位于快闪存储器中,而且可以让使用者更新。随着移动技术的发展,移动终端,如智能手机,不断增加功能,其固件复杂度也随之增加。
升级固件一般可以针对手机功能做出一些增强,修正一些小错误,让手机程序运行更流畅,通话质量提高等等。
固件升级是指通过专门的升级程序,将硬件中的工作程序或源代码进行改进,使其得到兼容性、性能或者功能上的提高。它与升级驱动程序等不同的是从机器底层进行更新,因而更直接、更有效,性能提高也更明显。这种升级可将机器的性能不断提高,进行将主机的潜力不断发挥出来不过,固件升级会有一定的风险,因而需要对固件升级进行有效管控,往往采用固件加密的方式来实现。而现有的技术都是通过公钥,私钥这种方式对固件进行加密,如果在需要将公钥,私钥对外释放的业务需求下,这种加密方式就无法满足业务需要的要求,达不到有效加密的效果。
发明内容
本发明的目的是提供一种固件加密方法,通过在升级前将升级包对应的MD5值写入misc分区来进行数据有效性的验证,即便公钥、私钥对外开放,也能够保证系统不会被随意刷机,可防止第三方替换固件,有效地保障了开发者对系统版本的控制。
为实现上述目的,本发明提供了一种固件加密方法,包括:
用户终端通过空中接口OTA向服务器发送升级包检测请求;
接收所述服务器反馈的检测结果信息,根据所述检测结果信息确定所述服务器具有所述升级包;
所述用户终端通过所述OTA向所述服务器发送升级包下载请求;
接收所述服务器下发的升级数据包;所述升级数据包包括所述升级包和所述升级包对应的MD5值;
对所述升级数据包进行解析,得到所述升级包和所述MD5值;
将所述MD5值写入所述用户终端的misc分区并存储为第一MD5值,并将所述升级包进行存储,在设置界面配置所述升级包的待检测信息;
所述用户终端对所述设置界面进行检测,得到所述升级包的待检测信息,并根据所述待检测信息生成升级提示信息;
接收用户根据所述升级提示信息输入的确认升级操作指令;
根据所述确认升级操作指令进入工程recovery模式;
计算所述升级包的MD5值,并从misc分区获取所述第一MD5值,确定所述计算得到的MD5值与所述第一MD5值是否一致;
当确定为一致时,根据所述升级包对所述用户终端的系统进行升级。
优选的,所述根据所述确认升级操作指令进入工程recovery模式之前,所述方法还包括:
对所述升级包进行数据校验。
进一步优选的,在所述数据校验通过后,所述方法还包括:
向所述用户终端内存储的cache/recovery/command文件中写入特定信息,并且向所述misc分区的指定位置写入特定字段。
进一步优选的,在所述根据所述确认升级操作指令进入工程recovery模式之后并且在所述计算所述升级包的MD5值之前,所述方法还包括:
读取所述misc分区的所述指定位置,获取所述指定位置的字段的信息;
确定所述字段与所述特定字段相一致。
进一步优选的,所述方法还包括:当确定所述字段与所述特定字段不一致时,生成第一错误提示信息并显示。
优选的,当所述计算得到的MD5值与所述第一MD5值不一致时,所述方法还包括:生成第二错误提示信息并显示。
本发明实施例提供的固件加密方法,通过在升级前将升级包对应的MD5值写入misc分区来进行数据有效性的验证,即便公钥、私钥对外开放,也能够保证系统不会被随意刷机,可防止第三方替换固件,有效地保障了开发者对系统版本的控制。
附图说明
图1为本发明实施例提供的固件加密方法的流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供的固件加密方法,主要应用于智能移动终端设备中,尤其是应用与智能手机中。
图1为本发明实施例提供的固件加密方法的流程图,如图1所示,主要包括如下步骤:
步骤101,用户终端通过空中接口(OTA)向服务器发送升级包检测请求;
具体的,空中接口(Over-The-Air,OTA)是通过移动通信网(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用SMS、WAP、GPRS、CDMA1X等技术。而基于短消息的OTA空中下载技术是OTA技术中最为简单可靠手段。
用户终端通过OTA向服务器发送检测请求,在检测请求中携带有用户终端的信息,其中可以具体包括当前固件的版本信息,从而用以检测服务器中是否具有适用于用户终端的固件升级包。
步骤102,接收服务器反馈的检测结果信息,根据检测结果信息确定服务器是否具有升级包;
具体的,可以根据版本信息来确定服务器中是否具有升级包。比如当版本信息为更新的版本时,确定该固件升级包为所需的升级包。
如果不具有升级包,则直接结束该流程。
在本例中仅对检测到有升级包的情况进行讨论。
步骤103,用户终端通过OTA向服务器发送升级包下载请求;
具体的,用户终端在确定服务器中具有所需的升级包时,生成升级包下载请求,通过OTA发送到服务器。升级包下载请求中携带有升级包的信息,以及用户终端的信息。
步骤104,接收服务器下发的升级数据包;
具体的,服务器在根据升级包下载请求向用户终端下发升级数据包。升级数据包包括升级包和升级包对应的MD5值。
MD5即Message-Digest Algorithm 5,也称为信息-摘要算法5,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护,确保信息传输完整一致。
MD5值就像是一个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。
步骤105,对升级数据包进行解析,得到升级包和MD5值;
具体的,用户终端对服务器下发的升级数据包进行解析,得到升级包和MD5值。
步骤106,将MD5值写入用户终端的misc分区并存储为第一MD5值,并将升级包进行存储,在设置界面配置升级包的待检测信息;
具体的,android上主要有六个分区:cache,misc,recovery,boot,system,data。
其中,boot分区上有Android的引导程序,包括内核和内存操作程序。没有这个分区设备就不能被引导。恢复系统的时候会擦除这个分区,并且必须重新安装引导程序和ROM才能重启系统。
system分区上是除了内核和内存操作之外的整个操作系统,里面包含了Android用户接口和预先安装的系统应用。
recovery分区被认为是另一个启动分区,启动设备进入recovery控制台可以去执行高级的系统恢复和管理操作。
data分区保存着用户数据。通讯录、短信、设置和安装的apps都在这个分区上。擦除这个分区相当于恢复出厂设置,当第一次启动设备的时候或者在安装了官方或者客户的ROM之后系统会自动重建这个分区。当执行恢复出厂设置时,就是在擦除这个分区。
cache分区是Android系统存储频繁访问的数据和app的地方。cache是缓存空间,程序和系统用到的缓存数据和指令就存放在这里。擦除这个分区不会影响个人数据,当你继续使用设备时,被擦除的数据就会自动被创建。
misc分区包含各种复杂的类似于on/off的系统设置。这些设置可能是USB配置和某些硬件配置信息。该分区中有启动加载控制模块(Bootloader Control Block,BCB),主要是用于存放Recovery引导信息。
用户终端将服务器下发的升级数据包的MD5值存储到misc分区。为了便于区分,将存储的值称为第一MD5值。
步骤107,用户终端对设置界面进行检测,得到升级包的待检测信息,并根据待检测信息生成升级提示信息;
具体的,升级包在下载之后,会在设置界面上加载有其待检测信息,用于被系统检测到升级包。在对MD5值进行存储之后,用户终端执行对设置界面的检测,并根据检测到的待检测信息生成升级提示信息。
进一步的,升级提示信息可以包括升级包对应的固件名称、版本信息等等。
在生成升级提示信息之后,用户终端将升级提示信息对用户进行显示。
步骤108,接收用户根据升级提示信息输入的确认升级操作指令;
具体的,在用户终端对升级提示信息进行显示后,检测用户输入,当接收到用户输入的操作指令时,对操作指令进行解析,确定是否是确认升级的操作指令。
步骤109,对升级包进行数据校验;
具体的,在升级包下载过程中,运营商网络可能会对升级包数据做劫持,从而导致最终下载的升级包文件内容损坏,最终无法验证通过。如果发生升级报数据校验失败的情况,可以清除已下载的数据包,并再次向服务器发送升级包下载请求。
在升级包数据校验通过之后,继续执行下述步骤。
步骤110,向用户终端内存储的cache/recovery/command文件中写入特定信息,并且向misc分区的指定位置写入特定字段。
具体的,特定信息可以是update.zip文件。
步骤111,根据确认升级操作指令进入工程(recovery)模式;
其中,recovery模式主要指的是安卓的恢复刷机模式,这相当于windows系统的dos模式,因此也可以称之为安卓的工程模式,在这个工程模式下,可以进行若干操作,包括并不限于重启手机,刷入系统补丁,刷入一个新的手机刷机包,格式化手机资料和缓存等。
步骤112,读取misc分区的指定位置,获取指定位置的字段的信息;
步骤113,确定字段与特定字段是否相一致;
由此可以避免在进入到recovery模式时系统出现故障或数据丢时损坏等。
当字段不一致时,执行步骤114,生成第一错误提示信息并显示。
具体的,第一错误提示信息可以是用以提示升级包错误的提示信息。
当字段一致时,执行步骤115,计算升级包的MD5值,并从misc分区获取第一MD5值;
具体的,可以适用文件校验和完整性验证程序(FCIV)计算MD5文件,计算得到一个MD5值。在misc分区中还存储有之前接收服务器下发的第一MD5值,对二者进行比较。
步骤116,确定计算得到的MD5值与第一MD5值是否一致;
当确定为一致时,执行步骤117,根据升级包对用户终端的系统进行升级。
此外,当计算得到的MD5值与第一MD5值不一致时,执行步骤118,生成第二错误提示信息并显示。具体的,第二错误提示信息可以是用以提示升级失败的提示信息。
本发明实施例提供的固件加密方法,提供了固件升级管控的全流程,通过在升级前将升级包对应的MD5值写入misc分区来进行数据有效性的验证,即便公钥、私钥对外开放,也能够保证系统不会被随意刷机,可防止第三方替换固件,有效地保障了开发者对系统版本的控制。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种固件加密方法,其特征在于,所述固件加密方法包括:
用户终端通过空中接口OTA向服务器发送升级包检测请求;
接收所述服务器反馈的检测结果信息,根据所述检测结果信息确定所述服务器具有所述升级包;
所述用户终端通过所述OTA向所述服务器发送升级包下载请求;
接收所述服务器下发的升级数据包;所述升级数据包包括所述升级包和所述升级包对应的MD5值;
对所述升级数据包进行解析,得到所述升级包和所述MD5值;
将所述MD5值写入所述用户终端的misc分区并存储为第一MD5值,并将所述升级包进行存储,在设置界面配置所述升级包的待检测信息;
所述用户终端对所述设置界面进行检测,得到所述升级包的待检测信息,并根据所述待检测信息生成升级提示信息;
接收用户根据所述升级提示信息输入的确认升级操作指令;
根据所述确认升级操作指令进入工程recovery模式;
计算所述升级包的MD5值,并从misc分区获取所述第一MD5值,确定所述计算得到的MD5值与所述第一MD5值是否一致;
当确定为一致时,根据所述升级包对所述用户终端的系统进行升级。
2.根据权利要求1所述的固件加密方法,其特征在于,所述根据所述确认升级操作指令进入工程recovery模式之前,所述方法还包括:
对所述升级包进行数据校验。
3.根据权利要求2所述的固件加密方法,其特征在于,在所述数据校验通过后,所述方法还包括:
向所述用户终端内存储的cache/recovery/command文件中写入特定信息,并且向所述misc分区的指定位置写入特定字段。
4.根据权利要求3所述的固件加密方法,其特征在于,在所述根据所述确认升级操作指令进入工程recovery模式之后并且在所述计算所述升级包的MD5值之前,所述方法还包括:
读取所述misc分区的所述指定位置,获取所述指定位置的字段的信息;
确定所述字段与所述特定字段相一致。
5.根据权利要求4所述的固件加密方法,其特征在于,所述方法还包括:当确定所述字段与所述特定字段不一致时,生成第一错误提示信息并显示。
6.根据权利要求1所述的固件加密方法,其特征在于,当所述计算得到的MD5值与所述第一MD5值不一致时,所述方法还包括:生成第二错误提示信息并显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710291973.9A CN107122668A (zh) | 2017-04-28 | 2017-04-28 | 固件加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710291973.9A CN107122668A (zh) | 2017-04-28 | 2017-04-28 | 固件加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107122668A true CN107122668A (zh) | 2017-09-01 |
Family
ID=59726045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710291973.9A Pending CN107122668A (zh) | 2017-04-28 | 2017-04-28 | 固件加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122668A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391936A (zh) * | 2018-09-19 | 2019-02-26 | 四川长虹电器股份有限公司 | 一种ota升级包加密下载的方法 |
CN109922078A (zh) * | 2019-03-28 | 2019-06-21 | 努比亚技术有限公司 | 升级控制方法、移动终端及计算机可读存储介质 |
CN110022558A (zh) * | 2019-04-03 | 2019-07-16 | Oppo广东移动通信有限公司 | 一种升级包的加密、解密方法和电子装置及存储介质 |
CN112579130A (zh) * | 2020-12-28 | 2021-03-30 | 河南城拜检测技术有限公司 | 一种交互式的iap升级方法 |
CN112732310A (zh) * | 2021-01-22 | 2021-04-30 | 深圳市信义科技有限公司 | 基于嵌入式引导分区固件升级方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662533A (zh) * | 2008-08-27 | 2010-03-03 | 深圳富泰宏精密工业有限公司 | 软件更新系统及方法 |
CN101924607A (zh) * | 2010-08-27 | 2010-12-22 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
CN103957244A (zh) * | 2014-04-21 | 2014-07-30 | 惠州市新思为电子科技有限公司 | 一种远程程序升级方法及服务器 |
US20140358866A1 (en) * | 2013-05-30 | 2014-12-04 | Qualcomm Incorporated | Full file repair using schedule description fragment in embms |
CN105183580A (zh) * | 2014-06-06 | 2015-12-23 | 西安中兴新软件有限责任公司 | 一种引导程序的存储方法、故障恢复方法及设备 |
CN105933150A (zh) * | 2016-04-20 | 2016-09-07 | 努比亚技术有限公司 | Ota升级方法、装置及系统 |
CN106406922A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 软件升级方法及装置 |
-
2017
- 2017-04-28 CN CN201710291973.9A patent/CN107122668A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662533A (zh) * | 2008-08-27 | 2010-03-03 | 深圳富泰宏精密工业有限公司 | 软件更新系统及方法 |
CN101924607A (zh) * | 2010-08-27 | 2010-12-22 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
US20140358866A1 (en) * | 2013-05-30 | 2014-12-04 | Qualcomm Incorporated | Full file repair using schedule description fragment in embms |
CN103957244A (zh) * | 2014-04-21 | 2014-07-30 | 惠州市新思为电子科技有限公司 | 一种远程程序升级方法及服务器 |
CN105183580A (zh) * | 2014-06-06 | 2015-12-23 | 西安中兴新软件有限责任公司 | 一种引导程序的存储方法、故障恢复方法及设备 |
CN106406922A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 软件升级方法及装置 |
CN105933150A (zh) * | 2016-04-20 | 2016-09-07 | 努比亚技术有限公司 | Ota升级方法、装置及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391936A (zh) * | 2018-09-19 | 2019-02-26 | 四川长虹电器股份有限公司 | 一种ota升级包加密下载的方法 |
CN109391936B (zh) * | 2018-09-19 | 2021-04-06 | 四川长虹电器股份有限公司 | 一种ota升级包加密下载的方法 |
CN109922078A (zh) * | 2019-03-28 | 2019-06-21 | 努比亚技术有限公司 | 升级控制方法、移动终端及计算机可读存储介质 |
CN109922078B (zh) * | 2019-03-28 | 2023-03-21 | 努比亚技术有限公司 | 升级控制方法、移动终端及计算机可读存储介质 |
CN110022558A (zh) * | 2019-04-03 | 2019-07-16 | Oppo广东移动通信有限公司 | 一种升级包的加密、解密方法和电子装置及存储介质 |
CN112579130A (zh) * | 2020-12-28 | 2021-03-30 | 河南城拜检测技术有限公司 | 一种交互式的iap升级方法 |
CN112579130B (zh) * | 2020-12-28 | 2024-06-04 | 河南城拜检测技术有限公司 | 一种交互式的iap升级方法 |
CN112732310A (zh) * | 2021-01-22 | 2021-04-30 | 深圳市信义科技有限公司 | 基于嵌入式引导分区固件升级方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122212A (zh) | 固件加密方法 | |
CN107122668A (zh) | 固件加密方法 | |
EP1897386B1 (en) | Apparatus and methods for managing firmware verification on a wireless device | |
CN105637521B (zh) | 一种数据处理方法及智能终端 | |
US10268845B2 (en) | Securing of the loading of data into a nonvolatile memory of a secure element | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
WO2014146256A1 (zh) | 一种升级方法、智能终端及升级系统 | |
WO2014131652A1 (en) | A method for software anti-rollback recovery | |
CN106612192A (zh) | 设备的升级方法、装置和系统 | |
CN104751049A (zh) | 一种应用程序安装方法及移动终端 | |
CN108830113A (zh) | 一种Android设备唯一标识的获取方法 | |
US10582383B2 (en) | Method of managing a profile stored in a secure element, and corresponding secure element | |
CN103971056A (zh) | 一种防止操作系统中应用程序被卸载的方法和装置 | |
CN103714017A (zh) | 一种认证方法、认证装置及认证设备 | |
CN111158729A (zh) | 系统升级方法、装置、设备及存储介质 | |
US20120231763A1 (en) | Method and system for antivirus on a mobile device by sim card | |
CN111506897B (zh) | 数据处理方法和装置 | |
CN107479923A (zh) | 应用程序升级方法、装置及显示终端 | |
CN113806808B (zh) | 一种分布式环境下无侵入的数据脱敏方法及系统 | |
KR20230019032A (ko) | 사전 개인화된 보안 요소 및 내장된 개인화 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN111125771B (zh) | 保护设备隐私的方法及装置、电子设备、存储介质 | |
US7684992B2 (en) | Remote application correction | |
US20230297724A1 (en) | Hardware identity restoration post-device repair | |
CN114647424A (zh) | Ecu应用程序更新方法、装置、系统、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170901 |
|
WD01 | Invention patent application deemed withdrawn after publication |