基于区块链的网络设备管理方法和设备与流程

文档序号:29161694发布日期:2022-03-09 00:54阅读:300来源:国知局
基于区块链的网络设备管理方法和设备与流程

1.描述了一种基于区块链的网络设备管理方法和设备。例如,管理方法可以用于恢复通信网络中无响应的网络设备。


背景技术:

2.在网络中,某些设备可能需要更新和配置改变。这种改变需要以安全、可验证的方式实施,因为它们只能由授权方进行。第三方,无论是否怀有恶意,都不应有能力进行这种改变。可以在这种环境下使用区块链。


技术实现要素:

3.本说明书中描述的不落入保护范围内的实施例、示例和特征(如果有的话)应被解释为理解有益于各种实施例的示例或落入保护范围内的示例。
4.一个或多个示例性实施例涉及一种用于管理网络设备的方法,所述方法包括,在被配置为远程控制所述网络设备的装置处:
[0005]-确定所述网络设备无响应;
[0006]-确定用于在所述网络设备处应用的补丁以解决所述无响应;
[0007]-将所述补丁发送到能够与所述网络设备通信的中间设备;
[0008]-用区块链网络对与所述补丁对应的第一事务进行签名,其中所述第一事务是由所述装置和所述中间设备签名的多重签名事务,并且其中所述第一事务指示将要获得的补丁结果;
[0009]-从所述中间设备接收所述补丁已经被应用的消息。
[0010]
根据示例性实施例,该方法还包括,在将所述补丁发送到所述中间设备之前:
[0011]-向所述中间设备发送将在网络设备(102)处执行的至少一个状态检查操作;
[0012]-从所述中间设备获得所述至少一个状态检查操作的结果;
[0013]-根据所述结果确定所述补丁的至少一部分。
[0014]
根据示例性实施例,第一事务包括:
[0015]-所述装置的标识符;
[0016]-所述中间设备的标识符;
[0017]-所述网络设备的标识符;
[0018]-所述补丁的哈希;
[0019]-描述所述补丁的预期结果的数据的哈希。
[0020]
根据一个示例性实施例,该方法还包括,从所述区块链中获得所述连接设备的第一状态信息;
[0021]-从所述连接设备获得所述连接设备的第二状态信息;
[0022]-当所述第一状态和所述第二状态信息匹配时确定成功恢复。
[0023]
一个或多个示例性实施例涉及用于管理网络设备的方法,该方法包括,在所述网
络设备处:
[0024]-从中间设备接收补丁;
[0025]-验证所述补丁的安全性并且在认为所述补丁是安全的情况下应用所述补丁;
[0026]-用区块链网络对与所述补丁对应的第二事务进行签名,其中所述第二事务是由所述网络设备和所述中间设备签名的多重签名事务,并且其中所述第二事务包括指示所述补丁应用的报告的信息。
[0027]
根据一个实施例,第二事务包括:
[0028]
所述装置的标识符;
[0029]
所述中间设备的标识符;
[0030]
所述网络设备(102)的标识符;
[0031]
所述补丁的哈希;
[0032]
描述所述补丁的实际结果的数据的哈希。
[0033]
根据一个实施例,验证所述补丁包括:
[0034]-通过检查存储在链接到所述第二事务的区块链中的第一事务中存储的所述中间设备的身份与所述网络设备从其接收补丁的所述中间设备的身份相同,来验证所述中间设备的身份;
[0035]-验证从所述中间设备接收的补丁的哈希与存储在所述第一事务中用于该补丁的哈希相同;
[0036]-验证所述网络设备自身的身份与所述第一事务中存储的将要打补丁的设备的身份相同;
[0037]-验证提供补丁并在所述第一事务中的区块链中指示的装置是否是可信设备和/或是否允许所述网络设备从所述装置接收补丁。
[0038]
根据一个实施例,该方法还包括,在接收所述补丁之前,从所述中间设备获得至少一个状态检查操作,执行所述至少一个检查操作,以及将所述至少一个检查操作的结果报告给所述中间设备。
[0039]
一个或多个实施例涉及一种用于管理网络设备的方法,所述方法包括,在中间设备处:
[0040]-从被配置为远程控制所述网络设备的装置接收补丁;
[0041]-用区块链网络对与所述补丁对应的第一事务进行签名,其中所述第一事务是也由所述装置签名的多重签名事务,并且其中所述第一事务指示将获得的补丁结果;
[0042]-向所述网络设备提供所述补丁以供所述网络设备应用;
[0043]-用区块链网络对与所述补丁对应的第二事务进行签名,其中所述第二事务是也由所述网络设备签名的多重签名事务,并且其中所述第二事务包括指示所述补丁应用的报告的信息;
[0044]-向所述装置提供指示所述补丁的应用的消息。
[0045]
根据一个实施例,该方法还包括,在接收所述补丁之前:
[0046]-从所述装置(101)获得(203)将在所述网络设备处执行的至少一个状态检查操作;
[0047]-从所述网络设备(102)收集与所述至少一个状态检查操作相对应的(205)状态数
据;
[0048]-向所述装置(101)提供(206)所述状态数据。
[0049]
一个或多个示例性实施例涉及一种系统中的方法,该系统包括用于通过中间设备向网络设备提供补丁的装置,该方法包括在区块链网络的设备部分:
[0050]-接收第一事务,第一事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、描述所述补丁的预期结果的数据的哈希;
[0051]-验证所述第一事务,所述验证包括验证所述第一事务由所述装置和所述中间设备双方进行签名;
[0052]-在第一事务的验证是肯定的情况下将所述第一事务添加到区块链。
[0053]
根据示例性实施例,该方法还包括:
[0054]-接收第二事务,第二事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、描述所述补丁的实际结果的数据的哈希、指向所述第一事务的指针;
[0055]-验证所述第二笔事务,包括:
[0056]

验证所述第二事务由所述中间设备和所述网络设备双方进行签名;和
[0057]

验证所述描述所述补丁的实际结果的数据的哈希等于所述描述所述补丁的预期结果的数据的哈希;
[0058]-在对所述第二事务的所述验证是肯定的情况下将所述第二事务添加到所述区块链。
[0059]
一个或多个示例实施例涉及用于远程控制网络设备的装置,包括:用于确定所述网络设备无响应的部件;用于确定用于在所述网络设备处应用的补丁以解决所述无响应的部件;用于将所述补丁发送到能够与所述网络设备通信的中间设备的部件;用于用区块链网络对与所述补丁对应的第一事务进行签名的部件,其中所述第一事务是由所述装置和所述中间设备签名的多重签名事务,并且其中所述第一事务指示将要获得的补丁结果;用于从所述中间设备接收所述补丁已经被应用的消息的部件。
[0060]
根据示例性实施例,该装置还包括用于在向所述中间设备发送所述补丁之前向所述中间设备发送将在所述网络设备处执行的至少一个状态检查操作的部件;用于在将所述补丁发送到所述中间设备之前获得来自所述中间设备的所述至少一个状态检查操作的结果的部件;用于在将所述补丁发送到所述中间设备之前根据所述结果确定所述补丁的部件。
[0061]
根据示例性实施例,该装置还包括至少一个处理器和至少一个包括计算机代码的存储器,该计算机代码被配置为与该至少一个处理器一起使得该装置生成所述第一事务,所述第一事务包括:
[0062]-所述装置的标识符;
[0063]-所述中间设备的标识符;
[0064]-所述网络设备的标识符;
[0065]-所述补丁的哈希;
[0066]-描述所述补丁的预期结果的数据的哈希。
[0067]
根据示例性实施例,该装置还包括用于基于链接到所述第一事务的第二事务从所
述区块链网络获得所述连接设备的第一状态信息的部件;用于从所述连接设备获得所述连接设备的第二状态信息的部件;用于在所述第一状态和所述第二状态信息匹配时确定成功恢复的部件。
[0068]
一个或多个示例性实施例涉及一种网络设备,包括:用于从中间设备接收补丁的部件;用于验证所述补丁的安全性并且在认为所述补丁是安全的情况下应用所述补丁的部件;用于用区块链网络对与所述补丁对应的第二事务进行签名的部件,其中所述第二事务是由所述网络设备和所述中间设备签名的多重签名事务,并且其中所述第二事务包括指示所述补丁应用的报告的信息。
[0069]
根据示例性实施例,该网络设备包括至少一个处理器和包括计算机代码的至少一个存储器,该计算机代码被配置为与该至少一个处理器一起使得该装置生成所述第二事务,所述第二事务包括:
[0070]-所述装置的标识符;
[0071]-所述中间设备的标识符;
[0072]-所述网络设备的标识;
[0073]-所述补丁的哈希;
[0074]-描述所述补丁的实际结果的数据的哈希。
[0075]
根据示例性实施例,该网络设备包括用于通过以下操作验证所述补丁的部件:
[0076]-通过检查存储在链接到所述第二事务的区块链中的第一事务中所存储的所述中间设备的身份与所述网络设备从其接收补丁的所述中间设备的身份相同,来验证所述中间设备的身份;
[0077]-验证从所述中间设备接收到的补丁的哈希与存储在所述第一事务中用于该补丁的哈希相同;
[0078]-验证所述网络设备自身的身份与所述第一事务中所存储的要打补丁的设备的身份相同;
[0079]-验证提供补丁并在所述第一事务中的区块链中指示的装置是否是可信设备和/或是否允许网络设备从所述装置接收补丁。
[0080]
根据示例性实施例,网络设备包括用于从所述中间设备获得至少一个状态检查操作的部件,用于执行所述至少一个检查操作的部件,以及用于向所述中间设备报告所述至少一个检查操作的结果的部件。
[0081]
一个或多个示例性实施例涉及一种中间设备,所述中间设备包括:用于从被配置为远程控制网络设备的装置接收补丁的部件;用于用区块链网络对与所述补丁对应的第一事务进行签名,其中所述第一事务是也由所述装置签名的多重签名事务的部件,并且其中所述第一事务指示将被获得的补丁结果;用于向所述网络设备提供所述补丁以供所述网络设备应用的部件;用于用区块链网络对与所述补丁对应的第二事务进行签名,其中所述第二事务是也由所述网络设备签名的多重签名事务的部件,并且其中所述第二事务包括指示所述补丁应用的报告的信息;用于向装置提供指示所述补丁的应用的消息的部件。
[0082]
根据示例性实施例,中间设备包括用于从所述装置获得将在网络设备处执行的至少一个状态检查操作的部件;用于从所述网络设备收集与所述至少一个状态检查操作相对应的状态数据的部件;用于向所述装置提供所述状态数据的部件。
[0083]
一个或多个示例性实施例涉及一种在系统中使用的区块链网络设备,该系统包括用于通过中间设备向网络设备提供补丁的装置,所述区块链网络设备包括:用于接收第一事务的部件,所述第一事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、描述所述补丁的预期结果的数据的哈希;用于验证所述第一事务并且在第一事务的所述验证是肯定的情况下将所述第一事务添加到区块链的部件,所述验证包括验证所述第一事务由所述装置和所述中间设备两者进行签名。
[0084]
根据示例性实施例,区块链网络设备还包括用于接收第二事务的部件,该第二事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、哈希描述所述补丁的实际结果的数据,指向所述第一事务的指针;和用于验证所述第二事务的部件,其中验证包括:
[0085]

验证所述第二事务由所述中间设备和所述网络设备双方进行签名;和
[0086]

验证所述描述所述补丁的实际结果的数据的哈希等于所述描述所述补丁的预期结果的数据的哈希,并且在对所述第二事务的所述验证是肯定的情况下将所述第二事务添加到所述区块链。
[0087]
至少一个其他示例性实施例提供了一种装置,该装置包括至少一个处理器和至少一个包括计算机程序代码的存储器。所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置鉴于远程控制网络设备来至少执行:
[0088]-确定所述网络设备无响应;
[0089]-确定用于在所述网络设备处应用的补丁以解决所述无响应;
[0090]-将所述补丁发送到能够与所述网络设备通信的中间设备;
[0091]-用区块链网络对与所述补丁对应的第一事务进行签名,其中所述第一事务是由所述装置和所述中间设备签名的多重签名事务,并且其中所述第一事务指示要获得的补丁结果;
[0092]-从所述中间设备接收所述补丁已经被应用的消息。
[0093]
至少一个其他示例性实施例提供了一种网络设备,所述网络设备包括至少一个处理器和至少一个包括计算机程序代码的存储器。至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得所述网络设备至少执行:
[0094]-从中间设备接收补丁;
[0095]-验证所述补丁的安全性并且在认为所述补丁是安全的情况下应用所述补丁;
[0096]-用区块链网络对与所述补丁对应的第二事务进行签名,其中所述第二事务是由所述网络设备和所述中间设备签名的多重签名事务,并且其中所述第二事务包括指示所述补丁应用的报告的信息。
[0097]
至少一个其他示例性实施例提供了一种中间设备,所述中假设被包括至少一个处理器和至少一个包括计算机程序代码的存储器。至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得中间设备至少执行:
[0098]-从被配置为远程控制所述网络设备的装置接收补丁;
[0099]-用区块链网络对与所述补丁对应的第一事务进行签名,其中所述第一事务是也由所述装置签名的多重签名事务,并且其中所述第一事务指示将被获得的补丁结果;
[0100]-向所述网络设备提供所述补丁以供所述网络设备应用;
[0101]-用区块链网络对与所述补丁对应的第二事务进行签名,其中所述第二事务是也由所述网络设备签名的多重签名事务,并且其中所述第二事务包括指示所述补丁应用的报告的信息;
[0102]-向装置提供指示所述补丁的应用的消息。
[0103]
通常,在上述装置、网络设备和中间设备中,至少一个存储器和计算机程序代码被配置为与这些设备的至少一个处理器一起使得这些设备执行一个或多个或本文公开的方法的所有步骤。
[0104]
至少一个其他示例性实施例提供了一种区块链网络设备,该区块链网络设备包括至少一个处理器和至少一个包括计算机程序代码的存储器。至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得所述区块链网络设备至少在包括用于通过中间设备向网络设备提供补丁的装置的系统中执行:
[0105]-接收第一事务,第一事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、描述所述补丁的预期结果的数据的哈希;
[0106]-验证所述第一事务,所述验证包括验证所述第一事务由所述装置和所述中间设备双方进行签名;
[0107]-在第一事务的验证是肯定的情况下将所述第一事务添加到区块链。
[0108]
至少一个其他示例性实施例提供了一种区块链网络设备,该区块链网络设备包括至少一个处理器和至少一个包括计算机程序代码的存储器。至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得所述区块链网络设备至少在包括用于通过中间设备向网络设备提供补丁的装置的系统中执行:
[0109]-接收第二事务,第二事务包括所述装置的标识符、所述中间设备的标识符、所述网络设备的标识符、所述补丁的哈希、描述所述补丁的实际结果的数据的哈希、指向所述第一事务的指针;
[0110]-验证所述第二笔事务,包括:
[0111]

验证所述第二事务由所述中间设备和所述网络设备双方进行签名;和
[0112]

验证所述描述所述补丁的实际结果的数据的哈希等于所述描述所述补丁的预期结果的数据的哈希;
[0113]-在对所述第二事务的所述验证是肯定的情况下将所述第二事务添加到所述区块链。
[0114]
至少一个示例实施例提供了一种存储计算机可执行指令的非暂时性计算机可读介质,当由装置、网络设备、中间设备或区块链网络设备处的至少一个处理器执行时,该计算机可执行指令引起执行本文所述方法的一个或多个或所有步骤的设备。
附图说明
[0115]
从下文给出的具体实施方式和附图将更全面地理解示例实施例,附图仅作为说明给出:
[0116]
图1是根据示例性实施例的系统的示图;
[0117]
图2a是根据示例性实施例的流程图的第一部分;
[0118]
图2b是根据示例性实施例的流程图的第二部分;
[0119]
图3是根据示例性实施例的适于实现方法的设备的框图;以及
[0120]
图4是图示了根据示例性实施例的区块链中的事务记录的块图。
[0121]
应当注意,这些附图旨在图示出在某些示例实施例中使用的方法、结构和/或材料的一般特征并补充下面提供的书面描述。然而,这些附图不是按比例绘制的,并且可能无法精确反映任何给定实施例的精确结构或性能特性,并且不应被解释为限定或限制示例实施例所包含的值或属性的范围。在各个附图中使用相似或相同的附图标记旨在指示相似或相同的元件或特征的存在。
具体实施方式
[0122]
现在将参考附图更全面地描述各种示例性实施例。然而,本文公开的具体结构和功能细节仅表示描述示例实施例的目的。示例性实施例可以以许多替代形式来体现并且不应被解释为仅限于本文阐述的实施例。应当理解,无意将示例实施例限制为所公开的特定形式。
[0123]
本领域技术人员应当理解,本文中任何功能、引擎、框图、流程图、状态转换图和/或流程图均表示体现本发明原理的说明性电路系统的概念图。类似地,应当理解,任何流程图、流程图表、状态转换图、伪代码等都表示各种过程,该过程可以被基本上表示在计算机可读介质中并因此由计算机或处理装置执行,无论这种计算机或处理器是否被明确显示。
[0124]
每个所描述的功能、引擎、块、步骤都可以在硬件、软件、固件、中间件、微代码或其任何合适的组合中实现。如果以软件实现,则功能、引擎、框图和/或流程图的框可以通过计算机程序指令/软件代码实现,计算机程序指令/软件代码可以通过计算机可读介质存储或传输,或被加载到通用计算机、专用计算机或其他可编程处理装置和/或系统中以产生机器,以使在计算机或其他可编程处理装置上执行的计算机程序指令或软件代码创建用于实现本文所述功能的部件。
[0125]
在本说明书中,标示为“被配置为执行
……
(某个功能)的部件”的功能块应被理解为包括电路系统的功能块,该电路系统适于执行或被配置为执行某个功能。因此,被配置为执行某功能的部件并不暗示这种装置(在给定的时刻)必然执行所述功能。此外,本文中描述为“部件”的任何实体可以对应于或实现为“一个或多个模块”、“一个或多个设备”、“一个或多个单元”等。当由处理器提供时,这些功能可以由单个专用处理器、单个共享处理器或多个单独的处理器提供,其中一些处理器可以共享。此外,术语“处理器”或“控制器”的明确使用不应被解释为专门指能够执行软件的硬件,而是可以隐含地包括但不限于数字信号处理器(dsp)硬件、网络处理器、专用集成电路系统(asic)、现场可编程门阵列(fpga)、用于存储软件的只读存储器(rom)、随机存取存储器(ram)和非易失性存储器。其他常规的或定制的硬件也可以被包括在内。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互来执行,或者甚至可以手动执行,随着从环境中理解得更具体的能够由实施者选择的特定技术。
[0126]
虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行、并发或同时执行。此外,可以重新安排操作的顺序。一个过程可能会在其操作完成时终止,但也可能有图中未包括的附加步骤。过程可以对应方法、函数、程序、子例程、子程序等。当进程对应函数时,其终止可以对应函数返回到调用函数或主函数。
[0127]
如本文所公开的,术语“存储介质”、“计算机可读存储介质”或“非暂时性计算机可读存储介质”可以是能够被计算机/处理设备读取、写入或更普遍地访问的任何物理介质。计算机存储介质的示例包括但不限于:闪存驱动器或其他闪存设备(例如,存储密钥、记忆棒、usb密钥驱动器)、cd-rom或其他光学储存器、dvd、磁盘储存器或其他磁性存储设备、固态存储器、存储器芯片、ram、rom、eeprom、智能卡、关系数据库管理系统、传统数据库,或任何其他可以用于以计算机处理器可以读取的指令或数据结构的形式来携带或存储程序代码的合适介质。此外,可以使用各种形式的计算机可读介质将指令发射或携带到计算机,包括路由器、网关、服务器或其他传输设备,有线(同轴电缆、光纤、双绞线、dsl电缆)或无线(红外线、无线电、蜂窝、微波)。指令可以包括来自任何计算机编程语言的代码,包括但不限于:汇编、c、c++、basic、sql、mysql、html、php、python、java、javascript等。计算机可读介质的实施例包括但不限于计算机存储介质和通信介质,包括便于将计算机程序从一个地方传送到另一个地方的任何介质。具体地,用于执行本文描述的实施例的程序指令或计算机可读程序代码可以全部或部分地、临时或永久地被存储在包括一个或多个存储介质的本地或远程存储设备的非暂时性计算机可读介质上。
[0128]
此外,示例实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可以被存储在机器或诸如计算机可读存储介质之类的计算机可读介质中。当在软件中实现时,一个或多个处理器将执行必要的任务。例如,如上所述,根据一个或多个示例实施例,至少一个存储器可以包括或存储计算机程序代码,并且至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使得网络元件或网络设备执行必要的任务。此外,处理器、存储器和被编码为计算机程序代码的示例算法充当一种部件,该部件用于提供或引起本文讨论的操作的性能。
[0129]
计算机程序代码的代码段可以表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、变量、参数或存储器内容而被耦合到另一代码段或硬件电路。信息、变量、参数、数据等可以经由任何合适的技术而被传递、转发或发射,这些技术包括存储器共享、消息传递、令牌传递、网络传输等。
[0130]
如本文所用,术语“包括”和/或“具有”被定义为包括(即,开放语言)。本文使用的术语“耦合”被定义为连接,但不一定是直接连接,也不一定是机械连接。源自“指示”一词的术语(例如,“指示了”和“指示”)旨在涵盖所有可用于传达或引用所指示的对象/信息的各种技术。一些(但不是全部)可用于传达或引用所指示的对象/信息的技术示例包括所指示的对象/信息的传送、所指示的对象/信息的标识符的传送、用于生成所指示的对象/信息的传送,所指示的对象/信息的某些部分或段的传送,所指示的对象/信息的某些派生的传送,以及表示所指示的对象/信息的某些符号的传送。
[0131]
尽管这里可以使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个元件与另一个元件。例如,在不脱离本公开的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所用,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。
[0132]
根据示例实施例,网络元件、网络设备、数据服务器、网络资源控制器、网络装置、
客户端、路由器、网关、网络节点、计算机、基于云的服务器、网络服务器、应用服务器、代理或代理服务器等,可以是(或包括)硬件、固件、硬件执行软件或其任何组合。这种硬件可包括处理或控制电路系统,诸如但不限于一个或多个处理器、一个或多个cpu、一个或多个集成电路、一个或多个控制器、一个或多个alu、一个或多个dsp、一个或多个微型计算机、一个或多个fpga、一个或多个soc、一个或多个plu、一个或多个微处理器、一个或多个asic,或能够以定义的方式响应并执行指令的一个或多个任何其他设备。
[0133]
如在本技术中使用的,术语“电路系统”可以指以下一项或多项或全部:
[0134]
(a)纯硬件电路实现(诸如,仅在模拟和/或数字电路系统中的实现)和
[0135]
(b)硬件电路和软件的组合,诸如(如适用):
[0136]
(i)(一个或多个)模拟和/或数字硬件电路与软件/固件的组合,以及
[0137]
(ii)带有软件的(一个或多个)硬件处理器(包括数字信号处理器)的任何部分、软件和(一个或多个)存储器,它们一起工作以使得装置(诸如移动电话或服务器)执行各种功能)和
[0138]
(c)(一个或多个)硬件电路和/或(一个或多个)处理器,诸如(一个或多个)微处理器或(一个或多个)微处理器的一部分,其需要软件(例如,固件)进行操作,但在不需要该软件来操作时该软件可能不存在。
[0139]
电路系统的此定义适用于此术语在本技术中——包括在任何权利要求中的所有使用。作为另一个示例,如本技术中所使用的,术语电路系统还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路系统或处理器的一部分及它的(或它们的)伴随软件和/或固件的实现。例如并且如果适用于特定的权利要求元素,术语电路系统还涵盖用于移动设备的基带集成电路系统或处理器集成电路系统,或服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路系统。
[0140]
图1是其中可以实现示例性实施例的示例系统的框图。该系统包括被称为补丁发起器pi 101的远程设备、被称为连接设备cd 102的网络设备、操作员设备od 103和区块链网络bn 104。根据示例性实施例,单个数字指示不同实体之间的某些通信步骤。虽然四个实体101至104在图1中被示为单个设备,但是网络可以包括多于一个的每种设备,例如以在扩展网络时提供所需的资源。
[0141]
在图1的系统中,诸如但不限于连接设备102之类的网络设备由补丁发起器101管理。连接设备102可以例如由补丁发起器101更新和/或配置(“打补丁”)。例如,补丁可以包括对文件系统、数据库、任何数据结构、系统配置或软件更新的改变。纯粹作为非限制性的示例,补丁可以包含在linux系统中的网络接口配置文件中,以防原始配置文件被改变并且不再允许该连接设备连接到互联网。
[0142]
根据示例性实施例,补丁发起器可以是任何种类的网络设备,例如服务器、计算机或能够并被配置为执行本文描述的任务的任何其他设备。
[0143]
根据示例性实施例,连接设备可以是任何种类的网络设备,通常包括但不限于诸如智能电话、蜂窝电话或可穿戴设备之类的便携式设备、平板电脑、计算机、服务器、物联网(iot)设备、个人数字助理
……
或可能需要被更新和/或配置的连接到网络的任何其他设备。根据示例性实施例,连接设备102包含代理,其可以是软件组件,用于理解和应用补丁发起器所需的改变并且用于与操作员设备103和区块链网络104通信,如下文所述。
[0144]
根据示例性实施例,操作员设备103是可以通过诸如电缆(例如,使用诸如usb之类的接口)之类的物理连接或无线接口(例如,基于ieee802.11)或其他类型的通信链接而连接到连接设备的设备。作为示例,操作员设备103可以是智能电话、平板电脑、膝上型计算机中的一个。
[0145]
区块链网络104是存储和处理区块链数据集的计算机或服务器或其他处理设备的网络。众所周知,区块链是通过以可验证方式记录的密码学链接的事务的分布式账本。每个区块包含前一个区块的加密哈希、时间戳、nonce(“仅使用一次的数字”)和事务数据。区块链网络的设备之间的通用协议指定如何创建和验证新的区块。不可能在不改变所有后续区块中的数据的情况下改变任何给定区块中的数据。区块链网络的各种设备存储区块链的副本,并且使用共识协议来保持副本同步。
[0146]
根据示例性实施例,记录在区块链中的事务包括补丁请求(

preq’)和补丁报告(

prep’)。补丁请求包含补丁过程的预期结果,例如其可能包括前面提到的改变。补丁报告包含补丁过程的结果。在正确应用补丁的情况下,在preq和prep中指示的改变应该匹配。
[0147]
可以实现用于基于区块链的完整性保护系统的双向握手协议,以允许补丁发起器向连接设备102发送补丁。为此,补丁请求(preq)由补丁发起器发送到区块链网络。preq由补丁发起器签名。一旦补丁请求被区块链网络验证(即,带有作为事务的补丁请求的区块已被添加到区块链中,并且补丁发起器可以获得验证确认),补丁发起器就将对应的补丁发送到要打补丁的连接设备。连接设备检查它接收的补丁是否是在区块链中为其记录了补丁请求的补丁。
[0148]
根据示例性实施例,由连接设备进行补丁应用可以包括创建要打补丁的数据或软件的两个实例。在第二实例上执行打补丁过程以确定该补丁是安全的。补丁报告(prep)由连接设备生成,由连接设备签名并被发送到区块链网络以进行验证。验证包括将prep的哈希与对应preq的哈希进行匹配。prep和preq都在区块链内链接。这种链接可以通过将preq的哈希插入到prep(在图4中标记为“事务依赖哈希”)中来实现。连接设备等待区块链网络对补丁报告的验证,以删除第二实例并将现在标记为安全的补丁应用到第一实例。根据示例性实施例,可以(例如,由补丁发起器)运行审计以确定安装在连接设备上的补丁是否是预期的补丁。
[0149]
在某些情况下,就连接设备是无响应的而言,补丁发起器101可能无法到达连接设备102。连接设备无响应的原因可能有所不同——连接设备可能已被恶意用户或诚实用户破坏,设备行为可能有问题(例如连接设备102内的代理可能无法正常工作,连接设备可能配置错误,以及可能无法响应要进行的改变),补丁发起器和连接设备之间的网络链接可能已被切断,或者连接设备可能只是拒绝响应或已离线。可能存在其他原因。在这种情况下,由补丁发起器生成、在区块链内接受和挖掘、并从链下发送到连接设备的事务可能不会产生想要的效果。
[0150]
补丁发起器确定连接设备是否是无响应的并发起三向握手协议,涉及连接设备102和操作员设备103。
[0151]
根据示例性实施例,在第一步骤中,如图1中所示,确定操作员设备103——操作员设备103充当补丁发起器101和连接设备102之间的中介。例如,补丁发起器可以获得操作员列表(或已经存储了列表),这些操作员例如可以属于客户(即,拥有连接设备102)或服务提
供商。操作员设备103与每个操作员相关联。补丁发起器和操作员设备身份(例如,公钥)由客户或服务提供商签名,因此可以被轻松验证。这可以防止虚假操作员下载由补丁发起器生成的补丁,或防止补丁发起器应用恶意补丁。一旦补丁发起器已经选择操作员设备,它就会向此操作员设备发送关于要被打补丁的连接设备的信息。此信息可以包括能够识别连接设备102的数据(诸如标识符),并且还可以包含关于如何到达它的信息(例如,设备的物理位置,或关于如何通过网络连接到达它的信息,诸如适当的地址)。
[0152]
根据变型实施例,该信息还包括描述连接设备的连接性和/或接口资源(例如,其物理和/或无线接口、用户接口规范和/或控制、软件版本等)的数据。
[0153]
补丁发起器101还发送使操作员设备103能够生成连接设备状态数据的信息。此信息可以包括以下中的至少一个:要应用到连接设备102或由连接设备102应用的一个或多个程序,要在连接设备102上或由连接设备102执行的一个或多个命令,要在连接设备上启动或由连接设备启动的一个或多个脚本,要执行的一个或多个审计查询、其他能够生成状态信息的数据。该信息可能需要以下一项或多项:操作员的手动干预、由操作员设备103执行的自动执行。
[0154]
根据变型实施例,单个操作员设备102可以从多个补丁发起器101接收信息。
[0155]
根据变型实施例,单个操作员设备可以接收用于多个连接设备的目标连接设备身份和状态检查信息。
[0156]
根据示例性实施例,在第二步骤中,操作员发起连接设备状态检查。为此,操作员可以将操作员设备103物理地连接到连接设备102。操作员设备103还可以通过诸如网络之类的其他方式连接到连接设备102。然后,操作员基于先前从补丁发起器101接收的信息继续执行动作。根据示例性实施例,操作员设备103自动向运行该脚本或状态检查软件的连接设备发送至少一个脚本或状态检查软件,生成状态数据并将状态数据发送到操作员设备。根据变型实施例,操作员设备被连接,连接到多个连接设备,以用于取回描述每个连接设备的状态的数据。
[0157]
此步骤的输出是描述连接设备状态的数据,根据示例性实施例,其可以采用由连接设备产生的日志文件的形式。根据变型实施例,日志文件是由操作员设备基于连接设备反馈数据产生的。根据变型实施例,描述连接设备状态的数据包括来自操作员的一个或多个注释和反馈数据中的至少一个,操作员在操作员设备上输入此数据。
[0158]
根据示例性实施例,在第三步骤中,描述连接设备状态的数据由操作员设备103传送到补丁发起器101。补丁发起器分析描述连接设备状态的数据。基于该分析,补丁发起器创建或以其他方式获得要在目标连接设备103上部署和执行的补丁。补丁由补丁发起器102发送到操作员设备103。
[0159]
根据示例性实施例,补丁可以包含期望操作员使用操作员设备在目标连接设备上执行的任何操作或操作集。例如,该操作或操作集可以被编码为一段软件或固件,和/或命令列表,和/或至少一个脚本。补丁由补丁发起器102签名,以使另一个设备或实体可以验证其真实性和完整性。这还可以防止未知或不受信任的补丁发起器生成可能恶意的补丁。
[0160]
根据变型实施例,补丁还可以包括至少一个要应用到连接设备的程序。该程序可由操作员执行。
[0161]
根据示例性实施例,在第四步骤中,使用多重签名事务将表示补丁的补丁请求
preq存储在区块链数据结构中。多重签名事务(也称为

multisig’事务)是一种必须由多于一个的实体签名的事务。根据示例性实施例,由补丁发起器发起的preq事务由补丁发起器101和操作员设备103签名。补丁发起器和操作员设备的分别的签名提供了保护以分别免受补丁发起器和操作员设备的否认。多重签名事务还可以防止恶意实体创建用于安装在目标连接设备上的假补丁。区块链网络104向补丁发起器101和操作员设备103两者发送确认。然后,操作员可以开始在连接设备102处的补丁部署。
[0162]
根据示例性实施例,在第五步骤中,操作员设备103连接到连接设备101并且补丁被应用。
[0163]
根据示例性实施例,应用补丁可以包括:在连接设备102上执行从补丁发起器101获得的一个或多个程序和/或软件模块,和/或改变连接设备的设置和/或参数。
[0164]
根据示例性实施例,连接设备102在应用补丁之前执行安全检查。在这些检查之前,连接设备从操作员设备接收对包含针对将应用补丁的preq的区块链内的事务的引用。
[0165]
a.连接设备102验证操作员设备的身份,例如,通过检查存储在区块链preq中的操作员设备的身份与它从补丁接收的操作员设备的身份是否相同。这是通过验证操作员设备已对preq事务进行签名来完成的。
[0166]
b.连接设备通过验证从操作员设备接收到的补丁的哈希是否与存储在区块链中用于该补丁的哈希相同,来检查补丁是否已经被篡改。
[0167]
c.连接设备检查它自己的身份与区块链中preq中存在的要打补丁的连接设备的身份相对应。为此,preq事务包含连接设备的id(在图4中被称为

目标设备/类别id’)。
[0168]
d.连接设备检查区块链preq事务中指示的补丁发起器101是否是可信设备和/或是否允许连接设备接收来自特定补丁发起器的补丁。
[0169]
根据变型实施例,连接设备检查它从其接收补丁的操作员设备是可信设备,在这种情况下,上述步骤不是必需的。
[0170]
根据示例性实施例,在第六步骤中,一旦已经应用了补丁,则连接设备102生成描述补丁处理结果的例如采用日志的形式的数据,并将其提供给操作员设备103。该数据适于允许操作员设备确定打补丁过程是否成功。现在再次起作用的连接设备生成将添加到区块链的补丁报告prep事务。此prep事务由操作员设备103和连接设备102二者进行多重签名。双重签名是区块链事务被接受的先决条件。如前所述,prep包含描述在应用补丁期间在连接设备内执行的操作列表的数据的哈希。此哈希通常与补丁请求preq中预期的补丁操作的数据的哈希相同。
[0171]
根据示例性实施例,在第七步骤中,可以是补丁发起器101的网络设备可以对连接设备102执行审计,以验证补丁已被正确应用。
[0172]
图2a和图2b表示根据示例性实施例的补丁发起器、操作员设备、连接设备和区块链网络之间的详细流程序列。
[0173]
在步骤200中,补丁发起器确定连接设备没有响应。根据示例性实施例,补丁发起器向连接设备发送消息。例如,在超时后,补丁发起器会推断连接设备没有响应。
[0174]
在步骤201中,补丁发起器向其选择的并且将被赋予恢复权利的操作员设备发送消息,恢复即对无响应和/或表现得好像离线、或崩溃、或有错误行为的远程连接设备打补丁。在步骤202中,操作员设备在确认消息中标记其参与。一旦操作员设备参与,在步骤203
中,补丁发起器就发送使操作员设备103能够生成连接设备状态数据的信息(例如,如前定义的,在图2a中被称为“参数”),以及要恢复和/或修复的连接设备的标识信息。
[0175]
在步骤204中,操作员设备将用于生成状态数据的信息发送到连接设备,并作为回应在步骤205中获得描述连接设备的状态的数据,例如参数值。步骤204和205循环直到已经完成所有需要的检查并获得参数。在步骤206中,状态信息由操作员设备发送到补丁发起器,从而给予补丁发起器对连接设备的状态概览。
[0176]
然后,补丁发起器可以确定连接设备发生故障的可能原因并且准备或选择适当的补丁以用于设备恢复。在步骤207中,补丁连同要被打补丁的连接设备的标识一起被上传到操作员设备。补丁发起器还创建补丁请求preq事务,该事务由补丁发起器和运营设备双方进行签名,即两个设备都声明来自补丁发起器101的补丁将被应用到连接设备102。除了防止签名提供的否认之外,双重签名允许对新事务进行验证的区块链网络矿工验证:将最终由操作设备安装在连接设备中的补丁与补丁发起器创建的补丁相同。在步骤208中,补丁发起器向区块链网络发送消息,消息包含preq事务、事务数据、要打补丁的连接设备的身份,以及由补丁发起器签名的补丁的哈希值。区块链网络在步骤209中确认此消息。操作员设备还在步骤210中向区块链网络发送用于preq事务的消息。此消息包含事务数据、要打补丁的连接设备的身份和由操作员设备签名的补丁的哈希。再次,区块链网络在步骤211中确认。
[0177]
根据变型的示例性实施例,preq事务在被发送到区块链网络之前由补丁发起器和操作员设备两者签名。例如。补丁发起器可以将其签名的preq发送给操作员设备,操作员设备对其签名并发射到区块链网络,或者将现在经多重签名的事务发送回补丁发起器,补丁发起器将经多重签名的事务发送到区块链网络。
[0178]
一旦多重签名事务被验证并接受,补丁就在步骤212中被发送到连接设备。操作员设备首先连接到连接设备。这可以通过以下来完成,例如到诸如usb连接之类的串行端口或服务端口的直接有线连接,或自组织(ad hoc)网络连接。一旦与连接设备的软件代理通信,操作员设备就会将补丁发射到连接设备。连接设备102在步骤213中验证补丁。这可以包括使用连接设备已知的适当公钥来检查补丁发起器的补丁签名。
[0179]
根据变型实施例,在连接设备102能够连接到区块链网络104的情况下,补丁的验证还可以包括从区块链网络获得先前接受的preq事务并检查包含preq事务中的补丁哈希是否对应于连接设备102发送的哈希(前面提到的安全检查的步骤“b”)。
[0180]
一旦补丁被成功验证,连接设备102就部署该补丁。
[0181]
根据示例性实施例,补丁的部署可以遵循与在双设备握手的框架中已经描述的相类似的过程,即,创建要打补丁的数据和/或软件的第二实例,将补丁应用到两个实例之一,验证补丁正确应用到一个实例,以及随后删除另一个实例。为清楚起见,在图2a和2b中没有示出这两个实例部署过程。
[0182]
多重签名补丁报告prep事务被创建以添加到区块链。prep包含事务数据、连接设备的标识符和补丁结果的哈希。此事务由连接设备和操作员设备签名以防止否认(分别为步骤214和215)。
[0183]
根据示例性实施例,补丁报告事务prep由连接设备102发起。
[0184]
根据示例性实施例,类似于上面针对preq提及的变型实施例,prep事务在被发送到区块链网络之前由操作员设备和连接设备两者签名。
[0185]
根据示例性实施例,如果满足以下条件,则区块链网络验证并接受事务:
[0186]-prep包含指向先前存储的preq的有效指针(图4中的“事务依赖哈希”);
[0187]-prep和preq共享相同的补丁哈希,并且该补丁由相同的补丁发起器和操作员设备签名;
[0188]-preq包含还发送prep的连接设备的标识符。
[0189]
如果事务被验证并接受,则区块链网络向连接设备和操作员设备两者发出接受确认(分别为步骤216和217)。此外,此确认向连接设备保证从操作员设备接收的补丁是由补丁发起器创建的补丁。
[0190]
此时,连接设备已经被打补丁并且应该已经恢复其预期行为。
[0191]
在打补丁过程中使用双实例的示例性实施例中,连接设备现在会使用已打补丁的实例。如果因在连接设备级别的任何原因打补丁失败,后者会在未打补丁的实例上退回。
[0192]
根据示例性实施例,在步骤218中,一旦操作员设备已经接收到区块链网络的确认,它就向补丁发起器发送消息以通知补丁过程的完成(

操作报告’消息)。该消息特别地包含连接设备的标识符。
[0193]
根据示例性实施例,在步骤219至222中,一旦它已经接收到

操作报告’消息,补丁发起器就一方面从区块链网络获得连接设备的最新状态,另一方面从连接设备获得连接设备的最新状态。根据示例性实施例,此信息可以是来自区块链网络和连接设备的各自的确认消息的一部分。
[0194]
如果两个状态信息匹配,则补丁发起器可以推断连接设备正确操作并且打补丁已经成功。
[0195]
图3设备300的框图,设备300根据示例性实施例可以用于实现补丁发起器101、连接设备102、操作员设备103或来自区块链网络104的一个或多个设备105中任何一个。设备300包括印刷电路板301,其上的通信总线302连接处理器303、随机存取存储器304、存储介质311、用于连接显示器306的接口305、用于连接用户接口设备或模块(诸如鼠标或触控板308和键盘309)的一系列连接器307、无线网络接口310和有线网络接口312。取决于所需的功能性,补丁发起器、连接设备或操作员设备可以仅实现上述内容的一部分。图3的某些模块可以在内部连接或在外部连接,在这种情况下它们不一定形成设备本身的组成部分。例如,显示器306可以是仅在特定情况下连接到设备的显示器,或者设备可以通过具有显示器的另一个设备而被控制,即这种设备不需要特定显示器306和接口305。对于网络设备102,存储介质311可以包含以软件代码实现的代理,该软件代码在由处理器303执行时用于处理与区块链网络的交互。
[0196]
更一般地,存储介质311可以包含软件代码,当由处理器303执行时,该软件代码使得设备执行本文描述的方法。
[0197]
图4是区块链的块图和用于多重签名的preq补丁请求(或prep补丁报告)的事务400的示例。
[0198]
根据示例性实施例,事务包括:
[0199]-协议版本:区块链网络使用的当前协议,
[0200]-#补丁:事务内提供的补丁数量,
[0201]-补丁[n]:事务中的补丁号n,补丁[0]是第一补丁,
[0202]

补丁类型:preq或prep,
[0203]

补丁id:补丁[n]的唯一标识符,
[0204]

补丁依赖:在可以应用补丁[n]之前需要应用的零个或多个先决补丁,
[0205]

目标设备/类别id:被cd用于识别区块链中的补丁,
[0206]

事务依赖哈希:用于引用区块链中的其他/先前的preq/prep,
[0207]

scriptsig[x]:用于由多重签名事务的设备

x’进行的签名的签名组件,
[0208]

签名[x]:设备

x’的签名,
[0209]

公钥[x]:属于设备

x’的公钥,
[0210]
事务中的scriptsig记录与多重签名事务中涉及的设备一样多,
[0211]

补丁哈希:这是补丁发起器生成的补丁有效载荷的哈希。有效载荷不以明文形式包含在事务中——它将经由链下通信被发送到连接设备和操作员设备,
[0212]

补丁结果哈希:此哈希是以下之一:
[0213]

对于preq事务,由补丁发起器提供的哈希值,基于描述在应用补丁期间在连接设备内将执行的操作列表的数据,即补丁的预期结果,
[0214]

对于prep事务,由连接设备提供的哈希,基于描述在应用补丁期间在连接设备内已执行的操作列表的数据,即补丁的实际结果,
[0215]

时间戳:事务的创建时间。
[0216]
上述数据结构是作为示例给出的,并且包含对实施示例性来说可能不一定有用或不需要的详细数据。依赖就是一个示例。
[0217]
虽然已经参考以上实施例具体地示出并描述了本公开若干方面,但是本领域技术人员将理解,在不脱离所披露的范围的情况下,可以通过对所公开的机器、系统和方法的修改来设想各种附加实施例。这种实施例应被理解为落入基于权利要求及其任何等效物所确定的本公开的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1