CN103765429B - 数字签名机构相关的平台秘密 - Google Patents

数字签名机构相关的平台秘密 Download PDF

Info

Publication number
CN103765429B
CN103765429B CN201280041444.9A CN201280041444A CN103765429B CN 103765429 B CN103765429 B CN 103765429B CN 201280041444 A CN201280041444 A CN 201280041444A CN 103765429 B CN103765429 B CN 103765429B
Authority
CN
China
Prior art keywords
equipment
secret
list
digital signature
assembly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280041444.9A
Other languages
English (en)
Other versions
CN103765429A (zh
Inventor
S.托姆
R.K.斯皮格
M.B.G.尼斯特伦
D.R.伍滕
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN103765429A publication Critical patent/CN103765429A/zh
Application granted granted Critical
Publication of CN103765429B publication Critical patent/CN103765429B/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers

Abstract

根据一个或多个方面,生成设备的固件环境的配置的表示。该设备的秘密被获得,并且基于该设备的固件环境配置表示和秘密二者生成平台秘密。一个或多个密钥可以基于该平台秘密被生成。

Description

数字签名机构相关的平台秘密
背景技术
计算机已经变得日益普遍并且经常被用来存储计算机用户希望保密的数据。然而,能够实行多种不希望的行动的恶意程序可能将计算机作为攻击的目标,这些不希望的行动诸如是访问用户希望保密的数据之类。保护计算机不受这样的恶意程序攻击仍然是难点。
发明内容
提供本发明内容是用以以简化的形式介绍将在下面的具体实施方式进一步描述的概念的选集。本发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
根据一个或多个方面,生成设备的固件环境的配置的表示。设备的秘密被获得,并且基于设备的固件环境配置表示和秘密二者生成平台秘密。
根据一个或多个方面,至少部分地基于设备的秘密和设备的固件环境的配置的表示二者所生成的平台秘密被获得。基于该平台秘密,一个或多个密钥被生成。
附图说明
相同的标号在全部附图中被用来提及相近的特征。
图1图示了根据一个或多个实施例的实现数字签名机构相关的平台秘密的示例设备。
图2图示了根据一个或多个实施例的实现数字签名机构相关的平台秘密的示例系统。
图3图示了根据一个或多个实施例的机构的示例列表。
图4图示了根据一个或多个实施例的机构的另一示例列表。
图5是图示了根据一个或多个实施例的用于生成数字签名机构相关的平台秘密的示例过程的流程图。
图6是图示了根据一个或多个实施例的用于使用数字签名机构相关的平台秘密的示例过程的流程图。
图7图示了根据一个或多个实施例的能够被配置成实现数字签名机构相关的平台秘密的示例计算设备。
具体实施方式
本文讨论了数字签名机构相关的平台秘密。在启动设备的过程期间,在设备上加载一个或多个固件组件并且生成该设备的固件环境的配置的表示。固件环境配置表示可以采取诸如机构的列表中的一个或多个之类的各种形式,所述机构的列表包含对被加载的固件组件中的至少一个进行了数字签名(或本来会进行数字签名)的每个机构的标识符、被准许修改能够对组件进行数字签名的可接受机构列表的机构的标识、标识不被准许验证组件的机构的撤销记录和/或不被准许加载的特定组件的标识符、对操作系统加载器进行了数字签名的机构的标识符等等。设备的秘密也被获得,其典型地是被包含在设备的处理器或其它部分中的密钥。所述固件环境配置表示与设备的秘密组合来生成平台秘密。该平台秘密然后能够被用作用于生成由该设备使用的密钥或其它值的基础。因此这样的密钥或其它值被束缚于特定设备(基于设备的秘密)和(正如被机构的列表所标识的)对已加载的固件组件进行了数字签名的机构。
在本文中参考了对称密钥密码学、公开密钥密码学和公开/私有密钥对。尽管这样的密钥密码学对本领域技术人员是公知的,但是在这里包含了这样的密码学的简要概述以帮助读者。在公开密钥密码学中,实体(诸如用户、硬件或软件组件、设备、域等等)具有与它相关联的公开/私有密钥对。可以使公开密钥公开地可用,但是该实体保密私有密钥。在没有私有密钥的情况下解密使用公开密钥加密的数据在计算上非常困难。因此,数据能够由具有公开密钥的任何实体加密并且仅仅能够由具有对应的私有密钥的实体解密。此外,用于数据的数字签名能够通过使用该数据和私有密钥来生成。在没有私有密钥的情况下创建能够使用公开密钥来验证的签名在计算上非常困难。具有公开密钥的任何实体能够通过在公开密钥、签名和进行了签名的数据上执行适合的数字签名验证算法来使用公开密钥以验证数字签名。
另一方面,在对称密钥密码学中,共享密钥(也被称为对称密钥)由两个实体知晓并且保密。具有共享密钥的任何实体典型地能够解密用该共享密钥加密的数据。在没有共享密钥的情况下解密用共享密钥加密的数据在计算上非常困难。因此,如果两个实体二者知晓共享密钥,则每一个都能够加密能够被另一个解密的数据,但是如果其它实体不知晓共享密钥则其它实体不能够解密该数据。类似地,具有共享密钥的实体能够加密能够被相同实体解密的数据,但是如果其它实体不知晓共享密钥则其它实体不能够解密该数据。此外,能够基于对称密钥密码学生成数字签名,诸如通过使用带密钥的散列消息认证码机制。具有共享密钥的任何实体能够生成并且验证数字签名。例如,可信第三方能够基于特定实体的身份生成对称密钥,并且然后能够为该特定实体既生成又验证数字签名(例如通过使用对称密钥加密或解密数据)。
图1图示了根据一个或多个实施例的实现数字签名机构相关的平台秘密的示例设备100。设备100可以是多种不同类型的设备,诸如物理设备或虚拟设备。例如,设备100可以是诸如台式计算机、服务器计算机、膝上型或上网本计算机、平板或笔记本计算机、移动站、娱乐装置、通信耦合到显示设备的机顶盒、电视或其它显示设备、蜂窝式或其它无线电话、游戏机、车载计算机等等之类的物理设备。设备100同样可以是诸如运行在物理设备上的虚拟机之类的虚拟设备。虚拟机可以被运行在任何类型各不相同的物理设备上(例如上面所列出的各种类型中的任何一个)。因此,设备100的范围可以从具有显著存储器和处理器资源的全资源设备(例如个人计算机、游戏机)到具有有限存储器和/或处理资源的低资源设备(例如传统的机顶盒、手持式游戏机)。
当对设备100通电或者否则重置时,设备100启动。设备100的启动指的是设备100的开始操作,典型地指加载和执行设备100的操作系统。设备100的启动典型地包含至少两个阶段。在第一阶段中,预操作系统环境的组件被加载在设备100上并运行。在预操作系统环境中,各种组件或模块运行包含启动操作系统的各种操作的执行处理。在第二阶段中,操作系统环境的组件被加载在设备100上并运行。在操作系统环境中,操作系统在设备100上运行。
组件的加载指的是将组件复制到易失性存储器(或者可替换地,非易失性存储器)中,并且可选地实行对其它组件或数据存储的附加配置。执行组件指的是设备100的处理器或控制器对组件的指令的运行(或执行)。在设备100被启动之后,各种其它的程序能够由操作系统在设备100上运行。
在启动过程期间,固件102被设备100加载并执行。固件102可以从诸如设备100的非易失性存储器、耦合到设备100的可移动媒体、(例如经由网络)耦合到设备100的另一设备等等之类的各种源获得。固件102加载并且执行操作系统加载器104。操作系统加载器104加载并执行操作系统内核106。操作系统内核106然后能够继续加载并执行各种附加的操作系统组件和/或用户模式组件。这些操作系统组件和用户模式组件能够响应于用户要执行这样的组件的请求或响应于来自另一组件或模块的请求而被执行。
在安全启动配置中,固件102包含在被加载前(和/或在被执行前)被验证的多个组件。可以以不同的方式验证组件,诸如通过验证该组件已经由可接受的机构进行了数字签名、验证该组件没有被标识为被禁止加载、验证该组件具有各种特征或属性等等。正如本文所使用的,机构指的是生成数字签名的实体,诸如组件的出版方或发行方、可信的第三方、组件的转销方等等。策略112包含指示固件102的哪些组件能够被加载和/或被执行的准则,并且被用来在被加载和/或被执行前验证固件102的组件。策略112能够包含各种准则,诸如标识能够对组件进行数字签名的可接受机构的列表(或从中能够获得列表的位置)、标识被禁止加载的组件的列表(或从中能够获得列表的位置)等等。
设备100还包含平台秘密生成模块114。模块114生成基于特定设备100和设备100的固件环境配置的表示二者的平台秘密。固件环境配置表示可以包含例如对固件102的组件进行了数字签名(或者本来会进行数字签名)的机构的列表、被准许修改策略112中能够对组件进行数字签名的可接受机构列表的机构的标识、标识不被准许验证固件102的组件的机构的撤销记录和/或不被准许加载为固件102的特定组件的标识符、对操作系统加载器104进行了数字签名的机构的标识符等等。平台秘密是束缚于设备与设备的固件环境配置表示的特定组合的秘密值。固件环境配置表示和平台秘密的生成在下文中以更加详细的方式讨论。
在一个或多个实施例中,固件102和操作系统加载器104被实现为预执行环境(也被称为预启动环境或预操作系统环境)的一部分,所述预执行环境指的是在操作系统已经完成启动并且执行运行之前在设备100上运行的环境。在这样的实施例中,固件102和操作系统加载器104能够被存储在设备100上(例如在只读存储器(ROM)或闪速(Flash)存储器中),诸如存储在设备100的网络接口卡上。可替换地,固件102和操作系统加载器104能够在预执行环境期间从另一设备或服务获得。例如,固件102和操作系统加载器104能够作为从另一设备或服务提供给设备100的启动图像的一部分被包含。
可以以各种不同的方式并且可以基于各种不同的常规技术来实现预执行环境。例如,可以根据统一的可扩展固件接口(UEFI)标准版本2.3或其它版本实现预执行环境。作为另一示例,可以根据预启动执行环境(PXE)标准版本2.0或其它版本实现预执行环境。作为又一示例,可以使用各种不同的个人计算机基本输入/输出系统(BIOS)版本实现预执行环境。
图2图示了根据一个或多个实施例的实现数字签名机构相关的平台秘密的示例系统200。系统200(可选地除了可用组件204之外)作为诸如图1的设备100之类的设备的一部分被包含。在启动过程期间,可用组件202中所选择的那些被加载为固件组件204。可用组件202是能够被获得并加载为固件组件204的那些组件,尽管并不是所有的可用组件202都需要被实际地加载为固件组件204。可以以不同的方式标识哪些可用组件202被加载为固件组件204,诸如基于什么硬件被包含为系统200的实现设备的一部分或者被耦合到该设备、基于固件组件204的特定一些组件的配置等等。所选择的可用组件202可以如上文所讨论的从本地存储设备、其它设备和服务等等获得。
可用组件202在被加载为固件组件204之前被验证。在一个或多个实施例中,特定组件(例如被加载的初始组件)管理其它加载的固件组件204的验证。该特定组件可例如被存储在非可写存储设备上或否则以保护该组件不被篡改的方式被存储。可替换地,多个固件组件204能够管理其它加载的固件组件204的验证。例如,初始的组件可被存储在非可写存储设备上或否则以保护该组件不被篡改的方式被存储,并且该初始组件能够验证和加载一个或多个附加的固件组件204。那些一个或多个附加的固件组件204中的每一个进而能够验证和加载一个或多个其它的固件组件204等等。
策略206包含用于验证固件的组件204的各种准则。在一个或多个实施例中,策略206包含可接受的机构的记录以及撤销记录(被撤销或否则不可接受的机构和/或组件的记录)。这些记录可以采取各种形式,诸如一个或多个列表、一个或多个数据库等等。可接受机构的记录包含被准许验证组件的机构的标识符。撤销记录包含不被准许验证组件的机构的标识符和/或不被准许加载的特定组件的标识符。机构的标识符(不论是可接受的还是被撤销的)可以采取各种形式,诸如机构的公开密钥、锁在该机构的公开密钥上的公开密钥等等。特定组件的标识符同样可以采取各种形式,诸如通过对组件应用散列函数生成的散列值。
如果组件没有被可接受的机构进行数字签名,而是被标识在撤销记录中的机构进行了签名,和/或该组件的标识符被包含在撤销记录中,则该组件不被验证。如果组件被可接受的机构进行了数字签名,则该组件被验证(除非对该组件进行了数字签名的机构同样被标识在撤销记录中,和/或该组件的标识符被包含在撤销记录中)。
固件环境配置表示208被生成,其指示系统200的实现设备的固件环境的配置。固件环境的配置可以包含各种信息并且一般地指的是在加载固件组件204中所依赖的机构和/或不被准许加载为固件组件204的固件组件204。固件环境配置表示208包含机构的列表220、撤销记录222、操作系统加载器机构224和/或机构修改列表226。机构的列表220是对固件组件204进行了数字签名(或者本来会进行数字签名)的机构的列表。撤销记录222是对不被准许验证固件组件204的机构和/或不被准许加载为固件组件204的特定组件的标识符的记录。操作系统加载器机构224是对操作系统加载器(例如图1的操作系统加载器104)等等进行了数字签名的机构的标识符。机构修改列表226是被准许修改能够对组件进行数字签名的可接受机构列表的机构的标识。
当组件被加载为固件组件204时,对该组件进行了数字签名的机构的标识符可以(例如由验证该组件的组件)被添加到机构的列表220。该机构的列表尽管被称作列表,但是也可以替换地是数据库或其它记录。
在一个或多个实施例中,对组件进行数字签名的机构的标识符被添加到用于每个固件组件204的机构的列表220。在这样的实施例中,机构的列表220因此是对被加载为固件组件204的组件进行了数字签名的机构以那些固件组件204被加载的顺序的列表。
图3图示了根据一个或多个实施例的机构的示例列表302。机构的列表302可以是例如图2的机构的列表220。多个组件304以其中它们被加载为固件组件的顺序被图示,并且还标识了对每个组件进行了数字签名的机构。因此,以下面的顺序加载六个固件组件:组件A、组件D、组件C、组件E、组件F以及组件B。组件A、E和F由机构R进行了数字签名,组件B和D由机构S进行了数字签名,并且组件C由机构T进行了数字签名。机构的列表302是对被加载为固件组件204的组件进行了数字签名的机构以那些固件组件204被加载的顺序的列表。因此,机构的列表302是列表机构R、机构S、机构T、机构R、机构R、机构S。
返回到图2,在其它实施例中对组件进行数字签名的机构的标识符只有在该机构的标识符还未被包含在机构的列表220中时才被添加到机构的列表220;如果机构的标识符已经被包含在机构的列表220中,则该机构的另一标识符不需要被添加到机构的列表220中。在这样的实施例中,机构的列表220因此是对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名。
图4图示了根据一个或多个实施例的机构的另一示例列表402。机构的列表402可以是例如图2的机构的列表220。多个组件304以其中它们被加载为固件组件的顺序被图示,这类似于关于图3的讨论。机构的列表402是对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名。因此,机构的列表302是列表机构R、机构S、机构T。
返回到图2,机构的列表220可以替换地为来自策略206的可接受的机构的记录。因此,取代标识哪些机构对固件组件204进行了数字签名,机构的列表220标识本来会对固件组件204进行数字签名的机构,而不管那些机构是否确实实际地对一个或多个固件组件204进行了数字签名。
固件环境配置表示208还可以包含作为撤销记录222的来自策略206的撤销记录。因此,固件环境配置表示208可以包含不被准许验证组件的机构的标识符和/或不被准许加载的特定组件的标识符。
固件环境配置表示208还可以包含操作系统加载器机构224。操作系统加载器机构224是对被加载在系统200的实现设备上的操作系统加载器(例如图1的操作系统加载器104)进行了数字签名的机构的标识符。
固件环境配置表示208还可以包含机构修改列表226。机构修改列表226是被准许修改能够对组件进行数字签名的可接受机构列表(例如被准许修改策略206)的机构的标识(例如列表)。
此外,尽管在系统200中图示了单个固件环境配置表示208,但是应当指出的是可以在系统200中包含任何数目的固件环境配置表示208。例如,一个固件环境配置表示可以包含对被加载为固件组件204的组件进行了数字签名的机构以那些固件组件204被加载的顺序的列表,并且另一个可以包含对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名。作为另一示例,一个固件环境配置表示可以包含机构的列表和操作系统加载器机构,另一固件环境配置表示可以包含机构的列表和撤销记录,并且另一固件环境配置表示可以包含机构的列表和撤销记录。
此外,应当指出的是尽管在本文中讨论并在系统200中图示了可以被包含在固件环境配置表示208中的信息的具体示例,但是其它的信息同样可以被包含在固件环境配置表示208中。
固件环境配置表示208被提供给组合模块210或否则使其对组合模块210可用。组合模块210可以被包含为固件组件204中的一个,或者可替换地可以以不同的方式被实现。组合模块210在生成平台秘密212时使用固件环境配置表示208。组合模块210可以依照现实(也就是说,以它被生成的形式)使用固件环境配置表示208或者可替换地可以修改在固件环境配置表示208中的信息和/或从固件环境配置表示208仅提取模块210希望的信息。例如,如果机构的列表220包含对被加载为固件组件204的组件进行了数字签名的机构以那些固件组件204被加载的顺序的列表,但是组合模块210使用对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名,则组合模块210可以从机构的列表220提取它使用的机构而不是以机构存在于机构的列表220中的顺序使用机构。作为另一示例,如果固件环境配置表示208包含撤销记录222但是组合模块210使用机构的列表和操作系统加载器机构,则组合模块210可以从固件环境配置表示208提取机构的列表220和操作系统加载器机构224而不提取撤销记录222。
在或者更多的实施例中,组合模块210使用对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名。组合模块210对机构的列表进行分类(例如按字母顺序地、按数字地、根据一些其它已知的排序等等)并且使用所分类的列表来生成平台秘密212。组合模块210还可以移除在机构的列表中如果存在的任何复本(例如,如果特定的机构在机构的列表220中被多次包含,则组合模块210可以移除复本使得该特定的机构在机构的列表220中被包含一次)。因此,在这样的实施例中基于对固件组件204中的至少一个进行了数字签名的机构的身份生成平台秘密212。这样因而不考虑每个机构对哪些固件组件进行了数字签名、每个机构对多少固件组件进行了数字签名以及固件组件204以什么顺序被加载地生成平台秘密212。
在或者更多的其它实施例中,组合模块210使用对被加载为固件组件204的组件进行了数字签名的机构以那些固件组件204被加载的顺序的列表。在这样的实施例中,组合模块210典型地不对机构的列表进行分类(但是可替换地可以分类),因为依赖于固件组件204被加载的顺序。因此,在这样的实施例中平台秘密212取决于每个机构对多少固件组件进行了数字签名以及固件组件204被加载的顺序。
在其它实施例中,组合模块210使用来自策略206的机构的列表,其中该机构的列表是可接受的机构的记录。因此,在这样的实施例中基于被准许验证组件的机构来生成平台秘密212,而不管那些机构是否生成了用于固件组件的数字签名。
在一个或多个实施例中,组合模块210使用附加于或者代替机构的列表220和/或撤销记录222的操作系统加载器机构224。因此,在这样的实施例中基于对操作系统加载器进行了数字签名的机构来生成平台秘密212,从而允许针对不同的操作系统生成不同的平台秘密,即使对于不同的操作系统而言固件组件204和/或策略206是相同的。操作系统加载器机构224可以可选地被增补到机构的列表220的所标识的位置(例如末尾),或者被包含为在机构的列表220中的机构(例如最后的机构)。
组合模块210还使用设备秘密214,其是系统200的实现设备的秘密,并且它对不同的设备是不同的(或者具有大于阈值的不同几率)。在一个或多个实施例中,设备秘密214被包含在处理器中使用多个熔丝(例如在几百个的量级上)的设备中,并且特定的二进制密钥值通过烧断或不烧断那些熔丝中的各个熔丝来编码。可替换地,设备秘密214可以以其它方式被包含在设备中,诸如在除了处理器之外的另一硬件组件中、使用除了熔丝之外的硬件组件等等。设备秘密214典型地受保护,其对固件组件204是可访问的但对其它组件不是可访问的(例如对图1的操作系统内核106不可访问)。可以以不同的方式保护设备秘密214,诸如经由仅仅对固件组件可访问的接口被获取、只有当值被写入到特定位置时才可访问并且然后不可访问(例如组合模块210在获取设备秘密214之后写入到特定位置)、间接地可访问(例如被用作解锁或开启系统200上的另一密钥的授权值)等等。
组合模块210将固件环境配置表示208和设备秘密214组合来生成平台秘密212。组合模块210能够通过使用各种组合过程或技术来组合固件环境配置表示208和设备秘密214。在一个或多个实施例中固件环境配置表示208是各种标识符的列表,设备秘密214被添加到固件环境配置表示208(例如增补到其开头或末尾),并且结果值被输入到消息验证码(MAC)或基于散列的消息认证码(HMAC),或者其它密钥推导函数。例如,组合过程可以使用DES3-CBC-MAC(三重数据加密标准加密块链行消息认证码)、用SHA-1(安全散列算法1)的HMAC等等。HMAC的输出是平台秘密212。可替换地,组合过程可以采取其它形式,诸如将设备秘密214添加到固件环境配置表示208(例如增补到其开头或末尾),并且向另一组件提供作为授权值的结果值,所述授权值解锁或准许获取作为平台秘密212的密钥。
另外,组合模块210可以使用从另一实体接收的值来作为在组合过程中的值(例如以类似于设备秘密214与机构的列表208组合的方式将该值与机构的列表208组合)。例如,在公司环境中,企业值可以被提供给组合模块210,该企业值用来将设备所在的环境(例如特定域、网络等)与其它环境区分开。该企业值可以以不同的方式被提供,诸如作为由公司网络的服务器或服务提供的预执行环境变量或其它值、由公司网络管理者提供等等。该企业值允许平台秘密212基于特定的公司环境,使得即便设备秘密214不知何故被发现了,并且固件环境配置表示208是已知的,在没有该企业值的情况下仍然不能够生成平台秘密212。
平台秘密212是束缚于特定设备秘密和固件环境的配置二者的秘密。平台秘密212可以被轻易地再生来用于包含相同的固件环境配置表示的随后启动。例如,假设固件环境配置表示208包含机构的列表220,所述机构的列表220是对固件组件204中的至少一个进行了数字签名的每一个机构的列表,而不管那些一个或多个机构对哪些组件进行了数字签名,也不管那些一个或多个机构对多少组件进行了数字签名。如果被不在该机构的列表中的另一机构进行了数字签名的附加固件组件将被加载为固件组件,则由于机构的列表改变,将生成不同的平台秘密。类似地,如果相同的固件组件将被加载在不同的设备上,则由于设备秘密改变,将生成不同的平台秘密。然而,如果组件出版方将出版固件组件的新版本,其中该固件组件的新版本被与该固件组件的先前版本相同的机构进行数字签名,则将会生成相同的平台秘密212。
平台秘密212可以被提供给各种不同的组件和/或以各种方式被使用。例如,平台秘密212可以被用作生成用于加密和/或解密的一个或多个附加密钥的基础、获取用于加密和/或解密的一个或多个附加密钥的基础等等。这些密钥可以包含公开密钥、私有密钥和/或对称密钥。在一个或多个实施例中,平台秘密212被提供给操作系统加载器(例如图1的操作系统加载器104),其使用平台秘密212来生成加密和解密数据的一个或多个密钥。操作系统加载器能够保持平台秘密212受保护,使得其它的组件不能够访问平台秘密212,或者可替换地操作系统加载器能够在操作系统加载器生成该一个或多个密钥后删除平台秘密212。
在或者更多的实施例中,操作系统内核支持通过使用一个或多个卷密钥在存储卷(例如由包含系统200的设备使用的存储设备)上加密数据。操作系统加载器使用平台秘密来生成公开/私有密钥对,并且然后在执行操作系统内核之前删除平台秘密和私有密钥二者。尽管操作系统内核不知晓平台秘密或私有密钥,但是操作系统内核能够使用公开密钥来加密所述一个或多个卷密钥。所加密的一个或多个卷密钥然后能够被存储(例如在盘上、在闪速存储器中等)。在随后的启动时,操作系统加载器再生相同的公开/私有密钥对,并且使用私有密钥来解密所述一个或多个卷密钥,其可以被提供给操作系统内核。因此卷密钥被保护,并且能够在随后的启动时轻易地再生。
平台秘密212可以被再生来用于随后的启动,只要固件环境配置表示208(或者至少固件环境配置表示208被组合模块210使用的部分)和设备秘密214不改变。因此,诸如操作系统加载器之类的其它组件不需要跨多个启动存留它们生成的密钥。相反地,这些其它组件可以简单地在随后的启动期间基于平台秘密再生密钥,并且因此不需要关注于安全地存留这样的密钥。
同样可以可选地维护关于固件组件204的附加信息。可以在固件环境配置表示208中和/或在一个或多个其它记录或列表中维护该附加信息。可以维护各种不同的附加信息,诸如每个固件组件遵照策略206的哪个部分之类。例如,被遵照以验证组件的特定准则的指示(例如对该组件进行了数字签名的特定机构)。该附加信息可以由诸如图1的操作系统加载器104和/或操作系统内核106之类的其它模块或组件维护(例如以安全的方式)和访问。维护该附加信息允许这样的其它模块或组件稍后查看哪些固件组件被加载以及诸如被遵照以验证组件的特定准则之类的其它信息的日志。该附加信息还可以被组合模块210使用生成平台秘密212(例如该附加信息可以被增补到机构的列表220、撤销记录222、操作系统加载器机构224和/或机构修改列表226或否则与之组合)。
图5是图示了根据一个或多个实施例的用于生成数字签名机构相关的平台秘密的示例过程500的流程图。过程500由诸如图1的设备100之类的设备完成,并且可以被实现在软件、固件、硬件或其组合中。过程500典型地由一个或多个固件组件(例如图1的固件102或图2的固件204)完成。过程500被示出为一套动作并且不受限于所示出的用于执行各种动作的操作的顺序。过程500是用于生成数字签名机构相关的平台秘密的示例过程;参考不同的图,本文包含对生成数字签名机构相关的平台秘密的附加讨论。
在过程500中,生成过程500的实现设备的固件环境的配置的表示(动作502)。该表示可以包含如上文所讨论的各种信息。
设备的秘密被获得(动作504)。该秘密可以如上文所讨论的以不同的方式被包含在设备中。
基于固件环境配置表示和设备的秘密,生成平台秘密(动作506)。正如上文所讨论的可以以不同的方式生成平台秘密,诸如通过将固件环境配置表示和设备的秘密组合。
图6是图示了根据一个或多个实施例的用于使用数字签名机构相关的平台秘密的示例过程600的流程图。过程600由诸如图1的设备100之类的设备完成,并且可以被实现在软件、固件、硬件或其组合中。过程600典型地由操作系统加载器(例如图1的操作系统加载器104)完成。过程600被示出为一套动作并且不受限于所示出的用于执行各种动作的操作的顺序。过程600是用于使用数字签名机构相关的平台秘密的示例过程;参考不同的图,本文中包含对使用数字签名机构相关的平台秘密的附加讨论。
在过程600中,平台秘密被获得(动作602)。正如上文所讨论的,至少部分地基于设备的秘密和设备的固件环境配置表示二者来生成平台秘密。
基于平台秘密,一个或多个密钥被生成(动作604)。正如上文所讨论的可以生成不同的密钥。此外,在一个或多个密钥的生成之后,平台秘密可以如上文所讨论的被删除。
本文所讨论的数字签名机构相关的平台秘密技术支持各种使用情境。所生成的平台秘密可以基于机构的列表被生成,因此允许对固件组件的一些改变而不更改平台秘密。这允许例如出版方更改他们的固件组件来修复漏洞(bug)、添加新的特征等等,并且不让那些更改造成对平台秘密的改变。另外,取决于所使用的机构的列表,出版方可能能够添加新的固件组件和/或让固件组件的顺序更改而不让这样的添加或再排序造成对平台秘密的改变。此外,所生成的平台秘密可以至少部分地基于对操作系统加载器进行了数字签名的机构来生成,从而允许不同的操作系统运行在使用相同固件组件的设备上,但却具有不同的平台秘密并且因此防止每个操作系统读取其它操作系统的秘密。
图7图示了根据一个或多个实施例的可以被配置成实现数字签名机构相关的平台秘密的示例计算设备700。计算设备700可以是例如图1的设备100。
计算设备700包含一个或多个处理器或处理单元702、可以包含一个或多个存储器和/或存储组件706的一个或多个计算机可读媒体704、一个或多个输入/输出(I/O)设备708以及允许各种组件和设备彼此通信的总线710。计算机可读媒体704和/或一个或多个I/O设备708可以被包含为计算设备700的一部分,或者可替换地可以被耦合到计算设备700。处理器702、计算机可读媒体704、设备708中的一个或多个设备、和/或总线710可以可选地被实现为单个组件或芯片(例如片上系统)。总线710表示若干类型的总线结构中的一个或多个,其包含使用各种不同总线架构的存储器总线或存储器控制器、外围总线、加速图形端口、处理器或局部总线等等。总线710可以包含有线和/或无线总线。
存储器/存储组件706表示一个或多个计算机存储媒体。组件706可以包含易失性媒体(诸如随机存取存储器(RAM))和/或非易失性媒体(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等等)。组件706可以包含固定媒体(例如RAM、ROM、固定硬盘驱动器等等)以及可移动媒体(例如闪速存储器驱动器、可移动硬盘驱动器、光盘等等)。
本文所讨论的技术可以被实现在具有由一个或多个处理单元702执行的指令的软件中。要领会的是不同的指令可以被存储在计算设备700的不同组件中,诸如在处理单元702中、在处理单元702的各种高速缓存存储器中、在设备700的其它高速缓存存储器中(未示出)、在其它计算机可读媒体上等等。此外,要领会的是指令被存储在计算设备700中的位置可以随时间改变。
一个或多个输入/输出设备708允许用户向计算设备700键入命令和信息,并且还允许信息被呈现给用户和/或其它组件或设备。输入设备的示例包含键盘、光标控制设备(例如鼠标)、麦克风、扫描仪等等。输出设备的示例包含显示设备(例如监视器或投影仪)、扬声器、打印机、网络卡等等。
本文中可以依据软件或程序模块的一般上下文描述各种技术。一般地,软件包含执行特定任务或实现特定抽象数据类型的例程、程序、应用、对象、组件、数据结构等等。这些模块和技术的实现可以被存储在某种形式的计算机可读媒体上或者跨某种形式的计算机可读媒体被传输。计算机可读媒体可以是能够被计算设备访问的任何可用介质或媒体。作为示例而非限制,计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。
“计算机存储媒体”包含以任何方法或技术来实现的、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性、移动和不可移动的媒体。计算机存储媒体包含但不限于是RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备、或可以被用来存储所希望的信息并且能够被计算机访问的任何其它介质。计算机存储媒体指的是相对于纯粹的信号传输、载波或信号本身,用于信息的存储的媒体。因此,计算机存储媒体指的是非信号承载媒体,并且不是通信媒体。
“通信媒体”典型地包含计算机可读指令、数据结构、程序模块、或在调制数据信号中的其它数据,诸如载波或其它传输机制之类。通信媒体还包含任何信息传递媒体。术语“调制的数据信号”意指它的一个或多个特征以这样的方式被设置或改变以便将信息编码在信号中的信号。作为示例而非限制,通信媒体包含诸如有线网络或直接有线连接之类的有线媒体,以及诸如声学、RF、红外以及其它无线媒体之类的无线媒体。上面的任何组合同样包含在计算机可读媒体的范围内。
一般地,可以使用软件、固件、硬件(例如固定逻辑电路)、手工处理或这些实现的组合来实现本文所描述的任何功能或技术。如本文所使用的术语“模块”和“组件”一般地表示软件、固件、硬件或其组合。在软件实现的情况下,模块或组件表示当在处理器(例如一个或多个CPU)上执行时执行指定任务的程序代码。程序代码可以被存储在一个或多个计算机可读存储器设备中,可以参考图7找到对计算机可读存储器设备的进一步描述。在硬件实现的情况下,模块或组件表示执行指定任务的功能块或其它硬件。例如,在硬件实现中,模块或组件可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等等。本文所描述的数字签名机构相关的平台秘密技术的特征是独立于平台的,这意味着可以在具有各种处理器的各种商用计算平台上实现该技术。
尽管已经以具体于结构特征和/或方法学动作的语言描述了本主题,但是要理解的是在随附的权利要求中限定的本主题不一定受限于上文所描述的具体特征或动作。相反地,上文所描述的具体特征和动作是作为实现权利要求的示例形式被公开的。

Claims (10)

1.一种生成数字签名机构相关的平台秘密的方法,包括:
在设备中生成所述设备的固件环境的配置的表示;
获得所述设备的秘密;以及
基于所述设备的固件环境配置表示和所述秘密二者生成平台秘密,使得针对具有不同版本固件组件的固件环境生成同一平台秘密。
2.如权利要求1所述的方法,所述固件环境配置表示包含机构的列表,所述机构的列表标识对被加载在所述设备上的固件组件进行了数字签名的一个或多个机构,而不管那些一个或多个机构对哪些固件组件进行了数字签名,也不管那些一个或多个机构对多少固件组件进行了数字签名。
3.如权利要求1所述的方法,所述固件环境配置表示包含被准许修改可接受机构列表的一个或多个机构的标识,所述可接受机构列表能够对被加载在所述设备上的固件组件进行数字签名。
4.如权利要求1所述的方法,所述固件环境配置表示包含对被加载在所述设备上的固件组件进行了数字签名的一个或多个机构的列表,并且在所述机构的列表的所标识的地方包含对被加载在所述设备上的操作系统加载器进行了数字签名的机构的标识符。
5.如权利要求1所述的方法,所述固件环境配置表示包含标识一个或多个机构的机构列表,所述一个或多个机构基于所述设备的策略被准许:让由所述一个或多个机构进行数字签名的特定固件组件加载在所述设备上,而不管所述特定固件组件是否已被加载在所述设备上。
6.如权利要求1所述的方法,所述固件环境配置表示包含不被准许验证固件组件的机构的标识符。
7.如权利要求1所述的方法,所述固件环境配置表示包含不被准许加载的特定固件组件的标识符。
8.如权利要求1所述的方法,所述生成所述平台秘密进一步包括至少部分基于将所述设备位于其中的环境与其它环境区分开的企业值生成所述平台秘密。
9.一种计算设备,包括:
一个或多个处理器;
在其上已存储多个指令的一个或多个计算机可读媒体,当所述一个或多个处理器执行所述指令时,导致所述一个或多个处理器:
在所述计算设备中获得至少部分地基于所述设备的秘密和所述计算设备的固件环境的配置表示二者所生成的平台秘密,使得针对具有不同版本固件组件的固件环境生成同一平台秘密;并且
基于所述平台秘密生成一个或多个密钥。
10.如权利要求9所述的计算设备,所述多个指令进一步导致所述一个或多个处理器基于所述平台秘密在所述计算设备的随后启动时再生所述一个或多个密钥,而不是跨启动存留所述一个或多个密钥。
CN201280041444.9A 2011-08-25 2012-08-08 数字签名机构相关的平台秘密 Active CN103765429B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/218,029 US8924737B2 (en) 2011-08-25 2011-08-25 Digital signing authority dependent platform secret
US13/218029 2011-08-25
US13/218,029 2011-08-25
PCT/US2012/049880 WO2013028353A1 (en) 2011-08-25 2012-08-08 Digital signing authority dependent platform secret

Publications (2)

Publication Number Publication Date
CN103765429A CN103765429A (zh) 2014-04-30
CN103765429B true CN103765429B (zh) 2016-08-31

Family

ID=47745392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280041444.9A Active CN103765429B (zh) 2011-08-25 2012-08-08 数字签名机构相关的平台秘密

Country Status (6)

Country Link
US (1) US8924737B2 (zh)
EP (1) EP2748752B1 (zh)
JP (1) JP6073320B2 (zh)
KR (1) KR102030858B1 (zh)
CN (1) CN103765429B (zh)
WO (1) WO2013028353A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014150478A1 (en) * 2013-03-15 2014-09-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US9384351B2 (en) * 2013-03-15 2016-07-05 Intel Corporation Method and apparatus for implementing a secure boot using multiple firmware sources
KR20140136166A (ko) * 2013-05-20 2014-11-28 삼성전자주식회사 관리자 권한 획득 방지 방법 및 장치
US10360370B2 (en) * 2016-07-22 2019-07-23 Hewlett Packard Enterprise Development Lp Authenticated access to manageability hardware components
CN108933788B (zh) * 2018-07-03 2020-11-06 西南交通大学 一种基于fpga的rssp-ii协议mac码快速验证装置
US11361660B2 (en) * 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11025422B2 (en) * 2019-07-23 2021-06-01 Nasuni Corporation Cloud-native global file system with constant-time rekeying
US11340797B2 (en) * 2019-10-04 2022-05-24 Zettaset, Inc. Dedicated encrypted container storage
US11893118B2 (en) * 2021-05-25 2024-02-06 Microsoft Technology Licensing, Llc Transfer of ownership of a computing device via a security processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1678968A (zh) * 2002-06-28 2005-10-05 英特尔公司 可信计算机平台

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3581001B2 (ja) * 1998-01-20 2004-10-27 富士通株式会社 記憶装置、記憶媒体及び識別情報記録方法
EP1030237A1 (en) * 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
DE19935286A1 (de) * 1999-07-27 2001-02-01 Deutsche Telekom Ag Verfahren zur sicheren verteilten Generierung eines Chiffrierschlüssels
EP1429224A1 (en) 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
DE10238095B4 (de) * 2002-08-21 2007-08-30 Audi Ag Verfahren zum Schutz vor Manipulationen an einem Steuergerät für mindestens eine Kfz-Komponente und Steuergerät
US20050010811A1 (en) 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
JP2005038411A (ja) * 2003-06-30 2005-02-10 Sony Corp 機器認証情報組込システム、端末機器、機器認証情報処理方法、機器認証情報処理プログラム、提供サーバ、機器認証情報提供方法、機器認証情報提供プログラム、及び記憶媒体
DE10338032B4 (de) * 2003-08-19 2009-12-17 Infineon Technologies Ag Prozessor mit elektronischen Sicherungen zum Speichern von Geheimdaten
US20070127719A1 (en) * 2003-10-14 2007-06-07 Goran Selander Efficient management of cryptographic key generations
US7318150B2 (en) 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
US7490245B2 (en) * 2004-07-24 2009-02-10 Lenovo (Singapore) Pte. Ltd. System and method for data processing system planar authentication
US8181020B2 (en) 2005-02-02 2012-05-15 Insyde Software Corp. System and method for securely storing firmware
US8738822B2 (en) * 2005-05-03 2014-05-27 Flexera Software Llc System and method for controlling operation of a component on a computer system
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US8429724B2 (en) * 2006-04-25 2013-04-23 Seagate Technology Llc Versatile access control system
JP2008055849A (ja) * 2006-09-01 2008-03-13 Ricoh Co Ltd 画像形成装置及びその管理方法
JP5096022B2 (ja) * 2007-03-15 2012-12-12 株式会社リコー 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
US7836309B2 (en) 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure
JP4991592B2 (ja) * 2008-02-18 2012-08-01 株式会社リコー ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
JP2009244827A (ja) * 2008-03-13 2009-10-22 Ricoh Co Ltd 画像記録装置、画像表示装置及び画像暗号化システム
US8201239B2 (en) 2008-06-23 2012-06-12 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)
GB2466071B (en) 2008-12-15 2013-11-13 Hewlett Packard Development Co Associating a signing key with a software component of a computing platform
US8086839B2 (en) 2008-12-30 2011-12-27 Intel Corporation Authentication for resume boot path
US8566613B2 (en) * 2010-06-11 2013-10-22 Intel Corporation Multi-owner deployment of firmware images

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1678968A (zh) * 2002-06-28 2005-10-05 英特尔公司 可信计算机平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hades - Hardware Assisted Document Security;P.Roder等;《Second Workshop on Advances in Trusted Computing(WATC’06 Fall)》;20061130;第4-5页 *

