CN109416720A - 跨重置维护操作系统秘密 - Google Patents

跨重置维护操作系统秘密 Download PDF

Info

Publication number
CN109416720A
CN109416720A CN201780040515.6A CN201780040515A CN109416720A CN 109416720 A CN109416720 A CN 109416720A CN 201780040515 A CN201780040515 A CN 201780040515A CN 109416720 A CN109416720 A CN 109416720A
Authority
CN
China
Prior art keywords
key
operating system
boot configuration
encryption
equipment
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
CN201780040515.6A
Other languages
English (en)
Other versions
CN109416720B (zh
Inventor
R·D·杨
J·B·巴克卢
R·艾格纳
A·L·米肖
J·J·考克斯
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 CN109416720A publication Critical patent/CN109416720A/zh
Application granted granted Critical
Publication of CN109416720B publication Critical patent/CN109416720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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

Abstract

设备包括重置抗性存储库和可信密钥服务。重置抗性存储库跨各种不同的设备重置或数据无效操作而维护数据。可信密钥服务为从引导配置在设备上运行的一个或多个操作系统中的每一个维护与引导配置相关联的加密密钥。设备还具有特定于该设备的主密钥。与引导配置相关联的每个密钥都使用主密钥加密。在引导设备时,识别在设备上运行的引导配置,并且获得与该引导配置相关联的密钥(例如,从重置抗性存储库或加密密钥库)。主密钥用于解密获得的密钥,并且获得的密钥用于解密与从引导配置运行的操作系统相关联的秘密。

Description

跨重置维护操作系统秘密
背景技术
随着计算技术的进步,计算设备在我们的生活中变得越来越普遍并且用于执行各种不同的任务。计算设备运行控制设备操作的操作系统,并支持运行其他应用程序或程序。可以通过重新安装当前操作系统或安装不同的操作系统来替换计算设备上的操作系统。然而,这种操作系统的安装或重新安装可能产生各种问题,因为数据可能丢失或者新操作系统无法访问。数据的不可访问性对用户来说可能是令人沮丧的。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
根据一个或多个实施例,在计算设备中,获得与计算设备相关联的主密钥。识别计算设备的当前引导配置,并获得与当前引导配置相关联的加密的引导配置特定密钥。主密钥用于解密加密的引导配置特定密钥,并且解密的引导配置特定密钥用于解密与从引导配置运行的计算设备的当前操作系统相关联的数据。
附图说明
参考附图描述了具体实施方式。在附图中,参考标号的最左边的数字标识首次出现参考标号的图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。图中表示的实体可以指示一个或多个实体,因此可以在讨论中将单个或多个形式的实体互换地引用。
图1是示出根据一个或多个实施例的实现跨重置维护操作系统秘密的示例计算设备的框图。
图2示出了根据一个或多个实施例的示例密钥集。
图3是示出根据一个或多个实施例的用于跨重置实现维护操作系统秘密的示例过程的流程图。
图4是示出根据一个或多个实施例的用于备份加密密钥库的示例过程的流程图。
图5是示出根据一个或多个实施例的用于将密钥恢复到加密密钥库的示例过程的流程图。
图6示出了包括示例计算设备的示例系统,该示例计算设备表示可以实现本文描述的各种技术的一个或多个系统和/或设备。
具体实施方式
本文讨论了跨重置维护操作系统秘密。计算设备包括重置抗性存储库和可信密钥服务。重置抗性存储库跨各种不同的设备重置或数据无效操作(例如重新格式化计算设备硬盘驱动器)维护数据,使可信密钥服务中的数据无效,安装或重新安装操作系统等等。可信密钥服务包括密钥库和解密密钥存储库。对于在计算设备上运行的一个或多个引导配置中的每一个,密钥库维护与引导配置相关联的加密密钥。这些加密密钥也被备份(例如,复制)到重置抗性存储库中。可信密钥服务还包括解密密钥存储库,其存储与引导配置相关联的解密密钥。哪些解密密钥在哪些时间存储在解密密钥存储库中取决于计算设备的引导配置而变化。
计算设备还具有特定于计算设备的主密钥。在一个或多个实施例中,主密钥不能由计算设备的用户重置,从而防止操作系统秘密由于用户的主密钥改变而变得可访问。尽管从引导配置运行的引导代码和操作系统本身不能访问主密钥,但是使用主密钥对与计算设备的引导配置相关联的每个密钥进行加密。引导配置是指运行的引导代码以及引导代码使用的任何数据。引导代码的一部分是引导加载程序,其加载并开始在计算设备上执行操作系统。在一个或多个实施例中,引导代码包括在计算设备开始引导时(例如,响应于设备重置或设备被加电)运行的所有代码,多达并包括引导加载程序。引导代码可以包括例如管理程序或其他虚拟机管理器。通过将密钥与引导配置而不是操作系统相关联,如果要从两个不同的引导配置运行相同版本的操作系统,则尽管操作系统是相同的版本,但仍有两个不同的密钥。
当引导计算设备时,识别用于计算设备的引导配置,并且获得与该引导配置相关联的密钥(例如,从重置抗性存储库或加密密钥库)。主密钥用于解密获得的密钥,解密的密钥存储在解密密钥存储库中。可信密钥服务保护解密的密钥,仅允许从相关联的引导配置运行的操作系统访问和使用解密密钥。
与引导配置相关联的密钥用于加密与引导配置相关联的数据,包括与从该引导配置运行的操作系统相关联的数据。例如,使用与运行操作系统的引导配置相关联的密钥来加密操作系统使用但不希望与可在计算设备上运行的其他操作系统共享的数据。该加密数据可以存储在各种位置,例如重置抗性存储库。当随后使用相同的引导配置重新引导计算设备时,操作系统可以使用与引导配置相关联的密钥来解密与操作系统相关联的加密数据。
使用本文讨论的技术,从特定引导配置运行的操作系统希望保持私有的数据(例如,不希望与可以在计算设备上运行的其他操作系统或者在从不同的引导配置运行的情况下的相同操作系统共享)对于该操作系统保持加密。操作系统希望保持私有的该数据在此也称为秘密。如果使用该操作系统和引导配置引导计算设备,则与该操作系统相关联的密钥被解密并且可供操作系统使用以解密要保持私有的数据。但是,如果计算设备是用另一个操作系统和/或从另一个引导配置运行的操作系统引导的,那么该操作系统将无法访问与希望保持数据私有的操作系统相关联的密钥,从而该操作系统将无法解密并且无法访问要保持私有的数据。
因此,本文讨论的技术为计算设备提供了改进的安全性。操作系统希望保持私有的数据可以在计算设备上维护,并且当从相同的引导配置运行时由该操作系统随后取回。但是,其他操作系统或从其他引导配置运行的操作系统无法访问要保持私有的数据。由于重置抗性存储库维护与引导配置相关联的密钥的副本,秘密与引导配置的该绑定或关联被持续,因此允许跨操作系统重新安装,操作系统重置,在可信密钥服务中数据无效等等维护密钥。因此,秘密保持与从与引导配置特定密钥相关联的引导配置运行的操作系统相关联(并且仅对于其可访问),并且持续在计算设备上并且尽管各种重置和/或无效操作或动作仍然可由操作系统访问。
图1是示出根据一个或多个实施例的实现跨重置维护操作系统秘密的示例计算设备100的框图。计算设备100可以是各种不同类型的设备中的任何一种。例如,计算设备100可以是台式计算机、服务器计算机、膝上型计算机或上网本计算机、移动设备(例如,平板电脑或平板设备、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手镯)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏控制台)、物联网(IoT)设备(例如,具有软件、固件和/或硬件以允许与其他设备通信的对象或物体)、电视或其他显示设备、汽车计算机等。因此,计算设备100的范围可以从具有大量存储器和处理器资源的完整资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。
计算设备100包括处理器102、操作系统104、密钥管理器106、重置抗性存储库108和可信密钥服务110。处理器102可以是执行指令(例如,运行程序)的各种不同处理单元中的任何一个。处理器102可以包括每个均执行指令的一个或多个核。尽管图1中示出了单个处理器102,但应注意,计算设备100可包括任何数量的处理器(每个处理器具有任何数量的核)。
操作系统104管理在计算设备100上运行附加程序。操作系统104还管理对计算设备100的各种资源的访问,例如输入/输出(I/O)设备。计算设备100通常一次运行单个操作系统104,尽管计算设备100可以在不同时间运行不同的操作系统。这些不同的操作系统可以是具有不同体系结构的操作系统(例如,来自不同供应商的操作系统)、来自相同供应商的操作系统的不同版本,等等。附加地或替代地,计算设备100可以同时运行多个操作系统。在一个或多个实施例中,操作系统104作为虚拟机的一部分运行(例如,操作系统104在管理程序或其他虚拟机管理器上运行或由其管理)。
密钥管理器106管理用于引导配置特定密钥的解密密钥(对称密钥或公共/私有密钥对)的存储和取回。用于加密数据的引导配置特定密钥可以与用于解密数据的引导配置特定密钥相同(例如,当使用对称密钥密码术时),或者与用于解密数据的密钥不同(例如,当使用公钥密码术时)。引导配置特定解密密钥的存储是指将引导配置特定解密密钥的备份存储到重置抗性存储库108中,并且还可选地将解密的引导配置特定密钥存储在可信密钥服务110中。尽管单独示出,密钥管理器106可选地可以实现为计算设备100的另一组件或模块的一部分,诸如操作系统104的一部分、可信密钥服务110的一部分等等。
重置抗性存储库108跨各种不同的设备重置或数据无效操作维护数据,例如重新格式化计算设备硬盘驱动器,密钥库中的数据无效,重新安装操作系统等等。可以使用各种不同存储设备中的任何一种来实现重置抗性存储库108。在一个或多个实施例中,使用UEFI(统一可扩展固件接口)变量来实现重置抗性存储库108,例如UEFI规范,版本2.6(2016年1月)中描述的。UEFI是一种在操作系统104和计算设备100的硬件组件之间操作的固件。格式化硬盘驱动器或清除TPM时,不会清除或覆盖UEFI变量。附加地或替代地,可以使用其他存储设备来实现重置抗性存储库108,诸如受保护的硬盘驱动器的一部分(例如,固态存储器驱动器或磁盘驱动器)。硬盘驱动器的受保护部分是指在格式化硬盘驱动器时未擦除或覆盖的硬盘驱动器的一部分。
存储在重置抗性存储库108中的数据包括操作系统104希望保持私有的数据,也称为秘密。使用与加载和运行操作系统104的引导配置相关联的引导配置特定密钥来加密该数据。在一个或多个实施例中,该数据由操作系统104指定。附加地或替代地,该数据可以是由计算设备100的制造商或分销商在重置抗性存储库108中预先提供的。例如,期望特定数据可用于计算设备100上的指定(可信)引导配置而不是其他引导配置并且进一步期望数据应该幸免于常见的重置和重新格式化的制造商,可以存储由引导配置绑定密钥(引导配置特定密钥)加密的该数据。可信密钥服务110可以备份和保护该数据,使用引导配置特定密钥加密数据,并进一步加密(使用主密钥)引导配置特定密钥并将引导配置特定密钥备份到重置抗性存储库108。
各种附加数据也存储在重置抗性存储库108中。在一个或多个实施例中,该附加数据包括由计算设备100的主密钥加密的引导配置特定密钥(以及可选地,用于将引导配置特定密钥与引导配置匹配的元数据)。这种加密的引导配置特定密钥的存储允许跨各种不同的重置和/或数据无效操作维护引导配置特定密钥,允许获取引导配置特定密钥并用于解密操作系统秘密,而不管任何这样的重置和/或数据无效操作。附加地或替代地,该附加数据可以包括例如由可信密钥服务110或密钥管理器106的密钥加密的引导配置特定密钥(以及可选地,用于将引导配置特定密钥与引导配置匹配的元数据)。
操作系统104可以保持各种不同类型的数据私有。例如,允许计算设备100访问其他设备的数据(例如,蓝牙配对密钥、无线网(例如,Wi-Fi)凭证等)可以由操作系统104保持私有。作为另一个例子,允许计算设备100访问各种内容的数据(例如,数字版权管理(DRM)密钥、软件许可密钥等)可以通过操作系统104保持私有。作为另一个例子,操作系统104可以使得标识被授权管理或控制计算设备100的设备或服务的数据保持私有。
可信密钥服务110包括加密密钥库112和解密密钥存储库114。加密密钥库112为计算设备100的一个或多个引导配置中的每一个维护与引导配置相关联的加密密钥。在一个或多个实施例中,引导配置包括引导代码,该引导代码包括引导加载程序,其加载并开始运行操作系统104的组件。因此,加密的密钥也可以被称为与从特定引导配置运行的操作系统相关联。不同的引导加载程序将加载和运行不同的操作系统,因此通过将加密的密钥与特定的引导配置相关联,加密的密钥也与特定的操作系统相关联。虽然称为加密密钥,但应注意,多个密钥可以与引导配置相关联,并且从引导配置运行的操作系统可以使用这些多个密钥中的每一个来加密或根据操作系统的需要加密数据。使用计算设备100的主密钥对加密密钥库112中的密钥进行加密和解密。
在一个或多个实施例中,加密密钥库112包括与每个引导配置相关联(特定于每个引导配置)的每个密钥的条目。此条目包括密钥本身以及与密钥关联的元数据。这样的元数据可以包括,例如,从引导配置运行的操作系统的标识符、引导配置的标识符和/或为了使用密钥而要满足的策略的标识符。
在由主密钥解密之后,引导配置特定密钥存储在解密密钥存储库114中。解密密钥存储库114中的引导配置特定密钥允许操作系统104解密数据。在一个或多个实施例中,操作系统104可以从解密密钥存储库114中取回引导配置特定密钥,并使用所取回的密钥来解密数据。附加地或替代地,可信密钥服务110不向操作系统104揭示解密的引导配置特定密钥。相反,可信密钥服务110将使用解密密钥存储库114中的引导配置特定密钥来加密或解密操作系统104提供给可信密钥服务110的数据。
可信密钥服务110可以以各种不同方式实现。在一个或多个实施例中,使用TPM(可信平台模块)来实现可信密钥服务110,例如在可信平台模块库系列2.0,修订版1.16(2014年10月30日)中描述的。在这样的实施例中,加密密钥库112可以实现为TPM的非易失性存储器,并且解密密钥存储库114可以实现为操作系统可访问的存储器。附加地或替代地,可信密钥服务110可以使用硬件、软件、固件或其组合以其他方式实现。
特定于(这里也称为与之相关联)引导配置的加密密钥也被备份(例如,复制)到重置抗性存储库108中。在操作系统在计算设备100上引导的一些情况下,在加密密钥库112中可以获得与从其运行操作系统的引导配置相关联的加密密钥。例如,在计算设备100被引导的前一次,与引导配置相关联的加密密钥可能已经存储在加密密钥库110,在这种情况下,不需要从重置抗性存储库108取回与引导配置相关联的加密密钥。在其他情况下,在加密密钥库110中不可获得引导配置相关联的加密密钥。例如,加密密钥库110可能已被先前引导的操作系统无效(例如,重置或重新设密钥),在这种情况下,与引导配置相关联的加密密钥从重置抗性存储库108取回并且存储在密钥库110中。
这里参考对称密钥密码术、公钥密码术和公钥/私钥对。尽管这种密钥密码术对于本领域技术人员来说是公知的,但是这里包括这种密码术的简要概述以帮助读者。在公钥密码术中,实体(诸如用户、硬件或软件组件、设备、域等)已经将公钥/私钥对与其相关联。公钥可以公开可获得,但实体不泄露私钥。没有私钥,解密使用公钥加密的数据在计算上非常困难。因此,数据可以由具有公钥的任何实体加密,并且仅由具有相应私钥的实体解密。另外,可以通过使用数据和私钥来生成数据的数字签名。没有私钥,在计算上很难创建可以使用公钥验证的签名。具有公钥的任何实体可以通过对公钥、签名和签名的数据执行合适的数字签名验证算法来使用公钥验证数字签名。
另一方面,在对称密钥密码术中,共享密钥(也称为对称密钥)由两个实体已知,但不泄露给其他实体。具有共享密钥的任何实体通常能够解密用该共享密钥加密的数据。如果没有共享密钥,则解密使用共享密钥加密的数据在计算上非常困难。因此,如果两个实体都知道共享密钥,则每个实体都可以加密可由另一个实体解密的数据,但如果其他实体不知道共享密钥,则其他实体无法解密数据。类似地,具有共享密钥的实体可以加密可以由同一实体解密的数据,但是如果其他实体不知道共享密钥,则其他实体不能解密数据。另外,可以基于对称密钥密码术生成数字签名,例如使用密钥散列消息认证码机制。具有共享密钥的任何实体都可以生成并验证数字签名。例如,可信第三方可以基于特定实体的身份生成对称密钥,然后可以生成和验证该特定实体的数字签名(例如,通过使用对称密钥加密或解密数据)。
图2示出了根据一个或多个实施例的示例密钥集。示出了两种不同的引导配置:引导配置A 202和引导配置B 204。一个或多个(x)密钥212与引导配置202相关联,并且一个或多个(y)密钥214与引导配置204相关联。密钥212和214同时保持在重置抗性存储库108中。在任何给定时间将密钥212和214中的哪一个加载到加密密钥库114中基于用于引导计算设备的引导配置而变化。
密钥212和214还可以可选地同时保持在加密密钥库114中。在这种情况下,在任何给定时间密钥212和214中的哪个对于从引导配置运行的操作系统可用(例如,哪些密钥被解密并存储在解密密钥存储库114中)取决于用于引导计算设备的引导配置。如果计算设备同时运行多个操作系统,则在任何给定时间密钥212和214中的哪个对于从引导配置运行的操作系统可用取决于用于引导计算设备以运行当前正在计算设备上运行的操作系统的引导配置。
尽管在图2中示出了两个引导配置,但是可以同时在重置抗性存储库108中维护针对任何数量的不同引导配置的密钥。
在一个或多个实施例中,密钥212和214中的每一个是对称密钥或公钥/私钥对。附加地或替代地,密钥212和214中的每一个可以使关于它们密钥的各种元数据与它们相关联(例如,存储在相同的数据结构中)。这样的元数据可以包括,例如,与密钥相关联的引导配置的标识符,为了使用密钥而要满足的策略的标识符,和/或密钥的数字签名(以及可选地,元数据的至少部分,例如操作系统的标识符和/或为了使用密钥而要满足的策略的标识符)。
在一个或多个实施例中,与引导配置特定密钥相关联的策略指定何时删除与从该引导配置运行的操作系统相关联的数据。例如,如果发生特定事件(例如,计算设备被出售,计算设备不再是移动设备管理(MDM)系统的一部分,等等),则删除与该操作系统相关联的数据。此类事件的通知可以来自各种来源,例如操作系统本身。响应于这样的事件,从重置抗性存储库中删除加密数据。
返回图1,还在计算设备100中维护加密的主密钥。在一个或多个实施例中,加密的主密钥维护在重置抗性存储库108中。另外或可替代地,加密的主密钥可以维护在其他地方。例如,加密的密钥可以嵌入在计算设备100的组件(可选地,硬件组件)中,例如可信密钥服务110中。可以在不同的时间,例如在制造计算设备100时,在操作系统首先请求存储操作系统期望保持私有的数据等等时,在计算设备中生成并存储加密的主密钥。
图3是示出根据一个或多个实施例的用于实现跨越重置维护操作系统秘密的示例过程300的流程图。过程300由诸如图1的计算设备100之类的设备执行,并且可以用软件、固件、硬件或其组合来实现。过程300被示为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程300是用于实现跨重置维护操作系统秘密的示例过程;在此参考不同的附图包括关于实现跨重置维护操作系统秘密的附加讨论。
在过程300中,获得加密的主密钥(动作302)。加密的主密钥可以从例如重置抗性存储库108、嵌入了加密的主密钥的硬件组件等中获得。
主密钥被开封到可信密钥服务(304)。将主密钥开封到可信密钥服务是指以允许仅可信密钥服务访问未加密的主密钥的方式将未加密的主密钥存储在可信密钥服务中。可以以各种不同方式将主密钥开封到可信密钥服务,例如使用仅对可信密钥服务已知的密钥来解密主密钥。例如,可以使用可信密钥服务的公钥/私钥对的公钥来加密和存储主密钥(当生成主密钥时)。随后,可信密钥服务可以使用可信密钥服务的公钥/私钥对的私钥来解密加密的主密钥。
识别计算设备的当前引导配置(动作306)。计算设备的当前引导配置是指当前正在加载(或即将加载)以被运行以在计算设备上运行操作系统的引导代码和数据,或者可替代地,当前在计算设备上运行的引导代码和数据。可选地,可以在可信密钥服务中维护引导配置系统的标识符。可以以各种不同方式识别当前引导配置。
在一个或多个实施例中,计算设备的引导开始于最初运行的固件(例如,UEFI)。固件获取并加载利用其引导计算设备的操作系统的引导加载程序。计算设备可以在不同时间用不同的操作系统引导。在任何给定时间引导哪个操作系统可以例如基于默认操作系统、计算设备的用户请求的操作系统等而变化。
固件验证引导加载程序,例如通过检查引导加载程序已由可信权限进行数字签名。固件维护(或以其他方式访问)可信权限的记录。如果数字签名引导加载程序的权限包含在可信权限的记录中,或者数字签名引导加载程序的权限可以链接回包含在可信权限的记录中的权限,则引导加载程序将被验证为已由可信权限进行数字签名(例如,权限的数字证书由包含在可信权限的记录中的权限进行数字签名)。
一旦验证,引导加载程序就开始运行并加载操作系统的组件。这些组件也可以称为引导链。引导加载程序被信任为仅运行特定操作系统(或特定操作系统的特定版本)。因此,引导配置因此表示或标识引导代码和数据的唯一组合,并且(作为包括用于特定操作系统的引导加载程序的引导代码的结果)还表示或标识特定操作系统。
在一个或多个实施例中,当前引导配置的标识符是签署加载当前操作系统的组件的引导加载程序的可信权限的标识。附加地或替代地,当前引导配置的标识符可以是其他标识符,诸如引导加载程序的标识符(例如,通过将哈希函数应用于引导加载程序而生成的哈希值),引导配置的组件的标识符(例如,通过将散列函数应用于一个或多个引导代码或组件而生成的散列值),等等。
获得引导配置特定密钥(动作308)。如上所述,计算设备100以加密形式维护用于不同引导配置的多个引导配置特定密钥。用于当前引导配置的加密的引导配置特定密钥是从例如加密密钥库和/或重置抗性存储库中获得的。
使用主密钥开封引导配置特定密钥(动作310)。将引导配置特定密钥向可信密钥服务开封是指使用主密钥解密引导配置特定密钥,并以允许仅可信密钥服务访问未加密的引导配置特定密钥的方式将解密的引导配置特定密钥存储在可信密钥服务中。可信密钥服务可以可选地选择让其他组件(例如,当前操作系统的部分)可以访问未加密的引导配置特定密钥,或者可替代地不需要将引导配置特定密钥泄露给当前操作系统(例如,可信密钥服务可以使用引导配置特定密钥来加密和解密当前操作系统的数据,而不会向当前操作系统泄露引导配置特定密钥。
解密的引导配置特定密钥存储在解密密钥存储库中(动作312)。这允许可信密钥服务访问和使用解密的引导配置特定密钥,而无需重新解密。可替代地,不需要发生这样的存储,并且每次需要加密或解密数据以保持对操作系统私有时,可信密钥服务解密引导配置特定密钥。
随后使用引导配置特定密钥来解密与当前操作系统相关联的数据(在314)。与当前引导配置相关联的该数据是指从当前引导配置运行的操作系统希望保持私有的数据。
在一个或多个实施例中,可以利用过程300来实现各种附加策略,以确定何时可以开封密钥。这样的策略可以用于确定何时可以在动作304中开封主密钥和/或何时可以在动作310中开封引导配置特定密钥。策略可以识别各种不同标准中的任何一个,例如是否反恶意软件将在计算设备上运行,计算设备是否可以访问特定资源(例如,网络位置),允许哪些用户登录到计算设备,等等。每个密钥可以与特定策略相关联,并且在开封密钥之前,进行检查以验证计算设备的当前策略是否满足与密钥相关联的策略(例如,匹配或至少包括其所有限制)。如果计算设备的当前策略满足与密钥相关联的策略,则密钥被开封。然而,如果计算设备的当前策略不满足与密钥相关联的策略,则密钥不被开封。
返回图1,操作系统104可以请求保持特定数据是私有的(例如,不与可以在计算设备100上运行的其他操作系统共享)。使数据对于操作系统104保持私有的能力可以通过例如密钥管理器106或可信密钥服务110来实现。例如,应用编程接口(API)方法可以暴露给操作系统104(例如,通过密钥管理器106或可信密钥服务110)支持存储和取回要为操作系统104保持私有的数据。响应于操作系统104调用存储方法,对由操作系统104提供或以其他方式标识的数据使用特定于用于加载和运行操作系统104的引导配置(并且因此也特定于操作系统104)的引导配置密钥进行加密,并且加密数据存储在重置抗性存储库108中。响应于操作系统104调用取回方法,使用特定于用于加载并运行操作系统104的引导配置的引导配置密钥来解密由操作系统104标识的数据。
还可以实现各种附加API方法,例如可以由操作系统调用以删除秘密的方法,可以由操作系统调用以修改秘密的方法,可以由操作系统调用以更改主密钥的方法,依此类推。响应于更改主密钥的请求,将新的主密钥保存在计算设备100上(例如,在重置抗性存储库108中),并且用新的主密钥重新加密引导配置特定密钥,并且重新加密的引导配置特定密钥存储在加密密钥库112中。加密密钥库112也被备份到重置抗性存储库108,其中具有用新的主密钥重新加密的引导配置特定密钥。
在一个或多个实施例中,仅授权操作系统104的特定部分对秘密进行更改(例如,添加、删除或修改秘密),例如操作系统104的内核。可替代地,操作系统104可能无法对秘密进行更改,但操作系统104在其上运行的管理程序(或其他虚拟机管理器)被授权对秘密进行更改。
暴露API方法的组件(例如,密钥管理器106或可信密钥服务110)验证请求者是否能够进行所请求的更改。该验证可以以各种不同的方式执行。在一个或多个实施例中,暴露API方法的组件验证该方法是否由在内核模式下运行的进程(或来自管理程序或其他虚拟机管理器的请求)调用。附加地或替代地,密钥可以(例如,从引导加载程序)传递到有权对秘密进行更改的组件以及暴露API方法的组件。请求者使用此密钥对更改密钥的请求进行数字签名,并且暴露API方法的组件验证数字签名。只有被授权更改密钥的组件才具有密钥,因此暴露API方法的组件知道请求来自被授权更改密钥的组件(如果请求上的数字签名已经过验证)。
附加地或替代地,可以将针对不同秘密的不同密钥传递给有权对这些不同秘密进行更改的不同组件。可以以各种方式指定哪些组件有权对哪些秘密进行更改,例如与用于解密该秘密的密钥相关联的元数据中包括的策略。例如,操作系统的任何组件可以有权对第一秘密进行更改,但是只有操作系统内核可以有权对第二秘密进行更改。在该示例中,第一密钥(用于第一秘密)被传递到操作系统(例如,来自引导加载程序),操作系统的用户和内核模式进程都可访问第一密钥,并且第二密钥(用于第二密码)传递给操作系统(例如,来自引导加载程序),只有内核模式进程才能访问第二密钥。因此,操作系统的任何进程可以使用第一密钥对用于更改第一秘密的请求进行数字签名,但是仅内核模式进程可以使用第二密钥对用于更改第二秘密的请求进行数字签名。
可能出现这样的情况,其中加密密钥库将被复制到(也称为备份到)重置抗性存储库108。将加密密钥库112的副本保存在重置抗性存储库108中允许即使在可信密钥服务110中无效,加密密钥库112中的密钥也被维护。响应于各种不同的事件,例如为当前操作系统生成新密钥、更改当前操作系统使用的密钥、更改主密钥等,可以将加密密钥库112备份到重置抗性存储库108。例如,当前操作系统可以将其引导配置特定密钥更改为新密钥,将操作系统希望保持私有的数据解密,并且然后使用新密钥重新加密,然后使包括新密钥的加密密钥库112备份到重置抗性存储库108。
图4是示出根据一个或多个实施例的用于备份加密密钥库的示例过程400的流程图。过程400由诸如图1的计算设备100之类的设备执行,并且可以用软件、固件、硬件或其组合来实现。过程400被示为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程400是用于备份加密密钥库的示例过程;在此参考不同附图包括备份加密密钥库的附加讨论。
在过程400中,获得新密钥(动作402)。还可以获得与密钥相关联的附加元数据,例如在计算设备上运行的当前操作系统的标识符、与密钥相关联的引导配置的标识符和/或为了使用密钥而要满足的策略的标识符。
基于新密钥和旧密钥生成数字签名(动作404)。可选地,基于元数据(例如,在计算设备上运行的当前操作系统的标识符、与密钥相关联的引导配置的标识符和/或为使用密钥而要满足的策略的标识符)生成数字签名。通过例如使用用于当前引导配置的旧密钥(例如,从解密密钥存储库获得)、元数据和新密钥的组合(例如,级联)进行数字签名来生成数字签名。新密钥由可信密钥服务进行数字签名。
检查重置抗性存储库以查找当前引导配置的密钥条目(动作406)。重置抗性存储库可以包括加密密钥库的副本,并因此可以包括用于多个不同引导配置的引导配置特定密钥的条目,如上所述。在动作406中,检查重置抗性存储库以查找用于实现过程400的计算设备的当前引导配置的密钥条目。可以基于引导配置的标识符进行该检查。例如,取回、解密(使用主密钥)并搜索重置抗性存储库中的密钥条目,以找到具有引导配置的标识符的密钥条目。
过程400基于是否在重置抗性存储库中找到当前引导配置的密钥条目而继续(动作408)。
如果在重置抗性存储库中未找到当前引导配置的密钥条目,则创建新密钥条目(动作410)。该新密钥条目包括新密钥(在动作402中获得),以及与新密钥相关联的元数据(例如,在计算设备上运行的当前操作系统的标识符,与密钥相关联的引导配置的标识符,和/或为了使用密钥而要满足的策略的标识符)。
然后保存新的密钥条目(动作412)。保存新密钥条目包括将新密钥条目保存在可信密钥服务的加密密钥库中。保存新密钥条目还包括加密新密钥条目(使用主密钥)并将加密的新密钥条目保存在重置抗性存储库中。加密的新密钥条目可以在重置抗性存储库中覆盖当前引导配置的先前密钥条目,或者否则可以从重置抗性存储库中删除当前引导配置的先前密钥条目。
返回到动作408,如果在重置抗性存储库中找到当前引导配置的密钥条目,则验证所找到的条目的数字签名(动作414)。通过以与在动作404中生成数字签名相同的方式生成数字签名来验证找到的条目的数字签名,除了基于在重置抗性存储库中找到的条目中的密钥在动作414中生成数字签名。例如,动作414中的数字签名是通过使用在重置抗性存储库中找到的条目中的密钥对元数据和新密钥的组合(例如,级联)进行数字签名而生成的。如果基于在重置抗性存储库中的条目中找到的密钥在动作414中生成的数字签名与在动作404中生成的数字签名匹配(例如,相同),则所找到的条目的数字签名被验证通过。
过程400基于找到的条目的数字签名是否被验证通过而继续(动作416)。
如果找到的条目的数字签名未被验证通过,则发生错误(动作418)。然后可以执行各种不同的错误处理过程。
然而,如果在动作416中找到的条目的数字签名被验证通过,则保存新的密钥条目(动作412)。保存新密钥条目包括将新密钥条目保存在可信密钥服务的加密密钥库中。保存新密钥条目还包括加密新密钥条目(使用主密钥)并将加密的新密钥条目保存在重置抗性存储库中。由于在重置抗性存储库中未找到先前的密钥条目,因此不需要覆盖或以其他方式从重置抗性存储库中删除先前的密钥条目。
在一个或多个实施例中,手动备份加密密钥库,其指的是操作系统104请求备份。因此,如果操作系统104改变引导配置特定密钥或者主密钥被改变,则操作系统可以使新的引导配置特定密钥被备份。附加地或替代地,加密密钥库被自动备份。计算设备100的组件(例如,密钥管理器106或重置抗性存储库108)可以以规则或不规则的间隔、响应于用户注销计算设备100、响应于操作系统104关闭等等,而确定备份加密密钥库。当自动备份加密密钥库时,可以没有新密钥,因此当前的引导配置特定密钥被视为新密钥和旧密钥二者。
返回到图1,可能出现这样的情况:将密钥从重置抗性存储库108复制(也称为从其恢复)到加密密钥库112。这可以例如在以下情况中发生:密钥已从加密密钥库112中删除。在一个或多个实施例中,从重置抗性存储库108恢复密钥仅恢复用于计算设备的当前引导配置的密钥。可替代地,可以从重置抗性存储库108恢复用于多个引导配置的密钥。
图5是示出根据一个或多个实施例的用于将密钥恢复到加密密钥库的示例过程500的流程图。过程500由诸如图1的计算设备100之类的设备执行,并且可以用软件、固件、硬件或其组合来实现。过程500被示为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程500是用于将密钥恢复到加密密钥库的示例过程;在此参考不同附图包括关于将密钥恢复到加密密钥库的额外讨论。
在过程500中,获得当前引导配置的标识符(动作502)。该标识符例如是与上面关于图3的动作306讨论的相同的标识符。
从重置抗性存储库获得密钥条目(动作504)。这些密钥条目是在备份加密密钥库时先前写入重置抗性存储库的条目。
找到当前引导配置的密钥条目(动作506)。基于当前引导配置的标识符找到当前引导配置的密钥条目。例如,从重置抗性存储库获得的密钥条目被解密(使用主密钥)并被搜索以找到具有当前操作系统的标识符的密钥条目。
来自在动作506中找到的密钥条目的密钥被保存在解密密钥存储库中(动作508)。密钥条目在动作506中被解密,因此不需要重新解密。
密钥的元数据可选地保存在可信密钥服务中(动作510)。该元数据可以是例如为了使用密钥而要满足的策略的标识符。元数据可以保存在例如可信密钥服务的各种寄存器中。可替代地,如果没有元数据与密钥相关联,则不需要执行动作510。
来自在动作506中找到的密钥条目的密钥也被保存在加密密钥库中(动作512)。密钥已加密(使用主密钥)并保存在加密密钥库中。与密钥相关联的元数据还可以可选性地保存在加密密钥库中(使用主密钥加密,或者不加密)。
本文讨论的技术支持各种不同的使用场景。操作系统希望保持私有的数据(秘密)可以使用特定于用于运行该操作系统的引导配置的密钥来加密,并且可以存储加密的数据。当使用相同的引导配置和操作系统重新引导计算设备时,操作系统可以取回先前存储的秘密并使用特定于该操作系统的密钥对它们进行解密。其他操作系统或利用不同引导配置运行的相同操作系统(例如,试图获取秘密的恶意引导代码)将不能访问该密钥,因此将不能解密数据。
加密的数据存储在重置抗性存储库中。当清除可信密钥服务(例如,TPM)时,不会删除该重置抗性存储库,当计算设备的硬盘驱动器被格式化时不覆盖该重置抗性存储库,当在计算设备上安装或重新安装操作系统时不会覆盖该重置抗性存储库,当计算设备被重置时不删除该重置抗性存储库,等等。因此,如果在计算设备上重新安装操作系统,则操作系统仍然可以获得其秘密。
例如,操作系统可以生成蓝牙配对密钥,允许操作系统与蓝牙设备(例如,扬声器、麦克风等)进行通信。这些蓝牙配对密钥被操作系统视为秘密,并使用针对引导配置的特定密钥加密。如果使用相同的引导配置和操作系统重新引导计算设备,则那些蓝牙配对密钥可以被操作系统解密和使用,从而减轻操作系统和计算设备的用户需要将计算设备与蓝牙设备重新配对。然而,如果计算设备要用不同的引导配置和/或操作系统引导,则蓝牙配对密钥将不可用于不同操作系统或从该不同引导配置运行的操作系统。
应注意,这里讨论的技术提供加密密钥库的本地备份。不是将加密密钥库存储在远程服务(例如,经由因特网访问的服务器)上,而是将加密密钥库存储在本地重置抗性存储库中(例如,在计算设备的寄存器或非易失性存储器中)。因此,为了使用这里讨论的技术,计算设备不需要访问因特网,不需要向远程服务证明或以其他方式标识自己,等等。
尽管这里参考特定模块讨论了特定功能,但是应该注意,这里讨论的各个模块的功能可以分成多个模块,和/或多个模块的至少一些功能可以组合成单个模块。另外,这里讨论的执行动作的特定模块包括执行动作的特定模块本身,或者可替代地,特定模块调用或以其他方式访问执行动作(或者结合该特定模块执行动作)的另一组件或模块。因此,执行动作的特定模块包括执行动作的特定模块本身和/或由执行动作的特定模块调用或以其他方式访问的另一模块。
图6示出了总体上在600处的示例系统,其包括示例计算设备602,其表示可以实现本文描述的各种技术的一个或多个系统和/或设备。计算设备602可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其他合适的计算设备或计算系统。
如图所示的示例计算设备602包括彼此通信地耦合的处理系统604、一个或多个计算机可读介质606以及一个或多个I/O接口608。虽然未示出,但是计算设备602还可以包括系统总线或其他数据和命令传输系统,其将各种组件彼此耦合。系统总线可以包括任何一个或不同总线结构的组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线体系结构中的任何总线体系结构的处理器或本地总线。还构想了各种其他示例,例如控制线和数据线。
处理系统604表示使用硬件执行一个或多个操作的功能。因此,处理系统604被示为包括可以被配置为处理器、功能块等的硬件元件610。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件610不受形成它们的材料或其中采用的处理机制的限制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质606被示为包括存储器/存储设备612。存储器/存储设备612表示与一个或多个计算机可读介质相关联的存储器/存储设备容量。存储器/存储设备612可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储设备612可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质606可以以各种其他方式配置,如下面进一步描述的。
一个或多个输入/输出接口608表示允许用户向计算设备602输入命令和信息并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,配置为检测物理触摸的电容或其他传感器)、相机(例如,其可以采用诸如红外频率的可见或不可见波长来检测不涉及作为手势的触摸的移动),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备602可以以下面进一步描述的各种方式配置以支持用户交互。
计算设备602还包括解密密钥存储库614和重置抗性存储库616。解密密钥存储库614维护在解密之后的引导配置特定密钥。解密密钥存储库614可以是例如图1的解密密钥存储库114。重置抗性存储库616跨各种不同的设备重置或数据无效操作维护数据,例如重新格式化计算设备硬盘驱动器,重置密钥库中的数据或对密钥库中的数据重设密钥,重新安装操作系统等。重置抗性存储库616可以是例如图1的重置抗性存储库108。
这里可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。这里使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。这里描述的技术的特征是平台无关的,意味着可以在具有各种处理器的各种计算平台上实现这些技术。
所描述的模块和技术的实现方式可以存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质传输。计算机可读介质可以包括可以由计算设备602访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”是指能够持久存储信息的介质和/或设备和/或有形的存储,与仅仅信号传输、载波或信号本身相反。因此,计算机可读存储介质指的是非信号承载介质。计算机可读存储介质包括诸如以适于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据之类的信息的方法或技术实现的易失性和非易失性、可移动和不可移动介质和/或存储设备的硬件。计算机可读存储介质的示例可包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储设备、硬盘、磁带盒、磁带、磁盘存储或其他磁存储设备,或适于存储所需信息并且可由计算机访问的其他存储设备、有形介质或制品。
“计算机可读信号介质”指的是信号承载介质,其被配置为例如经由网络将指令发送到计算设备602的硬件。信号介质通常可以体现计算机可读指令、数据结构、程序模块或已调制数据信号中的其他数据,例如载波、数据信号或其他传输机制。信号介质还包括任何信息传递媒体。术语“已调制数据信号”表示以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其他无线介质的无线介质。
如先前所描述,硬件元件610和计算机可读介质606表示以硬件形式实施的指令、模块、可编程设备逻辑和/或固定设备逻辑,其可在一些实施例中用以实施至少一些本文描述的技术的方面。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅的其他实现方式或其他硬件设备。在此上下文中,硬件元件可以作为处理设备操作,该处理设备执行由硬件元件实现的指令、模块和/或逻辑定义的程序任务以及用于存储用于执行的指令的硬件设备,例如前面描述的计算机可读存储介质。
还可以采用前述的组合来实现本文描述的各种技术和模块。因此,软件、硬件或程序模块和其他程序模块可以实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件610实现的一个或多个指令和/或逻辑。计算设备602可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,作为可由计算设备602作为软件执行的模块的模块的实现方式可以至少部分地以硬件实现,例如,通过使用处理系统的计算机可读存储介质和/或硬件元件610。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备602和/或处理系统604)执行/操作,以实现本文描述的技术、模块和示例。
如图6中进一步所示,示例系统600使得无处不在的环境能够在个人计算机(PC)、电视设备和/或移动设备上运行应用程序时实现无缝的用户体验。在使用应用程序、玩视频游戏、观看视频等的同时从一个设备转换到下一个设备时,服务和应用程序在所有三种环境中运行基本相似,以获得共同的用户体验。
在示例系统600中,多个设备通过中央计算设备互连。中央计算设备可以是多个设备的本地设备,或者可以远离多个设备定位。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连体系结构使得能够跨多个设备递送功能,以向多个设备的用户提供共同且无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备递送体验,该体验既适合于设备又是所有设备共有的。在一个或多个实施例中,创建一类目标设备,并且为通用类设备定制体验。可以通过物理特征、使用类型或设备的其他共同特征来定义一类设备。
在各种实现方式中,计算设备602可以采用各种不同的配置,例如用于计算机616、移动设备618和电视620的使用。这些配置中的每一个包括可以具有通常不同的构造和能力的设备,因此可以根据一个或多个不同的设备类来配置计算设备602。例如,计算设备602可以被实现为计算机616类设备,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备602还可以被实现为包括移动设备的移动618类设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备602还可以被实现为电视620类设备,其包括在休闲观看环境中具有或连接到通常更大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等。
本文描述的技术可以由计算设备602的这些各种配置支持,并且不限于本文描述的技术的特定示例。该功能还可以全部或部分地通过使用分布式系统来实现,例如通过如下所述的平台624在“云”622上实现。
云622包括和/或代表资源626的平台624。平台624抽象云622的硬件(例如,服务器)和软件资源的底层功能。资源626可以包括在远离计算设备602的服务器上执行计算机处理时可以使用的应用和/或数据。资源626还可以包括通过因特网和/或通过订户网络(例如蜂窝或Wi-Fi网络)提供的服务。
平台624可以抽象资源和功能以将计算设备602与其他计算设备连接。平台624还可以用于抽象资源的缩放以提供相应的规模级别以满足对经由平台624实现的资源626的需求。因此,在互连的设备实施例中,本文描述的功能的实现方式可以分布在整个系统600中。例如,可以部分地在计算设备602上以及经由抽象云622的功能的平台624来实现功能。
在本文的讨论中,描述了各种不同的实施例。应意识到和理解的是,本文描述的每个实施方案可以单独使用或与本文描述的一个或多个其他实施方案结合使用。本文讨论的技术的其他方面涉及以下实施例中的一个或多个。
一种在计算设备中实现的方法,该方法包括:获得与计算设备相关联的主密钥;识别计算设备的当前引导配置;获取与当前引导配置相关联的加密的引导配置特定密钥;使用主密钥解密加密的引导配置特定密钥;并且使用解密的引导配置特定密钥来解密与从引导配置运行的计算设备的当前操作系统相关联的数据。
作为任何上述方法的替代或补充,可以是以下任何一个或组合:该方法还包括:仅在满足与引导配置特定密钥相关联的策略的情况下,才允许改变与当前操作系统相关联的数据;该方法还包括跨操作系统重新安装和操作系统重置来维护与当前操作系统相关联的数据;该方法还包括在可信平台模块中维护解密的引导配置特定密钥,并且维护与当前操作系统相关联的数据,而不管对在可信平台模块中的数据的无效;该方法还包括将与当前操作系统相关联的加密的数据维持在计算设备的重置抗性存储库中,该重置抗性存储库跨操作系统重新安装和操作系统重置持续存在;重置抗性存储库包括统一可扩展固件接口变量;该方法还包括:将加密的引导配置特定密钥维护在可信密钥服务中,并将加密的操作系统密钥从可信密钥服务备份到重置抗性存储库;来自不同供应商的操作系统具有不同的引导配置特定密钥,并且来自不同供应商的操作系统的不同操作系统中的每一个具有与操作系统相关联的不同数据;操作系统的不同版本具有不同引导配置特定密钥,并且操作系统的不同版本中的每个具有与操作系统相关联的不同数据。
一种计算设备,包括:重置抗性存储库,被配置为维护与特定操作系统相关联的一个或多个加密的秘密;包含加密密钥库的可信密钥服务;加密密钥库,被配置为维护特定于用于运行特定操作系统的引导配置的加密的引导配置密钥;以及可信密钥服务,被配置为解密加密的引导配置特定密钥,并且仅在特定操作系统正被引导或正在计算设备上运行的情况下才使用引导配置特定密钥来解密与特定操作系统相关联的数据。
作为任何上述计算设备的替代或补充,以下任何一个或组合:重置抗性存储库跨特定操作系统的重新安装、重置特定操作系统以及对可信密钥服务中数据的无效而维护与特定操作系统相关联的数据;重置抗性存储库包括一个或多个统一可扩展固件接口变量;包含可信平台模块的可信密钥服务;可信密钥服务还被配置为将加密密钥库备份到重置抗性存储库;特定操作系统包括操作系统的特定版本,并且可信密钥服务被配置为解密加密的引导配置特定密钥并且仅在操作系统的特定版本正在计算设备上被引导时,才使用引导配置特定密钥来解密与操作系统的特定版本相关联的数据。
一种计算设备,包括:一个或多个处理器;计算机可读存储介质,其上存储有多个指令,响应于所述一个或多个处理器的执行,使所述一个或多个处理器执行包括以下操作的操作:获得与所述计算设备相关联的主密钥;识别计算设备的当前引导配置;获取与当前引导配置相关联的加密的引导配置特定密钥;使用主密钥解密加密的引导配置特定密钥;并且使用解密的引导配置特定密钥来解密与从引导配置运行的计算设备的当前操作系统相关联的并由计算设备跨计算设备的重置维护的数据。
作为任何上述计算设备的替代或补充,以下任何一个或组合:操作还包括在可信平台模块中维护解密的引导配置特定密钥,并且维护与当前操作系统相关联的数据而不管在可信平台模块中数据的无效和操作系统的重新安装;该操作还包括将与当前操作系统相关联的加密的数据维护在跨操作系统重新安装和操作系统重置而持久存在的计算设备的重置抗性存储库中,将加密的引导配置特定密钥维护在可信密钥服务中,并且将加密的引导配置特定密钥从可信密钥服务备份到重置抗性存储库;来自不同供应商的操作系统具有不同的引导配置特定密钥,并且来自不同供应商的操作系统的不同操作系统中的每一个具有与操作系统相关联的不同数据;计算设备包括仅在满足与引导配置特定密钥相关联的策略的情况下才允许改变与当前操作系统相关联的数据。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但应理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。而是,公开了上述具体特征和动作作为实现权利要求的示例形式。

Claims (15)

1.一种在计算设备中实现的方法,所述方法包括:
获得与所述计算设备相关联的主密钥;
识别所述计算设备的当前引导配置;
获取与所述当前引导配置相关联的加密的引导配置特定密钥;
使用所述主密钥解密加密的所述引导配置特定密钥;以及
使用解密的所述引导配置特定密钥来解密与从所述引导配置运行的所述计算设备的当前操作系统相关联的数据。
2.如权利要求1所述的方法,还包括:仅在满足与所述引导配置特定密钥相关联的策略的情况下,才允许对与所述当前操作系统相关联的所述数据的改变。
3.如权利要求1或权利要求2所述的方法,还包括跨操作系统重新安装和操作系统重置来维护与所述当前操作系统相关联的所述数据。
4.如权利要求1至权利要求0中任一项所述的方法,还包括:将解密的所述引导配置特定密钥维护在可信平台模块中,并且维护与所述当前操作系统相关联的所述数据,而不管对可信平台模块中的数据的无效。
5.如权利要求1至4中任一项所述的方法,还包括:将与所述当前操作系统相关联的加密的数据维护在所述计算设备的重置抗性存储库中,所述重置抗性存储库跨操作系统重新安装和操作系统重置而持续存在。
6.如权利要求1至5中任一项所述的方法,所述重置抗性存储库包括统一可扩展固件接口变量。
7.如权利要求1至6中任一项所述的方法,还包括:
在可信密钥服务中维护加密的所述引导配置特定密钥;以及
将加密的操作系统密钥从所述可信密钥服务备份到所述重置抗性存储库。
8.如权利要求1至7中任一项所述的方法,来自不同供应商的操作系统具有不同的引导配置特定密钥,并且来自不同供应商的操作系统的不同操作系统中的每一个具有与所述操作系统相关联的不同数据。
9.如权利要求1至8中任一项所述的方法,操作系统的不同版本具有不同的引导配置特定密钥,并且所述操作系统的不同版本中的每一个具有与所述操作系统相关联的不同数据。
10.一种计算设备,包括:
重置抗性存储库,被配置为维护与特定操作系统相关联的一个或多个加密的秘密;
可信密钥服务,包含加密密钥库;
所述加密密钥库,被配置为维护特定于用于运行所述特定操作系统的引导配置的加密的引导配置密钥;以及
所述可信密钥服务,被配置为解密加密的所述引导配置特定密钥,并且仅在所述特定操作系统正被引导或正在所述计算设备上运行的情况下,才使用所述引导配置特定密钥来解密与所述特定操作系统相关联的数据。
11.如权利要求10所述的计算设备,所述重置抗性存储库跨所述特定操作系统的重新安装、所述特定操作系统的重置以及对所述可信密钥服务中的数据的无效而维护与所述特定操作系统相关联的所述数据。
12.如权利要求10或11所述的计算设备,所述重置抗性存储库包括一个或多个统一可扩展固件接口变量。
13.如权利要求10至12中任一项所述的计算设备,所述可信密钥服务包括可信平台模块。
14.根据权利要求10至12中任一项所述的计算设备,所述可信密钥服务还被配置为将所述加密密钥库备份到所述重置抗性存储库。
15.如权利要求10至14中任一项所述的计算设备,所述特定操作系统包括操作系统的特定版本,并且所述可信密钥服务被配置为,解密加密的所述引导配置特定密钥,并且仅在正在所述计算设备上引导所述操作系统的所述特定版本的情况下,才使用所述引导配置特定密钥来解密与所述操作系统的所述特定版本相关联的数据。
CN201780040515.6A 2016-06-30 2017-06-22 跨重置维护操作系统秘密 Active CN109416720B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/199,650 US10313121B2 (en) 2016-06-30 2016-06-30 Maintaining operating system secrets across resets
US15/199,650 2016-06-30
PCT/US2017/038727 WO2018005223A1 (en) 2016-06-30 2017-06-22 Maintaining operating system secrets across resets

