CN110378104A - 一种升级防纂改的方法 - Google Patents

一种升级防纂改的方法 Download PDF

Info

Publication number
CN110378104A
CN110378104A CN201810336215.9A CN201810336215A CN110378104A CN 110378104 A CN110378104 A CN 110378104A CN 201810336215 A CN201810336215 A CN 201810336215A CN 110378104 A CN110378104 A CN 110378104A
Authority
CN
China
Prior art keywords
cryptographic hash
data
upgrading
file
upgraded
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
Application number
CN201810336215.9A
Other languages
English (en)
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.)
Beijing Xin Sheng Network Technology Co Ltd
Original Assignee
Beijing Xin Sheng Network 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 Beijing Xin Sheng Network Technology Co Ltd filed Critical Beijing Xin Sheng Network Technology Co Ltd
Priority to CN201810336215.9A priority Critical patent/CN110378104A/zh
Publication of CN110378104A publication Critical patent/CN110378104A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本发明公开了一种升级防纂改的方法。本发明主要包括软件升级包的制作,以及软件升级包的验证两大模块。软件升级包的制作主要负责对升级数据进行签名和打包;软件升级包的验证主要完成对待升级数据的完整性进行验证。本发明利用非对称加密技术将文件哈希值加密数据,与待升级数据同时打包到升级包中,可以进行离线对数据来源进行验证;这种方式适合于任何数据类型(包括可执行文件和非可执行文件,即数据文件)。

Description

一种升级防纂改的方法
技术领域
本发明涉及的是一种防止软件升级包被中间人篡改的方法及系统,具体涉及一种升级防纂改的方法。
背景技术
在线升级是指应用程序在初次部署之后,应用程序自身通过直接网络访问的方式下载更新版本的数据文件(包括应用程序文件、应用程序扩展文件、配置数据文件等),然后对本地进行替换,完成应用程序版本的升级。
在通过网络下载的方式更新应用程序会面临被攻击的可能:例如通过域名劫持将下载网址的域名解析到恶意站点,同时将包含恶意代码的程序伪装成待升级程序,利用在线升级流程将木马植入应用程序运行环境;或者通过中间人攻击的方式,伪装成中间人,提供伪造的升级负载,达到入侵系统的目的。
目前主流的应用程序升级方案中,通过同时传输升级文件的数据以及文件数据的哈希值,来确保文件传输过程中的完整性问题。通过给可执行文件加上数字签名的方式,来保证可执行文件的来源合法性问题。
对于通过文件数据的哈希值来确保文件的完整性的技术,该方案需要在线获取可以信赖的正确哈希值,然后与下载文件的哈希值进行比对,这种方案的缺点是:第一,需要在线访问可信的哈希值,增加了被攻击的可能;第二,无法支持离线进行升级。
对于数字签名的方式确保文件可靠来源的方案,目前只适用于可执行文件,不适用于数据文件,无法对升级过程中的数据文件提供防篡改的功能。
针对这些缺点,本发明的主要目的是解决升级过程中,从网络下载的文件的可信性问题:即文件来源合法性信息全部打包到升级数据中,而且适用于任何类型的文件(包括可执行文件和非可执行文件,即数据文件)。
综上所述,本发明设计了一种升级防纂改的方法。
发明内容
针对现有技术上存在的不足,本发明目的是在于提供一种升级防纂改的方法,防止在线升级数据被篡改,解决应用程序升级过程中受到中间人攻击问题。
为了实现上述目的,本发明是通过如下的技术方案来实现:一种升级防纂改的方法,包括升级数据包的制作、升级数据包的验证两个部分;
所述的升级数据包的制作是指在准备进行升级之前,制作用于升级的数据包,包括以下步骤:1、计算待升级数据的哈希值;2、利用非对称加密方式,使用私钥对数据的哈希值进行加密;3、将加密哈希值插入原始文件。
所述的步骤1中的计算待升级数据的哈希值:待升级数据是指在线升级的过程中,需要在客户端已安装的老版本程序的基础上,进行替换的文件或者新增加的文件。
计算待升级数据的哈希值时,选用常用的文本摘要算法,例如MD5或者SHA-256等。计算公式如下:
待升级数据哈希值=Hash(待升级数据);
所述的步骤2非对称加密的算法可以选用常用的RSA-2048/4096等。使用私钥对步骤1计算出的哈希值进行加密处理,得到加密的哈希值。计算公式如下:
加密哈希值=加密RSA私钥(待升级数据哈希值);
所述的步骤3的加密哈希值可以插入文件的头部,也可以插入文件的尾部,或者文件固定偏移量的位置,形成一个新的文件。
所述的升级数据包的验证包括以下步骤:1、从网络下载应用升级包文件;2、从升级包中分离原始数据和加密的哈希值;3、计算原始数据的哈希值;4、对加密哈希值进行解密;验证哈希值的正确性。
所述的步骤2使用与升级包制作方法步骤3相反的过程,将原始数据和加密哈希值进行分离,分别得到待升级的原始数据,以及使用私钥加密的数据哈希值。
所述的步骤3使用与升级包制作方法步骤1相同的方法,计算原始数据的哈希值。
计算公式如下:
原始文件哈希值=Hash(原始文件数据)。
所述的步骤4使用公钥对加密过的哈希值进行解密,得到期望哈希值。
计算公式如下:
解密哈希值=解密RSA公钥(加密哈希值)
所述的步骤5比对步骤3计算的”原始文件哈希值”和步骤4计算的“解密哈希值”;如果两者相等,说明升级数据包中的数据没有被篡改,可以进行正常的应用升级流程;如果不相等,说明数据被篡改,需要丢弃该升级数据包,同时退出正常升级流程。
本发明具有以下有益效果:
1、利用非对称加密技术将文件哈希值加密数据,与待升级数据同时打包到升级包中,可以进行离线对数据来源进行验证;
2、这种方式适合于任何数据类型(包括可执行文件和非可执行文件,即数据文件)。
附图说明
下面结合附图和具体实施方式来详细说明本发明;
图1为本发明的升级数据包的制作流程图;
图2为本发明的升级数据包的验证流程图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
参照图1-图2,本具体实施方式采用以下技术方案:主要包括升级数据包的制作,以及升级数据包的验证两个部分。
升级数据包的制作是指在准备进行升级之前,制作用于升级的数据包。主要的流程如下:
第一步、计算待升级数据的哈希值
待升级数据是指在线升级的过程中,需要在客户端已安装的老版本程序的基础上,进行替换的文件或者新增加的文件。本发明对于待升级数据的格式没有限制,待升级数据可以是可执行文件(例如Windows系统中的.exe文件,或者Linux系统中的ELF文件等),也可以是文本文件(例如.txt文件),或者任意其他格式的数据文件。
计算待升级数据的哈希值时,选用常用的文本摘要算法,例如MD5或者SHA-256等。计算公式如下:
待升级数据哈希值=Hash(待升级数据)
第二步、利用非对称加密方式,使用私钥对数据的哈希值进行加密
非对称加密的算法可以选用常用的RSA-2048/4096等。使用私钥对第一步计算出的哈希值进行加密处理,得到加密的哈希值。计算公式如下:
加密哈希值=加密RSA私钥(待升级数据哈希值)
三、将加密哈希值插入原始文件
加密哈希值可以插入文件的头部,也可以插入文件的尾部,或者文件固定偏移量的位置,形成一个新的文件。
软件升级包的验证主要完成对待升级数据的完整性进行验证,升级数据包的验证流程如下:
一、从网络下载应用升级包文件
二、从升级包中分离原始数据和加密的哈希值
使用与升级包制作方法第三步相反的过程,将原始数据和加密哈希值进行分离,分别得到待升级的原始数据,以及使用私钥加密的数据哈希值。
例如,如果加密哈希值是存放在文件的头部,则从文件头部去除固定长度的加密哈希值,得到加密哈希值和原始文件两个部分。
三、计算原始数据的哈希值
使用与升级包制作方法第一步相同的方法,计算原始数据的哈希值。
计算公式如下:
原始文件哈希值=Hash(原始文件数据)
四、对加密哈希值进行解密
使用公钥对加密过的哈希值进行解密,得到期望哈希值。
计算公式如下:
解密哈希值=解密RSA公钥(加密哈希值)
五、验证哈希值的正确性
比对第三步计算的”原始文件哈希值”和第四步计算的“解密哈希值”。如果两者相等,说明升级数据包中的数据没有被篡改,可以进行正常的应用升级流程。如果不相等,说明数据被篡改,需要丢弃该升级数据包,同时退出正常升级流程。
本具体实施方式在制作升级包的阶段,通过非对称加密技术将数据内容的哈希值进行加密,形成数据来源可靠性验证的依据;在升级的阶段,对网络下载的升级数据包进行数据和验证信息分离,通过比对解密哈希值与原始数据的哈希值,来判断升级数据是否被篡改。
本具体实施方式已经进过实验、模拟阶段,已经正在使用阶段。在客户那里反应良好,能够有效减少应用程序升级过程中被攻击的安全事件。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (9)

1.一种升级防纂改的方法,其特征在于,包括升级数据包的制作、升级数据包的验证两个部分;
所述的升级数据包的制作是指在准备进行升级之前,制作用于升级的数据包,包括以下步骤:1、计算待升级数据的哈希值;2、利用非对称加密方式,使用私钥对数据的哈希值进行加密;3、将加密哈希值插入原始文件。
2.根据权利要求1所述的一种升级防纂改的方法,其特征在于,所述的步骤1中的计算待升级数据的哈希值:待升级数据是指在线升级的过程中,需要在客户端已安装的老版本程序的基础上,进行替换的文件或者新增加的文件;
计算公式如下:
待升级数据哈希值=Hash。
3.根据权利要求1所述的一种升级防纂改的方法,其特征在于,所述的步骤2使用私钥对步骤1计算出的哈希值进行加密处理,得到加密的哈希值;计算公式如下:
加密哈希值=加密RSA私钥。
4.根据权利要求1所述的一种升级防纂改的方法,其特征在于,所述的步骤3的加密哈希值插入文件的头部、尾部或者文件固定偏移量的位置,形成一个新的文件。
5.根据权利要求1所述的一种升级防纂改的方法,其特征在于,所述的升级数据包的验证包括以下步骤:1、从网络下载应用升级包文件;2、从升级包中分离原始数据和加密的哈希值;3、计算原始数据的哈希值;4、对加密哈希值进行解密;验证哈希值的正确性。
6.根据权利要求5所述的一种升级防纂改的方法,其特征在于,所述的步骤2使用与升级包制作方法步骤3相反的过程,将原始数据和加密哈希值进行分离,分别得到待升级的原始数据,以及使用私钥加密的数据哈希值。
7.根据权利要求5所述的一种升级防纂改的方法,其特征在于,所述的步骤3使用与升级包制作方法步骤1相同的方法,计算原始数据的哈希值;
计算公式如下:
原始文件哈希值=Hash。
8.根据权利要求5所述的一种升级防纂改的方法,其特征在于,所述的步骤4使用公钥对加密过的哈希值进行解密,得到期望哈希值;
计算公式如下:
解密哈希值=解密RSA公钥。
9.根据权利要求5所述的一种升级防纂改的方法,其特征在于,所述的步骤5比对步骤3计算的“原始文件哈希值”和步骤4计算的“解密哈希值”;如果两者相等,说明升级数据包中的数据没有被篡改,可以进行正常的应用升级流程;如果不相等,说明数据被篡改,需要丢弃该升级数据包,同时退出正常升级流程。
CN201810336215.9A 2018-04-16 2018-04-16 一种升级防纂改的方法 Pending CN110378104A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810336215.9A CN110378104A (zh) 2018-04-16 2018-04-16 一种升级防纂改的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810336215.9A CN110378104A (zh) 2018-04-16 2018-04-16 一种升级防纂改的方法

Publications (1)

Publication Number Publication Date
CN110378104A true CN110378104A (zh) 2019-10-25

Family

ID=68243043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810336215.9A Pending CN110378104A (zh) 2018-04-16 2018-04-16 一种升级防纂改的方法

Country Status (1)

Country Link
CN (1) CN110378104A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026419A (zh) * 2019-11-08 2020-04-17 深圳市有方科技股份有限公司 一种单片机的应用程序升级方法、装置及系统
CN111240709A (zh) * 2019-12-26 2020-06-05 深圳市优博讯科技股份有限公司 一种基于android系统的POS设备的固件升级方法及系统
CN111669382A (zh) * 2020-05-28 2020-09-15 北京瑞华赢科技发展有限公司 适用于情报板物联网路侧单元的加密方法及系统
CN112507328A (zh) * 2021-01-29 2021-03-16 统信软件技术有限公司 一种文件签名方法、计算设备及存储介质
CN112612499A (zh) * 2020-12-31 2021-04-06 京东数科海益信息科技有限公司 应用程序升级方法、装置、电子设备及存储介质
CN113407213A (zh) * 2021-06-21 2021-09-17 平安银行股份有限公司 资源包更新方法、装置、设备及存储介质
CN113849212A (zh) * 2021-09-30 2021-12-28 蜂巢能源科技有限公司 一种软件升级控制方法、装置及电子设备
CN114301774A (zh) * 2021-12-30 2022-04-08 北京天融信网络安全技术有限公司 设备配置方法、系统、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214112A (zh) * 2011-06-03 2011-10-12 无锡商埃曲信息科技有限公司 一种机顶盒升级方法和系统
CN103825925A (zh) * 2012-11-19 2014-05-28 腾讯科技(深圳)有限公司 应用程序升级方法、系统及其客户端
CN103946856A (zh) * 2013-09-30 2014-07-23 华为技术有限公司 加解密处理方法、装置和设备
CN105491159A (zh) * 2016-01-15 2016-04-13 青岛海尔智能家电科技有限公司 一种固件升级包下发方法、获取方法及装置
CN108304722A (zh) * 2017-12-21 2018-07-20 广州小鹏汽车科技有限公司 一种软件安装包及其生成方法、升级方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214112A (zh) * 2011-06-03 2011-10-12 无锡商埃曲信息科技有限公司 一种机顶盒升级方法和系统
CN103825925A (zh) * 2012-11-19 2014-05-28 腾讯科技(深圳)有限公司 应用程序升级方法、系统及其客户端
CN103946856A (zh) * 2013-09-30 2014-07-23 华为技术有限公司 加解密处理方法、装置和设备
CN105491159A (zh) * 2016-01-15 2016-04-13 青岛海尔智能家电科技有限公司 一种固件升级包下发方法、获取方法及装置
CN108304722A (zh) * 2017-12-21 2018-07-20 广州小鹏汽车科技有限公司 一种软件安装包及其生成方法、升级方法和系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026419A (zh) * 2019-11-08 2020-04-17 深圳市有方科技股份有限公司 一种单片机的应用程序升级方法、装置及系统
CN111240709A (zh) * 2019-12-26 2020-06-05 深圳市优博讯科技股份有限公司 一种基于android系统的POS设备的固件升级方法及系统
CN111669382A (zh) * 2020-05-28 2020-09-15 北京瑞华赢科技发展有限公司 适用于情报板物联网路侧单元的加密方法及系统
CN112612499A (zh) * 2020-12-31 2021-04-06 京东数科海益信息科技有限公司 应用程序升级方法、装置、电子设备及存储介质
CN112507328A (zh) * 2021-01-29 2021-03-16 统信软件技术有限公司 一种文件签名方法、计算设备及存储介质
WO2022160733A1 (zh) * 2021-01-29 2022-08-04 统信软件技术有限公司 一种文件签名方法、计算设备及存储介质
CN113407213A (zh) * 2021-06-21 2021-09-17 平安银行股份有限公司 资源包更新方法、装置、设备及存储介质
CN113849212A (zh) * 2021-09-30 2021-12-28 蜂巢能源科技有限公司 一种软件升级控制方法、装置及电子设备
CN114301774A (zh) * 2021-12-30 2022-04-08 北京天融信网络安全技术有限公司 设备配置方法、系统、装置、电子设备及存储介质
CN114301774B (zh) * 2021-12-30 2024-03-12 北京天融信网络安全技术有限公司 设备配置方法、系统、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110378104A (zh) 一种升级防纂改的方法
US20210124820A1 (en) Application program integrity verification method and network device
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
US8364965B2 (en) Optimized integrity verification procedures
EP3026558A1 (en) Method and device for providing verifying application integrity
EP3026557A1 (en) Method and device for providing verifying application integrity
EP3026560A1 (en) Method and device for providing verifying application integrity
CN110597538A (zh) 一种基于ota升级系统的软件升级方法和ota升级系统
CN107423626B (zh) 一种基于连续Hash值的BIOS更新信任链的方法
CN110795126A (zh) 一种固件安全升级系统
CN104680061A (zh) 一种Android环境下应用程序启动中代码签名验证的方法和系统
JP6387908B2 (ja) 認証システム
EP3026559A1 (en) Method and device for providing verifying application integrity
CN107172100A (zh) 一种本地安全更新bios镜像的方法及装置
CN109670289A (zh) 一种识别后台服务器合法性的方法及系统
CN108923910A (zh) 一种移动应用apk防篡改的方法
CN111953477A (zh) 终端设备及其标识令牌的生成方法和客户端的交互方法
CN108242997B (zh) 安全通信的方法与设备
CN111967019A (zh) 一种基于tee物联网安全启动实现方法
CN111625871A (zh) 一种保证虚拟机镜像完整性的方法、系统及装置
JP2005244313A (ja) プログラム配信システムおよび車載ゲートウェイ装置
CN114297679B (zh) 一种镜像加密传输与升级的方法
CN117556430B (zh) 一种安全启动方法、装置、设备及存储介质
CN115455453A (zh) 一种文件检测方法、装置、设备及存储介质
CN116070219A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191025