CN105723377A - 供内核模式应用使用的安全区域 - Google Patents

供内核模式应用使用的安全区域 Download PDF

Info

Publication number
CN105723377A
CN105723377A CN201380080977.2A CN201380080977A CN105723377A CN 105723377 A CN105723377 A CN 105723377A CN 201380080977 A CN201380080977 A CN 201380080977A CN 105723377 A CN105723377 A CN 105723377A
Authority
CN
China
Prior art keywords
safety zone
kernel mode
storage
user model
page
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
CN201380080977.2A
Other languages
English (en)
Other versions
CN105723377B (zh
Inventor
B·C·邢
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105723377A publication Critical patent/CN105723377A/zh
Application granted granted Critical
Publication of CN105723377B publication Critical patent/CN105723377B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

各种实施例总体上涉及用于加载和运行供内核模式应用使用的安全区域的技术。一种用于提供对安全区域的内核模式访问的装置包括:内核模式安全区域驱动器,其用于提供针对内核模式应用的用户模式支持并且用于代表所述内核模式应用对安全区域进行初始化;以及用户模式安全区域管理器,其用于将来自所述内核模式应用的指令处理至所述安全区域。

Description

供内核模式应用使用的安全区域
技术领域
概括地说,本文所描述的实施例涉及安全区域(secureenclave)以及从内核模式应用访问安全区域。
背景技术
安全区域是存储器孔径(memoryaperture),应用可以通过该存储器孔径来处理机密信息。例如,一些安全区域是计算机系统中的特殊范围的物理存储器内的存储器位置。在每次上电时,在由计算机系统的处理器创建的临时密钥下对该存储器进行加密。因此,除了处理器自身以外,计算机系统中的任何硬件设备无法访问该存储器。
安全区域可以用于在计算机系统的任何其它组件和/或过程无法访问的存储器位置中处理机密信息。例如,可以在安全区域内对机密信息进行加密。仅可以在用于对机密信息进行加密的安全区域内对经加密的信息进行解密。因此,可以在不暴露用于对数据进行加密和/或解密的密钥的情况下对该数据进行加密和解密。因此,通过使用各种函数来调用安全区域和向安全区域传递任何必要的数据,应用可以与安全区域交互。由于安全区域的性质以及其使用特殊加密的存储器位置,与安全区域的交互被限制于在用户模式下操作的应用。在内核模式下操作的应用被阻止与安全区域交互。
如将意识到的,负责对计算机系统进行初始化的应用在内核模式下操作。例如,基本输入/输出系统(“BIOS”)和统一可扩展固件接口(“UEFI”)是对启动计算机系统所必须的各种平台设备(特别是操作系统所位于的存储设备)进行初始化的应用(或应用集合)。这些应用在内核模式下操作并且可以被称为执行用于计算机系统的“预启动”操作。在预启动期间,存在期望在安全区域中处理机密信息的情形。例如,防盗技术和全盘加密技术使用密钥(例如,以对计算设备进行解锁、对盘进行解密等)。密钥通常使用由用户选择的密码来加密。在预启动期间,用户提供密码并且密钥在存储器中被解密成明文。然而,因为该存储器没有受保护,密钥可能能够被另一个应用访问。
因此,存在由内核模式应用访问安全区域的需求,尤其是在预启动期间,提供由在内核模式下操作的应用对机密信息的安全处理。
附图说明
图1示出了用于实现由内核模式应用进行的至安全区域的访问的系统的实施例。
图2示出了用于实现由内核模式应用进行的至安全区域的访问的系统的实施例的一部分。
图3示出了根据实施例的逻辑流。
图4示出了存储介质的实施例。
图5示出了根据实施例的逻辑流。
图6示出了存储介质的实施例。
图7示出了根据实施例的处理架构。
具体实施方式
一般性参考本文所使用的记号和命名,可以从在计算机或计算机网络上执行的程序过程方面呈现随后的具体实施方式的各部分。这些过程性描述和表示由本领域技术人员用于将其工作的实质最有效地传达给本领域其它技术人员。在此,一般而言,过程被认为是导致期望的结果的自相容操作序列。这些操作是需要物理量的物理操纵的那些操作。通常,虽然不是必要地,但是这些量采取能够被存储、传输、组合、比较或以其它方式被操纵的电信号、磁性信号和光学信号的形式。主要由于常见使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时证明是方便的。然而,应当注意的是,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于那些量的方便的标签。
此外,经常在通常与由人类操作员执行的智力操作相关联的术语(例如添加或比较)中提及这些操纵。然而,在形成一个或多个实施例的部分的本文所描述的任何操作中,没有这样的人类操作员能力是必要的,或在大多数情况下是期望的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括如由存储在内的根据本文教导所编写的计算机程序选择性地激活或配置的通用数字计算机,和/或包括为了所需目的而特别地构造的装置。各种实施例还涉及用于执行这些操作的装置或系统。这些装置可以为了所需目的而被特别地构造,或者可以包括通用计算机。用于各种各样的这些机器的所需结构将根据给定的描述而变得显而易见。
现在参考附图,其中相似的附图标记贯穿全文用于指代相似的元件。在以下的描述中,为了解释的目的,阐述许多具体细节,以便提供对其的透彻理解。然而,可显而易见的是,可以在没有这些具体细节的情况下实施新颖的实施例。在其它实例中,以框图形式示出公知的结构和设备,以便于其描述。意图是覆盖权利要求的范围内的所有修改、等同物和替代方案。
图1是用于实现由内核模式应用进行的至安全区域的访问的系统1000的框图。系统1000包括计算设备100。计算设备100可以是多种类型的计算设备中的任意一种,包括但不限于:台式计算机系统、数据录入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数字助理、智能电话、数码相机、并入到衣服或可穿戴配件(例如,眼镜、手表等)中的穿戴在身上的计算设备、集成到运载工具(例如,汽车、自行车、轮椅等)中的计算设备、服务器、服务器集群、服务器场、站、无线站、用户设备等。实施例不限于该上下文。
总体而言,系统1000被配置为允许内核模式应用与安全区域交互。换言之,系统1000被配置为允许由在内核模式下操作的应用加载和运行安全区域。应当注意的是,虽然描述了用于加载和运行供内核模式应用使用的安全区域的单个计算设备(例如,计算设备100),但是该计算设备的特征可以并入到多个计算设备中。
如将意识到的,许多现代处理组件(例如,x86等)提供被称为“内核模式”和“用户模式”的不同操作模式。处理组件在这两种模式之间进行切换,取决于处理组件在针对其执行指令的特定应用具有什么权限。通常,用于初始化并向计算设备的组件(例如,驱动器、操作系统组件、预启动应用等)提供接口功能的应用具有内核模式权限,并且因此在内核模式下操作。换言之,当处理组件执行来自这些类型的应用的指令时,处理组件在内核模式下操作。相反,大多数其它应用具有用户模式权限。因此,当处理组件执行来自这些类型的应用的指令时,处理组件在用户模式下操作。
因此,本公开内容的各种实施例提供了可以加载和运行安全区域的内核模式应用。例如,执行“预启动”操作的应用(例如,BIOS、UEFI等)(其通常在内核模式下操作)可以加载和运行安全区域。在特定的示例中,防盗技术和/或全盘加密技术(其在计算机系统初始化时执行安全敏感处理)可以使用安全区域以便处理安全信息(例如,验证密码、解密必要的启动驱动器等)。
在各种实施例中,计算设备100包括处理器组件110、控制装置120、存储组件130和接口140中的一个或多个,其中接口140用于将计算设备100耦合到网络。处理器组件可以包括一个或多个模型专用的寄存器112(MSR)和安全区域页缓存114(EPC)。在一些示例中,EPC114可以存储在处理器110上的存储器缓存位置。在其他示例中,EPC114可以存储在另一个存储器位置(例如,本地存储器等)。在特别特定的示例中,EPC114可以存储在平台本地存储器(例如,DRAM等)的受加密地保护(例如,MEE等)的区域中。存储组件130存储控制例程131、机密信息132、内核模式应用200、安全区域300、页表142(PT)、全局描述符表144(GDT)和中断描述符表146(IDT)中的一个或多个。
在计算设备100中,控制例程131包括在以其作用作为主处理器组件的处理器组件110上操作的指令序列,以实现用于执行各种功能的逻辑单元。在执行控制例程131时,处理器组件110提供针对内核模式应用200的用户模式支持,所以内核模式应用200可以与安全区域300交互。
在执行控制例程131时,处理器组件110可以修改GDT142和IDT144以提供针对内核模式应用200的用户模式权限。另外,在执行控制例程131时,处理器组件110可以设定一个或多个MSR112以启用在用户模式和内核模式操作之间的切换。例如,可以设定一个或多个MSR112以启用SYSCALL/SYSRET指令,如将意识到的,SYSCALL/SYSRET指令在用户模式与内核模式之间切换处理组件110。
此外,在执行控制例程131时,处理器组件110可以将很多个存储器页添加至EPC114。另外,在执行控制例程131时,处理器组件110可以创建安全区域300。应当意识到,多种用于创建和管理安全区域的不同技术是可用的。具体的实施方案可以取决于处理组件的类型和/或操作系统的类型。例如,安全性防护技术可以用于创建安全区域300并且在安全区域300中处理机密信息132。然而,这只是一个示例,实施例不限于这方面。
在执行控制例程131时,处理器组件110可以另外切换到用户模式操作并且代表内核模式应用200在安全区域300中处理机密信息132。在一些示例中,如所陈述的,内核模式应用200是预启动应用。换言之,内核模式应用可以使得在加载操作系统之前由处理组件执行指令。例如,内核模式应用200可以是防盗应用、全盘加密应用等等。在一些示例中,在执行控制例程131时,一旦加载操作系统,处理器组件110就可以将安全区域300传递给该操作系统。
在各种示例中,PT142、GDT144、IDT146和EPC114可以是定义关于系统1000尤其是计算设备100的特性的各种数据结构。应当意识到,多种用于实现数据结构并且具体而言用于实现页表、全局描述符表、中断描述符表和区域页缓存的不同技术是已知的。具体的实施方案可以取决于计算设备100的类型、处理器110的类型、存储组件130的类型以及在计算设备100上执行的软件和/或操作系统。
在各种实施例中,处理器组件110可以包括多种多样的商业上可用的处理器组件中的任意一种,诸如举例来说,中央处理单元、图形处理单元或者其它任何处理单元。此外,这些处理器组件中的一个或多个可以包括多个处理器、多线程处理器、多核处理器(不管多个核共存在相同的管芯上还是单独的管芯上)和/或某种其它种类的多处理器架构(其中多个物理上分开的处理器以某种方式链接)。
在各种实施例中,存储组件130可以基于多种多样的信息存储技术,可能包括需要非中断的电力供应的易失性技术和可能包括需要使用机器可读存储介质(其可以是可移除的或可以不是可移除的)的技术。因此,这些存储装置中的每一个可以包括多种多样的存储设备类型(或类型的组合),包括但不限于:只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如,铁电聚合物存储器)、奥氏(ovonic)存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、一个或多个单独的铁磁盘驱动器、或被组织为一个或多个阵列的多个存储设备(例如,被组织为独立磁盘冗余阵列(或RAID阵列)的多个铁磁盘驱动器)。应当注意的是,虽然这些存储装置中的每一个都被描绘为单个块,但是这些存储装置中的一个或多个可以包括可基于不同存储技术的多个存储设备。因此,例如每个这些描绘的存储装置中的一个或多个可以表示以下的组合:光驱或闪速存储器卡读卡器;通过其可以在某种形式的机器可读存储介质上存储并传送程序和/或数据;铁磁盘驱动器,其用于在相对扩展的时间段内在本地存储程序和/或数据;以及一个或多个易失性固态存储器设备,其能够实现相对快地访问程序和/或数据(例如,SRAM或DRAM)。还应当注意的是,可以由基于同样的存储技术的多个存储组件来组成这些存储装置中的每一个存储装置,但是由于专门化使用,这些存储装置也可以分开地保持(例如,一些DRAM设备被用作主存储装置,而其它DRAM设备被用作不同的图形控制器的帧缓冲器)。
虽然未描绘,但是计算设备100可以通过网络(未示出)来与其它计算设备(未示出)交换用于传送机密信息的数据。另外,该计算设备可以经由网络来与其它计算设备交换完全与机密信息无关的其它数据。在各种实施例中,网络可以是可能被限制于在单个建筑物内或其它相对受限制的区域内延伸的单个网络,可以是可能延伸相当远距离的连接网络的组合,和/或可以包括互联网。因此,网络可以是基于通过其可以交换信号的多种通信技术(或通信技术的组合)中的任意一种,包括但不限于:采用电和/或光导体电缆布线的有线技术,以及采用红外线、射频或其它形式的无线传输的无线技术。
在各种实施例中,接口140可以采用各种各样的使得计算设备能够耦合到其它设备的信号传递技术中的任意一种,如已经描述的。这些接口中的每一个可以包括用于提供必需功能中的至少一些功能来实现这种耦合的电路。然而,这些接口中的每一个还可以至少部分地利用由处理器组件中的相应处理器组件(例如,用于实现协议栈或其它特征)执行的指令序列来实现。在采用电和/或光导体电缆布线的情况下,这些接口可以采用符合多种工业标准中的任意一种工业标准的信号传递和/或协议,包括但不限于:RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况下,这些接口可以采用符合多种工业标准中的任意一种工业标准的信号传递和/或协议,包括但不限于:IEEE802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线接入”);蓝牙;ZigBee;或蜂窝无线电话服务,诸如GSM及通用分组无线服务(GSM/GPRS)、CDMA/lxRTT、增强型数据速率全球演进(EDGE)、演进仅数据/优化(EV-DO)、数据和语音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4GLTE等。
图2是包括控制例程131的、图1的计算系统1000的实施例的部分的简化框图。具体而言,图2描绘了从内核模式应用访问安全区域的方面。此外,图2描绘了在内核模式1101下发生的那些操作和在用户模式1102下发生的那些操作。
在各种实施例中,控制例程131可以包括操作系统、设备驱动器和/或应用级例程(例如,所谓的在盘介质上提供的“软件套件”、从远程服务器获得的“小应用程序(applet)等”)中的一个或多个。在包括操作系统的情况下,该操作系统可以是多种适于计算设备100和/或处理器组件110的可用操作系统中的任意一种。在包括一个或多个设备驱动器的情况下,这些设备驱动器可以提供对多种其它组件中的任意一种组件的支持,不管是计算设备100的硬件组件还是软件组件。
更具体地转到图2,控制例程包括内核模式安全区域驱动器1311和用户模式安全区域管理器1312。内核模型安全区域驱动器1312可以修改页表条目以允许针对内核模式应用的用户模式访问。在一些示例中,内核模式安全区域驱动器1312可以修改PT142中的条目。例如,包含用户模式码的那些页可以在PT142中的其相应条目中被配置成用户页。在一些示例中,PT142中的每个条目的用户/监管比特可以设定为1,其指示与该条目相对应的存储器位置对于用户模式应用来说是可评价的。
内核模式安全区域驱动器1312还定位GDT144中的区段描述符以使得内核模式应用能够在内核模式与用户模式之间进行切换。例如,区段描述符可以被定位在GDT144内以便能够实现在用户模式与内核模式之间的切换。例如,SYSCALL/SYSRET、SYSENTRY/SYSEXIT、INT/IRET、或其它区段描述符(取决于实施方案)可以被定位在GDT144中。
内核模式安全区域驱动器1312还可以实现一个或多个MSR112。例如,SYSCALL/SYSRET指令可能要求适当地设定IA32_STAR和IA32_LSTARMSR。内核模式安全区域驱动器1312还可以修改IDT146以确定一个或多个中断例程的存储器地址进而在用户模式安全区域管理器1312以用户模式运行时捕获中断异常。
内核模式安全区域驱动器1311还在存储组件130上对安全区域300进行初始化。换言之,内核模式安全区域驱动器1311创建安全区域300。例如,内核模式安全区域驱动器1311可以将来自存储组件130的至少一个存储器页添加至EPC114。在一些示例中,内核模式安全区域驱动器1311可以支持创建多个安全区域。关于一些示例,内核模式安全区域驱动器1311可以支持每次创建单个安全区域,例如通过从EPC范围的一端开始,在EPC114中连续地分配页。
内核模式安全区域驱动器1311还可以将安全区域映像扩展到与安全区域300相关联的存储器页的位置(例如在EPC114中创建的一个或多个存储器页)。
用户模式安全区域管理器1312在内核模式1101与用户模式1102之间切换处理组件110的操作。例如,用户模式安全区域管理器1312可以通过使处理组件110执行GDT144中的区段描述符来在模式之间进行切换。
用户模式安全区域管理器1312还从内核模式应用200接收指令,并且使安全区域300运行,以便处理该指令。换言之,用户模式安全区域管理器从内核模式应用接收指令,该指令包括在安全区域中处理机密信息。用户模式安全区域管理器随后运行安全区域以便代表内核模式应用处理该机密信息。总体而言,用户模式安全区域管理器1312接收用于利用安全区域300“处理”机密信息132的指令。
例如,内核模式应用200可以是防盗应用,其询问用户的密码以验证用户身份。指令可以用于在安全区域300内部验证机密信息132(例如,接收到的密码等)。
在一些示例中,内核模式应用200可以是全盘加密应用,其询问用户的密码以解密盘,包括用于对操作系统进行继续启动和加载所必要的组件。指令可以用于使用所接收到的在安全区域300内部的密码来解密机密信息132(例如存储操作系统加载器、操作系统内核和/或操作系统启动驱动器等的经加密的存储器块)。
应当意识到,用于将机密信息131传递给安全区域300并且使安全区域300处理机密信息132的过程可以根据实施方案而变化。
用户模式安全区域管理器1312还向内核模式应用200提供对在安全区域300中处理机密信息132的指示。例如,用户模式安全区域管理器1312可以向内核模式应用200提供关于密码的验证成功的指示。在一些示例中,用户模式安全区域管理器1312可以向内核模式应用200提供经解密的存储器块(或经解密的存储器块的位置)。
内核模式安全区域驱动器1311还可以将安全区域300传递给操作系统(未示出)。如本文所使用的,将安全区域300“传递”给操作系统包括:允许安全区域300保持(例如,在EPC114中)为在运行时期间由操作系统使用。例如,如果内核模式应用200是全盘加密应用,则操作系统可能需要相同的安全区域300来在运行时期间对盘进行解密。因此,各种实施例提供了可以将安全区域300传递给操作系统。在一些示例中,内核模式安全区域驱动器1311可以向操作系统传送EPC114。另外,内核模式安全区域驱动器1311可以将安全区域300映射到操作系统的相同虚拟存储器地址。在一些示例中,可以使用ACPI表等来向操作系统传送EPC114。在一些示例中,可以使用ACPI表、UEFI变量、使用固定的存储器地址等来将安全区域300从预启动环境传送到运行时环境(例如,操作系统等)。
图3示出了逻辑流2000的一个实施例。逻辑流2000可以表示由本文所描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流2000可以示出由处理器组件110在执行至少控制例程131时执行的操作和/或由计算设备100的其它组件执行的操作。
在2100,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)从内核模式应用接收用于在安全区域中进行处理的指令。
例如,控制例程131的内核模式安全区域驱动器1311可以从内核模式应用200接收指令并且将该指令发送给用户模式安全区域管理器1312。在一些示例中,用户模式安全区域管理器1312可以直接从内核模式应用200接收指令。
在2200,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)启用针对内核模式应用的用户模式支持。
例如,控制例程131的内核模式安全区域驱动器1311可以启用针对内核模式应用200的用户模式支持。在一些示例中,内核模式安全区域驱动器可以修改PT142、GDT144、IDT146、MSR112以启用针对内核模式应用200的用户模式支持。
在2300,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)对安全区域进行初始化。
例如,控制例程131的内核模式安全区域驱动器1311可以将一个或多个页条目添加至EPC114、在与一个或多个页条目相对应的存储器位置中创建安全区域300、和/或将安全区域的映像扩展到该存储器位置。
在2400,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)运行安全区域以处理机密信息。
例如,用户模式安全区域管理器1312可以使安全区域处理机密信息132。在一些示例中,用户模式安全区域管理器1312可以使用针对安全区域的适当函数调用来调用安全区域300。
图4示出了存储介质的实施例。如图4中所示出的,存储介质包括存储介质3000。存储介质3000可以包括制品。在一些示例中,存储介质3000可以包括任何非暂时性计算机可读介质或机器可读介质,诸如光学、磁或半导体存储装置。存储介质3000可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流2000的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写存储器等。计算机可执行指令的示例可以包括任何适当类型的代码,诸如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。这些示例不限于该上下文。
图5示出了逻辑流4000的一个实施例。逻辑流4000可以表示由本文所描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流4000可以示出由处理器组件110在执行至少控制例程131时执行的操作和/或由计算设备100的其它组件执行的操作。
在4100,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)向操作系统传送安全区域页缓存的使用情况。例如,内核模式安全区域驱动器1311可以向操作系统传送EPC114的使用情况。换言之,内核模式安全区域驱动器1311可以向操作系统传送EPC114的使用情况,所以该操作系统可以分配来自存储组件130的一个或多个另外的存储器页,同时保持安全区域300不动。
在4200,通过执行控制例程的内核模式安全区域驱动器来使得用于实现由内核模式应用进行的对安全区域的访问的系统的计算设备的处理器组件(例如,系统1000的计算设备100的处理器组件110)向操作系统传送与安全区域相对应的存储器地址,所以该操作系统可以将该安全区域映射到虚拟存储器位置。例如,内核模式安全区域驱动器1311可以向操作系统传送与安全区域300相对应的虚拟存储器地址,所以该操作系统可以将安全区域300映射到相同的虚拟存储器地址(例如,在存储组件130中等)。
图6示出了存储介质的实施例。如图6中所示出的,存储介质包括存储介质5000。存储介质5000可以包括制品。在一些示例中,存储介质5000可以包括任何非暂时性计算机可读介质或机器可读介质,诸如光学、磁或半导体存储装置。存储介质5000可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流4000的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写存储器等。计算机可执行指令的示例可以包括任何适当类型的代码,诸如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。这些示例不限于该上下文。
图7示出了适用于实现如先前所描述的各种实施例的示例性处理架构6000的实施例。更具体地说,处理架构6000(或其变型)可以实现为计算设备100的部分。
处理架构6000可以包括通常在数字处理中采用的各种元件,包括但不限于:一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如该申请中所使用的,术语“系统”和“组件”旨在指代其中执行数字处理的计算设备的实体,该实体是硬件、硬件和软件的组合、软件、或执行中的软件,通过该所描绘的示例性处理架构提供该实体的示例。例如,组件可以是,但不限于,在处理器组件上运行的过程、处理器组件本身、可采用光学和/磁存储介质的存储设备(例如,硬盘驱动器、在阵列中的多个存储驱动器等)、软件对象、可执行的指令序列、执行的线程、程序、和/或整个计算设备(例如,整个计算机)。作为例示,在服务器上运行的应用和该服务器二者都可以是组件。一个或多个组件可以驻留在执行的过程和/或线程内,并且组件可以位于一个计算设备上和/或分布在两个或更多个计算设备之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。该协调可涉及信息的单向或双向交换。例如,组件可以以在通信介质上传输的信号的形式来传输信息。该信息可以实现为被分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这种信号中的一个或者可以是多个这种信号,并且可以通过各种连接和/或接口中的任意一种来或串行或基本并行地传输。
如所描绘的,在实现处理架构3000中,计算设备可以包括至少处理器组件950、存储装置960、至其它设备的接口990以及耦合955。如将解释的,取决于实现处理架构3000的计算设备的各个方面(包括其预期的使用和/或使用条件),这种计算设备还可以包括另外的组件,诸如但不限于显示接口985。
耦合955可以包括一个或多个总线、点到点互连、收发器、缓冲器、交叉点开关、和/或至少将处理器组件950通信地耦合至存储装置960的其它导体和/或逻辑单元。耦合955还可以将处理器组件950耦合至接口990、音频子系统970和显示接口985中的一个或多个(取决于这些和/或其它组件中的哪些也存在)。通过耦合955如此耦合处理器组件950,处理器组件950能够执行上文详尽地描述的针对用于实现处理架构3000的上述计算设备中的无论哪一个(哪一些)的任务中的各种任务。耦合955可以利用光学和/或电传送信号的多种技术中任意一种或技术的组合来实现。此外,耦合955的至少一部分可以采用合各种各样的工业标准中的任意一种工业标准的定时和/或协议,包括但不限于:加速图形端口(AGP)、CardBus、扩展工业标准架构(E-ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展)(PCI-X)、PCIExpress(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线,HyperTransportTM、QuickPath等。
如先前所论述的,处理器组件950(可能对应于处理器组件110)可以包括各种各样的商业上可用的处理器中的任意一种,其采用各种各样的技术中的任意一种并且利用以多种方式中的任意一种方式物理组合的一个或多个核来实现。
如先前所论述的,存储装置960(可能对应于存储组件130)可以基于各种各样的技术中的任意一种或技术的组合来由一个或多个不同的存储设备组成。更具体地说,如所描绘的,存储装置960可以包括易失性存储装置961(例如,基于RAM技术的一个或多个形式的固态存储装置)、非易失性存储装置962(例如,不需要恒定的电力供应来保存其内容的固态、铁磁或其它存储装置)和可移除介质存储装置963(例如,可移除盘或固态存储卡存储装置,信息可以通过可移除盘或固态存储卡存储装置在计算设备之间传送)。可能包括多个不同类型的存储装置的存储装置960的该描述认可在计算设备中普遍使用超过一种类型的存储设备,其中一种类型提供相对快的读取和写入能力,从而通过处理器组件950实现更快的数据操纵(但可能使用不断需要电力的“易失性”技术),而另一种类型提供相对高密度的非易失性存储(但可能提供相对慢的读取和写入能力)。
考虑到采用不同的技术的不同存储设备的通常不同的特性,此类不同存储设备也普遍通过不同存储控制器耦合至计算设备的其它部分,不同存储控制器通过不同接口耦合至其不同存储设备。举例而言,在易失性存储装置961存在并且是基于RAM技术的情况下,易失性存储装置961可通过存储控制器965a通信地耦合至耦合955,存储控制器965a向可能采用行和列寻址的易失性存储装置961提供适当的接口,并且其中存储控制器965a可以执行行刷新和/或其它维护任务以帮助保存存储在易失性存储装置961内的信息。举另一个示例,在非易失性存储装置962存在并且包括一个或多个铁磁和/或固态盘驱动器的情况下,非易失性存储装置962可以通过存储控制器965b通信地耦合至耦合955,存储控制器965b向可能采用信息块和/或柱面和扇区寻址的非易失性存储装置962提供适当的接口。举又一个示例,在可移除介质存储装置963存在并且包括一个或多个采用一片或多片机器可读存储介质969的光学和固态盘驱动器的情况下,可移除介质存储装置963可以通过存储控制器965c通信地耦合至耦合955,存储控制器965c向可能采用信息块寻址的可移除介质存储装置963提供适当的接口,并且其中存储控制器965c可以以特定于延长机器可读存储介质969的寿命的方式协调读取、擦除和写入操作。
易失性存储装置961和非易失性存储装置962中的一个或另一个可以包括具有机器可读存储介质的形式的制品,可以取决于每个制品所基于的技术在该制品上存储包括由处理器组件950可执行的指令序列以实现各种实施例的例程。举例而言,在非易失性存储装置962包括基于铁磁盘驱动器(例如,所谓的“硬盘”)的情况下,每个这种盘驱动器通常采用一个或多个旋转盘片,在该一个或多个旋转盘片上以各种图案来沉积和磁取向磁响应颗粒的涂层以便以类似于诸如软盘之类的存储介质的方式存储诸如指令序列之类的信息。举另一个示例,非易失性存储装置962可以由成排的固态存储设备构成以便以类似于紧凑型闪速卡的方式存储诸如指令序列之类的信息。此外,在计算设备中在不同时间采用不同类型的存储设备来存储可执行例程和/或数据是普遍的。因此,包括将由处理器组件950执行的指令序列以实现各个实施例的例程可以初始地存储在机器可读存储介质969上,并且可以随后采用可移除介质存储装置963将该例程复制到非易失性存储装置962以用于长期存储而不需要继续存在机器可读存储介质969和/或易失性存储装置961,从而在该例程被执行时,能够由处理器组件950实现更快的访问。
如先前所论述的,接口990(可能对应于接口140)可以采用与可用于将计算设备通信地耦合至一个或多个其它设备的多种通信技术的任意一种相对应的多种信号传递技术的任意一种。此外,各种形式的有线或无线信号传递的一种或两种可以用于使得处理器组件950能够与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其它计算设备交互,有可能是通过网络或互连的网络集合。在认识到必须通常得到任一计算设备支持的多种类型的信号传递和/或协议的通常大大不同的特性之后,接口990被描绘为包括多个不同接口控制器995a、995b和995c。接口控制器995a可以采用多种类型的有线数字串行接口或射频无线接口的任意一种来从用户输入设备(诸如所描述的键盘920)接收串行传输的消息。接口控制器995b可以采用多种基于电缆布线或无线信号传递、定时、和/或协议中的任意一种来通过所描绘的网络999(也许由一个或多个链路组成的网络、更小的网络、或许互联网)访问其它计算设备。接口995c可以采用多种导电电缆布线中的任意一种,从而使得能够使用串行或并行信号传输来将数据传送给所描绘的打印机925。可以通过接口990的一个或多个接口控制器来通信地耦合的设备的其它示例包括但不限于:话筒、遥控器、手写笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其它键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、用于监测人的运动以经由姿势和/或脸部表情接受由这些人以信号方式传递的命令和/或数据的照相机或相机阵列、激光打印机、喷墨打印机、机械机器人、铣床等。
在计算设备通信地耦合至(或许,实际上包括)显示器(例如,所描绘的示例显示器980,对应于显示器140和240)的情况下,实现处理架构3000的这种计算设备还可以包括显示接口985。虽然更多一般类型的接口可以用于通信地耦合至显示器,但是在显示器上可视地显示各种形式的内容时通常需要有点专门化的附加处理,以及所使用的基于电缆布线的接口的有点专门化的性质,通常使得提供不同的显示接口是期望的。可以由与显示器980通信耦合的显示接口985采用的有线和/或无线信令技术可以利用符合多种工业标准的任意一种工业标准的信令和/或协议,包括但不限于:多种模拟视频接口中的任意一种、数字视频接口(DVI)、DisplayPort等。
更一般地,本文所描述和描绘的计算设备的各个元件可以包括各种硬件元件、软件元件或二者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。然而,确定实施例是否使用硬件元件和/或软件元件来实现可以根据任意数量的因素而不同,这些因素诸如是期望的计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及如给定的实施方案所期望的其它设计或性能约束。
可以使用表述“一个实施例”或“一实施例”及其派生词对一些实施例进行描述。这些术语意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。在说明书各处出现的短语“在一个实施例中”并不必然全部指代相同实施例。此外,可以使用表述“耦合”和“连接”及其派生词对一些实施例进行描述。这些术语并不必然旨在作为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”对一些实施例进行描述,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以指两个或更多个元件彼此并非直接接触,但是仍然彼此协作或交互。此外,来自不同实施例的各方面或元素可以进行组合。
要强调的是,本公开内容的摘要被提供为允许读者快速地确定本技术公开内容的性质。对提交的该摘要,应理解为:该摘要将不用于解释或限制权利要求的范围或含义。此外,在前述的具体实施方式中,可以看出各种特征在单个实施例中出于精简本公开内容的目的被聚集到一起。这种公开方法不应被解释为反映要求保护的实施例相比各个权利要求中明确记载的特征而言需要更多特征的意图。更确切地说,如所附权利要求所反映出的,本发明的主题少于单个公开的实施例的所有特征。因此,所附权利要求在此被并入到具体实施方式中,其中每个权利要求独立作为单独实施例。在所附权利要求中,术语“包括”和“其中”分别被用作相应术语“包括”和“其中”的通俗英语等同物。此外,术语“第一”、“第二”、“第三”等只用作标记,并不旨在对其对象施加数值要求。
上文已描述的内容包括所公开的架构的示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域普通技术人员可以认识到,许多其它组合和排列也是可能的。因此,该新颖架构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变型。现在,具体公开内容转至提供属于进一步实施例的示例。下文提供的示例并不旨在作为限制。
示例1:一种用于提供对安全区域的内核模式访问的装置。所述装置包括:内核模式安全区域驱动器,其用于提供针对内核模式应用的用户模式支持,所述内核模式安全区域驱动器用于代表所述内核模式应用在计算设备的存储组件上对安全区域进行初始化;以及用户模式安全区域管理器,其用于处理来自所述内核模式应用的指令,所述指令包括在所述安全区域中处理机密信息。
示例2:根据示例1所述的装置,所述内核模式安全区域驱动器用于修改页表条目以允许所述内核模式应用对所述安全区域的用户模式访问。
示例3:根据示例1至2中任一示例所述的装置,所述内核模式安全区域驱动器用于定位全局描述符表中的区段描述符以使得所述内核模式应用能够在内核模式与用户模式之间进行切换。
示例4:根据示例3所述的装置,所述内核模式安全区域驱动器用于使得模型专用的寄存器能够提供在内核模式与用户模式之间的切换。
示例5:根据示例1至4中任一示例所述的装置,所述内核模式安全区域驱动器用于创建所述安全区域。
示例6:根据示例5所述的装置,所述内核模式安全区域驱动器用于将来自所述存储组件的至少一个存储器页添加至安全区域页缓存,所述至少一个存储器页对应于所述安全区域。
示例7:根据示例6所述的装置,所述内核模式安全区域驱动器用于将安全区域映像扩展到所述至少一个存储器页。
示例8:根据示例4至7中任一示例所述的装置,所述用户模式安全区域管理器用于至少部分地基于所述全局描述符表中的所述区段描述符和/或所述模型专用的寄存器来使得内核模式应用在内核模式与用户模式权限之间进行切换。
示例9:根据示例1至8中任一示例所述的装置,所述用户模式安全区域管理器用于从所述内核模式应用接收所述指令并且使所述安全区域处理所述指令。
示例10:根据示例1至9中任一示例所述的装置,其中,所述指令用于验证密码,所述用户模式安全区域管理器用于向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码。
示例11:根据示例10所述的装置,所述用户模式安全区域管理器用于从所述安全区域接收与对所述密码的验证相对应的指示。
示例12:根据示例1至9所述的装置,其中,所述指令用于对经加密的存储器块进行解密,所述用户模式安全区域管理器用于向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密。
示例13:根据示例12所述的装置,所述用户模式安全区域管理器用于从所述安全区域接收所述经加密的存储器块的内容并且将所述内容发送给所述内核模式应用。
示例14:根据示例1至13中任一示例所述的装置,所述内核模式安全区域驱动器用于将所述安全区域传递给操作系统。
示例15:根据示例6所述的装置,所述内核模式安全区域驱动器用于向操作系统传送所述安全区域页缓存的使用情况,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来分配来自所述存储组件的一个或多个另外的存储器页;以及向所述操作系统传送与所述安全区域相对应的存储器地址,所述操作系统被配置为至少部分地基于所述存储器地址来将所述安全区域映射到虚拟存储器位置。
向操作系统传送所述安全区域页缓存的使用情况,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来为所述安全区域分配来自所述存储组件的一个或多个另外的存储器页,并且将所述安全区域映射到选定的虚拟存储器位置。
示例16:根据示例1至15中任一示例所述的装置,其中,所述内核模式应用是全盘加密应用或防盗应用。
示例17:根据示例13所述的装置,其中,所述内核模式应用是全盘加密应用并且所述经加密的存储器块包括操作系统加载器、操作系统内核和/或操作系统启动驱动器。
示例18:根据示例11所述的装置,其中,所述内核模式应用是防盗应用并且所述密码对应于用户验证密码。
示例19:根据示例1所述的装置,其中,所述安全区域是在由处理器组件创建的临时密钥下进行加密的。
示例20:一种允许由内核模式应用进行的对安全区域的访问的计算系统。所述计算系统包括:处理组件;用于由所述处理组件执行的计算系统固件接口,所述计算系统固件接口用于启动内核模式应用,所述内核模式应用用于初始化计算机系统的一部分;用于由所述处理组件执行的内核模式安全驱动器,所述内核模式安全驱动器用于提供针对所述内核模式应用的用户模式支持并且用于代表所述内核模式应用在存储组件上对安全区域进行初始化;以及用于由所述处理组件执行的用户模式安全区域管理器,所述用户模式安全区域管理器用于处理来自所述内核模式应用的指令,所述指令包括在所述安全区域中处理机密信息。
示例21:根据示例19所述的计算设备,所述内核模式安全区域驱动器用于修改页表条目以允许所述内核模式应用对所述安全区域的用户模式访问。
示例22:根据示例19至20中任一示例所述的计算设备,所述内核模式安全区域驱动器用于定位全局描述符表中的区段描述符以使得所述内核模式应用能够在内核模式与用户模式之间进行切换。
示例23:根据示例21所述的计算设备,所述内核模式安全区域驱动器用于使得模型专用的寄存器能够提供在内核模式与用户模式之间的切换。
示例24:根据示例19至22中任一示例所述的计算设备,所述内核模式安全区域驱动器用于创建所述安全区域。
示例25:根据示例23所述的计算设备,所述内核模式安全区域驱动器用于将所述存储组件的至少一个存储器页添加至安全区域页缓存,所述至少一个存储器页对应于所述安全区域。
示例26:根据示例24所述的计算设备,所述内核模式安全区域驱动器用于将安全区域映像扩展到所述至少一个存储器页。
示例27:根据示例22至25中任一示例所述的计算设备,所述用户模式安全区域管理器用于至少部分地基于所述全局描述符表中的所述区段描述符和/或所述模型专用的寄存器来使得所述内核模式应用在内核模式与用户模式权限之间切换。
示例28:根据示例19至26中任一示例所述的计算设备,所述用户模式安全区域管理器用于从所述内核模式应用接收所述指令并且使所述安全区域处理所述指令。
示例29:根据示例19至27中任一示例所述的计算设备,其中,所述指令用于验证密码,所述用户模式安全区域管理器用于向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码。
示例30:根据示例28所述的计算设备,所述用户模式安全区域管理器用于从所述安全区域接收与对所述密码的验证相对应的指示。
示例31:根据示例19至27所述的计算设备,其中,所述指令用于对经加密的存储器块进行解密,所述用户模式安全区域管理器用于向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密。
示例32:根据示例30所述的计算设备,所述用户模式安全区域管理器用于从所述安全区域接收所述经加密的存储器块的内容并且将所述内容发送给所述内核模式应用。
示例33:根据示例19至31中任一示例所述的计算设备,所述内核模式安全区域驱动器用于将所述安全区域传递给操作系统。
示例34:根据示例24所述的计算设备,所述内核模式安全区域驱动器用于:向操作系统传送所述安全区域页缓存的使用情况,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来分配来自所述存储组件的一个或多个另外的存储器页;以及向所述操作系统传送与所述安全区域相对应的存储器地址,所述操作系统被配置为至少部分地基于所述存储器地址来将所述安全区域映射到虚拟存储器位置。
示例35:根据示例19至33中任一示例所述的计算设备,其中,所述内核模式应用是全盘加密应用或防盗应用。
示例36:根据示例31所述的计算设备,其中,所述内核模式应用是全盘加密应用并且所述经加密的存储器块包括操作系统加载器、操作系统内核和/或操作系统启动驱动器。
示例37:根据示例29所述的计算设备,其中,所述内核模式应用是防盗应用并且所述密码对应于用户验证密码。
示例38:根据示例20所述的计算设备,其中,所述安全区域是在由处理器组件创建的临时密钥下进行加密的。
示例39:一种用于利用内核模式应用访问安全区域的计算实现的方法。所述方法包括:从内核模式应用接收用于在安全区域中处理机密信息的指令;启用针对所述内核模式应用的用户模式支持;在计算设备的存储组件上对所述安全区域进行初始化;以及运行所述安全区域以处理所述机密信息。
示例40:根据示例39所述的计算实现的方法,还包括:发起所述内核模式应用。
示例41:根据示例39至40中任一示例所述的计算实现的方法,启用针对所述内核模式应用的用户模式支持包括:修改页表条目以提供针对所述内核模式应用的用户模式支持。
示例42:根据示例39至41中任一示例所述的计算实现的方法,还包括:定位全局描述符表中的区段描述符以便在内核模式与用户模式之间进行切换。
示例43:根据示例39至42中任一示例所述的计算实现的方法,对所述安全区域进行初始化包括:为所述安全区域分配来自所述存储组件的至少一个存储器页;以及将所述至少一个存储器页添加至与所述安全区域相对应的区域页缓存。
示例44:根据示例43所述的计算实现的方法,还包括:在所述至少一个存储器页中创建所述安全区域。
示例45:根据示例43所述的计算实现的方法,还包括:将安全区域映像的内容扩展到所述至少一个存储器页。
示例46:根据示例39至45中任一示例所述的计算实现的方法,其中,所述指令用于验证密码,所述方法还包括:向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码。
示例47:根据示例46所述的计算实现的方法,还包括:从所述安全区域接收与对所述密码的验证相对应的指示。
示例48:根据示例39至45所述的计算实现的方法,其中,所述指令用于对经加密的存储器块进行解密,所述方法还包括:向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密。
示例49:根据示例48所述的计算实现的方法,还包括:从所述安全区域接收所述经加密的存储器块的内容并且将所述内容发送给所述内核模式应用。
示例50:根据示例39至49中任一示例所述的计算实现的方法,还包括:将所述安全区域传递给操作系统。
示例51:根据示例43所述的计算实现的方法,还包括:向操作系统传送所述安全区域页缓存的使用情况,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来分配来自所述存储组件的一个或多个另外的存储器页;以及向所述操作系统传送与所述安全区域相对应的存储器地址,所述操作系统被配置为至少部分地基于所述存储器地址来将所述安全区域映射到虚拟存储器位置。
示例52:根据示例39至51中任一示例所述的计算实现的方法,其中,所述内核模式应用是全盘加密应用或防盗应用。
示例53:根据示例49所述的计算实现的方法,其中,所述内核模式应用是全盘加密应用并且所述经加密的存储器块包括操作系统加载器、操作系统内核和/或操作系统启动驱动器。
示例54:根据示例47所述的计算实现的方法,其中,所述内核模式应用是防盗应用并且所述密码对应于用户验证密码。
示例55:一种用于利用内核模式应用访问安全区域的装置。所述装置包括:用于从内核模式应用接收用于在安全区域中处理机密信息的指令的单元;用于启用针对所述内核模式应用的用户模式支持的单元;用于在计算设备的存储组件上对所述安全区域进行初始化的单元;以及用于运行所述安全区域以处理所述机密信息的单元。
示例56:根据示例55所述的装置,还包括:用于发起所述内核模式应用的单元。
示例57:根据示例55或56中任一示例所述的装置,所述用于启用针对所述内核模式应用的用户模式支持的单元包括:用于修改页表条目以提供针对所述内核模式应用的用户模式支持的单元。
示例58:根据示例55至57中任一示例所述的装置,还包括:用于定位全局描述符表中的区段描述符以便在内核模式与用户模式之间进行切换的单元。
示例59:根据示例55至58中任一示例所述的装置,所述用于对所述安全区域进行初始化的单元包括:用于为所述安全区域分配来自所述存储组件的至少一个存储器页的单元;以及用于将所述至少一个存储器页添加至与所述安全区域相对应的区域页缓存的单元。
示例60:根据示例59所述的装置,还包括:用于在所述至少一个存储器页中创建所述安全区域的单元。
示例61:根据示例59所述的装置,还包括:用于将安全区域映像的内容扩展到所述至少一个存储器页的单元。
示例62:根据示例55至61中任一示例所述的装置,其中,所述指令用于验证密码,所述装置还包括:用于向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码的单元。
示例63:根据示例62所述的装置,还包括:用于从所述安全区域接收与对所述密码的验证相对应的指示的单元。
示例64:根据示例55至61所述的装置,其中,所述指令用于对经加密的存储器块进行解密,所述装置还包括:用于向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密的单元。
示例65:根据示例64所述的装置,还包括:用于从所述安全区域接收所述经加密的存储器块的内容并且将所述内容发送给所述内核模式应用的单元。
示例66:根据示例55至65中任一示例所述的装置,还包括:用于将所述安全区域传递给操作系统的单元。
示例67:根据示例59所述的装置,还包括:用于向操作系统传送所述安全区域页缓存的使用情况的单元,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来分配来自所述存储组件的一个或多个另外的存储器页;以及用于向所述操作系统传送与所述安全区域相对应的存储器地址的单元,所述操作系统被配置为至少部分地基于所述存储器地址来将所述安全区域映射到虚拟存储器位置。
示例68:根据示例55至67中任一示例所述的装置,其中,所述内核模式应用是全盘加密应用或防盗应用。
示例69:根据示例65所述的装置,其中,所述内核模式应用是全盘加密应用并且所述经加密的存储器块包括操作系统加载器、操作系统内核和/或操作系统启动驱动器。
示例70:根据示例63所述的装置,其中,所述内核模式应用是防盗应用并且所述密码对应于用户验证密码。
示例71:至少一种机器可读存储介质,其包括指令,所述指令在由计算设备执行时,使所述计算设备执行根据示例39-54中任一示例所述的方法。

Claims (25)

1.一种用于提供对安全区域的内核模式访问的装置,包括:
内核模式安全区域驱动器,其用于提供针对内核模式应用的用户模式支持,所述内核模式安全区域驱动器用于代表所述内核模式应用在计算设备的存储组件上对安全区域进行初始化;以及
用户模式安全区域管理器,其用于处理来自所述内核模式应用的指令,所述指令包括在所述安全区域中处理机密信息。
2.根据权利要求1所述的装置,所述内核模式安全区域驱动器用于修改页表条目以允许所述内核模式应用对所述安全区域的用户模式访问。
3.根据权利要求1至2中任一项所述的装置,所述内核模式安全区域驱动器用于定位全局描述符表中的区段描述符以使得所述内核模式应用能够在内核模式与用户模式之间进行切换。
4.根据权利要求3所述的装置,所述内核模式安全区域驱动器用于使得模型专用寄存器能够提供在内核模式与用户模式之间的切换。
5.根据权利要求1至2中任一项所述的装置,所述内核模式安全区域驱动器用于创建所述安全区域。
6.根据权利要求5所述的装置,所述内核模式安全区域驱动器用于将来自所述存储组件的至少一个存储器页添加至安全区域页缓存,所述至少一个存储器页对应于所述安全区域。
7.根据权利要求6所述的装置,所述内核模式安全区域驱动器用于将安全区域映像扩展到所述至少一个存储器页。
8.根据权利要求1至2中任一项所述的装置,所述用户模式安全区域管理器用于接收来自所述内核模式应用的所述指令并且使所述安全区域处理所述指令。
9.根据权利要求1所述的装置,其中,所述指令用于验证密码,所述用户模式安全区域管理器用于向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码。
10.根据权利要求1所述的装置,其中,所述指令用于对经加密的存储器块进行解密,所述用户模式安全区域管理器用于向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密。
11.根据权利要求1所述的装置,所述内核模式安全区域驱动器用于将所述安全区域传递给操作系统。
12.一种用于利用内核模式应用访问安全区域的计算实现的方法,所述方法包括:
从内核模式应用接收在安全区域中处理机密信息的指令;
启用针对所述内核模式应用的用户模式支持;
在计算设备的存储组件上对所述安全区域进行初始化;以及
运行所述安全区域以处理所述机密信息。
13.根据权利要求12所述的计算实现的方法,启用针对所述内核模式应用的用户模式支持包括:修改页表条目以提供针对所述内核模式应用的用户模式支持。
14.根据权利要求12至13中任一项所述的计算实现的方法,还包括:定位全局描述符表中的区段描述符以便在内核模式与用户模式之间进行切换。
15.根据权利要求12至13中任一项所述的计算实现的方法,对所述安全区域进行初始化包括:
为所述安全区域分配来自所述存储组件的至少一个存储器页;以及
将所述至少一个存储器页添加至与所述安全区域相对应的区域页缓存。
16.根据权利要求15所述的计算实现的方法,还包括:将安全区域映像的内容扩展到所述至少一个存储器页。
17.根据权利要求12至13中任一项所述的计算实现的方法,其中,所述指令用于验证密码,所述方法还包括:向所述安全区域发送所述密码并且指示所述安全区域来在所述安全区域中验证所述密码。
18.根据权利要求12至13中任一项所述的计算实现的方法,其中,所述指令用于对经加密的存储器块进行解密,所述方法还包括:向所述安全区域发送所述经加密的存储器块并且指示所述安全区域来在所述安全区域中对所述经加密的存储器块进行解密。
19.根据权利要求12至13中任一项所述的计算实现的方法,还包括:将所述安全区域传递给操作系统。
20.根据权利要求19所述的计算实现的方法,还包括:
向操作系统传送所述安全区域页缓存的使用情况,使得所述操作系统能够至少部分地基于所述安全区域页缓存的使用情况来为所述安全区域分配来自所述存储组件的一个或多个另外的存储器页;以及
将所述安全区域映射到选定的虚拟存储器位置。
21.至少一种机器可读存储介质,其包括指令,所述指令在由计算设备执行时,使所述计算设备进行以下操作:
从内核模式应用接收在安全区域中处理机密信息的指令;
启用针对所述内核模式应用的用户模式支持;
在计算设备的存储组件上对所述安全区域进行初始化;以及
运行所述安全区域以处理所述机密信息。
22.根据权利要求21所述的至少一种机器可读存储介质,还包括在被执行时使所述计算设备执行以下操作的指令:
修改页表条目以允许针对所述内核模式应用的用户模式支持;以及
定位全局描述符表中的区段描述符以便在内核模式与用户模式之间进行切换。
23.根据权利要求21至22中任一项所述的至少一种机器可读存储介质,还包括在被执行时使所述计算设备执行以下操作的指令:
为所述安全区域分配来自所述存储组件的至少一个存储器页;以及
将所述至少一个存储器页添加至与所述安全区域相对应的区域页缓存。
24.一种用于利用内核模式应用访问安全区域的装置,包括:
用于从内核模式应用接收在安全区域中处理机密信息的指令的单元;
用于启用针对所述内核模式应用的用户模式支持的单元;
用于在计算设备的存储组件上对所述安全区域进行初始化的单元;以及
用于运行所述安全区域以处理所述机密信息的单元。
25.根据权利要求24所述的装置,还包括:
用于向操作系统传送所述安全区域页缓存的使用情况的单元,所述操作系统被配置为至少部分地基于所述安全区域页缓存的使用情况来分配来自所述存储组件的一个或多个另外的存储器页;以及
用于向所述操作系统传送与所述安全区域相对应的存储器地址的单元,所述操作系统被配置为至少部分地基于所述存储器地址来将所述安全区域映射到虚拟存储器位置。
CN201380080977.2A 2013-12-17 2013-12-17 供内核模式应用使用的安全区域 Expired - Fee Related CN105723377B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/075598 WO2015094176A1 (en) 2013-12-17 2013-12-17 Secure enclaves for use by kernel mode applications

Publications (2)

Publication Number Publication Date
CN105723377A true CN105723377A (zh) 2016-06-29
CN105723377B CN105723377B (zh) 2019-06-04

Family

ID=53403299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080977.2A Expired - Fee Related CN105723377B (zh) 2013-12-17 2013-12-17 供内核模式应用使用的安全区域

Country Status (5)

Country Link
US (1) US10691618B2 (zh)
EP (1) EP3084614B1 (zh)
KR (1) KR101802806B1 (zh)
CN (1) CN105723377B (zh)
WO (1) WO2015094176A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708634A (zh) * 2016-12-09 2017-05-24 福建省天奕网络科技有限公司 Vr应用设备与厂家设备的通讯方法及其系统
WO2023124593A1 (en) * 2021-12-31 2023-07-06 International Business Machines Corporation Protection of kernel from code reuse attacks

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864861B2 (en) * 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
US10083196B2 (en) * 2015-02-04 2018-09-25 Delphix Corporation Creating secure virtual databases storing masked data
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10884952B2 (en) 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US9794366B1 (en) 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
IE20170239A1 (en) * 2016-11-14 2018-05-16 Google Llc System of Enclaves
US9817675B1 (en) * 2017-01-31 2017-11-14 Hytrust, Inc. Methods and systems for attaching an encrypted data partition during the startup of an operating system
US10505730B2 (en) 2017-02-06 2019-12-10 Red Hat, Inc. Secure data management
EP3418933A1 (de) * 2017-06-19 2018-12-26 Siemens Aktiengesellschaft Edge-gerät und verfahren zum betrieb eines edge-geräts
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
US10324838B2 (en) * 2017-10-12 2019-06-18 International Business Machines Corporation Virtually addressable hardware global kernel segment table
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US10635605B2 (en) 2018-03-13 2020-04-28 International Business Machines Corporation Shared memory inter-enclave communication
US10831506B2 (en) * 2018-04-05 2020-11-10 Phoenix Technologies Ltd. Local oversight and provisioning of BIOS activity
US10762244B2 (en) * 2018-06-29 2020-09-01 Intel Corporation Securely exposing an accelerator to privileged system components
US11068614B2 (en) * 2018-08-30 2021-07-20 Dell Products, L.P. System-level data security based on environmental properties
US11106781B2 (en) * 2019-02-01 2021-08-31 Dell Products L.P. Secondary OS device unlocking system
US10747875B1 (en) * 2020-03-19 2020-08-18 Cyberark Software Ltd. Customizing operating system kernels with secure kernel modules
US11836514B2 (en) * 2021-01-19 2023-12-05 Dell Products L.P. System and method of utilizing memory medium fault resiliency with secure memory medium portions
US11665174B2 (en) * 2021-01-29 2023-05-30 Raytheon Company Method and system for multi-tiered, multi-compartmented DevOps
WO2023048707A1 (en) * 2021-09-22 2023-03-30 Hewlett-Packard Development Company, L.P. Encrypted storage
US20240070328A1 (en) * 2022-08-25 2024-02-29 Dell Products L.P. System and method for hardware management through operation update

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149726A1 (en) * 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications
CN101553784A (zh) * 2006-11-28 2009-10-07 微软公司 将可执行代码编译到较不可信的地址空间中
WO2011078855A1 (en) * 2009-12-22 2011-06-30 Intel Corporation Method and apparatus to provide secure application execution
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves
CN203101322U (zh) * 2012-10-24 2013-07-31 重庆川仪分析仪器有限公司 微量氧分析仪

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8181176B2 (en) * 2010-06-21 2012-05-15 Intel Corporation Uniform storage device access using partial virtual machine executing within a secure enclave session
US11165565B2 (en) * 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149726A1 (en) * 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications
CN101553784A (zh) * 2006-11-28 2009-10-07 微软公司 将可执行代码编译到较不可信的地址空间中
WO2011078855A1 (en) * 2009-12-22 2011-06-30 Intel Corporation Method and apparatus to provide secure application execution
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves
CN203101322U (zh) * 2012-10-24 2013-07-31 重庆川仪分析仪器有限公司 微量氧分析仪

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MATTHEW HOEKSTRA ET AL: "Using innovative instructions to create trustworthy software solutions", 《PROCEEDINGS OF THE 2ND INTERNATIONAL WORKSHOP ON HARDWARE AND ARCHITECTURAL SUPPORT FOR SECURITY AND PRIVACY》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708634A (zh) * 2016-12-09 2017-05-24 福建省天奕网络科技有限公司 Vr应用设备与厂家设备的通讯方法及其系统
CN106708634B (zh) * 2016-12-09 2020-08-25 福建省天奕网络科技有限公司 Vr应用设备与厂家设备的通讯方法及其系统
WO2023124593A1 (en) * 2021-12-31 2023-07-06 International Business Machines Corporation Protection of kernel from code reuse attacks
US11995178B2 (en) 2021-12-31 2024-05-28 International Business Machines Corporation Protection of kernel from code reuse attacks

Also Published As

Publication number Publication date
CN105723377B (zh) 2019-06-04
EP3084614A1 (en) 2016-10-26
KR20160098430A (ko) 2016-08-18
KR101802806B1 (ko) 2017-11-29
US10691618B2 (en) 2020-06-23
EP3084614A4 (en) 2017-07-19
WO2015094176A1 (en) 2015-06-25
EP3084614B1 (en) 2020-03-04
US20160283404A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
CN105723377A (zh) 供内核模式应用使用的安全区域
US10911250B2 (en) Challenge response authentication for self encrypting drives
US9589138B2 (en) Computing device boot software authentication
US9208354B2 (en) Techniques for securing use of one-time passwords
US9646216B2 (en) Multiple user biometric for authentication to secured resources
GB2561030A (en) Smart security storage
US10747884B2 (en) Techniques for coordinating device boot security
US10235526B2 (en) Secure resume from a low power state
US10664178B2 (en) Integrity protection for system management mode
US20150195236A1 (en) Techniques for implementing a secure mailbox in resource-constrained embedded systems
US10331453B2 (en) System management mode trust establishment for OS level drivers
JP4739206B2 (ja) 2つのメモリー間でのセキュリティデータの転送

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190604

Termination date: 20191217

CF01 Termination of patent right due to non-payment of annual fee