Publications (2)

Publication Number Publication Date
CN109416720A true CN109416720A (zh) 2019-03-01
CN109416720B CN109416720B (zh) 2022-04-01

Family

ID=59285359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780040515.6A Active CN109416720B (zh) 2016-06-30 2017-06-22 跨重置维护操作系统秘密

Country Status (4)

Country Link
US (1) US10313121B2 (zh)
EP (1) EP3479283B1 (zh)
CN (1) CN109416720B (zh)
WO (1) WO2018005223A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114041275A (zh) * 2019-06-26 2022-02-11 微软技术许可有限责任公司 无服务器平台上的机密的生命周期管理

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016181836A (ja) * 2015-03-24 2016-10-13 キヤノン株式会社 情報処理装置、暗号装置、情報処理装置の制御方法、およびプログラム
US11018860B2 (en) * 2016-10-28 2021-05-25 Microsoft Technology Licensing, Llc Highly available and reliable secret distribution infrastructure
US10855464B2 (en) * 2016-11-23 2020-12-01 Vmware, Inc. Methods and apparatus to manage credentials in hyper-converged infrastructures
JP2018205817A (ja) * 2017-05-30 2018-12-27 富士通株式会社 情報処理装置、および管理プログラム
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10402567B2 (en) * 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
US10491736B2 (en) * 2017-08-28 2019-11-26 American Megatrends International, Llc Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
US10614254B2 (en) * 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10616944B2 (en) * 2018-07-06 2020-04-07 American Megatrends International, Llc Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS
US11716614B2 (en) * 2018-08-16 2023-08-01 Comcast Cable Communications, Llc Secured data derivation for user devices
US11095628B2 (en) * 2019-01-24 2021-08-17 Dell Products L.P. Device locking key management system
US11496519B1 (en) * 2019-11-29 2022-11-08 Amazon Technologies, Inc. Managing security in isolated network environments
CN111191217B (zh) * 2019-12-27 2022-12-13 华为技术有限公司 一种密码管理方法及相关装置
KR20210097379A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법
US11409541B2 (en) * 2020-02-18 2022-08-09 Dell Products L.P. Systems and methods for binding secondary operating system to platform basic input/output system
US11416614B2 (en) * 2020-07-01 2022-08-16 Dell Products L.P. Statistical detection of firmware-level compromises
US11809568B2 (en) * 2021-05-12 2023-11-07 International Business Machines Corporation Hypervisor having local keystore
US11392705B1 (en) 2021-07-29 2022-07-19 Netskope, Inc. Disk encryption key management for booting of a device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050141717A1 (en) * 2003-12-30 2005-06-30 International Business Machines Corporation Apparatus, system, and method for sealing a data repository to a trusted computing platform
CN101043328A (zh) * 2006-03-24 2007-09-26 华为技术有限公司 通用引导框架中密钥更新方法
CN101141463A (zh) * 2006-09-07 2008-03-12 国际商业机器公司 使能对数据的安全存取的方法和存储系统
US8842837B2 (en) * 2003-02-10 2014-09-23 Intel Corporation Method and apparatus for providing seamless file system encryption from a pre-boot environment into a firmware interface aware operating system
US20150324612A1 (en) * 2010-03-10 2015-11-12 Dell Products L.P. System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US20160170915A1 (en) * 2016-02-19 2016-06-16 Rajnarine Brigmohan Universal secure platform virtualization system and method thereof

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196100A1 (en) 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US8116455B1 (en) * 2006-09-29 2012-02-14 Netapp, Inc. System and method for securely initializing and booting a security appliance
EP2467778A4 (en) 2009-08-17 2013-01-16 Virtual Computer Inc LAYERED VIRTUAL FILES SYSTEM
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
US20120151223A1 (en) 2010-09-20 2012-06-14 Conde Marques Ricardo Nuno De Pinho Coelho Method for securing a computing device with a trusted platform module-tpm
JP5940159B2 (ja) * 2011-09-30 2016-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置
US8904162B2 (en) 2012-08-01 2014-12-02 Intel Corporation Methods and apparatus for performing secure BIOS upgrade
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9348997B2 (en) 2014-03-13 2016-05-24 Intel Corporation Symmetric keying and chain of trust
US9690943B2 (en) 2014-06-04 2017-06-27 Dell Products L.P. BIOS secure data management system
RU2586576C1 (ru) * 2014-12-05 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выполнения обращения к процедурам загрузочного драйвера

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8842837B2 (en) * 2003-02-10 2014-09-23 Intel Corporation Method and apparatus for providing seamless file system encryption from a pre-boot environment into a firmware interface aware operating system
US20050141717A1 (en) * 2003-12-30 2005-06-30 International Business Machines Corporation Apparatus, system, and method for sealing a data repository to a trusted computing platform
CN101043328A (zh) * 2006-03-24 2007-09-26 华为技术有限公司 通用引导框架中密钥更新方法
CN101141463A (zh) * 2006-09-07 2008-03-12 国际商业机器公司 使能对数据的安全存取的方法和存储系统
US20150324612A1 (en) * 2010-03-10 2015-11-12 Dell Products L.P. System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US20160170915A1 (en) * 2016-02-19 2016-06-16 Rajnarine Brigmohan Universal secure platform virtualization system and method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114041275A (zh) * 2019-06-26 2022-02-11 微软技术许可有限责任公司 无服务器平台上的机密的生命周期管理
CN114041275B (zh) * 2019-06-26 2024-02-23 微软技术许可有限责任公司 无服务器平台上的机密的生命周期管理

