用于平台引导固件的信任继续的制作方法

文档序号:9278200阅读:216来源:国知局
用于平台引导固件的信任继续的制作方法
【技术领域】
[0001] 本公开涉及设备激活活动,并且更具体地涉及用于在提供针对病毒和/或恶意软 件的安全的同时加快设备激活的系统。
[0002] 背景
[0003] 随着人们日益电子地进行个人和/或机密交易,安全继续成为考虑因素。此外,具 有恶意意图的黑客和/或其他人对绕过设备内的现有安全措施正变得日益有创造性。为了 与恶意软件和/或病毒的新的且无处不在的入侵作斗争,设备和/或软件制造商正在继续 对新的设备的硬件更内在地做出保护措施。例如,大型公司(包括苹果公司、微软公司等 等)正在开始要求执行其软件的设备提供硬件信任根(hardwarerootoftrust)。硬件信 任根可包括例如用于验证后续加载的程序文件的已知有效(例如固有地受信任的)程序文 件。硬件信任根例如可基于从只读存储器(ROM)加载的至少一个程序文件在设备激活时建 立,平台引导固件在设备内可驻留在所述只读存储器上。在硬件信任根之后加载的任何恶 意软件、病毒等等可由硬件信任根标识、禁用和/或以其他方式被防止损害设备。
[0004] 用于建立硬件信任根的现有策略包括从平台引导固件存储在其中的ROM加载并 执行至少一个程序文件以便验证后续加载的程序文件的签名。在验证文件的签名时,之前 执行的文件可认证已经基于例如生成密钥算法(诸如RSA等等)从受信任源提供后续加载 的文件。从平台引导固件ROM加载、验证和执行的每个程序文件可然后验证之后加载的程 序文件的签名等等直到从平台引导固件加载了所有的程序文件。当实现该基于签名的链方 法可确保在设备激活期间加载的所有文件都被签名并且因此有效时,存在一些缺点。当加 载每个文件时,签名增加了文件大小并且同样增加了所使用的存储器资源量。签名验证针 对每个所验证的文件要求大量的时间。当对有待从平台引导固件加载的所有文件连续地进 行签名时,这些要求都基本上增加了。这些存储器和时间要求会延迟设备启动、消极地影响 用户体验、增加设备的成本等等。
[0005]附图简要描述
[0006] 所要求保护的主题的各实施例的特征和优点将随着以下详细描述的进行并且当 参照附图时变得明显,其中相似的参考号指示相似的部件,并且在附图中:
[0007] 图1示出根据本公开的至少一个实施例的被配置成用于平台引导固件的信任继 续的示例设备;
[0008] 图2示出根据本公开的至少一个实施例的可用设备的示例配置。
[0009] 图3示出根据本公开的至少一个实施例的示例程序结构;以及
[0010] 图4示出根据本公开的至少一个实施例的用于平台引导固件的信任继续的示例 操作。
[0011] 尽管将参考说明性实施例进行以下详细描述,其许多替代、修改和变化将对本领 域普通技术人员明显。
[0012] 详细描述
[0013] 本公开涉及用于平台引导固件的信任继续。通常,设备可包括处理模块和存储器 模块,该存储器模块包括平台引导固件存储在其上的只读存储器(ROM)。在该设备被激活 时,该处理模块可加载该平台引导固件。该平台引导固件可致使该处理模块首先加载被配 置成用于加载并验证从该平台引导固件加载的散列表的签名的受信任程序文件(例如预 验证器)。该处理模块可然后从该平台引导固件加载其他文件、为每个文件计算散列并且验 证与每个程序文件相对应的散列是否在该散列表中。具有该散列表中的散列的程序文件可 被允许执行。如果与所加载的程序文件相对应的任何散列不在该散列表中,该处理模块可 执行平台特定安全动作以便防止该设备受到危害。
[0014] 在一个实施例中,设备可包括存储器模块和处理模块。
[0015] 该存储器模块可至少包括平台引导固件。该处理模块可用于当该设备被激活时加 载该平台引导固件。该平台引导固件可然后致使该处理模块例如加载散列表,为在该散列 表之后加载的平台引导固件文件计算散列以及确定所计算的平台引导固件文件散列是否 在该散列表中。
[0016] 该设备中的该存储器模块包括用于存储该平台引导固件的只读存储器。该只读存 储器可基于例如基本输入/输出系统(BIOS)、统一可扩展固件接口(UEFI)、核引导(例如 基于Linux的)系统等等存储平台引导固件。在至少一个示例实现方式中,该平台引导固 件的加载可进一步包括致使该处理模块加载预验证器文件。该预验证器文件可然后在确定 所计算的平台引导固件文件散列是否在该散列表中之前验证该散列表的签名。在一个实施 例中,该预验证器可仅用于验证该散列表的签名而不用于验证平台引导固件文件中的任一 者的签名。
[0017] 在相同或不同实施例中,加载平台引导固件文件可进一步包括致使该处理模块执 行被确定具有该散列表中的散列的平台引导固件文件。确定任何平台引导固件文件具有不 在该散列表中的散列可致使该处理模块执行安全动作(例如保护设备的完整性)。与本公 开的至少一个实施例相一致的示例方法可包括在设备被激活之后加载散列表和平台引导 固件文件、计算每个平台引导固件文件的散列以及确定每个所计算的平台引导固件文件散 列是否在该散列表中。
[0018] 图1示出根据本公开的至少一个实施例的被配置成用于平台引导固件的信任 继续的示例设备100。设备100的示例可包括但不限于:移动通信设备,诸如基于安卓 (Android) 操作系统(〇S)、i〇S?、Windows? 〇S、黑莓? 0S、掌上(Palm) ? 0S、 塞班? 0S等等的蜂窝手机或智能电话;移动计算设备,诸如平板计算机,如ipad?、 GalaxyTab?、KindleFire?等等;包括由英特尔公司制造的低功率芯片组的超极本?; 上网本计算机、笔记本计算机、膝上计算机、掌上计算机等等以及通常静态的计算设备(诸 如桌上计算机、服务器、机顶盒等等)。
[0019] 在一个实施例中,设备100可包括平台引导固件(PBF) 102。PBF102可包括例如 预验证器104、散列表108和固件程序文件112 (例如平台引导程序文件)。在一个操作示 例中,在设备激活期间,PBF102中的上述程序文件104U08和112可被加载到设备100内 (例如作为设备引导操作的一部分)。在一个实施例中,至少一些固件程序文件112可充当 设备100内的硬件信任根,因为它们可操作以便认证在设备100的正常操作期间加载的其 他程序文件。
[0020] 硬件信任根所提供的认证服务可帮助确保稍后加载的程序文件不是或不包括恶 意和/或恶毒软件(例如恶意软件),诸如广告软件、间谍软件、蠕虫、特洛伊木马、后门和/ 或能够盖写设备100内的安全措施、控制设备100、从设备100盗取信息、从设备100删除 信息等等的其他程序代码。然而,可绕过这种保护措施的一种方式是通过攻击硬件信任根。 例如,如果在硬件信任根中操作的一个或多个文件受到危害,则硬件信任根所执行的所有 文件验证和/或认证也可收到危害,使得恶意软件能够潜入和/或损坏设备300。
[0021] 鉴于这种潜在安全问题,某些设备制造商现在要求在设备100的引导过程期间认 证硬件信任根。满足这种要求的示例将发起可验证与接下来加载的文件(例如固件程序文 件112之一)相关联的签名的第一已知良好文件(例如预验证器104)。如在此所提及的, 签名验证可包括基于与文件相关联的签名使用加密方案(例如RSA公钥加密)认证文件的 来源和/或版本。新验证的固件程序文件112可然后验证链中的接下来加载的固件程序文 件112的签名等等直到所有固件程序文件已经被加载。当这种解决方案从安全的出发点而 言是有效的时候,其从时间和资源的出发点而言也是低效率的。初始地,设备100连续地验 证每个固件程序文件112的时间构成可消极地影响引导期间的设备的总体性能的足够长 的持续时间。而且,支持签名所需的附加数据可基本上增加固件程序文件112的大小,其可 消耗可以是设备100内的有限大小的只读存储器(ROM)的宝贵空间。
[0022] 在与本公开一致的实施例中,通过连续地验证每个文件签名确保从PBF102加载 的固件程序文件112的安全由基于散列的验证系统替代。如在此所提及的,散列可以是基 于程序文件的内容确定的密码串值。散列的重要特征在于:为特定文件确定的密码散列的 值将基于文件的内容的任何改变而改变是非常高的概率。结果是,基于固件程序文件112 的已知良好版本确定的散列可依赖于关于固件程序文件112的内容是否与已知良好版本 完全相同的强指示符。而且,散列相对快地确定至少何时与文件签名的验证进行比较,并且 散列确定不要求特定的安全相关数据(例如,原始数据、版本数据、安全密钥等等),因为其 仅仅基于文件的内容。鉴于以上内容,散列可以是用于标识已经被篡改或替换的固件程序 文件112的有价值的工具。
[0023] 在图1中示出的示例实现方式中,已知的良好的预验证器104可首先被加载并且 然后可根据用于认证文件源的已知方法(例如,RSA加密)验证散列表108的签名,如106 所示。散列表108可例如包括用于固件程序文件112的已知良好版本的散列值。可为由设 备100加载的每个固件程序文件112确定散列,并且这些散列可然后与存储在散列表108 中的散列进行比较,如110所示。如果与特定的固件程序文件112相对应的散列被确定位 于散列表108中,则固件程序文件112可被
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1