CN105393256B - 用于基于策略的安全web引导的计算设备和方法 - Google Patents

用于基于策略的安全web引导的计算设备和方法 Download PDF

Info

Publication number
CN105393256B
CN105393256B CN201480008747.XA CN201480008747A CN105393256B CN 105393256 B CN105393256 B CN 105393256B CN 201480008747 A CN201480008747 A CN 201480008747A CN 105393256 B CN105393256 B CN 105393256B
Authority
CN
China
Prior art keywords
mobile computing
computing device
firmware
resource
web server
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.)
Expired - Fee Related
Application number
CN201480008747.XA
Other languages
English (en)
Other versions
CN105393256A (zh
Inventor
B·科克雷尔
J·J·高蒂尔
姚颉文
V·J·齐默
E·A·阿马亚
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105393256A publication Critical patent/CN105393256A/zh
Application granted granted Critical
Publication of CN105393256B publication Critical patent/CN105393256B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)

Abstract

用于提供基于策略的安全云引导的系统、设备以及方法包括移动计算设备以及web服务器。移动计算设备确定指定web服务器上的引导资源的位置的远程引导地址。移动计算设备开放到web服务器的安全连接,并将引导资源映射到本地固件协议。移动计算设备使用本地固件协议将引导资源作为固件镜像来执行。引导资源可以是通过块I/O协议映射的紧致盘或DVD镜像。引导资源可以是通过文件系统协议映射的远程文件系统。可以使用能够进行带外通信的可管理性引擎来配置远程引导地址。可以基于移动计算设备的上下文(包括位置)来确定远程引导地址。描述了其他实施例并要求它们的权利。

Description

用于基于策略的安全web引导的计算设备和方法
背景技术
计算设备常常执行根据由统一EFI论坛发布的统一可扩展固件接口(“UEFI”)的引导过程。UEFI规范指定计算设备的固件和该计算设备的操作系统之间的接口。UEFI规范指定用于在预操作系统环境中执行的固件驱动程序和应用的标准模型。除执行传统的引导和初始化任务之外,这样的驱动程序和应用还可以执行诸如诊断、维护,或管理任务之类的其他任务。
计算设备可以通过根据预引导执行环境(“PXE”)规范的网络接口进行引导。利用PXE的网络引导一般要求最终用户具了解供应环境,例如,了解引导服务器地址。利用PXE的网络引导可能需要专业化的引导服务器来提供远程引导镜像。
网络引导可以在包括因特网的各种网络上实现。在因特网上传递的数据中的许多数据是在所谓的万维网上传递的,万维网是将内容提供给使用超文本传输协议(“HTTP”)的远程客户机的因特网上的互连web服务器的系统。web服务器将内容作为资源的集合来提供,每一资源都可通过叫做统一资源定位符(“URL”)的唯一地址来访问。web服务器的资源可以对应于存储在该web服务器上或可以由该web服务器访问的单个文件,或可对应于这样的文件的组(例如,目录或文件夹)。表示文件的组的资源可包括包含到该组的其他资源的的链接的索引文件。客户机向web服务器发出对于特定资源的请求,web服务器转而向客户机发出响应。HTTP响应包括状态消息,并可包括所请求内容本身。如此,HTTP是“无状态的”,意味着协议不需要客户机与服务器之间的永久性网络连接。HTTP是明文;也就是说,无需加密就在网络上传输请求、响应和内容。
经认证的或经加密的HTTP通信可以通过在安全传输层级协议顶部层叠HTTP通信来提供。例如,HTTP安全(“HTTPS”)协议在传输层安全性(“TLS”)或安全套接字层(“SSL”)连接顶部层叠HTTP。TLS/SSL指定用于在客户端和服务器之间发起安全连接的标准握手过程。除连接加密之外,TLS/SSL连接还提供对服务器(以及任选地,对客户机)的认证。然后,使用安全TLS/SSL连接来传递标准HTTP请求和响应。注意,本文中使用的术语“安全HTTP”是指HTTPS,而不是类似的但基本上不使用的S-HTTP。
附图说明
在所附附图中,以示例方式而不是以限制方式示出本文中中所述的多个概念。为说明简单和清楚起见,附图中所示出的元件不一定是按比例绘制的。在认为合适的情况下,已在多个附图之间重复了参考标号以指示对应的或类似的元件。
图1是用于基于策略的安全web引导的系统的至少一个实施例的简化框图;
图2是图1的系统的移动计算设备的固件环境的至少一个实施例的简化框图;
图3是可以由图1和图2的移动计算设备执行的根据UEFI规范的引导过程的至少一个实施例的简化流程图;
图4是可以由图1和图2的移动计算设备执行的基于策略的安全web引导的引导选项的至少一个实施例的简化流程图;
图5是图2的固件环境的驱动程序栈的一个实施例的简化框图;以及
图6是图2的固件环境的驱动程序栈的另一实施例的简化框图。
具体实施方式
尽管本公开的概念易于具有各种修改和替代形式,但是,在附图中已作为示例示出了并将在本文中详细描述本公开的特定实施例。然而,应该理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。此外,这样的短语不一定是指同一个实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其他实施例来实施这样的特征、结构或特性在本领域技术人员的知识范围之内。
在一些情况下,所公开的各实施例可在硬件、固件、软件或其任何组合中实现。所公开的多个实施例也可以实现为可由一个或多个处理器读取并执行的瞬态或非瞬态机器可读(例如,计算机可读)存储介质承载或可存储于其上的指令。机器可读存储介质可以具体化用于以可由机器可读取的形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,某些结构或方法特征可按特定安排和/或排序示出。然而,应当理解,此类特定安排和/或排序可能不是必需的。相反,在某些实施例中,这样的特征可按与在说明性附图中示出的不同的方式和/或顺序来安排。另外,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要这样的特征,并且在某些实施例中,可以不包括这样的特征,或它们可以与其他特征相结合。
现在参考图1,在一个实施例中,用于基于策略的安全web引导的系统100包括在网络106上彼此进行通信的移动计算设备102和web服务器104。在使用中,如下文中更详细地讨论的那样,移动计算设备102被配置成开放到web服务器104的安全HTTP连接,下载一个或多个远程资源,并且在预引导固件环境中执行这些远程资源。
所公开的技术允许使用标准HTTP数据传输的基于策略的网络引导。安全HTTP允许客户机和服务器的认证,以及确保在网络106上传输的引导文件的完整性和隐私。通过使用安全HTTP,可以在诸如因特网之类的公共网络上实现网络引导。另外,网络共同地被配置成适应安全HTTP话务,并通过网络防火墙来允许安全HTTP通信。如此,允许基于策略的web引导可不需要修改任何底层网络配置或拓扑。此外,web服务器是常用的。由于此类常用性,web服务器的配置和维护是公知的。事实上,许多组织具有能够在web服务器上发布资源的内部技术人员。
移动计算设备102可以具体化为用于执行本文中所描述的功能的任何类型的设备。例如,移动计算设备102可以具体化为但不限于配置成用于执行基于策略的安全web引导的智能电话、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、蜂窝电话、手机、消息收发设备、车载远程信息设备、分布式计算系统、多处理器系统、消费电子设备和/或任何其他计算设备。如图1所示,说明性移动计算设备102包括处理器120、输入/输出子系统122、存储器124、数据存储设备126、通信电路128、位置传感器130以及可管理性引擎132。当然,在其他实施例中,移动计算设备102可包括其他或额外的组件,诸如通常在移动计算机中发现的那些设备(例如,各种输入/输出设备)。另外,在某些实施例中,说明性组件中的一个或多个可以被合并在另一组件中,或能以其他方式形成另一组件的部分。例如,在某些实施例中,存储器124或其多个部分可以被合并在处理器120中。
处理器120可以具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器120可以具体化为单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器124可以具体化为能够执行本文中所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器124可以存储在移动计算设备102的操作期间使用的各种数据和软件,诸如,操作系统、应用、程序、库以及驱动程序。存储器124可经由I/O子系统122通信地耦合到处理器120,该I/O子系统122可以具体化为用于促进与移动计算设备102的处理器120、存储器124以及其他组件之间的输入/输出操作的电路和/或组件。例如,I/O子系统122可以具体化为或以其他方式包括,存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点对点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在某些实施例中,I/O子系统122可以形成片上系统(SoC)的部分,并可与移动计算设备102的处理器120、存储器124及其他组件一起被合并在单个的集成电路芯片上。
数据存储设备126可以被具体化为配置成用于数据的短期或长期存储的任何类型的设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器,固态驱动器,或其他数据存储设备。数据存储设备126可包括存储移动计算设备102的数据以及固件代码的系统分区。数据存储设备126也可以包括存储用于移动计算设备102的操作系统的数据文件和可执行程序的操作系统分区。
移动计算设备102的通信电路128可以被具体化为能够在移动计算设备102、web服务器104和/或其他远程设备之间实现通信的任何通信电路、设备或其集合。通信电路128可以被配置成使用任何一种或更多通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、 WiMAX等)来实行这样的通信。通信电路128可以具体化为网络适配器,包括无线网络适配器。
在说明性实施例中,移动计算设备102包括一个或多个位置传感器130。位置传感器130可以具体化为能够确定移动计算设备102的精确位置或大致位置的任何类型的传感器。例如,位置传感器130可以具体化为能够确定移动计算设备102的精确坐标的全球定位系统(“GPS”)接收器。在其他实施例中,位置传感器130可以使用由通信电路128提供的相对于具有已知位置的蜂窝网络塔的距离或角度来对移动计算设备102的位置进行三角测量。在其他实施例中,位置传感器130可以使用通信电路128,基于与具有已知位置的无线网络的关联来确定移动计算设备102的大致位置。
可管理性引擎132被具体化为提供移动计算设备102的远程配置、控制或管理的设备。说明性可管理性引擎132包括带外处理器134。带外处理器134与移动计算设备102的主处理器120是分离的并且不同。如此,可管理性引擎132能够独立于移动计算设备102的其余部分的状态进行操作。也就是说,无论处理器120的状态如何,可管理性引擎132都能够操作,包括当移动计算设备102关机时,当移动计算设备102正在执行预引导固件环境时,当移动计算设备102的操作系统是活动的时候,以及当操作系统崩溃或以其他方式不活动时。可管理性引擎132还能够独立于移动计算设备102的状态,使用通信电路128来进行通信,这也称为“带外”通信。在某些实施例中,附加于或替代经由通信电路128进行连接,可管理性引擎132可包括用于这样的带外通信的专用网络适配器。可管理性引擎132还可以包括安全存储设备136,该安全存储器136是可管理性引擎132的不可由移动计算设备102的其他组件访问的存储器空间,并可以任选地是系统闪存的安全部分。在某些实施例中,可管理性引擎132可以被合并进I/O子系统122中。
web服务器104被配置成接收来自移动计算设备102的HTTP请求并对其作出响应。web服务器104可以具体化为能够执行本文中所描述的功能的任何类型的数据服务器或类似的计算设备。具体而言,web服务器104可以具体化为运行诸如互联网信息服务(“IIS”)或Apache HTTP服务器之类的web服务器过程的服务器计算机。web服务器104可以具体化为标准生产的web服务器,不需要特别为系统100作出修改。如此,web服务器104可包括类似于移动计算设备102的组件和特征,诸如,处理器、I/O子系统、存储器、数据存储设备、通信电路以及各种外围设备,为了使本描述清楚,在图1中没有示出它们。
此外,web服务器104可具体化为单个服务器计算设备或服务器和相关联的设备的集合。例如,在某些实施例中,web服务器104被实现为用于执行本文中所描述的功能的云服务。在这样的实施例中,web服务器104可以被具体化为由跨网络106分布的多个计算设备形成的并在公共或私有的云中操作的“虚拟服务器”。相应地,虽然web服务器104在图1中被示出为并在下文中被描述为具体化为单个服务器计算设备,但是应当理解,web服务器104可以具体化为一起协作以促进下文所描述的功能的多个设备。
现在参考图2,在一个实施例中,移动计算设备102在操作期间建立固件环境200。说明性固件环境200包括引导管理器202、web引导模块204、远程资源映射模块206、盘文件格式协议驱动程序模块212、web引擎模块214以及无线UNDI驱动程序模块220。固件环境200的各种模块可以被具体化为硬件、固件、软件或其组合。另外,在某些实施例中,固件环境200的模块中的某些或全部可以与其他模块或软件/固件结构集成,或可形成其部分。
web引擎模块214被配置成用于实现HTTPS,并与web服务器104进行通信。web引擎模块214建立到web服务器104的HTTPS连接,从web服务器104请求远程资源,并在网络106上将这些远程资源下载到移动计算设备102。远程资源通过标准的统一资源定位符(“URL”)来标识,该URL可包括标识这些远程资源的域名和路径。web引擎模块214可以使用域名系统(“DNS”)来将域名转换为网际协议号。web引擎模块214可以使用IPv4、IPv6或其他通信协议来进行通信。在某些实施例中,那些功能可以由子模块执行,例如,由HTTP协议模块216和/或DNS协议模块218执行。
无线通用网络驱动程序接口(“UNDI”)驱动程序模块220被配置成使用移动计算设备102的无线网络适配器来提供网络通信。UNDI是去往由UEFI规范指定的网络接口卡的架构接口。无线UNDI驱动程序模块220实现用于移动计算设备102的无线网络适配器的UNDI,从而允许固件环境200的其他模块使用该无线网络适配器来进行通信。例如,web引擎模块214可以使用无线UNDI驱动程序模块220来开放安全连接,并以无线方式与web服务器104进行通信。无线UNDI驱动程序模块220可以实现为UEFI驱动程序。当然,在其他实施例中,驱动程序模块220可以具体化为用于实现为诸如Pro1000网络适配器之类的特定的网络适配器(即,非通用驱动器)开发的UEFI驱动程序的模块。
远程资源映射模块206被配置成将存储在web服务器104上的远程资源映射到一个或多个本地协议。远程资源映射模块206将用于一个或多个本地协议中的每一个的协议接口安装到移动计算设备102的固件环境中,然后,响应于一个或多个本地协议由移动计算设备102的其他固件模块调用来访问web服务器104的远程资源。换言之,远程资源映射模块206可以是固件环境200的web引擎模块214与其他模块之间的抽象层。在某些实施例中,远程资源映射模块206可以将远程资源映射到本地文件系统。这样的本地文件系统将这些远程资源抽象为一组本地文件和目录。在某些实施例中,远程资源映射模块206可以将远程资源映射到本地块层级的设备。这样的块层级的设备将远程资源抽象为包括多个数据块的数据存储设备。在某些实施例中,那些功能可以由子模块执行,例如,由文件系统协议驱动程序208和/或块I/O协议驱动程序210来执行。
盘文件格式协议驱动程序模块212被配置成与根据光盘格式来格式化的块层级存储设备对接。在某些实施例中,光盘格式可以具体化为由ISO9660标准的“El Torito”扩展所指定的可引导紧致盘文件系统(“CDFS”)格式。这样的CDFS也称为“ISO 9660”文件系统,因此,包含CDFS镜像的文件通常被称为“.iso”文件。在某些实施例中,光盘格式可以是DVD所使用的通用盘格式(“UDF”)。盘文件格式协议驱动程序模块212提供对存储在经CDFS或UDF格式化的存储设备上的文件系统的访问。盘文件格式协议驱动程序模块212可以与块I/O协议驱动程序210对接并调用它,以提供对存储在web服务器104的远程资源中的文件和目录的访问。
web引导模块204被配置成确定包含引导镜像的的远程引导地址,开放到web服务器104的安全连接以下载该引导镜像,并将该引导镜像作为固件应用程序来执行。web引导模块204可以具体化为UEFI引导选项。远程引导地址是指定HTTPS的使用和远程引导镜像的位置的标准的统一资源定位符(“URL”)。web引导模块204一般可以基于移动计算设备102的配置,移动计算设备102的上下文或来自移动计算设备102的用户的输入来确定远程引导地址。web引导模块204将远程引导地址提供给远程资源映射模块206。web引导模块204通过由远程资源映射模块206提供的一个或多个本地协议来访问所下载的引导资源。远程资源映射模块206转而使用web引擎模块214来访问web服务器104。web引导模块204可以调用移动计算设备102的操作系统加载器(其结束由固件提供的引导服务)。
引导管理器模块202被配置成枚举移动计算设备102的固件驱动程序、应用及其他模块,确定这样的固件模块的排序,并加载这些固件模块。引导管理器模块202可以从在移动计算设备102上可用的若干引导选项中选择引导选项。引导管理器模块202可以选择、加载,并启动web引导模块204。
现在参考图3,在使用中,移动计算设备102可以执行根据UEFI规范的引导过程300。在框302中,移动计算设备102初始化平台硬件。例如,移动计算设备102可以初始化处理引导固件所需的特定组件,例如,存储器124和I/O子系统122。
在框304中,移动计算设备102选择固件驱动程序或固件应用。在此阶段,引导过程300受引导管理器202的控制。固件驱动程序和应用是存储在数据存储设备126的系统分区中的二进制镜像。要被加载的特定驱动程序和应用是依赖于平台的,并可以在移动计算设备102的全局变量中(例如,在移动计算设备102的非易失性闪存存储设备中)枚举。引导管理器202可以枚举要被加载的固件驱动程序和应用,并确定所需的引导顺序。引导顺序可以基于固件驱动程序与应用之间的依赖关系。
在框306中,移动计算设备102加载并启动固件驱动程序或固件应用。固件驱动程序和应用基本上是相同的,只不过应用一般在从它们的进入点返回之后从存储器124中被卸载,而驱动程序一般保持驻留在存储器124中,除非它们以错误代码返回。固件驱动程序和应用可以初始化或控制移动计算设备102的硬件。固件驱动程序或应用还可以安装固件协议接口,该固件协议接口定义函数调用接口,并且在安装该固件协议接口之后,其允许其他固件镜像调用所提供的服务。
在框308中,移动计算设备102判断是否仍有额外的固件驱动程序或应用要加载。如果仍将加载额外的固件驱动程序或应用,则引导过程300往回循环到框304。如果不是,则引导过程进展到框310。
在框310中,移动计算设备102确定引导选项。引导选项是将由引导管理器202加载并启动的固件应用。引导选项通常是操作系统加载器,虽然该引导选项可包括诊断、维护或管理应用。可以在移动计算设备102的全局变量中指定所选择的特定引导选项。移动计算设备102的全局变量可以指定若干引导选项,包括这些引导选项的相对排序。在某些实施例中,可以由移动计算设备102的用户通过在该移动计算设备102上呈现的菜单或其他手段来选择引导选项。在某些实施例中,移动计算设备102可包括用于选择引导选项的默认引导选项或默认规则。
在框312中,移动计算设备102加载并启动所选择的引导选项(参见图4)。在被启动之后,所选择的引导选项可以初始化并加载移动计算设备102的操作系统。在框314中,移动计算设备102将控制切换(hand off)到操作系统加载器。这样的操作系统加载器可以不存储在数据存储设备126的系统分区中。作为该切换的部分,例如通过调用函数ExitBootServices()(退出引导服务())来终止引导服务。因此,如果这样的引导选项是成功的,则引导过程300完成,而操作系统控制移动计算设备102,并且引导过程300不继续进行到框316。
如果在框314中不终止引导服务,则引导过程300继续进行到框316。在框316中,移动计算设备102判断是否尝试加载另一引导选项。如上文所讨论的那样,移动计算设备102的全局变量可以指定若干引导选项。如果额外的引导选项仍然存在,则移动计算设备102可以尝试加载另一引导选项。在某些实施例中,移动计算设备102可以检查由框310中的引导选项返回的任何错误代码来判断是否尝试加载另一引导选项。如果移动计算设备102确定了尝试加载另一引导选项,则引导过程300往回循环到框310以选择引导选项。如果移动计算设备102确定了不加载另一引导选项,则引导过程300进展到框318。
在框318中,移动计算设备102经历引导失败。对引导失败采取的特定动作是依赖于平台的。在某些实施例中,移动计算设备102可将错误消息提供给用户。在某些实施例中,移动计算设备102可以调用依赖于平台的诊断或维护应用。在某些实施例中,移动计算设备102可以简单地关机。
现在参考图4,移动计算设备102可以执行基于策略的安全web引导的引导选项312。这样的引导选项312可以作为由UEFI规范所指定的引导过程300的部分来执行(即,作为引导过程300的框312的过程的部分)。所选择的引导选项312可以由web引导模块204具体化,或由web引导模块204以其他方式执行。在框402中,在某些实施例中,移动计算设备102认证移动计算设备102的用户。移动计算设备102可以从用户接收登录信息,该登录信息可以具体化为诸如用户名和密码或用户证书之类的用户凭据。在某些实施例中,登录信息可以通过诸如智能卡或生物特征读取器之类的安全令牌来提供。移动计算设备102可以通过将接收到的登录信息与存储在移动计算设备102上的登录信息进行比较来认证用户。在其他实施例中,移动计算设备102可以查询单独的认证服务器(未示出)。
在框404中,移动计算设备102确定远程引导地址。远程引导地址被说明性地具体化为标识web服务器104并指定包含远程引导镜像的特定远程资源的统一资源定位符(“URL”)。如此,对远程引导地址的选择可以允许对特定引导策略的选择。远程引导地址可以指定(使用URL方案名称“https”的)安全HTTP的使用。在某些实施例中,远程引导地址存储在数据存储设备126中,或存储在移动计算设备102的非易失性闪存存储中。这样的实施例允许若干使用情况:可以由用户指定远程引导地址,并存储其供以后使用;移动计算设备102的软件可以配置远程引导地址,供在重新引导时使用;并且/或者计算设备102的制造商可以预先编程对一个或多个远程引导地址的选择。此外,在这样的实施例中,可管理性引擎132可以不被包括在计算设备102中,或以其他方式在计算设备102中不需要。在某些实施例中,移动计算设备102从动态主机配置协议(“DHCP”)服务器接收远程引导地址。例如,RFC5970提议的标准指定DHCPv6选项以配置计算设备用于网络引导。在某些实施例中,在框406中,移动计算设备102从可管理性引擎132接收远程引导地址。在这样的实施例中,可以使用可管理性引擎132的带外网络通信能力来将远程引导地址提供给该可管理性引擎132。例如,远程引导地址可以由企业信息技术人员提供,从而不需要移动计算设备102的用户干预就允许对远程引导地址的配置。在某些实施例中,远程引导地址可以存储在可管理性引擎132的安全存储器空间中。另外,在某些实施例中,在框408中,移动计算设备102从移动计算设备102的控制台输入接收远程引导地址。移动计算设备102的控制台可以具体化为显示器和键盘、触屏或移动计算设备102的任何其他用户接口外围设备。如此,移动计算设备102的用户可手动地提供远程引导地址。
在某些实施例中,在框410中,移动计算设备102可以基于移动计算设备102的上下文(例如,基于位置、模式、当前用户、当前网络等)来确定远程引导地址。移动计算设备102可以使用传感器来判断该上下文是否适用于远程引导地址;这些传感器可包括由移动计算设备102中的GPS感测到的位置(例如,地理围墙),通过由用户输入的密码或生物特征输入(例如,语音、指纹、虹膜扫描、USB加密锁(dongle)、近场通信)而感测到的身份,或其他准则(例如,日期和时间)。例如,在某些实施例中,移动计算设备102的上下文可包括如使用位置传感器130所确定的移动计算设备102的位置。如此,当移动计算设备102位于用户的工作地以及在用户的家中时,移动计算设备102可以确定不同的远程引导地址。在某些实施例中(未示出),远程引导地址可以是相同的,并且引导策略(即,对引导镜像的选择)可以由web服务器104执行。例如,移动计算设备102可将上下文信息作为HTTP POST请求的部分包括在向web服务器104中的请求中。web服务器104可包括用于基于从移动计算设备102接收到的信息来返回特定引导镜像的逻辑。这样的逻辑可以实现为web服务器104的普通web应用。
在框412中,移动计算设备102开放到web服务器104的HTTPS连接。HTTPS连接使用通信电路128来与web服务器104进行通信,因此,HTTPS连接可以实现为有线或无线的网络连接。如上文所讨论的那样,HTTPS连接是在使用SSL/TLS协议加密的连接上传递的常规HTTP。HTTPS连接支持认证和隐私。在某些实施例中,在框414中,移动计算设备102例如当建立TLS/SSL连接时,可以将客户机证书作为安全握手协议的部分发送到web服务器104。客户机证书可以绑定到移动计算设备102或可以与移动计算设备102的特定用户相关联。发送客户机证书允许web服务器104验证移动计算设备102和/或移动计算设备102的用户是已知实体。如果web服务器104不验证客户机证书,则安全连接可能无法开放。客户机证书可以安装在可管理性引擎132中,由其管理,或以其他方式由其提供。在某些实施例中,可以响应于如上所述在框402中成功地认证了用户来判断该客户机证书。如此,可以禁止未经授权的用户访问web服务器104。注意,支持在公共的因特网上的HTTPS连接的web服务器通常不验证客户机证书;在这样的连接中,web服务器预期来自众多匿名客户机的连接,因此,仅web服务器的身份是重要的。因此,认证客户机证书可以更适合于处于共同控制或管理下的移动计算设备102和web服务器104的实施例。
在框416中,移动计算设备102验证从web服务器104接收到的服务器证书。如上文所讨论的那样,通过验证服务器证书,移动计算设备102确认web服务器104的身份。移动计算设备102例如当建立TLS/SSL连接时可以验证作为标准安全握手协议的部分的服务器证书。在开放安全连接之后,引导选项312继续进行到框418。
在框418中,移动计算设备102将web服务器104的资源映射到移动计算设备102的本地协议。资源是由在框404中确定的远程引导地址指定的。所请求的资源可以是用于引导移动计算设备102的任何文件或目录,并因此有时被称为“引导资源”。移动计算设备102将对于所请求的资源的HTTP请求发送到web服务器104,而web服务器104将包括该所请求资源的HTTP响应发送到移动计算设备102。在某些实施例中,移动计算设备102可以请求并立即下载整个资源,在本地将该资源缓存在移动计算设备102上。在某些实施例中,移动计算设备102可以请求并下载由该移动计算设备102的固件驱动程序或应用请求的资源或资源的某些部分。
在框420中,在某些实施例中,移动计算设备102将远程资源映射到本地块输入/输出协议。块I/O协议将大容量存储设备表示为不具有像文件和目录那样的较高层级的抽象的小的、均匀尺寸的数据块阵列。固件环境200的较高层级协议可以消耗块I/O协议来提供对文件系统(包括文件和目录)的访问。例如,远程资源可以具体化为被格式化为兼容ISO9660的盘镜像(.iso文件)的单个二进制文件。块I/O协议提供对作为块阵列的远程盘镜像的数据的访问。移动计算设备102的固件中所包括的标准的紧致盘文件系统(“CDFS”)驱动程序消耗块层级协议,从而允许访问存储在远程资源中的文件和目录。在其他实施例中,远程资源可以经是UDF格式化的盘镜像、El Torito可引导紧致盘镜像或可由移动计算设备102的固件驱动程序读取的另一盘镜像。如上文所讨论的那样,块I/O协议可例如使用HTTPGET(HTTP获取)请求来下载并缓存整个远程盘镜像,并且可通过所缓存的盘镜像来提供对所请求块的访问。在其他实施例中,块I/O协议可以使用HTTP RANGE(HTTP范围)头部字段从远程资源下载所请求的块,以便下载小于其整体的远程资源的部分。
例如,现在参考图5,框图500示出了可以被安装以将远程资源映射到本地块输入/输出协议的驱动程序栈。盘文件格式协议驱动程序模块212安装UEFI规范中所描述的EFI_SIMPLE_FILE_SYSTEM_PROTOCOL(EFI_简单_文件_系统_协议)502。盘文件格式协议驱动程序模块212依赖于块I/O协议驱动程序210。块I/O协议驱动程序210安装UEFI规范中所描述的EFI_BLOCK_IO_PROTOCOL(EFI_块_IO_协议)504。块I/O协议驱动程序210依赖于web引擎模块214。web引擎模块214安装WEB_ENGINE_PROTOCOL(WEB_引擎_协议)506,并依赖于HTTP协议模块216和DNS协议模块218两者。HTTP协议模块216安装HTTP_PROTOCOL(HTTP_协议)508,而DNS协议模块218安装DNS_PROTOCOL(DNS_协议)510。如此,固件应用或驱动程序可以通过调用由EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 502所定义的由盘文件格式协议驱动程序模块212处理的函数来访问文件。这样的函数调用经过驱动程序栈,最终导致与web服务器104的HTTP交互。
往回参考图4,在框422中,在某些实施例中,移动计算设备102将远程资源映射到本地文件系统协议。文件系统协议提供对存储在存储设备上的目录和文件的访问。例如,在框404中确定的远程引导地址可以表示存储在web服务器104上的目录结构的根目录。存储在web服务器104上的每一文件都对应于通过文件系统协议而暴露的文件。如上文所讨论的那样,移动计算设备102可以下载使用HTTP GET请求来请求的每一文件。web服务器104的目录结构还为移动计算设备102提供用于枚举每一目录中的文件的机制。例如,web服务器104可以返回或生成列举存储在目录中的所有文件的索引文件(例如,“index.html”)。
例如,现在参考图6,框图600示出了可以被安装以将远程资源映射到本地文件系统协议的驱动程序栈。文件系统协议驱动程序208安装EFI_SIMPLE_FILE_SYSTEM_PROTOCOL502,并依赖于web引擎模块214。如上文参考图5所描述的那样,web引擎模块214安装WEB_ENGINE_PROTOCOL 506,并依赖于HTTP协议模块216和DNS协议模块218两者。同样如上文参考图5所描述的那样,HTTP协议模块216安装HTTP_PROTOCOL 508,而DNS协议模块218安装DNS_PROTOCOL510。如上所述,固件应用或驱动程序可以通过EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 502来访问文件。在这样的示例中,对EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 502的函数调用由文件系统协议驱动程序208处理,并被转换为与web服务器104之间的HTTP交互。
往回参考图4,在框424中,移动计算设备102将从远程引导地址下载的远程资源作为固件镜像来执行。为了执行资源,移动计算设备102使用用于加载固件镜像的协议将资源加载到存储器中,然后在存储器中(in-memory)镜像的进入点处开始执行代码。如此,移动计算设备102以与本地存储的固件镜像相同的方式加载并启动该镜像,因为远程资源已被映射到本地协议。例如,移动计算设备102可以使用如上文所讨论的EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 502来访问远程资源。远程资源可以具体化为固件驱动程序、固件应用或固件操作系统加载器。所加载的固件镜像可以使用分别在框412和418中建立的安全web连接和本地资源映射来访问web服务器104的额外的远程资源。此类额外的远程资源可以具体化为配置文件、数据文件或可以加载并启动的额外的固件镜像。
在某些实施例中,在框426中,移动计算设备102可以验证远程资源的数字签名。如上文所描述的那样,在框412中建立的安全HTTP连接验证web服务器104的身份,可以验证移动计算设备102的身份,并保护远程资源当在网络106上传输时免于被窜改或窃听。然而,安全HTTP连接不提供涉及远程资源本身的内容的完整性或真实性的任何保证。为了允许认证或验证完整性,远程资源可包括数字签名,该数字签名是利用私钥加密的远程资源的散列。移动计算设备102可以通过独立地计算远程资源的散列,利用已知公钥解密数字签名以产生经解密的散列值,并且随后将计算出的散列值与经解密的散列值进行比较来验证该数字签名。如果散列值匹配,则移动计算设备102已经验证使用私钥对远程资源进行了签名,并且自从被签名以来,该远程资源没有被修改。如果公钥受信任(例如,由已知的证书权威机构发布),则移动计算设备102已验证由已知实体对该远程资源进行了签名。在某些实施例中,移动计算设备102可以使用在UEFI规范中指定的安全引导逻辑来验证数字签名。
尽管将远程资源作为固件镜像来执行,但是如框314所示,远程资源可以将控制切换到到操作系统。例如,在成功地加载了操作系统之后,固件镜像可以调用ExitBootServices(),从而导致卸载并终止引导服务固件。如果操作系统没有被成功地启动,则引导选项312返回到其调用者。在某些实施例中,引导选项312可以返回指示未启动操作系统的任何错误或原因的状态代码。
虽然被示为在引导选项312的执行期间顺序地发生,但是,图4中所描述的功能可以具体化在一个或多个固件驱动程序或应用中,并可以在不同的时刻执行。例如,在框402中所描述的接收用户登录信息,在框404中所描述的确定远程引导地址以及在框418中所描述的映射远程资源可以各自都被具体化为在加载引导选项312之前被加载并保持驻留的固件驱动程序。
另外,虽然移动计算设备102在图1-6中被示为并且在上文中被描述为“移动”计算设备,但是应当理解,本文中所描述的技术同样适用于固定的或其他方式的“非移动”计算设备。如此,在某些实施例中,计算设备102可以具体化为例如,台式计算机、基于机架的计算机或其他非移动计算设备。
示例
示例1包括用于安全地从web服务器进行引导的移动计算设备,该移动计算设备包括:web引导模块,其用于确定标识web服务器的引导资源的位置的远程引导地址;web引擎模块,其用于开放从移动计算设备到web服务器的安全连接;以及远程资源映射模块,其用于将web服务器的引导资源映射到本地固件协议;其中,web引导模块用于使用本地固件协议来将引导资源作为固件镜像来执行。
示例2包括示例1的主题,其中,web引擎模块进一步用于:响应于引导资源被映射到本地固件协议,将web服务器的引导资源从web服务器下载到移动计算设备。
示例3包括示例1和2中任何一个的主题,其中,web引擎模块进一步用于:响应于引导资源被映射到本地固件协议,将小于web服务器的引导资源的整体的部分从web服务器下载到移动计算设备。
示例4包括示例1-3中任何一个的主题,并进一步包括无线网络适配器;以及用于使用该无线网络适配器来开放安全连接的无线通用网络驱动程序接口(“UNDI”)驱动程序模块。
示例5包括示例1-4中任何一个的主题,其中,web引导模块包括:用于从动态主机配置协议服务器接收远程引导地址的web引导模块。
示例6包括示例1-5中的任何一个的主题,并进一步包括可管理性引擎,其中,web引导模块包括:用于从该可管理性引擎接收远程引导地址的web引导模块。
示例7包括示例1-6中任何一个的主题,其中,远程引导地址存储在可管理性引擎的安全存储器空间种。
示例8包括示例1-7中任何一个的主题,其中,web引导模块包括:用于从移动计算设备的控制台接收远程引导地址的web引导模块。
示例9包括示例1-8中任何一个的主题,其中,web引导模块包括:用于基于移动计算设备的上下文来确定远程引导地址的web引导模块。
示例10包括示例1-9中任何一个的主题,进一步包括位置传感器,其中,web引导模块包括:用于基于使用位置传感器所确定的移动计算设备的位置来确定远程引导地址的web引导模块。
示例11包括示例1-10中任何一个的主题,其中,web引擎模块包括:用于(i)将移动计算设备的整数发送到web服务器以及(ii)响应于该证书经web服务器验证而开放安全连接的web引擎模块。
示例12包括示例1-11中任何一个的主题,其中,引导选项模块包括:用于在移动计算设备上认证该移动计算设备的用户的引导选项模块;并且web引擎模块包括:用于响应于用户经认证而将于该用户相关联的整数发送到web服务器的web引擎模块。
示例13包括示例1-12中任何一个的主题,其中,远程资源映射模块包括:用于将文件系统镜像映射到本地块输入/输出固件协议的块输入/输出协议驱动程序。
示例14包括示例1-13中任何一个的主题,并进一步包括用于映射紧致盘文件系统镜像或通用盘格式文件系统镜像中的一个的盘文件格式协议驱动程序模块。
示例15包括示例1-14中任何一个的主题,其中,远程资源映射模块包括:用于将引导资源映射到移动计算设备的本地文件系统协议的文件系统协议驱动程序。
示例16包括示例1-15中任何一个的主题,其中,固件镜像包括操作系统加载器,其中,该操作系统加载器终止移动计算设备的引导服务。
示例17包括示例1-16中任何一个的主题,其中,web引导模块包括用于以下各项的web引导模块:验证引导资源的数字签名;以及响应于成功地验证了数字签名,执行该引导资源。
示例18包括用于在移动计算设备上的安全web引导的方法,该方法包括:在移动计算设备上确定标识web服务器的引导资源的位置的远程引导地址;开放从移动计算设备到web服务器的安全连接;在移动计算设备上,将web服务器的引导资源映射到本地固件协议;以及在移动计算设备上,使用本地固件协议将引导资源作为固件镜像来执行。
示例19包括示例18的主题,并进一步包括:响应于将引导资源映射到本地固件协议,将web服务器的引导资源从web服务器下载到移动计算设备。
示例20包括示例18和19中任何一个的主题,并进一步包括,响应于将引导资源映射到本地固件协议,将小于web服务器的引导资源的整体的部分从web服务器下载到移动计算设备。
示例21包括示例18-20中任何一个的主题,其中,开放安全连接包括:使用移动计算设备的无线网络适配器来开放安全连接。
示例22包括示例18-21中任何一个的主题,其中,确定远程引导地址包括:从动态主机配置协议服务器接收远程引导地址。
示例23包括示例18-22中任何一个的主题,其中,确定远程引导地址包括:从移动计算设备的可管理性引擎接收远程引导地址。
示例24包括示例18-23中任何一个的主题,并进一步包括:将远程引导地址存储在可管理性引擎的安全存储器空间中。
示例25包括示例18-24中任何一个的主题,其中,确定远程引导地址包括:从移动计算设备的控制台接收远程引导地址。
示例26包括示例18-25中任何一个的主题,其中,确定远程引导地址:包括基于移动计算设备的上下文来确定远程引导地址。
示例27包括示例18-26中任何一个的主题,其中,基于移动计算设备的上下文来确定远程引导地址包括:基于使用移动计算设备的位置传感器所确定的移动计算设备的位置来确定远程引导地址。
示例28包括示例18-27中任何一个的主题,其中,开放安全连接包括:将移动计算设备的整数发送到web服务器;以及响应于该证书将web服务器验证,开放安全连接。
示例29包括示例18-28中任何一个的主题,并进一步包括在移动计算设备上认证该移动计算设备的用户,发送证书包括:响应于认证用户,将于该用户相关联的证书发送到web服务器。
示例30包括示例18-29中任何一个的主题,其中,将引导资源映射到本地固件协议包括:将文件系统镜像映射到本地块输入/输出固件协议。
示例31包括示例18-30中任何一个的主题,其中,映射文件系统镜像包括:映射紧致盘文件系统镜像或通用盘格式文件系统镜像中的一个。
示例32包括示例18-31中任何一个的主题,其中,将引导资源映射到本地固件协议包括:将引导资源映射到移动计算设备的本地文件系统协议。
示例33包括示例18-32中任何一个的主题,其中,执行引导资源包括调用移动计算设备的操作系统加载器,其中,操作系统加载器终止移动计算设备的引导服务。
示例34包括示例18-33中任何一个的主题,其中,执行引导资源包括验证该引导资源的数字签名;以及响应于成功地验证了该数字签名,执行该引导资源。
示例35包括计算设备,其包括:处理器;以及存储器,其具有存储于其中的多条指令当由处理器执行这多条指令时,这些指令使计算设备执行示例18-34中任何一个的方法。
示例36包括一种或多种机器可读存储介质,其包括在存储于其上的多条指令,响应于执行这多条指令,这些指令使计算设备执行示例18-34中任何一个的方法。
示例37包括用于安全地从web服务器进行引导的移动计算设备,该移动计算设备包括:用于在移动计算设备上确定标识web服务器的引导资源的位置的远程引导地址的装置;用于开放从移动计算设备到web服务器的安全连接的装置;用于在移动计算设备上将web服务器的引导资源映射到本地固件协议的装置;以及用于在移动计算设备上使用本地固件协议将引导资源作为固件镜像来执行的装置。
示例38包括示例37的主题,并进一步包括:用于响应于将引导资源映射到本地固件协议而将web服务器的引导资源从web服务器下载到移动计算设备的装置。
示例39包括示例37和38中任何一个的主题,并进一步包括,用于响应于将引导资源映射到本地固件协议而将小于web服务器的引导资源的整体的部分从web服务器下载到移动计算设备的装置。
示例40包括示例37-39中任何一个的主题,其中,用于开放安全连接的装置包括:用于使用移动计算设备的无线网络适配器来开放安全连接的装置。
示例41包括示例37-40中任何一个的主题,其中,用于确定远程引导地址的装置包括:用于从动态主机配置协议服务器接收远程引导地址的装置。
示例42包括示例37-41中任何一个的主题,其中,用于确定远程引导地址的装置包括:用于从移动计算设备的可管理性引擎接收远程引导地址的装置。
示例43包括示例37-42中任何一个的主题,并进一步包括:用于将远程引导地址存储在可管理性引擎的安全存储器空间中的装置。
示例44包括示例37-43中任何一个的主题,其中,用于确定远程引导地址的装置包括:用于从移动计算设备的控制台接收远程引导地址的装置。
示例45包括示例37-44中任何一个的主题,其中,用于确定远程引导地址的装置包括:用于基于移动计算设备的上下文来确定远程引导地址的装置。
示例46包括示例37-45中任何一个的主题,其中,用于基于移动计算设备的上下文来确定远程引导地址的装置包括:用于基于使用移动计算设备的位置传感器所确定的移动计算设备的位置来确定远程引导地址的装置。
示例47包括示例37-46中任何一个的主题,其中,用于开放安全连接的装置包括:用于将移动计算设备的证书发送到web服务器的装置;以及用于响应于该证书经web服务器验证而开放安全连接的装置。
示例48包括示例37-47中任何一个的主题,并进一步包括用于在移动计算设备上认证该移动计算设备的用户的装置,其中,用于发送证书的装置包括:用于响应于认证了用户而将与该用户相关联的证书发送到web服务器的装置。
示例49包括示例37-48中任何一个的主题,其中,用于将引导资源映射到本地固件协议的装置包括:用于将文件系统镜像映射到本地块输入/输出固件协议的装置。
示例50包括示例37-49中任何一个的主题,其中,用于映射文件系统镜像的装置包括:用于映射紧致盘文件系统镜像或通用盘格式文件系统镜像中的一个的装置。
示例51包括示例37-50中任何一个的主题,其中,用于将引导资源映射到本地固件协议的装置包括:用于将引导资源映射到移动计算设备的本地文件系统协议的装置。
示例52包括示例37-51中任何一个的主题,其中,用于执行引导资源的装置包括用于调用移动计算设备的操作系统加载器的装置,其中,该操作系统加载器终止移动计算设备的引导服务。
示例53包括示例37-52中任何一个的主题,其中,用于执行引导资源的装置包括:用于验证引导资源的数字签名的装置;以及用于响应于成功地验证了该数字签名而执行该引导资源的装置。

