CN100386707C - 生成用在隔离执行环境中的密钥层组 - Google Patents
生成用在隔离执行环境中的密钥层组 Download PDFInfo
- Publication number
- CN100386707C CN100386707C CNB018074014A CN01807401A CN100386707C CN 100386707 C CN100386707 C CN 100386707C CN B018074014 A CNB018074014 A CN B018074014A CN 01807401 A CN01807401 A CN 01807401A CN 100386707 C CN100386707 C CN 100386707C
- Authority
- CN
- China
- Prior art keywords
- key
- security kernel
- processor
- platform
- software code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Abstract
本发明是一种生成用在受保护平台的隔离执行环境中的密钥层组的方法、装置和系统。为了对运行在隔离执行模式中的特定代码进行加密,使用了包括用于标准对称加密算法的一系列对称密钥的密钥层组。受保护平台包括一个处理器,所述处理器配置成正常执行模式和隔离执行模式之一。密钥存储器存储一个初始密钥,对于平台来说所述初始密钥是唯一的。基于所述初始密钥,一个位于受保护平台中的加密密钥生成器生成所述密钥层组。所述加密密钥生成器生成一系列对称的加密密钥,用于保护被装载的软件代码的秘密。
Description
技术领域
本发明涉及微处理器。特别地,本发明涉及平台的安全性。
背景技术
微处理器和通信技术的发展为超越传统经营方式的应用开辟了很多机会。电子商务(E-commerce)和企业对企业(B2B)交易现在非常流行,并在全球市场中持续增长。不幸的是,虽然现代微处理器系统为用户进行经营、通信和交易提供了方便高效的方法,但它们在恶意攻击前也是脆弱的。这些攻击的几个实例包括病毒、入侵、破坏安全和篡改。因此为保护计算机系统的完整性和提高用户的信任度,计算机安全性正变得越来越重要。
恶意攻击引起的威胁有几种方式。由黑客发起的远程入侵攻击可能扰乱一个连有上千个甚至上百万个用户的系统的正常运转。一个病毒程序可能破坏单用户平台的代码和/或数据。
用于防止攻击的现有技术有许多缺陷。反病毒程序只能扫描和检测已知病毒。使用加密或其它安全技术的安全协处理器或智能卡在处理速度、存储容量和灵活性方面存在局限性。此外,重新设计操作系统会引起软件兼容性方面的问题,并且在开发过程中需要巨额的投资。
发明内容
根据本发明的一个方面,提供了一种装置,包含:密钥存储器,用来存储对于受保护平台是唯一的初始密钥;和受保护平台中的加密密钥生成器,用来在初始密钥基础上生成一个密钥层组,所述受保护平台有一个配置成正常执行模式和隔离执行模式之一的处理器,所述加密密钥生成器包含密钥发生器,它可以利用装载软件代码密钥对被装载的软件代码ID值进行散列从而生成一个被装载的软件代码密钥,所述加密密钥生成器进一步包含密钥选择器,它可以在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
根据本发明的另一个方面,提供了一种方法,包含:存储对受保护平台是唯一的初始密钥;和在受保护平台初始密钥基础上生成一个密钥层组,所述受保护平台有一个配置成正常执行模式和隔离执行模式之一的处理器;利用一个装载软件代码密钥对被装载的软件代码ID值进行散列,生成一个被装载的软件代码密钥;在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
根据本发明的又一个方面,提供了一种受保护平台,包含:芯片组;一个耦合到芯片组的存储器,其中含有一个隔离存储区域;耦合到芯片组和存储器的处理器,所述处理器有一种正常执行模式和一种隔离执行模式,当处理器处于隔离执行模式时,处理器访问隔离存储区域;用于存储对于所述平台是唯一的初始密钥的密钥存储器;和加密密钥生成器,用于在初始密钥基础上生成密钥层组,所述加密密钥生成器包含密钥发生器,它可以利用装载软件代码密钥对被装载的软件代码ID值进行散列从而生成一个被装载的软件代码密钥,所述加密密钥生成器进一步包含密钥选择器,它可以在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
附图说明
通过下面对本发明的详细描述,本发明的特性和优点会变得很清楚,其中:
图1A是根据本发明一个实施例的操作系统的示意图。
图1B是表示根据本发明一个实施例的操作系统和处理器中各不同元素的可访问性的示意图。
图1C示出了一个计算机系统,其中可以实现本发明的一个实施例。
图2是根据本发明一个实施例的加密密钥(cipher key)生成器的示意图。
图3是根据本发明一个实施例生成密钥层组(key hierarchy)的进程的示意图。
图4示出了根据本发明一个实施例保存初始密钥用于数据备份和恢复的系统的示意图。
图5是根据本发明一个实施例生成密钥层组的进程的流程图。
具体实施方式
在下面的说明中,使用一些术语用来讨论本发明的一些特性。例如,“平台”包括硬件设备和/或对其中存储的信息执行不同功能的软件。平台的例子包括,但不局限于,计算机(例如台式机、膝上型电脑、手提式电脑、服务器、工作站等),桌面办公设备(例如打印机、扫描仪、传真机等),无绳电话,电视机顶盒等。“软件模块”包括执行特定功能的代码。“安全内核(nub)”指一系列指令代码,可能是软件模块中的一个代码子集。“连接”广义地定义为一个或多个信息承载介质(例如电线、光纤、电缆、总线或无线信号技术)。
另外,术语“信息”定义成一个或多个比特的数据、地址和/或控制。“散列函数”是一个数学函数或其它函数,能够执行一个单向转换,把信息转换成固定长度的表示方式。通常,这种表示方式称为“散列值”或“摘要”,它的长度大大地小于原始信息。
本发明是一种生成用在受保护平台的隔离执行环境中的密钥层组的方法、装置和系统。为了对运行在隔离执行模式中的特定代码进行加密,使用了包括用于标准对称加密算法的一系列对称密钥的密钥层组。受保护平台包括一个处理器,这个处理器配置成正常执行模式和隔离执行模式之一。密钥存储器存储一个初始密钥,对平台来说这个初始密钥是唯一的。基于这个初始密钥,一个位于受保护平台中的加密密钥生成器生成所述密钥层组。所述加密密钥生成器生成一系列对称的加密密钥,用于保护被装载的软件代码的秘密。
在下面的说明中,为了解释的目的,阐述了许多的细节以便彻底理解本发明。但是,对于本领域的技术人员来说很明显,要实现本发明,这些特定的细节并不是必须的。在别的例子中,一些公知的电子结构和电路用方框图来表示以便清楚地描述本发明。
体系概述
提供计算机系统或平台安全性的一个主要原则就是隔离执行体系结构的概念。隔离执行体系结构包括直接或间接与计算机系统或平台的操作系统交互的硬件或软件组件的逻辑和物理定义。一个操作系统和处理器可以有多层结构,称之为环,对应于不同的操作模式。一个环就是被设计用来在操作系统内执行专门任务的一个硬件和软件组件的逻辑分支。这个分支通常是基于优先级的级别,也就是改变所述平台的能力大小。例如环-0是最内层的环,处在层级结构中的最高层。环-0包括最关键、优先级最高的组件。另外,环-0中的模块可以访问低优先级的数据,但反之则不行。环-3是最外层的环,处在层级结构中的最低层。环-3通常包括用户级或应用级,优先级最低。环-1和环-2表示中间的环,优先级递减。
图1A是本发明一个实施例的逻辑操作体系50的示意图。逻辑操作体系50是一个操作系统和处理器的组件的抽象。逻辑操作体系50包括环-010,环-1 20,环-2 30,环-3 40和一个处理器安全内核装载器52。处理器安全内核装载器52是一个处理器执行程序(Processor Executive,PE)处置器(handler)的实例。PE处置器用于处理和/或管理处理器执行程序(PE),这将在后面讨论。逻辑操作体系50有两种操作模式:正常执行模式和隔离执行模式。逻辑操作体系50中的每一个环都可以运行在两种模式。处理器安全内核装载器52只能运行在隔离执行模式。
环-0 10包括两部分:正常执行环-0 11和隔离执行环-0 15。正常执行环-0 11包括操作系统中的关键软件模块,常称之为内核。这些软件模块包括基本操作系统(例如内核)12,软件驱动程序13,硬件驱动程序14。隔离执行环-015包括操作系统(OS)安全内核16和处理器安全内核18。OS安全内核16和处理器安全内核18分别是OS执行程序(OperatingSystem Executive,OSE)和处理器执行程序(PE)的一个实例。OSE和PE是运行在受保护环境中的执行实体的一部分,这个受保护环境与一个隔离区域和隔离执行模式相关联。处理器安全内核装载器52是一个保存在系统中的芯片组上的受保护引导程序装载器代码,负责把处理器安全内核18从处理器或芯片组装载到一个隔离区域,这将在后面解释。
类似地,环-1 20,环-2 30和环-3 40分别包括正常执行环-1 21,环-2 31,环-3 41和隔离执行环-1 25,环-2 35,环-3 45。特别地,正常执行环-3包括N个应用程序421到42N,隔离执行环-3包括K个小程序461到46K。
隔离执行体系结构的一个概念是在系统存储器中生成一个隔离区,它受到计算机系统中的芯片组和处理器的双重保护。这个隔离区也可以在高速缓冲存储器中,由翻译后援缓冲器(Translation Look asideBuffer,TLB)访问检查来保护。此外,这个隔离区还可以细分成多个隔离存储区域,这将在后面讨论。只有处理器前端总线(FSB)才被允许访问这个隔离区,要使用特殊的总线(例如,存储器读和写)周期,称之为隔离读写周期。这些特殊的总线周期也用来侦听。这些隔离读写周期由运行在隔离执行模式的处理器发出。这个隔离执行模式由处理器的一个特权指令结合处理器安全内核装载器52进行初始化。处理器安全内核装载器52校验并装载环-0安全内核软件模块(例如处理器安全内核18)到隔离区域。这个处理器安全内核18为隔离执行提供与硬件相关的服务。
处理器安全内核18的一个任务是校验并装载环-0 OS安全内核16到隔离区域,并产生密钥层组的根,这个根对于平台、处理器安全内核18和OS安全内核16的结合是唯一的。处理器安全内核18提供了隔离区域的初始生成和低层管理,包括校验、装载和记录操作系统安全内核16,并且管理用于保护操作系统安全内核秘密的对称密钥。处理器安全内核18也可以为由其它硬件提供的低层安全性服务提供应用编程接口(API)的抽象。
操作系统安全内核16提供与基本OS 12(例如操作系统中的非保护段)的服务的连接,提供隔离区域内的页面管理,并负责把环-3应用程序模块45,包括小程序461到46K装载到分配在隔离区域中的受保护页面之中。操作系统安全内核16也可以装载环-0的支持模块。
操作系统安全内核16也可以选择支持隔离区域和普通存储器(例如非隔离区域)之间的数据页面调动。如果这样,OS安全内核16也要负责在把隔离区域的页面调到普通存储器之前对隔离区域页面进行加密和散列,以及在恢复页面时对页面内容进行检查。隔离模式的小程序461到46K和它们的数据对于所有的软件攻击具有防篡改和防监视功能,这些攻击可能来自于其它小程序,也可能来自于非隔离空间的应用程序(例如421到42N)、动态链接库(DLL)、驱动程序,甚至是基本操作系统12。只有处理器安全内核18或OS安全内核16可以干涉或监视这些小程序的执行。
图1B是表示本发明一个实施例的操作系统10和处理器中各不同元素的可访问性的示意图。为了图示清楚,只画出了环-0 10和环-3 40中的元素。在逻辑操作体系50中的各个不同元素根据它们的环的层次和执行模式访问一个可访问物理存储器60。
可访问物理存储器60包括一个隔离区域70和一个非隔离区域80。隔离区域70包括小程序页面72和安全内核页面74。非隔离区域80包括应用程序页面82和操作系统页面84。只有运行在隔离执行模式的操作系统和处理器中的元素可以访问隔离区域70。环-0操作系统和处理器中的所有元素都可以访问非隔离区域80。
正常执行环-0 11包括基本操作系统12,软件驱动程序13和硬件驱动程序14,它既可以访问OS页面84,也可以访问应用程序页面82。正常执行环-3包括应用程序421到42N,它只能访问应用程序页面82。但是,正常执行环-0 11和环-3 41都不能访问隔离区域70。
隔离执行环-0 15包括OS安全内核16和处理器安全内核18,既可以访问隔离区域70,包括小程序页面72和安全内核页面74,也可以访问非隔离区域80,包括应用程序页面82和OS页面84。隔离执行环-3 45包括小程序461到46K,只能访问应用程序页面82和小程序页面72。小程序461到46K驻留于隔离区域70。
图1C是可以实现本发明一个实施例的平台100的示意图。平台100包括一个处理器110,一个主机总线120,一个存储器控制中心(MCH)130,一个系统存储器140,一个输入/输出控制中心(ICH)150,一个非易失性存储器或系统闪存160,一个随机数发生器166,一个大容量存储设备170,输入/输出设备175,一个令牌总线180,一个主板(MB)令牌182,一个读取器184和令牌186。MCH 130可以集成到芯片组中,这个芯片组可以集成很多功能,例如隔离执行模式、主机-外设总线接口、存储器控制。类似地,ICH 150也可以与MCH 130一起或单独集成到芯片组中,来执行I/O功能。为清楚起见,没有画出所有的外设总线。可以设想,平台100也可以包括外设总线,例如外设部件互连(PCI),加速图形端口(AGP),工业标准体系结构(ISA)总线和通用串行总线(USB)等。
处理器110代表任一种体系的中央处理器,例如复杂指令集计算机(CISC)和精简指令集计算机(RISC),超长指令字体系(VLIW)以及混合体系。在一个实施例中,处理器110是与Intel体系结构(IA)处理器兼容的处理器,例如奔腾(PentiuTM)系列、IA-32TM和IA-64TM。处理器110包括正常执行模式112和隔离执行电路115。正常执行模式112是处理器110运行在非保护环境中的模式,或者是运行在不具有隔离执行模式所提供的安全特性的正常环境中的模式。隔离执行电路115提供一种运行机制使处理器110可以运行在隔离执行模式上。隔离执行电路115为隔离执行模式提供软件和硬件支持。这种支持包括配置隔离执行,定义隔离区域,定义(例如解码和执行)隔离指令,生成隔离访问总线周期和产生隔离模式中断。
在一个实施例中,平台100可以是一个单处理器系统,例如桌面计算机,它只有一个主中央处理单元,如处理器110。在别的实施例中,平台100可以包括多个处理器,例如处理器110,110a,110b等,如图1C所示。这样,平台100可以是一个包括任意多个处理器的多处理器计算机系统。例如,多处理器平台100可以作为一个服务器或工作站环境的一部分。处理器110的基本说明和操作会在下面详细讨论。本领域的技术人员可以理解,处理器110的基本说明和操作可以应用到图1C中所示的处理器110a和110b上,也可以应用到根据本发明一个实施例的多处理器平台100中的任意数目的处理器。
处理器110也可以有多个逻辑处理器。逻辑处理器,有时也称为线程,是物理处理器中的一个功能单元,它具有按照一定划分规则分配的一个体系结构状态和物理资源。在本发明申请文本中,“线程”和“逻辑处理器”的意思是相同的。一个多线程处理器是一个拥有多个线程或多个逻辑处理器的处理器。一个多处理器系统(例如包括处理器110,110a和110b的系统)可以拥有多个多线程处理器。
主机总线120提供接口信号,以允许处理器110或处理器110,110a和110b与其它处理器或设备如MCH 130进行通信。除了正常模式,主机总线120还为隔离访问总线模式提供相应的通信接口信号,用于处理器110被配置成隔离执行模式时的存储器读写周期。隔离访问总线模式也施加于在处理器110处于隔离执行模式时开始的存储器访问。如果地址在隔离区域地址范围之内并且处理器110初始化成隔离执行模式,那么隔离访问总线模式也施加于指令预读取和超高速缓存回写周期。如果使用隔离访问总线周期并且处理器110初始化成隔离执行模式,那么处理器110响应侦听周期会转到隔离区域地址范围之内的缓冲存储地址。
MCH 130控制并配置存储器和输入/输出设备,例如系统存储器140和ICH 150。MCH 130提供接口电路用来识别和服务施加于包括隔离存储器读写周期的存储参考总线周期的隔离访问。此外,MCH 130还包含存储器范围寄存器(如基址寄存器和长度寄存器),用来表示系统存储器140中的隔离区域。一旦配置好,MCH 130拒绝任何没有使用隔离访问总线模式的对隔离区域的访问。
系统存储器140存储系统代码和数据。系统存储器140一般是由动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)来实现的。系统存储器140包括可访问物理存储器60(在图1B中示出)。可访问物理存储器包括一个被装载的操作系统142,隔离区域70(在图1B中示出)和一个隔离控制和状态空间148。被装载的操作系统142是操作系统中被装载到系统存储器140中的那一部分。被装载的操作系统142一般是由引导代码从大容量存储器中装载的,引导代码保存于一个引导存储器中,例如引导只读存储器(ROM)。隔离区域70(在图1B中示出)是由处理器110运行在隔离执行模式时定义的存储器区域。对隔离区域的访问是由处理器110和/或MCH130或其它集成了隔离区域功能的芯片组限制和执行的。隔离控制和状态空间148是一个类似于输入/输出(I/O)的独立地址空间,由处理器110和/或MCH 130来定义。隔离控制和状态空间148主要包含隔离执行控制和状态寄存器。隔离控制和状态空间148并不与任何现有地址空间交叉,并可以使用隔离总线周期访问。系统存储器140也可以包括其它未在图中示出的程序或数据。
ICH 150代表系统中的一个具有隔离执行功能的已知的单独的点。为清楚起见,只画出一个ICH 150。平台100也可以有很多与ICH 150类似的ICH。当有多个ICH时,选择一个指定的ICH来控制隔离区域的配置和状态。在一个实施例中,这种选择是由外部的短接引线(strappingpin)来完成的。本技术领域中的人员知道,也可以使用其它方法来选择,包括使用可编程配置寄存器。除了传统的I/O功能外,ICH 150还有很多功能,用来支持隔离执行模式。特别地,ICH 150包括隔离总线周期接口152,处理器安全内核装载器52(在图1A中示出),摘要存储器154,加密密钥存储器155,加密散列单元157,隔离执行逻辑处理管理器156和令牌总线接口159。
隔离总线周期接口152包括与隔离总线周期信号接口的电路,用来识别和服务隔离总线周期,例如隔离读写总线周期。
如图1A所示,处理器安全内核装载器52包括处理器安全内核装载器代码和它的摘要(例如散列)值。处理器安全内核装载器52由适当的隔离指令(例如Iso-Init)调用并转移到隔离区域70。处理器安全内核装载器52从系统闪存中拷贝处理器安全内核代码18(例如存储在非易失性存储器160中的处理器安全内核代码18)到隔离区域70,校验并记录它的完整性,并管理一个用于保护处理器安全内核秘密的对称密钥。在一个实施例中,处理器安全内核装载器52是由只读存储器(ROM)实现的。为了安全起见,处理器安全内核装载器52是固定不变、防篡改、不可替换的。
摘要存储器154存储装被载软件模块的摘要(例如散列)值。特别地,我们希望摘要存储器存储审核日志的散列值(或计算散列值所需要的值的状态)。审核日志包含很多审核日志条目。每一个审核日志条目至少包括被装载的代码,例如处理器安全内核18,操作系统OS安全内核16及其它被装载到隔离区域中的关键模块(例如环-0模块)的加密散列值。特别地,审核日志是一系列数据,用来表示平台100启动后哪些信息被成功地装载到系统存储器140中了。例如,这些表示性的数据可以是平台100当前启动周期中每一个被装载到系统存储器140中的软件模块的散列值。这样,审核日志可以作为标记装载到平台中的各种信息(例如用来控制隔离执行的配置和操作的环-0代码)的指纹,并用来验证当前隔离执行的状态。
加密密钥存储器155保存一个对称的加密/解密密钥,例如初始密钥(在后面会详细讨论)。初始密钥对于平台100是唯一的。在一个实施例中,初始密钥是由一个外部硬件随机数发生器产生的并在制造时就编程到输入/输出控制中心(ICH)150的熔丝中。在另一个实施例中,初始密钥是由平台自身来产生的;当平台100第一次启动时,使用平台内部的硬件随机数发生器166来产生。在两个例子中,初始密钥都是存储在加密密钥存储器155的受保护非易失性存储器中。但是,应该认识到初始密钥也可以存储在平台别的区域中的受保护非易失性存储器中。
加密散列单元157包括对输入信息执行单向散列函数的逻辑。术语“单向”说明没有一个简单的逆函数可以从固定长度的散列值中恢复出可识别的原始信息。散列函数的例子包括由加州雷德伍德RSA数据安全公司提供的MD5算法;或者是安全散列算法(SHA-1),它符合1995年出版的安全散列标准FIPS 180-1,即“联邦信息处理标准公告”(“FederalInformation Processing Standards Publication”,1995年4月17日)。加密散列单元157可以用来执行散列函数以产生处理器安全内核密钥、OS安全内核密钥和小程序密钥。这些密钥会在后面详细讨论。
隔离执行逻辑处理管理器156负责管理运行在隔离执行模式的逻辑处理器的运行。在一个实施例中,隔离执行逻辑处理管理器156包括一个逻辑处理器计数寄存器,该寄存器追踪参与隔离执行模式的逻辑处理器的数目。令牌总线接口159与令牌总线180相接口。
非易失性存储器160存储非易失性的信息。一般地,非易失性存储器160是由闪存来实现的。非易失性存储器160包括处理器安全内核18。
处理器安全内核18提供隔离区域(在系统存储器140中)的初始建立和低级管理,包括校验、装载和记录操作系统安全内核16,并且负责管理用于保护OS安全内核秘密的对称密钥。处理器安全内核18也可以为由其它硬件提供的低层安全性服务提供应用编程接口(API)的抽象。处理器安全内核18也可以由原始设备制造商(OEM)或操作系统销售商(OSV)通过启动盘发行。
大容量存储设备170存储一些归档信息,例如代码(例如处理器安全内核18)、程序、文件、数据、应用程序(例如421到42N)、小程序(例如461到46K)和操作系统。大容量存储设备170可以包括光盘CD ROM 172,软盘174,硬盘驱动器176和任何其它磁存储或光存储设备。大容量存储设备170提供一种可以读取机器可读介质的装置。
I/O设备175可以包括执行I/O功能的任何I/O设备。I/O设备175的例子包括输入设备控制器(例如键盘、鼠标、跟踪球、定点设备),媒介卡(例如声卡、视频卡、图形卡),网卡及其它外围控制器。
令牌总线180提供了ICH 150与系统中不同令牌的接口。令牌是一种执行指定的具有安全性的输入/输出功能的设备。令牌具有与智能卡相似的特点,包括至少一对保留的公共/私有密钥对,并具有利用私有密钥对数据进行签名(sign)的功能。连接到令牌总线180的令牌的例子包括主板令牌182,令牌读取器184和其它便携式令牌186(例如智能卡)。在ICH150中的令牌总线接口159通过令牌总线180与ICH 150连接,以确保当被命令来检验隔离执行状态时,相应的令牌(例如主板令牌182和令牌186)只对有效的隔离摘要信息进行签名。为了安全起见,令牌应该连接到摘要存储器。
当在软件中实现时,本发明中的各元素是完成各种必要任务的代码段。程序或代码段可以存储在机器可读介质中,如处理器可读介质,或者以载有计算机数据信号的载波或调制载波的形式通过传输介质传输。处理器可读介质包括任何可以存储或传输信息的介质。处理器可读介质的例子包括电子电路、半导体存储设备、只读存储器(ROM)、闪存、可擦可编程只读存储器(EPROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)连接等。计算机数据信号包括任何可通过传输介质传播的任何信号,传输介质的例子有电子网络通道、光纤、空气、电磁波、射频连接等。代码段可以通过计算机网络,如Internet,Intranet等下载。
生成用在隔离执行环境中的密钥层组
本发明是一种生成用在受保护平台的隔离执行环境中的密钥层组的方法、装置和系统。为了对运行在隔离执行模式中的特定代码进行加密,使用了用于标准对称加密算法的一系列对称密钥组成的密钥层组。
图2是本发明一个实施例的加密密钥生成器200的示意图。这个加密密钥生成器包括一个密钥发生器210和一个密钥选择器220。当前在隔离执行环境中活动(也就是已经被装载到隔离存储器区域中)的软件代码有一个与之相关的装载软件代码密钥225。当前活动的装载软件代码用于装载随后的软件代码。随后被装载到隔离执行环境中的软件代码有一个与之相关的ID值,用被装载的软件代码ID值228来表示。ID值228可以是被装载的软件代码的散列值。但是,它也可以是被装载的软件代码的经证实的(approved)ID值。
在一个实施例中,ID值228是一个被装载的软件代码的经证实的ID值,该ID值228可以以证书的方式传送到当前活动的装载软件代码,所述证书通过保存在活动的装载软件代码中的一个证书校验根密钥进行校验。在一个实施例中,证书由证书内容和证书内容的数字签名组成。证书内容可以至少包含被装载的软件代码的散列值和ID值228。一个可以使用的证书的例子是SPKI授权证书(参见IETF RFC 2693,InternetEngineering Task Force Request for Comments(因特网工程任务组征求意见)2693,“SPKI Certificate Theory(SPKI证书理论)”,Ellison等,1999年9月)。但是,本领域技术人员应该认识到,有许多不同的证书格式可以使用。
装载软件代码密钥225和被装载的软件代码ID值228输入到密钥发生器210。然后密钥发生器210为被装载的软件代码生成一个被装载的软件代码密钥230。密钥发生器210使用一个具有加密散列性质的函数生成被装载的软件代码密钥230。这样,在一个实施例中,密钥发生器210可以使用散列函数。密钥发生器对装载软件代码密钥225和被装载的软件代码ID值228进行散列,生成被装载的软件代码密钥230。例如,可以使用基于SHA-1的HMAC(参见IETF RFC 2104,Internet Engineering TaskForce Request for Comments(因特网工程任务组征求意见)2104,“HMAC:Keyed-Hashing for Message Authentication(HMAC:用于消息认证的加密散列)”,Krawcyzk等,1997年2月)。但是,应该认识到另外一些被广泛接受的加密散列函数也可以使用。进一步,在一个实施例中,加密散列单元157(图1C)可以用来执行散列函数。同样,应该认识到有许多不同类型的其它单向函数也可以用来生成被装载的软件代码密钥230。
通常,被装载的软件代码密钥230的长度与散列函数输出值的长度相同,但它的长度可以是任意的,只要它有足够的位数能保证加密的安全性。但是,被装载的软件代码密钥230也许不够小,不适合用于所希望的对称加密算法,例如三重DES(数据加密标准)或AES(由美国国家标准与技术研究所(National Institute of Standards and Technology,NIST)采用的新型高级加密标准(Advanced Encryption Standard))。因此,密钥选择器220使用密钥选择函数从较长的被装载的软件代码密钥230中选择长度合适的密钥(例如112位、168位、128位或256位),用来产生一个对称加密密钥240用于被装载的软件代码。
密钥发生器210执行一个生成函数G(),用来从第一个密钥(用K1表示)和ID值生成第二个密钥(用K2表示)。使用的公式是K2=G(ID,K1)。在一个实施例中,所生成的第二个密钥K2是被装载的软件代码密钥230。这样,公式K2=G(ID,K1)使用函数G()来生成被装载的软件代码密钥230,这里ID是被装载的软件代码ID值228,K1是装载软件代码密钥225。如前所述,生成函数G()可以是一个加密散列函数。本专利申请后面部分会引用函数G()用来描述密钥的生成,例如处理器安全内核密钥,OS安全内核密钥和小程序密钥的生成,这些将在后面详细讨论。
密钥选择器220执行一个密钥选择函数S()用来从第二个密钥K2生成第三个密钥(用K3表示)。使用的公式是K3=S(K2)。密钥选择函数S()生成K3,使K3足够小以用在对称加密算法中用作对称加密密钥。在一个实施例中,所生成的第三个密钥K3是用于被装载的软件代码的对称加密密钥240。如前所述,密钥选择器220使用密钥选择函数S()从较长的被装载的软件代码密钥230中选择长度合适的对称加密密钥240(K3)(例如112位、168位、128位或256位),用来产生一个用于被装载的软件代码的对称加密密钥240。本专利申请后面部分会引用函数S()来描述加密密钥的选择,例如处理器安全内核加密密钥,OS安全内核加密密钥和小程序加密密钥的选择,这些将在后面详细讨论。
因而,在当前隔离执行环境控制下的每一个被装载的软件模块至少有两个密钥,被装载的软件代码密钥230和用于被装载的软件代码的对称加密密钥240。如果软件模块使用多重加密算法,软件模块也许会有多个与对称加密密钥240类似的对称加密密钥。在只从被装载的软件代码密钥230选择一个密钥的情况下,可以使用较长密钥的一个或多个独立的小段的异或,这里各个小段的长度与希望的密钥一样。在需要生成多个加密密钥时,S()函数可以使用类似于HMAC的函数,将一个较大的随机产生的值用作一个密钥,所述值对于生成这个密钥所使用的算法是特定的。
密钥层组
图3是根据本发明一个实施例生成密钥层组301的进程300的示意图。进程300生成密钥层组301,包括许多由加密密钥生成器200生成的对称密钥,这在前面讨论过。这些密钥用于对运行在隔离执行模式的特定代码加密。
隔离执行区域(例如图1A和图1B中的隔离执行环-0 15和隔离执行环-345)有很多层。与隔离执行和下面的讨论特别相关的是处理器安全内核18,OS安全内核16和小程序46(前面在体系概述部分,参考图1A和图1B已经深入讨论过)。首先处理器安全内核18被装载,并控制隔离执行环境。进程300首先利用密钥发生器210生成一个处理器安全内核密钥(PNK)325。密钥发生器210使用初始密钥(IK)310和处理器安全内核ID值(PNID)320作为输入。密钥发生器210执行如下一个生成函数:PNK=G(IK,PNID),这里IK 310是初始密钥,该初始密钥对于平台来说是特定的,PNID 320是处理器安全内核的ID值。如前所述,生成函数G()可以是一个加密散列函数。这个ID值可以是代码本身的散列值或者是一些认证的ID值,如前所述。但是,如果它是一个认证的值,处理器安全内核装载器必须要能够验证保存该ID值的证书。
下一步,进程300利用密钥选择器220生成一个处理器安全内核加密密钥(PNCK)327。密钥选择器220执行如下一个密钥选择函数:PNCK=S(PNK),这里PNK 325是处理器安全内核密钥。如前所述,密钥选择函数S()生成一个足够小的加密密钥,以便它能在所希望的对称加密算法中使用。例如,密钥选择器220使用密钥选择函数S()从PNK 325中来选择一个长度合适的对称密钥PNCK 327(例如112位、168位、128位或256位)。处理器安全内核18使用PNCK 327保护它的秘密,以免被OS安全内核16,小程序46和非隔离执行代码访问。
在一个实施例中,初始密钥IK 310是由一个外部硬件随机数发生器产生的并在制造时就编程到输入/输出控制中心ICH 150(图1C)的熔丝中。在另一个实施例中,初始密钥IK 310是由平台100自身来产生的;当平台100第一次启动时,使用平台内部的硬件随机数发生器166(图1C)来产生,然后存储在ICH 150中的加密密钥存储器155的非易失性存储器中(图1C)。这个实施例减少了制造时IK 310被破坏的机会。在两个例子中,初始密钥IK 310都是存储在加密密钥存储器155的受保护非易失性存储器中。但是,应该认识到IK 310也可以存储在平台别的区域中的受保护非易失性存储器中。
当别的软件模块(例如OS安全内核16、小程序46等)被装载到隔离执行区域时,新的被装载的软件模块的密钥要替换装载模块的密钥。但是,IK 310并不被替换,而是通过硬件可调标记设置成不可访问,该标记防止该存储区被读取。这个标记只有在对隔离区域进行总的重新初始化时才被清除。生成的密钥被重写,因而不可得到。
如前所述,当处理器安全内核18被第一次装载时,进程300生成处理器安全内核密钥PNK 325和处理器安全内核加密密钥PNCK 327。如果这个处理器安全内核需要存储任何只能被它自己访问的秘密信息,它可以使用PNCK 327作为加密密钥。当处理器安全内核决定装载OS安全内核16并把控制权转移给它时,利用同一进程300生成OS安全内核密钥(OSNK)335和OS安全内核加密密钥(OSNCK)337,这跟前面讨论的PNK 325和PNCK 327的生成是类似的。进一步,在加密密钥存储器中OSNK 335和OSNCK 337替换PNK 325和PNCK 327。OSNCK 337被OS安全内核用来保护它自己的秘密不被其它OS安全内核、小程序和非隔离执行代码读取。现在,如果有任何秘密需要留待将来供OS安全内核使用,它们就可以利用OSNCK 337加密。但是,任何由PNCK 327加密的秘密信息对于OS安全内核或其它任何将被装载到平台中的软件是不可访问的。
对于软件代码装载的所有层,这个进程300可以不断重复。图3表示一个四层结构:处理器安全内核,OS安全内核,小程序1和小程序1的子进程。进程300对于小程序1生成小程序1密钥(A1K)345和小程序1加密密钥(A1CK)347,对于小程序1子进程生成小程序1子进程密钥(A1SK)355和小程序1子进程加密密钥(A1SCK)357,这跟前面讨论的处理器安全内核密钥和OS安全内核密钥的生成是类似的。应该认识到,密钥层组301和进程300只是示例性的,其他密钥层组和生成这些密钥层组的进程也可以用来保护隔离执行环境中的秘密。
数据的备份和恢复的另一个实施例
图4是本发明一个实施例中系统400保存初始密钥用于数据备份和恢复的示意图。
如上所述,初始密钥IK 310对每一个平台是唯一的并锁在平台之中(也就是说它永久地存储在加密密钥存储器155的受保护非易失性存储器中(图1C))。不幸的是,在这个实施例中,没有办法来备份和恢复IK310。本发明的另一实施例允许备份和恢复IK 310,如图4所示。这对于那些在平台中存储了有价值的秘密并且将来想升级硬件的用户是非常有用的。当平台主人决定使用更新更快的硬件时,就会需要升级。此外,当平台突然遭遇灾难性的故障需要更换时也要升级。
在这个实施例中,在非易失性存储器中有一个密钥保存标记402,每次生成一个新的初始密钥IK 310时(而不是密钥被恢复时)它被清除。一旦该标记被清除,加密器404就被允许对IK 310加密。加密器404执行一个加密函数,利用用户(假设是平台的主人)提供的加密密钥420来加密IK 310。加密结果保存在IK 410。这个保存的IK 410可以允许任何人读。特别地,这个保存的IK 410允许使用通常的备份工具进行备份。当这个保存的IK 410生成时,密钥保存标记402被置位,这就禁止再次对IK 310进行任何保存。
在将来的任何时候,用户都可以把合适的加密密钥420和早期保存的IK 410送到解密器430,该解密器430执行一个解密函数,用来重写IK310。这就允许平台主人替换出了故障的平台,包括保存在平台隔离区域中的所有秘密。加密器404的加密函数和解密器430的解密函数可以分别是广泛使用的对称加密算法,例如三重DES(数据加密标准)或AES(由美国国家标准与技术研究所(NIST)采用的新型高级加密标准)。
图5是本发明一个实施例生成密钥层组的进程的流程图。
在“开始”块,进程500生成这个平台唯一的初始密钥(例如基于一个随机数)(方框510)。然后进程500存储这个初始密钥(方框520)。接着,进程500利用处理器安全内核ID值对初始密钥进行散列来生成一个处理器安全内核密钥(方框530)。然后,进程500在处理器安全内核密钥基础上选择一个更小的处理器安全内核加密密钥(方框540)。在方框550中,进程500利用OS安全内核ID值对处理器安全内核密钥进行散列来生成一个OS安全内核密钥。然后,进程500在OS安全内核密钥基础上选择一个更小的OS安全内核加密密钥(方框560)。接着,进程500利用小程序ID值对OS安全内核密钥进行散列来生成一个小程序密钥(方框570)。在方框580中,进程500在小程序密钥基础上选择一个更小的小程序加密密钥。然后进程500结束。
尽管本发明是参照其图示的实施例来描述的,这些描述并不是想加以限制。在不脱离本发明的精神和范围的情况下,本发明相关领域的技术人员可以对图示的实施例和本发明的其它实施例进行各种修改。
Claims (24)
1.一种装置,包含:
密钥存储器,用来存储对于受保护平台是唯一的初始密钥;和
受保护平台中的加密密钥生成器,用来在初始密钥基础上生成一个密钥层组,所述受保护平台有一个配置成正常执行模式和隔离执行模式之一的处理器,所述加密密钥生成器包含密钥发生器,它可以利用装载软件代码密钥对被装载的软件代码ID值进行散列从而生成一个被装载的软件代码密钥,所述加密密钥生成器进一步包含密钥选择器,它可以在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
2.如权利要求1所述装置,其特征在于所述初始密钥被编程到一个输入/输出控制中心的熔丝之中。
3.如权利要求1所述装置,其特征在于所述初始密钥基于一个随机数。
4.如权利要求1所述装置,其特征在于所述初始密钥是在平台第一次启动时由该平台产生的。
5.如权利要求4所述装置,其特征在于所述初始密钥是基于一个由平台的随机数发生器生成的随机数的。
6.如权利要求1所述装置,其特征在于所述密钥发生器利用处理器安全内核ID值对初始密钥进行散列从而生成一个处理器安全内核密钥,并且密钥选择器在所述处理器安全内核密钥基础上选择一个更小的处理器安全内核加密密钥。
7.如权利要求6所述装置,其特征在于所述密钥发生器利用OS安全内核ID值对处理器安全内核密钥进行散列从而生成一个OS安全内核密钥,并且密钥选择器在所述OS安全内核密钥基础上选择一个更小的OS安全内核加密密钥。
8.如权利要求7所述装置,其特征在于所述密钥发生器利用小程序ID值对OS安全内核密钥进行散列从而生成一个小程序密钥,并且密钥选择器在所述小程序密钥基础上选择一个更小的小程序加密密钥。
9.一种方法,包含:
存储对于受保护平台是唯一的初始密钥;和
在受保护平台初始密钥基础上生成一个密钥层组,所述受保护平台有一个配置成正常执行模式和隔离执行模式之一的处理器;
利用一个装载软件代码密钥对被装载的软件代码ID值进行散列,生成一个被装载的软件代码密钥;
在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
10.如权利要求9所述方法,其特征在于存储所述初始密钥包括将该初始密钥编程到一个输入/输出控制中心的熔丝之中。
11.如权利要求9所述方法,其特征在于所述初始密钥基于一个随机数。
12.如权利要求9所述方法,还包括在该平台第一次启动时利用该平台生成所述初始密钥。
13.如权利要求12所述方法,其特征在于所述初始密钥的生成过程包含:
由平台的随机数发生器生成一个随机数;
基于所述随机数生成一个初始密钥;以及
把所述初始密钥存储在密钥存储器中。
14.如权利要求9所述方法,其特征在于该方法进一步包含:
利用处理器安全内核ID值对初始密钥进行散列从而生成一个处理器安全内核密钥;以及
在处理器安全内核密钥基础上选择一个更小的处理器安全内核加密密钥。
15.如权利要求14所述方法,其特征在于该方法进一步包含:
利用OS安全内核ID值对处理器安全内核密钥进行散列从而生成一个OS安全内核密钥;以及
在OS安全内核密钥基础上选择一个更小的OS安全内核加密密钥。
16.如权利要求15所述方法,其特征在于该方法进一步包含:
利用小程序ID值对OS安全内核密钥进行散列从而生成一个小程序密钥;以及
在小程序密钥基础上选择一个更小的小程序加密密钥。
17.一种受保护平台,包含:
芯片组;
耦合到芯片组的存储器,其中含有一个隔离存储区域;
耦合到芯片组和存储器的处理器,所述处理器有一种正常执行模式和一种隔离执行模式,当处理器处于隔离执行模式时,处理器访问隔离存储区域;
用于存储对于所述平台是唯一的初始密钥的密钥存储器;和
加密密钥生成器,用于在初始密钥基础上生成密钥层组,所述加密密钥生成器包含密钥发生器,它可以利用装载软件代码密钥对被装载的软件代码ID值进行散列从而生成一个被装载的软件代码密钥,所述加密密钥生成器进一步包含密钥选择器,它可以在被装载的软件代码密钥基础上选择一个更小的对称加密密钥。
18.如权利要求17所述受保护平台,其特征在于所述初始密钥被编程到一个输入/输出控制中心的熔丝之中。
19.如权利要求17所述受保护平台,其特征在于所述初始密钥基于一个随机数。
20.如权利要求17所述受保护平台,其特征在于所述初始密钥是平台第一次启动时由平台产生的。
21.如权利要求20所述受保护平台,其特征在于所述初始密钥是基于平台的随机数发生器生成的一个随机数。
22.如权利要求17所述的受保护平台,其特征在于所述密钥发生器利用处理器安全内核ID值对初始密钥进行散列从而生成一个处理器安全内核密钥,并且密钥选择器在处理器安全内核密钥基础上选择一个更小的处理器安全内核加密密钥。
23.如权利要求22所述受保护平台,其特征在于所述密钥发生器利用OS安全内核ID值对处理器安全内核密钥进行散列从而生成一个OS安全内核密钥,并且密钥选择器在OS安全内核密钥基础上选择一个更小的OS安全内核加密密钥。
24.如权利要求23所述受保护平台,其特征在于所述密钥发生器利用小程序ID值对OS安全内核密钥进行散列从而生成一个小程序密钥,并且密钥选择器在小程序密钥基础上选择一个更小的小程序加密密钥。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/539,348 US6760441B1 (en) | 2000-03-31 | 2000-03-31 | Generating a key hieararchy for use in an isolated execution environment |
US09/539,348 | 2000-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1421000A CN1421000A (zh) | 2003-05-28 |
CN100386707C true CN100386707C (zh) | 2008-05-07 |
Family
ID=24150840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018074014A Expired - Fee Related CN100386707C (zh) | 2000-03-31 | 2001-03-14 | 生成用在隔离执行环境中的密钥层组 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6760441B1 (zh) |
JP (1) | JP4822646B2 (zh) |
CN (1) | CN100386707C (zh) |
AU (1) | AU2001243683A1 (zh) |
DE (1) | DE10196006B4 (zh) |
GB (1) | GB2378794B (zh) |
HK (1) | HK1049721A1 (zh) |
TW (1) | TW563030B (zh) |
WO (1) | WO2001075563A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739756B (zh) * | 2008-11-10 | 2012-01-11 | 中兴通讯股份有限公司 | 一种智能卡密钥的生成方法 |
CN110214324A (zh) * | 2017-01-24 | 2019-09-06 | 微软技术许可有限责任公司 | 密钥保管库包围区 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213836B2 (en) | 2000-05-28 | 2015-12-15 | Barhon Mayer, Batya | System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages |
US20030159070A1 (en) * | 2001-05-28 | 2003-08-21 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US20020025045A1 (en) * | 2000-07-26 | 2002-02-28 | Raike William Michael | Encryption processing for streaming media |
US7281010B2 (en) * | 2000-11-15 | 2007-10-09 | Lenovo (Singapore) Pte. Ltd. | Trusted computing platform with dual key trees to support multiple public/private key systems |
US8479293B2 (en) * | 2000-11-30 | 2013-07-02 | Access Co., Ltd. | Security technique for an open computing platform system |
US7215781B2 (en) * | 2000-12-22 | 2007-05-08 | Intel Corporation | Creation and distribution of a secret value between two devices |
JP2003174443A (ja) * | 2001-12-07 | 2003-06-20 | Sony Corp | 情報処理装置および方法、プログラム格納媒体、並びにプログラム |
US7349538B2 (en) * | 2002-03-21 | 2008-03-25 | Ntt Docomo Inc. | Hierarchical identity-based encryption and signature schemes |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7545931B2 (en) * | 2002-04-12 | 2009-06-09 | Microsoft Corporation | Protection of application secrets |
US7533270B2 (en) * | 2002-04-15 | 2009-05-12 | Ntt Docomo, Inc. | Signature schemes using bilinear mappings |
WO2004021638A1 (en) * | 2002-08-28 | 2004-03-11 | Docomo Communications Laboratories Usa, Inc. | Certificate-based encryption and public key infrastructure |
US6961852B2 (en) | 2003-06-19 | 2005-11-01 | International Business Machines Corporation | System and method for authenticating software using hidden intermediate keys |
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US8139770B2 (en) | 2003-12-23 | 2012-03-20 | Wells Fargo Bank, N.A. | Cryptographic key backup and escrow system |
US7752322B2 (en) * | 2004-03-19 | 2010-07-06 | Sony Corporation | System for ubiquitous network presence and access without cookies |
US7712135B2 (en) | 2004-08-05 | 2010-05-04 | Savant Protection, Inc. | Pre-emptive anti-virus protection of computing systems |
US20060078790A1 (en) * | 2004-10-05 | 2006-04-13 | Polyplus Battery Company | Solid electrolytes based on lithium hafnium phosphate for active metal anode protection |
US20060133607A1 (en) * | 2004-12-22 | 2006-06-22 | Seagate Technology Llc | Apparatus and method for generating a secret key |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US8295492B2 (en) | 2005-06-27 | 2012-10-23 | Wells Fargo Bank, N.A. | Automated key management system |
JP4328748B2 (ja) * | 2005-08-23 | 2009-09-09 | 株式会社エヌ・ティ・ティ・ドコモ | 鍵更新方法、鍵隔離型暗号システム及び端末装置 |
US20080244275A1 (en) * | 2007-03-30 | 2008-10-02 | Motorola, Inc. | Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection |
US9258385B2 (en) * | 2007-09-25 | 2016-02-09 | Infineon Technologies Ag | Method for loading a program module into a network device and network with network devices |
US8160247B2 (en) * | 2007-09-27 | 2012-04-17 | Adobe Systems Incorporated | Providing local storage service to applications that run in an application execution environment |
US20090119215A1 (en) * | 2007-11-07 | 2009-05-07 | Microsoft Corporation | Secure e-payments |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US20120066501A1 (en) * | 2009-03-17 | 2012-03-15 | Chuyu Xiong | Multi-factor and multi-channel id authentication and transaction control |
US9454652B2 (en) | 2009-10-23 | 2016-09-27 | Secure Vector, Llc | Computer security system and method |
US8429429B1 (en) * | 2009-10-23 | 2013-04-23 | Secure Vector, Inc. | Computer security system and method |
US8775802B1 (en) | 2009-10-23 | 2014-07-08 | Secure Vector | Computer security system and method |
US10242182B2 (en) | 2009-10-23 | 2019-03-26 | Secure Vector, Llc | Computer security system and method |
US8479286B2 (en) * | 2009-12-15 | 2013-07-02 | Mcafee, Inc. | Systems and methods for behavioral sandboxing |
US20120054501A1 (en) * | 2010-08-25 | 2012-03-01 | Toshiba Tec Kabushiki Kaisha | Image processing apparatus |
US20120069995A1 (en) * | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
US20120159127A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Security sandbox |
KR20140043068A (ko) * | 2011-02-17 | 2014-04-08 | 타세라, 아이엔씨. | 애플리케이션 증명을 위한 시스템 및 방법 |
US8990948B2 (en) | 2012-05-01 | 2015-03-24 | Taasera, Inc. | Systems and methods for orchestrating runtime operational integrity |
DE102012220767A1 (de) * | 2012-11-14 | 2014-05-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtungen zum Installieren von Gebäudesteuerungssoftware |
EP2735992B1 (en) * | 2012-11-22 | 2018-03-28 | Nxp B.V. | Software identification |
TWI633458B (zh) * | 2014-02-25 | 2018-08-21 | 美商凱為公司 | 用於對受保護的硬體資源的軟體啟用接入的半導體和電腦 |
FR3018371B1 (fr) * | 2014-03-10 | 2016-05-06 | Commissariat Energie Atomique | Procede et systeme de chiffrement/dechiffrement de donnees a cle distante et verification prealable de jeton |
US9489508B2 (en) | 2014-11-13 | 2016-11-08 | Seagate Technology Llc | Device functionality access control using unique device credentials |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
GB2553376A (en) * | 2016-09-06 | 2018-03-07 | Trustonic Ltd | Future constraints for hierarchical chain of trust |
US11115205B2 (en) | 2016-09-29 | 2021-09-07 | Nokia Technologies Oy | Method and apparatus for trusted computing |
US10318748B2 (en) * | 2016-09-30 | 2019-06-11 | Intel Corporation | Techniques to protect fuses against non-destructive attacks |
CN108021812B (zh) * | 2016-10-28 | 2020-08-18 | 深圳市中兴微电子技术有限公司 | 一种芯片的安全启动方法及装置 |
EP3809625A4 (en) | 2018-10-09 | 2021-09-08 | Huawei Technologies Co., Ltd. | CHIP, PROCESS FOR GENERATING A PRIVATE KEY AND PROCEDURE FOR TRUSTED VERIFICATION |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
CN1184386A (zh) * | 1996-10-31 | 1998-06-10 | 松下电器产业株式会社 | 能够抑制密钥被破译时的受害范围的加密通信系统 |
CN1194072A (zh) * | 1995-08-25 | 1998-09-23 | 英特尔公司 | 用于存取控制的参数化散列函数 |
WO1998044402A1 (en) * | 1997-03-27 | 1998-10-08 | British Telecommunications Public Limited Company | Copy protection of data |
CN1199969A (zh) * | 1997-05-19 | 1998-11-25 | 财团法人工业技术研究院 | 一种数据码的保密系统及方法 |
WO1999005600A2 (en) * | 1997-07-28 | 1999-02-04 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
WO1999057863A1 (en) * | 1998-05-05 | 1999-11-11 | International Business Machines Corporation | Client-server system for maintaining a user desktop consistent with server application user access permissions |
CN1237843A (zh) * | 1998-06-02 | 1999-12-08 | 日本电气株式会社 | 用于广播服务内容的系统、方法和介质 |
Family Cites Families (142)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4307214A (en) | 1979-12-12 | 1981-12-22 | Phillips Petroleum Company | SC2 activation of supported chromium oxide catalysts |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2618002B1 (fr) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
JPH0617217B2 (ja) | 1989-02-28 | 1994-03-09 | 水澤化学工業株式会社 | 非晶質シリカ・アルミナ系球状粒子及びその製法 |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
JPH04348434A (ja) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5522075A (en) | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
US5274834A (en) * | 1991-08-30 | 1993-12-28 | Intel Corporation | Transparent system interrupts with integrated extended memory addressing |
JPH06236284A (ja) | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (ja) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
JPH0855023A (ja) * | 1994-07-25 | 1996-02-27 | Motorola Inc | データ処理システムおよびその方法 |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
US6058478A (en) | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US6269392B1 (en) | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (fr) | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
WO1997025798A1 (en) | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
JPH09259104A (ja) * | 1996-03-21 | 1997-10-03 | Vlsi Technol Inc | 保護された内部オペレーティングシステムを有する二重目的の保全アーキテキチャ |
US5978892A (en) | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US6178509B1 (en) | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US6055637A (en) | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
JPH10134008A (ja) | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) * | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6272637B1 (en) | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
DE19735948C1 (de) | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
US6182089B1 (en) | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
US6061794A (en) | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
ATE296519T1 (de) * | 1998-03-16 | 2005-06-15 | Intertrust Tech Corp | Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt |
US6192455B1 (en) | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6397242B1 (en) | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US6505279B1 (en) | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
US6339815B1 (en) | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
JP2000076139A (ja) | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 携帯型情報記憶媒体 |
US6363485B1 (en) | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6230248B1 (en) | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6445797B1 (en) * | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
EP1030237A1 (en) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Trusted hardware device in a computer |
US6272533B1 (en) | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
CA2368858A1 (en) * | 1999-04-12 | 2000-10-19 | Digital Media On Demand, Inc. | Secure electronic commerce system |
US6389537B1 (en) | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6735313B1 (en) * | 1999-05-07 | 2004-05-11 | Lucent Technologies Inc. | Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
JP2001148344A (ja) | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
US6535988B1 (en) | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
AU2001251701A1 (en) | 2000-02-25 | 2001-09-03 | Identix Incorporated | Secure transaction system |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
-
2000
- 2000-03-31 US US09/539,348 patent/US6760441B1/en not_active Expired - Lifetime
-
2001
- 2001-03-14 AU AU2001243683A patent/AU2001243683A1/en not_active Abandoned
- 2001-03-14 JP JP2001573178A patent/JP4822646B2/ja not_active Expired - Fee Related
- 2001-03-14 GB GB0225043A patent/GB2378794B/en not_active Expired - Fee Related
- 2001-03-14 WO PCT/US2001/008365 patent/WO2001075563A2/en active Application Filing
- 2001-03-14 DE DE10196006T patent/DE10196006B4/de not_active Expired - Fee Related
- 2001-03-14 CN CNB018074014A patent/CN100386707C/zh not_active Expired - Fee Related
- 2001-05-15 TW TW090107587A patent/TW563030B/zh active
-
2003
- 2003-04-14 HK HK03102699A patent/HK1049721A1/xx not_active IP Right Cessation
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
CN1194072A (zh) * | 1995-08-25 | 1998-09-23 | 英特尔公司 | 用于存取控制的参数化散列函数 |
CN1184386A (zh) * | 1996-10-31 | 1998-06-10 | 松下电器产业株式会社 | 能够抑制密钥被破译时的受害范围的加密通信系统 |
WO1998044402A1 (en) * | 1997-03-27 | 1998-10-08 | British Telecommunications Public Limited Company | Copy protection of data |
CN1199969A (zh) * | 1997-05-19 | 1998-11-25 | 财团法人工业技术研究院 | 一种数据码的保密系统及方法 |
WO1999005600A2 (en) * | 1997-07-28 | 1999-02-04 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
WO1999057863A1 (en) * | 1998-05-05 | 1999-11-11 | International Business Machines Corporation | Client-server system for maintaining a user desktop consistent with server application user access permissions |
CN1237843A (zh) * | 1998-06-02 | 1999-12-08 | 日本电气株式会社 | 用于广播服务内容的系统、方法和介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739756B (zh) * | 2008-11-10 | 2012-01-11 | 中兴通讯股份有限公司 | 一种智能卡密钥的生成方法 |
CN110214324A (zh) * | 2017-01-24 | 2019-09-06 | 微软技术许可有限责任公司 | 密钥保管库包围区 |
CN110214324B (zh) * | 2017-01-24 | 2024-02-06 | 微软技术许可有限责任公司 | 密钥保管库包围区 |
Also Published As
Publication number | Publication date |
---|---|
DE10196006B4 (de) | 2008-07-24 |
HK1049721A1 (en) | 2003-05-23 |
US6760441B1 (en) | 2004-07-06 |
DE10196006T1 (de) | 2003-04-03 |
WO2001075563A2 (en) | 2001-10-11 |
GB2378794A (en) | 2003-02-19 |
JP4822646B2 (ja) | 2011-11-24 |
JP2003529984A (ja) | 2003-10-07 |
WO2001075563A3 (en) | 2002-05-23 |
GB0225043D0 (en) | 2002-12-04 |
AU2001243683A1 (en) | 2001-10-15 |
TW563030B (en) | 2003-11-21 |
CN1421000A (zh) | 2003-05-28 |
GB2378794B (en) | 2004-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100386707C (zh) | 生成用在隔离执行环境中的密钥层组 | |
US10097349B2 (en) | Systems and methods for protecting symmetric encryption keys | |
Dai et al. | SBLWT: A secure blockchain lightweight wallet based on trustzone | |
US7636858B2 (en) | Management of a trusted cryptographic processor | |
US9537656B2 (en) | Systems and methods for managing cryptographic keys in a secure microcontroller | |
EP3688653B1 (en) | Storage data encryption/decryption apparatus and method | |
US7392415B2 (en) | Sleep protection | |
US7114082B2 (en) | Data security for digital data storage | |
US8751818B2 (en) | Method and apparatus for a trust processor | |
US6996710B1 (en) | Platform and method for issuing and certifying a hardware-protected attestation key | |
US20110154501A1 (en) | Hardware attestation techniques | |
US20070005959A1 (en) | Data security for digital data storage | |
CN110637301B (zh) | 减少虚拟机中敏感数据的泄密 | |
US8266449B2 (en) | Security for storage devices | |
US20200082088A1 (en) | User/Enterprise Data Protection Preventing Non-Authorized Firmware Modification | |
US7013481B1 (en) | Attestation key memory device and bus | |
CN101123507A (zh) | 一种存储装置上数据信息的保护方法和存储装置 | |
US11019098B2 (en) | Replay protection for memory based on key refresh | |
US7073071B1 (en) | Platform and method for generating and utilizing a protected audit log | |
CN107563226B (zh) | 一种存储器控制器、处理器模块及密钥更新方法 | |
CN103154967A (zh) | 修改元素的长度以形成加密密钥 | |
CN114237492A (zh) | 非易失性存储器保护方法及装置 | |
CN114968905A (zh) | 片上系统及其操作方法 | |
Yashiro et al. | T-Kernel/SS: a secure filesystem with access control protection using tamper-resistant chip | |
EP3193274B1 (en) | Secure memory storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080507 Termination date: 20180314 |
|
CF01 | Termination of patent right due to non-payment of annual fee |