CN109960512B - 一种软件部署方法及系统 - Google Patents

一种软件部署方法及系统 Download PDF

Info

Publication number
CN109960512B
CN109960512B CN201711419591.6A CN201711419591A CN109960512B CN 109960512 B CN109960512 B CN 109960512B CN 201711419591 A CN201711419591 A CN 201711419591A CN 109960512 B CN109960512 B CN 109960512B
Authority
CN
China
Prior art keywords
node
record
data operation
data
nodes
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
Application number
CN201711419591.6A
Other languages
English (en)
Other versions
CN109960512A (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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information 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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711419591.6A priority Critical patent/CN109960512B/zh
Publication of CN109960512A publication Critical patent/CN109960512A/zh
Application granted granted Critical
Publication of CN109960512B publication Critical patent/CN109960512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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为本发明实施例中接收记录的数据结构示意图;
图4为本发明实施例中日志的数据结构示意图;
图5为本发明实施例中软件部署系统的结构示意图;
图6为本发明实施例中软件部署装置的结构示意图;
图7为本发明实施例中软件部署设备的结构示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例的描述中“多个”,是指两个或两个以上。
本发明实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本发明实施例中的“私有链”,又称“私有区块链”,是区块链中的一种。区块链,狭义来讲,是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本;广义来讲,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。而私有链是指仅在私有组织内部使用的区块链,该区块链的读写、对外开放等权限按照私有组织的规则来制定。
本发明实施例提供了一种软件部署方法,应用于私有链网络,该私有链网络中存在多个相互通信的节点;参照图1,所述方法包括:
步骤101:所述私有链网络中的任一节点执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述任一节点执行的接收数据的操作/发送数据的操作;
步骤102:所述任一节点将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点,使所述所有其它节点保存所述数据操作记录。
在本发明实施例中,两个节点之间的一次数据交互行为对应一个接收方和一个发送方。所述任一节点可以为发送方,也可以为接收方,本发明实施例不做具体限制。当私有链网络中出现一次成功的数据交互时,网络中会生成两条记录,即接收方生成的接收记录和发送方生成的发送记录。
在本发明实施例中,私有链网络在进行软件部署时的部署过程可以包括以下三个部分:软件包的交付、软件包的传输以及软件包的安装。对应的,按照节点在软件部署过程中参与的角色,该私有链网络中的节点可以划分为以下四种类型:交付节点、存储节点、安装节点以及管理节点。其中,交付节点为软件包在该私有链网络中第一次出现的节点,存储节点为存储软件包的节点,安装节点为用于运行安装软件包对应的服务的节点,管理节点为控制整个软件部署过程的节点。对应的,所述任一节点执行的数据操作包括但不限于以下三种类型:与交付软件包相关的接收数据的操作/发送数据的操作、与传输软件包相关的接收数据的操作/发送数据的操作、与安装软件包相关的接收数据的操作/发送数据的操作。具体实例可以是:
当所述任一节点为交付节点时,所述数据操作可以为向存储节点发送请求交付的指令、接收存储节点发送的同意/不同意交付的指令、向存储节点发送软件包、接收存储节点发送的确认收到软件包的指令等等。
当所述任一节点为存储节点时,所述数据操作为可以为接收交付节点发送的请求交付的指令、向交付节点发送同意交付的指令、接收交付节点发送的软件包、向交付节点发送确认收到软件包的指令、接收安装节点发送的请求软件包的指令、向安装节点发送软件包、接收安装节点发送的确认收到软件包的指令等等。
当所述任一节点为安装节点时,所述数据操作可以为接收管理节点发送的安装软件的指令、向存储有软件包的节点(如存储节点、其他安装节点等)发送请求软件包的指令、接收存储节点发送的软件包、向所述存储节点发送确认收到软件包的指令、向管理节点发送软件安装成功/失败的指令等等。
当所述任一节点为管理节点时,所述数据操作可以为向安装节点发送安装软件的指令、接收安装节点发送的软件安装成功/失败的指令等。
当然了,在实际应用中本领域技术人员还可以根据实际情况采用其他可能的方式对部署的过程、节点的类型进行划分,本发明实施例对此不做具体限制。
在上述方案中,当所述私有链网络在进行软件部署时,参与该部署过程的任一节点在执行数据操作后,会生成对应的数据操作记录,并且会将生成的数据操作记录公布到全网所有节点上保存,实现了对软件部署过程中的所有数据交互行为的记录和保存,可使得网络中各个节点上的软件包的来源和传播途径可以被追踪,从而确认软件包的来源合法性、完整性,提高了软件部署的安全性。
不仅如此,全网生成的数据操作记录,还可以使得整个软件部署的流程更加清晰和容易监控,有利于及时地发现、解决软件部署过程中异常问题,降低损失。
可选的,所述私有链网络中的各个节点保存有自身的私钥和其他节点的公钥;所述任一节点在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之前,所述方法还包括:采用自身的私钥对所述数据操作记录进行数字签名,以使所述所有其它节点在接收到所述数据操作记录后采用所述任一节点的公钥验证所述操作记录是否有效,在验证通过时保存接收到所述数据操作记录。
通过本方式,可以防止数据操作记录在传输过程中被恶意篡改,进一步提高软件部署的安全性。
可选的,当所述数据操作为接收数据的操作时,对应的数据操作记录为接收记录,当所述数据操作为发送数据的操作时,对应数据操作记录为发送记录。
在具体实施过程中,任意两个节点之间的一次完整的数据交易行为对应一个发送记录和一个接收记录。为了更加清楚的将各次数据交易对应的接受记录与发送记录联系起来,可以在接收记录中添加对应发送记录的哈希值。
对应的,在执行上述步骤102时,如果所述数据操作为接收数据的操作,那么所述任一节点在生成一条与所述数据操作对应的数据操作记录之前,所述方法还包括:所述任一节点接收发送方发送的发送记录;其中,所述发送记录指示所述发送方发送所述数据的操作;所述任一节点生成一条与所述数据操作对应的数据操作记录,包括:所述任一节点计算所述发送记录的哈希值,根据所述哈希值生成一条与所述数据操作对应的接收记录;其中,所述接收记录包含所述发送记录的哈希值。
例如,图2为发送记录的数据格式,其中TxInfo为软件的资产信息,包括软件资产的标识(identification,ID)、软件资产名称、软件资产的哈希等信息,Scriptlen为脚本长度,S_script为发送脚本体,包括脚本和发送方地址等信息。图3为接收记录的数据格式,其中Txout Hash为对应发送记录的哈希值,TxoutIndex为索引,Scriptlen为脚本长度,G_script为接收脚本体,包括脚本、签名、公钥等信息。
通过本方式,可以更加方便地将同一次数据交互中的发送记录和接收记录方便地对应起来,进一步提高记录的可靠性,使得软件部署的流程更加清晰和容易监控。
可选的,所述私有链网络中保存有日志,所述日志用于记录所述私有链网络中任意两个节点之间的数据交互记录;在所述任一节点将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,所述方法包括:将所述数据操作记录添加到所述日志中。
具体的,该日志分布式地保存在所述私有链网络中的各个节点上,所述私有链网络中的所有节点均可以有读写该日志的权限。
在具体实施过程中,所述将数据操作记录添加到所述日志中的操作除了可以由执行所述数据操作的节点执行外,也可以由所述私有链网络中的其他节点执行,本发明实施例不做具体限制。
在具体实施过程中,所述私有链网络中的日志的数量可以为一个,也可以为多个,本发明实施例不做具体限制。一个日志可以记录一次或多次软件部署过程中的生成所有数据操作记录,也可以只记录一次软件部署过程中生成的部分数据操作记录。
例如,可以为一个软件包的交付、传输和安装过程创建三个日志,分别用于记录软件包的交付、传输、安装过程中生成的数据操作记录。图4为本发明实施例中日志的一种可能的数据格式,一个图示日志用于记录一次软件交付/传输/安装过程中生成的数据交互记录。
通过本方式,软件部署过程中所有数据交互行为都能被私有链网络中的日志记录和保存,可以使得整个软件部署的流程更加清晰和容易监控,有利于及时地发现、解决软件部署过程中异常问题,降低损失。
可选的,所述数据为预设指令,所述预设指令用于指示所述任一节点执行预设操作;在所述任一节点将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,所述方法包括:
在确定超过预定数量的其他节点验证成功时,响应所述预设指令,执行所述预设操作;其中,所述验证成功表征:其他节点收到的接收记录与其接收到的发送记录匹配。
例如,当存储节点接收到安装节点发送的请求软件包的指令时,需要验证所述私有链网络中的所有节点是否都已收到安装节点公布的发送记录以及存储节点公布的接收记录,然后验证各个节点收到的接收记录是否和发送记录匹配,如验证两条记录中的发送方是否一致、接收方是否一致、接收记录中的哈希值是否等于发送记录的哈希值等。在确定预设数量的节点验证通过之后,存储节点响应所述安装节点发送的请求软件包的指令,将安装节点请求的软件包发送给安装节点。
在具体实施过程中,所述预设数量的设定方式可以使用区块链技术的共识机制中的“拜占庭共识算法”实现:私有链网络中所有节点均参与记录的验证过程,只要在N≥3F+1的情况下,确定全网达成共识,其中N为节点总数,F为问题节点总数。换句话说,只有在超过三分之一的节点同时确定验证不通过的情况下,才会不响应指令。当然,在具体实施过程中,该公式也可以根据实际情况进行适应调整,如:N≥2F+1、N≥4F+1,N≥10F+1等,本发明实施例不做限制。
通过本方式,只有在指令对应的发送记录和接收记录被全网中预设数量的节点验证通过时,接收指令的节点才响应该指令执行对应的预设操作,进一步提高软件部署的安全性。
可选的,所述任一节点为管理节点,所述软件包为采用对称密钥加密后的软件包,所述管理节点保存有所述对称密钥;所述数据操作为:向安装节点发送所述对称密钥,以使所述安装节点在安装所述软件时采用所述对称密钥对所述加密后软件包解密。
在具体实施过程中,交付节点在生成软包时,会采用交付者在交付节点上输入的对称密钥对软件包进行加密,并将对称密钥保存在管理节点,后续软件包在网络中的各个节点上传输时,均是以对称密钥加密的形式传输。当管理节点指示安装节点安装软件时,管理节点将该对称密钥发送给安装节点,以使安装节点解密软件包,完成软件安装。
具体实施过程中,管理节点将该对称密钥发送给安装节点之前,还可以接收管理者输入的对称密钥,并验证管理者输入的对称密钥是否与之前交付者输入的对称密钥一致,在确定一致时才将对称密钥发送给安装节点。
通过本方式,软件包在私有链网络中始终以加密的形式进行传输和存储,能够有效防止软件包在传输过程中遭到恶意篡改和泄露。
可选的,在所述私有链网络进行软件部署的过程中,所述方法还包括:所述任一节点接收新节点发送的请求加入所述私有链网络的请求指令;在确定所述新节点与所述私有链网络中的所有节点都具有连接的权限时,将所述新节点加入所述私有链网络中。
在具体实施过程中,执行上述确定所述新节点与所述私有链网络中的所有节点是否具有连接的权限的操作,除了可以由所述任一节点执行外,也可以由该私有链网络中的其他的节点执行,本发明实施例不做具体限制。
例如,新节点与私有链网络中各个节点的“握手”连接流程可以包括:
(1)新节点向私有链网络中的所有节点发送加入该私有链网络的请求;
具体的,新节点使用全球唯一标识符(Globally Unique Identifier,GUID)算法根自身的网际协议(Internet Protocol,IP)地址(内部网络地址或公共网络地址)、媒体访问控制(Media Access Control,MAC)地址和时间戳等信息,创建全局唯一标识符;然后根据该标识符,使用椭圆曲线密码(Elliptic curve cryptography,ECC)算法生成该新节点的私钥和公钥;生成一条消息包含该新节点IP地址、节点角色等信息的消息,并使用该新节点私钥对该消息添加数字签名后,将该新节点的公钥和该消息发送到私有链中的所有节点。
(2)私有链中的每个节点在收到消息后,验证该新节点的IP地址是否在其授权连接的节点清单里,如果是,则确定允许该新节点与自身连接,如果否,则确定不允许该新节点与自身连接;同时询问其它节点是否允许该新节点的连接;
(3)私有链中的每个节点在确定所有节点都允许该新节点连接时,与该新节点建立连接,即将该新节点加入该私有链网络;若有存在任意一个节点不同意,则每个节点都不与该新节点连接,即拒绝该新节点加入该私有链网络。
通过本方式,新节点需要私有链网络中的所有节点验证通过后才能加入,参与软件部署,进一步提高软件部署的安全性。
为了便于更加清楚的理解本发明实施例上述软件部署方案,接下来,例举其中一种可能的完整的软件部署流程。
第一部分,将软件包交付至存储节点:
(1)交付者在交付节点创建待交付软件包,使用对称加密算法对待交付的软件包进行加密,对称秘钥由相关管理员进行保管;使用哈希算法计算加密后的软件包的哈希值,并生成一条带交付节点数字签名的交付指令(包含交付者信息、软件包的哈希值等),公布到私有链网络中所有节点,待所有节点确定允许交付后,交付节点生成交付指令记录并使用其节点私钥对该记录添加数字签名,并保存在私有链网络中;
(2)存储节点接收并同步该交付指令记录后,使用交付节点的公钥进行验证签名是否有效,验证通过后向交付节点服务器发送消息,请求软件包;
(3)交付节点接收到存储节点的请求消息后,返回一个回复消息(对于多存储节点请求相同的软件包时,交付节点可以只回复最先收到的请求且拒绝其余请求),向存储节点发送软件包,并生成一条发送记录,采用私钥加密后发布到私有链网络中;
(4)存储节点在接收完软件包后,使用相同的哈希算法计算其哈希值,并与之前接收到的交付指令中的哈希值比较,验证是否一致(防止文件遭到篡改或丢失),确认一致后,生成接收软件包的记录,采用存储节点的私钥对该接收记录添加数字签名,保存到私有链网络中;
(5)其余存储节点接收并同步该接收软件包的记录,同时根据网络中的各记录,向已接收软件包的该存储节点发送请求指令,请求该存储节点发送软件包。
(6)已有软件包的存储节点接收其余存储节点的请求,重复过程(3)、(4)的操作,进行软件包的传输。
第二部分,在安装节点部署软件服务:
(1)管理者在管理节点向安装节点发送某软件的部署指令,并输入对应软件包的对称密钥后,管理节点生成一条带管理者个人数字签名的部署指令记录(包含部署指令信息等)及发布该记录到私有链路中所有节点,待管理节点确认无误后,使用自身私钥对该记录添加数字签名,并保存在私有链路中;
(2)管理节点使用安装节点的公钥将管理者输入的对称密钥进行加密,并根据部署指令记录,生成一条新的部署记录(包含部署指令等信息)及非对称密钥发布到私有链中的其他节点;
(3)安装节点接收到部署记录后,向存储节点或已接收到软件包的其他的安装节点请求需要安装的软件包。安装节点请求软件包的过程参照上述第一部分步骤(3)、(4)中存储节点请求软件包的过程,此处不再进行赘述;
(4)安装节点使用自身的私钥解密接收到的对称密钥,再使用解密后的对称密钥对加密的软件包进行解密,然后运行安装该软件包;
(5)安装节点安装完成后,使用自身的私钥对该安装记录添加数字签名,并保存到私有链网络中,私有链中的每个节点将同步该安装记录。
在本实施例中,私有链网络会对软件的交付、传输、部署等过程中涉及的指令、操作等信息进行记录并保存,可使整个过程追溯本源,从而确认软件包的来源合法性;并且软件包在交付节点、存储节点和安装节点上始终以对称加密的形式进行传输、存储和验证,保证了软件包的前后一致性,可有效防止遭到恶意篡改和泄露。
基于同一发明构思,本发明实施例还提供一种软件部署系统,用于实现本发明实施例上述软件部署方法。该系统包括多个可相互通信的节点,所述多个可相互通信的节点在同一私有链网络中。
例如,图5为该软件部署系统的一种可能的结构示意图。该系统包括至少一个存储节点、至少一个交付节点、至少一个安装节点以及至少一个管理节点。所述系统中的任一节点用于:
在执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述任一节点执行的接收数据的操作/发送数据的操作;
将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点,使所述所有其它节点保存所述数据操作记录。
可选的,所述私有链网络中的各个节点保存有自身的私钥和其他节点的公钥;所述任一节点还用于:
在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之前,采用自身的私钥对所述数据操作记录进行数字签名,以使所述所有其它节点在接收到所述数据操作记录后采用所述任一节点的公钥验证所述操作记录是否有效。
可选的,当所述数据操作为接收数据的操作时,所述任一节点还用于:在生成一条与所述数据操作对应的数据操作记录之前,接收发送方发送的发送记录;其中,所述发送记录指示所述发送方发送所述数据的操作;
所述任一节点用于生成一条与所述数据操作对应的数据操作记录,包括:计算所述发送记录的哈希值,根据所述哈希值生成一条与所述数据操作对应的接收记录;其中,所述接收记录包含所述发送记录的哈希值。
可选的,所述数据为预设指令,所述预设指令用于指示所述任一节点执行预设操作;
所述任一节点还用于:在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,在确定超过预定数量的其他节点验证成功时,响应所述预设指令,执行所述预设操作;其中,所述验证成功表征:其他节点收到的接收记录包含的哈希值与所述其他节点收到的发送记录的哈希值一致。
可选的,所述任一节点为交付节点、存储节点、安装节点、管理节点中的任一;
所述数据操作为:与交付/传输/安装软件包相关的接收数据的操作/发送数据的操作。。
可选的,所述任一节点为管理节点,所述软件包为采用对称密钥加密后的软件包,所述管理节点保存有所述对称密钥;
所述数据操作为:向安装节点发送所述对称密钥,以使所述安装节点在安装所述软件时采用所述对称密钥对所述加密后软件包解密。
可选的,所述任一节点还用于:
在所述私有链网络进行软件部署的过程中,接收新节点发送的请求加入所述私有链网络的请求指令;
在确定所述新节点与所述私有链网络中的所有节点都具有连接的权限时,将所述新节点加入所述私有链网络中。
以上所述任一节点所执行操作的具体实现方式可以参照本发明实施例上述软件部署方法中任一节点执行的对应步骤,本发明实施例不再赘述。
基于同一发明构思,参照图6,本发明实施例还提供一种软件部署装置,所述装置位于私有链网络中任一节点上,所述装置包括:
处理单元201,用于在执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述装置执行的接收数据的操作/发送数据的操作;
发送单元202,用于将所述数据操作记录发送给所述私有链网络中除自身所在节点外的所有其它节点,使所述所有其它节点保存所述数据操作记录。
以上各单元所执行操作的具体实现方式可以参照本发明实施例上述软件部署方法中对应的步骤,本发明实施例不再赘述。
基于同一发明构思,参照图7,本发明实施例还提供一种软件部署设备,包括:
至少一个处理器301,以及
与所述至少一个处理器301通信连接的存储器302、通信接口303;
其中,所述存储器302存储有可被所述至少一个处理器301执行的指令,所述至少一个处理器301通过执行所述存储器302存储的指令,利用所述通信接口303执行本发明实施例提供的所述软件部署方法。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例提供的所述软件部署方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (15)

1.一种软件部署方法,其特征在于,应用于私有链网络,所述私有链网络包括多个相互通信的节点;所述方法包括:
所述私有链网络中的任一节点执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述任一节点执行的接收数据的操作/发送数据的操作;
所述任一节点将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点,使所述所有其它节点保存所述数据操作记录;
所述数据为预设指令,所述预设指令用于指示所述任一节点执行预设操作;
在所述任一节点将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,所述方法包括:
在确定超过预定数量的其他节点验证成功时,响应所述预设指令,执行所述预设操作;其中,所述验证成功表征:其他节点收到的接收记录包含的哈希值与所述其他节点收到的发送记录的哈希值一致。
2.如权利要求1所述的方法,其特征在于,所述私有链网络中的各个节点保存有自身的私钥和其他节点的公钥;
所述任一节点在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之前,所述方法还包括:
采用自身的私钥对所述数据操作记录进行数字签名,以使所述所有其它节点在接收到所述数据操作记录后采用所述任一节点的公钥验证所述操作记录是否有效。
3.如权利要求1所述的方法,其特征在于,当所述数据操作为接收数据的操作时,所述任一节点在生成一条与所述数据操作对应的数据操作记录之前,所述方法还包括:
所述任一节点接收发送方发送的发送记录;其中,所述发送记录指示所述发送方发送所述数据的操作;
所述任一节点生成一条与所述数据操作对应的数据操作记录,包括:
所述任一节点计算所述发送记录的哈希值,根据所述哈希值生成一条与所述数据操作对应的接收记录;其中,所述接收记录包含所述发送记录的哈希值。
4.如权利要求1-3任一项所述的方法,其特征在于,所述任一节点为交付节点、存储节点、安装节点、管理节点中的任一;
所述数据操作为:与交付/传输/安装软件包相关的接收数据的操作/发送数据的操作。
5.如权利要求4所述的方法,其特征在于,所述任一节点为管理节点,所述软件包为采用对称密钥加密后的软件包,所述管理节点保存有所述对称密钥;
所述数据操作为:向安装节点发送所述对称密钥,以使所述安装节点在安装所述软件时采用所述对称密钥对所述加密后软件包解密。
6.如权利要求1-3任一项所述的方法,其特征在于,在所述私有链网络进行软件部署的过程中,所述方法还包括:
所述任一节点接收新节点发送的请求加入所述私有链网络的请求指令;
在确定所述新节点与所述私有链网络中的所有节点都具有连接的权限时,将所述新节点加入所述私有链网络中。
7.一种软件部署系统,其特征在于,包括多个可相互通信的节点,所述多个可相互通信的节点在同一私有链网络中;所述系统中的任一节点用于:
在执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述任一节点执行的接收数据的操作/发送数据的操作;
将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点,使所述所有其它节点保存所述数据操作记录;
所述数据为预设指令,所述预设指令用于指示所述任一节点执行预设操作;
所述任一节点还用于:在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,在确定超过预定数量的其他节点验证成功时,响应所述预设指令,执行所述预设操作;其中,所述验证成功表征:其他节点收到的接收记录包含的哈希值与所述其他节点收到的发送记录的哈希值一致。
8.如权利要求7所述的系统,其特征在于,所述私有链网络中的各个节点保存有自身的私钥和其他节点的公钥;所述任一节点还用于:
在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之前,采用自身的私钥对所述数据操作记录进行数字签名,以使所述所有其它节点在接收到所述数据操作记录后采用所述任一节点的公钥验证所述操作记录是否有效。
9.如权利要求7所述的系统,其特征在于,当所述数据操作为接收数据的操作时,所述任一节点还用于:在生成一条与所述数据操作对应的数据操作记录之前,接收发送方发送的发送记录;其中,所述发送记录指示所述发送方发送所述数据的操作;
所述任一节点用于生成一条与所述数据操作对应的数据操作记录,包括:计算所述发送记录的哈希值,根据所述哈希值生成一条与所述数据操作对应的接收记录;其中,所述接收记录包含所述发送记录的哈希值。
10.如权利要求7-9任一项所述的系统,其特征在于,所述任一节点为交付节点、存储节点、安装节点、管理节点中的任一;
所述数据操作为:与交付/传输/安装软件包相关的接收数据的操作/发送数据的操作。
11.如权利要求10所述的系统,其特征在于,所述任一节点为管理节点,所述软件包为采用对称密钥加密后的软件包,所述管理节点保存有所述对称密钥;
所述数据操作为:向安装节点发送所述对称密钥,以使所述安装节点在安装所述软件时采用所述对称密钥对所述加密后软件包解密。
12.如权利要求7-9任一项所述的系统,其特征在于,所述任一节点还用于:
在所述私有链网络进行软件部署的过程中,接收新节点发送的请求加入所述私有链网络的请求指令;
在确定所述新节点与所述私有链网络中的所有节点都具有连接的权限时,将所述新节点加入所述私有链网络中。
13.一种软件部署装置,其特征在于,所述装置位于私有链网络中任一节点上,所述装置包括:
处理单元,用于在执行数据操作后,生成一条与所述数据操作对应的数据操作记录,并存储所述数据操作记录;其中,所述数据操作为所述私有链网络进行软件部署时,所述装置执行的接收数据的操作/发送数据的操作;
发送单元,用于将所述数据操作记录发送给所述私有链网络中除自身所在节点外的所有其它节点,使所述所有其它节点保存所述数据操作记录;所述数据为预设指令,所述预设指令用于指示所述任一节点执行预设操作;
所述处理单元还用于在将所述数据操作记录发送给所述私有链网络中除自身外的所有其它节点之后,在确定超过预定数量的其他节点验证成功时,响应所述预设指令,执行所述预设操作;其中,所述验证成功表征:其他节点收到的接收记录包含的哈希值与所述其他节点收到的发送记录的哈希值一致。
14.一种软件部署设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行权利要求1至6中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1至6中任一项所述的方法。
CN201711419591.6A 2017-12-25 2017-12-25 一种软件部署方法及系统 Active CN109960512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711419591.6A CN109960512B (zh) 2017-12-25 2017-12-25 一种软件部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711419591.6A CN109960512B (zh) 2017-12-25 2017-12-25 一种软件部署方法及系统

Publications (2)

Publication Number Publication Date
CN109960512A CN109960512A (zh) 2019-07-02
CN109960512B true CN109960512B (zh) 2022-05-31

Family

ID=67020804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711419591.6A Active CN109960512B (zh) 2017-12-25 2017-12-25 一种软件部署方法及系统

Country Status (1)

Country Link
CN (1) CN109960512B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825097A (zh) * 2019-11-21 2021-05-21 树根互联技术有限公司 物联网数据处理方法、系统、设备及存储介质
CN111342971B (zh) * 2020-02-07 2023-08-08 数据通信科学技术研究所 一种拜占庭共识方法和系统
US11915014B2 (en) 2021-08-18 2024-02-27 Microsoft Technology Licensing Consensus based determination of stable configuration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452785A (zh) * 2016-09-29 2017-02-22 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
CN106796524A (zh) * 2016-12-27 2017-05-31 深圳前海达闼云端智能科技有限公司 记录应用程序配置信息的方法、装置和电子设备
CN106982203A (zh) * 2017-01-06 2017-07-25 中国银联股份有限公司 基于区块链技术的鲁棒的atm网络系统及其信息处理方法
CN107077557A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
CN107135209A (zh) * 2017-04-21 2017-09-05 天津理工大学 一种基于区块链的数据共享方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452785A (zh) * 2016-09-29 2017-02-22 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
CN106796524A (zh) * 2016-12-27 2017-05-31 深圳前海达闼云端智能科技有限公司 记录应用程序配置信息的方法、装置和电子设备
CN107077557A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
CN106982203A (zh) * 2017-01-06 2017-07-25 中国银联股份有限公司 基于区块链技术的鲁棒的atm网络系统及其信息处理方法
CN107135209A (zh) * 2017-04-21 2017-09-05 天津理工大学 一种基于区块链的数据共享方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区块链的IMIX传输系统的设计与实现;陈何清;《中国优秀博硕士学位论文全文数据库(硕士)》;20161015;第14-15、23-24页 *

Also Published As

Publication number Publication date
CN109960512A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN111144881B (zh) 对资产转移数据的选择性访问
CN113438289B (zh) 基于云计算的区块链数据处理方法及装置
CN109327528B (zh) 一种基于区块链的节点管理方法和装置
CN111090888B (zh) 验证合约的方法及装置
US10848315B2 (en) Contract agreement method, agreement verification method, contract agreement system, agreement verification device, contract agreement device, contract agreement program and agreement verification program
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
KR102145701B1 (ko) 안전한 다자 계산에서 참가자에 의한 입력 데이터의 허위 표시 방지
CN115210741B (zh) 部分有序的区块链
US8572673B2 (en) Data processing apparatus and method
CN113328997B (zh) 联盟链跨链系统及方法
CN110601830B (zh) 基于区块链的密钥管理方法、装置、设备及存储介质
CN109960512B (zh) 一种软件部署方法及系统
CN111212139A (zh) 对信任节点信息进行更新的方法及装置
CN111241593A (zh) 用于区块链节点的数据同步方法及装置
CN110119390B (zh) 基于区块链的金融信息外包管理系统
CN113992360A (zh) 一种基于区块链跨链的联邦学习方法及设备
CN110740038B (zh) 区块链及其通信方法、网关、通信系统和存储介质
CN112035896B (zh) 一种基于交易方式的电子合同存证系统
CN112069550A (zh) 一种基于智能合约方式的电子合同存证系统
US11563575B2 (en) Communication node, method of operating thereof and collaborative system
CN110852887B (zh) 获取去中心化应用集群中的交易处理状态的方法及装置
JP2021039588A (ja) 制御システム及び制御情報配信方法
CN115632774A (zh) 一种基于门限签名的分布式预言机实现方法及系统
CN111342970B (zh) 一种数字证书管理方法及系统
CN112182009A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518048, 10 floor, Guo Tong Building, 9023 Binhe Road, Futian District, Shenzhen, Guangdong.

Applicant after: CHINA MOBILE INFORMATION TECHNOLOGY Co.,Ltd.

Applicant after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: 518048, 10 floor, Guo Tong Building, 9023 Binhe Road, Futian District, Shenzhen, Guangdong.

Applicant before: CHINA MOBILE INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: China Mobile Communications Corp.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200327

Address after: Room 1006, building 16, yard 16, Yingcai North Third Street, future science city, Changping District, Beijing 102209

Applicant after: China Mobile Information Technology Co.,Ltd.

Applicant after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: 518048, 10 floor, Guo Tong Building, 9023 Binhe Road, Futian District, Shenzhen, Guangdong.

Applicant before: CHINA MOBILE INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

GR01 Patent grant
GR01 Patent grant