Also Published As

Publication number Publication date
EP3479283B1 (en) 2020-09-30
EP3479283A1 (en) 2019-05-08
US10313121B2 (en) 2019-06-04
WO2018005223A1 (en) 2018-01-04
US20180006815A1 (en) 2018-01-04
CN109416720B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
CN109416720A (zh) 跨重置维护操作系统秘密
US10956321B2 (en) Secure management of operations on protected virtual machines
CN106462718B (zh) 存储设备的快速数据保护
KR101861401B1 (ko) 장치 기능과 애플리케이션의 결합
CN107077574B (zh) 用于客户端设备的信任服务
US10423791B2 (en) Enabling offline restart of shielded virtual machines using key caching
US8886964B1 (en) Protecting remote asset against data exploits utilizing an embedded key generator
US11232222B2 (en) Access management system, access management method and program
CN107431924B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
CN103763313A (zh) 一种文档保护方法和系统
US11727115B2 (en) Secured computer system
US8656190B2 (en) One time settable tamper resistant software repository
US20220092155A1 (en) Protecting an item of software
JP2008123070A (ja) シンクライアントシステム及びシンクライアントシステムにおけるクライアント端末の表示プログラム
US11526633B2 (en) Media exfiltration prevention system
GB2434887A (en) Access control by encrypting stored data with a key based on a "fingerprint" of the device storing the data
JP2006178724A (ja) 共有ファイルのアクセス制御方法、システム、サーバ装置、及びプログラム
Proudler et al. TPM2 Operation
Proudler et al. Futures for Trusted Computing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant