CN106462711A - 经验证启动 - Google Patents

经验证启动 Download PDF

Info

Publication number
CN106462711A
CN106462711A CN201580022778.5A CN201580022778A CN106462711A CN 106462711 A CN106462711 A CN 106462711A CN 201580022778 A CN201580022778 A CN 201580022778A CN 106462711 A CN106462711 A CN 106462711A
Authority
CN
China
Prior art keywords
equipment
verified
key
course
user
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
Application number
CN201580022778.5A
Other languages
English (en)
Other versions
CN106462711B (zh
Inventor
柯蒂斯·杰拉尔德·康德拉
亚德里恩·路德维格
科林·克劳斯
肯尼斯·鲁特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN106462711A publication Critical patent/CN106462711A/zh
Application granted granted Critical
Publication of CN106462711B publication Critical patent/CN106462711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

如本文所公开,可以在启动过程中利用用户提供的密钥库来验证启动映像。可以确定设备处于锁定状态或已验证的状态中。可以确定所选择的密钥库对照诸如根密钥的第一密钥没有验证通过。用户可以向设备提供密钥库。如果系统确定密钥库对照第一密钥未验证通过,则系统可以向用户显示询问用户是否希望继续启动的提示。用户可以通过指示继续启动的期望来响应该提示。该系统可以确定启动映像对照密钥库验证通过,以及完成启动所述设备。因此,所述提示可以向用户警示对启动过程或设备的完整性的威胁。

Description

经验证启动
背景技术
现代计算设备——特别是基于x86或ARM架构的那些现代计算设备具有启动过程,该启动过程从按下电源按钮来开启该设备时开始,直到该设备示出了常规操作系统或其他运行时环境为止。启动电源可以激活处理器。处理器可以从设备上的ROM读取指令集。该指令集可以包含用于使启动加载器被激活和/或将其指令加载进RAM的代码或指令。启动加载器可以指代被设计来在操作系统之前执行或操作的程序。它可以负责将用于操作系统的代码或指令置于RAM内。用于启动加载器的指令可以是由制造计算设备的原始设备制造商(“OEM”)提供的固件的组件,或者它可以是启动映像的组件。OEM所提供的固件不能由后续的用户更改(例如写入或删除),并且通常被存储在ROM中。启动加载器可以是计算设备的硬件专有的。启动加载器可以负责对来自操作系统或运行时环境所需要的启动映像的内核、服务、和核心库初始化。由启动加载器执行的对内核、根进程、服务、核心库等的初始化或激活可以出现在作为启动过程的一部分的多个阶段中。即,可以在第一阶段初始化内核,并且可以在启动过程的随后阶段中初始化根进程。
发明内容
根据所公开的主题的一个实施方式,可以确定设备处于锁定状态或已验证状态中的至少一个状态中。可以确定所选择的密钥库对照第一密钥没有验证通过。可以提供询问是否可以继续启动或不启动设备的提示。可以接收对该提示的响应,该响应指令该设备继续启动。可以确定启动映像对照密钥库验证通过,以及可以完成该设备的启动。
公开了一种设备,所述设备包括计算机可读介质、显示器和处理器。所述计算机可读介质可以被配置为存储第一密钥和密钥库中的至少一个。所述显示器可以被配置为示出提示。所述处理器可以被配置为确定所述设备处于锁定状态或已验证状态中的至少一个状态。所述处理器可以确定所选择的密钥库对照所述计算机可读介质中存储的第一密钥没有验证通过,并且提供询问所述设备是否可以基于该确定来继续启动或不启动的提示。所述处理器可以接收对于所述提示的响应,所述响应指令所述设备继续启动。所述处理器可以被配置为确定启动映像对照所述密钥库验证通过,以及完成所述设备的启动。
在一个实施方式中,根据当前公开的主题的一种系统包括装置以用于确定设备处于锁定状态或已验证状态中的至少一个状态以及确定所选择的密钥库对照第一密钥没有验证通过。响应于确定所述所选择的密钥库对照所述第一密钥没有验证通过,所述系统可以包括装置以用于提供询问所述设备是否可以继续启动或不启动的提示。所述系统可以包括装置以用于接收指令所述设备继续启动的对所述提示的响应以及确定启动映像对照所述密钥库验证通过。所述系统可以包括装置以用于完成所述设备的启动。
通过考虑下面的具体实施方式、附图、和权利要求书,所公开的主题的附加特征、优点、和实施方式可以被阐述或显而易见。此外,应当理解,前述的发明内容和下面的具体实施方式两者提供了实施方式的示例,并且意图在不限制权利要求书的范围的情况下提供进一步的解释。
附图说明
被包括以提供对所公开的主题的进一步的理解的附图被包含在本说明书中并且构成本说明书的一部分。附图也图示了所公开的主题的实施方式,并且与该具体实施方式一起用作解释所公开的主题的实施方式的原理。并不试图用比基本理解所公开的主题和可以实践所公开的主题所必要的细节更多的细节来示出结构细节。
图1示出根据所公开的主题的实施方式的计算机。
图2示出根据所公开的主题的实施方式的网络配置。
图3是根据本文所公开的实施方式的启动过程的示例概述。
图4是如本文所公开的计算机设备可以如何在锁定、解锁、和已验证之间改变其状态的示例。
图5是如本文所公开的可以允许用户对照用户提供的密钥库验证启动映像的示例过程。
图6是如本文所公开的可以允许用户对照用户提供的密钥库验证启动映像的设备的示例。
具体实施方式
在启动过程期间,可以采用验证过程来确保设备未遭受基于ROOT套件(root kit)或其他基于恶意软件的攻击,该攻击可以使用户的个人信息或身份暴露给攻击者。计算设备可以构建可信链,该可信链从启动加载器第一次初始化(例如,处理器读取来自ROM或以其他方式执行或操作的启动加载器的代码)时开始直到操作系统或运行时环境被完全加载到计算系统上。能够依赖于设备的制造者所关心的威胁的类型来以不同的方式建立可信链。例如,操作系统可以要求在整个启动过程中逐比特匹配(bit for bit matching),并且禁止用户修改启动过程的任何组成部分。这样的操作系统主要关心基于软件的攻击,而不是硬件攻击,因为潜在的攻击者不能访问这个模型中的硬件的固件。作为另一个示例,计算设备可以包括可信平台模块(“TPM”),该TPM包括处理器,该处理器生成密钥以供各个硬件组件保护硬件免受攻击。TPM可以与诸如可信链的启动加载器验证过程组合,可信链该可信链利用OEM提供的密钥来对于启动过程的每个阶段进行签名和/或验证。
密钥可以由OEM提供并且被存储在ROM或其他合适的计算机可读介质上。该密钥可以是由OEM提供的固件的组件,并且它不能被改变。该密钥可以形成用于所述设备的可信根。它可以被利用来验证启动过程的随后阶段。该随后阶段可以具有其自己的密钥,其能够被利用来验证另一个随后阶段。可以重复该过程直到操作系统或运行时环境被完全加载。
对于大多数用户,建立安全启动链的过程(例如,其中一个阶段由先前的阶段验证)将基于OEM所提供的密钥库,并且将建立可信链直到计算设备处于运行时环境中为止,OEM希望用户处于所述运行时环境。图3示出启动过程的示例概述。该计算设备可以在301处通过处理器从ROM读取启动加载器的代码开始。在310处,该系统可以确定该计算设备是否处于锁定或已验证的状态。下面将描述设备的不同状态——锁定、解锁、和已验证。大多数计算设备处于出厂的锁定或已验证状态中。因此,在320处该系统将进行确定所选择的密钥库是否对照OEM密钥验证通过。如果计算设备未被篡改,则所选择的密钥库将是OEM所提供的密钥库。例如,可以将密钥库的散列与在所述设备上的ROM中所存储的根密钥的散列相比较。如果密钥库对照根密钥验证通过,则在330处该系统将进行确定启动映像是否对照密钥库验证通过。例如,该密钥库可以包含由OEM提供的一个或多个密钥。在密钥库中的密钥可以与根密钥不同。启动映像可以被存储于在计算设备上的计算机可读介质的分区上。它可以允许与该计算设备相关联的硬件完成启动过程。启动映像可以包含操作系统、核心库、以及其他启动数据。用户数据可以被存储在计算机可读介质上与启动映像分离的独立分区中。
可以将启动映像的散列与密钥库中的一个或多个密钥相比较。如果密钥库与启动映像散列匹配,则在399处计算设备可以继续启动进入运行时环境。然而,如果密钥库和启动映像不匹配,则在335处该计算设备可以警告用户所述设备未验证通过,并且在398处启动进入恢复模式。用于恢复模式的指令可以被存储在计算设备的独立分区上,并且可以根据例如在图3中所示的过程来验证恢复分区。恢复模式可以限制用户能够采取什么动作,并且可以不加载用于操作系统或运行时环境的一个或多个核心库、服务等。例如,恢复模式可以允许用户执行所述设备的恢复出厂设置、清除(即擦除或重写)高速缓存分区、向所述设备应用更新等。在301、310、320、330、以及399处示出的过程表示如果计算设备(例如智能电话)还没有从出厂状态被改变则其会经历的典型过程。而在恢复模式中,所述系统不能访问用户数据分区或者将该用户分区复制到另一个设备或外部存储器。恢复模式不可以利用用于操作系统或运行时环境的服务和/或核心库中的一些或全部。
如上所述,设备可以存在于三个状态中的一个:锁定、解锁、或已验证。通常将具有锁定的启动加载器的设备从OEM推向市场。在一些情况下,可以将启动加载器加密。锁定状态可以指代用户不能更改启动加载器的情况。用户可以有信心:在锁定状态中的设备将提供由OEM生产的关于启动过程和操作系统或运行时环境这两者的用户体验。例如,处于锁定状态中的设备不能利用定制ROM来刷写(flash)。已验证的状态指示:对所述设备进行物理控制的用户可以执行意图改变该设备的状态的有限行为,但是不可以破坏其当前的可信链。这样的用户不可以更改根密钥、OEM密钥库、和/或用户密钥库。然而,在已验证的状态中,用户可以能够刷写(例如重写)一个或多个分区(例如启动加载器分区、启动分区、系统分区、厂商(vendor)分区、和/或恢复分区),并且/或者擦除包含用户数据的分区和/或高速缓存。解锁状态与锁定状态相反并且可以包含未由OEM提供或验证的定制ROM或启动映像。如果设备处于解锁状态,则它可以禁用对启动加载器的验证。该设备可以自由地利用定制映像来刷写,并且可能不意图被验证。例如,在图3中,在步骤310处,经解锁的设备不会处于锁定或已验证状态中,并且将出现提示来询问用户继续启动过程399还是不继续启动(即启动进入恢复模式)398。
图4示出于计算设备的可以存在的三个状态的示例:锁定410、解锁420、和已验证430。可以使设备状态在该三个状态之间改变。所有的状态转变要求对包含用户的数据的分区进行数据清除。数据清除可以指代擦除数据和/或重写数据的一部分中的一些或全部。这可以确保不能通过使设备在状态之间移动来获得用户的数据。例如,恶意用户可以获得用户的智能电话,并且该智能电话处于锁定或已验证状态。恶意用户不可以刷写存储恶意系统映像,由此允许该用户在不擦除用户的数据分区的情况下对用户的数据(例如,电影、图片、文本消息、电子邮件等)进行访问。如果不要求恶意用户清除用户数据分区,则该恶意用户在改变关于用户的数据的权限后可以在保持所改变的文件权限的同时再一次将设备转变为锁定或已验证状态。因此,可取的是在请求从一个设备状态向另一个设备状态的转变的任何时间都要求数据清除。具有改变设备状态的能力对于软件开发者或希望定制计算设备的个体可以是有用的。
如本文所公开的,可以利用用户可替换的密钥库来建立可信链。用户可以基于用户提供的密钥库来建立可信链。启动加载器可以向用户提示以警示用户密钥库已经被更改或被用户提供的密钥库替换。该提示可以向用户询问用户是否希望利用用户提供的密钥库来继续启动过程。返回图3,在步骤320处,如果用户已经替换了密钥库,则用户提供的密钥库将不能对照根密钥或OEM密钥进行验证。在325处系统可以向用户显示提示。该提示可以警示用户所选择的密钥库(例如,用户提供的密钥库)对照根密钥没有验证通过。该提示可以询问用户是否希望继续启动过程。如果用户选择不继续,则在398处系统可以使所述设备启动进入恢复模式。如果用户选择完成启动过程,则在328处系统可以尝试对照用户提供的密钥库验证启动映像。在325处系统可以将肯定响应视为用户作出了用户提供的密钥库的带外验证。用户可以继续启动,并且对照用户提供的密钥库验证启动映像。例如,开发者仍然可以从OEM以及从开发者自身获得可信链。因此,如果开发者在所述设备上刷写了定制ROM,则该开发者可以对照开发者提供的密钥库来验证该定制ROM,并且可以对照OEM密钥库或密钥验证启动加载器和/或定制ROM的OEM组件(例如,定制ROM所包含或随后被添加到定制ROM的软件程序或服务)。在一些实例下,OEM密钥库和用户提供的密钥库可以被组合为单个密钥库。即,组合的密钥库可以包含多个密钥,其中的至少一个对应于OEM提供的密钥,并且其中的至少一个对应于用户提供的密钥。如果启动映像不包含对于在密钥库中的密钥的匹配,则在335处系统可以警告用户所述设备未验证通过,并且在398处启动进入恢复模式。如果启动映像未包含对于密钥库中的密钥的匹配,则在399处系统可以继续所述设备的启动过程。
在图5中示出了本文所公开的可以允许用户对照用户提供的密钥库验证启动映像的示例过程。在510处可以确定设备处于锁定或已验证状态。例如,可以确定关于在设备上的一个或多个分区的权限(例如,启动分区、恢复分区等)还没有被更改以允许用户重写该分区。所述设备可以确定仅具有根权限的用户才能够写入到一个或多个分区。可以在开始启动过程时执行在510处的确定,该启动过程可以指代从激活计算设备——诸如按压智能电话上的电源按钮时开始直到操作系统或运行时环境能够接收用户交互。
在启动过程期间,在520处可以确定所选择的密钥库对照第一密钥未验证通过。密钥库可以包括可以被利用来验证启动映像(例如定制ROM)的一个或多个密钥。如上所述,用户可以向设备提供密钥库。例如,开发者(例如用户)可能期望在智能电话上安装定制ROM。该定制ROM可以是启动映像或系统映像。该定制ROM可以包括密钥库(作为独立的组件或被包含在其中)或者在用户的请求和/或认可下向现有的密钥库添加一个或多个密钥。第一密钥可以是根密钥或OEM密钥。第一密钥可以是仅其上存储该第一密钥的计算设备所知的字母数字代码。例如,作为用于验证密钥库的过程的一部分该计算设备可以读取第一密钥。OEM启动映像可以是对照原始密钥库或OEM密钥库验证通过的唯一映像,该原始密钥库或OEM密钥库进而可以对照根密钥进行验证。如果系统确定所选择的密钥库对照第一密钥没有验证通过,则在530处系统可以向用户显示提示,该提示询问用户是否希望继续启动过程。用户可以通过提供该用户希望拒绝使系统能够继续启动过程的指示来对该提示作出响应,这可以使得所述系统进入恢复模式。例如,用户可能未安装定制密钥库或近期尝试过安装定制启动映像。因此,所述提示可以警示用户破坏用户对所述设备的控制的企图或其他类似的攻击可能在进行中。用户可以通过指示期望继续启动过程来响应于在530处的提示。在这样的情况下,在540处所述系统可以继续启动过程。用户对于所选择的密钥库的认可可以使得用户能够得到关于系统和其后提供的服务的真实性的保证——如果这样的系统和服务对照所选择的密钥库验证通过,该所选择的密钥库现在可以包括用户提供(即选择)的密钥库。在550处所述系统可以确定启动映像对照所选择的密钥库验证通过。例如,如果用户尝试在用户的智能电话上安装定制ROM,则所述系统可以将该制ROM的密钥或散列与所选择的密钥库中的密钥进行比较。如果存在匹配,则在560处所述系统可以使用启动映像来完成所述设备的启动过程。例如,所述系统可以加载服务和/或核心库,该服务和/或核心库使得操作系统或运行时环境能够被最终用户使用和/或与最终用户交互。
第一密钥可以被存储在不能被修改的计算机可读介质上。例如,如之前所述,OEM可以提供根密钥,该根密钥可以是启动过程的验证的第一阶段的基础。如本文所公开的,如果用户同意继续启动过程(例如参见步骤530),则未能匹配第一密钥可以不致使启动过程失败。一旦计算机可读介质已经被写入第一密钥,则计算机可读介质不可以被重写或存取。诸如智能电话的设备可以具有如ROM的计算机可读介质(或其他合适的介质),并且它可以包含第二计算机可读介质,其上存在启动映像。该启动映像或系统映像可以由OEM提供。它可以向设备的用户提供OEM所意图的操作环境。启动映像可以存在于第二计算机可读介质的分区上。诸如恢复分区、用户数据分区、启动分区等的其他分区也可以存在于第二计算机可读介质上。
如之前所述,为了确保不能利用恶意映像来获得对最终用户的个人数据的访问,所述系统可以要求在期望在所述设备上使用新的启动映像的任何时间清除所述设备的用户分区。在清除用户分区之后,可以向所述设备刷写新的映像,并且可以确定所选择的密钥库对照第一密钥验证通过。启动映像可以包括原始密钥库。例如,原始密钥库可以是起初随设备一起的密钥库并且其可以验证通过该密钥。类似地,新的启动映像可以是出厂启动映像或OEM启动映像,并且其可以对照密钥库验证通过(例如参见图3步骤330),并且所述设备可以完成所述设备的启动过程。在一些实例下,新的启动映像可能对照原始密钥库没有验证通过,并且所述设备或系统可以提供指示所述设备未验证通过的警告。例如,这可能出现在用户所刷写的启动映像包含恶意软件,并且包含该恶意软件使得启动映像的散列不类似于密钥库中所存储的散列。如果启动映像不能被验证通过,则所述设备可以启动进入恢复模式以阻止所述设备安装未验证通过的映像。新的启动映像也可以是定制的启动映像(例如不是由OEM制造的启动映像)。
在在一个实施方式中,其示例被提供在图6中,公开了设备。该设备——在图6中示出了其组件的一部分——可以包括计算机可读介质610、显示器630、和处理器620。计算机可读介质可以存储如之前所述的第一密钥和所选择的密钥库中的至少一个。当制造所述设备时,第一密钥可以已经被写入640到计算机可读介质610。第一密钥可以是OEM提供的密钥或根密钥。在一些配置中,计算机可读介质610在启动过程后不可以被访问。所选择的密钥库可以是OEM密钥库(即设备制造商提供的密钥库)或者定制密钥库或用户提供的密钥库。不必同时地,可以在所述设备上的电源按钮(或用于接通所述设备的其他机构)被按压或激活之后激活显示器630和处理器620。例如,显示器630可以被配置为在启动过程的一个或多个阶段处示出提示。处理器620可以被配置为确定在之前所述的启动过程的开始时所述设备如之前所述处于锁定状态或已验证状态中的至少一个状态。在所述设备的启动过程期间,可以确定所选择的密钥库(例如,OEM密钥库和/或用户提供的密钥库)对照可以被存储在计算机可读介质中的第一密钥没有验证通过。处理器620可以指令显示器630示出提示,如上所述该提示询问所述设备是否可以继续启动过程。可以由处理器620接收例如通过在显示器上的触摸输入、键盘输入、或外围设备(例如鼠标)输入作出的响应。处理器620可以接收对该提示的响应,该响应命令所述设备继续启动过程。处理器620可以确定启动映像对照密钥库验证通过,并且使用该启动映像来完成所述设备的启动过程。
当前所公开的主题的实施方式可以被实现在多种组件和网络架构中并且与其一起使用。图1是适合于实现当前所公开的主题的示例计算机20。计算机20包括总线21,其将计算机20的主要组件互连,该主要组件诸如:中央处理器24;存储器27(通常为RAM,但是其也可以包括ROM、闪速RAM等);输入/输出控制器28;用户显示器22,诸如经由显示适配器的显示屏;用户输入接口26,其可以包括一个或多个控制器和相关联的用户输入设备,诸如键盘和鼠标等,并且总线21可以紧密地耦合至I/O控制器28;固定存储23,诸如硬盘驱动器、闪速存储、光纤通道网络、SAN设备、SCSI设备等;以及,可移动介质组件25,其可操作以控制和接收光盘、闪速驱动器等。
如先前所指出,总线21允许在中央处理器24和存储器27之间的数据通信,存储器27可以包括只读存储器(ROM)或闪速存储器(都未示出)、以及随机存取存储器(RAM)(未示出)。RAM一般是主存储器,其中加载操作系统和应用程序。除了其他代码之外,ROM或闪速存储器也能够包含基本输入输出系统(BIOS),其控制基本硬件操作,诸如与外围组件的交互。驻留在计算机20的应用通常被存储在计算机可读介质上并且经由计算机可读介质被访问,该计算机可读介质诸如硬盘驱动器(例如,固定存储23)、光学驱动器、软盘、或其他存储介质25。
固定存储23可以与计算机20集成在一起,或者可以是单独的并且可以通过其他接口来被访问。网络接口29可以提供:经由电话链路至远程服务器的直接连接、经由互联网服务供应商(ISP)至互联网的直接连接、或者经由直接网络链路至远程服务器的直接连接、经由POP(入网点)或其他技术至互联网的直接连接。网络接口29可以使用无线技术来提供这样的连接,所述无线技术包括:数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。例如,如在图2中示出的,网络接口29可以允许计算机经由一个或多个局域网、广域网、或其他网络来与其他计算机进行通信。
许多其他设备或组件(未示出)可以以类似的方式连接(例如文档扫描器、数字相机等)。相反,不需要提供在图1中所示的组件中的全部来实践本公开。可以以与所示出的方式不同的方式来将组件互连。诸如在图1中所示的计算机的操作在本领域中易于得知,并且未在本申请中被详细讨论。用于实现本公开的代码能够被存储在计算机可读存储介质中,诸如存储在存储器27、固定存储23、可移动介质25中的一个或多个中,或者存储在远程存储位置上。
图2示出根据所公开的主题的实施方式的示例网络布置。诸如本地计算机、智能电话、平板计算设备等的一个或多个客户端10、11可以经由一个或多个网络7来连接至其他设备。网络可以是局域网、广域网、互联网、或者任何其他合适的一个或多个通信网络,并且可以被实现在包括有线和/或无线网络的任何合适的平台上。客户端可以与一个或多个服务器13和/或数据库15进行通信。所述设备可以由客户端10、11来直接访问,或者一个或多个其他设备可以提供中间访问,诸如在服务器13提供对数据库15中所存储的资源的访问的情况下来访问。客户端10、11也可以访问远程平台17或由远程平台17提供的服务,诸如云计算布置和服务。远程平台17可以包括一个或多个服务器13和/或数据库15。
更一般而言,当前公开的主题的各个实施方式可以包括计算机实现的过程和用于实践那些过程的设备或以其形式来被实现。实施方式也可以以具有计算机程序代码的计算机程序产品的形式来实现,该计算机程序代码包含在非暂时性和/或有形介质——诸如软盘、CD-ROM、硬盘驱动器、USB(通用串行总线)驱动器、或者任何其他机器可读存储介质——中包含的指令,其中当计算机程序代码被加载到计算机内并且被计算机执行时,该计算机成为用于实践所公开的主题的实施方式的设备。实施方式也可以以计算机程序代码的形式来被实现,例如,不论该计算机程序代码被存储在存储介质中、被加载到计算机和/或由计算机执行、还是通过某些传输介质被传送——诸如通过电布线或电缆、通过光纤、或者经由电磁辐射来传送,其中,当计算机程序代码被加载到计算机内并且由计算机执行时,该计算机成为用于实践所公开的主题的实施方式的装置。当在通用微处理器上被实现时,计算机程序代码段将微处理器配置为创建专用逻辑电路。在一些配置中,在计算机可读存储介质上存储的计算机可读指令集可以由通用处理器来实现,该计算机可读指令集可以将通用处理器或包含通用处理器的设备变换为专用设备,该专用设备被配置为实现或执行指令。可以使用硬件来实现实施方式,该硬件可以包括诸如通用微处理器和/或专用集成电路(ASIC)的处理器,其以硬件和/或固件来实现根据所公开的主题的实施方式的技术中的全部或部分。处理器可以耦合至存储器,诸如RAM、ROM、闪速存储器、硬盘或者能够存储电子信息的任何其他设备。存储器可以存储指令,该指令适于由处理器执行以执行根据所公开的主题的实施方式的技术。
在所公开的主题的实施方式收集关于用户的个人信息或者可以利用个人信息的情境下,可以向用户提供机会来控制程序或特征是否收集用户信息(例如,用户的表现分值、用户的工作产品、用户提供的输入、用户的地理位置、以及与用户相关联的任何其他类似的数据),或者控制是否和/或如何从可能与用户更为相关的教学课程提供者接收教学课程内容。此外,某些数据可以在其被存储或使用之前被以一个或多个方式处理,使得个人可识别信息被去除。例如,可以处理用户的身份以使得不能确定用户的个人可识别信息,或者可以在获得位置信息的情况下将与教学课程相关联的用户地理位置一般化(诸如到城市、ZIP代码、或州级别),使得不能确定用户的具体位置。因此,用户可以控制教学课程提供者收集和使用关于用户的信息的方式。
处于解释的目的,已经参照具体实施方式描述了前述的说明书。然而,上面的说明性讨论不意图穷尽或者将所公开的主题的实施方式限于所公开的确切形式。鉴于上面的教导,许多修改和变型都是可能的。实施方式被选择和描述以便解释所公开的主题的实施方式的原理及其实际应用,由此使得本领域技术人员能够利用那些实施方式以及具有各种可以适于所设想的特定用途的各个修改的各个实施方式。

Claims (14)

1.一种计算机实现的方法,包括:
在开始启动过程时确定设备处于锁定状态或已验证状态中的至少一个状态,其中所述启动过程对应于从所述设备被激活开始直到运行时环境在所述设备上操作的时间;
在所述启动过程期间确定包括用于启动映像的多个密钥的所选择的密钥库对照第一密钥没有验证通过,其中所述第一密钥包括仅所述计算设备所知的字母数字代码;
响应于确定所述所选择的密钥库对照所述第一密钥没有验证通过而提供提示,所述提示询问所述设备是否能够继续启动过程;
接收对所述提示的响应,所述响应指令所述设备继续所述启动过程;
在所述启动过程期间确定所述启动映像对照所述所选择的密钥库验证通过;以及
使用所述启动映像来完成所述设备的所述启动过程。
2.根据权利要求1所述的方法,其中,所述设备包括计算机可读介质,所述计算机可读介质存储所述第一密钥,并且其中,所述计算机可读介质在其被写入之后不能被修改。
3.根据权利要求1所述的方法,其中,所述设备包括与所述启动映像不同的出厂启动映像。
4.根据权利要求1所述的方法,进一步包括:
清除所述设备的用户分区;
向所述设备刷写包括原始密钥库的新启动映像;以及
确定所述原始密钥库对照所述第一密钥验证通过。
5.根据权利要求4所述的方法,进一步包括:
确定所述新启动映像对照所述原始密钥库验证通过;以及
完成所述设备的所述启动过程。
6.根据权利要求4所述的方法,进一步包括:
确定所述新启动映像对照所述原始密钥库没有验证通过;以及
提供所述设备未验证通过的警告。
7.根据权利要求6所述的方法,进一步包括将所述设备启动进入恢复模式。
8.一种设备,包括:
计算机可读介质,所述计算机可读介质被配置为存储第一密钥和所选择的密钥库,其中,所述第一密钥包括仅所述设备所知的字母数字代码,并且其中,所述所选择的密钥库包括用于启动映像的多个密钥;
显示器,所述显示器被配置为示出提示;
处理器,所述处理器被配置为:
在开始启动过程时确定所述设备处于锁定状态或已验证状态中的至少一个状态,其中所述启动过程对应于从所述设备被激活开始直到运行时环境在所述设备上操作的时间;
在所述设备的所述启动过程期间确定所选择的密钥库对照所述第一密钥没有验证通过;
响应于确定所述所选择的密钥库对照所述第一密钥没有验证通过而提供所述提示,所述提示询问所述设备是否能够继续所述启动过程;
接收对所述提示的响应,所述响应指令所述设备继续所述启动过程;
在所述启动过程期间确定启动映像对照所述所选择的密钥库验证通过;以及
使用所述启动映像来完成所述设备的所述启动过程。
9.根据权利要求8所述的设备,其中,在计算机可读介质上存储的所述第一密钥在其被写入后不能被修改。
10.根据权利要求8所述的设备,其中,所述设备包括与所述启动映像不同的出厂启动映像。
11.根据权利要求8所述的设备,所述处理器进一步被配置为:
清除所述设备的用户分区;
向所述设备刷写包括原始密钥库的新启动映像;以及
确定所述原始密钥库对照所述第一密钥验证通过。
12.根据权利要求11所述的设备,所述处理器进一步被配置为:
确定所述新启动映像对照所述原始密钥库验证通过;以及
完成所述设备的所述启动过程。
13.根据权利要求11所述的设备,所述处理器进一步被配置为:
确定所述新启动映像对照所述原始密钥库没有验证通过;以及
提供所述设备未验证通过的警告。
14.根据权利要求13所述的设备,进一步包括将所述设备启动进入恢复模式。
CN201580022778.5A 2014-05-02 2015-04-29 经验证启动 Active CN106462711B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/268,486 2014-05-02
US14/268,486 US9195831B1 (en) 2014-05-02 2014-05-02 Verified boot
PCT/US2015/028151 WO2015168211A1 (en) 2014-05-02 2015-04-29 Verified boot

Publications (2)

Publication Number Publication Date
CN106462711A true CN106462711A (zh) 2017-02-22
CN106462711B CN106462711B (zh) 2019-07-05

Family

ID=53059529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580022778.5A Active CN106462711B (zh) 2014-05-02 2015-04-29 经验证启动

Country Status (4)

Country Link
US (2) US9195831B1 (zh)
EP (1) EP3138041B1 (zh)
CN (1) CN106462711B (zh)
WO (1) WO2015168211A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195831B1 (en) * 2014-05-02 2015-11-24 Google Inc. Verified boot
US9971659B1 (en) * 2015-06-24 2018-05-15 Western Digital Technologies, Inc. Memory programming providing corruption protection
DE102015119802A1 (de) 2015-11-16 2017-05-18 Weidmüller Interface GmbH & Co. KG Verfahren zum Laden eines sicheren Speicherabbilds eines Mikrocontrollers und Anordnung mit einem Mikrocontroller
US10528739B2 (en) * 2016-04-20 2020-01-07 Sophos Limited Boot security
CN110168552B (zh) 2017-01-12 2023-09-08 谷歌有限责任公司 经验证的引导和密钥轮转的方法、设备、系统和介质
US11016852B1 (en) * 2017-05-10 2021-05-25 Juniper Networks, Inc. Guarded mode boot up and/or recovery of a network device
US11074348B2 (en) 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
US11023587B2 (en) * 2018-06-03 2021-06-01 Apple Inc. External trust cache
US20210216640A1 (en) * 2020-01-10 2021-07-15 Dell Products L.P. Systems and methods for hardware root of trust with protected redundant memory for authentication failure scenarios
TW202240591A (zh) * 2021-04-02 2022-10-16 美商谷歌有限責任公司 唯讀記憶體(rom)安全性

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1273996A2 (en) * 2001-07-06 2003-01-08 Texas Instruments Incorporated Secure bootloader for securing digital devices
CN1541352A (zh) * 2001-06-15 2004-10-27 ��˹��ŵ�� 一种保护电子装置的方法,保护系统及电子装置
US7191328B2 (en) * 2004-07-20 2007-03-13 Hewlett-Packard Development Company, L.P. System and method for using an extensible firmware interface (EFI) utility to build an EFI layer between an operating system and a legacy basic input/output system during a boot process
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备
CN103713915A (zh) * 2012-09-29 2014-04-09 联想(北京)有限公司 系统启动方法和电子设备
CN103761329A (zh) * 2014-02-08 2014-04-30 广东欧珀移动通信有限公司 一种对移动设备进行刷机的方法及其装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826015A (en) * 1997-02-20 1998-10-20 Digital Equipment Corporation Method and apparatus for secure remote programming of firmware and configurations of a computer over a network
US6477648B1 (en) * 1997-03-23 2002-11-05 Novell, Inc. Trusted workstation in a networked client/server computing system
US6625730B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
US7093161B1 (en) * 2002-08-16 2006-08-15 Onspec Electronic, Inc. Software recovery method for flash media with defective formatting
US6907522B2 (en) 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
WO2005026951A1 (en) * 2003-09-18 2005-03-24 Aristocrat Technologies Australia Pty Ltd Bios protection device
US7870376B2 (en) * 2004-03-23 2011-01-11 International Business Machines Corporation System, method and program product for controlling access to computer system
US7694121B2 (en) 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US7568225B2 (en) * 2004-09-08 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for remote security enablement
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
KR101393307B1 (ko) 2007-07-13 2014-05-12 삼성전자주식회사 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8812854B2 (en) * 2009-10-13 2014-08-19 Google Inc. Firmware verified boot
JP5647332B2 (ja) 2010-04-12 2014-12-24 インターデイジタル パテント ホールディングス インコーポレイテッド ブートプロセスでのリリースの段階化された制御
US8300831B2 (en) * 2010-04-26 2012-10-30 International Business Machines Corporation Redundant key server encryption environment
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
CN103299311B (zh) 2011-12-29 2015-04-29 英特尔公司 用于可信引导优化的方法和设备
EP2746982B1 (en) * 2012-12-22 2018-05-09 Samsung Electronics Co., Ltd Method and apparatus for supporting dynamic change of authentication means for secure booting
US9239920B2 (en) * 2013-04-23 2016-01-19 Qualcomm Incorporated Generation of working security key based on security parameters
US9922210B2 (en) * 2013-04-29 2018-03-20 Sri International Componentized provisioning
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
US9195831B1 (en) * 2014-05-02 2015-11-24 Google Inc. Verified boot

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1541352A (zh) * 2001-06-15 2004-10-27 ��˹��ŵ�� 一种保护电子装置的方法,保护系统及电子装置
EP1273996A2 (en) * 2001-07-06 2003-01-08 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7191328B2 (en) * 2004-07-20 2007-03-13 Hewlett-Packard Development Company, L.P. System and method for using an extensible firmware interface (EFI) utility to build an EFI layer between an operating system and a legacy basic input/output system during a boot process
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备
CN103713915A (zh) * 2012-09-29 2014-04-09 联想(北京)有限公司 系统启动方法和电子设备
CN103761329A (zh) * 2014-02-08 2014-04-30 广东欧珀移动通信有限公司 一种对移动设备进行刷机的方法及其装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GOOGLE CHROME OS: "Developer Mode一The Chromium", 《HTTP://WWW.CHROMIUM.ORG/CHROMIUM一OS/CH》 *
JONATHAN CORBET: "dm一verity [LWN .net]", 《HTTPS://LWN.NET/ARTICLES/459420/》 *

Also Published As

Publication number Publication date
US9710652B1 (en) 2017-07-18
WO2015168211A1 (en) 2015-11-05
EP3138041B1 (en) 2019-07-10
EP3138041A1 (en) 2017-03-08
US9195831B1 (en) 2015-11-24
CN106462711B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN106462711A (zh) 经验证启动
KR102347562B1 (ko) 보안 제어 방법 및 컴퓨터 시스템
US11151255B2 (en) Method to securely allow a customer to install and boot their own firmware, without compromising secure boot
US8522018B2 (en) Method and system for implementing a mobile trusted platform module
EP2017765B1 (en) System and method for out-of-band assisted biometric secure boot
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
CN109684849B (zh) 信息处理装置、其控制方法和存储介质
US8201239B2 (en) Extensible pre-boot authentication
TWI380216B (en) System and method for automated operating system installation
RU2640653C2 (ru) Сетевое управление наборами защищенных данных
KR102358470B1 (ko) 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
US10841318B2 (en) Systems and methods for providing multi-user level authorization enabled BIOS access control
US11907386B2 (en) Platform root-of-trust system
KR102195344B1 (ko) Usb 저장 매체를 이용하는 컴퓨터용 보안 시스템 및 방법
US11316694B2 (en) Cryptographic hardware watchdog
US10019577B2 (en) Hardware hardened advanced threat protection
WO2007132122A1 (fr) Procede et dispositif de configuration securisee d'un terminal au moyen d'un dispositif de stockage de donnees de demarrage
US11106781B2 (en) Secondary OS device unlocking system
TWI581187B (zh) 傳送用以安裝作業系統之資料影像的技術
US10296730B2 (en) Systems and methods for automatic generation and retrieval of an information handling system password
CN112613011A (zh) U盘系统认证方法、装置、电子设备及存储介质
Bae et al. Spacelord: Private and secure smart space sharing
WO2016024967A1 (en) Secure non-volatile random access memory
US11409541B2 (en) Systems and methods for binding secondary operating system to platform basic input/output system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant