CN107273150A - 预加载固件下载写入方法及装置 - Google Patents

预加载固件下载写入方法及装置 Download PDF

Info

Publication number
CN107273150A
CN107273150A CN201710326536.6A CN201710326536A CN107273150A CN 107273150 A CN107273150 A CN 107273150A CN 201710326536 A CN201710326536 A CN 201710326536A CN 107273150 A CN107273150 A CN 107273150A
Authority
CN
China
Prior art keywords
firmware
preloading
security signature
mobile terminal
preloads
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.)
Granted
Application number
CN201710326536.6A
Other languages
English (en)
Other versions
CN107273150B (zh
Inventor
何跃平
幸浩平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kingberry Technology Co Ltd
Original Assignee
Shenzhen Kingberry Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Kingberry Technology Co Ltd filed Critical Shenzhen Kingberry Technology Co Ltd
Priority to CN201710326536.6A priority Critical patent/CN107273150B/zh
Publication of CN107273150A publication Critical patent/CN107273150A/zh
Application granted granted Critical
Publication of CN107273150B publication Critical patent/CN107273150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

本发明适用于数据安全技术领域,提供了一种预加载固件下载写入方法及装置,包括:在第一预加载固件添加文件格式数据得到第二预加载固件;根据工作密钥对第二预加载固件进行加密运算,将第一安全签名写入第二预加载固件得到第三预加载固件;接收用户授权信息并与预设授权信息进行匹配;若匹配结果相同,利用固件下载工具将第三预加载固件下载至内存模块;提取不含第一安全签名的第四预加载固件并进行加密运算,得出第二安全签名;将第二安全签名与第一安全签名进行对比;若对比结果相同,将第四预加载固件写入处理器芯片的闪存模块。通过对下载前后预加载固件数据一致性的检测,以及对下载时用户授权信息的验证,使得预加载固件的下载和写入都得到了有效的安全保障,提高了移动终端的安全性。

Description

预加载固件下载写入方法及装置
技术领域
本发明属于数据安全技术领域,尤其涉及一种预加载固件下载写入方法及装置。
背景技术
Preloader预加载固件是MTK联发科内部开发的一个软件加载器,用于对装置软件的加载启动,在采用MTK芯片的移动终端上运行安卓装置时,安卓装置需要Preloader固件的加载引导才能启动。
现有技术中,为了使采用MTK芯片的移动终端能正常运行安卓装置,会首先通过移动终端原厂提供的flashtool下载工具,直接从电脑端将Preloader固件下载并写入至移动终端的MTK芯片的Flash闪存模块中,再通过运行Preloader固件进行安卓装置的加载运行。由于原厂的flashtool下载工具只是简单的将电脑端中的预加载固件下载写入到MTK芯片的Flash闪存中,没有任何安全防护,黑客可以很容易地冒充用户,对移动终端进行Preloader固件重写,或者对下载写入的Preloader固件进行修改或植入病毒,使得后续Preloader固件在进行安卓装置的加载运行时出现错误,或者加载非用户所需的软件代码,从而使得移动终端的安全性遭到了极大的威胁。
综上,现有的移动终端的预加载固件下载写入的方式过于简单,移动终端的预加载固件容易被重写或者修改,导致移动终端安全性低下的问题。
发明内容
有鉴于此,本发明实施例提供了预加载固件下载写入方法及装置,以解决现有技术中移动终端的预加载固件下载写入的方式过于简单,导致移动终端安全性低下的问题。
本发明实施例的第一方面提供了一种预加载固件下载写入方法,包括:
读取第一预加载固件,并在所述第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件;
读取移动终端的工作密钥,根据所述工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
接收用户输入的用户授权信息,并将所述用户授权信息发送至所述至所述移动终端,以使所述移动终端将接收到的所述用户授权信息与预设授权信息进行匹配,并在所述用户授权信息与所述预设授权信息相同时,返回授权成功信息;
若接收到所述移动终端返回的所述授权成功信息,通过固件下载工具发送第三预加载固件至所述移动终端中处理器芯片的内存模块,以使得所述移动终端在所述第三预加载固件,提取出不含所述第一安全签名的第四预加载固件,利用所述工作密钥,对所述第四预加载固件进行所述加密运算,并在加密运算得出的第二安全签名与所述第一安全签名相同时,将所述第四预加载固件写入所述处理器芯片的闪存模块。
本发明实施例的第二方面提供了一种预加载固件下载写入方法,包括:
接收电脑端发送的用户授权信息,并与预设授权信息进行匹配;若匹配结果为所述用户授权信息与所述预设授权信息相同,发送授权成功信息至所述电脑端,以使得所述电脑端根据所述授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块;所述电脑端读取第一预加载固件,并在所述第一预加载固件数据头部添加文件格式数据,得到第二预加载固件;根据所述移动终端的工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
在所述第三预加载固件中,提取出不含所述第一安全签名的第四预加载固件;利用所述工作密钥,对第四预加载固件进行所述加密运算,得出第二安全签名;
将所述第二安全签名与所述第一安全签名进行对比;
若对比结果为所述第二安全签名与所述第一安全签名相同,将所述第四预加载固件写入所述处理器芯片的闪存模块。
本发明实施例的第三方面提供了一种预加载固件下载写入装置,包括:
固件读取模块,用于读取第一预加载固件,并在所述第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件;
第一加密模块,用于读取移动终端的工作密钥,根据所述工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
授权信息发送模块,用于接收用户输入的用户授权信息,并将所述用户授权信息发送至所述至所述移动终端,以使所述移动终端将接收到的所述用户授权信息与预设授权信息进行匹配,并在所述用户授权信息与所述预设授权信息相同时,返回授权成功信息;
固件下载模块,用于若接收到所述移动终端返回的所述授权成功信息,通过固件下载工具发送第三预加载固件至所述移动终端中处理器芯片的内存模块,以使得所述移动终端在所述第三预加载固件,提取出不含所述第一安全签名的第四预加载固件,利用所述工作密钥,对所述第四预加载固件进行所述加密运算,并在加密运算得出的第二安全签名与所述第一安全签名相同时,将所述第四预加载固件写入所述处理器芯片的闪存模块。
本发明实施例的第四方面提供了一种预加载固件下载写入装置,包括:
授权信息匹配模块,用于接收电脑端发送的用户授权信息,并与预设授权信息进行匹配;若匹配结果为所述用户授权信息与所述预设授权信息相同,发送授权成功信息至所述电脑端,以使得所述电脑端根据所述授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块;所述电脑端读取第一预加载固件,并在所述第一预加载固件数据头部添加文件格式数据,得到第二预加载固件;根据所述移动终端的工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
第二加密模块,用于在所述第三预加载固件中,提取出不含所述第一安全签名的第四预加载固件;利用所述工作密钥,对第四预加载固件进行所述加密运算,得出第二安全签名;
签名对比模块,用于将所述第二安全签名与所述第一安全签名进行对比;
固件写入模块,用于若对比结果为所述第二安全签名与所述第一安全签名相同,将所述第四预加载固件写入所述处理器芯片的闪存模块。
本发明实施例与现有技术相比存在的有益效果是:通过对第二预加载固件添加加密运算后得出的第一安全签名,并在写入处理器芯片的闪存模块前,对接收提取得到的第四预加载固件进行相同的加密运算,对第一安全签名进行验证,在第一安全签名验证成功时才写入。此时,只有下载提取得到的第四预加载固件与电脑端发送的第二预加载固件完全一致时,才会正常进行预加载固件写入,保证了下载前后的预加载固件数据的一致性,防止了写入的预加载固件是被黑客恶意修改的预加载固件的情况发生,保证了移动终端的安全性。同时在下载时,对下载用户进行用户授权信息认证,只有在确认了用户授权信息正确无误时,才利用固件下载工具将预加载固件下载到移动终端,使得非授权用户无法下载预加载固件至移动终端,有效的防止了黑客控制移动终端进行预加载固件下载写入,保证了移动终端的安全性。通过对下载前后预加载固件数据一致性的检测,以及对下载时用户授权信息的验证,使得预加载固件的下载和写入都得到了有效的安全保障,提高了移动终端的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的预加载固件下载写入方法的实现流程图;
图2是本发明实施例二提供的预加载固件下载写入方法的实现流程图;
图3是本发明实施例三提供的预加载固件下载写入方法的实现流程图;
图4是本发明实施例四提供的预加载固件下载写入方法的实现流程图;
图5是本发明实施例五提供的预加载固件下载写入方法的实现流程图;
图6是本发明实施例六提供的预加载固件下载写入方法的实现流程图;
图7是本发明实施例七提供的预加载固件下载写入装置的结构示意图;
图8是本发明实施例八提供的预加载固件下载写入装置的结构示意图;
图9是本发明实施例九提供的预加载固件下载写入装置的交互图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定装置结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
需要说明的是,本发明的技术方案,可以应用在多种具有需要预加载固件加载引导装置运行的处理器芯片的移动终端之中。为了便于读者理解以及技术说明,本说明书中以采用MTK联发科公司提供的MTK芯片作为处理器,并运行安卓装置的移动终端为例进行说明,即本说明书中出现的移动终端,均是指采用MTK联发科公司提供的MTK芯片作为处理器,并运行安卓装置的智能终端设备,包括但不限于如安卓手机、安卓平板、安卓手表以及安卓POS机等,同时本说明书中的预加载固件则均是指Preloader固件。
图1示出了本发明实施例一提供的预加载固件下载写入方法的实现流程,详述如下:
S101,读取第一预加载固件,并在第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件。
现有技术中,通常采用flashtool下载工具或者fastboot下载工具,来对移动终端进行Preloader固件下载写入,其中flashtool下载工具是专用于官方预加载固件下载写入的工具,而fastboot下载工具一般用于非官方的Preloader固件的下载写入。
实际情况中,在对Preloader固件进行存储时,一般只会存储原始的Preloader固件,而移动终端MTK芯片中的启动程序,在进行Preloader固件加载时需要对Preloader固件文件的格式进行判断,即原始的Preloader固件数据头部,还需要具有一段用来描述其文件格式的数据,即移动终端实际加载的Preloader固件,由文件格式数据+原始的Preloader固件两部分组成。在使用fastboot下载工具下载写入Preloader固件时,fastboot下载工具会自动向原始的Preloader固件数据头部添加一段文件格式数据。
在本发明实施例中,由于后续需要为Preloader固件添加一段安全签名数据,即本发明实施例中下载写入的Preloader固件是非官方的Preloader固件,无法使用fastboot下载工具,而本发明实施例使用的fastboot下载工具又不会自动为Preloader固件添加文件格式数据,因此,本发明实施例S101中,需要为第一Preloader固件(即原始的Preloader固件)数据头部添加一段文件格式数据,以保证后续移动终端能正常加载Preloader固件。
作为本发明实施例的一种具体实现方式,由技术人员设计好一个专用的固件包签名工具,用户在进行Preloader固件下载前,可直接运行该固件包签名工具来对第一Preloader固件进行文件格式数据添加。
S102,读取移动终端的工作密钥,根据工作密钥对第二预加载固件进行加密运算,并将加密运算得出的第一安全签名写入第二预加载固件的数据尾部,得到第三预加载固件。
其中工作密钥是由移动终端生产厂家自定义的一组随机数据,一般以文本文件形式保存在移动终端,用以验证用户的操作权限,如安卓POS机中的工作密钥,本发明实施例中每台移动终端的工作密钥固定不变。由于S102是在电脑端完成的,在本发明实施例中,优选地,需要技术人员预先将移动终端对应的工作密钥存储在电脑端。
为了防止黑客对第二Preloader固件进行修改,造成移动终端出现安全隐患,在本发明实施例中,会使用工作密钥对第二Preloader固件进行加密,并生成对应的第一安全签名。为了使后续对第一安全签名验证结果更加可靠,本发明实施例中选取的加密算法应当具有唯一性,即根据同一工作密钥对相同的Preloader固件进行加密时,其得出的加密结果(即安全签名),应当相同且唯一,除此之外,在本发明实施例中,没有对加密算法进行限定,既可以是直接使用现有的一些加密算法,也可以是由技术人员自行研发的加密算法,具体有技术人员根据实际情况进行确定。
作为本发明实施例的一个优选实施方式,可由技术人员设计好一个专用的固件包签名工具,将S101文件格式数据添加与S102安全签名计算添加的操作,都通过该固件包签名工具完成。用户在使用时,只需运行该固件包签名工具并选取第一Preloader固件和工作密钥,即可直接得到第三Preloader固件。
S103,接收用户输入的用户授权信息,并将用户授权信息发送至至移动终端,以使移动终端将接收到的用户授权信息与预设授权信息进行匹配,并在用户授权信息与预设授权信息相同时,返回授权成功信息。
其中,用户授权信息包括公司名称、用户ID以及用户密码等信息,预设授权信息,即技术人员预先存储在移动终端中的用户授权信息。
由于现有的flashtool下载工具及fastboot下载工具,均不具备对用户身份或权限验证的功能,所有用户均可使用这些下载工具来对移动终端的Preloader固件进行下载和写入,这使得Preloader固件的安全性受到了极大的威胁,为了解决这个问题,本发明实施例中,在使用fastboot下载工具下载写入第三Preloader固件之前,还需要对用户进行授权信息验证。
作为本发明实施例的一种具体实现方式,电脑端在接收到用户输入的Preloader固件下载指令后,弹出用户授权信息输入框,并在接收到用户输入的用户授权信息后,通过fastboot下载工具将用户授权信息发送到移动终端。移动终端在接收到用户授权信息后,将其与预设授权信息进行匹配对比,在用户授权信息与预设授权信息完全相同时,进入固件下载模式,等待电脑端传入第三Preloader固件。若用户授权信息与预设授权信息不完全相同时,移动终端认定该用户为非授权用户,并通过fastboot下载工具返回授权信息错误提示及下载失败提示至电脑端。电脑端在接收到授权信息错误提示及下载失败提示后,弹出相应的提示框进行提示显示,以告知用户授权信息错误。
S104,若接收到移动终端返回的授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块,以使得移动终端在第三预加载固件,提取出不含第一安全签名的第四预加载固件,利用工作密钥,对第四预加载固件进行加密运算,并在加密运算得出的第二安全签名与第一安全签名相同时,将第四预加载固件写入处理器芯片的闪存模块。
在本发明实施例中,为了校验下载前后的Preloader固件是否被修改过,在获取到第三Preloader固件,需要提取出其中不含第一安全签名的第四Preloader固件,若下载前后的Preloader固件没有被人为或非人为的修改过,此时的第四Preloader固件因与S101中的第二Preloader固件完全相同。在第四Preloader固件因与S101中的第二Preloader固件完全相同基础上,由于本发明实施例采用的加密算法具有唯一性,S104中使用与S102相同的工作密钥以及相同的加密算法对第四Preloader固件进行加密时,获得的第二安全签名应当与第三Preloader固件中包含的第一安全签名完全相同。若得出的第二安全签名与第一安全签名不完全相同,则说明第四Preloader固件的数据内容被修改过。
本发明实施例中,在确定第二安全签名与第三Preloader固件中包含的第一安全签名完全相同时,第四Preloader固件未被人为或非人为的修改过,即该第四Preloader固件是安全的Preloader固件,此时直接将其写入移动终端的MTK芯片的闪存模块之中,并删除内存模块中暂存的所有数据,完成预加载固件下载写入。
本发明实施例中,若第二安全签名与第一安全签名不完全相同,则说明第四Preloader固件的数据内容被修改过,即第四Preloader固件具有安全隐患,为了保证移动终端的安全,此时不会将第四Preloader固件写入闪存模块,而是直接删除内存模块中暂存的所有数据。
图2示出了本发明实施例二提供的预加载固件下载写入方法的实现流程,详述如下:
S201,接收电脑端发送的用户授权信息,并与预设授权信息进行匹配;若匹配结果为用户授权信息与预设授权信息相同,发送授权成功信息至电脑端,以使得电脑端根据授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块;电脑端读取第一预加载固件,并在第一预加载固件数据头部添加文件格式数据,得到第二预加载固件;根据移动终端的工作密钥对第二预加载固件进行加密运算,并将加密运算得出的第一安全签名写入第二预加载固件的数据尾部,得到第三预加载固件;
S202,在第三预加载固件中,提取出不含第一安全签名的第四预加载固件;利用工作密钥,对第四预加载固件进行加密运算,得出第二安全签名;
S203,将第二安全签名与第一安全签名进行对比;
S204,若对比结果为第二安全签名与第一安全签名相同,将第四预加载固件写入处理器芯片的闪存模块。
作为本发明的一个优选实施例三,如图3所示,预加载固件下载写入方法,还包括:
S205,若对比结果为第二安全签名与第一安全签名不相同,判定第二预加载固件被修改,释放内存模块中的所有数据,并输出固件修改警告。
当第二安全签名与第一安全签名不完全相同时,即第二Preloader固件被修改过,此时若仍将第四Preloader固件写入内存模块,可能存在安全隐患,在本发明实施例中,此时会拒绝将第四Preloader固件写入内存模块,并直接删除内存模块中的所有数据,并向电脑端返回固件修改警告。作为本发明实施例的一种具体实现方式,电脑端在接收到固件修改警告,会弹出相应的固件修改警告界面,以告知用户Preloader固件在下载过程中出现了被修改的情况,为了保证移动终端的安全,移动终端拒绝了Preloader固件的写入,并提示用户重新下载Preloader固件。
作为加密运算的一个具体实现方式,作为本发明的实施例四,如图4所示,加密运算包括:
S401,对预加载固件进行哈希算法运算,得出固件哈希值。
本发明实施例中,为了增强对下载前后Preloader固件文件校验的可靠性,采用哈希算法+利用工作密钥对固件哈希值二次加密的方式,对Preloader固件进行加密运算。由于使用哈希算法进行文件校验在本技术领域属于常见的技术,本说明书中不予详述。
S402,利用工作密钥对固件哈希值进行加密,得到安全签名。
在得出固件哈希值之后,利用工作密钥对固件哈希值进行加密,得到安全签名。若下载后的Preloader固件相对下载前的Preloader固件发生了变化,通过两次加密运算后,得出的第二安全签名与第一安全签名,必定存在大量的数据差异,使得对对下载前后Preloader固件文件校验更加可靠。
作为S401的一个具体实现方式,作为本发明的实施例五,如图5所示,哈希算法包括SHA-256算法。
SHA安全散列算法,是美国国家安全局设计,美国国家标准与技术研究院发布的一系列密码散列函数。SHA-256算法是SHA算法的一种变体算法,主要提升了输出的范围以及变更了一些细微的设计。SHA-256算法接受的输入文档小于2的64次方位,会产生160位的报文摘要,具有强抗野蛮攻击的优点,即如果对文档A已经计算出了散列值H(A),那么很难找到一个文档B,使其散列值H(B)=H(A),这使得SHA-256算法十分适合进行文件校验。
作为S402的一个具体实现方式,作为本发明的实施例六,如图6所示,包括:
S4021,利用工作密钥对固件哈希值进行3DES加密,得到安全签名。3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称,是DES的一个更安全的变形,它以DES为基础模块,通过组合分组的方法设计出分组加密算法,相当于对每个数据块进行三次DES加密算法。使用工作密钥及3DES对固件哈希值进行加密,使得固件哈希值不易被黑客破解,增强了对下载前后Preloader固件文件校验的可靠性。
通过对第二Preloader固件进行SHA-256算法,采用3DES对SHA-256算法得出的固件哈希值进行加密运算,在第二Preloader固件数据尾部添加加密运算后得出的第一安全签名,并在写入MTK芯片的闪存模块前,对接收提取得到的第四Preloader固件进行相同的SHA-256算法及3DES加密运算,对第一安全签名进行验证,在安全签名验证成功时才写入。此时,只有下载提取得到的第四Preloader固件与电脑端发送的第二Preloader固件完全一致时,才会正常进行Preloader固件写入,保证了下载前后的Preloader固件数据的一致性,防止了写入的Preloader固件是被黑客恶意修改的Preloader固件的情况发生,保证了移动终端的安全性。同时在下载时,对下载用户进行用户授权信息认证,只有在确认了用户授权信息正确无误时,才利用fastboot下载工具将Preloader固件下载到移动终端,使得非授权用户无法下载Preloader固件至移动终端,有效的防止了黑客控制移动终端进行预加载固件下载写入,保证了移动终端的安全性。通过对下载前后Preloader固件数据一致性的检测,以及对下载时用户授权信息的验证,使得Preloader固件的下载和写入都得到了有效的安全保障,提高了移动终端的安全性。
此外,由于flashtool下载工具是DOS装置进行操作控制的,需要专业的人员进行代码控制才能进行Preloader固件的下载和写入,操作界面不够友好,而本发明实施例中使用的fastboot下载工具,可以在Windows等具有图形操作界面的装置中运行,具有对话框等多种操作交互方式,使得用户对Preloader固件的下载和写入操作变得更加简单方便。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例的方法,图6及图7示出了本发明实施例提供的预加载固件下载写入装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图7,预加载固件下载写入装置包括:
固件读取模块71,用于读取第一预加载固件,并在第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件。
第一加密模块72,用于读取移动终端的工作密钥,根据工作密钥对第二预加载固件进行加密运算,并将加密运算得出的第一安全签名写入第二预加载固件的数据尾部,得到第三预加载固件。
授权信息发送模块73,用于接收用户输入的用户授权信息,并将用户授权信息发送至至移动终端,以使移动终端将接收到的用户授权信息与预设授权信息进行匹配,并在用户授权信息与预设授权信息相同时,返回授权成功信息。
固件下载模块74,用于若接收到移动终端返回的授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块,以使得移动终端在第三预加载固件,提取出不含第一安全签名的第四预加载固件,利用工作密钥,对第四预加载固件进行加密运算,并在加密运算得出的第二安全签名与第一安全签名相同时,将第四预加载固件写入处理器芯片的闪存模块。
参照图8,预加载固件下载写入装置包括:
授权信息匹配模块81,用于接收电脑端发送的用户授权信息,并与预设授权信息进行匹配。若匹配结果为用户授权信息与预设授权信息相同,发送授权成功信息至电脑端,以使得电脑端根据授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块。电脑端读取第一预加载固件,并在第一预加载固件数据头部添加文件格式数据,得到第二预加载固件。根据移动终端的工作密钥对第二预加载固件进行加密运算,并将加密运算得出的第一安全签名写入第二预加载固件的数据尾部,得到第三预加载固件。
第二加密模块82,用于在第三预加载固件中,提取出不含第一安全签名的第四预加载固件。利用工作密钥,对第四预加载固件进行加密运算,得出第二安全签名。
签名对比模块83,用于将第二安全签名与第一安全签名进行对比。
固件写入模块84,用于若对比结果为第二安全签名与第一安全签名相同,将第四预加载固件写入处理器芯片的闪存模块。
进一步地,移动终端,还包括:
修改警告模块,用于若对比结果为第二安全签名与第一安全签名不相同,判定第二预加载固件被修改,释放内存模块中的所有数据,并输出固件修改警告。
进一步地,加密模块,包括:
哈希运算子模块,用于对预加载固件进行哈希算法运算,得出固件哈希值。
固件加密子模块,用于利用工作密钥对固件哈希值进行加密,得到安全签名。
进一步地利用工作密钥对固件哈希值进行加密,得到安全签名,包括:
利用工作密钥对固件哈希值进行3DES加密,得到安全签名。
作为本发明实施例九,如图9所示,是预加载固件下载写入装置的交互图。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种预加载固件下载写入方法,其特征在于,包括:
读取第一预加载固件,并在所述第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件;
读取移动终端的工作密钥,根据所述工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
接收用户输入的用户授权信息,并将所述用户授权信息发送至所述至所述移动终端,以使所述移动终端将接收到的所述用户授权信息与预设授权信息进行匹配,并在所述用户授权信息与所述预设授权信息相同时,返回授权成功信息;
若接收到所述移动终端返回的所述授权成功信息,通过固件下载工具发送第三预加载固件至所述移动终端中处理器芯片的内存模块,以使得所述移动终端在所述第三预加载固件,提取出不含所述第一安全签名的第四预加载固件,利用所述工作密钥,对所述第四预加载固件进行所述加密运算,并在加密运算得出的第二安全签名与所述第一安全签名相同时,将所述第四预加载固件写入所述处理器芯片的闪存模块。
2.一种预加载固件下载写入方法,其特征在于,包括:
接收电脑端发送的用户授权信息,并与预设授权信息进行匹配;若匹配结果为所述用户授权信息与所述预设授权信息相同,发送授权成功信息至所述电脑端,以使得所述电脑端根据所述授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块;所述电脑端读取第一预加载固件,并在所述第一预加载固件数据头部添加文件格式数据,得到第二预加载固件;根据所述移动终端的工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
在所述第三预加载固件中,提取出不含所述第一安全签名的第四预加载固件;利用所述工作密钥,对第四预加载固件进行所述加密运算,得出第二安全签名;
将所述第二安全签名与所述第一安全签名进行对比;
若对比结果为所述第二安全签名与所述第一安全签名相同,将所述第四预加载固件写入所述处理器芯片的闪存模块。
3.如权利要求1或2所述的预加载固件下载写入方法,其特征在于,所述将所述第二安全签名与所述第一安全签名进行对比,还包括:
若对比结果为所述第二安全签名与所述第一安全签名不相同,判定所述第二预加载固件被修改,释放所述内存模块中的所有数据,并输出固件修改警告。
4.如权利要求1或2所述的预加载固件下载写入方法,其特征在于,所述加密运算,包括:
对预加载固件进行哈希算法运算,得出固件哈希值;
利用所述工作密钥对所述固件哈希值进行加密,得到安全签名。
5.如权利要求4所述的预加载固件下载写入方法,其特征在于,所述利用所述工作密钥对所述固件哈希值进行加密,得到安全签名,包括:
利用所述工作密钥对所述固件哈希值进行3DES加密,得到安全签名。
6.一种预加载固件下载写入装置,其特征在于,包括:
固件读取模块,用于读取第一预加载固件,并在所述第一预加载固件的数据头部添加文件格式数据,得到第二预加载固件;
第一加密模块,用于读取移动终端的工作密钥,根据所述工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
授权信息发送模块,用于接收用户输入的用户授权信息,并将所述用户授权信息发送至所述至所述移动终端,以使所述移动终端将接收到的所述用户授权信息与预设授权信息进行匹配,并在所述用户授权信息与所述预设授权信息相同时,返回授权成功信息;
固件下载模块,用于若接收到所述移动终端返回的所述授权成功信息,通过固件下载工具发送第三预加载固件至所述移动终端中处理器芯片的内存模块,以使得所述移动终端在所述第三预加载固件,提取出不含所述第一安全签名的第四预加载固件,利用所述工作密钥,对所述第四预加载固件进行所述加密运算,并在加密运算得出的第二安全签名与所述第一安全签名相同时,将所述第四预加载固件写入所述处理器芯片的闪存模块。
7.一种预加载固件下载写入装置,其特征在于,包括:
授权信息匹配模块,用于接收电脑端发送的用户授权信息,并与预设授权信息进行匹配;若匹配结果为所述用户授权信息与所述预设授权信息相同,发送授权成功信息至所述电脑端,以使得所述电脑端根据所述授权成功信息,通过固件下载工具发送第三预加载固件至移动终端中处理器芯片的内存模块;所述电脑端读取第一预加载固件,并在所述第一预加载固件数据头部添加文件格式数据,得到第二预加载固件;根据所述移动终端的工作密钥对所述第二预加载固件进行加密运算,并将所述加密运算得出的第一安全签名写入所述第二预加载固件的数据尾部,得到第三预加载固件;
第二加密模块,用于在所述第三预加载固件中,提取出不含所述第一安全签名的第四预加载固件;利用所述工作密钥,对第四预加载固件进行所述加密运算,得出第二安全签名;
签名对比模块,用于将所述第二安全签名与所述第一安全签名进行对比;
固件写入模块,用于若对比结果为所述第二安全签名与所述第一安全签名相同,将所述第四预加载固件写入所述处理器芯片的闪存模块。
8.如权利要求6或7所述的预加载固件下载写入装置,其特征在于,所述移动终端,还包括:
修改警告模块,用于若对比结果为所述第二安全签名与所述第一安全签名不相同,判定所述第二预加载固件被修改,释放所述内存模块中的所有数据,并输出固件修改警告。
9.如权利要求8所述的预加载固件下载写入装置,其特征在于,加密模块,包括:
哈希运算子模块,用于对预加载固件进行哈希算法运算,得出固件哈希值;
固件加密子模块,用于利用所述工作密钥对所述固件哈希值进行加密,得到安全签名。
10.如权利要求8所述的预加载固件下载写入装置,其特征在于,所述利用所述工作密钥对所述固件哈希值进行加密,得到安全签名,包括:
利用所述工作密钥对所述固件哈希值进行3DES加密,得到安全签名。
CN201710326536.6A 2017-05-10 2017-05-10 预加载固件下载写入方法及装置 Active CN107273150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710326536.6A CN107273150B (zh) 2017-05-10 2017-05-10 预加载固件下载写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710326536.6A CN107273150B (zh) 2017-05-10 2017-05-10 预加载固件下载写入方法及装置

Publications (2)

Publication Number Publication Date
CN107273150A true CN107273150A (zh) 2017-10-20
CN107273150B CN107273150B (zh) 2020-10-02

Family

ID=60074081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710326536.6A Active CN107273150B (zh) 2017-05-10 2017-05-10 预加载固件下载写入方法及装置

Country Status (1)

Country Link
CN (1) CN107273150B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446815A (zh) * 2018-09-30 2019-03-08 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
CN109547796A (zh) * 2018-11-26 2019-03-29 晶晨半导体(上海)股份有限公司 一种视频编解码固件管理方法和系统
CN109598105A (zh) * 2018-12-03 2019-04-09 深圳忆联信息系统有限公司 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质
CN111695111A (zh) * 2020-06-15 2020-09-22 浙江中控技术股份有限公司 固件程序的安全启动方法及装置
CN114327657A (zh) * 2021-12-28 2022-04-12 福建新大陆支付技术有限公司 一种基于Fastboot的大镜像分割下载验签方法及其存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102509047A (zh) * 2011-11-09 2012-06-20 北京赛科世纪数码科技有限公司 校验机顶盒中程序代码的方法和系统
CN103166759A (zh) * 2011-12-15 2013-06-19 通用汽车环球科技运作有限责任公司 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置
CN103475661A (zh) * 2013-09-12 2013-12-25 深圳市文鼎创数据科技有限公司 认证程序的安全获取方法及系统
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN104010044A (zh) * 2014-06-12 2014-08-27 北京握奇数据系统有限公司 基于可信执行环境技术的应用受限安装方法、管理器和终端
CN104216748A (zh) * 2014-09-03 2014-12-17 腾讯科技(深圳)有限公司 应用程序安装方法、装置及系统
CN104539424A (zh) * 2014-12-18 2015-04-22 广东讯飞启明科技发展有限公司 一种防篡改的考生数据传输方法
CN105159707A (zh) * 2015-08-14 2015-12-16 飞天诚信科技股份有限公司 一种安全的金融终端的固件烧写方法及金融终端
CN105208046A (zh) * 2015-10-30 2015-12-30 中国民生银行股份有限公司 智能pos机双重安全认证方法及装置
CN105302554A (zh) * 2015-10-23 2016-02-03 深圳市创维电器科技有限公司 一种Android系统自动化程序构建方法及系统
US20160142212A1 (en) * 2014-11-14 2016-05-19 Intel Corporation Trusted platform module certification and attestation utilizing an anonymous key system
CN106059771A (zh) * 2016-05-06 2016-10-26 上海动联信息技术股份有限公司 一种智能pos机密钥管理系统及方法
US20160378970A1 (en) * 2015-06-24 2016-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Automatic discovery and installation of secure boot certificates

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102509047A (zh) * 2011-11-09 2012-06-20 北京赛科世纪数码科技有限公司 校验机顶盒中程序代码的方法和系统
CN103166759A (zh) * 2011-12-15 2013-06-19 通用汽车环球科技运作有限责任公司 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置
CN103475661A (zh) * 2013-09-12 2013-12-25 深圳市文鼎创数据科技有限公司 认证程序的安全获取方法及系统
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN104010044A (zh) * 2014-06-12 2014-08-27 北京握奇数据系统有限公司 基于可信执行环境技术的应用受限安装方法、管理器和终端
CN104216748A (zh) * 2014-09-03 2014-12-17 腾讯科技(深圳)有限公司 应用程序安装方法、装置及系统
US20160142212A1 (en) * 2014-11-14 2016-05-19 Intel Corporation Trusted platform module certification and attestation utilizing an anonymous key system
CN104539424A (zh) * 2014-12-18 2015-04-22 广东讯飞启明科技发展有限公司 一种防篡改的考生数据传输方法
US20160378970A1 (en) * 2015-06-24 2016-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Automatic discovery and installation of secure boot certificates
CN105159707A (zh) * 2015-08-14 2015-12-16 飞天诚信科技股份有限公司 一种安全的金融终端的固件烧写方法及金融终端
CN105302554A (zh) * 2015-10-23 2016-02-03 深圳市创维电器科技有限公司 一种Android系统自动化程序构建方法及系统
CN105208046A (zh) * 2015-10-30 2015-12-30 中国民生银行股份有限公司 智能pos机双重安全认证方法及装置
CN106059771A (zh) * 2016-05-06 2016-10-26 上海动联信息技术股份有限公司 一种智能pos机密钥管理系统及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446815A (zh) * 2018-09-30 2019-03-08 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
CN109547796A (zh) * 2018-11-26 2019-03-29 晶晨半导体(上海)股份有限公司 一种视频编解码固件管理方法和系统
CN109547796B (zh) * 2018-11-26 2021-03-09 晶晨半导体(上海)股份有限公司 一种视频编解码固件管理方法和系统
CN109598105A (zh) * 2018-12-03 2019-04-09 深圳忆联信息系统有限公司 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质
CN111695111A (zh) * 2020-06-15 2020-09-22 浙江中控技术股份有限公司 固件程序的安全启动方法及装置
CN114327657A (zh) * 2021-12-28 2022-04-12 福建新大陆支付技术有限公司 一种基于Fastboot的大镜像分割下载验签方法及其存储介质
CN114327657B (zh) * 2021-12-28 2023-06-16 福建新大陆支付技术有限公司 一种基于Fastboot的大镜像分割下载验签方法及其存储介质

Also Published As

Publication number Publication date
CN107273150B (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN107273150A (zh) 预加载固件下载写入方法及装置
CN101501642B (zh) 使用虚拟机启动的便携式大容量存储装置的方法
CN103580852B (zh) 安全元件以及初始化安全元件的方法和系统
CN102255917B (zh) 动态令牌的密钥更新及同步方法、系统及装置
CN109412812B (zh) 数据安全处理系统、方法、装置和存储介质
CN107004080A (zh) 环境感知安全令牌
CN115391749A (zh) 使用分布式散列表和区块链保护计算机软件的方法及系统
CN101562040B (zh) 高安全性移动存储器的数据处理方法
CN110688662A (zh) 一种敏感数据脱敏及逆脱敏方法、电子设备
CN111431707B (zh) 业务数据信息处理方法、装置、设备以及可读存储介质
CN108055133A (zh) 一种基于区块链技术的密钥安全签名方法
CN105683990A (zh) 用于保护动态库的方法和装置
CN113472720B (zh) 数字证书密钥处理方法、装置、终端设备及存储介质
CN112491843B (zh) 一种数据库多重认证方法、系统、终端及存储介质
CN106776904A (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN103888410B (zh) 应用身份验证方法及系统
CN108496323B (zh) 一种证书导入方法及终端
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
CN106682522A (zh) 一种指纹加密的装置及实现方法
CN108011719A (zh) 一种签名方法、装置及数字签名系统
CN107040520A (zh) 一种云计算数据共享系统及方法
CN104715208A (zh) 一种基于tpm芯片的平台完整性校验方法
CN108133147A (zh) 可执行代码的保护方法、设备及可读存储介质
CN103370713A (zh) 用于编程移动终端设备芯片的方法
CN108650214B (zh) 动态页面加密防越权方法及装置

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
GR01 Patent grant
GR01 Patent grant