Claims (25)

1.一种用于安全地从web服务器进行引导的移动计算设备,所述移动计算设备包括:
web引导模块,所述web引导模块用于确定标识所述web服务器的引导资源的位置的远程引导地址,其中,所述远程引导地址标识所述web服务器以及所述web服务器的包含所述引导资源的远程资源;
web引擎模块,所述web引擎模块用于开放从所述移动计算设备到所述web服务器的安全连接;以及
远程资源映射模块,所述远程资源映射模块用于使用所述web引擎模块将所述web服务器的所述引导资源映射到本地块输入/输出固件协议,其中所述web引导模块被配置为将所述远程引导地址提供给所述远程资源映射模块,并且其中所述远程资源映射模块被配置为安装用于所述本地块输入/输出固件协议的固件协议接口;
其中,所述web引导模块用于使用所述本地块输入/输出固件协议来将所述引导资源作为固件镜像来执行,其中,用于执行所述引导资源包括用于:(i)调用本地文件系统协议以将所述固件镜像加载到易失性存储器中,(ii)响应于本地文件系统协议的调用而调用所述本地块输入/输出固件协议的一个或多个函数调用接口以访问块阵列,以及(iii)响应于将固件镜像加载到易失性存储器中以及响应于本地块输入/输出固件协议的一个或多个函数调用接口的调用,执行所述易失性存储器中的所述固件镜像;
其中,所述固件协议接口定义了允许其他固件镜像调用所提供的服务的函数调用接口。
2.如权利要求1所述的移动计算设备,其特征在于,所述web引擎模块进一步用于:响应于所述引导资源被映射到所述本地块输入/输出固件协议,将小于所述web服务器的所述引导资源的整体的部分从所述web服务器下载到所述移动计算设备。
3.如权利要求1所述的移动计算设备,其特征在于,进一步包括:
无线网络适配器;以及
无线通用网络驱动程序接口驱动程序模块,用于使用所述无线网络适配器来开放所述安全连接。
4.如权利要求1所述的移动计算设备,其特征在于,所述web引导模块用于执行下列各项操作中的一项:
从动态主机配置协议服务器接收所述远程引导地址;
从所述移动计算设备的可管理性引擎接收所述远程引导地址;或
从所述移动计算设备的控制台接收所述远程引导地址。
5.如权利要求4所述的移动计算设备,其特征在于,所述远程引导地址存储在所述可管理性引擎的安全存储器空间中。
6.如权利要求1所述的移动计算设备,其特征在于,进一步包括位置传感器,其中,所述web引导模块进一步用于:基于使用所述位置传感器所确定的所述移动计算设备的位置来确定所述远程引导地址。
7.如权利要求1所述的移动计算设备,其特征在于,所述web引导模块进一步包括:
用于在所述移动计算设备上认证所述移动计算设备的用户的引导选项模块;并且
所述web引擎模块进一步用于(i)响应于所述用户经认证而将与所述用户相关联的证书发送到所述web服务器以及(ii)响应于所述证书经所述web服务器验证而开放所述安全连接的web引擎模块。
8.如权利要求1所述的移动计算设备,其特征在于,所述远程资源映射模块包括下列各项中的一项:块输入/输出协议驱动程序或文件系统协议驱动程序,所述远程资源映射模块用于将远程资源映射到本地块层级的设备并且将远程资源抽象为包括多个数据块的数据存储设备。
9.如权利要求8所述的移动计算设备,其特征在于,进一步包括:用于映射紧致盘文件系统镜像或通用盘格式文件系统镜像中的一个的盘文件格式协议驱动程序模块。
10.如权利要求1所述的移动计算设备,其特征在于,所述固件镜像包括操作系统加载器,其中,所述操作系统加载器终止所述移动计算设备的引导服务。
11.如权利要求1所述的移动计算设备,其特征在于,所述web引导模块进一步用于:
验证所述引导资源的数字签名;以及
响应于成功地验证了所述数字签名,执行所述引导资源。
12.一种用于移动计算设备上的安全web引导的方法,所述方法包括:
在所述移动计算设备上确定标识web服务器的引导资源的位置的远程引导地址,其中,所述远程引导地址标识所述web服务器以及所述web服务器的包含所述引导资源的远程资源;
开放从所述移动计算设备到所述web服务器的安全连接;
在所述移动计算设备上,将所述web服务器的所述引导资源映射到本地块输入/输出固件协议;
在所述移动计算设备上,安装用于所述本地块输入/输出固件协议的固件协议接口;以及
在所述移动计算设备上,使用所述本地块输入/输出固件协议来将所述引导资源作为固件镜像来执行,其中,执行所述引导资源包括:(i)调用本地文件系统- 协议以将所述固件镜像加载到易失性存储器中,(ii)响应于本地文件系统协议的调用而调用所述本地块输入/输出固件协议的一个或多个函数调用接口以访问块阵列,以及(iii)响应于将固件镜像加载到易失性存储器中以及响应于本地块输入/输出固件协议的一个或多个函数调用接口的调用,执行所述易失性存储器中的所述固件镜像;
其中所述固件协议接口定义了允许其他固件镜像调用所提供的服务的函数调用接口。
13.如权利要求12所述的方法,其特征在于,确定所述远程引导地址包括:从所述移动计算设备的可管理性引擎接收所述远程引导地址。
14.如权利要求13所述的方法,其特征在于,进一步包括:将所述远程引导地址存储在所述可管理性引擎的安全存储器空间中。
15.如权利要求12所述的方法,其特征在于,确定所述远程引导地址包括:基于所述移动计算设备的上下文来确定所述远程引导地址。
16.如权利要求15所述的方法,其特征在于,基于所述移动计算设备的上下文来确定所述远程引导地址包括:基于使用所述移动计算设备的位置传感器所确定的所述移动计算设备的位置来确定所述远程引导地址。
17.如权利要求12所述的方法,其特征在于,开放所述安全连接包括:
将所述移动计算设备的证书发送到所述web服务器;以及
响应于所述证书经所述web服务器验证,开放所述安全连接。
18.一种计算设备,包括:
处理器;以及
存储器,具有存储于其中的多条指令,当由所述处理器执行所述多条指令时,所述多条指令使所述计算设备执行如权利要求12-17中任意一项所述的方法。
19.一种或多种机器可读存储介质,包括存储于其上的多条指令,响应于执行所述多条指令,所述多条指令使所述计算设备执行如权利要求12-17中任意一项所述的方法。
20.一种用于安全地从web服务器进行引导的移动计算设备,所述移动计算设备包括:
用于在所述移动计算设备上确定标识web服务器的引导资源的位置的远程引导地址的装置,其中,所述远程引导地址标识所述web服务器以及所述web服务器的包含所述引导资源的远程资源;
用于开放从所述移动计算设备到所述web服务器的安全连接的装置;
用于在所述移动计算设备上将所述web服务器的所述引导资源映射到本地块输入/输出固件协议的装置;
用于在所述移动计算设备上,安装用于所述本地块输入/输出固件协议的固件协议接口的装置;以及
用于在所述移动计算设备上使用所述本地块输入/输出固件协议将所述引导资源作为固件镜像来执行的装置,其中,用于执行所述引导资源的装置包括:(i)用于调用本地文件系统协议以将所述固件镜像加载到易失性存储器中的装置,(ii)用于响应于本地文件系统协议的调用而调用所述本地块输入/输出固件协议的一个或多个函数调用接口以访问块阵列的装置,以及(iii)用于响应于将固件镜像加载到易失性存储器中以及响应于本地块输入/输出固件协议的一个或多个函数调用接口的调用,执行所述易失性存储器中的所述固件镜像的装置;
其中所述固件协议接口定义了允许其他固件镜像调用所提供的服务的函数调用接口。
21.如权利要求20所述的移动计算设备,其特征在于,所述用于开放所述安全连接的装置包括:用于使用所述移动计算设备的无线网络适配器来开放安全连接的装置。
22.如权利要求20所述的移动计算设备,其特征在于,所述用于将所述引导资源映射到所述本地固件协议的装置包括:用于将远程资源映射到本地块层级的设备并且将远程资源抽象为包括多个数据块的数据存储设备的装置。
23.如权利要求20所述的移动计算设备,其特征在于,所述用于映射所述文件系统镜像的装置包括:用于映射紧致盘文件系统镜像和通用盘格式文件系统镜像中的一个的装置。
24.如权利要求20所述的移动计算设备,其特征在于,所述用于将所述引导资源映射到所述本地固件协议的装置包括:用于将所述引导资源映射到所述移动计算设备的本地文件系统协议的装置。
25.如权利要求20所述的移动计算设备,其特征在于,所述用于执行所述引导资源的装置包括:
用于验证所述引导资源的数字签名的装置;以及
用于响应于成功地验证了所述数字签名而执行所述引导资源的装置。
CN201480008747.XA 2013-03-13 2014-02-26 用于基于策略的安全web引导的计算设备和方法 Expired - Fee Related CN105393256B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/799,294 US10205750B2 (en) 2013-03-13 2013-03-13 Policy-based secure web boot
US13/799,294 2013-03-13
PCT/US2014/018670 WO2014158605A1 (en) 2013-03-13 2014-02-26 Policy-based secure web boot

Publications (2)

Publication Number Publication Date
CN105393256A CN105393256A (zh) 2016-03-09
CN105393256B true CN105393256B (zh) 2019-06-04

Family

ID=51534940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480008747.XA Expired - Fee Related CN105393256B (zh) 2013-03-13 2014-02-26 用于基于策略的安全web引导的计算设备和方法

Country Status (4)

Country Link
US (1) US10205750B2 (zh)
EP (1) EP2973147B1 (zh)
CN (1) CN105393256B (zh)
WO (1) WO2014158605A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2638665A4 (en) * 2010-11-09 2016-04-20 Zaplox Ab METHOD AND SYSTEM FOR REMOTE CONTROL OF A PLANT
US20160173465A1 (en) * 2014-12-12 2016-06-16 Rajesh Poornachandran Technologies for verifying authorized operation of servers
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
US11792198B2 (en) * 2015-04-29 2023-10-17 Ncr Corporation Self-service terminal secure boot device order modification
CN107534647B (zh) 2015-05-06 2020-11-03 慧与发展有限责任合伙企业 用于传送启动脚本的系统、计算设备和存储介质
CN106487524B (zh) * 2015-08-27 2019-09-13 昆达电脑科技(昆山)有限公司 远程开机的方法
WO2017063759A1 (en) * 2016-01-26 2017-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for configuring an m2m device
EP3345112B1 (en) 2016-01-28 2020-04-22 Hewlett-Packard Development Company, L.P. Thresholds on scripts executable by unified extensible firmware interface systems
WO2018073858A1 (ja) * 2016-10-17 2018-04-26 株式会社日立製作所 復旧方法、端末、およびデバイス
US10949538B2 (en) * 2016-10-18 2021-03-16 Hewlett-Packard Development Company, L.P. Operating system installations using uniform resource locators from radio frequency identification chips
EP3545437B1 (en) 2017-03-21 2022-11-09 Hewlett-Packard Development Company, L.P. Operating system retrieval
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
IT201800006081A1 (it) * 2018-06-06 2019-12-06 Procedimento per caricare codice software, sistema corrispondente e veicolo equipaggiato con tale sistema
US10831467B2 (en) * 2018-10-25 2020-11-10 American Megatrends International, Llc Techniques of updating host device firmware via service processor
US10884759B2 (en) 2018-10-30 2021-01-05 Hewlett Packard Enterprise Development Lp Remote deployment of operating systems
CN109783082B (zh) * 2019-01-02 2022-02-18 郑州云海信息技术有限公司 一种UEFI Http boot server的架设方法
US11762666B2 (en) * 2019-01-29 2023-09-19 Walmart Apollo, Llc Methods and apparatus for hypervisor boot up
GB2607826A (en) * 2020-02-28 2022-12-14 Nebulon Inc Automatic population of boot volumes via provided URLs
WO2022132957A1 (en) * 2020-12-15 2022-06-23 Nebulon, Inc. Cloud provisioned boot volumes
US12061911B2 (en) * 2021-03-04 2024-08-13 Dell Products L.P. Systems and methods for resource isolation for network boot using virtual machine monitor
CN113360197A (zh) * 2021-06-17 2021-09-07 西安超越申泰信息科技有限公司 一种实现iso9660文件系统的方法、系统、设备及存储介质
US20230036407A1 (en) * 2021-08-02 2023-02-02 Dell Products L.P. Systems and methods for adaptive baseline container image based on preboot context
US11995450B2 (en) * 2022-07-15 2024-05-28 Hewlett Packard Enterprise Development Lp Cloud-based provisioning of UEFI-enabled systems
CN117009003B (zh) * 2023-09-28 2024-01-09 飞腾信息技术有限公司 一种安全启动方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
CN1823513A (zh) * 2003-07-17 2006-08-23 国际商业机器公司 用于升级到基于证书的认证而不打断现有ssl会话的方法和系统
CN1842990A (zh) * 2004-05-05 2006-10-04 捷讯研究有限公司 发送安全消息的系统和方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US6266809B1 (en) * 1997-08-15 2001-07-24 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6842695B1 (en) * 2001-04-17 2005-01-11 Fusionone, Inc. Mapping and addressing system for a secure remote access system
US6993642B2 (en) * 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
EP1283464A1 (en) * 2001-08-06 2003-02-12 Hewlett-Packard Company A boot process for a computer, a boot ROM and a computer having a boot ROM
US7076796B2 (en) 2002-01-04 2006-07-11 Reeves Drue A Virtual media from a directory service
US7386711B1 (en) * 2002-01-08 2008-06-10 Cisco Technology, Inc. Method and apparatus for redirecting the boot operations of one or more systems
US20050044363A1 (en) * 2003-08-21 2005-02-24 Zimmer Vincent J. Trusted remote firmware interface
US20050071665A1 (en) * 2003-09-30 2005-03-31 Zimmer Vincent J. Methods and apparatus to associate boot objects with trust credentials
US20050149729A1 (en) 2003-12-24 2005-07-07 Zimmer Vincent J. Method to support XML-based security and key management services in a pre-boot execution environment
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US7281068B2 (en) * 2004-07-15 2007-10-09 International Business Machines Corporation Wireless-boot diskless mobile computing
JP4736370B2 (ja) * 2004-07-27 2011-07-27 株式会社日立製作所 ホスティング環境構築方法および計算機システム
US20060129797A1 (en) * 2004-12-15 2006-06-15 Palo Alto Research Center, Inc. Hardware-supported secure network boot
EP1684151A1 (en) * 2005-01-20 2006-07-26 Grant Rothwell William Computer protection against malware affection
JP4814539B2 (ja) 2005-03-10 2011-11-16 株式会社日立製作所 ネットブート方法
US7478147B2 (en) * 2005-07-21 2009-01-13 International Business Machines Corporation Method and apparatus for a secure network install
US8270947B2 (en) * 2005-12-19 2012-09-18 Motorola Solutions, Inc. Method and apparatus for providing a supplicant access to a requested service
US7668945B2 (en) 2006-08-18 2010-02-23 Intel Corporation Network booting using a platform management coprocessor
US20080082680A1 (en) 2006-09-29 2008-04-03 Karanvir Grewal Method for provisioning of credentials and software images in secure network environments
US20080155159A1 (en) * 2006-12-22 2008-06-26 Rivas Mario A Integrated communication and information processing system
US7769993B2 (en) * 2007-03-09 2010-08-03 Microsoft Corporation Method for ensuring boot source integrity of a computing system
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8260891B2 (en) * 2007-10-30 2012-09-04 Dell Products L.P. System and method for the provision of secure network boot services
US8583908B2 (en) * 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
JP2009176213A (ja) 2008-01-28 2009-08-06 Hitachi Software Eng Co Ltd ネットワークブート方式
US7865775B2 (en) * 2008-03-27 2011-01-04 Intel Corporation Remote firmware recovery
US8909940B2 (en) * 2008-06-23 2014-12-09 Intel Corporation Extensible pre-boot authentication
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)
KR101022514B1 (ko) 2008-09-22 2011-03-18 고려대학교 산학협력단 컴퓨터 원격 부팅 방법 및 시스템
US8041793B2 (en) * 2008-09-24 2011-10-18 Dell Products L.P. Boot image discovery and delivery system
US8001581B2 (en) 2008-12-17 2011-08-16 Dell Products L.P. Methods and systems for embedded user authentication and/or providing computing services using an information handling system configured as a flexible computing node
US8392895B2 (en) * 2009-01-13 2013-03-05 Mediatek Inc. Firmware extension method and firmware builder
US9176761B2 (en) * 2009-05-29 2015-11-03 Red Hat, Inc. Management of mainframe resources in pre-boot environment
US8214653B1 (en) * 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8478997B2 (en) * 2010-09-10 2013-07-02 Raytheon Company Multi-level security software architecture
US9612979B2 (en) * 2010-10-22 2017-04-04 Intel Corporation Scalable memory protection mechanism
US8719389B2 (en) * 2010-10-29 2014-05-06 Dell Products L.P. System and method for an access controller assisted boot
US8819708B2 (en) * 2011-01-10 2014-08-26 Dell Products, Lp System and method to abstract hardware routing via a correlatable identifier
US9311107B2 (en) * 2011-09-12 2016-04-12 Microsoft Technology Licensing, Llc Booting devices via the cloud
US8782387B2 (en) * 2011-12-31 2014-07-15 International Business Machines Corporation Secure boot of a data breakout appliance with multiple subsystems at the edge of a mobile data network
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
US9292312B2 (en) * 2012-03-22 2016-03-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated network boot environment for bootstrap redirection
US9385918B2 (en) * 2012-04-30 2016-07-05 Cisco Technology, Inc. System and method for secure provisioning of virtualized images in a network environment
US8726255B2 (en) * 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US10834133B2 (en) * 2012-12-04 2020-11-10 International Business Machines Corporation Mobile device security policy based on authorized scopes
US9075995B2 (en) * 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
CN1823513A (zh) * 2003-07-17 2006-08-23 国际商业机器公司 用于升级到基于证书的认证而不打断现有ssl会话的方法和系统
CN1842990A (zh) * 2004-05-05 2006-10-04 捷讯研究有限公司 发送安全消息的系统和方法

Also Published As

Publication number Publication date
EP2973147A4 (en) 2016-10-26
EP2973147B1 (en) 2019-03-27
CN105393256A (zh) 2016-03-09
WO2014158605A1 (en) 2014-10-02
EP2973147A1 (en) 2016-01-20
US20140282815A1 (en) 2014-09-18
US10205750B2 (en) 2019-02-12

Similar Documents

Publication Publication Date Title
CN105393256B (zh) 用于基于策略的安全web引导的计算设备和方法
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
US11165890B2 (en) Secure client-server communication
US11381396B2 (en) System, apparatus and method for migrating a device having a platform group
JP6782307B2 (ja) ホストされたアプリケーションへの動的アクセス
CN106599694B (zh) 安全防护管理方法、计算机系统和计算机可读取存储媒体
KR102036758B1 (ko) 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온
US20210126835A1 (en) Internet of things device discovery and deployment
US8370905B2 (en) Domain access system
US8286223B2 (en) Extensible access control architecture
US20190356542A1 (en) Internet of things gateway onboarding
CN110365701B (zh) 客户终端设备的管理方法、装置、计算设备及存储介质
WO2019092587A1 (en) Accessing gateway management console
US10623395B2 (en) System and method for directory service authentication on a service processor
US11768939B2 (en) Authentication in an update mode of a mobile device
JP2008090494A (ja) 環境移行システム、端末装置、情報処理装置、管理サーバ、可搬型記憶媒体
US11902271B2 (en) Two-way secure channels between multiple services across service groups
CN104662871A (zh) 安全地访问网络服务的方法和设备
US20240272913A1 (en) Cloud-based provisioning of uefi-enabled systems
US11481759B2 (en) Method and system for implementing a virtual smart card service
US20220360454A1 (en) Methods and devices for securing a multiple-access peripheral network
CN113505009B (zh) 基于多个子系统接入的应用服务方法和系统、计算机设备
US8291203B2 (en) Using a live operating system to set up and configure an active management technology device

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190604