Also Published As

Publication number Publication date
EP2748752A1 (en) 2014-07-02
JP2014524628A (ja) 2014-09-22
CN103765429A (zh) 2014-04-30
EP2748752A4 (en) 2015-04-22
US8924737B2 (en) 2014-12-30
EP2748752B1 (en) 2017-09-27
KR20140051350A (ko) 2014-04-30
JP6073320B2 (ja) 2017-02-01
US20130054946A1 (en) 2013-02-28
WO2013028353A1 (en) 2013-02-28
KR102030858B1 (ko) 2019-10-10

Similar Documents

Publication Publication Date Title
CN103765429B (zh) 数字签名机构相关的平台秘密
US10579793B2 (en) Managed securitized containers and container communications
CN109313690B (zh) 自包含的加密引导策略验证
US10419216B2 (en) Keying infrastructure
CN102279760B (zh) 利用初始保护组件来进行设备引导
JP5281074B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
US20170161489A1 (en) Permission Management Method, Apparatus, and Terminal
CN111723383B (zh) 数据存储、验证方法及装置
KR20160138450A (ko) 스토리지 디바이스에 대한 신속한 데이터 보호
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
CN102163266A (zh) 在主机服务器之间安全地移动虚拟机
CN105612715A (zh) 具有可配置访问控制的安全处理单元
CN110188555A (zh) 一种磁盘数据保护方法、系统及相关组件
US10642984B2 (en) Secure drive and method for booting to known good-state
CN113268742A (zh) 数据授权方法、装置及电子设备
CN115758332A (zh) 一种交易分组方法和区块链节点
US20230058046A1 (en) Apparatus and Method for Protecting Shared Objects
CN115758333A (zh) 一种交易分组方法和区块链节点
CN115906169A (zh) 区块链中的隐私合约访问方法和区块链节点
CN117349854A (zh) 固态硬盘的防泄漏方法、装置、电子设备及存储介质
CN112800488A (zh) 应用升级方法、装置及电子设备
Team ProtectV StartGuard FIPS 140-2 Level 1 Non-Proprietary Security Policy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150611

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150611

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant