提供安全执行环境的微处理器及其执行安全编码的方法

文档序号:6578058阅读:115来源:国知局
专利名称:提供安全执行环境的微处理器及其执行安全编码的方法
技术领域
本发明涉及微电子领域,特别是涉及一种微处理器,其提供一安全执行 模式的操作,其允许在微处理器内的安全环境中执行运算码。
背景技术
桌上型计算机、笔记型计算机、以及手持式计算机与通信装置可作为机 密或专用数据与数字权利控制内容的数字通信平台,计算机产业对于这些装 置的使用持续地发展新的安全制度。举例来说,有许多已建立的应用,用以 在因特网上免费下载与管理数字声音与影音档案。通过这些应用,使用者被 提供在歌曲、电视节目以及电影上的有限的权利。特别注意的是,以上通过 使用建立在这些应用中的安全特性来保护这些权利,而这些安全特性通常依 据其主机平台所提供的安全机制。
除了数字内容权利的保护,持续驱动计算机系统安全性的另 一 因素是实 施在主机平台本身的使用限制。目前已知,手机产业已提供特定通信装置中
所谓的"随用随付(Pay-as-you-go)"使用。藉由使用此方案,使用者不需 给付月费,但是需预先给付某通话分钟数的金额。当用尽通话分钟数时,除 了紧急通话以外,使用者被拒绝存取任何关于通话的手机网络存取。
早在2006年,MICROSOFT公司与其合作公司已提供主要指向新兴计 算机市场的"随用随付"个人计算机。在此体制下,通过预付卡的购得,当 使用这些公司的计算机时使用者则给付费用。此外,归属于MICROSOFT公 司的美国专利申请案公开编号20060282899,公开一种用于模块化操作系统 的传递的系统与方法,其包括提供主要操作系统支持的核心功能模块或基础 核心,且包括一或多个允许客制化的操作系统定做的附属模块。在此应用中, 附属模块可提供对于计算机(其包括硬件、应用软件、接口设备、以及支持 设备)的支持或延伸能力。在设置之前,数字签章可使用来确定附属模块的 完整性,且核对证明(certification)以判断附加模块的设置是否经过授权。藉 由此证明,服务提供者可管理对提供的计算机上的非法或非期望修改。此外,数字权利管理可用来执行与许可配置相配的附属模块的使用项目。
并不意外地,目前已发展出技术方法的真正主机,其提供规避安全措施, 而这些安全措施是适当地保护且控制对权利控制数字媒体、通信装置、以及
计算机平台的存取。最近,"hacking (进行非法入侵,即黑客)"变成研究上 的课题。事实上,本案发明人已注意到许多用来篡改或完全地使安全管理无 效的作品公开,而这些安全管理用来防护受保护资产的存取及/或使用。由 Andrew Huang, San Francisco: No Starch Press, 2003所4是出的著4乍Hacking the Xbox: Aji Introduction to Reverse Engineering则是上述作品的 一种。jt匕著作净争 别着重于教导非法入侵技术以克服MICROSOFT所出产的XBOX游戏平台 的安全机制,且更提供计算机安全与反向工程的教导主题,并讨论所谓"安 全的"计算机平台的弱点。
因此,平台建置者与设计者持续从事在避免未被授权的平台处理上更有 效的技术与机制,不论此存取是良性的(例如探测或窥察)、恶意的(例如 破坏性的或违背权利的入侵)、或是介于两者之间(例如篡改)。这些机制中 许多者用来防止入侵者实际上存取平台,例如将平台放置在安全底座上(例 如一上锁的金属围场)或者将有弱点的电路封装入环氧化物内。但是已知这 些类型的技术增加了系统成本与复杂性。其它机制则利用特定计算机架构本 身提供的安全特性。
考虑已知x86架构所提供的两个主要安全特性分页虚拟存储器(paged virtual memory)以及特许执行(privileged execution)。在分页虚拟存储器的情 况下,基本的操作系统定义一个分别的虛拟位置空间以及存取权利(例如只 执行、只读取)给每一正被执行的应用程序,因此阻止另一秘密鬼祟的应用 程序在所定义的区域内执行,且阻止其修改数据。但是,由于与虚拟地址译 文相关(即分页窗体)的数据存在于系统存储器,且其出现于主机微处理器 外的系统总线上,因此此数据可轻易地被窥察且被改变。
在特许执行的情况下,x86结构提供数种阶级的执行特权CPLO至CPL3。 因此,某些系统资源与指令只可由正在较高特权阶级上执行的应用程序来存 取。 一般得知操作系统组件操作在最高特权阶级CPL0,以及使用者应用归 类于最低特权阶级CPL3。但是,熟知此技术领域的人士将查知,这些架构 特征主要是发展来阻止软件错误所导致的系统当机,且在防止有意或经指导 的侵入(directed hacks)而言不是非常有效。因此已发展多种方法与装置,其更仔细地集中防止对平台的有意侵入与
接管。在美国专利编号5615263中,Takahashi教导一种在双模(dual mode) 处理器中的安全模式。在一般/外部模式中,此双模处理器执行由外部来源所 提供的指令。这些指令通过双模处理器的输入/输出来提供给双模处理器。当 接收到专用软件或硬件发出的中断时,此双模处理器进入安全/内部模式。此 中断是指储存在双模处理器中只读存储器内的安全功能。根据此接收的中 断,双模处理器的输入/输出被禁能。此已确认的安全功能由双模处理器来执 行。在此安全功能的执行期间,欲插置非来自只读存储器的指令的任何企图 皆被忽略。然而,双模处理器可存取由正在执行的安全功能所特别确认的数 据。当安全功能执行完成,则执行一退出程序,以使能双模处理器的输入/ 输出,并通过输入/输出重新开始执行由双模处理器的外部来源所提供的指 令。
Takahashi教导此安全模式是用作加密与解密,且其中双模处理器处理通 过总线且由外部控制信道(extemal control channel)处理器所提供的正常指令 与数据,其中,此总线符合一标准总线架构,例如工业标准体系结构(Industry Standard Architecture, ISA)。此双模处理器在非安全模式下开启,且安全模 式通过软件或硬件发出的中断来初始化。在安全模式下,可执行关于加密与 解密的有限数量的功能(即指令)。这些功能储存在一个只读存储器中 (ROM),其位于双模处理器的内部。本案的发明人注意到,Takahashi的双 模处理器并不适当,因为Takahashi的双模处理器只能执行内部ROM所提 供的有限数量的功能。因此,包括一般目的指令的应用程序(即在微处理器 的指令集中任何的指令)则无法在安全模式下执行。
在美国专利编号7013484中,Ellison揭露一种建立安全环境的芯片组, 用于一隔离的储存器所执行的隔离执行模式,此储存器被至少一处理器来存 取。在正常执行模式或此隔离执行模式下,此至少一处理器具有多线程与操 作。Ellison的安全环境依据一外部芯片组(被隔离的执行电路),其提供机 制给一处理器以在隔离执行模式下操作。此外部芯片组因此配置一个安全存 储器区域,其管理隔离指令的译码与转译、隔离总线周期的产生、以及中断 的产生。当此外部芯片组主动地隔离存储器区域、指令执行等时,注意到此 外部芯片组通过一般系统总线而耦接此至少一处理器,因此在任何安全线程 的执行期间内容许在总线上的窺察与流量篡改。在美国专利编号7130951中,Christie揭露一种方法,用以控制有安全 执行模式能力之处理器,此处理器包括多中断,以使得当其正操作在非安全 执行模式时,中断此有安全执行模式能力的处理器。此方法包括当此有安全 执行模式能力的处理器正操作在一安全执行模式时,禁能多中断以避免此处 理器中断。尽管禁能中断是在安全执行环境中所期望的安全特性,根据 Christie的处理器处理通过系统总线且由一操作系统所提供的指令与数据。 一旦这些指令被提供时,中断即-故禁能。如同Ellison的机制,此一装置明 确地可被通过总线而提供至处理器的指令来做总线窥察与篡改。
在美国专利编号6983374中,Hashimoto揭露一种抗篡改微处理器,其 保存关于其执行将被中断的一个程序的内容信息,其中,此处理器状态被加 密且储存在系统存储器。Hashimoto也教导了自系统存储器撷取加密指令的 技术,以及对加密指令进行解密且执行此加密指令的装置。此外,Hashimoto 教导了使用 一对应密钥来提供在存储器内的加密指令,且接着使用非对称密 钥算法来对储存在存储器内的对称密钥加进行加密。对于程序创造者来说, 对称密钥是已知的,且使用读取自处理器的公开密钥来对此对称密钥进行加 密。此处理器包括一独特私密密钥,其对应此公开密钥,且使用者无法存取。 因此,根据分支指令的执行,程控被转移成"起始加密执行"指令,其传送 一指标至加密对称密钥。此处理器撷取加密对称密钥,且使用其内部私密密 钥来对其解密。接着,加密程序指令自系统存储器被撷取,且藉由使用解密 对称密钥来被解密,并由处理器来执行。假使发生中断或异常,处理器的状 态则对称地;陂加密且储存至存储器。Hashimoto揭露了对于非加密与加密编 码的共通快取机制、中断逻辑、异常处理逻辑的使用。
本案的发明人已注意到,Hashimoto的微处理器限定编码者已知对应安 全编码的对称密钥,且对称密钥可能被泄漏,因此,将具有此编码的所有系 统将有被攻击的风险。此外,本案的发明人已注意到,Hashimoto的微处理 器缺点在于,必须在撷取指令运作中执行安全编码的解密,其花费非常多的 时间,因此导致-徵处理器的处理能力变为緩慢。此外,注意到,Hashimoto 的安全编码利用现存的非安全资源,例如系统存储器、分页窗体、中断、与 异常机制,这些全部都会遭受到窥察。
因此,本案的发明人了解,显然期望提供一种微处理器,其能在安全执 行环境中执行包括一般目的指令(即在微处理器的指令集中任何的指令)的应用程序或应用线程。
此外,同时也期望此安全执行环境隔离于任何已知的窥察与篡改方法。 因此,需要由一安全执行模式微处理器来执行指令,且此安全执行模式微处 理器隔离于处理器中提供存取(例如快取窥察、系统总线流量、中断、以及 错误与追踪特征)的硬件。
此外,更期望当此微处理器加载应用程序并安全执行时,提供一机制来 混淆来自任何现存监控装置的应用的结构与内容,且提供一机制来证明此应 用的来源且确认其诚实性。

发明内容
本发明适用于解决前述问题与对付习知技术的其它问题、缺点与限制。 本发明提供较佳的技术,以在一般目的微处理器平台上使能安全应用程序的 执行。在一实施例中,揭露一种提供安全执行环境的装置,其包括微处理器 以及石英器。微处理器执行多个非安全应用程序以及一安全应用程序。这些 非安全应用程序通过系统总线而自系统存储器中存取,且此安全应用程序通 过耦接微处理器的私密总线而自安全非易失性存储器中存取。微处理器包括 安全实时时钟,其提供持续时间。当微处理器正在安全执行模式中执行时, 安全实时时钟只由安全应用程序所得知且存取。石英器耦接微处理器内的安 全实时时钟,用以使安全实时时钟内一振荡器来产生振荡输出电压,且此振 荡输出电压与石英器的频率成比例。
本发明的又一 实施例提供一种在安全执行环境中执行安全编码的方法, 其包括通过私密总线来自安全非易失性存储器撷取安全编码,以由耦接安 全非易失性存储器的微处理器来执行,其中,私密总线隔离于微处理器内的 所有系统总线资源且位于微处理器的外部,以及私密总线只被微处理器内的
一安全执行逻辑电路所得知与存取;通过微处理器内的一安全实时时钟来提 供一持续时间,其中,安全实时时钟只由安全编码所得知且存取;以及将石
英器耦接至微处理器,其中,石英器使安全实时时钟内一振荡器来产生振荡 输出电压,且此振荡输出电压与石英器的频率成比例。
关于产业应用性,本发明可实现于一微处理器内,且此微处理器使用于 一般目的或特殊目的的计算机装置。


图l表示根据本发明的安全执行模式(SEM)微处理器的方块示意图; 图2表示说明图1的微处理器中最高阶级操作模式的状态图; 图3表示根据本发明的微处理器中SEM逻辑电路的方块示意图; 图4表示在根据本发明的微处理器内,安全编码如何被储存、存取、初 始化以及执行的方块示意图5表示在图1的微处理器中,SEM监控逻辑电路的详细方块示意图6表示在根据本发明的微处理器内操作模式转换的状态图7表示在本发明的微处理器中使能安全执行模式操作的高阶方法流程
图8表示在本发明的微处理器中禁能安全执行模式操作的高阶方法流程
图9表示在本发明的微处理器内初始化安全编码执行的方法流程图; 图10表示本发明微处理器中执行安全执行模式使能重置操作的方法流 程图11表示在本发明微处理器中终止安全执行模式操作的方法流程以及
图12表示在本发明的微处理器内安全实时时钟的详细方块示意图。 主要组件符号说明
100 ~系统板; 101 ~安全执行模式微处理器;
102 ~系统总线; 103 ~总线主控装置; 104 总线管理装置;
105 ~安全执行模式逻辑电路;
106 ~私密总线; 107 ~安全非易失性存储器; Cl、 C2 连接路径/信号;
PSNT ~存储器检测总线/信号;
VP ~电池; VP1 、 VP2 ~连接路径/信号;
XI 石英器;
200~状态201 ~非安全执行模式(原生未受控模式);202 ~安全执行模式(SEM-使能模式);
203 ~降级才莫式; 204 ~硬件关机模式;
300 ~安全执行模式微处理器;
301 -SEM逻辑电路; 302-安全易失性存储器; 303 ~处理器状态; 304 ~安全编码;
305 ~ SEM初始化逻辑电3各;
306 ~ SEM监控逻辑电路;
307 ~ SEM中断逻辑电^各;
308 ~ SEM例外逻辑电路;
309 ~ SEM定时器; 310 ~ SEM实时时钟; 311 ~ AES/HASH/RSA单元; 312~处理器密钥寄存器;
313 ~处理器执行单元; 314 ~正常例外逻辑电路; 315 ~正常追踪/除错逻辑电路; 316 正常中断逻辑电路;
317 ~对应安全编码的安全数据;
318 ~授权的公开密钥寄存器; 319 随机数产生器;
320、 321、 324、 326、 327~总线; 322~电源管理逻辑电^s
323 ~地址逻辑电路; 325 ~非安全存储器;
328 -非易失性使能指示寄存器;
329 ~ SEM feM成专用寄存器存储体;
400 ~图示; 401 ~微处理器;
402 ~安全编码接口逻辑电^各; 403 总线接口单元;
404 ~授权的公开密钥寄存器;
405 ~ AES/HASH/RSA单元; 406 安全易失性存储器;
407 ~安全非易失性存储器接口单元;
408 ~ SEM监控逻辑电路;409 ~ SEM初始化逻辑电路;411、 421 ~安全编码; 413~处理器密钥寄存器; 425 ~系统总线;
432 ~ 4受外又的7>开密钥区域;
501~物理环境监控器;
504 506
处理器电压监控器; 数据监控器;
410 ~ BIOS存储器; 412-随机数产生器; 420-系统存储器; 430-安全非易失性存储器; 431 私密总线; CHK、 INS 总线; 500 ~ SEM监控逻辑电路; 502 总线时钟监控器; 503 -频率参考单元; 505 -温度监控器; 507 安全时戳计数器; 508 正常时戳计数器; 509-比率机械专用寄存器; 510 ~样式监控器; 511 ~指令监控器;
512 ~指令阵列; 513 ~监控管理器;
BUSTERM、 BUSCLK、 CORE CLK、 TEMP、 VDD、 CLASS1、 CLASS2、 CLASS3、 DISABLE ~信号;
DESTRUCT、 INS、 NOBOOT、 PINCHK、 TAMPER、 CHK —总线;
600-详细操作模式图标;
601 ~原生未受控模式(非安全执行模式);
602-SEM使能重置模式[1:N];
603 ~ SEM使能正常执行模式;
604 ~ SEM 4吏能安全执行模式;
605 ~降级才莫式;
700~流程图;
800~流程图;
900~流程1000~流程图;
1100~流程1200 安全实时时钟;
1202~计数器;
606~硬件关枳4莫式; 701…705 流程步骤; 801…806-流程步骤; 901…912-流程步骤; 1001…1009 流程步骤; 1101... 1112 流程步骤; 1201~振荡器; 1203 转换逻辑电路;VP、 ENV 信号;VO、 CNTO 输出信号; CNTO 输出信号;
TEMP、 BATT、 COMP、 XTAL 信号; TIME-双向总线。
具体实施例方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实 施例,并配合所附图式,作详细说明如下。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任 何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可 做些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定 者为准。
鉴于上述关于在一微处理器中应用程序的安全并隔离地执行且关于用 来防止窺察、侵入、篡改、或黑客的现今技术的背景讨论,本发明的讨论将 通过图1至12来呈现。
参阅图1,其表示根据本发明实施例的安全执行模式(secure execution mode, SEM)微处理器101的示意图。此示意图描述SEM微处理器101配 置所在的系统板100 (或主才几板)。此孩i处理器101通过系统总线102耦接一 个或多个总线主控装置(bus master)103以及/或者一个或多个总线管理装置 (bus agent)104。在一实施例中,SEM微处理器101为x86兼容微处理器101, 其通过x86兼容系统总线102耦接一个或多个x86兼容总线主控装置103以 及/或者一个或多个x86兼容总线管理装置104。
此外,SEM微处理器101耦接一电池VP,其配置在系统才反(主机板)100 上,且通过连接路径VP1与VP2来耦接至微处理器101。在一实施例中, 电池VP的电压为1.8V直流电压(DC)。
石英器XI也配置在系统板100上,且通过连接路径Cl与Cl来耦接至 微处理器101。微处理器101包括SEM逻辑电路105。根据本发明的SEM 逻辑电路105系配置来提供在微处理器内一安全执行模式的初始化、操作、 以及终止,将于下文详细说明。此SEM逻辑电路105包括逻辑、电路、装 置、或微码(即微指令或原生指令)、或者是逻辑、电路、装置、或微码的 结合、又或者是用来初始化安全执行模式的等效组件,使得SEM逻辑电路105可加载安全应用程序来执行、在一安全环境中执行这些应用程序、为了 侦测且阻止篡改而监控一些微处理器与系统特性、在适当情况下终止安全执
行模式、且假使侦测到篡改则暂停处理。用来执行这些功能与SEM逻辑电 路105内其它功能的组件,可共享用来执行微处理器101内其它功能的其它 电路、微码等等。根据本申请案的范围,微码是涉及多个微指令的名词。一 微指令(也称为原生指令)是在一单元执行所处的层级上的指令。例如,微 指令直接由精简指令集运算(Reduced Instruction Set Computing, RISC)微 处理器来执行。对于复杂指令集运算(Complex Instruction Set Computing, CISC)微处理器(例如x86兼容微处理器)而言,x86指令首先转译为相关 的微指令,且此相关的微指令接着直接由CISC微处理器中一单元或多单元 来执行。
安全非易失性存储器107也配置在系统板100上,其通过私密总线(PVT BUS ) 106与存储器检测总线(presence detection bus)PSNT来耦接至微处理器 101。根据本发明,安全非易失性存储器107为一种经过电源的除去与重新 施加后其内容仍存留的存储器。即是,当提供至系统板的电源关闭或开启时, 安全非易失性存储器107的内容不会改变。在一实施例中,安全非易失性存 储器107包括快闪只读存储器(ROM),其大小相当于将在安全执4i,莫式中 执行的安全应用程序的大小。在一实施例中,考虑以4MB快闪只读存储器 来作为安全非易失性存储器107。在私密总线106上的数据传输(transactions) 完全地隔离于系统总线102、总线主控装置103以及总线管理装置104,且 私密总线106位于微处理器101的外部。在一实施例中,快闪只读存储器107 可程序化高达100000次。在一实施例中,私密总线106考虑以一串行总线 来实现,其提供介于安全非易失性存储器107与微处理器101之间的数据传 输。此私密总线106可符合标准界面协议,例如串行外围接口 (Serial Peripheral Interface, SPI)协议。
在操作上,电池VP与石英器X1提供在SEM逻辑电路105内实时时钟 (Real Time Clock, RTC)(未显示)的持续操作,其将于下文详细说明。包 括来自主机结构指令集的一或多个安全应用程序,通过系统总线102而撷取 自系统存储器(未显示),且储存在安全非易失性存储器107。在一实施例中, 使用属于授权者(authorizing party)的一私密非对称密钥并通过非对称加密演 算规则来加密一个或多个安全应用程序,且安全应用程序以其非对称加密格式而被存取自系统存储器。在一实施例中,考虑通过RSA演算规则来加密 一个或多个安全应用程序。在此一个或多个安全应用程序撷取自系统存储器 后,微处理器101利用一对应的公开密钥来解码此一个或多个安全应用程序 并确认此 一 个或多个安全应用程序。根据安全执行模式的使能以及依据一
"起始安全执行"指令的执行,SEM逻辑电路105利用微处理器内的多加 密资源,以根据一对称密钥算法并使用处理器独特加密密钥来对此一个或多 个安全应用程序进行加密,此外,SEM逻辑电路105通过私密总线106来 将已加密的 一个或多个安全应用程序传送至安全非易失性存储器107。之后, SEM逻辑电路105利用微处理器101内的多加密或其它资源,来对此一个 或多个安全应用程序进行存取、确认以及解密,此一个或多个安全应用程序 接着加载至微处理器101内的一安全且隔离的随机存取存储器(RAM)或一 高速緩存(未显示)。
当执行起始安全执行指令时(当进入至该安全执行模式),SEM逻辑电路 105禁能安全应用程序得知察觉所有的系统资源,而这些系统资源提供了包 括非安全中断、非安全例外逻辑以及追踪/除错逻辑电路等等的监视以及或篡 改。储存在隔离的内部RAM的一个或多个安全应用程序藉由使用SEM逻 辑电路105内的专用安全执行资源来被执行。此一个或多个安全应用程序接 着可将处理器状态由安全操作模式恢复至正常执行模式,或者假使侦测到潜 在的篡改,他们可将微处理器转换至具有有限的功能的降级模式。假使确定 发生篡改,SEM逻辑电路105接着使微处理器完全地关机(硬件关机模式)。
关于此一个或多个安全应用程序(或"安全编码")的功能类型包括(但 不受限于此)执行关键安全任务,例如凭证确认、数据加密以及数据解密; 监控正常系统软件活动;确认正常系统软件的完整性;追踪资源使用;新软 件的安装。
在一实施例中,在本发明的安全处理系统中考虑使用表面黏着式微处理 器IOI、表面黏着式安全非易失性存储器107、以及表面黏着式石英器X1。 这些表面黏着式组件包括球栅阵列(ball-grid array )组件或焊接在系统板100 上的其它相似技术。
本发明的微处理器101也执行储存在系统存储器内(未显示)的非安全 应用程序,这些非安全应用程序的指令通过系统总线102来提供。在本发明 的观念中,微处理器101能如中央处理单元(Centralized Processing Unit,CPU)般操作,而不用因应协同处理器(coprocessor)的要求。即是,本发明 的《鼓处理器101能执行主机指令集的所有指令,且能执行全部的应用程序。 与只能执行自一主要CPU转移的单一指令、程序线程或程序片断的类似功 能协同处理器与处理器比较起来,本发明的微处理器101直接执行在对应应 用程序中的所有指令,不论此应用程序是否是储存安全非易失性存储器107 的安全应用程序或者是通过系统总线102撷取的非安全应用程序。
接着参阅图2,状态图200说明在图1的微处理器中最高阶级操作模式。 在此最高阶级中,微处理器101提供三个主要操作模式201-203与一个硬件 关机模式204。非安全执行模式201是在微处理器101制造后,当第一次供 给电源时所默认(default)的第一个状态。非安全执行模式201也称为"原生 未受控(bomfree)"模式201。原生未受控模式201是微处理器101的制造 状态,其提供非安全应用程序的正常执行,其中,这些非安全应用程序通过 系统总线102而于系统存储器中存取。在此状态中,无法得知且无法操作任 何与安全应用程序的安全执行相关联的资源。这些资源包括SEM逻辑电路 105、安全非易失性存储器107以及一些其它专用寄存器,这些专用寄存器 包括含有对称与非对称加密密钥、安全中断、安全存储器(RAM)以及其它 硬件,将于下文详细说明。藉由提供原生未受控模式201,可实施与非安全 微处理器所共通的制造行动类型(type of manufacturing activities)。此外,由 于原生未受控模式201提供非安全应用程序的执行,因此本发明的微处理器 101的相同的管芯设计(the same die design)可实施在非安全微处理器。在一实 施例中,非安全微处理器的接脚配置(pinout)不同于SEM微处理器101, 且假使非安全微处理器配置在安全系统板100时,非安全微处理器的SEM 逻辑电路105将因电源应用不同而无法操作。
在一实施例中,SEMENABLE(SEM使能)指令的执行导致微处理器101 的模式转换为安全执行模式202。在安全执行模式202下,安全与非安全应 用程序都可执行,但是非安全应用程序无法存取安全资源。安全执行模式202 也称为SEM-使能模式202。在一安全应用程序的控制下(简称为程控),微处 理器的状态可转换回原生未受控模式201,然而,转换为原生未受控模式201 的次数是有限的。在一实施例中,处理器转换回原生未受控模式可高达64 次。在另一实施例中,以可确认的授权者来对特殊(particular)机械专用寄存 器(Machine Specific Register, MSR)进行写入,导致微处理器101的模式转换为安全执行模式202。
SEM逻辑电路105监控对应微处理器且与潜在篡改相关的状态,并根 据这些状态的一使微处理器自安全执行模式202转换至降级(操作)模式203。 假使某些已定义的状态被SEM逻辑电路105侦测到,微处理器101自动地 转换为降级模式203。在降级模式203中,允许执行BIOS指令,以提供使 用者输入与信息的显示的功能,但是更多复杂的软件(例如操作系统)的执 行则不被允许。在降级模式203中,在微处理器101的安全执行模式202的 安全编码操作被关闭,但是仍允许执行BIOS指令。在一实施例中,BIOS 指令通过发出一外部中断与传递状态给该微处理器且经由一机械专用寄存 器来执行。在x86兼容的实施例中,在此降级模式203中实施SMI中断以执 行BIOS指令。
这些导致微处理器由安全执行模式202转换为降级模式203的已定义状 态可以是执行安全编码的结果、或是多硬件侦测状态、或是安全编码执行结 果与硬件侦测状态的结合。此硬件侦测状态包括与潜在安全暴露或篡改相关 联的监控状态。在一实施例中,根据这些已定义状态的一侦测结果,SEM逻 辑电路105试图清除微处理器内一安全易失性存储器的一数据区域,且试图 将侦测结果纪录至安全非易失性存储器107。根据该数据区域的成功清除与 该侦测结果的成功纪录,SEM逻辑电路105将微处理器转换至降级模式203。 此外,执行在降级才莫式203的安全编码,亦即在一安全应用程序的控制下(简 称为程控),微处理器的状态转换回安全执行模式202。
某些与配置和完整性确认有关的已定义状态可导致^:处理器101转换为 硬件关机模式204。在一实施例中,根据这些已定义状态的一侦测结果,SEM 逻辑电路105试图清除微处理器内一安全易失性存储器的一数据区域、试图 将该侦测结果纪录至安全非易失性存储器107、且使微处理器进入至硬件关 机模式204。在此硬件关机模式下,只可藉由重置微处理器来退出此硬件关 机模式。在安全执行模式202或降级模式203中一安全应用程序的控制下(筒 称为程控),微处理器202可进入硬件关机模式204。
现在参阅图3,其表示在本发明实施例的微处理器300中的SEM逻辑 电路301的详细方块图。SEM逻辑电路301包括授权的公开密钥寄存器318、 处理器密钥寄存器312、 SEM初始化逻辑电路305、 SEM监控逻辑电路306、 SEM中断逻辑电路307、 SEM例外(exception)逻辑电路308、 SEM定时器309、 SEM实时时钟(RTC)310、非易失性使能指示寄存器328、 SEM机 械专用寄存器存储体(bank) 329以及安全易失性存储器302。 SEM逻辑电 路301耦接在微处理器300中的一些其它资源,包括通过总线326耦接非安 全存储器325、通过总线324耦接地址逻辑电路323、通过总线320耦接随 机数产生器319、通过总线321耦接AES/HASH/RSA单元311、通过总线 327耦接其它处理器执行单元313 (例如整数单元、浮点单元、MMX/SSE 单元)、耦接正常例外逻辑电路314、耦接正常追踪/除错逻辑电路315、耦接 正常中断逻辑电路316以及电源管理逻辑电^各322。
在一实施例中,由授权者提供公开密钥,且微处理器300的制造期间中, 公开密钥永久地编程在授权的公开密钥寄存器318。在一实施例中,此公开 密钥为1024位的RSA密钥,且授权的公开密钥寄存器318包括1024位的 熔丝库(fbsebank)。因此,此公开密钥可在微处理器300的制造期间被编程, 而不是在制造之后。或者,公开密钥藉由离线(off-line)大规模的初始化而 被编程至安全非易失性存储器107,其中,此离线大规模的初始化是用来编 程一些安全非易失性存储器107。使能与初始化安全执行模式202的能力是 非常关键的安全操作,且木马程序(Trojan Horse)有可能被安装(installation) 进安全非易失性存储器107。因此,利用提供公开密钥的方法以避免窺察与 篡改来控制安全执行冲莫式初始化程序。
处理器密钥寄存器312是多熔丝的聚集体,其实际分布在微处理器管芯
独特密钥,其只可被AES/HASH/RSA单元311(也可称加密单元3H)来读取, 并无提供自处理器密钥寄存器312读取处理器密钥的程序接口 。在一 实施例 中,处理器密钥寄存器312包括128个熔丝,这些熔丝被编程为128位的 AES (Advanced Encryption Standard, AES )密钥,而使用此AES密钥来对 安全非易失性存储器107的内容进行加密与解密。即是,使用此处理器对称 密钥来对安全编码进行加密,以储存在安全非易失性存储器中。依据通过私 密总线106来对安全编码的撷取,来自处理器密钥寄存器312的密钥被使用 来对安全编码进行解密以进一步执行。因此,私密总线106的状态的观察者 无法决定何者正在微处理器300与非易失性存储器107之间转移。
在一实施例中,处理器密钥寄存器312包括128熔丝,其随机地分布在 微处理器300中一熔丝库内的许多其它熔丝之中。此熔丝库配置在微处理器
17管芯上一些金属层的下方。
根据SEMENABLE指令的执行或其它进入安全4丸行4莫式202的预期^L 制,SEM初始化逻辑电路305提供安全执行模式202的初始化。为了详细 说明,下文将以用来使能且执行来自安全执行模式202的指令(例如 SEMENABLE )执行的方式来说明根据本发明的微处理器300的操作,然而, 此技术领域的人士将理解有其它方法能使能安全执行模式202并执行来自安 全执行模式的安全编码,例如对一隐密寄存器(hidden register)写入等等。根 据SEMENABLE指令的执行成功,SEM初始化逻辑电^各305将孩i处理器300 的状态记录在非易失性使能指示寄存器328。由安全执行模式202转换至原 生未受控模式201时,SEM初始化逻辑电路305将微处理器300的状态(安 全执行模式被使能的状态)记录在非易失性使能指示寄存器328。亦即,非易 失性使能指示寄存器328用以指示微处理器300是否处于安全执行模式或一 非安全执行模式。在微处理器的电源移除与重新施加的期间,非易失性使能 指示寄存器328的内容持续存在。在一实施例中,非易失性使能指示寄存器 328包括配置在微处理器300内的多熔丝,且微处理器300可由安全执行模 式202转换至原生未受控模式201的次数对应在这些熔丝中的一特定熔丝数 量。微处理器300包括配置在一单一管芯上的一单一集成电路。在一实施例 中,SEM逻辑电路根据进入至该安全执行模式而对非易失性使能指示寄存 器328进行第一次写入,以指示出微处理器处于安全执行模式。SEM逻辑 电路根据退出该安全执行模式而对非易失性使能指示寄存器328进行第二次 写入,以指示出微处理器处于该非安全执行模式(原生未受控模式)。
SEM监控逻辑电路306用来监控安全编码与数据的诚实性,以监控系 统的环境与物理属性,包括温度、电压、总线时钟、电池VP的存在、石英 器X1的存在以及安全非易失性存储器107的存在。SEM监控逻辑电路306 将篡改或疑似的篡改情况指示给SEM逻辑电路301,其导致微处理器300 转换至降级模式203或硬件关机模式204。
SEM中断逻辑电路307提供多中断与相关的中断逻辑装置(例如安全 中断描述符表(Interrupt Descriptor Table, IDT)),这些只显现^会正在安全执 行模式202下执行的安全应用程序,且由此安全应用程序来存取。中断安全 编码执行的机制类似于执行正常模式的机制。亦即,依据SEM中断的设置 (assertion),且藉由SEM IDT的出现使得安全编码状态浮皮保存并转移至安全中断管理者(secure interrupt handler)。由中断指令的恢复(retum)执行将控制权 恢复至安全编码中的断点。当微处理器300正操作在安全执行模式时,SEM 中断逻辑电路307提供安全中断以中断安全应用程序。SEM中断逻辑电路 307不被系统总线资源或非安全应用程序所得知或存取。当微处理器300正 操作在非安全执行模式时,微处理器300的正常中断逻辑电路316提供非安 全中断以中断非安全应用程序。
同样地,SEM例外逻辑电路308提供多安全例外与相关的例外管理逻 辑装置。当该微处理器正操作在安全执行模式202时,SEM例外逻辑电路 308提供多安全例外并禁能多非安全例外。SEM例外逻辑电路308无法被所 述系统总线资源或所述非安全应用程序所得知或存取,其只显现给正在安全 执行模式202下执行的安全应用程序,且由此安全应用程序来存取。所有安 全编码程序例外与中断利用预设的IDT,此预i殳IDT存在于SEM中断逻辑 电路307内,以在中断与例外期间内控制分支。在一实施例中,根据所述安 全例外的一者的使能,微处理器的状态被储存且程控转移至一对应安全例外 管理者,其中微处理器的状态无法被所述非安全应用程序所存取。在安全应 用程序执行之前,SEM逻辑电路301禁能正常例外逻辑电路314,以及当微 处理器300正操作在非安全执行模式时,正常例外逻辑电路314提供对应所 述非安全应用程序的多非安全例外。在一实施例中,假使在所述非安全应用 程序的任一者执行的期间发生所述安全中断的任一者或所述安全例外的任 一者,微处理器的状态被储存且微处理器300进入安全执行模式。
这些安全中断被配置来提供微处理器300外部事件所导致的程控转移, 例如键盘事件、1/0端口事件等等。安全例外是用来提供微处理器300内部 事件所导致的程控转移,例如非定义的运算码(opcode )、机械检查错误 (machine check errors)、以及在一实施例中对一个或多个安全机械专用寄存器 存储体329的安全编码写入。IDT包括多安全寄存器,其被加载多指标,而 这些指标是指向在安全编码中的安全中断管理者与安全例外管理者(secure exception handler)。 IDT提供转移至该安全应用程序内的多安全中断管理者 与多安全例外管理者)的程控。此预设IDT包括关于程控转移至该微处理器 将执行的一安全执行模式重置操作的数据。在一实施例中,根据所述安全中 断的一者的使能,该微处理器的状态被储存且程控转移至一对应安全中断管 理者,以及该微处理器的状态无法由所述非安全应用程序来存取。在一实施例中,根据所述非安全中断的一者的使能,该微处理器的状态被储存且程控 转移至一对应非安全中断管理者,以及该《效处理器的状态无法由所述非安全
应用程序来存取。
SEM定时器309是只显现给正行在安全执行模式202下^l行的安全应 用程序且由此安全应用程序来存取的多定时器。SEM定时器309包括多中 断,而这些中断可由操作在安全执行模式202下的安全编码来存取。SEM实 时时钟310其提供持续时间(persistent time),其只显现给正在安全执行模式 202下执行的安全应用程序且由此安全应用程序来存取。SEM实时时钟310 的值无法由不同于操作在安全执行模式202下的安全编码的任何对象来改 变。SEM机械专用寄存器存储体329包括多机械专用寄存器,且这些机械 专用寄存器只显现给正在安全执行模式202下执行的安全应用程序且由此安 全应用程序来存取。这些机械专用寄存器用来使能对安全非易失性存储器 107、 SEM实时时钟310以及SEM定时器309的加载/储存存取。
非安全存储器325作为给正在执行的非安全应用程序的指令与数据高速 緩存(instruction and data cache)。非安全存储器325用以储存多非安全应用程 序以由微处理器来执行。在微处理器300内的这些程序与其它系统总线资源 可得知且存取非安全存储器325。安全易失性存储器302系作为给正在安全 执行^t式202下执行的安全应用程序的一指令与数据高速緩存。进入至安全 执行模式202,安全易失性存储器302的一堆栈(stack)提供来储存处理器 状态303,其用于对应所述非安全应用程序的该微处理器的状态的储存与取 回。安全易失性存储器302的其它堆栈提供来储存安全编码304与对应安全 编码的安全数据317。安全易失性存储器302根据微处理器的重皇而被清除, 且其完全地隔离于系统总线,因此,安全易失性存储器302无法被非安全系 统资源窥察、加载、除错或其它方法的存取。安全编码(安全应用程序)可使 用正常处理器加载与储存指令来存取安全易失性存储器302,以加载/储存安 全数据317,其中,这些正常处理器加载与储存指令是参考地址逻辑电^各323 内的正常片段寄存器(normal segment register),此正常片段寄存器是当于安 全易失性存储器302 (而不是正常系统存储器)进入至安全执行时而被初始 化。此正常系统存储器也被执行在安全执行;漢式的安全编码,通过地址逻辑 电路323且使用正常加载与储存指令来存取。然而,根据安全编码的执行, SEM逻辑电路301通过总线324来命令地址逻辑电路323以停止虛拟地址转译。亦即,因为虚拟-实体地址转译为了指令与数据而被禁能,因此,通 过总线324且由安全编码所提供的地址必须为实体地址。藉由这种作法,
SEM逻辑电路阻止了分页错误,藉以消除此篡改来源。
在一实施例中,安全易失性存储器302完全地属于在微处理器300内的 芯片上(on-chip)高速緩存,但安全易失性存储器302快取线具有将这些快 取线完全地隔离于微处理器总线的特定内部属性。这些快取线没有耦接至外 部系统存储器,因此这些快取线无法自系统存储器装载或存入至系统存储 器,这些快取线也无法被任何汇流窥探资源来外部地或内部地窥察。
在一实施例中,安全易失性存储器302包括4K64位快取线。在安全易 失性存储器302中, 一快取线依据由将数据移动至先前没有涉及(referenced) 的一快取线来分配。在一实施例中,安全易失性存储器302包括具有4096 个位置的一 64位高速緩存,所述位置的每一者包括一内部属性,且该内部 属性完全地隔离所述位置的每一者。
在另一实施例中,安全易失性存储器302包括随机存取存储器,其与微 处理器300内的芯片上高速緩存分离。
SEMENTER指令的执行提供了安全执行才莫式202内安全编码的4丸行。 在一 x86相容的实施例中,安全执行模式202根据修改的32位x86真实模 式来提供安全编码的执行。在执行安全编码时,禁止由安全执行模式202进 入一 x86保护模式。在安全执4亍才莫式执行之前,SEM初始化逻辑电^各305 藉由设置一使能信号DISIL来禁能正常(即非安全)中断逻辑电路316。在 安全执行模式执行之前,SEM初始化逻辑电路305也藉由设置一使能信号 DISEL来禁能正常(即非安全)例外逻辑电路314,也藉由设置一使能信号 DISDL来禁能正常(即非安全)追踪/除错逻辑电路315。此外,在安全执行 模式执行之前,电源管理逻辑电路322藉由信号DISPML的设置而被禁能。 通过这些安全措施,不会发生正常总线中断,阻止了除一睹例外、避免总线追 踪周期、且禁能除错输出入埠。此外,信号DISIL用来在安全编码的执行期 间内禁能所有的剩余处理器资源(例如JTAG、探测模式、快取测试)。否贝'J,
容实施例中的P状态与C状态。因此,信号DISPML用来在安全编码执行 期间避免功耗状态的转换。
通过总线320、 321及327,安全编码可存取处理器执行单元(处理器300内的执行单元)313、随机数产生器319与AES/HASH/RSA单元311,以执行 微处理器指令集的所有指令,其中,这些指令包括真实随机数的硬件产生且 可由编程的巨集指令来使用的硬件实施功能,以执行RSA加密、解密以及 识别核对;AES加密与解密、以及SHA-1/SHA-256哈希产生(Secure Hash Algorithm, SHA,安全哈希算法)。这些硬件实施功能由AES/HASH/RSA单 元311来^M亍。
现在参阅图4,图示400表示在本发明的4鼓处理器内安全编码如何被储 存、存取及初始化。图标400说明能进行安全执行模式(SEM)的微处理器 401,其通过系统总线425而耦接BIOS存储器410与系统存储器420。根据 本发明,微处理器401也通过私密总线431而耦接至安全非易失性存储器 430。微处理器401包括安全编码接口逻辑电路402,其耦接至随机数产生器 412、处理器密钥寄存器413、授权的公开密钥寄存器404、 AES/HASH/RSA 单元405 (或称加密单元405)、安全易失性存储器406、 SEM监控逻辑电路 408以及SEM初始化逻辑电路409。安全编码4妄口逻辑电^各402另外耦接总 线接口单元403与安全非易失性存储器接口单元407。
图标400也表示储存在系统存储器420与BIOS存储器410的安全编码 411及421。在一实施例中,储存在BIOS存储器410的安全编码411主要是 用来提供微处理器401在降级模式203中的操作,而储存在系统存储器420 的安全编码421是用来提供微处理器401在安全执行模式202中的操作。
在操作上,图标400所示的组件的运作,实质上相似于先前参阅第1-3 图而已叙述的相似名称组件。参阅图4的讨论目的是为了更加明确集中注意 在那些组件与技术,而那些组件与技术是用来储存、存取、初始化、执行在 本发明的安全环境中的安全编码。
此外,关于安全编码执行的环境是隔离于非安全编码执行的环境。如先 前所述,原生未受控模式201只允许非安全编码的执行。安全执行模式则允 许非安全编码与安全编码两者的执行。在安全编码421执行之前,微处理器 401的状态被保存。根据回到非安全编码的执行的转换,此状态恢复 (restored)。此状态储存在安全易失性存储器406内的一个区域,且此状态不 会出现在微处理器总线425上。此外,安全编码411、 421是执行自安全易 失性存储器406。除了将安全易失性存储器406隔离于与微处理器总线425 联系的硬件与软件,所有其它"从属通道(side channels)"(例如除错例外与执行追踪特征)被禁能,如关于图l-3的讨论。安全编码411、 421只提供给 SEM中断逻辑电路307、 SEM例外逻辑电路308、 SEM实时时钟310、 SEM 定时器310以及只可由安全编码411、 421利用的其它处理器资源独占存取。
此外,微处理器401提供SEM监控逻辑电路408,其包括的异步监控 与监视机制,其中,此异步监控与监视机制独立于安全编码411、 421以及 非安全编码的执行。SEM监控逻辑电路408监控微处理器的环境(例如电 压、温度、总线运作)与物理特性,也核对安全编码411、 421(安全应用程 序)与相关数据的诚实性,将于下文详细说明。当侦测到安全暴露(security exposure)时,SEM监控逻辑电路408可通过总线CHK将程控转移至安全编 码411、 421的安全编码错误管理装置(secure-code error handler),或者,在 侦测到严重的安全暴露情况下,SEM监控逻辑电路408将通过总线CHK来 使微处理器401进入降级模式203。
在一实施例中,安全编码接口逻辑电路402监控存在于安全编码411 、 421中的多指令,且通过总线INS将这些指令提供至SEM监控逻辑电路408, 以支持微处理器401的限定的指令集架构(Instruction set Architecture, ISA) 操作。根据此实施例,当微处理器401正操作在安全执行模式时,本发明的 微处理器401只被允许执行主机ISA中的某些指令。即是,限定的ISA操作 使得SEM逻辑电路阻止多非安全指令的执行,而此非安全指令的执行是授 权者欲阻止的,且该些非安全指令包括取自对应微处理器的一指令集架构的 一个或多个运算码。举例来说,在x86相容的实施例中,超过100个微指令 的产生与执行的指令或某类指令要求会被阻止。另一方面,当微处理器401 正操作在安全执行模式时, 一授权者可能期望阻止所有指令的执行,例如任 务切换、呼寻闸(callgates)等等。藉由将安全编码411、 421内每一指令提供 给SEM监控逻辑电路408,本发明的微处理器401使能限定的ISA操作。 在一实施例中,在限定的ISA指令集中的指令(即提供在安全执行才莫式下执 行的指令),由SEM监控逻辑电路408内指令阵列(未显示)的值来表示, 将于下文详细说明。当遭遇到上述被阻止的指令时,SEM监控逻辑电路408 使微处理器401进入降级模式203。
在一 实施例中,安全编码接口逻辑电路402将安全编码411、 421中的 指令提供给SEM监控逻辑电路408,提供时将安全编码411、 421加载至安 全易失性存储器406以进行后续执行。使能与初始化安全执行模式202的能力是非常关键的安全操作,此外,
其表示了关于木马程序(Trojan Horse)安装有可能进入至包含安全编码411、 421的存储器410、 420的区域。通过非对称加密算法与一组对应的非对称加 密密钥的使用,本发明的微处理器401藉由控制安全执行模式初始化程序而 有利地阻止此暴露。在一实施例中,非对称密钥算法是RSA算法,且对应 密钥则是由授权者所产生的1024位RSA公开与私密密钥。在一实施例中, 此授权者或授权实体(entity)提供执行的安全编码411、 421。如前文关于图3 的说明,在微处理器401的制造期间,两密钥中的一者储存在授权的公开密 钥寄存器318,且用来根据非对称密钥算法来对数据解密,其中,此数据已 由授权者的其它非对称密钥(即私密密钥)来加密。
因此,在一实施例中,此操作系统执行SEMENABLE指令(或相似机 制)。此指令传送通过授权者的私密密钥来加密的一SEM使能参数。安全编 码接口逻辑电路402接着通过授权的公开密钥寄存器404来存取公开密钥, 且利用AES/HASH/RSA单元405来对此SEM使能参数解密。根据核对SEM 使能参数,SEM初始化逻辑电路409初始化安全执行模式202,亦即使能安 全执行模式202以4丸行安全应用程序。除此之外,SEM初始化逻辑电路409 指示微处理器401自SEMENABLE指令恢复(return)后,微处理器401保持 在非安全执行模式201。在一实施例中,无论是否接受进入安全执行模式202 的授权(以及有一对应错误状态时,假使有的话)都会提供一响应编码(retum code)。
相对于在微处理器401的制造期间将授权的公开密钥直接编程至授权的 公开密钥寄存器404,在另一实施例中,授权者将授权的公开密钥编程至安 全非易失性存储器430的授权的公开密钥区域432。因此,当微处理器401 开机(power up)时,安全非易失性存储器接口单元407自此区域432侦测并 撷取此公开密钥。安全编码接口逻辑电路402接着将此密钥以及之后指示此 密钥已被烧录的参数,烧录至授权的公开密钥寄存器404。此供选择的实施 例在安全非易失性存储器430的制造阶段上,提供了更弹性地公开密钥配置。 安全非易失性存储器接口单元407通过私密总线431将微处理器401耦接至 安全非易失性存储器430,其中,在私密总线431上用来存取安全非易失性 存储器430的多私密总线数据传输被隐藏,以避免被微处理器401内多系统 总线资源以及耦接该系统总线的任何装置所得知察觉。
24安全非易失性存储器接口单元407是由安全编码接口逻辑电路402所管 理。根据核对一 SEM使能参数,安全非易失性存储器接口单元407藉由执 行随机数写入来清除安全非易失性存储器430的内容。在一实施例中,在安 全非易失性存储器430中的每一个位置以随机数写入64次。在一实施例中, 每次写入的随机数是由随机数产生器412所产生。
SEMENABLE指令(或是SEM使能机制)也传送关于安全编码411、 421在BIOS存储器410或系统存储器420的位置的指针和任何初始安全数 据(亦即使能参数)。此指针与数据(亦即使能参数)是根据一预设结构来被格 式化,且根据非对称密钥算法而被加密。被加密的指针与数据被解密,且格 式化被核对。不成功的核对导致错误码的回应。
假使在结构方面此指针与数据被确认且证实,安全编码接口逻辑电路 402则指示总线接口单元403去自BIOS存储器410以及/或系统存储器420 撷取安全编码411及421。安全编码411、 421也已藉由使用授权者的私密密 钥并根据非对称密钥算法而被加密,且必须与预设结构相称。安全编码接口 逻辑电路402利用授权的公开密钥寄存器404与AES/HASH/RSA单元405 来对加密的安全编码411、 421进行解密。在核对为正确格式后,安全编码 接口逻辑单元402利用AES/HASH/RSA单元405来根据对称加密算法并使 用处理器密钥寄存器413的内容(作为对称密钥)来对安全编码与凄t据进行 加密。如前所提及,处理器密钥寄存器413的内容是微处理器401所特有的 128位随机产生的密钥,且对称加密算法包括使用128位模块(blocks)以及电 子密码书(Electronic Code Book, ECB )模式的高级加密标准(AES )。此对 称加密的安全编码接着通过安全非易失性存储器接口单元407而被写入至安 全非易失性存储器430。此外,安全编码接口逻辑电路402利用 AES/HASH/RSA单元405与处理器密钥寄存器413来产生安全编码中已选 择部分的多个哈希,安全编码接口逻辑电路402对这些。合希进行加密编码并 写入至安全非易失性存储器430。在一实施例中,这些哈希是根据SHA-1算 法而产生。
此外,SEM初始化逻辑电路409禁能JTAG、探测模式、快取测试、或 者禁能通过图3所讨论的机制而提供安全编码监视的其它处理器特性。
当被编码且被哈希的安全编码已写入至安全非易失性存储器430,微处 理器401设定非易失性使能指示寄存器(如图3中328所示)指示出处理器401正操作于安全扭"行才莫式202且SEM初始化逻辑电^各409迫使微处理器 401执行一重置序歹'J(RESET sequence).
部分的重置序列导致非易失性使能指示寄存器的内容被读取,且假使这 些内容指示出处理器401处于安全执行模式202中,则执行安全执行模式202 所特有的额外操作。
因此,安全编码411、 421起初被加密,且由授权者加载至存储器410、 420。当安全执行模式被使能时,微处理器401根据非对称密钥算法并使用 授权者所提供的密钥来撷取且核对安全编码。接着使用处理器独特密钥并根 据对称密钥算法来加密且哈希此编码,且对称加密的编码通过私密总线431 而被写入至安全非易失性存储器430。
以下将进一步详细说明,当安全编码将被执行时,安全编码由安全非易 失性存储器接口单元407自安全非易失性存储器430被撷取,且使用存放于 处理器密钥寄存器413的处理器密钥来译码,且安全编码被写入至微处理器 401内的安全易失性存储器406,其中,安全易失性存储器406完全隔离于 所有可窺探其内容的硬件及或软件。安全易失性存储器406的功能包含可存 放安全应用程序执行的指令与数据高速緩存。
在一实施例中,安全非易失性存储器接口单元407包括多机械专用寄存 器,其专有地显现给安全编码,这些机械专用寄存器允许一安全应用程序(或 安全编码接口逻辑电路402)去执行对安全非易失性存储器430的加载与储 存。即是,根据此实施例,藉由执行对隐藏机械专用寄存器的读取与写入, 来执行对安全非易失性存储器403的读取与写入。
授权者可有利地将微处理器401的安全操作与安全执行模式环境结合, 且由于通过系统总线425与私密总线431的数据传输被加密,因此安全编码 的结构与功能则被保护以避免任何的反向工程与其它窺察/侵入技术。
现在参阅图5,其表示在图1的微处理器中的SEM监控逻辑电路500 的详细内容。SEM监控逻辑电路500包括物理环境监控器501,其通过信号 PSNT耦接安全非易失性存储器107、通过信号VP1与VP2耦接电池VP, 且通过信号Cl与C2耦接石英器。此物理环境监控器501通过总线NOBOOT 提供一输出信号。
SEM监控逻辑电路500也包括总线时钟监控器502,其具有频率参考单 元503。总线时钟监控器502通过信号BUS CLK耦接提供至微处理器的总线时钟,且总线时钟监控器502的输出系耦接总线TAMPER。
SEM监控逻辑电路500也包括处理器电压监控器504,其通过信号VDD 与BUSTERM耦接电源供应电压与多总线终端电压,其中,电源供应电压与 总线终端电压由系统板提供至微处理器。SEM监控逻辑电路500也包括温 度监控器505,其通过信号TEMP耦接至处理器温度感测逻辑电^(未显示)。 SEM监控逻辑电路500更包括数据监控器506,其通过总线CHK耦接至安 全编码接口逻辑电路402。总线时钟监控器502、处理器电压监控器504、温 度监控器505以及数据监控器506的输出信号则耦接至总线TAMPER。
SEM监控逻辑电路500更包括安全时戳计数器(security time stamp counter)507,其耦接正常时戳计数器(normal time stamp counter)508、信号 CORE CLK以及比率(Ratio )机械专用寄存器509。安全时戳计数器507的 输出信号耦4姿总线TAMPER。
SEM监控逻辑电路500也包括指令监控器511,其耦接指令阵列512与 总线INS。如关于图4的讨论,当微处理器正执行在安全执行模式时,在安 全应用程序内的指令;f皮提供至SEM监控逻辑电路500,以支持在主4几ISA 内限制的指令执行。指令监控器511的输出信号耦接至总线TAMPER。
最后,SEM监控逻辑电路500具有样式监控器510,其耦接总线 PINCHK,且在总线DESTRUCT上产生一输出信号。
总线NOBOOT、 TAMPER以及DESTRUCT耦接于监控管理器513。在 一实施例中,监控管理器513产生信号CLASS1、 CLASS2、 CLASS3以及 DISABLE 。
在操作上,SEM监控逻辑电路500用来执行;更件与软件检验,其监控 本发明微处理器的物理与暂时的属性,以侦测、识别以及分类操作事件 (operating events),其中,操作事件是表示对于安全编码而言不安全的操作环 境,例如改变或移除电池、石英器或者安全非易失性存储器;以本发明的不 安全的微处理器来取代本发明的安全微处理器;修改总线时钟;篡改微处理 器电源供应电压VDD;修改在系统存储器、BIOS存储器或安全非易失性存 储器内的加密安全编码;以及发生对安全编码本身的过度呼寻(excessive calls)。
因此,当操作在安全执行模式时,物理环境监控器501耦接安全非易失 性存储器107,藉由监控信号PSNT的状态来判断安全非易失性存储器107
27是否移除。信号PSNT的禁能(de-assertion)表示移除安全非易失性存储器 107。同样地,监控信号VP1与VP2来判断电池电压是否改变或电池被移除 或者判断对应该电池的电压是否被充电。在一实施例中,VP1的值与电池电 压成比例。同样地,信号Cl与C2的状态表示石英器的存在与否。,i使物 理环境监控器501侦测到上述的任何变化,此变化则输出至总线NOBOOT。
此外,当操作在安全执行模式202时,总线时钟监控器502估计信号 BUS CLK的频率,以判断系统总线时钟的短期与长期完整性,其中,系统 总线时钟通过系统板而提供至微处理器。此总线时钟通过信号BUS CLK被 路由(routed)至总线时钟监控器502,总线时钟监控器502使用内部相位锁相 回路(未显示)来检验短期总线时钟误差,其中,内部相位锁相回路与总线 时钟同步化且用来产生内部时钟《会微处理器。总线时钟监控器502判断总线 时钟于不适当的周期是否维持平坦,或者判断时钟变化是否已超出可接受的 程度(例如一特定范围)。在一实施例中,超过百分的六的变化视为是无法接 受的。此外,总线时钟监控器502使用频率参考单元503来作为温度与电压 非相依的中间速度振荡器电路。频率参考单元503产生与系统总线时钟成比 例的一参考频率。总线时钟监控器502比较系统总线时钟的衍生(derivative) 与频率参考单元503的输出(参考频率),以判断总线时钟的频率是否已经历 逐步(gradual)的频率变化。假使任何上述事件发生,此事件通过总线TAMPER 报导给监控管理器513(SEM逻辑电路301),其将导致微处理器进入降级模 式或进入硬件关机模式204。
处理器电压监控器504估计通过信号VDD与BUSTERM来提供且施加 于微处理器的电源供应电压与多总线终端电压。上述电压的高低限制通过机 械专用寄存器(未显示)来编程。 一但电源供应电压与多总线终端电压偏离 这些编程限制,处理器电压监控器504将通过总线TAMPER来报导(report) 此事件给监控管理器513。
温度监控器505包括精准的热监控机制(除了正常热监控功能以外), 其在预设高与低温度限制下不断地监控管芯温度。该管芯温度的一低温度限 制与一高温度限制藉由温度监控器505内一机械专用寄存器来编程。此高与 低温度限制储存在温度监控器505内机械专用寄存器中,其中,这些机械专 用寄存器可被安全编码写入。 一旦该管芯温度偏离上述预设高与低温度限 制,温度监控器505将通过总线TAMPER来^R导此事件给监控管理器513。数据监控器506用来当自安全非易失性存储器撷取该安全应用程序时, 用以侦测与报导与安全编码和安全数据相关的多加密与配置错误。这些多加
密与配置错误通过总线TAMPER来报导给监控管理器513。举例来说,这些 错误为与SEMENABLE及SEMENTER指令的执行相关的错误、当自存储器 撷取安全编码时所侦测到的解密错误、以及在安全编码中哈希与格式错误。
安全时戳计数器507耦接一核心时钟信号CORE CLK,用来计算当安全 编码正执行时的核心时钟信号CORE CLK的周期数。安全时戳计数器507 耦接一正常时戳计数器508。正常时戳计数器508则是在非安全编码或安全 编码执行期间内计算信号CORE CLK的周期数。当安全应用程序正在执行 时或当安全应用程序非正在执行时,正常时戳计数器508计算信号CORE CLK的周期数。安全时戳计数器507也耦接一比率机械专用寄存器509,比 率机械专用寄存器509只由该安全应用程序所得知且存取。安全执行模式执 行期间,安全编码可对比率机械专用寄存器509执行一机械专用寄存器写入, 以建立介于正常时戳计数器508与安全时戳计数器507的数值之间的一最大 比例(maximum ratio)。此最大比例指示该安全应用程序已被呼寻的次凄t。假 使超过此最大比例,藉此指示出安全编码已被呼寻多于指定次数,接着,安 全时戳计数器507通过总线TAMPER报导此事件(最大比例何时被超过)给监 控管理器513。亦即,安全时戳计数器507用以比较信号CORE CLK周期数 与正常时戳计数器508的数值、且将上述最大比例被超过的事件报导给监控 管理器513。上迷最大比例藉由SEM逻辑电路内的一机械专用寄存器来编 程。
指令监控器511在与主机IS A内指令子集的对照下用来确认在安全应用 程序内的指令,且指示出在此安全应用程序内且非在此子集内的指令何时已 被编程以进行后续执行。提供来在安.全执行模式内执行的指令子集是由指令 阵列512的数值来表示。在一实施例中,此子集包括在ISA内的一个或多个 特殊指令,如运算码(opcode)所识别。在另一实施例中,此子集包括一个或 多个指令种类,如一微码(microcode)复杂数值所识别。在一第三实施例中, 此子集包括一个或多个巻标编码(tag codes),每一者与一个或多个指令运算 码相关联。
指令阵列512耦接该指令监控器511,用以识别对应微处理器的一指令 集架构内的一所有指令的子集,该子集包括允许在一安全执行模式内执行的指令。用来在安全执行模式下执行的指令子集由指令阵列512的数值来识别。
在一实施例中,此指令阵列512包括一机械专用暂存器,其初始地由安全应 用程序来写入。在另一实施例中,指令阵列512包括多熔丝,其在制造期间 被编程(烧断)。
在安全执行模式的初始化期间,当安全编码正由安全非易失性存储器传 送至安全易失性存储器以进行后续执行时,对应安全编码内每一特定指令的 数值由安全编码接口逻辑电路402通过总线INS而提供至指令监控器511。 在一实施例中INS的数值表示每一特定指令对应微处理器的一指令集架构 内的的特定运算码或是运算码子集。在另一实施例中,此数值表示这些指令 的种类(例如简单、复杂等等)。在又一实施例中,此数值是对应在ISA内 一或多个指令的巻标。
在另一实施例中,于安全编码的执行之前,当安全非易失性存储器正被 编程时,在安全编码内每一指令的数值由安全编码接口逻辑电路402通过总 线INS来提供。
指令监控器511比较INS的数值与指令阵列512的数值,以判断是否允 许执行特定指令。假使不允许的话,指令监控器511则设置信号于总线 TAMPER。
样式监控器510,耦接总线DESTRUCT,是侦测本发明的微处理器的非 安全版本对系统板的安装,其中,此系统板是配置给本发明的安全微处理器。 在一实施例中,非安全微处理器与安全微处理器具有相异的接脚配置 (pinout )。在此两版本之间相异的特定脚位的状态系通过总线PINCHK作为 样式监控器510的输入信号。样式监控器估计总线PINCHK的状态,且假使 判断出此非安全版本被安装时,则通过总线DESTRUCT来报导此事件给监 控管理器513。亦即,总线DESTRUCT提供对应微处理器的特定多接脚配 置的多状态,且样式监控器510则估计上述多状态以判断微处理器是否配置 一安全版本来操作在该安全执行模式中。
监控管理器513藉由注意与估计通过总线NOBOOT、 TAMPER及 DESTRUCT传递的数据,来动态地监控^f敬处理器的物理与^:作环境。监控 管理器513对上述数据进行分类以指示出与安全应用程序的执行相关的安全 层级,且使微处理器内的SEM逻辑电路根据安全层级来执行反应操作。对 安全应用程序的执行而言,SEM监控逻辑电路500包括异步监控、监视机制与监控器等系独立地操作。以下某些情况将导致信号CLASS1的设置,例
如通过总线TAMPER报导的总线BUS CLK的频率的短暂误差。SEM逻辑 电路响应于CLASS1的设置而将此事件纪录(log)(侦测信号CLASS1的设置) 至安全易失性存储器内的安全事件纪录表,且发出一中断给安全编码。假使 此中断没有被收到(acknowledged),则监控管理器513设置信号CLASS3。
假使侦测到会导致信号CLASS1设置的多事件(多于一个事件),例如 BUS CLK的误差与VDD的误差,监控管理器513则设置信号CLASS2。SEM 逻辑电路则试图清除安全易失性存储器的数据区域,且试图将此事件记录至 安全非易失性存储器。此外,检查在BIOS的安全编码的哈希。假使安全易 失性存储器的数据区域成功清除且此事件(侦测信号CLASS2的设置)被纪 录,且假使BIOS哈希被正确地证明,SEM逻辑电路则开始转换至降级模式 203。此降级模式提供有限的功能、错误显示以及有限的使用者输入的相关 指令。这些动作中任一者的错误会导致信号CLASS3的设置。
信号CLASS3的设置表示有安全侵害。响应于信号CLASS3的设置,SEM 逻辑电路持续试图清除安全易失性存储器且试图将此事件(侦测信号 CLASS3的设置)记录至安全非易失性存储器,此外,使^L处理器进入硬件关 机模式204,即微处理器停止操作。
在一实施例中,监控管理器513判断样式监控器510是否已设置信号 DESTRUCT,因此指示出本发明微处理器的非安全版本的安装。假使信号 DESTRUCT被设置,且假使在总线NOBOOT上的数据指示出石英器与安全 非易失性存储器存在时,信号DISABLE则^皮设置。响应于信号DISABLE 的设置,SEM逻辑电路使非安全的微处理器停止操作。
以上关于监控管理器513设置信号CLASS1、 CLASS2、 CLASS3以及 DISABLE皆用来将程控转移至安全应用程序内多事件管理者之一,例如有 安全侵害时,信号CLASS3被设置,SEM逻辑电路则持续尝试清除安全易 失性存储器且将此事件记录至安全非易失性存储器,持续尝试迫使微处理器 进入硬件关机模式,即微处理器停止操作。关于监控管理器513设置信号 CLASS1、 CLASS2、 CLASS3以及DISABLE的上述情况仅为范例,是用来 教导本发明的安全环境管理。此技术领域中具有通常知识者能理解,安全事 件类别以及适当反应是受到所需的特定安全环境所约束,因此,本发明包含 了上述安全事件类别与适当反应的其它方法。现在参阅图6,状态图600详细说明本发明的微处理器的操作模式转换。
状态图600包括原生未受控模式601 (或"非安全,,执行模式601)、降级模 式605以及硬件关机模式606,如同图2中相似命名的组件,相异之处在于, 更详细说明原生未受控模式601在程控下只可返回至此才莫式的有限次数。这 些返回的有限次数以原生未受控模式(born free mode, BFM)[1:N]来表示。此 外,更详细地解释在图2的安全执行模式202,以说明多SEM使能重置模 式[1:N]602、 一 SEM使能正常执行模式603以及一 SEM使能安全执行模式 604。即是,当安全执行模式202通过SEMENABLE指令的执行(或者其它 使能机制)而被使能时,本发明的微处理器被重置(即使能重置[1:N])其可 能正在执行非安全应用程序(使能正常执行模式),或者可能正执行安全编 码(使能安全执行模式)。
如上所示,本发明的微处理器被制造为初始开机即进入原生未受控模式 601。且如状态图600所指示,有关微处理器的安全的不同版本可持续地被 使用于原生未受控模式中。然而,SEMENABLE指令或使能安全执行模式的 交替机制(例如SEMENABLE)的执行导致微处理器进入SEM使能重置模 式602,以迫使微处理器重置,其中可以进入SEM使能重置4莫式602的次 数为[1:N]次,且上述为第一次进入SEM使能重置模式602。在SEM使能重 置模式602中,在重置序列期间,微处理器执行关于梯:作在安全环境的配置 与诚实性检查,如前述关于图5的叙述。根据在SEM使能重置模式下重置 的成功执行(即通过),微处理器转换至SEM使能正常执行模式603,以进 行非安全应用程序的执行。然而,假使侦测到某些已定义状态,例如前述由 监控管理器513对信号CLASS3与DISABLE的设置,微处理器将转换至降 级模式605 (即由于CLASS2的设置),或转换至硬件关才几模式606 (即由于 DISABLE的设置)。从硬件关机模式606离开,微处理器可被重置以导致其 返回至SEM使能重置模式602中。从降级模式605离开,微处理器通过BIOS 提供受限的指令,允许使用者建立用来在程控下使能微处理器以进入SEM 使能安全执行模式604的参数。
从SEM使能重置模式602离开,在重置序列中的硬件呼寻将迫使微处 理器直接进入SEM使能安全执行模式604,于其中执行安全编码。此外, 发生在SEM使能正常执行模式603中非安全编码执行期间中或者在 SEMENTER指令的执行期间中的安全中断、或者使微处理器开始执行安全编码的交替机制,将导致微处理器转换至SEM使能安全执行模式604。命 令微处理器开始执行安全编码的指令与交替机制都参照状态图600中的"呼 寻"。同样地,SEMEXIT指令的执行或命令微处理器终止安全编码执行与开 始非安全编码执行的交替机制,参照"返回(RETURN)",此返回导致孩i处理 器转换为SEM使能正常执行模式603。如上所述,安全编码可导致〗效处理 器由SEM使能安全执行模式604转换为降级模式605。 BIOS内的安全编码 允许微处理器由降级模式605返回至SEM使能安全执行模式604。
最后,在SEM使能安全执行模式604中执行的安全编码可藉由写入一 特殊机械专用寄存器,来引发安全机械检查例外,其导致微处理器转换回 SEM使能正常执行模式603以执行非安全编码。此外,假使在SEM使能正 常执行模式603中发生一安全中断,微处理器的状态自动地改变至SEM使 能安全执行模式604。这些执4亍在本发明微处理器范例中用来导致状态图所 述的状态变化的不同的步骤,将通过第7-11图来详细说明。
参阅图7,流程图700表示本发明微处理器中使能安全执行模式操作的 高阶方法。流程图开始于方块701,于其中,微处理器处于原生未受控模式 601 。通过SEMENABLE指令的执行或使能安全执行模式的交替机制,例如 写入至一隐藏机械专用寄存器,传送一使能参数,其中,此使能参数已藉由 使用一对非对称加密密钥中的一者并根据非对称加密算法来被加密,而一对 非对称加密密钥中的另 一者已被编程至微处理器中授权的公开密钥寄存器 内。流程继续进行至方块702。
在方块702中,利用在微处理器内的加密单元,解密此使能参数以撷取 用来使能安全执行模式的 一有效指令以及擷取在存储器内加密安全编码的 指针。在BIOS中指向安全编码的另一指标以及任何加密的初始化数据也一 起被提供。流程继续进行至方块703。
在方块703中,加密的安全编码通过系统总线而^皮擷取自存储器/BIOS, 且被解密。此安全编码与数据接着藉由使用一处理器密钥并根据一对称密钥 算法来被加密,其中,此处理器密钥对于本发明的每一处理器而言是独特的, 且在制造时被编程至一处理器密钥寄存器。此对称加密的安全编码与数据接 着通过私密总线而被写入至一安全非易失性存储器,其中,此私密总线隔离 于系统总线资源。写入至安全非易失性存储器的部分程序包括在写入对称加 密编码与数据之前,对存储器执行随机写入。流程继续进行至方块704。在方块704中,微处理器内非易失性使能指示寄存器被写入,以指示出 安全执行模式被使能。在一实施例中,非易失性使能指示寄存器包括多字元, 且这些位中的一者被写入以在安全执行模式每次被使能时用来指示出安全 执行模式被使能。这些位中另一者被写入以指示出返回至原生未受控模式。
因此,4艮据本发明的256位非易失性使能指示寄存器允许了 128次由非安全 执行模式至安全执行模式的转换。流程继续进行至方块705。
在方块705中,重置微处理器,即完成本发明微处理器中使能安全执行 模式操作的方法。
图8的流程图800强调用来在本发明的微处理器中禁能安全执行模式操 作的高阶方法。即是,流程图800叙述操作在安全执行模式的安全编码如何 命令微处理器返回至原生未受控模式。流程开始于方块801,于其中,正于 安全执行模式执行安全编码。流程继续进行至方块802。
在方块802中,安全编码于安全执行模式执行至非安全执行模式的返回 (retum),亦即执行安全执行模式禁能指令。在一实施例中,当安全编码执行 对一 SEM机械专用寄存器的写入时,开始实施至非安全执行模式的返回(返 回至一非安全执行模式),其导致一安全例外(secure exception)。程控接着转 移至在于安全编码内一地址上的安全例外管理者,其中,此地址由前述安全 中断描述符号窗体的内容来提供。在一实施例中,安全例外管理者对一机械 专用寄存器执行写入,以指示接受此返回。假使,此机械专用寄存器没有被 正确地写入,此返回被忽略,且微处理器维持在安全执行模式。假使交握被 确认,则流程继续进行至方块803。
在判断方块803中,评估非易失性使能指示寄存器的内容,以判断是否 禁能安全执行模式(支持返回至非安全执行模式)。假使没有被禁能(支持返回 至非安全执行模式),流程继续进行至方块806。假使于此非易失性使能指示 寄存器的多字元允许至非安全执行模式的返回,流程则继续进行至方块804。
在方块806中,维持安全执行模式,且控制权返回至安全编码。
在方块804中,更新非易失性使能指示寄存器,以指示此微处理器正操 作在非安全"l丸行^^莫式。流程继续进行至方块805。
在方块805中,微处理器的状态返回至原生未受控模式,即完成本发明 的微处理器中禁能安全执行模式操作的方法。
图9表示流程图900,其详细说明本发明微处理器内初始化安全编码执行的方法。即是,流程图900的方法包括图7的流程图700的更详细说明。 流程开始于方块卯l,于其中,本发明的微处理器正于原生未受控模式中执 行非安全应用程序。流程继续进行至方块902。
在方块902中,在非安全执行模式的一操作系统执行SEMENABLE指 令或交替的机制(例如写入至一机械专用寄存器),其传送一个或多个使能 参数,其中,此一个或多个使能参数是根据属于授权者的私密密钥来被非对 称地加密。此一个或多个使能参数包括用来指向被执行的非对称加密安全编 码的指针,此指针可储存在系统存储器以A/或BIOS存储器。流程继续进行 至方块903。
在方块903中,微处理器使用一对应的授权的公开密钥来对传送的一个 或多个使能参数进行解密。在一实施例中,于微处理器的制造期间,此授权 的公开密钥被编程至一非易失性授权的公开密钥寄存器。在另一交替的实施 例中,此授权的公开密钥被编程至本发明的安全非易失性存储器内的一位 置,且根据微处理器的初始开机,此授权的公开密钥自此安全非易失性存储 器被撷取,且此授权的公开密钥被编程至非易失性授权的公开密钥寄存器, 接着,在安全非易失性存储器内的此位置被清除。流程继续进行至方块卯4。
在方块904中,判断解密的使能参数是否有效。假使有效,流程继续进 行至方块905。假使无效,流程则继续进行至方块907。
在方块905中,由于已判断出此使能参数是有效的,则执行多随机写入 于安全非易失性存储器的所有位置以清除安全非易失性存储器的内容。流程 则继续进行至方块906。
在判断方块906中,加密的安全编码自系统存储器/以及或BIOS存储器 被撷取。接着,使用授权的公开密钥并根据非对称密钥算法来对此加密的安 全编码进行解密。在一实施例中,在微处理器中执行逻辑电路内的一加密单 元用来解密此加密的安全编码。在一实施例中,此加密单元能执行AES力口 密操作、SHA-1哈希操作以及RSA加密操作。解密后的安全编码接着被解 压缩,且被检查格式是否正确。假使解密后的安全编码格式正确,流程继续 进行至方块卯8。假使解密后的安全编码格式不正确,流程则继续进行至方 块907。
在方块卯7中,由于解密后的使能参数是无效的,程控则返回至非安全 执行;漠式。在方块908中,解密的安全编码(以及对应的初始数据,若有的话)藉
由使用处理器密钥并根据对称密钥算法来加密,其中,此处理器密钥是此微 处理器所独有的,且在制造时编程至一非易失性处理器密钥暂存器内。在一
实施例中,此对称密钥为128位的AES密钥,且此^:处理器利用其加密单 元来对安全编码执行AES加密。流程继续进行至方块909。
在方块909中,此微处理器建立加密安全编码中一个或多个段落的一个 或多个哈希。在一实施例中,微处理器内的加密单元用来建立加密编码的一 个或多个SHA-1哈希。流程继续进行至方块910。
在方块910中,微处理器通过私密总线将加密的安全编码(以及数据, 若有的话)以及此一个或多个哈希写入至安全非易失性存储器,.其中,此私 密总线隔离于系统总线资源。此安全编码与数据被加密,因此阻止了安全编 码内容的侦测。流程继续进行至方块911。
在步骤911中,设定非易失性使能指示寄存器以指示安全执行模式被使 能。流程继续进行至方块912。
在方块912中,于微处理器内执行安全执行模式使能重置序列(reset sequence)。此重置序列包括硬件检查(如同图5中相关的讨论)以及初始化 安全易失性存储器为多随机数,即完成本发明的微处理器内初始化安全编码 才丸行的方法。
接着参阅图10,流程图IOOO表示本发明微处理器中执行安全执行模式 使能重置操作的方法,其中,此微处理器已使能安全执行模式的操作。流程 开始于方块IOOI,其中,当微处理器完成安全执行模式的初始化时,微处理 器执行安全执行模式使能重置串行。流程继续进行至方块1002。
在方块1002中,微处理器执行多处理器诚实性检查,包括安全非易失 性存储器、电池与石英器的侦测与确认。此外,核对总线时钟的存在与频率 诚实性,并确认提供给总线终端与微处理器供应电源的适当电压。微处理器 的温度确认处于一可接受的范围内。流程继续进行至方块1003。
在方块1003中,微处理器执行非易失性存储器连结(connectivity)与哈希 检查。自安全非易失性存储体内一位置读取安全签章,并对此安全签章进行 解密。解密后的签章被核对以证实非易失性存储器没有被泄漏。此外,微处 理器亦读取安全非易失性存储器的特定位置与对应的哈希。通过加密(即 AES/HASH/RSA)单元,产生被选择位置的确认哈希,且与被读取的哈希进行比较。流程继续进行至方块1004。
在方块1004中,微处理器执行安全实时时钟的确认。在一实施例中, 安全执行^t式实时时钟估计石英器的状态,以侦测在频率上大于百分的五的 改变,因此表示出石英器与在电池电压上大于百分的五的改变,且表示出潜 在的安全威胁征兆。假使上述确认-险查的任一者产生不利的结果,根据侦测 到事件的严重性与次数,安全执行模式使能重置串行将使此事件被记录下 来,或者迫使微处理器进入降级模式,或硬件关机模式。流程继续进行至方 块1005。
在方块1005中,自非易失性存储器(系统存储器以及/或BIOS存储器) 撷取加密的安全编码以及数据。流程继续进行至方块1006。
在方块1006中,if码与解压缩加密的安全编码,且确认才各式正确后, 安全编码接着被加载至微处理器内的安全易失性存储器。流程继续进行至方 块1007。
在方块1007中,初始化微处理器内的安全资源。这些安全资源无法被 非安全编码所得知或存取,且只对于在安全执行模式中执行的安全编码而言 是可利用的。这些资源包括安全定时器、安全中断以及安全例外,且包括安 全中断描述符号窗体、以及任何安全机械专用寄存器或为了安全编码的执行 而必须被初始化的其它寄存器。初始化包括非安全中断、非安全例外、非安 全追踪以及除错逻辑电路的禁能,也包括微处理器的任何电源管理逻辑电路 的禁能,其中包括导致核心电压、核心时钟频率的变化或者使能或禁能其它 组件(例如高速緩存、分支预测单元等等)的任何组件。流程继续进行至方 块1008。
在方块1008中,初始化微处理器内的非安全的高速緩存(即Ll高速緩 存、L2高速緩存)为乱数。流程继续进行至方块1009。
在方块1009中,产生一安全执行模式中断,且根据存在于安全中断描 述符表内的数据来呼寻(call)安全执行模式重置功能,其中,此安全中断描述 符白在方块1007中被初始化,即完成本发明微处理器中执行安全执行模式 使能重置操作的方法。
接着参阅图11,流程图1100表示本发明微处理器中终止安全执行模式 才喿作的方法。此方法开始于方块1101,于其中,安全编码正执行于安全执行 模式。概括上,根据本发明,具有三种方法使微处理器由非安全执行模式转换为安全执行模式,并开始安全编码的执行。第一种方法允许程控转移为安
全编码的执行。即是,在安全执行模式下的非安全应用程序如同SEMENTER 指令般执行。在一实施例中,SEMENTER指令导致微处理器的状态被储存 在安全易失性存储器内的堆栈,且程控转移至安全编码,非常类似x86 SYSENTER指令的操作。第二种方法是,当执行非安全或安全重置序列时, 导致安全编码的执行是由于一中断或例外所致。导致安全编码执行的最后一 个方法,是起因于来自任何数量的安全监控逻辑组件的中断,就像关于图5 的讨论。
如上所述,执行在安全执行模式的安全编码,永久地存在于安全非易失 性存储器,但是在一安全执行模式使能重置串行的期间,其已被加载至安全 易失性存储器。即是,此安全编码不再自非安全存储器中执行,例如系统存 储器或非安全的处理器高速緩存。因此,藉由两种方法,执行控制由安全执 行模式转换回非安全执行模式。第一种方法包括执行SRESUME指令,其引 起来自SEMENTER指令的响应(return)。在x86实施例中,此SRESUME指 令以与x86 RESUME相似的方法来操作。即是,预先储存在安全易失性存 储器中的程序状态被恢复(restored),且程控转移至操作系统或非安全编码。 第二种方法是考虑强迫一安全例外,其中,藉由对只可由安全编码来存取的 一机械专用寄存器执行写入,微处理器的安全组件可存取此安全例外。假使 确认微处理器将返回至非安全执行模式,接着产生被操作系统指明且处理的 一非安全机械检查例外,因此影响至非安全执行模式的返回。图11的流程 图1100提出强迫此安全例外以返回至非安全执行模式,…此技术领域中具 有通常知识者将理解,SRESUME指令的执行导致^t处理器去执行下文所述 的相似步骤。
因此,流程持续于方块1102,于其中,将安全编码写入至安全执行模式 机械专用寄存器(SEM MSR )。 SEM MSR即是,只可被执行在安全执行模 式下的安全编码所存取且得知的多机械专用寄存器中的 一者。流程继续进行 至方块1103。
在方块1103中,写入至安全执行模式机械专用寄存器产生了由SEM逻 辑电路内安全例外逻辑电路所处理的安全例外。流程继续进行至方块H04。
在方块1104中,安全例外逻辑电路(例如安全中断描述符号窗体)导 致程控分支至安全编码内的安全例外管理者。流程继续进行至方块1105。
38在方块1105中,安全例外管理者响应一授权的例外编码。此安全例外 管理者执行至安全编码的返回,藉以将一^^又的例外编码传送回安全编码。
流程继续进行至方块1106。
在方块1106中,判断由安全例外管理者所响应的例外编码是否正确。 假使此例外编码不正确,则假设有一安全风险,且流程继续进行至方块1112。 假使此例外编码正确,则安全编码与安全例外管理者之间的交握则^皮确认以 指示返回至非安全执行模式,且流程继续进行至方块1107。
在方块1112中,维持安全执行模式,且控制权返回至安全编码。
在方块1107中,微处理器执行多随机写入于安全非易失性存储器的所 有位置以清除安全非易失性存储器的内容。'安全应用程序利用^^处理器内的 一随机数产生器来产生随机数数据且对安全非易失性存储器内的所有位置 执行随机写入。流程继续进行至方块1108。
在方块1108中,微处理器藉由将"0"写入至安全非易失性存储器的每 一位置,来清除安全非易失性存储器的每一位置。流程继续进行至方块1109。
在方块1109中,设定非易失性使能指示寄存器以指示安全执行模式被 禁能,亦即,微处理器正操作在一非安全执行模式中。其受限于安全执行模 式可被禁能的次数,如同前文关于图8的说明。流程继续进行至方块1110。
在方块1110中,安全例外逻辑电路产生一机械检查例外,此外回应一 状态参数(亦即例外编码指示状态)来将程控转移至非安全应用程序中之一。 因此,在非安全执行模式下的操作系统处理此机械检查例外,且完成返回至 非安全执行模式。流程继续进行至方块1111。
在方块1111中,即完成本发明微处理器中终止安全执行模式操作的方法。
图12表示一安全实时时钟1200的详细方块图,其位于本发明的微处理 中的SEM逻辑电路内。安全实时时钟1200只可由正操作在安全执行模式下 的安全编码来得知且存取。安全实时时钟包括振荡器1201,其通过信号VP 耦接电池且通过信号Cl及C2来耦接石英器。此振荡器产生振荡输出电压 信号VO,且信号VO耦接计数器1202。此计数器产生输出信号CNTO,且 输出信号CNTO被路由至转换逻辑电路1203。信号VP、 Cl、及C2也输入 至转换逻辑电路1203,此外,信号ENV同样输入至转换逻辑电路,其中, 信号ENV载有对应管芯温度的数值。转换逻辑电路1203产生通过信号TEMP、 BATT、 COMP、 XTAL以及双向总线TIME来提供的多输出。此微 处理器通过双向总线TIME提供输入至此安全实时时钟。
振荡器1201与计数器1202是专用的,即是除了被提供来允许微处理器 通过双向总线TIME对安全实时时钟进4f读取和写入的组件以外,他们无法 共享其它电路系统或微处理器的其它组件。此外,只要电池通过信号VP提 供可接受的电压时,安全实时时钟持续其计数。在一交替的实施例中,电池 电压信号VP是由系统板上的电容器所产生,以代替只要系统板开机而持续 泽皮充电的电;也。
在操作上,振荡器1201产生振荡输出电压信号VO,其与石英器的频率 成比例,且此振荡输出电压被提供至计数器1202。计数器1202包括多组件, 用来计算通过信号VO所提供的周期数,并将此周期数转换为一计数数值。 此计数数值被提供至信号CNTO上。转换逻辑电路1203包括多电路,用将 CNTO的数值转换为持续时间数值,此外,转换逻辑电路1203也包括多寄 存器(未显示),其可通过双向总线TIME而被微处理器来读取与写入。
此外,转换逻辑电路1203用来侦测电压信号VP的显著变化,指示出潜 在的篡改,且此一事件由信号BATT的设置来表示,其中,信号BATT的设 置系用来中断正执行的安全编码。在一实施例中,大于百分的五的变化导致 BATT中断被设置。
转换逻辑电路1203也用来通过信号Cl与C2来侦测石英器频率的显著 变化,因此指示潜在的篡改,且此一事件藉由信号XTAL的设置来表示。信 号XTAL的设置系用来中断正执行的安全编码。在一实施例中,大于百分的 五的变化导致XTAL中断被设置。
信号ENV系由转换逻辑电路1203来估计,以判断因温度偏离而使计数 器1202产生不精准的计数。假使判断出温度偏离,信号TEMP则被设置, 其用来中断正执^f亍的安全编码。
转换逻辑电路1203也用来估计上述情况中任一者是否足够显著,以指 示安全实时时钟已被泄漏,例如电池的移动与取代。假使被判断出,信号 COMP也被设置,因此中断安全编码的执行。
本发明提供一些高于现今技术的优点以在安全环境中执行应用程序。例 如,根据本发明的设计是以微处理器为基础。即是,本发明的一目的是修改 负责安全编码的微处理器,这是因为,相对于着重在修改芯片组或其它组件的其它技术,只有微处理器可提供及时执行安全。使用隔离芯片来监控微处 理器的方法有许多的内在安全性缺陷,且对于安全相关的执行而言效能也明 显地降低。
根据本发明中以x86为基础的实施例,由于x86程序化技术的普遍性, 安全编码的发展相当地平易。x86架构已被得知,且对于精通非安全x86应 用发展的任何程序设计者而言,机械专用指令的附加与专用指令(例如 SEMENABLE、 SEMENTER、及SRESUME指令)仅提供较少的学习挑战。
此外,对于微处理器的附加安全执行能力的成本远小于额外芯片组被加 至系统设计所呈现的成本。
此外,由于安全执行环境被提供至微处理器本身之内,因此内在地对抗 那些物理或从属通道攻击,其不需要附加外部电路。
此处所揭露的技术非常有利地提供安全的微处理器操作环境,在此环境 中,会被泄漏的一般机密(例如一般加密密钥或程序架构)不会储存于其中。 即是,本发明的每一处理器只具有需要被特定处理器或系统授权、控制等等 的机密。来自一处理器/系统的机密不会破坏在另一处理器/系统的安全性。 此外,得知如何破坏在一处理器的安全性,应当不会使其更容易地去破坏其 它处理器上的安全性。即是,这是由于独特的处理器密钥,此独特的处理器 密钥是由在安全非易失性存储器总线上的数据传输所提供且导致的,其中, 这些数据传输系使用此密钥来加密。
与提供对抗俗称拒绝服务攻击(denial-of-service attack)的保护的习知 技术比较起来,根据本发明的微处理器具有更多的优点。例如,如图5所讨 论,提供安全监控组件以侦测并:f又得在事件上的活动,例如持续对安全执行 环境的呼寻(例如来自恶意装置驱动器),实时时钟电池、石英器的持续移 除等等。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任 何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可 做些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定 者为准。
权利要求
1. 一种提供安全执行环境的装置,包括一微处理器,用以执行多个非安全应用程序以及一安全应用程序,其中,所述非安全应用程序通过一系统总线而自一系统存储器中存取,且该安全应用程序通过耦接该微处理器的一私密总线而自一安全非易失性存储器中存取,该微处理器包括一安全实时时钟,用以提供一持续时间,其中,当该微处理器正在一安全执行模式中执行时,该安全实时时钟只由该安全应用程序所得知且存取;以及一石英器,耦接该微处理器内的该安全实时时钟,用以使该安全实时时钟内一振荡器来产生一振荡输出电压,其中,该振荡输出电压与该石英器的频率成比例。
2. 如权利要求1所述的提供安全执行环境的装置,其中,该安全实时时 钟包括一计数器,耦接该振荡器,用以计算该振荡输出电压的一周期数,并 将该周期数转换为 一计数数值。
3. 如权利要求1所述的提供安全执行环境的装置,更包括一电池,耦接该安全实时时钟,用以提供一电压给该安全实时时钟,使 得只要该电压位于一可接受的范围内,则提供该安全实时时钟的持续操作。
4. 如权利要求3所述的提供安全执行环境的装置,其中,该安全实时时 钟包括一转换逻辑电路,用以接收来自该安全实时时钟内该计数器的该计数数 值,且将该计数数值转换为该持续时间的值。
5. 如权利要求4所述的提供安全执行环境的装置,其中,该转换逻辑电 路用以侦测该电压的显著变化以及该石英器的频率的显著变化。
6. 如权利要求4所述的提供安全执行环境的装置,其中,该转换逻辑电 路用以使能多个信号以中断该安全应用程序,以指示对该石英器或该电池的 篡改。
7. 如权利要求4所述的提供安全执行环境的装置,其中,该转换逻辑电 路估计用来指示管芯温度的一信号,以判断可能造成该持续时间变为不精确 的温度偏离,并产生一安全中断信号以中断该安全应用程序。
8. —种在安全执行环境中执行安全编码的方法,包括 通过一私密总线来自 一安全非易失性存储器撷取一安全编码,以由耦接该安全非易失性存储器的一微处理器来执行,其中,该私密总线隔离于该微 处理器内的所有系统总线资源且位于该微处理器的外部,以及该私密总线只 被该微处理器内的一安全执行逻辑电路所得知与存取;通过该微处理器内的一安全实时时钟来提供一持续时间,其中,该安全 实时时钟只由该安全编码所得知且存取;以及将一石英器耦接至该微处理器,其中,该石英器使该安全实时时钟内一 振荡器来产生一振荡输出电压,且该振荡输出电压与该石英器的频率成比 例。
9. 如权利要求8所述的在安全执行环境中执行安全编码的方法,其中, 该安全实时时钟包括一计数器,耦接该振荡器,用以计算该振荡输出电压的 一周期数,并将该周期数转换为一计数数值。
10. 如权利要求8所述的在安全执行环境中执行安全编码的方法,更包括耦接一电池至该微处理器,其中,该电池提供一电压给该安全实时时钟, 使得只要该电压位于一可接受的范围内,则提供该安全实时时钟的持续操 作。
11. 如权利要求10所述的在安全执行环境中执行安全编码的方法,其中, 该安全实时时钟包括一转换逻辑电路,用以接收来自该安全实时时钟内一计数器的一计数数 值,且将该计数数值转换为该持续时间的值。
12. 如权利要求11所述的在安全执行环境中执行安全编码的方法,其中, 该转换逻辑电路用以侦测该电压的显著变化以及该石英器的频率的显著变 化。
13. 如权利要求11所述的在安全执行环境中执行安全编码的方法,其中, 该转换逻辑电路用以使能多个信号以中断该安全编码,以指示对该石英器或 该电池的篡改。
14. 如权利要求11所述的在安全执行环境中执行安全编码的方法,其中, 该转换逻辑电路估计用来指示管芯温度的一信号,以判断可能造成该持续时 间变为不精确的温度偏离,并产生一安全中断信号以中断该安全编码。
全文摘要
一种提供安全执行环境的装置,其包括微处理器以及石英器。微处理器执行多个非安全应用程序以及一安全应用程序。这些非安全应用程序通过系统总线而自系统存储器中存取,且此安全应用程序通过耦接微处理器的私密总线而自安全非易失性存储器中存取。微处理器包括安全实时时钟,其提供持续时间。当微处理器正在安全执行模式中执行时,安全实时时钟只由安全应用程序所得知且存取。石英器耦接微处理器内的安全实时时钟,用以使安全实时时钟内一振荡器来产生振荡输出电压,且此振荡输出电压与石英器的频率成比例。
文档编号G06F21/02GK101533448SQ20091013775
公开日2009年9月16日 申请日期2009年4月29日 优先权日2008年5月24日
发明者G·葛兰·亨利, 泰瑞·派克斯 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1