CN110169036B - 用于更新可编程装置的方法、系统、机器可读介质 - Google Patents

用于更新可编程装置的方法、系统、机器可读介质 Download PDF

Info

Publication number
CN110169036B
CN110169036B CN201780065941.5A CN201780065941A CN110169036B CN 110169036 B CN110169036 B CN 110169036B CN 201780065941 A CN201780065941 A CN 201780065941A CN 110169036 B CN110169036 B CN 110169036B
Authority
CN
China
Prior art keywords
configuration
computer program
update
distributed ledger
submitting
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
CN201780065941.5A
Other languages
English (en)
Other versions
CN110169036A (zh
Inventor
N·M·史密斯
张征
T·J·马西埃拉
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.)
McAfee LLC
Original Assignee
McAfee LLC
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 McAfee LLC filed Critical McAfee LLC
Publication of CN110169036A publication Critical patent/CN110169036A/zh
Application granted granted Critical
Publication of CN110169036B publication Critical patent/CN110169036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

用于更新可编程装置的方法、系统、机器可读介质。具体地描述了使用基于密码学和区块链技术的分布式账本来更新安装在可编程装置上的(多个)计算机程序。分布式账本逻辑/模块可以将安装在装置上的计算机程序的第一配置提交给分布式账本。逻辑/模块还可以接收将第一更新和第二更新应用于第一配置的请求。逻辑/模块可以接收基于第一更新和第一配置的、计算机程序的第二配置,并且还可以将第二配置提交给分布式账本。此外,逻辑/模块可以确定第二更新无法应用于第一配置,并且接收基于第二更新和第二配置的、计算机程序的第三配置。逻辑/模块还可以将第三配置提交给分布式账本。描述了其它优点和实施例。

Description

用于更新可编程装置的方法、系统、机器可读介质
技术领域
本文所描述的实施例大体上涉及可编程装置的领域。更具体地,本文所描述的实施例涉及更新安装在一个或多个互相连接的可编程装置上的计算机程序(例如,软件、固件等)。
背景技术
可编程装置,诸如,物联网(IoT:internet of thing)装置、移动计算装置和云计算装置等,可以组成互相连接的可编程装置的计算机网络(下文称为“计算机网络”)。在这种网络中,各可编程装置包括用于执行其操作和功能的一个或多个计算机程序(例如,软件、固件等)。此外,各个装置的(多个)计算机程序可以更新以使这种装置跟上时代,解决影响装置的问题并且/或者改进装置的特性。
在一些情况下,对计算机网络中的装置的更新可能会对计算机网络中的装置中的至少一个装置产生负面影响。例如,在计算机网络中的装置上进行的主版本升级可能禁用计算机网络中的装置中的一个或多个装置,这还可能会对计算机网络中的装置的有效性产生负面影响。因此,一些更新可能会给计算机网络的操作完整性增加风险。
上述问题在计算机网络中时复杂的,因为这种网络依赖于集中通信模型,也被称为服务器/客户端模型。用于服务器/客户端模型的服务器是可能中断整个计算机网络的运行的潜在的瓶颈和故障点。另外,这些服务器易受安全性损害(例如,中间人攻击等)的伤害,因为与计算机网络的多个装置相关联的所有数据必须穿过服务器。
计算机网络面临的另一个挑战是,需要由许多供应商服务的高度异构的一组设备之间的互操作性。在至少一种情况下,使用数据建模系统(DMS)来实现互操作性。DMS或者抽象数据中的缺陷(例如,漏洞)可能造成计算机网络的一个或多个装置中的故障。
当计算机网络包括一个或多个“孤立装置”时,上述问题更为复杂。如本文所使用的,“孤立装置(“orphaned device)”以及其变型指的是,其计算机程序不再由其原始开发者支持而是由第三(3rd)方更新服务支持的可编程装置。可能很难更新由高度异构的一组装置组成的计算机网络中的孤立装置。这是因为第三方更新服务不能访问可以实现这种更新的DMS。
附图说明
图1是图示了根据一个实施例的由互相连接的可编程装置组成的计算机网络的框图。
图2是图示了根据一个实施例的用于更新安装在一个或多个互相连接的可编程装置上的计算机程序的技术的顺序图。
图3是图示了根据一个实施例的用于使用分布式账本(distributed ledger)来更新计算机程序的技术的顺序图。
图4是图示了根据另一实施例的用于使用分布式账本来更新计算机程序的技术的顺序图。
图5是图示了根据一个实施例的与本文所描述的技术一起使用的可编程装置的框图。
图6是图示了根据另一实施例的与本文所描述的技术一起使用的可编程装置的框图。
具体实施方式
本文所描述的实施例涉及使用可用于计算机网络的多个装置的分布式账本(ledger)来更新安装在计算机网络的一个或多个可编程装置上的(多个)计算机程序。同样地,本文所描述的实施例中的一个或多个实施例提供了更新计算机程序的主要通信模型(即,客户端/服务器模型)的替代。因此,本文所描述的实施例中的至少一个实施例涉及改进计算机功能。具体地,本文所描述的实施例中的至少一个实施例可以协助以下中的一个或多个:(i)最小化或者消除对计算机网络的机器的有可能禁用计算机网络的一个或多个装置的错误更新;(ii)最小化或者消除错误更新所造成的对计算机网络的操作完整性的风险;(iii)最小化或者消除服务器仅作为更新实体的使用,因为这种服务器是可以中断这个计算机网络的运行的潜在的瓶颈和故障点;(iv)最小化或者消除安全损害(例如,中间人攻击等)所造成的弱点,因为与计算机网络的多个装置相关联的数据不一定是使用集中通信模型来传递的;(v)通过最小化或者消除数据建模系统(DMS)或者与DMS相关联的抽象数据中的缺陷(例如,漏洞等)来改进由许多供应商或者第三方更新服务服务的高度异构的一组装置之间的互操作性;以及(vi)使第三方更新服务能够将更新部署和安装在计算机网络中的一个或多个孤立装置上,这可以帮助最小化计算机网络中的故障。
在以下描述中,出于解释的目的,许多具体细节被阐述以便提供对本文所描述的实施例的彻底理解。然而,对于本领域的技术人员而言,可以在没有这些具体细节的情况下实践本文所描述的实施例是显而易见的。在其它情况下,结构和装置可以框图的形式被示出,以免模糊本文所描述的实施例。对没有下标或者后缀的数字的引用被理解为,引用于参考数字相对应的下标和后缀的所有实例。而且,本公开中使用的语言主要是出于可读性和指导性的目的而选择的,并且尚未被选择用来描绘或者限制本文所描述的实施例中的创新主题。同样地,依靠权利要求必须确定本文所描述的实施例中的创新主题。本说明书中对“一个实施例”、“实施例”、“另一实施例”或者它们的变型的引用意谓结合实施例描述的特定特征、结构或者特性被包括在本文所描述的至少一个实施例中,并且对“一个实施例”、“实施例”、“另一实施例”或者它们的变型的多次引用不应该被理解为必须全部指的是同一实施例。
如本文所使用的,术语“可编程装置”以及其变型指的是包括被配置为接收、发送和/或处理数据信息的电子组件的物理对象。对于一个实施例,电子组件中的一个或多个电子组件可以被嵌入物理对象内,诸如,在可穿戴式装置和移动装置(例如,无人驾驶车)中。对于一个实施例,装置还可以包括致动器、发动机、控制功能、传感器和/或用于在没有人工干预的情况下进行一个或多个任务的其它组件,诸如,无人机、无人驾驶车和/或自动运输车。可编程装置可以指计算装置,诸如(但不限于)移动计算装置,例如,膝上型计算机、可穿戴式计算装置、网络装置、物联网(IoT)装置、云计算装置、车辆、智能锁等。
如本文所使用的,术语“程序”、“计算机程序”以及其变型指的是,由可编程装置执行以进行任务的一个或多个计算机指令。其示例包括但不限于软件和固件。
如本文所使用的,术语“软件更新”、“更新”以及其变型指的是,安装在可编程装置上的一个或多个计算机程序的修改和/或删除。更新包括但不限于主版本升级、次要版本升级、补丁(patch)、热修复修正(hotfix)、维护发行和服务包。同样地,更新包括从计算机程序的版本移动到另一版本以及从计算机程序的版本的一种状态移动到计算机程序的同一版本的另一种状态。更新可以用于解决安全性损害和其它漏洞,通过添加新的特征来改进装置的功能,改进功耗和性能等。更新可以被视为可编程装置的生命周期中的重要特征。
如本文所使用的,术语“计算机网络”以及其变型指的是,可以彼此交换数据的互相连接的可编程的装置的集合。计算机网络的一个示例是对等网络。在计算机网络中,互相连接的可编程装置使用通信机制来彼此交换数据。互相连接的可编程装置之间的连接是使用有线或者无线通信机制来建立的。通信机制的示例包括但不限于任何类型的有线或者无线数据网络,诸如,局域网(LAN)、诸如互联网等广域网(WAN)、光纤网络、存储网络或者它们的组合。通信机制还包括联网硬件(例如,交换机、网关、路由器、网络桥接器、调制解调器、无线接入点、联网电缆、线路驱动器、交换器、集线器、中继器等)。
如本文所使用的,术语“分布式账本”以及其变型指的是,可用于计算机网络的多个装置的数据库。分布式账本的一个关键特征是没有中央数据存储区,在该中央数据存储区中,分布式账本的原本得到维护。相反,分布式账本被存储在许多不同的数据存储区中,并且一致性协议确保账本的各个副本与分布式账本的每个其它副本都相同。例如,分布式账本可以是基于在密码学和加密(例如,比特币、以太坊(etherium)等)的领域中公知的区块链技术。分布式账本可以提供用于更新计算机网络的一个或多个可编程装置中的软件的可公开和/或非公开地核查的账本。分布式账本中的变化(例如,软件更新等)表示对安装在计算机网络的一个或多个可编程装置上的一个或多个计算机程序的更新。这些变化可以被添加到和/或记录在分布式账本中。对于一个实施例,需要计算机网络的多个可编程装置来验证更新,将更新添加到分布式账本的副本,并且将更新后的分布式副本广播到整个计算机网络。具有分布式账本的可编程装置中的各个可编程装置可以根据验证协议验证更新。对于一个实施例,验证协议定义以下过程,通过该过程,计算机网络的装置同意分布式账本的变化和/或添加。对于一个实施例,验证协议可以包括有比特币实施的工作量证明协议或者公众共识协议。对于另一实施例,验证协议可以包括私人和/或自定义验证协议。分布式账本使计算机网络中的装置能够经由验证协议同意分布式账本的一个或多个变化和/或添加(例如,为了包括更新、为了删除更新、为了拒绝更新等)。
图1是图示了根据一个实施例的由互相连接的可编程装置102A-N组成的计算机网络100的框图。如图所示,计算机网络100包括装置102A-N、多个更新实体104A-N和一个或多个通信机制105。计算机网络100的这些元件中的各个元件在下面将进一步被详细描述。
装置102A-N中的各个装置可以是物联网(IoT)装置、移动计算装置或者云计算装置。同样,装置102A-N中的各个装置可以包括电子组件130A-N。电子组件130A-N的示例包括:(多个)处理单元(诸如,微处理器、协处理器、其它类型的集成电路(IC)等)、相应的存储器和/或其它相关电路。对于一个实施例,装置102A-N中的各个装置包括分布式账本逻辑/模块101A-N中的相应的分布式账本逻辑/模块,该分布式账本逻辑/模块实施分布式账本103。分布式账本103用于更新安装在装置102A-N中的一个或多个装置上的一个或多个计算机程序。对于一个实施例,跨装置102A-N中的至少两个装置分布的分布式账本103,用来避免更新计算机程序的中央通信技术(即,服务器/客户端模型)的一个或多个缺点。虽然在图1中未示出,但是对于一个实施例,分布式账本103在装置102A-N和更新实体104A-N上被复制并且可用于装置102A-N和更新实体104A-N。因此,对于该实施例,更新实体104A-N中的各个更新实体包括与贯穿本文结合图1至图6描述的分布式账本逻辑/模块101A-N相似的相应分布式账本逻辑/模块。
分布式账本逻辑/模块101A-N中的各个分布式账本逻辑/模块可以被实施为硬件(例如,(多个)处理单元的电子电路、专用逻辑等)、软件(例如,与(多个)处理单元所执行的计算机程序相关联的一个或多个指令、在通用计算机系统或者专用机器上运行的软件)或者其组合中的至少一个。对于一个实施例,分布式账本逻辑/模块101A-N中的各个分布式账本逻辑/模块可以执行用于更新安装在一个或多个互相连接的可编程装置102A-N上的计算机程序的技术的一个或多个实施例,如本文所描述的。
对于一些实施例,分布式账本逻辑/模块101A-N中的各个分布式账本逻辑/模块可以被实施为具有防篡改特征的一个或多个专用处理器。这种专用处理器的示例包括:可信平台模块(TPM)加密处理器、专用集成电路(ASIC)、专用指令集处理器(ASIP)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、任何类型的加密处理器、嵌入式处理器、协处理器、或者具有能够处理指令的防篡改特征的任何其它类型的逻辑。以这种方式,账本103可以帮助最小化或者防止安全损害的安全方式被实施和维护。对于进一步的实施例,分布式账本逻辑/模块101A-N可以与组件130A-N分开维护。例如,分布式账本逻辑/模块101A可以实施为与组件130A-N分开的一个或多个专用处理器。
在计算机网络100中,可编程装置102A-N中的各个可编程装置包括用于执行其操作和功能的一个或多个计算机程序(例如,软件、固件等)。此外,当(多个)计算机程序被开发者或者第三方更新服务改变或者修改时,可以更新装置102A-N中的各个装置的(多个)计算机程序。这些更新通常呈主版本更新、次要版本更新、补丁、热修复修正、维护发行、服务包等形式。更新安装在可编程装置102A-N上的(多个)计算机程序的目的是使这种装置现代化或者改进其特性。这些改进包括但不限于解决安全损害和其它漏洞、通过添加新的特征来改进装置的功能或者改进功耗和性能。因此,这种更新可以被视为IoT装置、移动计算装置和云计算装置的生命周期中的重要特征。对于特定实施例,分布式账本逻辑/模块101A-N中的各个分布式账本逻辑/模块被实施在装置102A-N的一个或多个处理器的可信执行环境(TREE)中。以这种方式,TREE充当与安装在装置102A-N上的其它计算机程序(例如,软件、硬件等)并行运行的账本103的隔离环境。
计算机网络100中的更新实体104A-N中的各个更新实体是执行包括更新的发布在内的各种类型的处理的计算机系统。同样,更新实体104A-N中的各个更新实体可以包括电子组件131A-N。电子组件131A-N的示例包括:(多个)处理单元(诸如,微处理器、协处理器、其它类型的集成电路(IC)等)、相应的存储器和/或其它相关电路。同样地,更新实体104A-N中的各个更新实体可以是各种类型的计算机中的任何一个计算机,包括通用计算机、工作站、个人计算机、服务器等。对于一个实施例,计算机网络100中的更新实体104A-N与外部实体相关联。对于该实施例,更新实体104A-N包括(多个)装置102A-N的制造商的软件更新系统和/或(多个)装置102A-N的第三方更新服务的软件更新系统。同样地,更新实体104A-N可以从(多个)装置102A-N的不同实体所拥有的多个更新源发布软件更新106A-N。与外部实体相关联的软件更新系统的示例包括促进安装在一个或多个装置102A-N上的软件(例如,操作系统等)或者固件的更新的基于互联网的更新设施。更新实体104A-N所提供的更新106A-N可以包括供病毒扫描程序、驱动器用来改进装置102A-N的功能的病毒定义更新、对安装在装置102A-N上的一个或多个应用程序的更新、对安装在(多个)装置102A-N中的一个或多个装置上的固件或者软件的主要或者次要版本的更新等。
更新106A-N中的各个更新可以呈包的形式,该包在本文中用来指具有保存可执行代码和该代码所使用的资源的标准化层次结构的目录。例如,包可以包括主版本升级、次要版本升级、热修复修正、补丁、和将包的内容安装在装置102A-N中的一个或多个装置上所需的所有资源。
装置102A-N和实体104A-N经由一个或多个通信机制105在计算机网络100内进行通信。这些机制105包括一种或者多种不同类型的通信网络,诸如,互联网、企业网络、数据中心、光纤网络、存储网络、WAN和/或LAN。通信机制105中的各个通信机制可以在电气域和/或光域中运行的装置102A-N与实体104A-N之间提供有线和/或无线连接,并且还采用任何数量的网络通信协议(例如,TCP/IP)。例如,计算机网络100内的通信机制105中的一个或多个通信机制可以是无线保真
Figure GDA0003297382050000071
网络、
Figure GDA0003297382050000072
网络、
Figure GDA0003297382050000073
网络和/或任何其它合适的基于无线电的网络,如本领域的普通技术人员在查看本公开时所理解的。本领域的普通技术人员应当理解,(多个)通信机制105还可以包括任何所需的联网硬件,诸如,被配置为通过通信机制105传送数据的网络节点。网络节点的示例包括但不限于交换机、网关、路由器、网络桥接器、调制解调器、无线接入点、联网电缆、线路驱动器、交换器、集线器和中继器。对于实施例,装置102A-N中的至少一个装置和/或实体104A-N中的至少一个实体实施网络节点的功能。
计算机网络100内的通信机制105中的一个或多个通信机制可以被配置为实施计算机虚拟化,诸如,虚拟专用网络(VPN)和/或基于云的联网。对于一个实施例,装置102A-N中的至少一个装置和/或实体104A-N中的至少一个实体包括多个虚拟机(VM)、容器和/或用于处理计算指令并且通过通信机制105发送和/或接收数据的其它类型的虚拟化计算系统。此外,装置102A-N中的至少一个装置和/或实体104A-N中的至少一个实体可以被配置为支持多租户架构,其中,各个租户都可以实施自己拥有的安全且隔离的虚拟网络环境。虽然在图1中未被示出,但是计算机网络100可以使装置102A-N中的至少一个装置和/或实体104A-N中的至少一个实体能够连接至各种其它类型的可编程装置,诸如,VM、容器、主机、存储装置、可穿戴式装置、移动装置和/或被配置为使用有线或者无线通信机制发送和/或接收数据的任何其它装置。
对于一些实施例,(多个)通信机制105包括与装置102A-N中的至少一个装置和/或实体104A-N中的至少一个实体一起使用的蜂窝网络。对于该实施例,蜂窝网络能够支持各种装置102A-N和/或实体104A-N,其包括但不限于计算机、膝上型计算机和/或各种移动装置(例如,移动电话、无人驾驶车、船和无人机)。蜂窝网络可以代替或者与上述其它通信机制10中的至少一个通信机制一起使用。蜂窝网络是众所周知的,因此在本文中未对其进行详细描述。
在一些情况下,对安装在装置102A-N上的(多个)计算机程序的更新106A-N意在解决问题。然而,这些更新106A-N有时候可能会引入新问题(例如,软件回归等)。在一些情况下,对装置102A-N中的单个装置(例如,装置102等)的更新可以禁用一个或多个装置102A-N(例如,一个或多个装置102B-N等),这可能会给计算机网络100的操作完整性造成风险。如果对安装在装置102A-N中的一个或多个装置上的计算机程序的更新(例如,热修复修正、补丁等)包括解决计算机程序的安全损害的新功能,则与被认为表现出安全损害的安装的计算机程序的以前的版本相比较,该新功能可能会对装置102A-N的有效性产生更负面的影响。
由分布式账本逻辑/模块101A-N实施的分布式账本103可以帮助最小化或者消除在前一段落中描述的问题中的至少一个问题。这是因为分布式账本103是基于分散共识(decentralized consensus)的概念运行的,与集中共识(centralized consensus)的概念相反。集中共识是基于客户端/服务器模型并且需要一个中央数据库或者服务器来决定为(多个)装置102A-N提供哪些更新,并且结果,这可以创建易受安全损害影响的单个故障点。相反,分布式账本103基于分散方案运行,该分散方案不需要中央数据库来决定为装置102A-N中的一个或多个装置提供哪些更新。对于一个实施例,计算机网络100使其节点(例如,装置102A-N)能够将更新106A-B对装置102A-N的应用连续地且顺序地记录在唯一的链中,即,在分布式账本103中。对于一个实施例,分布式账本103是应用于装置102A-N的更新106A-B的基于密码学和区块链技术的组合的仅追加记录。对于该实施例,分布式账本103的各个连续块包括以前应用的更新的唯一指纹。该唯一指纹可以包括以下中的至少一个:(i)密码学领域中公知的哈希(例如,SHA、RIPEMD、Whirlpool、Scrypt、HAS-160等)或者(ii)用公钥、私钥或者生成数字签名的领域中公知的哈希生成的数字签名。数字签名算法的示例包括安全非对称密钥数字签名算法。分布式账本103的一个优点是可以帮助保护更新源(例如,更新实体104A-N)的认证,这还消除了对客户端/服务器模型中所需的中央数据库或者服务器的需要。因此,分布式账本103可以帮助确保不止一次被应用于装置102A-N的更新106A-B的副本绝不存在。例如,当装置102A接收到来自实体104A的更新106A和来自实体104B的更新106B时,分布式账本逻辑/模块101A记录将更新106A-B应用于安装在装置102A上的(多个)计算机程序的顺序。对于该示例,由分布式账本逻辑/模块101A在账本103中创建的记录经由(多个)通信机制105被传递至存储在另一分布式账本逻辑/模块101B-N上或者可用于分布式账本逻辑/模块101B-N的账本103的各个其它副本。以这种方式并且对于该示例,分布式账本103使所有装置102A-N都能够维护何时应用更新106A-B和在哪里应用更新106A-B的记录,这可以帮助确定故障点和最小化安全损害。
作为区块链的分布式账本103包括:存储在其可由(多个)装置102A-N和/或实体104A-N访问的报头中的信息,该信息使(多个)装置102A-N和/或实体104A-N能够“查看”已经应用于(多个)装置102A-N的更新106A-N的顺序。以这种方式,分布式账本103是将装置102A-N和/或实体104A-N捆绑在一起,使得遵循用于发布或者记录它们保存了哪些信息和在哪里通过密码学验证所有相关的交互的相同共识过程的软件设计法。分布式账本103可以是私有区块链或者公共区块链。此外,分布式账本103可以是许可区块链或者无许可区块链。
与基于区块链技术的分布式账本相关联的一个问题是分布式账本是资源密集型的。即,分布式账本需要大量处理能力、存储能力和随着账本在越来越多的装置上被复制而增长的计算资源。这个问题至少部分地基于包括账本的各个节点或者装置都必须处理各个交易已确保安全的需求,这样做在计算上的代价很高。同样地,包括账本的各个装置必须有访问相当数量的计算资源的权限。在具有固定的或者有限的计算资源的可编程装置(例如,移动装置、车辆、智能电话、膝上型计算机、平板计算机和媒体播放器、微控制台、IoT装置等)上,处理账本可能是困难的。
本文所描述的分布式账本103的至少一个实施例可以帮助最小化上面描述的资源密集型问题。对于一个实施例,分布式账本103未被构造成单一区块链,其中,其所有块都存在于所有装置102A-N和/或实体104A-N上。相反,分布式账本103被构造成轻账本,该轻账本基于,例如,以太坊区块链的轻客户端协议、比特币区块链的轻客户端协议等。以这种方式,账本103可以根据需要被复制在装置102A-N和/或实体104A-N上。对于一个实施例,资源受限的装置102A-N和/或实体104A-N中的任何一个仅仅存储账本103的最近的块(与账本103的所有块相反)。对于该实施例,特定装置或者实体所存储的块的数量可以基于其存储和处理能力来动态确定。例如,装置102A-N和/或实体104A-N中的任何一个仅仅可以存储(并且还可以处理)账本103的当前块和紧跟着的块。这确保将块添加至账本103所需的任何共识协议可以在不需要所有装置102A-N和/或实体104A-N都存储账本103作为大型单一区块链的情况下被成功执行。对于另一实施例,账本103的各个块可以基于轻客户端协议,使得块被分成两个部分:(a)显示元数据的块报头,更新106A-N中的一个关于元数据被提交给块;以及(b)包含块中的更新106A-N中的被提交的更新的实际数据的交易树。对于该实施例,块报头可以包括以下中的至少一个:(i)前一个块的块报头的哈希;(ii)交易树的Merkle根;(iii)工作量证明;(iv)与块中的被提交的更新106A-N相关联的时间戳;(v)用于验证块中的更新106A-N中的被提交的更新是否存在的Merkle根;或者(vi)用于验证块中的更新106A-N中的被提交的更新是否被应用于安装在装置102A-N中的一个或多个装置上的计算机程序的配置的Merkle根。对于该实施例,具有账本103的装置102A-N和/或实体104A-N可以使用块报头来保持追踪整个账本103,并且只有在需要对账本103进行处理操作(例如,将新的块添加至账本103等)时才请求特定块的交易树。对于又一实施例,账本103可以通过基于与以太坊区块链的轻客户端协议相关联的周期切入技术,来使资源有效率更高。
在一些情况下,需要区块链同步算法来跨越装置102A-N和/或实体104A-N维护账本103。此处,区块链同步算法使计算机网络100的节点(例如,装置102A-N和/或实体104A-N中的一个或多个)执行将交易添加至账本103并且同意账本103的内容的处理。区块链同步算法允许装置102A-N和/或实体104A-N中的一个或多个使用作为区块链的账本103将合法的交易(即,软件更新)与攻击者尝试包括虚假或者故障信息(例如,中间人攻击)区分开。
执行区块链同步算法被设计为资源密集型的,使得账本103的单独块必须包含被认为是有效的证明。证明的示例包括但不限于工作量证明和风险证明。各个块的证明是由装置102A-N和/或实体104A-N在接收到块时验证的。以这种方式,区块链同步算法帮助允许装置102A-N和/或实体104A-N达成安全的、防篡改的共识。对于一个实施例,区块链同步算法被嵌入计算机网络100中,并且由装置102A-N和/或实体104A-N中的至少一个执行。例如,装置102A-N和/或实体104A-N中的至少一个可以包括专门用于进行和执行区块链同步算法的FPGA。对于该示例,FPGA生成要被包括在账本103中的块的证明。同样并且对于该示例,块仅仅通过验证和共识(如上所述)被添加至账本103。区块链同步算法可以由(i)装置102A-N和/或实体104A-N中的任何一个或者(ii)装置102A-N和/或实体104A-N中的多个执行。对于进一步的实施例,考虑到计算机网络100中的资源的有效性,生成新块的证明是响应于自动确定操作的复杂性来执行的。以这种方式,计算机网络100的资源可以得到更有效的利用。
对于另一实施例,区块链同步算法是由例如同步装置(未示出)在计算机网络100外执行的。该同步装置可以与具有账本103的装置102A-N和/或实体104A-N中的一个或多个配对。例如,装置102A-N中的一个或多个可以经由(多个)通信机制105与计算机网络100外的同步装置配对。对于该示例,同步装置包括与组件130A-N(上面所描述的组件)相似的电子组件。同样并且对于该示例,各个交易(例如,软件更新、软件更新的记录等)使用一种或者多种安全通信技术经由(多个)通信机制105被传递至同步装置。此处,同步装置生成进行验证和共识所需的证明并且将其传递回至计算机网络100。
对于又一实施例,账本103可以在不使用区块链同步算法的情况下跨越计算机网络100被维护。作为第一示例,账本103以被实施为分布式数据库。对于第二示例,账本103可以作为分布式版本控制系统(DVCS)跨越计算机网络100被维护,该分布式版本控制系统(DVCS)有时也称为分布式版本控制系统(DVRS)。DVCS的示例包括但不限于ArX、BitKeeper、Codeville、Darcs、DCVS、Fossil、Git和Veracity。
账本103还可以当做紧接着的实施例的组合。对于一个实施例,账本103是响应于确定计算机网络100的资源对资源密集型的同步过程而言是足够的,而利用区块链同步算法来实施的。对于该实施例,账本103是响应于确定计算机网络100的该资源对同步过程而言是不足,在没有区块链同步算法的情况下实施的。
使装置102A-N能够记录更新106A-N中的被应用于账本103的更新和/或使更新实体104A-N能够将更新106A-N提交给账本103,可以是基于增强的隐私识别(EPID)协议,例如,零证明协议。对于基于零识别协议的实施例,装置102A-N(例如,装置102A等)中的一个或多个充当验证器,其验证器确定装置102A-N中的其它装置(例如,装置102B-N等)和/或一个或多个更新实体104A-N是否是已经被授予处理它们的动作的特权,并且被添加至被表示为账本103的区块链的一组装置的构件。对于该实施例,装置102A-N(例如,装置102B-N等)和/或一个或多个更新实体104A-N中有访问账本103的特权的更新实体中的每一个,加密地将其相应的公钥捆绑到发送至验证器的零知识证明,导致公钥被认为是获准对被表示为账本103的区块链进行动作的身份。对于一个实施例,充当验证器的(多个)装置102A-N(例如,装置102A等)将经过验证的公钥添加至账本103。因此,账本103可以维护自己的可以与账本103交互的装置102A-N和/或实体106A-N的列表。以这种方式充当验证器的(多个)装置102A-N(例如,装置102A等)确保装置102A-N和/或实体106A-N中写入账本103的任何一个被授权这么做。
为了有助安全并且对于一个实施例,账本103可由更新实体104A-N仅经由公钥加密(public key cryptography)来访问。此处,与账本103相关联的公钥可以根据需要利用与账本103相关联的仅装置102A-N的用户知道的私钥被传播至实体104A-N。以这种方式,公钥加密可以用于两个功能:(i)使用公钥来认证起源于实体104A-N中的作为配对私钥持有者的一个实体的更新;或者(ii)用公钥对实体104A-N中的一个实体所提供的更新进行加密,以确保仅仅装置102A-N的用户可以解密更新,该用户是配对私钥的持有者。例如,并且对于一个实施例,实体104A无法将更新106A提交给账本103,除非实体104A经由公钥加密被授权访问账本103和/或除非实体104A已经经由上述零证明协议被验证。当公钥可以由实体104A-N公开访问时,私钥和/或经由零证明协议的先前验证必须将更新106A提交给账本103。对于该示例,私钥可以响应于用户提供给装置102A的输入,通过分布式账本逻辑/模块101经由(多个)通信机制105被提供给实体104A。基于公钥加密和/或经由零证明协议的验证的组合,使实体104A能够将更新106提交给账本103。如紧接着的示例所示的,仅仅装置102A-N的用户可以向更新实体104A-N提供访问账本103的权限。这样做的优点是,最小化或者消除安全损害的风险(例如,中间人攻击、窃听、未授权的数据修改、拒绝服务攻击、嗅探攻击、身份伪造等),因为用户永远知道实体中的哪些实体已经经由账本103授予它们的装置102A-N。对于一个实施例,私钥可以包括授予更新实体在有限的时间段(例如,10分钟、1小时、任何其它时间段等)内有访问账本103的权限的信息。因此,安全是进一步通过防止实体104A-N具有自由访问装置102A-N和/或账本的权限10来增强的。
为了帮助最小化或者消除安全损害,装置102A-N的用户可以撤销授予给实体104A-N中的任何可疑的实体的访问权限。例如,响应于分布式账本逻辑/模块101A接收到用户经由(多个)通信机制105提供给装置102A的输入,分布式账本逻辑/模块101A可以更新账本103,以反映出实体104A-N中的可疑的实体。以这种方式,分布式账本逻辑/模块101A-N可以拒绝来自实体104A-N中的未授权的实体的访问账本103的任何请求。对于进一步的实施例,充当验证器的(多个)装置102A-N(例如,装置102A)可以防止或者去除来自上述已验证组的任何可疑的装置102A-N(例如,装置102B-N)和/或实体104A-N。紧接着的实施例可以响应于用户提供输入来执行。
图2是图示了根据一个实施例的用于更新安装在一个或多个互相连接的可编程装置上的计算机程序的技术200的顺序图。技术200可以由上面结合图1描述的网络100的一个或多个元件执行。例如,处理器(例如,加密处理器、TPM兼容的处理器等)实施分布式账本模块/逻辑(例如,上面结合图1描述的分布式账本逻辑/模块101)。技术200包括上面结合图1描述的网络100的一些元件。为了简单起见,不再对这些元件进行描述。
技术200开始于操作201,其中,执行技术200的分布式账本逻辑/模块将安装在装置102A上的计算机程序(ML.0)的第一配置提交给分布式账本103。对于一个实施例,计算机程序(ML.0)的第一配置被提交给和记录到账本103的块250。对于一个实施例,为块250生成相应的哈希和/或数字签名,该相应的哈希和/或数字签名被提供给驻留在其它装置(例如,上面结合图1描述的装置102B-N)上的账本103的副本。接下来,技术200继续进行操作202和203。此处,更新实体104A将与要应用于计算机程序(ML.0)的第一配置的第一更新(B1)有关的请求发送至装置102A。同样,更新实体还将与要被应用于计算机程序(ML.0)的第一配置的第二更新(B2)有关的请求发送至装置102A。
在一些情况下,多个更新实体104A-B可以使装置102A被不正确地更新。这可以发生在例如更新实体104A基于计算机程序(ML.0)的第一配置是安装在装置102A上的计算机程序的当前配置的理解来准备第一更新(B1)时,同时更新实体104B也基于计算机程序(ML.0)的第一配置是安装在装置102A上的计算机程序的当前配置的理解来准备第二更新(B2)。在这种情况下,更新实体104A-B可以互相比赛以应用其相应的更新。此外,即使实体104A-B中的一个实体成功应用其更新,另一实体的更新也可能会失败,或者使装置102A被不正确地更新。对于一个实施例,装置102A通过将更新实体104A-的更新发布到分布式账本103来解决这个问题。以这种方式,账本103可以确保胜利者,并且帮助最小化上述不正确地更新过程对装置102A造成的故障。
在操作204中,更新实体104A成功将第一更新(B1)应用于计算机程序(ML.0)的第一配置以创建第一更新计算机程序(B1’=B1+ML.0)。此外,在操作205中,更新实体104B尝试将第二更新(B2)应用于计算机程序(ML.0)的第一配置,以创建不存在的第一更新计算机程序(B2’=B2+ML.0)。
考虑到操作204是成功的,装置102A从更新实体104A接收第一更新计算机程序(B1’=B1+ML.0),如操作206中所示的。对于进一步的实施例,操作206包括:更新实体104将第一更新计算机程序(B1’=B1+ML.0)提交给装置102A。此外,分布式账本逻辑/模块101A指导装置102A将第一更新计算机程序(B1’=B1+ML.0)提交给账本103,如操作207中所示的。如图2所示,第一更新计算机程序(B1’=B1+ML.0)被分布式账本逻辑/模块101A记录在账本103的框251中作为计算机程序(ML.1)的第二配置。在操作208中,装置102A发送由更新实体104A接收到的表示第一更新计算机程序(B1’=B1+ML.0)被装置102A成功接收并且/或者被成功提交给账本103作为计算机程序(ML.1)的第二配置的确认。
关于未成功的操作205,更新实体104B尝试将不存在的第一更新计算机程序(B2’=B2+ML.0)提交或者发送至装置102A,如操作210中所示的。在操作211中,装置102A发送由更新实体104接收到的表示不存在的第一更新计算机程序(B2’=B2+ML.0)未被装置102A成功接收和/或未被成功安装在装置102A上的确认。接下来,响应于操作209,装置102A确定计算机程序(ML.0)的第一配置不再存在,因为账本103包括计算机程序(ML.1)的第二配置。该确定可以包括:分布式账本逻辑/模块101A检查账本103的最近的块,以确定计算机程序的最新配置。基于该确定并且在操作212中,更新实体104B成功将第二更新(B2)应用于计算机程序(ML.1)的第二配置,以创建第二更新计算机程序(B2”=B2+ML.1)。接下来并且如操作213中所示的,装置102A从更新实体104B接收第二更新计算机程序(B2”=B2+ML.1)。对于进一步的实施例,操作213包括:更新实体104B将第二更新计算机程序(B2”=B2+ML.1)提交给装置102A。此外,分布式账本逻辑/模块101A指导装置102A将第二更新计算机程序(B2”=B2+ML.1)提交给账本103,如操作214中所示的。第二更新计算机程序(B2”=B2+ML.1)被分布式账本逻辑/模块101A记录在账本103的框253中作为计算机程序(ML.2)的第三配置。在操作215中,装置102A发送由更新实体104B接收到的表示第二更新计算机程序(B2”=B2+ML.1)被成功安装在装置102A上和/或被成功提交给账本103作为计算机程序(ML.2)的第三配置的确认。
对于更新安装在装置102A上的计算机程序的任何附加请求,操作216可以在应用这种更新之前执行以确保更新应用于计算机程序的正确配置。具体地,装置102A执行操作216以确定计算机程序(ML.0)的第一配置和计算机程序(ML.1)的第二配置不再存在,因为账本103包括计算机程序(ML.2)的第三配置。技术200可以帮助允许包括多个组件、固件、系统软件、应用程序二进制、应用程序解释器和/或数据模型脚本的更新,在这些更新被从多个源动态接收到的情况下被成功更新。
现在参照图3,图3是图示了根据一个实施例的用于使用分布式账本103来更新计算机程序的技术300的顺序图。技术300可以由上面结合图1描述的网络100的一个或多个元件来执行。例如,处理器(例如,加密处理器、TPM兼容的处理器等)实施分布式账本模块/逻辑(例如,上面结合图1描述的分布式账本逻辑/模块101)。技术300包括上面结合图2描述的技术200的一些元件和上面结合图1描述的网络100的一些元件。为了简单起见,不再对这些元件进行描述。
基于区块链技术的分布式账本103的一个特征是解决以下分叉的能力:该分叉归因于有权访问账本103的装置102A-N和/或实体104A-N,尝试通过发现产生给定数据块的有效哈希的现时标志,将块添加至链的末端。当发现两个块都声称引用了相同的以前的块时,产生链中的分叉。网络中100的装置102A-N和/或实体104A-N中的一些将尝试发现在分叉的一端上的下一个块,同时,网络中100的装置102A-N和/或实体104A-N中的其它将从分叉的另一端工作。最后,分叉中的一个分叉将超过另一个的长度,并且最长的链通过共识作为有效链被接受。这通常是使用共识算法或者协议来实现的。因此,尝试改变块的入侵者不仅必须重新找到各个后续块的有效哈希,而且必须做得比当前接受的链上的每一个其它工作更快。因此,在一定数量的块被链接到特定块上之后,伪造块的内容变成资源密集型的任务,这帮助最小化和消除安全损害。对于一个实施例,这种解决分叉的能力可以用来:确保更新106A-N被正确应用,尤其是在回滚操作和前滚操作对于处理有问题的更新是必要的情况下。
再次参照图3,图3图示了两个链331和333。两个链331和333中的各个链表示因为回滚操作303、修正操作301和/或前滚操作305而产生的分叉。技术300可以开始于:分布式账本逻辑/模块101A-N中的至少一个分布式账本逻辑/模块检测到或者确定记录在账本103的块251中的计算机程序(ML.1)的第二配置包括影响可编程装置102A的操作的漏洞时。例如,这种漏洞可以是将故障更新应用于计算机程序(ML.0)的第一配置的结果,如上所述。这种应用的结果可以产生计算机程序(ML.1)的有缺陷的第二配置,该有缺陷的第二配置使网络100的装置102A-N中的一个或多个装置出故障或者失灵。
一个或多个逻辑/模块101A-N可以使用一种或者多种软件配置管理(SCM:software configuration management)技术,来检测安装在装置102A上的计算机程序的配置中的漏洞。SCM技术的一个示例包括:分析与更新安装在装置102A上的计算机程序的配置(例如,应用于装置102A的更新106A-N中的任何一个更新等)相关联的软件图像的一个或多个检查和(checksums)。对于该示例,一个或多个逻辑/模块101A-N通过比较下列检查和来检测安装在装置102上或者由装置102接收到的计算机程序(ML.1)的第二配置中的漏洞:(i)与装置102A从更新实体104A接收到的第二配置(ML.1)相关联的第一检查和;以及(ii)与更新实体104A发送至装置102A的第二配置(ML.1)相关联的第二检查和。对于SCM技术的另一示例,看门狗定时技术和/或心跳定时技术可以用于检测因为将更新应用于计算机程序(ML.0)的第一配置而产生的漏洞。看门狗定时技术包括:在定时器到期之前,周期性地将定时器重新设置为表示装置102A的操作中没有错误。当装置102A没有重新设置其定时器时,假设装置102A的操作是有缺陷的。因此,当一个或多个逻辑/模块101A-N确定在将更新应用于计算机程序(ML.0)的第一配置之后装置102A未能重新设置其定时器时,一个或多个逻辑/模块101A-N可以检测安装在装置102A上的计算机程序(ML.1)的第二配置中的漏洞。心跳定时技术通常包括:装置102A将具有有效载荷的心跳信号发送至网络(例如,网络100等)中的另一装置(例如,装置102B-N中的任何一个等)以表示装置102A正处于正常操作。因此,当一个或多个逻辑/模块101A-N确定在将更新应用于计算机程序(ML.0)的第一配置之后装置102A未能发送其心跳信号时,一个或多个逻辑/模块101A-N可以检测安装在装置102A上的计算机程序(ML.1)的第二配置中的漏洞。看门狗定时技术和/或心跳定时技术可以被实施在装置102A的处理器(例如,容错微处理器等)中。对于SCM技术的又一示例,异常处理技术(例如,语言水平特征、错误代码的检查等)可被分布式账本逻辑/模块101A用来确定安装在装置102A上的计算机程序(ML.1)的第二配置是有缺陷的。对于在装置102A包括或者执行脚本时应用的异常处理技术的特定示例,当一个或多个逻辑/模块101A-N确定在更新应用于计算机程序(ML.0)的第一配置之后装置102A未能输出或者返回表示脚本成功运行或者执行的结果消息(例如,退出状态消息、结果值等)时,一个或多个逻辑/模块101A-N可以确定安装在装置102A上的计算机程序(ML.1)的第二配置是有缺陷的。一个或多个逻辑/模块101A-N可以从运行或者执行脚本的装置102A的(多个)处理器请求结果消息。
紧接着的段落中的描述假设装置102A在计算机程序(ML.0)的第一配置安装在装置102A上时处于正常操作并且在计算机程序(ML.0)的第二配置安装在装置102A上时开始失灵。
响应于检测到漏洞,分布式账本逻辑/模块101A-N中的至少一个可以执行回滚操作303,以将计算机程序恢复成之前的状态,即,使计算机程序从被记录在账本103的块251中的有缺陷的第二配置(ML.1)恢复成被记录在账本103的块250中的正常运行的第一配置(ML.0)。回滚操作303可以帮助将安装在装置102A上的计算机程序恢复成正常运行的之前已经知道的配置。这在更新的实际效果可能是未知或者猜测的情况下非常重要,这可能产生处于不一致状态的计算机程序的配置。
接下来,技术300继续进行修正操作301。此处,分布式账本逻辑/模块101A-N中的至少一个执行修正操作301以修正检测到的漏洞,使得将计算机程序(ML.0)的第一配置更新成后者配置不会产生不想要的效果。具体地,漏洞被修正,使得记录在账本103的块250中的计算机程序(ML.0)的第一配置被更新成记录在账本103的块355中的计算机程序(ML.1’)的第二修正配置。这会在产生链333的账本103中产生分叉。对于实施例,更新继续应用于账本103的块251和块355。以这种方式,链331和333中的各个链继续增长。
对于一个实施例,相同的更新应用于记录在块251和355中的计算机程序的配置,以分别创建记录在块253和357中的计算机程序的更新配置。同样,分布式账本逻辑/模块101A-N中的至少一个可以确定记录在块251中的计算机程序的配置是有缺陷的。接下来,分布式账本逻辑/模块101A-N中的至少一个可以执行前滚操作305,以用记录在链333的块357中的计算机程序的正常运行的配置来代替记录在块251中的有缺陷的配置。因此,链331变得比链333短。因此,基于共识算法或者协议,多个分布式账本逻辑/模块101A-N会同意链333是有效的链。以这种方式,与故障更新相关联的问题可以使用分布式账本103来纠正。该实施例的优点在于,故障更新可以基于分布式账本103的块从网络100去除,使得所有装置102A-N在达成哪些配置是好的配置的共识时,最终都可以消除计算机程序的任何故障配置。
由于安装在装置102A-N上或者在账本103上发现的配置的审计、取证或者其它调查,检测计算机程序的配置中的漏洞可能会发生。对于一个实施例,用于执行技术300的一个或多个逻辑/模块101A-N可以驻留在网络100中的装置102A-N中的任何一个装置中,或者在装置102A-N中的一个或多个装置的可以独立于(多个)装置102A-N执行的处理器的TREE中。
对于一个实施例,记录在账本103的块250、251、253、355、357和359中的计算机程序的配置以包的形式被维护,以保持版本控制简单。即,表示记录在账本103的块250、251、253、355、357和359中的计算机程序的配置中的一个配置的各个包包含:可以在执行更新时被包含的所有程序包、文件和其它依赖性。对于一个实施例,包版本串被一个或多个逻辑/模块101A-N用来追踪计算机程序的第一配置和应用于第一配置的导致计算机程序的一个或多个后者配置的任何后续更新。包的一个好处是,包中的各个文件具有能与安装的文件哈希比较的完整性哈希,这可以帮助改进更新速度。
现在参照图4,图4是图示了根据另一实施例的用于使用分布式账本103来更新安装在可编程装置102A上的计算机程序的技术400的顺序图。技术400可以由上面结合图1描述的网络100的一个或多个元件执行。例如,处理器(例如,加密处理器、TPM兼容的处理器等)实施分布式账本模块/逻辑(例如,上面结合图1描述的分布式账本逻辑/模块101)。技术400包括上面结合图2和图3描述的技术200和技术300的一些元件和上面结合图1描述的网络100的一些元件。为了简单起见,不再对这些元件进行描述。
当更新实体104A-B和装置102A签订了管理更新的合约时,分布式账本模块/逻辑(例如,分布式账本模块/逻辑101A-N中的一个或多个)可以执行技术400。对于一个实施例,各个合约可以是智能合约,即,存储在被表示为分布式账本103的区块链中的促进、认证和/或执行更新实体104A-B与装置102A之间的合约的履行的状态。因此,智能合约是作为区块链的账本103的一个特征,该特征可以帮助一个或多个分布式账本模块/逻辑101A-N保持追踪安装在装置102A上的计算机程序的当前配置。这是有利的,因为智能合约可以使账本103能够保持稳定,即使在账户服务在更新实体104A-B之间传送或者传递时。下面结合图4描述的技术400提出示例智能合约,该示例智能合约描绘通过更新实体104A-B将更新发送至或者应用于安装在装置102A上的计算机程序的顺序。
技术400开始于操作401,其中,分布式账本模块/逻辑用账本103注册装置102A。这可以通过创建创始区块(当账本103缺乏任何块时)或者将块附加到已存在的账本103来执行。对于一个实施例,分布式账本模块/逻辑通过将安装在装置102上的计算机程序的当前配置提交给账本103,使用账本103来注册装置102A。在操作403中,执行技术400的分布式账本模块/逻辑将安装在装置102A上的计算机程序的当前配置发送至更新实体104A。对于一个实施例,操作403可以响应于更新实体104A请求将更新应用于计算机程序的当前配置来执行。在操作405和407中,更新实体104A可以识别正确的更新,并且将识别到的更新应用于从装置102A接收到的计算机程序的当前配置,以生成计算机程序的第一更新配置。对于一个实施例,操作407可以包括:分布式账本模块/逻辑执行技术400,使装置102A接收来自更新实体104A的第一更新配置。对于进一步的实施例,操作407可以包括:分布式账本模块/逻辑执行技术400,使装置102A将第一更新配置提交给装置102A。
执行技术400的分布式账本模块/逻辑在操作409中可以用其计算机程序的第一更新配置来注册装置102A。同样,对于操作401,用其计算机程序的第一更新配置注册装置102A包括:创建用于记录计算机程序的第一更新配置的块,并且将第一更新配置提交给账本103。此外,执行技术400的分布式账本模块/逻辑在操作411中可以将更新实体104A将更新应用于安装在装置102A上的计算机程序的当前配置通知给更新实体104B。在操作411之后,执行技术400的分布式账本模块/逻辑在操作413中基于账本103的最新的块发送其计算机程序的第一更新配置。在操作415和417中,更新实体104B可以识别正确的更新,并且将识别到的更新应用于从装置102A接收到的计算机程序的第一更新配置,以生成计算机程序的第二更新配置。对于一个实施例,操作417可以包括:分布式账本模块/逻辑执行技术400,使装置102A接收来自更新实体104B的第二更新配置。对于进一步的实施例,操作417可以包括:分布式账本模块/逻辑执行技术400,使装置102A将第二更新配置提交给装置102A。接下来,在操作419中,执行技术400的分布式账本模块/逻辑可以用其计算机程序的第二更新配置来注册装置102A。同样,对于操作401和409,用其计算机程序的第二更新配置注册装置102A包括:创建用于记录计算机程序的第二更新配置的块,并且将第二更新配置提交给账本103。此外,执行技术400的分布式账本模块/逻辑在操作421中可以将更新实体104B将更新应用于安装在装置102A上的计算机程序的第一更新配置通知给更新实体104A。以这种方式,其它更新可以由实体104A利用(如果需要的话)。
图5是图示了根据一个或多个实施例的可以用于实施本文所描述的技术的可编程装置500(例如,网络100和技术200、300和400)的框图。图5所示的可编程装置500是包括第一处理元件570和第二处理元件580的多处理器可编程装置。虽然示出了两个处理元件570和580,但是可编程装置500的实施例还可以包括仅一个这种处理元件。
可编程装置500被图示为点对点互连系统,在该点对点互连系统中,第一处理元件570和第二处理元件580经由点对点互连550联接。图5所示的互连中的任何一个或者全部可以被实施为多点总线,而不是点对点互连。
如图5所示,处理元件570和580中的各个处理元件可以是多核处理器,包括第一处理器内核和第二处理器内核(即,处理器内核574A和574B以及处理器内核584A和784B)。这种内核574A、574B、584A、584B可以被配置为执行计算指令代码。然而,其它实施例可以按照需要使用作为单核处理器的处理元件。在具有多个处理元件570、580的实施例中,各个处理元件都可以按照需要使用不同数量的内核来实施。
各个处理元件570、580可以包括至少一个共享缓存546。共享缓存546A、546B分别可以存储被处理元件的一个或多个组件(诸如,内核574A、574B和584A、584B)利用的数据(例如,计算指令)。例如,共享缓存可以在本地缓存存储存储器532、534中的数据,以供处理元件570、580的组件快速访问。对于一个或多个实施例,共享缓存546A、546B可以包括一个或多个中级缓存,诸如,等级2(L2)、等级3(L3)、等级4(L4)或者其它等级的缓存、终级缓存(LLC)或者其组合。存储器532、534可以包括表示分布式账本逻辑/模块101A-N的软件指令,该分布式账本逻辑/模块101A-N包括可由处理元件570和580中的各个处理元件访问的分布式账本103。分布式账本逻辑/模块101A-N和分布式账本103中的每一个在上文中结合至少图1、2、3或者4被描述过。
虽然为了使图更清晰,图5图示了具有两个处理元件570、580的可编程装置,但是本发明的范围并不限于此,并且任何数量的处理元件可能存在。可替代地,处理元件570、580中的一个或多个处理元件可以是除了处理器之外的元件,诸如,图形处理单元(GPU)、数字信号处理(DSP)单元、现场可编程门阵列或者任何其它可编程处理元件。处理元件580对于处理元件570而言可能是不均匀或者不对称的。根据包括架构特性、微架构特性、热特性、功耗特性等品质指标谱,处理元件570、580之间可能存在各种差异。这些差异可以有效地表现为处理元件570、580当中的不对称性和不均匀性。在一些实施例中,不同处理元件570、580可以驻留在相同的芯片封装中。
第一处理元件570可以进一步包括存储器控制逻辑(MC)572以及点对点(P-P)互连576和578。同样,第二处理元件580可以包括MC 582以及P-P互连586和588。如图5所示,MC572和582将处理元件570、580联接至相应的存储器,即,存储器532和534,这些存储器可以是在本地附接至相应的处理器的主存储器的一部分。虽然MC 572和582被图示为被集成到处理元件570、580中,但是在一些实施例中,存储器控制器逻辑可以是处理元件570、580外的离散逻辑,而不是被集成到处理元件570、580中。
处理元件570和处理元件580可以通过链接552和554经由相应的P-P互连576和586联接至I/O子系统590。如图5所示,I/O子系统590包括P-P互连594和598。此外,I/O子系统590包括用于将I/O子系统590与高性能图形引擎538联接的接口592。在一个实施例中,总线(未示出)可以用于将图形引擎538联接至I/O子系统590。可替代地,点对点互连539可以联接这些组件。
进而,I/O子系统590可以经由接口596联接至第一链接516。在一个实施例中,第一链接516可以是外围组件互连(PCI)总线,或者诸如PCI Express总线或者另一I/O互连总线等总线,尽管本发明的范围并不限于此。
如图5所示,各个I/O装置514、524可以联接至第一链接516,连同可以将第一链接516联接至第二链接510的桥接器518。在一个实施例中,第二链接510可以是低引脚数(LPC)总线。对于一个实施例,各个装置可以联接至第二链接720,包括:例如,键盘/鼠标512、(多个)通信装置526(其还可以与计算机网络505通信)和数据存储单元528,诸如,硬盘驱动器或者可以包括代码530的其它大容量存储装置。代码730可以包括用于执行上述技术中的一种或者多种技术的实施例的指令。进一步地,音频I/O 524可以联接至第二链接510。
应当注意,考虑了其它实施例。例如,代替图5的点对点架构,系统可以实施多点总线或者另一种这样的通信拓扑。虽然链接516和510在图5中被图示为总线,但可以使用任何期望类型的链接。另外,图5的元件可以可替代地使用比图5中所示的集成芯片更多或者更少的集成芯片来隔开。
图6是图示了根据另一实施例的与本文所描述的技术一起使用的可编程装置600的框图。图6的某些方面已经从图6被省略,以免模糊图6的其它方面。
图6图示了处理元件670、680可以分别包括集成存储器和I/O控制逻辑(“CL”)672和682。在一些实施例中,672、682可以包括存储器控制逻辑(MC),诸如,上面结合图6描述的存储器控制逻辑。另外,CL 672、682还可以包括I/O控制逻辑。图6不仅图示了存储器632、634可以联接至CL 672、672,而且图示了I/O装置644还可以联接至控制逻辑672、682。传统(Legacy)I/O装置615可以通过接口696联接至I/O子系统690。各个处理元件670、680可以包括多个处理器内核,在图6中被图示为处理器内核674A、674B、684A和684B。如图6所示,I/O子系统690包括用链接652和654连接至处理元件670和680的P-P互连676和686的点对点(P-P)互连694和698。处理元件670和680还可以分别通过链接650以及互连678和688互相连接。存储器632、634可以包括表示分布式账本逻辑/模块101A-N的软件指令,该分布式账本逻辑/模块101A-N包括可由处理元件670和680中的各个处理元件访问的分布式账本103。分布式账本逻辑/模块101A-N和分布式账本103中的每一个在上文中结合至少图1、图2、图3或者图4被描述过。
图5和图6所示的可编程装置是可以用于实施本文所讨论的各个实施例的可编程装置的实施例的示意图。图5和图6所示的可编程装置的各个实施例可以被组合成片上系统(SoC)机构。
程序指令可以用于致使用指令编程的通用或者专用处理系统执行本文所描述的操作。可替代地,操作可以由包含用于执行操作的硬线逻辑的特定硬件组件或者由被编程的计算机组件和自定义硬件组件的任何组合执行。本文所描述的方法还可以作为计算机程序产品而提供,该计算机程序产品可以包括存储指令的机器可读介质,该指令可以用于对处理系统或者其它装置进行编程以执行方法。本文所使用的术语“机器可读介质”应当包括能够存储或者编码由机器执行的指令序列并且使机器执行本文所描述的方法中的任何一种方法的任何介质。因此,术语“机器可读介质”应当包括但不限于有形的非暂时性存储器,诸如,固态存储器、光盘和磁盘。此外,在本领域中通常用一种形式或另一种形式(例如,程序、过程、进程、应用、模块、逻辑等)将软件说成采取动作或者导致结果。这种表达仅是由处理系统执行软件使得处理器执行动作或者产生结果的一种缩写方式。
公开了至少一个实施例并且本领域的普通技术人员对(多个)实施例和/或(多个)实施例的特征做出的变化、组合和/或修改在本公开的范围内。因为组合、整合和/或省略(多个)实施例的特征而产生的替代实施例也在本公开的范围内。在明确陈述数值范围或限制的情况下,应将这些明确范围或限制理解为包括属于明确陈述的范围或限制内的类似量值的迭代范围或限制(例如,从约1到约10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。属于“约”的使用指的是,后面的数字的±10%,除非另有说明。
关于权利要求的任何元件的术语“可选地”的使用指需要元件,或者可替代地,不需要元件,两个替代均在权利要求的范围内。诸如包括(comprises)、包含(includes)和具有等广义词的使用可以被理解为对诸如由……组成、基本上由……组成和大体上由……组成等狭义词提供支持。因此,保护范围并不受上述描述的限制,而是由其遵循的权利要求定义,所述范围包括权利要求的主题的所有等同物。将每一和各个权利要求作为进一步揭示内容并入到说明书中,并且权利要求是本发明的(多个)实施例。
以下示例属于进一步的实施例。
示例1是非暂时性机器可读介质,该非暂时性机器可读介质存储用于管理可编程装置的更新的指令,该可编程装置是由多个互相连接的可编程装置组成的计算机网络的一部分,该指令在被机器执行时使机器进行以下操作:将安装在可编程装置上的计算机程序的第一配置提交给分布式账本,其中,可编程装置是由多个互相连接的可编程装置组成的计算机网络的一部分,并且其中,分布式账本存在于多个互相连接的可编程装置中的至少两个可编程装置上;接收将第一更新应用于计算机程序的第一配置的第一请求和将第二更新应用于计算机程序的第一配置的第二请求;接收计算机程序的第二配置,该第二配置是基于第一更新和计算机程序的第一配置来生成的;将计算机程序的第二配置提交给分布式账本;基于分布式账本,确定第二更新无法应用于计算机程序的第一配置;响应于确定无法应用第二更新,接收计算机程序的第三配置,该第三配置是基于第二更新和计算机程序的第二配置来生成的;以及将计算机程序的第三配置提交给分布式账本。
在示例2中,示例1的主题可以可选地包括:第一更新和第二更新中的至少一个是从第三方更新服务接收到的。
在示例3中,示例1或2的主题可以可选地包括:第二请求是在接收到计算机程序的第二配置之前接收到的。
在示例4中,示例1、2或3的主题可以可选地包括:分布式账本将计算机程序的各个配置存储在单独区块中。
在示例5中,示例1、2、3或4的主题可以可选地包括:第一更新和第二更新中的各个更新是软件包。
在示例6中,示例1、2、3、4或5的主题可以可选地包括:第一更新和第二更新中的各个更新是使用包版本串来识别的。
在示例7中,示例1、2、3、4、5或6的主题可以进一步包括以下指令,该指令在被机器执行时使机器进行以下操作:检测计算机程序的第二配置应该被回滚;响应于检测到计算机程序的第二配置应该被回滚,将计算机程序的第二配置回滚到计算机程序的第一配置;响应于回滚计算机程序的第二配置,修改第一更新;接收计算机程序的修改后的第二配置,该修改后的第二配置基于修改后的第一更新和计算机程序的第一配置;将计算机程序的修改后的第二配置提交给分布式账本;接收计算机程序的修改后的第三配置,该修改后的第三配置基于第二更新和计算机程序的修改后的第二配置;以及将计算机程序的修改后的第三配置提交给分布式账本。
在示例8中,示例1、2、3、4、5、6或7的主题可以可选地包括:用于使机器修改第一更新的指令包括用于使机器进行以下操作的指令:检测第一更新中的漏洞;以及修正漏洞,以生成修改后的第一更新。
示例9是管理可编程装置的更新的方法,该可编程装置是由多个互相连接的可编程装置组成的计算机网络的一部分,该方法包括:将安装在可编程装置上的计算机程序的第一配置提交给由可编程装置的一个或多个处理器实施的分布式账本,其中,该可编程装置是由多个互相连接的可编程装置组成的计算机网络的一部分,并且其中,分布式账本存在于多个互相连接的可编程装置中的至少两个可编程装置上;通过可编程装置的一个或多个处理器来接收将第一更新应用于计算机程序的第一配置的第一请求和将第二更新应用于计算机程序的第一配置的第二请求;接收计算机程序的第二配置,该第二配置是基于第一更新和计算机程序的第一配置来生成的;通过可编程装置的一个或多个处理器将计算机程序的第二配置提交给分布式账本;基于分布式账本,确定第二更新无法应用于计算机程序的第一配置;响应于确定无法应用第二更新来接收计算机程序的第三配置,该第三配置是基于第二更新和计算机程序的第二配置来生成的;以及通过可编程装置的一个或多个处理器将计算机程序的第三配置提交给分布式账本。
在示例10中,示例9的主题可以可选地包括:第一更新或者第二更新中的至少一个是从第三方更新服务接收到的。
在示例11中,示例9或10的主题可以可选地包括:第二请求是在接收到计算机程序的第二配置之前接收到的。
在示例12中,示例9、10或11的主题可以可选地包括:分布式账本将计算机程序的各个配置存储在单独区块中。
在示例13中,示例9、10、11或12的主题可以可选地包括:第一更新和第二更新中的各个更新是软件包。
在示例14中,示例9、10、11、12或13的主题可以可选地包括:第一更新和第二更新中的各个更新是使用包版本串来识别的。
在示例15中,示例9、10、11、12、13或14的主题可以可选地进一步包括:检测计算机程序的第二配置应该被回滚;响应于检测到计算机程序的第二配置应该被回滚,将计算机程序的第二配置回滚到计算机程序的第一配置;响应于回滚计算机程序的第二配置,修改第一更新;接收计算机程序的修改后的第二配置,该修改后的第二配置基于修改后的第一更新和计算机程序的第一配置;将计算机程序的修改后的第二配置提交给分布式账本;接收计算机程序的修改后的第三配置,该修改后的第三配置基于第二更新和计算机程序的修改后的第二配置;以及将计算机程序的修改后的第三配置提交给分布式账本。
在示例16中,示例9、10、11、12、13、14或15的主题可以可选地包括:修改第一更新的步骤包括:检测第一更新中的漏洞;以及修正漏洞,以生成修改后的第一更新。
示例17是用于管理可编程装置的更新的系统,该可编程装置是由多个互相连接的可编程装置组成的计算机网络的一部分,该系统包括:一个或多个处理器;以及联接至一个或多个处理器并且存储指令的存储器,其中,该指令在被一个或多个处理器执行时使一个或多个处理器进行以下操作:将安装在可编程装置上的计算机程序的第一配置提交给分布式账本,其中,该可编程装置是由多个互相连接的可编程装置组成的计算机网络的部分,并且其中,分布式账本存在于多个互相连接的可编程装置中的至少两个可编程装置上;接收将第一更新应用于计算机程序的第一配置的第一请求和将第二更新应用于计算机程序的第一配置的第二请求;接收计算机程序的第二配置,第二配置是基于第一更新和计算机程序的第一配置来生成的;将计算机程序的第二配置提交给分布式账本;基于分布式账本,确定第二更新无法应用于计算机程序的第一配置;响应于确定无法应用第二更新来接收计算机程序的第三配置,该第三配置是基于第二更新和计算机程序的第二配置来生成的;以及将计算机程序的第三配置提交给分布式账本。
在示例18中,示例17的主题可以可选地包括:第一更新和第二更新中的至少一个是从第三方更新服务接收到的。
在示例19中,示例17或18的主题可以可选地包括:第二请求是在接收到计算机程序的第二配置之前接收到的。
在示例20中,示例17、18或19的主题可以可选地包括:分布式账本将计算机程序的各个配置存储在单独区块中。
在示例21中,示例17、18、19或20的主题可以可选地包括:第一更新和第二更新中的各个更新是软件包。
在示例22中,示例17、18、19、20或21的主题可以可选地包括:第一更新和第二更新中的各个更新是使用包版本串来识别的。
在示例23中,示例17、18、19、20、21或22的主题可以可选地进一步包括以下指令,该指令在被一个或多个处理器执行时使一个或多个处理器进行以下操作:检测计算机程序的第二配置应该被回滚;响应于检测到计算机程序的第二配置应该被回滚,将计算机程序的第二配置回滚到计算机程序的第一配置;响应于回滚计算机程序的第二配置,修改第一更新;接收计算机程序的修改后的第二配置,该修改后的第二配置基于修改后的第一更新和计算机程序的第一配置;将计算机程序的修改后的第二配置提交给分布式账本;接收计算机程序的修改后的第三配置,该修改后的第三配置基于第二更新和计算机程序的修改后的第二配置;以及将计算机程序的修改后的第三配置提交给分布式账本。
在示例24中,示例17、18、19、20、21、22或23的主题可以可选地包括:用于使一个或多个处理器修改第一更新的指令包括用于使一个或多个处理器进行以下操作的指令:检测第一更新中的漏洞;以及修正漏洞,以生成修改后的第一更新。
在示例25中,示例17、18、19、20、21、22、23或24的主题可以可选地包括:一个或多个处理器中的至少一个是加密处理器。
在示例26中,示例1、2、3、4、5、6、7或8的主题可以可选地包括:可编程装置的一个或多个处理器中的至少一个处理器是加密处理器。
在示例27中,示例9、10、11、12、13、14、15或16的主题可以可选地包括:可编程装置的一个或多个处理器中的至少一个处理器是加密处理器。
应当理解,上面的描述旨在是说明性的,而非限制性的。例如,上述实施例可以彼此结合使用。在阅览上面的描述时,对于本领域的技术人员而言,许多其它实施例将变得显而易见。因此,应该参照所附权利要求连同这些权利要求所享有的等同物的全部范围,来确定本发明的范围。
在本文中,参考区块链技术,诸如,以太坊和比特币。ETHEREUM可以是以太坊基金会(以太坊基金)的商标。BITCOIN可以是比特币基金会的商标。本文所引用的这些和任何其它标记可以是附属于或者不附属于申请人或者受让人的第三方的习惯法或者注册商标。这些标记的使用是作为例子并且不应该被视为描述性的,或者使本文所描述的实施例的范围限于仅与这些标记相关联的材料。

Claims (28)

1.一种机器可读介质,所述机器可读介质包括用于更新可编程装置的指令,所述可编程装置是包括多个互相连接的可编程装置的计算机网络的一部分,所述指令在被所述可编程装置的至少一个处理器执行时使所述至少一个处理器进行以下操作:
将安装在所述可编程装置上的计算机程序的第一配置提交给分布式账本,所述分布式账本在所述多个互相连接的可编程装置中的至少两个可编程装置上,且所述分布式账本基于区块链;
接收将第一更新应用于所述计算机程序的第一配置的第一请求以及将第二更新应用于所述计算机程序的第一配置的第二请求;
基于所述第一更新和所述计算机程序的第一配置来生成所述计算机程序的第二配置;
将所述计算机程序的第二配置提交给所述可编程装置;
将所述计算机程序的第二配置提交给所述分布式账本;
通过检查所述分布式账本的最近的区块,来确定所述计算机程序的最新配置;
基于所述最新配置,验证所述计算机程序的第一配置在所述分布式账本上的不存在状态;
防止将所述第二更新应用到所述计算机程序的第一配置;
响应于验证了所述计算机程序的第一配置在所述分布式账本上的不存在状态,而基于该验证而生成所述计算机程序的第三配置,所述第三配置要基于所述第二更新和所述计算机程序的第二配置来生成;
将所述计算机程序的第三配置提交给所述可编程装置;以及
将所述计算机程序的第三配置提交给所述分布式账本。
2.根据权利要求1所述的机器可读介质,其中,将从第三方更新服务接收所述第一更新和所述第二更新中的至少一个。
3.根据权利要求1至2中任一项所述的机器可读介质,其中,将在生成所述计算机程序的第二配置之前接收所述第二请求。
4.根据权利要求1至2中任一项所述的机器可读介质,其中,所述分布式账本分别将所述第一配置、所述第二配置和所述第三配置存储在单独区块中。
5.根据权利要求1至2中任一项所述的机器可读介质,其中,所述第一更新和所述第二更新中的各个更新包括软件包。
6.根据权利要求5所述的机器可读介质,其中,当被执行时,所述指令进一步使所述至少一个处理器使用包版本串来识别所述第一更新和所述第二更新中的各个更新。
7.根据权利要求1至2中任一项所述的机器可读介质,其中,所述指令使所述至少一个处理器进行以下操作:
检测所述计算机程序的第二配置应该被从所述可编程装置回滚;
响应于检测到所述计算机程序的第二配置应该被回滚,而将所述计算机程序的第二配置回滚到所述计算机程序的第一配置;
响应于回滚所述计算机程序的第二配置,而修改所述第一更新;
基于修改后的第一更新和所述计算机程序的第一配置,生成所述计算机程序的修改后的第二配置;
将所述计算机程序的修改后的第二配置提交给所述分布式账本;
基于所述第二更新和所述计算机程序的修改后的第二配置,生成所述计算机程序的第四配置;以及
将所述计算机程序的第四配置提交给所述分布式账本。
8.根据权利要求7所述的机器可读介质,其中,所述指令使所述至少一个处理器进行以下操作:
检测所述第一更新中的漏洞;以及
修正所述漏洞,以生成修改后的第一更新。
9.一种更新可编程装置的方法,所述可编程装置是包括多个互相连接的可编程装置的计算机网络的一部分,所述方法包括以下步骤:
通过由至少一个处理器执行指令,将安装在所述可编程装置上的计算机程序的第一配置提交给分布式账本,所述分布式账本在所述多个互相连接的可编程装置中的至少两个可编程装置上,且所述分布式账本基于区块链;
通过由所述至少一个处理器执行指令,分析将第一更新应用于所述计算机程序的第一配置的第一请求,以及将第二更新应用于所述计算机程序的第一配置的第二请求;
通过由所述至少一个处理器执行指令,基于所述第一更新和所述计算机程序的第一配置来生成所述计算机程序的第二配置;
通过由所述至少一个处理器执行指令,将所述计算机程序的第二配置提交给所述可编程装置;
通过由所述至少一个处理器执行指令,将所述计算机程序的第二配置提交给所述分布式账本;
通过由所述至少一个处理器执行指令,通过检查所述分布式账本的最近的区块来确定所述计算机程序的最新配置;
通过由所述至少一个处理器执行指令,基于所述最新配置验证所述计算机程序的第一配置在所述分布式账本上的不存在状态;
通过由所述至少一个处理器执行指令,防止将所述第二更新应用到所述计算机程序的第一配置;
通过由所述至少一个处理器执行指令,响应于验证了所述计算机程序的第一配置在所述分布式账本上的不存在状态,而基于所述第二更新和所述计算机程序的第二配置来生成所述计算机程序的第三配置;
通过由所述至少一个处理器执行指令,将所述计算机程序的第三配置提交给所述可编程装置;以及
通过由所述至少一个处理器执行指令,将所述计算机程序的第三配置提交给所述分布式账本。
10.根据权利要求9所述的方法,所述方法进一步包括以下步骤:从第三方更新服务接收所述第一更新和所述第二更新中的至少一个。
11.根据权利要求9至10中任一项所述的方法,所述方法进一步包括以下步骤:在接收到所述计算机程序的第二配置之前接收所述第二请求。
12.根据权利要求9至10中任一项所述的方法,其中,所述分布式账本分别将所述第一配置、所述第二配置和所述第三配置存储在单独区块中。
13.根据权利要求9至10中任一项所述的方法,其中,所述第一更新和所述第二更新中的各个更新包括软件包。
14.根据权利要求13所述的方法,所述方法进一步包括以下步骤:使用包版本串来识别所述第一更新和所述第二更新中的各个更新。
15.根据权利要求9至10中任一项所述的方法,所述方法进一步包括以下步骤:
检测所述计算机程序的第二配置应该被从所述可编程装置回滚;
响应于检测到所述计算机程序的第二配置应该被回滚,将所述计算机程序的第二配置回滚到所述计算机程序的第一配置;
响应于回滚所述计算机程序的第二配置,修改所述第一更新;
基于修改后的第一更新和所述计算机程序的第一配置,生成所述计算机程序的修改后的第二配置;
将所述计算机程序的修改后的第二配置提交给所述分布式账本;
基于所述第二更新和所述计算机程序的修改后的第二配置,生成所述计算机程序的第四配置;以及
将所述计算机程序的第四配置提交给所述分布式账本。
16.根据权利要求15所述的方法,所述方法进一步包括以下步骤:
检测所述第一更新中的漏洞;以及
修正所述漏洞,以生成修改后的第一更新。
17.一种用于更新可编程装置的系统,所述可编程装置是具有多个互相连接的可编程装置组成的计算机网络的一部分,所述系统包括:
存储器,其包括指令;以及
一个或多个处理器,其用于执行所述指令,以进行以下操作:
将安装在所述可编程装置上的计算机程序的第一配置提交给分布式账本,所述分布式账本在所述多个互相连接的可编程装置中的至少两个可编程装置上,且所述分布式账本基于区块链;
分析将第一更新应用于所述计算机程序的第一配置的第一请求以及将第二更新应用于所述计算机程序的第一配置的第二请求;
基于所述第一更新和所述计算机程序的第一配置来生成所述计算机程序的第二配置;
将所述计算机程序的第二配置提交给所述可编程装置;
将所述计算机程序的第二配置提交给所述分布式账本;
通过检查所述分布式账本的最近的区块来确定所述计算机程序的最新配置;
基于所述最新配置验证所述计算机程序的第一配置在所述分布式账本上的不存在状态;
防止将所述第二更新应用到所述计算机程序的第一配置;
响应于验证了所述计算机程序的第一配置在所述分布式账本上的不存在状态,而基于该验证生成所述计算机程序的第三配置,该第三配置要基于所述第二更新和所述计算机程序的第二配置来生成;
将所述计算机程序的第三配置提交给所述可编程装置;
将所述计算机程序的第三配置提交给所述分布式账本;以及
基于将所述第三配置提交给所述分布式账本,使所述分布式账本与第二可编程装置同步。
18.根据权利要求17所述的系统,其中,将从第三方更新服务接收所述第一更新和所述第二更新中的至少一个。
19.根据权利要求17至18中任一项所述的系统,其中,要在所述一个或多个处理器生成所述计算机程序的第二配置之前接收所述第二请求。
20.根据权利要求17至18中任一项所述的系统,其中,所述分布式账本分别将所述第一配置、所述第二配置和所述第三配置存储在单独区块中。
21.根据权利要求17至18中任一项所述的系统,其中,所述第一更新和所述第二更新中的各个更新包括软件包。
22.根据权利要求21所述的系统,其中,所述一个或多个处理器使用包版本串来识别所述第一更新和所述第二更新中的各个更新。
23.根据权利要求17至18中任一项所述的系统,其中,所述一个或多个处理器进行以下操作:
检测所述计算机程序的第二配置应该被从所述可编程装置回滚;
响应于检测到所述计算机程序的第二配置应该被回滚,将所述计算机程序的第二配置回滚到所述计算机程序的第一配置;
响应于回滚所述计算机程序的第二配置,修改所述第一更新;
基于修改后的第一更新和所述计算机程序的第一配置来生成所述计算机程序的修改后的第二配置;
将所述计算机程序的修改后的第二配置提交给所述分布式账本;
基于所述第二更新和所述计算机程序的修改后的第二配置来生成所述计算机程序的第四配置;以及
将所述计算机程序的第四配置提交给所述分布式账本。
24.根据权利要求23所述的系统,其中,所述一个或多个处理器进行以下操作:
检测所述第一更新中的漏洞;以及
修正所述漏洞,以生成修改后的第一更新。
25.根据权利要求17至18中任一项所述的系统,其中,所述一个或多个处理器中的至少一个处理器是加密处理器。
26.一种用于更新可编程装置的系统,所述可编程装置是包括多个互相连接的可编程装置的计算机网络的一部分,所述系统包括:
逻辑模块,其使安装在所述可编程装置上的计算机程序的第一配置被提交给分布式账本,所述分布式账本在所述多个互相连接的可编程装置中的至少两个可编程装置上,且所述分布式账本基于区块链;以及
更新装置,其响应于将第一更新应用于所述计算机程序的第一配置的第一请求而更新所述第一配置,以及响应于将第二更新应用于所述计算机程序的第一配置的第二请求而更新所述第一配置;
所述更新装置基于所述第一更新和所述计算机程序的第一配置来生成所述计算机程序的第二配置;
所述更新装置将所述计算机程序的第二配置提交给所述可编程装置;
所述逻辑模块将所述计算机程序的第二配置提交给所述分布式账本;
所述逻辑模块通过检查所述分布式账本的最近的区块来确定所述计算机程序的最新配置;
所述逻辑模块基于所述最新配置来验证所述计算机程序的第一配置在所述分布式账本上的不存在状态,并且防止将所述第二更新应用到所述计算机程序的第一配置;
响应于验证了所述计算机程序的第一配置在所述分布式账本上的不存在状态,所述更新装置基于所述第二更新和所述计算机程序的第二配置来生成所述计算机程序的第三配置;
所述更新装置将所述计算机程序的第三配置提交给所述可编程装置;以及
所述逻辑模块将所述计算机程序的第三配置提交给所述分布式账本。
27.根据权利要求26所述的系统,其中,所述逻辑模块进行以下操作:
检测所述计算机程序的第二配置应该被从所述可编程装置回滚;
响应于检测到所述计算机程序的第二配置应该被回滚,而将所述计算机程序的第二配置回滚到所述计算机程序的第一配置;
响应于回滚所述计算机程序的第二配置,而修改所述第一更新;并且
所述更新装置基于修改后的第一更新和所述计算机程序的第一配置,生成所述计算机程序的修改后的第二配置;
所述逻辑模块使所述计算机程序的修改后的第二配置被提交给所述分布式账本;
所述更新装置基于所述第二更新和所述计算机程序的修改后的第二配置,生成所述计算机程序的第四配置;以及
所述逻辑模块使所述计算机程序的第四配置被提交给所述分布式账本。
28.根据权利要求27所述的系统,其中,所述逻辑模块进行以下操作:
检测所述第一更新中的漏洞;以及
修正所述漏洞,以生成修改后的第一更新。
CN201780065941.5A 2016-09-28 2017-09-27 用于更新可编程装置的方法、系统、机器可读介质 Active CN110169036B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/278,936 2016-09-28
US15/278,936 US10185550B2 (en) 2016-09-28 2016-09-28 Device-driven auto-recovery using multiple recovery sources
PCT/US2017/053696 WO2018064154A1 (en) 2016-09-28 2017-09-27 Device-driven auto-recovery using multiple recovery sources

Publications (2)

Publication Number Publication Date
CN110169036A CN110169036A (zh) 2019-08-23
CN110169036B true CN110169036B (zh) 2022-03-08

Family

ID=60084084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780065941.5A Active CN110169036B (zh) 2016-09-28 2017-09-27 用于更新可编程装置的方法、系统、机器可读介质

Country Status (4)

Country Link
US (3) US10185550B2 (zh)
EP (1) EP3520368B1 (zh)
CN (1) CN110169036B (zh)
WO (1) WO2018064154A1 (zh)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
JP5932837B2 (ja) 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US10185550B2 (en) 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
DE102016118613A1 (de) * 2016-09-30 2018-04-05 Endress+Hauser Process Solutions Ag System und Verfahren zum Bestimmen oder Überwachen einer Prozessgröße in einer Anlage der Automatisierungstechnik
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
US20180157688A1 (en) * 2016-12-03 2018-06-07 Dell Products, Lp Ledger-chained distributed information handling systems and methods
US10291408B2 (en) * 2016-12-23 2019-05-14 Amazon Technologies, Inc. Generation of Merkle trees as proof-of-work
JP6888295B2 (ja) * 2016-12-26 2021-06-16 富士通株式会社 プログラム、情報処理装置、および情報処理方法
CN110024422B (zh) 2016-12-30 2023-07-18 英特尔公司 物联网的命名和区块链记录
US10511445B1 (en) 2017-01-05 2019-12-17 Amazon Technologies, Inc. Signature compression for hash-based signature schemes
US10608824B1 (en) 2017-01-09 2020-03-31 Amazon Technologies, Inc. Merkle signature scheme tree expansion
MX2019008243A (es) * 2017-01-27 2019-09-06 Walmart Apollo Llc Gestión de aparatos inteligentes que utiliza tecnología de cadena de bloques .
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
EP3361672B1 (en) * 2017-02-10 2020-06-17 Nokia Technologies Oy Blockchain-based authentication method and system
WO2018149504A1 (en) * 2017-02-17 2018-08-23 Nokia Technologies Oy Changing smart contracts recorded in block chains
US10567223B1 (en) * 2017-03-07 2020-02-18 Juniper Networks, Inc. Optimistic concurrency control for managed network devices
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US20180285217A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Failover response using a known good state from a distributed ledger
EP3655881A4 (en) * 2017-07-17 2021-01-27 Cryptowerk Corp. PROCESS AND SYSTEM FOR SECURE CONFIGURATION OF AT LEAST ONE ELECTRONIC DEVICE
US10416986B2 (en) * 2017-07-20 2019-09-17 Vmware, Inc. Automating application updates in a virtual computing environment
EP3445017B1 (en) * 2017-08-16 2019-10-09 Veoneer Sweden AB A method relating to a motor vehicle driver assistance system
US11494402B1 (en) 2017-09-13 2022-11-08 Inveniam Capital Partners, Inc. Apparatus and methods for producing data structures having internal self-references suitable for immutably representing and verifying data
US11251975B1 (en) * 2017-09-27 2022-02-15 Seagate Technology Llc Block chain based trusted security infrastructure
US10855436B2 (en) 2017-11-09 2020-12-01 Google Llc System and method for automatically synchronizing responses to conditions on devices
US10659473B2 (en) * 2017-11-09 2020-05-19 Nokia Solutions And Networks Oy Method and apparatus for blockchain powered integrity protection system
US20190197130A1 (en) * 2017-12-21 2019-06-27 Microsoft Technology Licensing, Llc Ensuring consistency in distributed incremental content publishing
US10924489B2 (en) * 2018-01-19 2021-02-16 International Business Machines Corporation Building trusted public blockchain networks based on participants' digital social behavior
US10701054B2 (en) 2018-01-31 2020-06-30 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
US11257073B2 (en) 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
US11196733B2 (en) * 2018-02-08 2021-12-07 Dell Products L.P. System and method for group of groups single sign-on demarcation based on first user login
US10693662B2 (en) * 2018-02-22 2020-06-23 Idlogiq Inc. Methods for secure serialization of supply chain product units
US10880071B2 (en) * 2018-02-23 2020-12-29 Samsung Electronics Co., Ltd. Programmable blockchain solid state drive and switch
US10873625B2 (en) * 2018-02-26 2020-12-22 International Business Machines Corpora ! Ion Service management for the infrastructure of blockchain networks
US10630463B2 (en) * 2018-02-26 2020-04-21 Ca, Inc. Meta block chain
US11917018B2 (en) 2018-02-27 2024-02-27 Excelfore Corporation Broker-based bus protocol and multi-client architecture
US10834206B2 (en) * 2018-02-27 2020-11-10 Excelfore Corporation Broker-based bus protocol and multi-client architecture
US11528611B2 (en) 2018-03-14 2022-12-13 Rose Margaret Smith Method and system for IoT code and configuration using smart contracts
US10304062B1 (en) 2018-03-23 2019-05-28 Td Professional Services, Llc Computer architecture incorporating blockchain based immutable audit ledger for compliance with data regulations
US11847479B2 (en) 2018-03-23 2023-12-19 Vmware, Inc. Allocating a host of a pre-configured hyper-converged computing device to a workload domain
CN110417567B (zh) * 2018-04-27 2021-12-14 华为技术有限公司 一种物联网设备的配置方法和装置
US10997150B2 (en) * 2018-05-15 2021-05-04 International Business Machines Corporation Configuration drift prevention across multiple systems using blockchain
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
WO2019226510A1 (en) * 2018-05-21 2019-11-28 Rivetz Corp. Methods and systems for multiple independent roots of trust
EP3575953B1 (en) * 2018-05-31 2021-04-14 Nokia Solutions and Networks Oy A blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof
US10979445B2 (en) 2018-07-09 2021-04-13 At&T Intellectual Property I, L.P. Security management of devices using blockchain technology
US11157622B2 (en) * 2018-07-10 2021-10-26 International Business Machines Corporation Blockchain technique for agile software development framework
US11194911B2 (en) 2018-07-10 2021-12-07 International Business Machines Corporation Blockchain technique for agile software development framework
EP3598333B1 (en) * 2018-07-16 2023-01-18 Nokia Technologies Oy Electronic device update management
US10776094B2 (en) * 2018-07-29 2020-09-15 ColorTokens, Inc. Computer implemented system and method for encoding configuration information in a filename
US11348098B2 (en) 2018-08-06 2022-05-31 Inveniam Capital Partners, Inc. Decisional architectures in blockchain environments
US11294865B2 (en) * 2018-08-13 2022-04-05 Citrix Systems, Inc. Using a scan data ledger for distributed security analysis of shared content
US11223655B2 (en) * 2018-08-13 2022-01-11 International Business Machines Corporation Semiconductor tool matching and manufacturing management in a blockchain
JP7180207B2 (ja) 2018-08-28 2022-11-30 セイコーエプソン株式会社 提供装置、処理システム及び通信方法
US10250395B1 (en) 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
US11032063B2 (en) 2018-09-19 2021-06-08 International Business Machines Corporation Distributed platform for computation and trusted validation
US11940978B2 (en) 2018-09-19 2024-03-26 International Business Machines Corporation Distributed platform for computation and trusted validation
US11212076B2 (en) * 2018-09-19 2021-12-28 International Business Machines Corporation Distributed platform for computation and trusted validation
US10250394B1 (en) 2018-09-20 2019-04-02 Accenture Global Solutions Limited Cryptologic self-executing blockchain export commitment
GB201816837D0 (en) 2018-10-16 2018-11-28 Microsoft Technology Licensing Llc Database management
US20200133658A1 (en) * 2018-10-30 2020-04-30 EMC IP Holding Company LLC Change governance using blockchain
US11288280B2 (en) 2018-10-31 2022-03-29 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain
US10671372B2 (en) * 2018-11-01 2020-06-02 Dell Products L.P. Blockchain-based secure customized catalog system
US10936294B2 (en) * 2018-11-01 2021-03-02 Dell Products L.P. Blockchain-based software compliance system
US11150888B2 (en) * 2018-12-22 2021-10-19 Daniel Ivan Beard Software bill of materials validation systems and methods
WO2020157369A1 (en) * 2019-01-30 2020-08-06 Nokia Solutions And Networks Oy Remote blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof
US11488176B2 (en) 2019-01-31 2022-11-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing certificates of authenticity of digital twins transacted onto a blockchain using distributed ledger technology (DLT)
US11875400B2 (en) 2019-01-31 2024-01-16 Salesforce, Inc. Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT)
US11783024B2 (en) 2019-01-31 2023-10-10 Salesforce, Inc. Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration
US11899817B2 (en) 2019-01-31 2024-02-13 Salesforce, Inc. Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information
US11244313B2 (en) 2019-01-31 2022-02-08 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing declarative smart actions for coins and assets transacted onto a blockchain using distributed ledger technology (DLT)
US11803537B2 (en) 2019-01-31 2023-10-31 Salesforce, Inc. Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT)
US11876910B2 (en) 2019-01-31 2024-01-16 Salesforce, Inc. Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT)
US11811769B2 (en) 2019-01-31 2023-11-07 Salesforce, Inc. Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger
US11824864B2 (en) 2019-01-31 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT)
US11886421B2 (en) 2019-01-31 2024-01-30 Salesforce, Inc. Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT)
US11240027B2 (en) * 2019-02-04 2022-02-01 Hewlett Packard Enterprise Development Lp Synchronizing radius server databases using distributed ledger network
EP3928197A1 (en) * 2019-02-19 2021-12-29 Red Bend Ltd. Software updates distribution to vehicles via v2v communication and verification by a community of vehicles
US11038771B2 (en) 2019-04-26 2021-06-15 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT)
US11880349B2 (en) 2019-04-30 2024-01-23 Salesforce, Inc. System or method to query or search a metadata driven distributed ledger or blockchain
US10936302B2 (en) 2019-06-07 2021-03-02 Volvo Car Corporation Updating sub-systems of a device using blockchain
CN110311838B (zh) * 2019-07-24 2021-05-04 绿盟科技集团股份有限公司 一种安全服务流量统计的方法及装置
US11347612B2 (en) 2019-07-31 2022-05-31 T-Mobile Usa, Inc. Distributed ledger for tracking a condition of an electronic device
US11036488B2 (en) * 2019-08-12 2021-06-15 International Business Machines Corporation System and method for optimal hierarchical upgrade time prediction
CN110535938B (zh) * 2019-08-29 2021-07-27 腾讯科技(深圳)有限公司 一种基于智能合约的数据处理方法、设备及存储介质
CN110430087B (zh) * 2019-09-16 2022-04-05 上海保险交易所股份有限公司 区块链热升级的架构设计与实现
CN112579343A (zh) * 2019-09-27 2021-03-30 阿里巴巴集团控股有限公司 区块链节点数据的恢复方法及装置
US11196570B2 (en) 2019-10-07 2021-12-07 Accenture Global Solutions Limited Cryptologic blockchain interoperability membership system
DE112020004859T5 (de) 2019-10-09 2022-07-28 Toyota Motor North America, Inc. Update-management für software von beförderungsmitteln
US11422792B2 (en) 2019-10-09 2022-08-23 Toyota Motor North America, Inc. Management of transport software updates
US11294662B2 (en) 2019-10-09 2022-04-05 Toyota Motor North America, Inc. Management of transport software updates
US11169795B2 (en) 2019-10-09 2021-11-09 Toyota Motor North America, Inc. Management of transport software updates
CN111373402B (zh) 2019-11-08 2022-03-25 支付宝(杭州)信息技术有限公司 轻量去中心化应用平台
WO2020035089A2 (en) 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11824970B2 (en) 2020-01-20 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules
US11144335B2 (en) 2020-01-30 2021-10-12 Salesforce.Com, Inc. System or method to display blockchain information with centralized information in a tenant interface on a multi-tenant platform
US11611560B2 (en) 2020-01-31 2023-03-21 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform
CN111400106B (zh) * 2020-03-27 2023-07-28 百度国际科技(深圳)有限公司 一种区块链账本同步方法、装置以及电子设备
US11687656B2 (en) * 2020-04-16 2023-06-27 American Express Travel Related Services Company, Inc. Secure application development using distributed ledgers
US11451588B2 (en) * 2020-04-30 2022-09-20 Vmware, Inc. Exchanging and acting on security events at an enterprise using permissioned blockchain
US11880670B2 (en) 2020-06-23 2024-01-23 Toyota Motor North America, Inc. Execution of transport software update
US11281450B2 (en) * 2020-06-23 2022-03-22 Toyota Motor North America, Inc. Secure transport software update
US11398911B1 (en) 2020-07-12 2022-07-26 Run Interactive, Inc. System for interacting objects as tokens on a blockchain using a class-based language
EP3958507A1 (en) * 2020-08-17 2022-02-23 Nokia Solutions and Networks Oy Blockchain-based network device management methods and devices
CN112883117B (zh) * 2020-12-24 2022-03-15 腾讯科技(深圳)有限公司 一种数据同步方法、设备以及计算机可读存储介质
US11943355B2 (en) * 2022-08-03 2024-03-26 Hunt Energy Enterprises, L.L.C. Decentralized system and method for mitigation of climate change

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1950775A (zh) * 2004-04-29 2007-04-18 皇家飞利浦电子股份有限公司 计算机程序执行期间的入侵检测
US7305422B1 (en) * 2002-09-26 2007-12-04 Oracle International Corporation Performing computationally intensive calculations within a database server that provides a recovery mechanism
GB201605331D0 (en) * 2016-03-30 2016-05-11 British Telecomm Blockchain state reliability determination

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994014118A1 (en) 1992-12-17 1994-06-23 Legent Corporation System and method for generating local area network operating statistics
SG67354A1 (en) 1996-06-27 1999-09-21 Inst Of Systems Science Nation Computationally efficient method for trusted and dynamic digital objects dissemination
US6128656A (en) * 1998-09-10 2000-10-03 Cisco Technology, Inc. System for updating selected part of configuration information stored in a memory of a network element depending on status of received state variable
JP3671759B2 (ja) 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
JP2005533445A (ja) 2002-07-16 2005-11-04 エンテラシス ネットワークス, インク. 仮想階層ローカルエリアネットワークのための装置及び方法
GB0303192D0 (en) 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US7103763B2 (en) * 2003-04-24 2006-09-05 International Business Machines Corporation Storage and access of configuration data in nonvolatile memory of a logically-partitioned computer
CN1234226C (zh) 2003-06-27 2005-12-28 中国科学院计算技术研究所 一种利用分组头中的剩余生命期进行分组传输服务质量调度的方法
US8345701B1 (en) 2003-08-26 2013-01-01 F5 Networks, Inc. Memory system for controlling distribution of packet data across a switch
US7424602B2 (en) * 2005-12-29 2008-09-09 Sap Ag Application system configuration packages
US8522341B2 (en) 2006-03-31 2013-08-27 Sap Ag Active intervention in service-to-device mapping for smart items
US8554536B2 (en) 2006-05-24 2013-10-08 Verizon Patent And Licensing Inc. Information operations support system, method, and computer program product
US7934221B2 (en) * 2007-02-27 2011-04-26 Serena Software, Inc. Approach for proactive notification of contract changes in a software service
US9344497B2 (en) 2007-09-28 2016-05-17 Xcerion Aktiebolag State management of applications and data
US20200267163A1 (en) 2008-04-25 2020-08-20 Kelce S. Wilson Blockchain for Documents Having Legal Evidentiary Value
US8422513B2 (en) 2008-05-23 2013-04-16 Nokia Siemens Networks Oy Providing station context and mobility in a wireless local area network having a split MAC architecture
PE20121418A1 (es) * 2009-07-23 2012-11-08 Source Trace Systems Inc Modificacion de maquinas terminal y proveedoras de servicio utilizando un servidor de actualizaciones
JP5509754B2 (ja) * 2009-09-15 2014-06-04 株式会社リコー ソフトウェア管理装置、ソフトウェア配信システム、インストール方法およびプログラム
CN102238146B (zh) 2010-04-27 2014-10-08 中国移动通信集团公司 认证方法、装置、认证中心及系统
CN101990238B (zh) 2010-11-05 2013-06-26 中国科学院声学研究所 一种传感器网络数据聚合的实现方法
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8732693B2 (en) 2011-08-04 2014-05-20 Microsoft Corporation Managing continuous software deployment
US8683443B2 (en) 2011-08-25 2014-03-25 Salesforce.Com, Inc. Streamlined methodology for resolving software integration conflicts
US9686131B2 (en) 2011-12-14 2017-06-20 Moxa Inc. System, gateway, and method for automatic setting configuration by learning commands
US8879550B2 (en) 2012-05-08 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for packet classification
US9876775B2 (en) 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
CN103106068B (zh) 2013-02-28 2015-03-18 江苏中科物联网科技创业投资有限公司 物联网大数据快速校验方法
CN103200616B (zh) 2013-03-06 2015-12-23 重庆邮电大学 一种建立物联网网络模型的节能部署方法
US8918775B1 (en) 2013-07-12 2014-12-23 Ca, Inc. Dynamic release control of software application version changes
CN105453485A (zh) 2013-09-06 2016-03-30 华为技术有限公司 用于服务嵌入和资源协调的系统及方法
US11716211B2 (en) 2016-10-01 2023-08-01 James L. Schmeling 3D-printed packaging with blockchain integration
US20150156266A1 (en) 2013-11-29 2015-06-04 Qualcomm Incorporated Discovering cloud-based services for iot devices in an iot network associated with a user
CN105934916B (zh) 2014-02-23 2021-01-08 英特尔公司 向所部署装置编制和管理服务
WO2015130752A1 (en) 2014-02-28 2015-09-03 John Boudreaux Sensor network gateway
WO2015175722A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9635021B2 (en) 2014-12-18 2017-04-25 Intel Corporation Trusted ephemeral identifier to create a group for a service and/or to provide the service
US9967334B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9967333B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US11023968B2 (en) * 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
RU2673842C1 (ru) 2015-03-20 2018-11-30 Ривец Корп. Автоматическая аттестация сохранности устройства с применением цепочки блоков
US20160283920A1 (en) 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US9977667B2 (en) 2015-09-09 2018-05-22 Red Hat, Inc. Updating software utilizing domain name system (DNS)
JP6564934B2 (ja) 2015-09-23 2019-08-21 グーグル エルエルシー 分散型ソフトウェア定義ネットワークパケットコアシステムにおけるモビリティ管理のためのシステムおよび方法
US10514848B2 (en) 2015-09-28 2019-12-24 Beijing Lenovo Software Ltd. Data storage method for selectively storing data in a buffer preset in a memory of an electronic device or an inherent buffer in an SSD
EP3362970A4 (en) 2015-10-17 2019-06-26 Banqu, Inc. BLOCKCHAIN-BASED IDENTITY AND TRANSACTION PLATFORM
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
US10713654B2 (en) * 2016-01-21 2020-07-14 International Business Machines Corporation Enterprise blockchains and transactional systems
EA201891827A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Реестр и способ автоматизированного администрирования смарт-контрактов, использующих блокчейн
CN105763426B (zh) 2016-04-12 2018-04-06 北京理工大学 一种基于多协议即时通信系统的物联网业务处理系统
GB201607477D0 (en) 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
US10532268B2 (en) 2016-05-02 2020-01-14 Bao Tran Smart device
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
US10368288B2 (en) 2016-08-18 2019-07-30 Bridgefy, Inc. Systems and methods for connecting devices through intermediate nodes
US10878522B2 (en) 2016-08-18 2020-12-29 First American Financial Corporation Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles
US10142364B2 (en) 2016-09-21 2018-11-27 Upguard, Inc. Network isolation by policy compliance evaluation
US10185550B2 (en) 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10178579B2 (en) 2016-10-21 2019-01-08 Afero, Inc. Internet of things (IoT) system and method for selecting a secondary communication channel
CN110024422B (zh) 2016-12-30 2023-07-18 英特尔公司 物联网的命名和区块链记录
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305422B1 (en) * 2002-09-26 2007-12-04 Oracle International Corporation Performing computationally intensive calculations within a database server that provides a recovery mechanism
CN1950775A (zh) * 2004-04-29 2007-04-18 皇家飞利浦电子股份有限公司 计算机程序执行期间的入侵检测
GB201605331D0 (en) * 2016-03-30 2016-05-11 British Telecomm Blockchain state reliability determination

Also Published As

Publication number Publication date
US20210011708A1 (en) 2021-01-14
US20190146778A1 (en) 2019-05-16
EP3520368A1 (en) 2019-08-07
US10810001B2 (en) 2020-10-20
CN110169036A (zh) 2019-08-23
EP3520368B1 (en) 2020-12-16
US10185550B2 (en) 2019-01-22
US20180088928A1 (en) 2018-03-29
US11861343B2 (en) 2024-01-02
WO2018064154A1 (en) 2018-04-05

Similar Documents

Publication Publication Date Title
CN110169036B (zh) 用于更新可编程装置的方法、系统、机器可读介质
US10601807B2 (en) Systems and methods for providing container security
US10885197B2 (en) Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
US20180285217A1 (en) Failover response using a known good state from a distributed ledger
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
EP2196933B1 (en) Server-to-server integrity checking
US20180020008A1 (en) Secure asynchronous communications
CN102244684B (zh) 基于usbkey的efi可信云链引导方法
US11206141B2 (en) Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
US20150026767A1 (en) Systems and methods for implementing computer security
US11496322B2 (en) Identity management for software components using one-time use credential and dynamically created identity credential
US11356445B2 (en) Data access interface for clustered devices
KR20210151926A (ko) 블록체인을 사용한 버전 이력 관리
US11165766B2 (en) Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove
US20180287801A1 (en) Efficient device provision
US20240104213A1 (en) Securing node groups
US20180285219A1 (en) Adaptive data recovery for clustered data devices
WO2022116761A1 (en) Self auditing blockchain
US10461926B2 (en) Cryptographic evidence of persisted capabilities
WO2021135978A1 (zh) 可信状态证明的方法和相关设备
Dyer et al. Security issues relating to inadequate authentication in MapReduce applications
US11765155B1 (en) Robust and secure updates of certificate pinning software
CN115168872A (zh) 基于去中心化信任的公有云下tee状态连续性保护方法

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