CN101425114B - 软件升级包封装方法以及软件升级方法 - Google Patents

软件升级包封装方法以及软件升级方法 Download PDF

Info

Publication number
CN101425114B
CN101425114B CN2008103062023A CN200810306202A CN101425114B CN 101425114 B CN101425114 B CN 101425114B CN 2008103062023 A CN2008103062023 A CN 2008103062023A CN 200810306202 A CN200810306202 A CN 200810306202A CN 101425114 B CN101425114 B CN 101425114B
Authority
CN
China
Prior art keywords
software
certification authority
digital
digital certificate
terminal device
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.)
Expired - Fee Related
Application number
CN2008103062023A
Other languages
English (en)
Other versions
CN101425114A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN2008103062023A priority Critical patent/CN101425114B/zh
Publication of CN101425114A publication Critical patent/CN101425114A/zh
Application granted granted Critical
Publication of CN101425114B publication Critical patent/CN101425114B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及软件的安全升级技术,提供一种保证升级软件合法性、完整性的软件升级包封装方法以及软件升级方法。本发明在终端设备中预置可信任的认证机构的数字证书或者利用服务器来确认可信任的认证机构;认证机构对软件分别进行数字签名,并将原始的明文软件和所有的数字签名、数字证书一起发送给终端设备;终端设备验证所有的数字证书是否合法,并判断软件的升级必须要哪几个认证机构共同进行,如果条件都成立,则验证所有的数字签名,验证完成后,进行软件升级。本发明通过各认证机构的数字证书验证软件升级包的合法性,通过各认证机构的数字签名验证软件升级包的完整性,经过多方参与的对软件进行共同签名,保证了软件的安全升级。

Description

软件升级包封装方法以及软件升级方法
技术领域
本发明涉及软件的安全升级技术。
背景技术
作为一种特殊的产品,与纯的硬件相比,软件具有明显的特点:硬件产品如果出了问题或者功能不完善,可能需要进行修理、增加模块甚至全部更换,软件作为一个依附于硬件平台的产品,如果出了类似问题则只需要进行简单的升级即可以解决。软件由于系统的复杂性、设计的不完善、增加功能或者开发人员的疏忽等,需要更新的可能则更大.比如,微软的操作系统不停的发现BUG,一个XP的操作系统到目前为止,可能已经有了几百甚至上千个补丁。甚至,有的厂家可能为了赶进度、抢占市场,将软件功能并未全部完善的产品发布出去,然后通过升级的方式为用户增加新的功能。可见,升级是软件非常平常的操作。
软件的升级可以分为两类:(1)软件版本升级;(2)原始版本软件功能完善,如软件补丁或者改变、增加功能或者模块。软件的版本升级指的是新的软件和原始软件的功能等发生了非常显现或者重大的变化,而软件功能的完善则是在原有软件的基础上,由于某种安全或者不稳定等原因,增加或者改变原有的部分功能模块,软件的功能不发生重大的变化。比如对于常用杀毒软件,病毒库的升级就是后一重情况,而杀毒软件本身的升级则是第一类。
在PC机上,最常见的升级方式就是到某个网站去下载软件的升级程序,下载或者购买软件的高级版本;也可以由软件通过网络,自动到相应的网站下载升级。
而对于数码设备、数字电视、数字电视机顶盒、IPTV机顶盒、手机等软件的升级,则没有这么简单。这些设备的软件升级则比较复杂。比如,对于某些数码播放设备,软件的升级需要用户到指定维修商去升级或者到相应网站下载相关程序,然后使用数据线连接,使用专用软件进行升级操作。对于IPTV终端,由于IPTV本身支持双向,并向某个网站发起服务,因此可以由终端自身完成升级操作。而对于数字电视和数字电视机顶盒,由于这些终端主要使用在广播网络中,程序的升级一般只有专业人员手动升级,或者利用数字电视广播信道,采用空中升级的方式进行升级,即广播服务器前端将要升级的软件封装为与数字电视节目类似的码流,并作好标记,并通过数据播出服务器向全广播网络播出,并通过条件接收系统等通知机顶盒到指定的频点过滤取出相关码流并还原为升级文件,然后进行机顶盒软件升级。
不管采用什么方式获得升级文件然后再怎么进行升级,以上升级方式最大的缺点就是存在安全性问题。对于一般的软件而言,终端用户无法知道所获得的软件是否就是软件发行商提供的软件,这些软件有没有感染病毒、被修改或者被添加了间谍模块,这些对用户的系统安全造成了极大的威胁。比如目前常用的Winnap以及暴风影音的音视频播放软件,被绑了很多的广告插件。Winnap以及暴风影音等,一般都是基于开源的程序,程序本身免费,但是在网络上,一般都被广告商采用软件打包的方式(比如安装程序制作工具),与广告或者其它软件作成了一个软件升级包。由于用户无法确定软件是否只有自己想安装的部分,是否是自己需要安装的部分,因此用户一旦安装,将在自己的电脑上安装许多的间谍软件和广告软件,并且很多没有办法下载,给用户系统的安全性、稳定性、系统的性能造成很大危害,而这些问题目前的杀毒软件并不能有效解决。
对于涉及到安全的软件,比如网上银行,客户端的软件除了软件开发商本身要保证本软件是自己发行的原始软件外,银行还必须保证这个软件是自己认证过的软件,开发商没有作手脚,以保证用户数据的安全。在IPTV和数字电视等涉及到收费营运的领域,也需要软件开发商和营运商共同保证软件的合法性、有效性和完整性,以有效保护用户的安全、保证营运商的安全。
目前,现有的软件升级过程,一般是采用直接升级的方式,特别是在机顶盒等数码产品上,在升级软件进行封装时根本没有经过签名,没有考虑到软件的完整性,也没有考虑多家对软件提供认证的问题。本发明将数字签名技术引入软件的安全升级过程,有效保证了软件的安全升级。
发明内容
本发明所要解决的技术问题是,提供一种保证升级软件合法性、完整性的软件升级包封装方法以及软件升级方法。
本发明为解决上述技术问题所才的技术方案是,软件升级包封装方法,包括以下步骤:
a、软件升级包发行商确定需要对升级软件包进行验证的多个认证机构;
b、升级软件明文经哈希运算后得到的信息摘要经多个认证机构的私钥分别进行加密,得到各认证机构的数字签名;
c、软件升级包发行商将软件明文、各认证机构的数字签名和各认证机构的数字证书重新组合为软件升级包发送至终端设备。
软件升级方法,包括以下步骤:
a、确定需要对升级软件包进行验证的多个认证机构;
b、终端设备接收到软件升级包进行分解,分解为软件明文、各认证机构的数字签名、各认证机构的数字证书;
c、终端设备验证各认证机构的数字证书是否全部合法,如是,进入步骤d;如否,不执行升级程序;
e、终端设备采用各认证机构的公钥对数字签名进行验证,判断数字签名是否全部合法,如是执行升级程序;如否,不执行升级程序。
所述认证机构包括软件升级包发行商、软件开发商、服务运营商、终端设备生产商。
采用了本发明的软件升级包封装方法以及对应的升级方法,一旦添加了第三方的东西,则签名验证无法通过,可以立即发现该程序不是原始程序。数字签名的基础就是杂凑算法,也就是对整个程序进行摘要运算,一旦程序被修改,则修改后的程序再次取杂凑运算,得到的值和签名时的值不相同。
本发明的有益效果是,通过各认证机构的数字证书验证软件升级包的合法性,通过各认证机构的数字签名验证软件升级包的完整性,经过多方参与的对软件进行共同签名,保证了软件的安全升级。
具体实施方式
本发明的实现主要分为以下3个部分:
(1)在终端设备中预置可信任的认证机构的数字证书或者利用服务器来确认可信任的认证机构;
(2)认证机构(包括软件发行商或者多个第三方组织)对软件分别进行数字签名,并将原始的明文软件和所有的数字签名、数字证书一起发送给终端设备;
(3)终端设备验证所有的数字证书是否合法,并判断软件的升级必须要哪几个认证机构共同进行,如果条件都成立,则验证所有的数字签名,验证完成后,进行软件升级。
抛开软件升级终端设备的具体形态,根据软件升级是否能够或者支持第三方参与,可以将终端设备升级分为两类:独立进行软件升级和需要第三方权威机构参与的软件升级。这两种方式各有特点,独立进行软件升级的方式操作简单,在线或者离线均可以进行软件升级,在数字电视广播中则只能采用该方式,该方式的缺点是信任的认证机构以及升级规则必须事先确定,另外需要第三方权威机构进行的升级,则非常灵活,升级规则和信任的签名机构都可以随时灵活更新,缺点是终端必须具备双向网络通信功能。不管是哪类升级方式,安全升级的原理相同,不同的仅仅是升级程序获取的方式和数字证书合法性验证的途径而已。
本方案定义的软件升级包封装过程如下:
(1)升级包发行商将要发布的信息软件包经过Hash运算后,得到一个软件信息摘要MD,MD=Hash(软件包)。升级包发行商可以是软件开发商,也可以是营运商;
(2)升级包发行商i用自己的私钥对数据摘要MD进行加密,得到升级包发行商i的数字签名。(在下面的软件安全升级的过程中,用发行商i的公钥对数字签名进行解密,再比较明文得到的摘要,通过判断是否相同来判断合法性;
(3)判断发布此升级软件必须签名的认证机构(认证机构可包括软件升级包发行商、软件开发商、服务运营商、终端设备生产商等)是否已经全部进行了签名,如果没有完成,则继续其它认证机构对软件信息摘要MD的数字签名过程,如果完成,则升级包发行商i将软件明文、数字签名和自己的数字证书,重新组合为一个新的软件包。
在很多情况下,软件涉及到多方的利益,软件的更改、变动必须得到多方的共同认可才可以进行正式发布,比如,数字电视营运商要对数字电视终端用户进行收费,如果不进行软件升级包合法性的控制,则可能在终端的收费被回避,导致营运商损失经济利益,因此营运商要求机顶盒生厂商或者数字电视生产厂商发布的软件,必须要经过软件开发商和营运商的共同确认,才可以进行升级操作。
软件安全升级的过程与封装的过程互为一个逆过程:
(1)终端设备将接收到的软件升级包进行分解,将其分解为软件包、数字签名和数字证书;
(2)升级终端首先验证数字证书是否在信任证书列表中,如果是,则继续进行一步,否则,重新执行第一步;对于数字证书是否可是可信任证书,还可以通过互联网,到指定第三方权威机构验证,也可以通过权威机构的多极CA认证机制进行验证。一般采取在生产终端设备时,将信任证书列表全部存储在终端设备中,形成信任证书列表的方式进行。信任的模型除了支持直接的证书,还支持基于证书的多级信任机制,具体参照PKI定义的方法
(3)如果成功证书验证完毕,则执行下一步,否则继续对(1)步分解后的软件包继续进行步骤(2);
(4)验证(1)步分解的软件包以及软件包的数字签名是否合法,如是,则将软件包输出;否则验证失败,退出,不进行软件升级;
(5)判断所软件的签名是否已经全部完成,如果是,则进行下一步,否则,继续执行(1);
(6)判断软件升级包是否满足升级的要求,如果满足升级的要求,则执行下一步,否则软件验证失败退出,不进行软件的升级。所谓满足升级要求是指:规定的所有数字签名的验证已经全部通过,比如,数字电视的升级要求条件接收系统厂商、机顶盒终端厂商、营运商全部对软件进行认证签名,则终端进行软件升级时必须验证营运商、终端厂商、条件接收系统厂商的全部数字签名,任何一个没有数字签名或者任何一个数字签名没有通过,均视为数字签名验证失败,不可执行升级程序;
(7)执行软件升级。

Claims (4)

1.软件升级包封装方法,其特征在于,包括以下步骤:
a、软件升级包发行商确定需要对升级软件包进行验证的多个认证机构;
b、升级软件明文经哈希运算后得到的信息摘要经多个认证机构的私钥分别进行加密,得到各认证机构的数字签名;
c、软件升级包发行商将软件明文、各认证机构的数字签名和各认证机构的数字证书重新组合为软件升级包发送至终端设备。
所述认证机构包括软件升级包发行商、软件开发商、服务运营商、终端设备生产商。
2.软件升级方法,其特征在于,包括以下步骤:
a、确定需要对升级软件包进行验证的多个认证机构;
b、终端设备接收到软件升级包进行分解,分解为软件明文、各认证机构的数字签名、各认证机构的数字证书;
c、终端设备验证各认证机构的数字证书是否全部合法,如是,进入步骤d;如否,不执行升级程序;
d、终端设备采用各认证机构的公钥对数字签名进行验证,判断数字签名是否全部合法,如是执行升级程序;如否,不执行升级程序。
3.如权利要求2所述软件升级方法,其特征在于,步骤a中,终端设备获取各认证机构的数字证书,并根据各认证机构的数字证书建立信任证书列表;
步骤c中,终端设备通过查找本地的信任证书列表,判断各认证机构的数字证书是否都在信任证书列表中,如是,各认证机构的数字证书全部合法;否则,不合法;
所述认证机构包括软件升级包发行商、软件开发商、服务运营商、终端设备生产商。
4.如权利要求2所述软件升级方法,其特征在于,步骤c中,终端设备将各认证机构的数字证书发送至指定的第三方权威机构进行验证,判断各认证机构的数字证书是否均验证通过,如是,各认证机构的数字证书全部合法;否则,不合法。
CN2008103062023A 2008-12-12 2008-12-12 软件升级包封装方法以及软件升级方法 Expired - Fee Related CN101425114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008103062023A CN101425114B (zh) 2008-12-12 2008-12-12 软件升级包封装方法以及软件升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008103062023A CN101425114B (zh) 2008-12-12 2008-12-12 软件升级包封装方法以及软件升级方法

Publications (2)

Publication Number Publication Date
CN101425114A CN101425114A (zh) 2009-05-06
CN101425114B true CN101425114B (zh) 2010-08-25

Family

ID=40615725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008103062023A Expired - Fee Related CN101425114B (zh) 2008-12-12 2008-12-12 软件升级包封装方法以及软件升级方法

Country Status (1)

Country Link
CN (1) CN101425114B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111667A (zh) * 2009-12-25 2011-06-29 康佳集团股份有限公司 一种机顶盒的升级方法和该机顶盒
CN101827094B (zh) * 2010-04-01 2014-03-19 北京数码视讯科技股份有限公司 数字证书的下发方法、装置及系统
CN101984691A (zh) * 2010-10-25 2011-03-09 东莞宇龙通信科技有限公司 系统内置软件的升级方法和移动终端
CN102231861B (zh) * 2011-06-30 2014-01-22 深圳数字电视国家工程实验室股份有限公司 Iptv系统及iptv内容的数字化管控方法
US8843915B2 (en) 2011-07-28 2014-09-23 Hewlett-Packard Development Company, L.P. Signature-based update management
CN102833686A (zh) * 2012-07-13 2012-12-19 中广传播集团有限公司 一种终端软件空中升级与加载方法
CN103544412B (zh) * 2013-10-16 2017-01-04 深圳全智达通信股份有限公司 一种软件包权限控制方法及装置
CN104750511A (zh) * 2013-12-31 2015-07-01 环达电脑(上海)有限公司 安装桌面应用程序的方法
CN105989293A (zh) * 2015-02-13 2016-10-05 中兴通讯股份有限公司 一种实现软件版本升级的方法和装置
CN104834530A (zh) * 2015-05-27 2015-08-12 百富计算机技术(深圳)有限公司 一种pos应用程序的开发方法及云端服务器
CN105045633A (zh) * 2015-08-10 2015-11-11 广东欧珀移动通信有限公司 一种扫描升级包的方法及装置
CN105787357B (zh) * 2016-03-28 2019-01-04 福建联迪商用设备有限公司 一种基于安卓系统apk下载方法及其系统
CN107547918A (zh) * 2016-06-28 2018-01-05 中兴通讯股份有限公司 一种交互式网络电视频道安全播放的方法、装置和系统
CN107483523A (zh) * 2016-11-02 2017-12-15 深圳市波普安创技术有限公司 信息安全设备的合法固件调试系统及其方法
CN107480484A (zh) * 2016-11-02 2017-12-15 深圳市波普安创技术有限公司 信息安全设备的合法应用调试系统及其方法
CN106412121A (zh) * 2016-11-21 2017-02-15 四川长虹电器股份有限公司 应用于智能冰箱上的系统安全升级方法
CN107391166B (zh) * 2017-06-05 2022-01-25 深圳市优博讯科技股份有限公司 Android应用的安装方法及系统、计算机装置和可读存储介质
CN109842490B (zh) * 2017-11-28 2022-03-08 广东国盾量子科技有限公司 数字签名生成/发送/验证方法、终端及计算机存储介质
CN108881312A (zh) * 2018-08-24 2018-11-23 北京京东尚科信息技术有限公司 智能合约升级方法、系统和相关设备以及存储介质
CN109472148B (zh) * 2018-11-15 2021-04-02 百度在线网络技术(北京)有限公司 加载热补丁的方法、装置和存储介质
CN109977679A (zh) * 2019-02-22 2019-07-05 北京天地和兴科技有限公司 一种基于tcm芯片的工控安全设备升级包安装方法
CN110780901A (zh) * 2019-10-25 2020-02-11 无锡漫途科技有限公司 远程智能终端升级系统及升级方法
CN112929871A (zh) * 2019-12-05 2021-06-08 上海艾拉比智能科技有限公司 Ota升级包的获取方法、电子设备以及存储介质
US11902453B2 (en) * 2021-06-25 2024-02-13 Intel Corporation Method, system and apparatus for delayed production code signing for heterogeneous artifacts
CN113721965B (zh) * 2021-08-02 2024-05-03 国创移动能源创新中心(江苏)有限公司 一种充电桩的基于安全固件的升级方法
US20230130985A1 (en) * 2021-10-27 2023-04-27 Genetec Inc. Secure execution of scripts
CN114239080B (zh) * 2022-02-22 2022-07-08 麒麟软件有限公司 一种基于数字证书的软件多层签名方法及系统

Also Published As

Publication number Publication date
CN101425114A (zh) 2009-05-06

Similar Documents

Publication Publication Date Title
CN101425114B (zh) 软件升级包封装方法以及软件升级方法
US10284376B2 (en) Code signing system with machine to machine interaction
US20080189695A1 (en) Updating of Data Instructions
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
US10372932B2 (en) Secure factory data generation and restoration
CN100396012C (zh) 基于设备管理协议的软件合法性验证系统及验证方法
US9122876B2 (en) Methods for firmware signature
US8752165B2 (en) Provisioning secrets in an unsecured environment
US10284374B2 (en) Code signing system with machine to machine interaction
US8510544B2 (en) Starts up of modules of a second module group only when modules of a first group have been started up legitimately
CN111108735A (zh) 资产更新服务
CN102300065A (zh) 基于安卓平台的智能电视软件安全认证的方法
US9959394B2 (en) Device for decrypting and providing content of a provider and method for operating the device
AU2021200868B2 (en) Authentication of digital broadcast data
US20010010720A1 (en) Multiple signature authentication in conditional access systems
AU770252B2 (en) Object security implementation
KR101416381B1 (ko) 펌웨어 업데이트 시스템 및 방법
JP2003209542A (ja) デジタル放送装置及びデジタル放送方法、デジタル放送受信装置及びデジタル放送受信方法、デジタル放送受信システム
US20240086170A1 (en) Software update system and software update method
TW202038120A (zh) 安全資料處理裝置(二)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100825

Termination date: 20201212

CF01 Termination of patent right due to non-payment of annual fee