CN105981332A - 使用喷泉码广播管理信息 - Google Patents
使用喷泉码广播管理信息 Download PDFInfo
- Publication number
- CN105981332A CN105981332A CN201580009451.4A CN201580009451A CN105981332A CN 105981332 A CN105981332 A CN 105981332A CN 201580009451 A CN201580009451 A CN 201580009451A CN 105981332 A CN105981332 A CN 105981332A
- Authority
- CN
- China
- Prior art keywords
- client device
- message
- management
- message segment
- firmware
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
用于广播管理信息的技术包括管理服务器和数个客户端设备。管理服务器使用喷泉码编码技术将诸如证书撤销列表之类的管理数据编码到数个消息片段中,并且通过网络连续地广播消息片段。每一个客户端设备在启动过程期间分析网络以接收广播消息片段。每一个客户端设备使用喷泉码解码算法对消息片段解码,并且确定消息是否完整。如果消息完整,则客户端设备解析消息以检索管理数据并且可以将管理数据安装在客户端设备上。如果消息不完整,则客户端设备可以将消息片段存储在非易失性储存器中以用于在将来的启动事件期间处理。客户端设备可以在预启动固件环境中执行那些操作。描述并且要求保护其它实施例。
Description
相关美国专利申请的交叉引用
本申请要求2014年3月21日提交的题为“BROADCASTING MANAGEMENT INFORMATIONUSING FOUNTAIN CODES(使用喷泉码广播管理信息)”的美国实用新型专利申请序列号14/222,014的优先权。
背景技术
企业和其它组织可以管理诸如计算机、移动设备、服务器和网络基础设施之类的网络附连机器的大型安装。所管理的网络附连设备的数目很可能随着将联网能力添加到更多种类的设备、达到并包括大量普遍存在的嵌入式设备而继续增加。通常,同样的管理信息必须被提供给一大类所管理的设备。例如,相同的安全证书撤销信息可以被提供给由企业管理的每一个启用安全启动的机器。用于安装管理信息的典型方法包括并行地将管理信息多播给一大类同类机器。然而,这样的方法典型地要求发送者与接收者之间的同步,这意味着可能要求大量接收设备同步其活动(例如,通过同时接听多播信息)。用于安装管理信息的另一典型方法包括响应于用户请求或者作为排程下载而通过操作系统组件或者用户模式软件应用从服务器下载管理信息。然而,这样的方法可能要求用户干预并且可能易受操作系统和/或软件应用的安全漏洞(security exploit)和/或恶意软件的攻击。
无速率擦除代码,也被称为喷泉码,将k个输入符号的有限集合编码到编码符号的无界集合中。可以从任何k'个编码符号解码输入符号,其中k'可以等于k或者稍稍大于k。常见喷泉码包括Luby变换代码(LT代码)和Raptor代码。用于喷泉码的典型使用包括编码视频信号以用于通过互联网协议(IP)网络来递送。
附图说明
作为示例而非限制在附图中图示了本文描述的概念。为了图示的简便和清楚起见,在附图中图示的元件未必按照比例绘制。在考虑适当的情况下,在附图之间重复了参考标记来指示对应或类似的元件。
图1是用于从管理服务器向数个客户端设备广播管理信息的系统的至少一个实施例的简化框图;
图2是可以由图1的系统建立的各种环境的至少一个实施例的简化框图;
图3是可以由图1和2的管理服务器执行的用于广播管理信息的方法的至少一个实施例的简化流程图;
图4是可以由图1和2的客户端设备执行的启动过程的至少一个实施例的简化示意图;以及
图5是可以由图1和2的客户端设备执行的用于接收广播管理信息的方法的至少一个实施例的简化流程图。
具体实施方式
尽管本公开内容的概念易受各种修改和替换形式的影响,但是已经在附图中作为示例示出了其具体实施例并且将在本文中详细地描述其具体实施例。然而应当理解到,不意图将本公开内容的概念限于所公开的特定形式,而是相反,本发明应覆盖与本公开内容和随附权利要求一致的所有修改、等同方案和替换方案。
在说明书中对“一个实施例”、“实施例”、“例证性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以或者可以不必然地包括该特定特征、结构或特性。此外,这样的短语未必是指相同的实施例。另外,当结合实施例而描述特定特征、结构或特性时,认为与明确或未明确描述的其它实施例结合地实现这样的特征、结构或特性是本领域技术人员所知晓的。附加地,应当领会到,以“至少一个A、B和C”的形式被包括在列表中的项目可以意味着(A);(B);(C);(A和B);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意味着(A);(B);(C);(A和B);(B和C);或者(A、B和C)。
所公开的实施例可以在一些情况下被实现于硬件、固件、软件或其任何组合中。所公开的实施例还可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或者存储在其上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为任何存储设备、机构或者用于以机器可读的形式存储或传输信息的其它物理结构(例如易失性或非易失性存储器、媒体盘或其它媒体设备)。
在附图中,一些结构性或方法特征可以以具体布置和/或次序被示出。然而应当领会到,可以不要求这样的具体布置和/或次序。相反,在一些实施例中,可以以与在例证性附图中示出的不同的方式和/或次序布置这样的特征。附加地,结构性或方法特征在特定附图中的包括并不意图暗示在所有实施例中都要求这样的特征,并且在一些实施例中可以不包括这样的特征或者这样的特征可以与其它特征组合。
现在参照图1,在例证性实施例中,用于广播管理数据的系统100包括能够通过网络106通信的管理服务器102和数个客户端设备104。在使用中,如下文所述,管理服务器102连续地、周期性地或者响应性地通过网络106广播已采用无速率擦除代码(也被称为“喷泉码”)进行编码的经更新的管理数据。每当启动客户端设备104时,客户端设备104分析网络106以接收由管理服务器102广播的消息片段。在已经接收充足数目的消息片段之后,客户端设备104解码消息片段(应用适用于使用中的特定喷泉码的算法)并且恢复管理数据以用于安装。客户端设备104可以在能够解码完整消息之前在多于一个启动循环之上收集消息片段。所公开的技术允许通过单个管理服务器102向大量客户端设备104异步地广播标准化管理信息。换言之,不要求客户端设备104同步其启动事件并且客户端设备104可以在任意时间处对网络106采样任意持续时间。因而,客户端设备104可以以改进的性能和/或可缩放性受管理。附加地,管理数据可以由客户端104上的固件接收和安装而没有涉及客户端设备104的任何操作系统。因此,可以避免操作系统中的潜在漏洞、易损性或软件缺陷,从而改进管理安全性和/或可靠性。
管理服务器102可以体现为用于如本文中所述的那样广播管理信息的任何类型的设备。例如,非限制性地,管理服务器102可以体现为服务器计算机、工作站、桌上型计算机、智能电话、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、蜂窝电话、头戴式耳机、消息传送设备、车辆远程通讯设备、分布式计算系统、多处理器系统、消费者电子设备和/或被配置成执行本文描述的功能的任何其它计算设备。另外,管理服务器102可以体现为单个服务器计算设备或者服务器与关联设备的群集。例如,在一些实施例中,管理服务器102体现为云服务以执行本文描述的功能。在这样的实施例中,管理服务器102可以体现为由跨网络106分布并且在公共或私用云中操作的多个计算设备所形成的“虚拟服务器”。相应地,尽管管理服务器102在图1中被图示并且在下文中被描述成体现为单个服务器计算设备,但是应当领会到,管理服务器102可以体现为一起协作以促进下文描述的功能性的多个设备。
如在图1中所示,例证性管理服务器102包括处理器120、输入/输出子系统122、存储器124和数据存储设备126。当然,在其它实施例中,管理服务器102可以包括其它或附加的组件,诸如通常在服务器和/或固定计算机中发现的那些(例如,各种输入/输出设备)。附加地,在一些实施例中,例证性组件中的一个或多个可以被并入到另一组件中或者以其它方式形成另一组件的部分。例如,存储器124或其部分可以在一些实施例中被并入到处理器120中。
处理器120可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器120可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或者其它处理器或处理/控制电路。类似地,存储器124可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据储存器。在操作中,存储器124可以存储在管理服务器102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器124经由I/O子系统122被通信耦合到处理器120,I/O子系统122可以体现为用以促进与处理器120、存储器124和管理服务器102的其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统122可以体现为或者以其它方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或用以促进输入/输出操作的其它组件和子系统。在一些实施例中,I/O子系统122可以形成片上系统(SoC)的部分并且连同处理器120、存储器124和管理服务器102的其它组件被并入到单个集成电路芯片上。
数据存储设备126可以体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储卡、硬盘驱动、固态驱动或其它数据存储设备。数据存储设备126可以存储要广播到客户端设备104的管理数据。
管理服务器102还包括能够使实现管理服务器102、客户端设备104和/或其它远程设备之间的通信的通信电路128,其可以体现为任何通信电路、设备或其群集。通信电路128可以被配置成使用任何一个或多个通信技术(例如无线或有线通信)及相关联的协议(例如以太网、Bluetooth®、Wi-Fi®、WiMAX等)以实施这样的通信。通信电路128可以体现为网络适配器,包括无线网络适配器。
每一个客户端设备104可以体现为用于执行本文描述的功能的任何类型的设备。例如,非限制性地,每一个客户端设备104可以体现为智能电话、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、可穿戴计算设备、蜂窝电话、头戴式耳机、消息传送设备、车辆远程通讯设备、服务器计算机、工作站、分布式计算系统、微处理器系统、消费者电子设备和/或被配置成执行本文描述的功能的任何其它计算设备。同样地,每一个客户端设备104可以包括类似于管理服务器102的组件和特征,诸如处理器140、I/O子系统142、存储器144、数据储存器146、通信电路148和各种外围设备。每一个客户端设备104的那些单独组件可以类似于管理服务器102的对应组件,其描述适用于每一个客户端设备104的对应组件并且出于本描述的清楚性而不作重复。
每一个客户端设备104还包括固件缓存器150。固件缓存器150可以体现为客户端设备104的固件环境可访问并且被配置用于在客户端设备104断电或者被从电源断开连接时对数据持久性存储的任何设备。在例证性实施例中,固件缓存器150体现为平台闪速存储器芯片。在其它实施例中,固件缓存器150可以体现为嵌入式非易失性存储器系统(例如,eMMC设备)或者被维持在数据存储设备146的系统分区上的固件卷的部分。因而在一些实施例中,固件缓存器150可以被并入到客户端设备104的一个或多个其它组件中,例如被并入到I/O子系统142中。如下文所述,固件缓存器150可以用于持久性地存储由客户端设备104接收的广播消息片段。
在一些实施例中,客户端设备104中的一个或多个还可以包括可管理性引擎152。可管理性引擎152体现为提供客户端设备104的远程配置、控制或管理的设备。例证性可管理性引擎152包括带外处理器154。带外处理器154与客户端设备104的主处理器140分离并且不同。同样地,可管理性引擎152能够独立于客户端设备104的其余部分的状态进行操作。也就是说,可管理性引擎152能够操作而不管处理器140的操作状态如何,包括当客户端设备104断电时、当客户端设备104正执行预启动固件环境时、当客户端设备104的操作系统活动时、以及当操作系统崩溃或者以其它方式不活动时。可管理性引擎152还能够使用通信电路148独立于客户端设备104的状态进行通信,也被称为“带外”通信。在一些实施例中,除了经由通信电路148连接之外或者作为其替代方式,可管理性引擎152可以包括用于这样的带外通信的专用网络适配器。在一些实施例中,可管理性引擎152可以被并入到I/O子系统142中或者以其它方式形成其部分。因而在一些实施例中,可管理性引擎152可以分析网络106以接收由管理服务器102广播的消息片段,并且要么直接地安装所恢复的管理数据要么替换地暴露所恢复的管理数据用于在重启事件时由平台安装。
现在参照图2,在一些实施例中,管理服务器102在操作期间建立环境200。例证性环境200包括客户端管理模块202、喷泉编码模块204和广播模块206。环境200的各种模块可以体现为硬件、固件、软件或其组合。
客户端管理模块202被配置成接收或检索要广播到客户端设备104中的一个或多个的管理数据。管理数据可以包括可以用于提供、配置或以其它方式管理客户端设备104的任何信息、代码、设置或其它数据。例如,管理数据可以包括用于实现企业安全策略、固件镜像或软件应用的认证撤销列表或其它数据。在例证性实施例中,管理数据被包括在由客户端管理模块202引用的管理数据库208中。管理数据可以由网络管理员、企业服务器或者负责管理客户端设备104的任何其它源来提供或维持。
喷泉编码模块204被配置成使用喷泉码将管理数据编码到消息片段流中。如下文进一步所述,喷泉码,也被称为无速率擦除代码,允许将有限源消息编码到事实上无限制数目的经编码的输出符号或消息片段中。经编码的数据的接收者可以从所接收的任何消息片段恢复源消息,只要已经接收到多于阈值数目的消息片段即可。
广播模块206被配置成将经编码的消息片段广播到一个或多个客户端设备104。广播模块206连续地、周期性地或者响应性地通过网络106广播消息片段。广播模块206可以通过网络106多播消息片段,从而允许当前正分析该网络的不管哪个客户端设备104接收消息片段。广播模块206可能不要求客户端设备104证实或以其它方式确认任何消息片段的接收。
仍旧参照图2,在一些实施例中,每一个客户端设备104在操作期间建立环境210。例证性环境210包括固件环境212和操作系统222。环境210的各种模块或组件可以体现为硬件、固件、软件或其组合。附加地,在一些实施例中,固件环境212和/或操作系统222的模块中的一些或全部可以被与其它模块或软件/固件结构集成或者形成其部分。
固件环境212包括网络模块214、喷泉解码模块216、更新管理模块218和启动目标220。固件环境212可以体现为实现统一可扩展固件接口(UEFI)规范的平台固件(即,UEFIBIOS)。附加地或者替换地,固件环境212可以体现为可管理性引擎152的固件。网络模块214被配置成周期性地分析网络106以接收由管理服务器102广播的任何消息片段。网络模块214可以包括例如被配置成对通过网络106接收的多播网络业务进行过滤的过滤器驱动器。
喷泉解码模块216被配置成对网络模块214接收的消息片段进行解码。喷泉解码模块216可以在接收到充足数目的消息片段之后对完整消息进行解码。由于喷泉码算法的特性,喷泉解码模块216可能不需要接收任何特定消息片段或者可能不需要以任何特定次序接收消息片段。为了对在若干启动事件之上接收的消息片段进行解码,喷泉解码模块216可以将消息片段(包括经解码或者部分解码的消息片段)存储在固件缓存器150中。如上文所述,完整消息包括由管理服务器102供应的管理数据。
更新管理模块218被配置成解析从管理服务器102接收的完整消息,确定所包括的管理数据是否应被安装在客户端设备104上,并且在必要的情况下安装管理数据。可以通过更新客户端设备104的平台配置数据224来安装管理数据。平台配置数据224可以体现为影响客户端设备104的操作的任何文件、卷、可执行文件、固件镜像、全局变量或其它设置。在一些实施例中,平台配置数据224可以体现为被安装在客户端设备104上的一个或多个软件应用。
启动目标220被配置成终止启动服务并且发起操作系统加载器,其继而发动操作系统222。可以例如根据统一可扩展固件接口(UEFI)规范基于平台策略在若干潜在的启动目标之间选择启动目标220。启动目标220可以引起操作系统222在客户端设备104接收到一个或多个消息片段并且确定该消息尚未完整之后发动。当然,启动目标220还可以引起操作系统222响应于安装经更新的管理数据而发动。
现在参照图3,在使用中,管理服务器102可以执行用于广播管理信息的方法300。方法300以块302开始,其中管理服务器102接收或检索用于安装在一个或多个客户端设备104上的管理数据。可以从网络管理员、从管理应用、从企业服务器或者从负责客户端设备104的管理的任何其它实体或过程来接收或检索管理数据。管理数据可以被配置用于安装在客户端设备104中的所有上或者客户端设备104的子集上。管理数据可以体现为可以用于提供、配置或以其它方式管理客户端设备104的任何信息、代码、设置或其它数据。例如在一些实施例中,在块304中,管理服务器102可以接收或检索用于安装在客户端设备104上的二进制固件镜像。二进制固件镜像可以包括由客户端设备104使用的一个或多个驱动器、应用或配置设置。例如,二进制固件镜像可以使实现使用每一个客户端设备104上的某些企业范围资源。附加地或者替换地,在一些实施例中,在块306中,管理服务器102可以接收或检索证书撤销列表。证书撤销列表可以由每一个客户端设备104使用以用于认证数字签名。例如,如下文进一步所述,证书撤销列表可以是由UEFI规范指定并且在安全启动过程期间使用的“dbx”证书数据库。
在块308中,管理服务器102使用喷泉码算法将管理数据编码到数个消息片段中。喷泉码——也被称为无速率擦除代码——将输入符号的有限集合编码到无界长度的经编码的输出符号中。换言之,喷泉码将输入数据(诸如管理数据)的集合变换成无界编码数据流。典型地,原始输入符号可以从包括多于阈值数目的编码符号的任何编码符号集合来恢复。理想的喷泉码将允许在给定相等数目的编码符号的情况下恢复输入符号;在实践中,可能要求稍微较大数目的编码符号来恢复输入符号。因而,管理服务器102将喷泉码算法应用于管理数据或者包括管理数据的格式化消息(输入符号)并且生成经编码的消息片段(经编码的输出符号)。管理服务器102可以采用任何适合的喷泉码算法,包括但不限于LT代码算法或者Raptor代码算法。
在块310中,管理服务器102通过网络106广播消息片段,使得一个或多个客户端设备104可以接收消息片段。管理服务器102可以多播消息片段或者以其它方式同时向任何接收客户端设备104传输每一个消息片段。管理服务器102可以广播消息片段而不等待来自任何客户端设备104的确认或证实的接收。管理服务器102可以连续地、周期性地或者响应性地以适用于网络106的任何数据速率来广播消息片段。
在块312中,管理服务器102确定管理数据是否已经或应该被更新。例如,管理服务器102可以从网络管理员接收请求以更新管理信息。如果应当更新管理数据,则方法300循环回到块302以接收经更新的管理数据。如果不应当更新管理数据,则方法300循环回到块310以继续通过网络106广播消息片段。
现在参照图4,在使用中,客户端设备104可以根据UEFI规范执行启动过程400。每当客户端设备104通电时,包括当客户端设备104从完全电气或机械“关断”状态被通电时、当客户端设备104从“软关断”电力状态被加电时、当客户端设备104被重置或重启时、或者当客户端设备104被从休眠状态唤起时,可以执行启动过程400。在启动过程400的执行期间,客户端设备104可以处于固件环境212的完全控制之下。在块402中,客户端设备104初始化平台硬件。例如,客户端设备104可以初始化加载或以其它方式处理固件环境212所需的特定组件,例如存储器144和I/O子系统142。
在块404中,客户端设备104加载并且启动用于一个或多个固件驱动器406或固件应用408的固件镜像。固件驱动器406和固件应用408是可以被存储在数据存储设备146的系统分区中的二进制镜像。要被加载的特定驱动器和应用是依赖于平台的并且可以在例如在客户端设备104的平台闪速存储器中的客户端设备104的全局变量中被枚举。客户端设备104可以枚举要被加载的固件驱动器406和应用408并且确定所要求的启动次序。启动次序可以是基于固件驱动器406和应用408之间的依赖性。
固件驱动器406和应用408类似,除了应用408一般在从其入口点返回之后被从存储器144卸载,而驱动器406一般保持驻存在存储器144中除非它们以错误代码而返回之外。固件驱动器406和应用408可以初始化或者控制客户端设备104的硬件。固件驱动器406或应用408还可以安装固件协议接口,其限定功能调用接口,并且在安装之后允许其它固件镜像调取所提供的服务。例如,一个或多个固件驱动器406或应用408可以安装协议以允许客户端设备104访问通信电路148和/或接收广播管理信息。在一些实施例中,管理更新过程410可以作为固件驱动器406和/或作为固件应用408而执行。管理更新过程410可以接收和/或安装由管理服务器102广播的管理数据,如在下文结合图5进一步所述。
启动过程400还包括安全启动子系统412。安全启动子系统412可以在加载镜像之前认证每一个固件镜像。安全启动子系统412可以例如通过对照受信证书的集合验证与特定固件镜像相关联的数字签名来认证固件镜像。安全启动子系统412可以维持或以其它方式参照包括授权证书(例如“白名单”)或禁用证书(“黑名单”或者“证书撤销列表”)的一个或多个数据库。例如,UEFI规范限定所允许的证书被存储在签名数据库“db”(也被称为SECURITY_DATABASE)中并且禁用证书被存储在签名数据库“dbx”(也被称为SECURITY_DATABASE1)中。在加载之前对每一个固件镜像认证可以通过允许客户端设备104确保在启动过程400期间执行的所有软件(包括每一个启动目标416,在下文描述)源自于受信源来改进安全性。
在块414中,客户端设备104确定并加载启动目标416。启动目标416是可以由客户端设备104加载并发动的固件应用。因此,启动目标416还可以经受安全启动子系统412。启动目标典型地是操作系统加载器,尽管启动目标可以包括诊断、维护或管理应用。所选择的特定启动目标416可以在例如被存储在平台闪速存储器中的客户端设备104的全局变量中被指定。客户端设备104的全局变量可以指定若干启动目标416,包括启动目标416的相对次序。在一些实施例中,启动目标416可以由客户端设备104的用户通过被呈现在客户端设备104上的菜单或其它构件来选择。在一些实施例中,客户端设备104可以包括用于选择启动目标416的默认规则或者默认启动目标416。
在启动目标416中,客户端设备104将控制移交给操作系统加载器418。这样的操作系统加载器418可以不被存储在数据存储设备146的系统分区中。作为移交的部分,启动目标416可以进行到块420以例如通过调用UEFI函数ExitBootServices()来终止启动服务。因此,如果这样的启动目标416成功,则启动过程400完成,并且操作系统222完全控制客户端设备104。仅已经被特别地指定为运行时间启用的固件服务在控制已经转移到操作系统222之后保持可用。因此,在许多实施例中,允许访问通信电路148的任何固件驱动器406或应用408在启动服务终止之后不再可用。如果启动服务没有由启动目标416所终止,例如如果操作系统加载器418未能加载操作系统222,则客户端设备104可以尝试加载另一启动目标416。
现在参照图5,在使用中,客户端设备104可以执行用于接收广播管理数据的方法500。方法500以块502开始,其中客户端设备104启动起来。如上文所述,客户端设备104可以响应于使平台通电、重置平台或者使平台从休眠状态唤起而启动。如上文进一步所述,在启动时,客户端设备104可以执行启动过程400,包括加载各种固件驱动器406和应用408。方法500的各种操作因而可以由一个或多个固件驱动器406或固件应用408执行。
在块504中,客户端设备104加载并且初始化固件驱动406和/或固件应用408。如上文所述,固件驱动器406和固件应用408可以作为启动过程400的部分而加载。客户端设备104可以加载固件驱动器406和/或应用408以允许客户端设备104接收广播管理数据,例如网络接口驱动器。在块506中,客户端设备104加载喷泉码驱动器。喷泉码驱动器可以被配置成执行方法500的各种操作,包括分析网络106以及解码所接收的消息片段。喷泉码驱动器可以体现为固件驱动器406。相应地,可以在通过加载其它固件驱动器406和/或固件应用408来满足依赖性之后加载喷泉码驱动器。在加载喷泉码驱动器之后,客户端设备104可以例如通过加载附加的固件驱动器406和/或固件应用408继续启动过程400。
在块508中,客户端设备104分析网络106以得到传入的消息片段。客户端设备104可以采样、读取、打开或以其它方式搜集来自网络106的数据以接收传入的消息片段。那些消息片段可能已经由管理服务器102使用喷泉码算法而生成,如上文所述。客户端设备104可以针对出现在通信电路148上的任何网络业务进行采样;不存在使客户端设备104等待确认或者以其它方式与管理服务器102同步的需要。在一些实施例中,在块510中,客户端设备104可以通过对通过网络106从管理服务器102接收的任何多播数据进行过滤来对网络采样。例如,客户端设备104可以安装过滤器驱动器以识别并且处理多播数据。
在块512中,客户端设备104确定是否发生了用于分析网络106以得到消息片段的超时。如上文所述,喷泉码要求某一最小数目的消息片段以解码完整消息。因此,针对较长时间分析网络106,并且由此潜在地接收较多的消息片段,可能减少解码消息所需的时间量和/或平台启动事件的数目。然而,减少启动过程的持续时间一般对于许多客户端设备104是合期望的,并且许多操作系统222指定关于启动过程的总体持续时间的限制。因此,各种实施例可以使用不同超时以便平衡所采样的消息片段的数量与启动过程的速度。可以根据平台策略确定超时的长度。例如,消费者客户端设备104可以使用相对短的超时,其可以允许接收单个消息片段以着重于启动过程中的速度。作为另一示例,企业客户端设备104可以使用量级为一秒或若干秒的相对长的超时,以增加可以针对每一个启动事件接收许多消息片段的概率。附加地或者替换地,在一些实施例中,超时可以对应于启动过程400的结束。换言之,在那些实施例中,客户端设备104可以分析网络106直到启动过程400完成并且操作系统222准备好加载。如果超时尚未期满,则方法500循环回到块508以继续分析网络106。如果超时已经期满,则方法500前进至块514。
在块514中,客户端设备104确定是否在超时期满之前从网络106接收到了任何消息片段。如果没有接收到消息片段,则方法500分支向前到块536以继续启动客户端设备104。如下文进一步所述,客户端设备104可以响应于将来的启动事件而接收消息片段。然而,如果在超时期满之前接收到了任何消息片段,则方法500前进至块516。
在块516中,客户端设备104将所接收的消息片段存储在固件缓存器150中。如上文所述,固件缓存器150可以体现为固件环境212可访问的任何非易失性存储介质。因而,可以在随后的启动事件期间使用所缓存的消息片段来解码消息。当然,固件缓存器150还可以包括在之前的启动事件期间存储的所缓存消息片段。因而,消息片段可以在若干启动事件之上累积于固件缓存器150中。
在块518中,客户端设备104解码存储在固件缓存器150中的消息片段以生成源消息的至少部分。如上文所述,客户端设备104针对用于解码消息片段的特定喷泉码而采用适当的解码算法。由客户端设备104存储的特定操作和数据可以取决于使用中的喷泉码。例如,对于LT代码,客户端设备104可以基于所解码的片段(即,具有阶层(degree)1的片段)的内容来迭代地更新存储在固件缓存器150中的消息片段的值。在一些实施例中,可以基于更近接收的消息片段而部分地解码单独的消息片段。继续之前的示例,对于LT代码,客户端设备104可以基于更近接收的消息片段来减少所缓存的消息片段的阶层。客户端设备104可以原地更新消息片段或者以其它方式将经解码或者部分解码的消息片段存储在固件缓存器150中。
在块520中,客户端设备104确定是否已经接收到完整消息。用于确定消息是否完整的方法取决于所采用的特定喷泉码。例如,对于LT代码,客户端设备104可以确定是否所有消息片段都具有阶层1。如果尚未接收到完整消息,则方法500分支向前到块536以运行启动目标416,如下文所述。如果已经接收到完整消息,则方法500前进到块522。
在块522中,客户端设备104解析完整消息以识别所包括的管理数据。可以以适用于传输管理数据的任何数据格式对消息格式化。消息还可以包括附加头部或者描述管理数据的其它元数据。例如,消息可以被格式化为包含管理数据的固件卷。当然,在一些实施例中,消息可以包括原始管理数据本身。在一些实施例中,在块524中,客户端设备104从消息检索二进制固件镜像,诸如固件驱动器406或者固件应用408。在一些实施例中,在块526中,客户端设备104从消息检索证书撤销列表,诸如如由UEFI规范指定的“dbx”数据库。管理数据可以体现为所检索的固件镜像和/或证书撤销列表。
在块528中,客户端设备104确定是否安装管理数据。客户端设备104可以应用任何适当准则以确定是否安装管理数据。例如,客户端设备104可以确定管理数据是否与客户端设备104兼容或适用于客户端设备104,或者管理数据是否已经被安装在客户端设备104上。如果客户端设备104确定不安装管理数据,则方法500分支向前到块536以运行启动目标416,如下文所述。如果要安装管理数据,则方法500前进到块530。
在块530中,客户端设备104通过将管理数据应用到客户端设备104的平台配置数据224来安装管理数据。客户端设备104可以按安装管理数据所需执行任何动作、修改任何设置、或者存储任何文件或数据。另外,管理数据可以被临时地安装(例如安装到存储器144中)或者永久性地安装(例如安装到数据储存器146中)。在一些实施例中,在块532中,客户端设备104可以安装二进制固件镜像。例如,客户端设备104可以加载并执行固件镜像和/或将固件镜像存储到数据储存器146的系统分区中。在一些实施例中,在块534中,客户端设备104可以安装证书撤销列表。例如,客户端设备104可以将“dbx”禁用证书数据库存储到平台闪速存储器中的全局变量中。
在块536中,客户端设备104运行启动目标416,其完成方法500。如上文所述,启动目标416典型地发动操作系统加载器418,其继而发动操作系统222。在操作系统222发动(并且启动服务终止)之后,固件环境212不再处于客户端设备104的平台硬件的控制中。因而,客户端设备104在操作系统222的执行期间可以不接收和/或响应于喷泉码消息片段。方法500可以在下一平台启动事件期间再次执行。例如,方法500可以在客户端设备104被物理地循环加电、重启或者从休眠状态唤起时再次执行。
尽管之前的公开内容已经将方法500描述为由客户端设备104在固件环境212中响应于平台启动事件而执行,但是应当理解到,在一些实施例中,方法500可以在固件环境212处于客户端设备104的控制中的任何时间处执行。附加地或者替换地,在一些实施例中,方法500的全部或部分可以由可管理性引擎152以带外方式执行。例如,方法500可以由组合式安全性和可管理性引擎(CSME)或者被包括在客户端设备104的片上系统(SoC)封装中的其它微控制器来执行。在这样的示例中,方法500可以在处理器140以其它方式活跃时的运行时间处或者在超出启动事件的附加电力状态转变期间执行,包括从SoC的活跃空闲状态(例如,S0ix状态)的转变或者向其的转变。例如,可管理性引擎152可以连续地、周期性地或者响应性地分析网络106以接收由管理服务器102广播的消息片段并且恢复管理数据。可管理性引擎152可以例如通过直接地更新SECURITY_DATABASE和/或SECURITY_DATABASE1来直接地应用管理数据,如果可管理性引擎152能够直接访问UEFI变量仓库的话。附加地或者替换地,可管理性引擎152可以将更新暴露于那些数据库以用于通过UEFI固件在随后的平台重启事件时更新。
示例
在下文提供本文公开的技术的例证性示例。技术的实施例可以包括以下描述的示例中的任何一个或多个以及其任何组合。
示例1包括一种用于接收广播管理信息的客户端设备,所述客户端设备包括:网络模块,在客户端设备的启动过程期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段;喷泉解码模块,(i)使用喷泉码解码算法对消息片段解码以生成消息的至少部分,并且(ii)响应于消息的至少部分的生成而确定消息是否完整;以及更新管理模块,(i)响应于确定消息完整而解析消息以识别由管理服务器包括在消息中的管理数据,并且(ii)将管理数据应用于客户端设备。
示例2包括示例1的主题,并且还包括用以建立网络模块、喷泉码模块和更新管理模块的固件环境。
示例3包括示例1和2中任一个的主题,并且其中喷泉码解码模块还将消息片段存储在客户端设备的固件缓存器中;对消息片段解码包括对存储在固件缓存器中的消息片段解码;并且确定消息是否完整包括响应于存储在固件缓存器中的消息片段的解码而确定消息是否完整。
示例4包括示例1-3中任一个的主题,并且其中响应于客户端设备的重启而第二次地网络模块分析网络接口,并且喷泉码解码模块对消息片段解码并且确定消息是否完整。
示例5包括示例1-4中任一个的主题,并且还包括启动目标,其响应于确定消息不完整或者响应于应用管理数据而加载客户端设备的操作系统。
示例6包括示例1-5中任一个的主题,并且其中更新管理模块还响应于消息的解析而确定管理数据是否与客户端设备兼容;并且应用管理数据还包括响应于确定管理数据与客户端设备兼容而应用管理数据。
示例7包括示例1-6中任一个的主题,并且其中喷泉码解码算法包括LT代码、Raptor代码或RaptorQ代码。
示例8包括示例1-7中任一个的主题,并且其中管理数据包括消息中所包括的二进制固件镜像。
示例9包括示例1-8中任一个的主题,并且其中管理数据包括消息中所包括的证书撤销列表。
示例10包括示例1-9中任一个的主题,并且其中证书撤销列表包括安全启动黑名单。
示例11包括示例1-10中任一个的主题,并且其中管理数据包括消息中所包括的软件应用。
示例12包括示例1-11中任一个的主题,并且还包括可管理性引擎,其包括网络模块、喷泉解码模块和更新管理模块。
示例13包括示例1-12中任一个的主题,并且还包括带中处理器以执行客户端设备的操作系统;其中网络模块还在操作系统的执行期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段。
示例14包括示例1-13中任一个的主题,并且其中分析网络接口包括分析网络接口以接收使用喷泉码编码算法编码的消息片段。
示例15包括示例1-14中任一个的主题,并且其中分析网络接口包括对由管理服务器通过网络广播的多播数据进行过滤。
示例16包括示例1-15中任一个的主题,并且其中网络接口包括客户端设备的无线网络接口。
示例17包括一种用于广播管理信息的管理服务器,所述管理服务器包括:喷泉编码模块,使用喷泉码编码算法将管理数据编码到多个消息片段中;以及广播模块,连续地在多个客户端设备可访问的网络上广播所述多个消息片段。
示例18包括示例17的主题,并且其中管理数据包括二进制固件镜像。
示例19包括示例17和18中任一个的主题,并且其中管理数据包括证书撤销列表。
示例20包括示例17-19中任一个的主题,并且其中证书撤销列表包括安全启动黑名单。
示例21包括一种用于接收广播管理信息的方法,所述方法包括:通过客户端设备在客户端设备的启动过程期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段;通过客户端设备使用喷泉码解码算法对消息片段解码以生成消息的至少部分;通过客户端设备响应于对消息片段的解码而确定消息是否完整;通过客户端设备解析消息以响应于确定消息完整而识别由管理服务器包括在消息中的管理数据;以及通过客户端设备将管理数据应用于客户端设备。
示例22包括示例21的主题,并且其中分析网络接口、对消息片段解码、确定消息是否完整、解析消息以及应用管理数据全部由客户端设备的固件环境执行。
示例23包括示例21和22中任一个的主题,并且还包括通过客户端设备将消息片段存储在客户端设备的固件缓存器中,其中:对消息片段解码包括对存储在固件缓存器中的消息片段解码;并且确定消息是否完整包括响应于对存储在固件缓存器中的消息片段的解码而确定消息是否完整。
示例24包括示例21-23中任一个的主题,并且还包括重启客户端设备;以及响应于重启客户端设备而第二次分析网络接口、对消息片段解码并且确定消息是否完整。
示例25包括示例21-24中任一个的主题,并且还包括通过客户端设备响应于确定消息不完整或者响应于应用管理数据而加载客户端设备的操作系统。
示例26包括示例21-25中任一个的主题,并且还包括通过客户端设备响应于解析消息而确定管理数据是否与客户端设备兼容;其中应用管理数据还包括响应于确定管理数据与客户端设备兼容而应用管理数据。
示例27包括示例21-26中任一个的主题,并且其中对消息片段解码包括使用LT代码、Raptor代码或RaptorQ代码中的一个对消息片段解码。
示例28包括示例21-27中任一个的主题,并且其中应用管理数据包括安装消息中所包括的二进制固件镜像。
示例29包括示例21-28中任一个的主题,并且其中应用管理数据包括向客户端设备安装消息中所包括的证书撤销列表。
示例30包括示例21-29中任一个的主题,并且其中安装证书撤销列表包括向客户端设备安装安全启动黑名单。
示例31包括示例21-30中任一个的主题,并且其中应用管理数据包括向客户端设备安装消息中所包括的软件应用。
示例32包括示例21-31中任一个的主题,并且其中分析网络接口、对消息片段解码和确定消息是否完整全部由客户端设备的可管理性引擎执行。
示例33包括示例21-32中任一个的主题,并且还包括通过计算设备的带中处理器来执行客户端设备的操作系统;以及通过计算设备的可管理性引擎在操作系统的执行期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段。
示例34包括示例21-33中任一个的主题,并且其中分析网络接口包括分析网络接口以接收使用喷泉码编码算法编码的消息片段。
示例35包括示例21-34中任一个的主题,并且其中分析网络接口包括对由管理服务器通过网络广播的多播数据进行过滤。
示例36包括示例21-35中任一个的主题,并且其中分析网络接口包括分析客户端设备的无线网络接口。
示例37包括一种用于广播管理信息的方法,所述方法包括:通过管理服务器使用喷泉码编码算法而将管理数据编码到多个消息片段中;以及通过管理服务器在多个客户端设备可访问的网络上连续地广播所述多个消息片段。
示例38包括示例37的主题,并且其中编码管理数据包括编码二进制固件镜像。
示例39包括示例37和38中任一个的主题,并且其中编码管理数据包括编码证书撤销列表。
示例40包括示例37-39中任一个的主题,并且其中编码证书撤销列表包括编码安全启动黑名单。
示例41包括一种计算设备,包括处理器;以及具有存储在其上的多个指令的存储器,所述多个指令在由处理器执行时使计算设备实施示例21-40中任一个的方法。
示例42包括包含存储在其上的多个指令的一个或多个机器可读存储介质,响应于执行所述多个指令而导致计算设备实施示例21-40中任一个的方法。
示例43包括一种计算设备,包括用于实施示例21-40中任一个的方法的构件。
示例44包括一种用于接收广播管理信息的客户端设备,所述客户端设备包括用于在客户端设备的启动过程期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段的构件;用于使用喷泉码解码算法对消息片段解码以生成消息的至少部分的构件;用于响应于对消息片段解码而确定消息是否完整的构件;用于响应于确定消息完整而解析消息以识别由管理服务器包括在消息中的管理数据的构件;以及用于将管理数据应用于客户端设备的构件。
示例45包括示例44的主题,并且还包括固件环境以建立用于分析网络接口的构件、用于对消息片段解码的构件、用于确定消息是否完整的构件、用于解析消息的构件以及用于应用管理数据的构件。
示例46包括示例44和45中任一个的主题,并且还包括用于将消息片段存储在客户端设备的固件缓存器中的构件,其中:用于对消息片段解码的构件包括用于对存储在固件缓存器中的消息片段解码的构件;并且用于确定消息是否完整的构件包括用于响应于对存储在固件缓存器中的消息片段解码而确定消息是否完整的构件。
示例47包括示例44-46中任一个的主题,并且还包括用于重启客户端设备的构件;以及响应于重启客户端设备而第二次地用于分析网络接口的构件、用于对消息片段解码的构件、以及用于确定消息是否完整的构件。
示例48包括示例44-47中任一个的主题,并且还包括用于响应于确定消息不完整或者响应于应用管理数据而加载客户端设备的操作系统的构件。
示例49包括示例44-48中任一个的主题,并且还包括用于响应于解析消息而确定管理数据是否与客户端设备兼容的构件;其中用于应用管理数据的构件还包括用于响应于确定管理数据与客户端设备兼容而应用管理数据的构件。
示例50包括示例44-49中任一个的主题,并且其中用于对消息片段解码的构件包括用于使用LT代码、Raptor代码或RaptorQ代码中的一个对消息片段解码的构件。
示例51包括示例44-50中任一个的主题,并且其中用于应用管理数据的构件包括用于安装消息中所包括的二进制固件镜像的构件。
示例52包括示例44-51中任一个的主题,并且其中用于应用管理数据的构件包括用于向客户端设备安装消息中所包括的证书撤销列表的构件。
示例53包括示例44-52中任一个的主题,并且其中用于安装证书撤销列表的构件包括用于向客户端设备安装安全启动黑名单的构件。
示例54包括示例44-53中任一个的主题,并且其中用于应用管理数据的构件包括用于向客户端设备安装消息中所包括的软件应用的构件。
示例55包括示例44-54中任一个的主题,并且还包括可管理性引擎,其包括用于分析网络接口的构件、用于对消息片段解码的构件、以及用于确定消息是否完整的构件。
示例56包括示例44-55中任一个的主题,并且还包括用于通过计算设备的带中处理器执行客户端设备的操作系统的构件;以及用于通过计算设备的可管理性引擎在操作系统的执行期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段的构件。
示例57包括示例44-56中任一个的主题,并且其中用于分析网络接口的构件包括用于分析网络接口以接收使用喷泉码编码算法编码的消息片段的构件。
示例58包括示例44-57中任一个的主题,并且其中用于分析网络接口的构件包括用于对由网络服务器通过网络广播的多播数据进行过滤的构件。
示例59包括示例44-58中任一个的主题,并且其中用于分析网络接口的构件包括用于分析客户端设备的无线网络接口的构件。
示例60包括一种用于广播管理信息的管理服务器,所述管理服务器包括用于使用喷泉码编码算法将管理数据编码到多个消息片段中的构件;以及用于在多个客户端设备可访问的网络上连续地广播所述多个消息片段的构件。
示例61包括示例60的主题,并且其中用于对管理数据编码的构件包括用于对二进制固件镜像编码的构件。
示例62包括示例60和61中任一个的主题,并且其中用于对管理数据编码的构件包括用于对证书撤销列表编码的构件。
示例63包括示例60-62中任一个的主题,并且其中用于对证书撤销列表编码的构件包括用于对安全启动黑名单编码的构件。
Claims (25)
1.一种用于接收广播管理信息的客户端设备,所述客户端设备包括:
网络模块,在客户端设备的启动过程期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段;
喷泉解码模块,(i)使用喷泉码解码算法对消息片段解码以生成消息的至少部分,并且(ii)响应于消息的至少部分的生成而确定消息是否完整;以及
更新管理模块,(i)响应于确定消息完整而解析消息以识别由管理服务器包括在消息中的管理数据,并且(ii)将管理数据应用于客户端设备。
2.权利要求1所述的客户端设备,还包括用以建立网络模块、喷泉码模块和更新管理模块的固件环境。
3.权利要求1所述的客户端设备,其中:
喷泉码解码模块还将消息片段存储在客户端设备的固件缓存器中;
对消息片段解码包括对存储在固件缓存器中的消息片段解码;并且
确定消息是否完整包括响应于存储在固件缓存器中的消息片段的解码而确定消息是否完整。
4.权利要求3所述的客户端设备,其中响应于客户端设备的重启而第二次地网络模块分析网络接口,并且喷泉码解码模块对消息片段解码并且确定消息是否完整。
5.权利要求1-4中任一项所述的客户端设备,其中喷泉码解码算法包括LT代码、Raptor代码或RaptorQ代码。
6.权利要求1-4中任一项所述的客户端设备,其中管理数据包括消息中所包括的二进制固件镜像。
7.权利要求1-4中任一项所述的客户端设备,其中管理数据包括消息中所包括的证书撤销列表。
8.权利要求7所述的客户端设备,其中证书撤销列表包括安全启动黑名单。
9.权利要求1-4中任一项所述的客户端设备,还包括可管理性引擎,其包括网络模块、喷泉解码模块和更新管理模块。
10.权利要求9所述的客户端设备,还包括带中处理器以执行客户端设备的操作系统;
其中网络模块还在操作系统的执行期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段。
11.一种用于广播管理信息的管理服务器,所述管理服务器包括:
喷泉编码模块,使用喷泉码编码算法将管理数据编码到多个消息片段中;以及
广播模块,连续地在多个客户端设备可访问的网络上广播所述多个消息片段。
12.权利要求11所述的管理服务器,其中管理数据包括二进制固件镜像。
13.权利要求11所述的管理服务器,其中管理数据包括证书撤销列表。
14.一种用于接收广播管理信息的方法,所述方法包括:
通过客户端设备在客户端设备的启动过程期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段;
通过客户端设备使用喷泉码解码算法对消息片段解码以生成消息的至少部分;
通过客户端设备响应于对消息片段的解码而确定消息是否完整;
通过客户端设备解析消息以响应于确定消息完整而识别由管理服务器包括在消息中的管理数据;以及
通过客户端设备将管理数据应用于客户端设备。
15.权利要求14所述的方法,其中分析网络接口、对消息片段解码、确定消息是否完整、解析消息以及应用管理数据全部由客户端设备的固件环境执行。
16.权利要求14所述的方法,还包括:
通过客户端设备将消息片段存储在客户端设备的固件缓存器中;
重启客户端设备;以及
响应于重启客户端设备而第二次分析网络接口、对消息片段解码并且确定消息是否完整,其中:
对消息片段解码包括对存储在固件缓存器中的消息片段解码;并且
确定消息是否完整包括响应于对存储在固件缓存器中的消息片段的解码而确定消息是否完整。
17.权利要求14所述的方法,其中应用管理数据包括安装消息中所包括的二进制固件镜像。
18.权利要求14所述的方法,其中应用管理数据包括向客户端设备安装消息中所包括的证书撤销列表。
19.权利要求14所述的方法,其中分析网络接口、对消息片段解码和确定消息是否完整全部由客户端设备的可管理性引擎执行。
20.权利要求14所述的方法,还包括:
通过计算设备的带中处理器来执行客户端设备的操作系统;以及
通过计算设备的可管理性引擎在操作系统的执行期间分析客户端设备的网络接口以接收由管理服务器广播的消息片段。
21.一种用于广播管理信息的方法,所述方法包括:
通过管理服务器使用喷泉码编码算法而将管理数据编码到多个消息片段中;以及
通过管理服务器在多个客户端设备可访问的网络上连续地广播所述多个消息片段。
22.权利要求21所述的方法,其中编码管理数据包括编码二进制固件镜像。
23.一种计算设备,包括:
处理器;以及
具有存储在其上的多个指令的存储器,在由处理器执行所述多个指令时使计算设备实施权利要求14-22中任一项所述的方法。
24.包括存储在其上的多个指令的一个或多个机器可读存储介质,响应于执行所述多个指令而导致计算设备实施权利要求14-22中任一项所述的方法。
25.一种计算设备,包括用于实施权利要求14-22中任一项所述的方法的构件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/222014 | 2014-03-21 | ||
US14/222,014 US9626196B2 (en) | 2014-03-21 | 2014-03-21 | Broadcasting management information using fountain codes |
PCT/US2015/018758 WO2015142519A1 (en) | 2014-03-21 | 2015-03-04 | Broadcasting management information using fountain codes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105981332A true CN105981332A (zh) | 2016-09-28 |
CN105981332B CN105981332B (zh) | 2019-12-24 |
Family
ID=54143236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580009451.4A Active CN105981332B (zh) | 2014-03-21 | 2015-03-04 | 使用喷泉码广播管理信息 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9626196B2 (zh) |
EP (1) | EP3120498A4 (zh) |
JP (1) | JP6316978B2 (zh) |
KR (1) | KR101891423B1 (zh) |
CN (1) | CN105981332B (zh) |
WO (1) | WO2015142519A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112654986A (zh) * | 2018-09-14 | 2021-04-13 | 国际商业机器公司 | 启用软件分布 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262140B2 (en) | 2016-09-29 | 2019-04-16 | Intel Corporation | Methods and apparatus to facilitate blockchain-based boot tracking |
US11025607B2 (en) * | 2016-12-15 | 2021-06-01 | At&T Mobility Ii Llc | V2X certificate management |
US10831897B2 (en) * | 2017-07-14 | 2020-11-10 | Dell Products, L.P. | Selective enforcement of secure boot database entries in an information handling system |
CN107506647A (zh) * | 2017-07-28 | 2017-12-22 | 努比亚技术有限公司 | 漏洞自动修复方法及移动终端 |
CN108234216B (zh) * | 2018-01-16 | 2021-04-20 | 广东乐心医疗电子股份有限公司 | 下载数据报文的方法及装置 |
US10831467B2 (en) * | 2018-10-25 | 2020-11-10 | American Megatrends International, Llc | Techniques of updating host device firmware via service processor |
DE102019123712A1 (de) * | 2019-09-04 | 2021-03-04 | WAGO Verwaltungsgesellschaft mit beschränkter Haftung | Vorrichtung mit einer fountain-code-dekodiereinheit zum rekonstruieren eines konfigurationsdatensatzes |
US20230401054A1 (en) * | 2022-06-13 | 2023-12-14 | Xilinx, Inc. | Impactless firmware update |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1975836A2 (en) * | 2007-03-30 | 2008-10-01 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US20080270778A1 (en) * | 2007-04-30 | 2008-10-30 | Mark Murray | Universal microcode image |
CN101945106A (zh) * | 2010-09-08 | 2011-01-12 | 东莞电子科技大学电子信息工程研究院 | 一种富媒体场景在广播网中的传输方法 |
CN102752184A (zh) * | 2011-04-20 | 2012-10-24 | 河海大学 | 用于实时多播业务的数据通信系统及其方法 |
US20140040693A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Rate Adaptive Transmission of Wireless Broadcast Packets |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122277A (en) * | 1997-08-19 | 2000-09-19 | International Business Machines Corporation | Parallel computer network broadcasting and acknowledgement |
JP2000194562A (ja) * | 1998-12-24 | 2000-07-14 | Nec Corp | プログラムダウンロードシステムおよびプログラムダウンロード方法、並びに記録媒体 |
US20040030768A1 (en) * | 1999-05-25 | 2004-02-12 | Suban Krishnamoorthy | Unified system and method for downloading code to heterogeneous devices in distributed storage area networks |
US7225164B1 (en) * | 2000-02-15 | 2007-05-29 | Sony Corporation | Method and apparatus for implementing revocation in broadcast networks |
JP2005107803A (ja) * | 2003-09-30 | 2005-04-21 | Hitachi Ltd | システム更新方法、および、それを実行するための計算機システム |
CN100546375C (zh) * | 2003-10-16 | 2009-09-30 | 斯特微电子有限公司 | 安全集成电路 |
US9161231B2 (en) * | 2004-10-14 | 2015-10-13 | Alcatel Lucent | Method and system for wireless networking using coordinated dynamic spectrum access |
US9455844B2 (en) * | 2005-09-30 | 2016-09-27 | Qualcomm Incorporated | Distributed processing system and method |
US7900033B2 (en) * | 2007-06-26 | 2011-03-01 | Intel Corporation | Firmware processing for operating system panic data |
US9461827B2 (en) * | 2008-04-11 | 2016-10-04 | Toyota Motor Engineering & Manufacturing North America, Inc. | Method for distributing a list of certificate revocations in a vanet |
US7917614B2 (en) * | 2008-06-10 | 2011-03-29 | International Business Machines Corporation | Fault tolerance in a client side pre-boot execution |
US20090327741A1 (en) * | 2008-06-30 | 2009-12-31 | Zimmer Vincent J | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) |
US7853710B2 (en) * | 2008-10-15 | 2010-12-14 | Patentvc Ltd. | Methods and devices for controlling the rate of a pull protocol |
US9288010B2 (en) * | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US8627073B2 (en) * | 2010-03-24 | 2014-01-07 | GM Global Technology Operations LLC | Adaptive certificate distribution mechanism in vehicular networks using forward error correcting codes |
KR101216110B1 (ko) * | 2011-05-18 | 2012-12-28 | 목포대학교산학협력단 | 차량 통신을 위한 인증서 취소 목록 배포 방법 및 시스템과 이를 위한 인증서 취소 목록 획득 장치 |
JP5713267B2 (ja) * | 2012-02-08 | 2015-05-07 | 富士通テレコムネットワークス株式会社 | 伝送装置管理システムおよびデータバックアップ方法 |
-
2014
- 2014-03-21 US US14/222,014 patent/US9626196B2/en active Active
-
2015
- 2015-03-04 KR KR1020167022282A patent/KR101891423B1/ko active IP Right Grant
- 2015-03-04 WO PCT/US2015/018758 patent/WO2015142519A1/en active Application Filing
- 2015-03-04 JP JP2016553848A patent/JP6316978B2/ja active Active
- 2015-03-04 CN CN201580009451.4A patent/CN105981332B/zh active Active
- 2015-03-04 EP EP15764584.7A patent/EP3120498A4/en not_active Withdrawn
-
2017
- 2017-03-09 US US15/454,529 patent/US10228954B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1975836A2 (en) * | 2007-03-30 | 2008-10-01 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US20080270778A1 (en) * | 2007-04-30 | 2008-10-30 | Mark Murray | Universal microcode image |
CN101945106A (zh) * | 2010-09-08 | 2011-01-12 | 东莞电子科技大学电子信息工程研究院 | 一种富媒体场景在广播网中的传输方法 |
CN102752184A (zh) * | 2011-04-20 | 2012-10-24 | 河海大学 | 用于实时多播业务的数据通信系统及其方法 |
US20140040693A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Rate Adaptive Transmission of Wireless Broadcast Packets |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112654986A (zh) * | 2018-09-14 | 2021-04-13 | 国际商业机器公司 | 启用软件分布 |
Also Published As
Publication number | Publication date |
---|---|
US9626196B2 (en) | 2017-04-18 |
CN105981332B (zh) | 2019-12-24 |
KR20160110467A (ko) | 2016-09-21 |
US20170185420A1 (en) | 2017-06-29 |
EP3120498A1 (en) | 2017-01-25 |
EP3120498A4 (en) | 2017-11-29 |
WO2015142519A1 (en) | 2015-09-24 |
JP6316978B2 (ja) | 2018-04-25 |
JP2017513098A (ja) | 2017-05-25 |
US10228954B2 (en) | 2019-03-12 |
KR101891423B1 (ko) | 2018-08-24 |
US20150271297A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105981332A (zh) | 使用喷泉码广播管理信息 | |
AU2019213422B2 (en) | Pre-configure and pre-launch compute resources | |
US9529602B1 (en) | Systems and methods for internet recovery and service | |
US11314524B2 (en) | Method, apparatus, and computer program product for managing service container | |
WO2018076755A1 (zh) | 一种升级包下发方法及装置 | |
CN109587331B (zh) | 云手机故障自动修复的方法与系统 | |
US9870282B2 (en) | Systems and methods for providing service and support to computing devices with boot failure | |
CN105335171A (zh) | 应用程序常驻操作系统后台的方法及装置 | |
US10102073B2 (en) | Systems and methods for providing automatic system stop and boot-to-service OS for forensics analysis | |
CN113595788B (zh) | 一种基于插件的api网关管理方法及装置 | |
CN111930396B (zh) | 一种基于notify机制的4G路由器中通讯模组的升级方法 | |
CN110730090A (zh) | 云环境中代理端批量更新方法、装置、介质及电子设备 | |
US20160350132A1 (en) | Systems and methods for exporting diagnostic data and securing privileges in a service operating system | |
CN112131041A (zh) | 用于管理数据放置的方法、设备和计算机程序产品 | |
US20180063294A1 (en) | Transmission control protocol (tcp) data handling | |
WO2023198056A1 (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN104348646A (zh) | 配置数据处理方法、装置及系统 | |
US11281391B2 (en) | Method, device, and computer program for migrating backup system | |
CN115695529B (zh) | 智能化远程运维方法、装置、计算机设备及存储介质 | |
CN116820686B (zh) | 物理机的部署方法、虚拟机和容器统一监控的方法及装置 | |
CN111857758B (zh) | 应用部署方法、装置及介质 | |
US20240095215A1 (en) | Updating edge nodes in distributed computing environments using partitions | |
CN117170701A (zh) | 一种基板管理控制器升级方法、装置及其介质 | |
CN116795589A (zh) | 一种数据备份方法及装置 | |
CN113190246A (zh) | 软件程序升级方法及装置、可读存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |