CN111382397B - 升级软件包配置方法、软件升级方法、设备及存储装置 - Google Patents
升级软件包配置方法、软件升级方法、设备及存储装置 Download PDFInfo
- Publication number
- CN111382397B CN111382397B CN202010121726.6A CN202010121726A CN111382397B CN 111382397 B CN111382397 B CN 111382397B CN 202010121726 A CN202010121726 A CN 202010121726A CN 111382397 B CN111382397 B CN 111382397B
- Authority
- CN
- China
- Prior art keywords
- signature
- key
- upgrade
- software
- public key
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种升级软件包配置方法、软件升级方法、升级设备及存储装置,其中升级软件包配置方法包括:获取第一密钥,获取第二密钥,获取第三密钥,依据所述第二私钥对所述第三公钥进行加密计算生成第一签名,依据所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第一签名、所述第二签名添加到所述第三公钥中并更新为所述第三公钥;依据所述第三私钥对升级软件进行加密计算生成第三签名;将所述第三公钥、所述升级软件及其所述第三签名配置为所述升级软件包。通过上述方式,本发明能够,达到离线设备在密钥发生迭代升级后,仍能对升级软件验证通过完成设备软件升级的目的。
Description
技术领域
本申请涉及软件升级领域,特别涉及一种升级软件包配置方法、软件升级方法、升级设备及存储装置。
背景技术
设备在售出之前,厂家会在设备内置相关密钥,当设备售出后,厂家通常会因为设备软件漏洞或者其他新功能因素发布新版本的软件包,而在这些已经售出并且离线设备上进行版本迭代时是需要内置在设备中的密钥对新版本软件进行校验,以保证软件合法且未被篡改过。
现有技术中,校验软件包是基于设备直接用内置的非对称密钥公钥对软件签名进行校验,一旦发生密钥迭代,那么新迭代的密钥签发的软件无法在已卖出设备上通过校验实现升级。
因此,有必要提供一种升级软件包配置方法、软件升级方法、升级设备及存储装置以解决上述技术问题完成离线设备密钥迭代后的升级。
发明内容
本申请提供一种升级软件包配置方法、软件升级方法、升级设备及存储装置,能够达到离线设备在密钥发生迭代升级后,仍能对升级软件验证通过完成设备软件升级的目的。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种升级软件包配置方法,包括以下步骤:
获取第一密钥,所述第一密钥为已发布的用于验证软件包合法性的根密钥,所述第一密钥为非对称密钥,包括用于加密生成数字签名的第一私钥及用于验证对应数字签名的第一公钥;
获取第二密钥,所述第二密钥为新发布的用于验证软件包合法性的根密钥,所述第二密钥为非对称密钥,包括用于加密生成数字签名的第二私钥及用于验证对应数字签名的第二公钥;
获取第三密钥,所述第三密钥为用于验证软件包完整性的非对称密钥,包括用于加密生成数字签名的第三私钥及用于验证对应数字签名的第三公钥;
依据所述第二私钥对所述第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥;
依据所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥;
依据所述第三私钥对升级软件进行加密计算生成第三签名;
将所述第三公钥、所述升级软件及其所述第三签名配置为所述升级软件包。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种软件升级方法,包括:
获取第一公钥,所述第一公钥为存储在待升级设备中,用于验证升级软件包的合法性、完整性;
获取升级软件包,所述升级软件包中包括用于所述升级软件包身份认证的设备签名及用于软件版本验证的软件签名;
依据所述第一公钥对所述升级软件包中的所述设备签名进行第一次验证,
若所述第一次验证不通过,则所述设备拒绝升级软件;
若所述第一验证通过,则依据所述设备签名对所述软件签名进行第二次验证,
若所述第二次验证通过,则所述设备使用所述升级软件包进行软件升级,
若所述第二次验证不通过,则所述设备拒绝升级软件。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种升级设备,该升级设备包括处理器、与所述处理器耦接的存储器,其中,所述存储器存储有用于实现上述升级软件包配置方法、软件升级方法的程序指令;所述处理器用于执行所述存储器存储的所述程序指令以对所述设备软件进行升级。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储装置,存储有能够实现上述升级软件包配置方法、软件升级方法的程序文件。
本申请的有益效果是:
本发明的一种升级软件包配置方法、软件升级方法、升级设备及存储装置通过依据已发布的第一密钥的第一公钥和新发布的第二密钥的第二公钥对所述第三公钥生成第二签名和第一签名,设备软件通过自带的第一公钥对所述第一签名、所述第二签名之一验证通过即可开始进行软件升级,达到离线设备在根密钥迭代更新的情况下都能进行软件升级。
进一步地,依据所述第三私钥对所述升级软件生成第三签名即软件签名,并通过软件包中的所述设备签名验证所述软件签名,保障升级软件包的准确性、完整性及合法性,加强了设备软件升级的安全性。
进一步地,依据所述第一私钥对所述第二公钥生成第四签名并将所述第四签名添加到所述第三公钥中并更新为所述第三公钥,通过所述第四签名可以完成设备上第一公钥到第二公钥的替换,可以实现根密钥在设备固件上的升级迭代,提高设备的适应性及用户体验。
进一步地,所述第一公钥支持低位密钥验证高位密钥,在设备部分硬件算力不足时可以采用低位密钥校验高位密钥,验证效率更高。
附图说明
图1是本发明第一实施例的升级软件包配置方法的流程示意图;
图2是本发明第一实施例的软件升级方法的流程示意图;
图3是本发明第二实施例的升级软件包配置方法的流程示意图;
图4是本发明一种实施例的软件升级装置的结构示意图;
图5是本发明一种实施例的升级设备的结构示意图;
图6是本发明一种实施例的存储装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。请参阅图1,图1是本发明第一实施例的升级软件包配置方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:获取第一密钥,所述第一密钥为已发布的用于验证软件包合法性的根密钥,所述第一密钥为非对称密钥,包括用于加密生成数字签名的第一私钥及用于验证对应数字签名的第一公钥;
需要说明的是,设备厂家研发生产设备及设备上使用的软件,当设备软件存在漏洞或者需要合入其他新功能时,会发布新的软件,当设备已经售出,设备厂家会将新发布的软件做成软件包发布给购入设备的用户,用户将软件包安装到设备中,进行升级。为了保证软件包的合法性、完整性、安全性,厂家会生成一个用于验证软件包合法性的根非对称密钥即所述第一密钥,本实施例中,所述第一密钥为非对称密钥,包括用于加密生成数字签名的第一私钥及用于验证对应数字签名的第一公钥,在设备销售之前,厂家会将所述第一公钥内置于设备中,并将第一私钥秘密保存,在设备卖出后,当有升级需求时,使用第一公钥用于在售出的离线设备上进行版本迭代升级时对新版本软件进行校验,以保证软件合法性。
步骤S102:获取第三密钥,所述第三密钥为用于验证软件包完整性的非对称密钥,包括用于加密生成数字签名的第三私钥及用于验证对应数字签名的第三公钥。进一步地,为了保证升级软件的安全性及完整性,除了对软件包的合法性使用根密钥进行验证外,还可以使用普通密钥用于验证软件包完整性,在步骤S102中,当厂家因为设备漏洞或者增加新功能等需要发布新版本的软件包时,需要获取用于验证软件包完整性的第三密钥。本实施例中,所述第三密钥也为非对称密钥,包括用于加密生成数字签名的第三私钥及用于验证对应数字签名的第三公钥。
步骤S103:依据所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥。
需要说明的是,数字签名就是对数据所作的密码变换。这种数据变换允许数据的接收者即用户设备用以确认数据的来源和数据的完整性并保护数据,防止被人进行伪造。
具体的,在步骤S103中,设备厂家首先用所述第一私钥对所述第三公钥进行加密计算生成第二签名,并将所述第二前面添加到所述第三公钥信息中,使所述第三公钥受所述第一密钥的加密保护。
步骤S104:依据所述第三私钥对升级软件进行加密计算生成第三签名。
进一步地,为了保证升级软件的完整性、安全性,设备厂家还可以先对所述升级软件进行哈希计算,然后用所述第三密钥的所述第三私钥对哈希计算后获得的升级软件数据进行加密计算生成第三签名,将所述第三签名与所述升级软件一并打包发送给用户,用于设备升级。
步骤S105:将所述第三公钥、所述升级软件及其所述第三签名配置为所述升级软件包。
最后,厂家将加密后的所述第三公钥、升级软件及所述升级软件的所述第三签名一并打包成升级软件包发送给用户,用户将升级包安装到待升级设备后,待升级设备对所述升级软件包进行解密计算后,即可获得合法、完整、安全的升级软件,并使用升级软件对设备进行升级。
本发明第一个实施例的升级软件包配置方法将依据已发布的第一密钥的第一公钥对所述第三公钥生成第二签名配置到软件包中,保障了软件包的合法性。
进一步地,依据所述第三私钥对所述升级软件生成第三签名,保障升级软件包的完整性及合法性,加强了设备软件升级的可靠性。
请参阅图2,图2是本发明第一实施例的软件升级方法的流程示意图。本实施例中,当待升级设备接收到使用上述第一实施例升级软件包配置方法配置的软件包后,可以按以下步骤进行设备升级,需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤S201:获取第一公钥,所述第一公钥为存储在待升级设备中的用于验证升级软件包的合法性。
本实施例中,所述第一公钥为设备厂家生成的一个用于验证软件包合法性的根非对称密钥的公钥,在待升级设备发售前就存储在了待升级设备中,用于在离线设备上进行版本迭代升级时对新版本软件进行校验,以保证软件合法性及完整性,待升级设备接收到升级软件包后,将获取设备内置的所述第一公钥。
步骤S202:获取升级软件包,所述升级软件包中包括用于所述软件包合法性认证的设备签名及用于软件包完整性验证的软件签名。
进一步地,待升级设备获取到升级软件包后,会从升级软件包中获取两个签名,用于所述软件包合法性认证的设备签名及用于软件包完整性验证的软件签名。
步骤S203:依据所述第一公钥对所述升级软件包中的所述设备签名进行第一次验证,若验证不通过,则执行步骤S206,若验证通过,则执行步骤S204。
需要说明的是,数字签名能够让用户确认发送厂家的身份,数字签名技术是将数据用私钥加密,与原数据一起传送给用户。用户用自己的公钥解密被加密的信息,然后获取对收到的原数据产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。数字签名是个加密的过程,数字签名验证是个解密的过程。
步骤S203中,使用待升级设备上存储的所述第一公钥对所述升级软件包中的所述设备签名进行解密验证,先验证所述软件包的合法性。
步骤S204:依据所述设备签名对所述软件签名进行第二次验证,若验证通过,则执行步骤S205,若验证不通过,则执行步骤S206。
在完成了对所述设备签名的所述第一次验证后,还需对升级软件的软件签名进行第二次验证,以保证升级软件在传输过程中的完整性、安全性。
步骤S205:所述设备使用所述升级软件包进行软件升级。
本实施例中,当升级软件的软件签名被所述设备签名的第二次验证通过后,待升级设备便使用所述解密后的软件进行升级。
步骤S206:所述设备拒绝升级软件。
本实施例中,当升级软件包的所述设备签名被所述第一公钥的第一次验证不通过或者当升级软件包的软件签名被所述设备签名第二次验证不通过,则所述待升级设备拒绝升级操作。
下面针对第一实施例中升级软件包配置方法及软件升级方法进行举例说明。
设备厂家生产一款设备,为使所述设备售出后能安全升级,则在所述设备发布时使用密钥算法计算生成一个用于验证升级软件包的根密钥即第一密钥,所述第一密钥为非对称密钥,包括第一公钥及第一私钥,第一公钥置于设备内,第一私钥厂家保存,当设备需要升级时,厂家为保证软件包在传输过程中的完整性、安全性还会使用密钥算法计算生成一个普通密钥即第三密钥,所述第三密钥也为非对称密钥,包括第三公钥及第三私钥,厂家使用所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥,并使用所述第三私钥对完成了哈希计算后的升级软件进行加密生成第三签名,并将带有所述第二签名信息的所述第三公钥、及带有所述第三签名信息的所述升级软件一并配置为升级软件包。
设备接收到使用上述方法配置的升级软件包后,首先使用设备内置的用于验证软件包合法性的根密钥即第一公钥对软件包中的设备签名即上述升级软件包配置方法中的带有所述第二签名信息的所述第三公钥进行第一次验证,验证通过后,使用所述设备签名对软件包中的软件签名即上述升级软件包配置方法中的第三签名进行第二次验证,验证通过后设备使用此软件包中的软件进行升级,上述两次验证中存在至少一种验证不通过时,设备拒绝升级。
当上述普通密钥需要更新时,厂家在配置升级软件包的过程中重复以上配置过程即可。
本发明的第一个实施例的软件升级方法设备软件通过自带的根密钥即第一公钥对所述设备签名验证通过即可开始进行软件升级,达到离线设备在用于验证软件包完整性的普通密钥迭代更新的情况下都能进行软件升级的目的。
进一步地,通过所述设备签名验证所述软件签名,保障升级软件包的准确性、完整性,加强了设备软件升级的可靠性。
上述实施例中,当用于验证软件包完整性的普通密钥需要迭代升级时,原置于设备内的用于验证软件包合法性的根密钥的公钥仍可以对软件包的合法性进行验证,保障设备正确升级。但当用于验证软件包合法性的根密钥需要升级时,原置于设备内的用于验证软件包合法性的根密钥的公钥则无法对软件包进行验证,会导致设备升级失败,故为解决根密钥升级后,设备软件仍能正常升级,升级软件包配置方法还可以采用以下步骤。
请参阅图3,图3是本发明第二实施例的升级软件包配置方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图3所示的流程顺序为限。如图3所示,该方法包括步骤:
步骤S301:获取第一密钥,所述第一密钥为已发布的用于验证软件包合法性的根密钥,所述第一密钥为非对称密钥,包括用于加密生成数字签名的第一私钥及用于验证对应数字签名的第一公钥;
在本实施例中,图3中的步骤S301和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S302:获取第二密钥,所述第二密钥为新发布的用于验证软件包合法性的根密钥,所述第二密钥为非对称密钥,包括用于加密生成数字签名的第二私钥及用于验证对应数字签名的第二公钥。
本实施例中,当厂家因为设备漏洞或者增加新功能等需要在发布的新版本的软件包中更新用于验证软件包合法性的根密钥时,在步骤S302中,需要获取新的待发布的用于验证软件包合法性的根密钥,即第二密钥。所述第二密钥与所述第一密钥一样,也为非对称密钥,由设备厂家生成,包括用于加密生成数字签名的第二私钥及用于验证对应数字签名的第二公钥。
步骤S303:获取第三密钥,所述第三密钥为用于验证软件包完整性的非对称密钥,包括用于加密生成数字签名的第三私钥及用于验证对应数字签名的第三公钥。
在本实施例中,图3中的步骤S303和图1中的步骤S102类似,为简约起见,在此不再赘述。
步骤S304:依据所述第二私钥对所述第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥。
本实施例中,依据所述第二私钥对所述第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥,生成所述第一签名和将所述第一签名添加到所述第三公钥的过程与上述第一实施例中生成第二签名的过程类似,此处不再赘述。
步骤S305:依据所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥。步骤S306:依据所述第三私钥对升级软件进行加密计算生成第三签名。
步骤S307:将所述第三公钥、所述升级软件及其所述第三签名配置为所述升级软件包。
在本实施例中,图3中的步骤S305、S306、S307和图1中的步骤S103、S104、S105类似,为简约起见,在此不再赘述。
请再次参阅图2所示本发明第一实施例的软件升级方法的流程示意图,本实施例中,当待升级设备接收到使用上述第二实施例升级软件包配置方法配置的软件包后,可以按以下步骤进行设备升级。
步骤S201:获取第一公钥,所述第一公钥为存储在待升级设备中的用于验证升级软件包的合法性、完整性。
步骤S202:获取升级软件包,所述升级软件包中包括用于所述升级软件包身份认证的设备签名及用于软件版本验证的软件签名。
步骤S203:依据所述第一公钥对所述升级软件包中的所述设备签名进行第一次验证,若验证不通过,则执行步骤S206,若验证通过,则执行步骤S204。
步骤S203中,使用设备上存储的所述第一公钥对所述升级软件包中的所述设备签名进行解密验证,先验证所述软件包的合法性。
需要说明的是,步骤S203中,当所述设备签名存在多个数字签名信息时,使用设备上存储的所述第一公钥对所述升级软件包中的所述设备签名进行解密验证时,仅需所述设备签名中至少一个数字签名验证通过即可。
步骤S204:依据所述设备签名对所述软件签名进行第二次验证,若验证通过,则执行步骤S205,若验证不通过,则执行步骤S206。
步骤S205:所述设备使用所述升级软件包进行软件升级。
步骤S206:所述设备拒绝升级软件。
在本实施例中,上述步骤S204、S205、S206与使用第一实施例中升级软件包配置方法配置软件包进行升级时步骤类似,为简约起见,在此不再赘述。
需要说明的是,当所述第一公钥为低位密钥时,可以支持对低位设备签名及软件签名的验证,也可以支持对高位设备签名及软件签名的验证。
下面针对第二实施例中升级软件包配置方法及软件升级方法进行举例说明。
接上述第一实施例的举例,当厂家因为某种原因,如密钥算法更新从而发布新的根密钥即第二密钥,所述第二密钥也为非对称密钥,包括第二公钥及第二私钥,当设备需要升级时,厂家使用所述第二私钥对所述第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥,并且仍使用之前的所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥,使所述第三公钥具备双签名,同样的,仍使用所述第三私钥对完成了哈希计算后的升级软件进行加密生成第三签名,并将带有所述第一签名、第二签名信息的所述第三公钥、及带有所述第三签名信息的所述升级软件一并配置为升级软件包。
设备接收到使用上述方法配置的升级软件包后,首先使用设备内置的用于验证软件包合法性的根密钥即第一公钥对软件包中的设备签名即上述升级软件包配置方法中的带有所述第一签名、第二签名信息的所述第三公钥进行第一次验证,只要双签名中的一个验证通过,即为验证通过,验证通过后再使用所述设备签名对软件包中的软件签名即上述升级软件包配置方法中的第三签名进行第二次验证,验证通过后设备使用此软件包中的软件进行升级,上述两次验证中存在至少一种验证不通过时,设备拒绝升级。
在另一实施例中,为使设备升级后也能同步升级设备内置的根密钥的公钥,第二实施例中升级软件包配置方法步骤S305之后,还可以依据所述第一私钥对所述第二公钥进行加密计算生成第四签名,并将所述第四签名添加到所述第三公钥中并更新为所述第三公钥。
在软件升级方法步骤S205后还可以包括,依据所述第一公钥对所述升级软件包中的升级签名进行验证;所述升级签名即可为上述第四签名。若验证通过,则依据软件包中的所述升级签名替换所述设备中的所述第一公钥,完成所述第一公钥的升级更换。需要说明的是,当所述第一公钥为低位密钥时,若所述设备签名、所述软件签名为高位密钥,仍可以支持验证。
本发明第二个实施例的升级软件包配置方法、软件升级方法通过依据已发布的第一密钥的第一公钥和待发布的第二密钥的第二公钥对所述第三公钥加密生成第二签名和第一签名,设备软件通过自带的根密钥对具有双签名的设备签名进行验证,双签名中至少一个验证通过即可开始进行软件升级,达到离线设备在根密钥迭代更新的情况下都能进行软件升级。
进一步地,依据所述第三私钥对所述升级软件生成第三签名,保障升级软件包的准确性、完整性及合法性,加强了设备软件升级的安全性。
进一步地,依据所述第一私钥对所述第二公钥生成第四签名即升级签名并将所述第四签名添加到所述第三公钥中并更新为所述第三公钥,通过所述第四签名可以完成设备上第一公钥到第二公钥的替换,可以实现根密钥在设备固件上的升级迭代,提高设备的适应性及用户体验。
进一步地,所述第一公钥支持低位密钥验证高位密钥,在设备部分硬件算力不足时可以采用低位密钥校验高位密钥,验证效率更高。
图4是本发明一种实施例的软件升级装置的结构示意图。如图4所示,该装置包括软件获取模块41、软件验证模块42、升级模块43。
获取模块41用于获取升级软件包,所述升级软件包中包括用于所述升级软件包身份认证的设备签名及用于软件版本验证的软件签名;
软件验证模块42用于依据所述第一公钥对所述升级软件包中的所述设备签名进行验证,若验证不通过,则所述设备拒绝升级软件;若验证通过,则依据所述设备签名对所述软件签名进行验证。
升级模块43用于在软件验证模块42完成对所述设备签名及所述软件签名验证后使用所述升级软件包进行软件升级。
可以理解的是,上述软件升级装置的各模块实现各功能的具体方式可参阅上述实施例对应的具体步骤,故在此不作赘述。
本发明软件升级装置能够达到离线设备在密钥发生迭代升级后,仍能对升级软件验证通过完成设备软件升级的目的。
请参阅图5,图5为本发明实施例的升级设备的结构示意图。如图5所示,该升级设备60包括处理器61及和处理器61耦接的存储器62。
存储器62存储有用于实现上述任一实施例所述方法的程序指令。
处理器61用于执行存储器62存储的程序指令以对所述设备软件进行升级。
其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器61可能是一种集成电路芯片,具有信号的处理能力。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图6,图6为本发明实施例的存储装置的结构示意图。本发明实施例的存储装置存储有能够实现上述所有方法的程序文件71,其中,该程序文件71可以以软件产品的形式存储在上述存储装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种升级软件包配置方法,其特征在于,包括以下步骤:
获取第一密钥,所述第一密钥为已发布的用于验证软件包合法性的根密钥,所述第一密钥为非对称密钥,包括用于加密生成数字签名的第一私钥及用于验证对应数字签名的第一公钥;
获取第二密钥,所述第二密钥为新发布的用于验证软件包合法性的根密钥,所述第二密钥为非对称密钥,包括用于加密生成数字签名的第二私钥及用于验证对应数字签名的第二公钥;
获取第三密钥,所述第三密钥为用于验证软件包完整性的非对称密钥,包括用于加密生成数字签名的第三私钥及用于验证对应数字签名的第三公钥;
依据所述第二私钥对所述第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥;
依据所述第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥;
依据所述第三私钥对升级软件进行加密计算生成第三签名;
将所述第三公钥、所述升级软件及其所述第三签名配置为所述升级软件包。
2.根据权利要求1所述升级软件包配置方法,其特征在于,所述升级软件包配置方法还包括:
依据所述第一私钥对所述第二公钥进行加密计算生成第四签名;
将所述第四签名添加到所述第三公钥中并更新为所述第三公钥。
3.根据权利要求1所述升级软件包配置方法,其特征在于,所述依据所述第三私钥对升级软件进行加密计算生成第三签名前,还包括步骤:
对所述升级软件进行哈希计算。
4.一种软件升级方法,其特征在于,包括以下步骤:
获取第一公钥,所述第一公钥为存储在待升级设备中,用于验证升级软件包的合法性、完整性;
获取升级软件包,所述升级软件包中包括用于所述升级软件包身份认证的设备签名及用于软件版本验证的软件签名;所述设备签名包括多个数字签名;其中,密钥算法更新发布第二密钥,所述第二密钥包括第二公钥和第二私钥,使用所述第二私钥对第三公钥进行加密计算生成第一签名,将所述第一签名添加到所述第三公钥中并更新为所述第三公钥,使用第一私钥对所述第三公钥进行加密计算生成第二签名,将所述第二签名添加到所述第三公钥中并更新为所述第三公钥,使用第三私钥对完成了哈希计算后的所述升级软件进行加密生成第三签名,并将带有所述第一签名、所述第二签名信息的所述第三公钥、及带有所述第三签名信息的所述升级软件一并配置为所述升级软件包;
依据所述第一公钥对所述升级软件包中的所述设备签名进行第一次验证,
若所述第一次验证不通过,则所述设备拒绝升级软件;
若所述第一次验证通过,则依据所述设备签名对所述软件签名进行第二次验证;
若所述第二次验证通过,则所述设备使用所述升级软件包进行软件升级,
若所述第二次验证不通过,则所述设备拒绝升级软件。
5.根据权利要求4所述软件升级方法,其特征在于,所述设备签名包括至少一个用于验证所述软件合法性及或完整性的数字签名,所述依据所述第一公钥对所述升级软件包中的所述设备签名进行第一次验证包括:
验证所述升级软件包中的所述设备签名,
当其中至少一个所述数字签名验证通过即对所述设备签名第一验证通过。
6.根据权利要求5所述软件升级方法,其特征在于,所述设备签名还包括用于升级存储在待升级设备中的所述第一公钥的升级签名。
7.根据权利要求6所述软件升级方法,其特征在于,所述设备使用所述升级软件包进行软件升级后还包括:
依据所述第一公钥对所述升级软件包中的所述升级签名进行验证;
若验证通过,则依据所述升级签名替换所述设备中的所述第一公钥。
8.根据权利要求4所述软件升级方法,其特征在于,所述第一公钥支持低位密钥验证高位密钥。
9.一种升级设备,其特征在于,所述升级设备包括处理器、与所述处理器耦接的存储器,其中,
所述存储器存储有用于实现如权利要求1-8中任一项方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以对设备软件进行升级。
10.一种存储装置,其特征在于,存储有能够实现如权利要求1-8中任一项所述方法的程序文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121726.6A CN111382397B (zh) | 2020-02-26 | 2020-02-26 | 升级软件包配置方法、软件升级方法、设备及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121726.6A CN111382397B (zh) | 2020-02-26 | 2020-02-26 | 升级软件包配置方法、软件升级方法、设备及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382397A CN111382397A (zh) | 2020-07-07 |
CN111382397B true CN111382397B (zh) | 2023-03-24 |
Family
ID=71218623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010121726.6A Active CN111382397B (zh) | 2020-02-26 | 2020-02-26 | 升级软件包配置方法、软件升级方法、设备及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382397B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806749B (zh) * | 2021-09-23 | 2024-04-05 | 航天信息股份有限公司 | 一种升级方法、装置及存储介质 |
CN114385215B (zh) * | 2022-03-25 | 2022-06-24 | 江铃汽车股份有限公司 | 软件升级方法及系统 |
CN114726539B (zh) * | 2022-03-30 | 2023-03-21 | 江苏云涌电子科技股份有限公司 | 一种基于可信密码模块tcm的离线升级方法 |
CN117675211A (zh) * | 2022-08-24 | 2024-03-08 | 中兴通讯股份有限公司 | 数字签名方法和验签方法、电子设备、计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
CN103338450A (zh) * | 2013-06-26 | 2013-10-02 | 华为技术有限公司 | 一种验证方法及设备 |
CN109560931A (zh) * | 2018-11-30 | 2019-04-02 | 江苏恒宝智能系统技术有限公司 | 一种基于无证书体系的设备远程升级方法 |
CN110071940A (zh) * | 2019-05-06 | 2019-07-30 | 深圳市网心科技有限公司 | 软件包加解密方法、服务器、用户设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070055881A1 (en) * | 2005-09-02 | 2007-03-08 | Fuchs Kenneth C | Method for securely exchanging public key certificates in an electronic device |
CN101145906B (zh) * | 2006-09-13 | 2010-10-06 | 北京邦天信息技术有限公司 | 对单向网络中的接收终端进行合法性认证的方法及系统 |
CN101178753A (zh) * | 2006-11-09 | 2008-05-14 | 侯方勇 | 身份验证的方法和装置 |
US9137016B2 (en) * | 2013-06-20 | 2015-09-15 | Hewlett-Packard Development Company, L.P. | Key pair updates based on digital signature states |
CN103354496A (zh) * | 2013-06-24 | 2013-10-16 | 华为技术有限公司 | 一种公钥密码的处理方法、装置及系统 |
US10033534B2 (en) * | 2015-12-01 | 2018-07-24 | Intel Corporation | Methods and apparatus to provide for efficient and secure software updates |
CN106126297A (zh) * | 2016-06-30 | 2016-11-16 | 西安诺瓦电子科技有限公司 | 基于Android操作系统的系统升级方法 |
CN110532735B (zh) * | 2018-05-23 | 2023-04-18 | 霍尼韦尔环境自控产品(天津)有限公司 | 固件升级方法 |
CN109829294B (zh) * | 2019-01-31 | 2021-07-13 | 云丁网络技术(北京)有限公司 | 一种固件验证方法、系统、服务器及电子设备 |
CN111832013A (zh) * | 2018-08-27 | 2020-10-27 | 创新先进技术有限公司 | 固件升级方法及装置 |
CN110688648B (zh) * | 2019-09-29 | 2021-12-03 | 北京小米移动软件有限公司 | 安全芯片固件更新方法及装置 |
CN110795126A (zh) * | 2019-10-25 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种固件安全升级系统 |
-
2020
- 2020-02-26 CN CN202010121726.6A patent/CN111382397B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
CN103338450A (zh) * | 2013-06-26 | 2013-10-02 | 华为技术有限公司 | 一种验证方法及设备 |
CN109560931A (zh) * | 2018-11-30 | 2019-04-02 | 江苏恒宝智能系统技术有限公司 | 一种基于无证书体系的设备远程升级方法 |
CN110071940A (zh) * | 2019-05-06 | 2019-07-30 | 深圳市网心科技有限公司 | 软件包加解密方法、服务器、用户设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111382397A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382397B (zh) | 升级软件包配置方法、软件升级方法、设备及存储装置 | |
US10708062B2 (en) | In-vehicle information communication system and authentication method | |
US9311487B2 (en) | Tampering monitoring system, management device, protection control module, and detection module | |
TWI454935B (zh) | 自非本端儲存器安全地啟動及組態一子系統 | |
CN102165457B (zh) | 票券授权的安全安装和引导 | |
US8296561B2 (en) | Certifying device, verifying device, verifying system, computer program and integrated circuit | |
CN101145906B (zh) | 对单向网络中的接收终端进行合法性认证的方法及系统 | |
CN101194229B (zh) | 更新数据指令的方法和设备 | |
CN107743067B (zh) | 数字证书的颁发方法、系统、终端以及存储介质 | |
CN102177678B (zh) | 可信和机密的远程tpm初始化 | |
EP2879327A1 (en) | Encryption and decryption processing method, apparatus and device | |
CN109039657B (zh) | 密钥协商方法、设备、终端、存储介质以及系统 | |
CN103503366A (zh) | 管理针对认证设备的数据 | |
JPWO2010041462A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
CN104462965A (zh) | 应用程序完整性验证方法及网络设备 | |
CN108595198B (zh) | 一种安全的固件更新方法 | |
CN112187544A (zh) | 固件升级方法、装置、计算机设备及存储介质 | |
CN103269271A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
US20130019110A1 (en) | Apparatus and method for preventing copying of terminal unique information in portable terminal | |
KR20160098756A (ko) | 하드웨어 보안 모듈, 상기 하드웨어 보안 모듈에 저장된 무결성 검증 값을 업데이트하는 방법, 상기 하드웨어 보안 모듈을 이용하여 단말에 저장된 프로그램을 업데이트하는 방법 | |
CN113378119B (zh) | 一种软件授权方法、装置、设备及存储介质 | |
CN112579125B (zh) | 一种固件升级方法、装置、电子设备和存储介质 | |
CN116909603A (zh) | 车辆安全升级方法及系统 | |
KR20130100032A (ko) | 코드 서명 기법을 이용한 스마트폰 어플리케이션 배포 방법 | |
CN110210189B (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 |