CN100481102C - 用于对处理器指令的快速解密的方法、装置和系统 - Google Patents
用于对处理器指令的快速解密的方法、装置和系统 Download PDFInfo
- Publication number
- CN100481102C CN100481102C CN200610067058.3A CN200610067058A CN100481102C CN 100481102 C CN100481102 C CN 100481102C CN 200610067058 A CN200610067058 A CN 200610067058A CN 100481102 C CN100481102 C CN 100481102C
- Authority
- CN
- China
- Prior art keywords
- sign indicating
- instruction
- indicating number
- cryptographic operation
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 7
- 239000002131 composite material Substances 0.000 claims 3
- 238000000926 separation method Methods 0.000 claims 2
- 230000002265 prevention Effects 0.000 abstract 1
- 241000700605 Viruses Species 0.000 description 17
- 230000004224 protection Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012038 vulnerability analysis Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000007916 tablet composition Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种用于独立操作系统的、可防止以前不可防止的特定类型的计算机攻击的方法和装置。细节是一种使用处理器的现有指令组来实现指令解密的有效方法。解决了处理器体系结构中的重要障碍以便限制对处理器执行定时的影响。处理器核心内的指令执行定时不会改变。任何附加的处理被重叠到现有操作内,因此对处理器吞吐量的影响是最小的。
Description
技术领域
本发明一般涉及改进的数据处理系统,并具体地涉及一种用于解密处理器指令的方法和装置。更具体地,本发明提供了在加密的指令PowerTM体系结构内对处理器指令的快速解密。
背景技术
因特网(也被称为“互联网络”)是利用网关接合在一起的可能不同的一组计算机网络,该网关处理数据传送和从发送网络的协议到接收网络使用的协议的消息的转换。当用大写字母开头时,术语“因特网(Internet)”是指使用TCP/IP协议组的网络和网关的集合。
因特网已成为作为信息和娱乐来源的文化固定物。许多企业正在创建作为他们行销工作的整体部分的因特网站点,将企业提供的产品或服务告知消费者,或者提供试图形成品牌忠诚度的其它信息。许多联邦、州和地方政府机构也出于提供信息的目的正在使用因特网站点,尤其是必须与社会的几乎所有部分相交互的机构,例如美国国内税务局和国家部长。提供联机公开记录的信息指南和/或可供搜索的数据库可减小操作成本。此外,因特网正越来越普及地作为商业事务的媒体。
当前,最常用的在互联网上传送数据的方法是使用也被简称为“Web”的万维网环境。存在用于传送信息的其它因特网资源,例如文件传送协议(FTP)和Gopher,但是它们不如Web那样普及。在Web环境中,服务器和客户机使用超文本传送协议(HTTP)实现数据事务,HTTP协议是一种已知的用于处理各种数据文件(例如,文本、静态图形图像、音频、动态视频等)的传送的协议。各种数据文件中的信息被标准页面描述语言(超文本标记语言(HTML))进行格式设置以便呈现给用户。除了基本表示的格式设置之外,HTML允许开发者指定被统一资源定位器(URL)识别的与其它Web资源的“链接”。URL是定义与特定信息的通信路径的特殊语法标识符。被称为“页面”或“网页”的客户机可访问的信息的每个逻辑块被URL所识别。URL提供了用于查找和访问此信息的通用的、一致的方法,该方法不是用户必须的,而是主要用于用户的Web“浏览器”。浏览器是能够提交对被标识符(例如URL)所识别的信息的请求的程序。用户可通过用于浏览器的图形用户界面(GUI)输入域名以访问内容的源。域名被域名系统(DNS)自动转换成网际协议(IP)地址,该域名系统是通过在数据库内查找域名而将用户输入的符号名转换成IP地址的服务。
利用这种通过互联网的增加的连通性,计算机系统正受到使用愈加复杂的攻击方法的个人的越来越多的攻击。随着连接到不安全网络(内联网和因特网)的系统数量的增加,则受到损害的可能性也增加。大多数系统对单个操作系统(Microsoft Windows)和单个处理器体系结构(Intel)的越来越大的依赖性加重了此问题,并且使得世界范围的攻击能够传染给非常多的计算机系统。
当前可用的解决方法包括例如病毒检测软件、防火墙、政府自主组织、安全策略和评估系统。病毒检测软件是扫描通过网络连接和文件系统的数据输入以查找超过64000种的已知病毒、以及应用基于规则的工具以扫描“类似病毒”的程序的程序或代码。防火墙用于阻隔未被明确允许的来自源的网络访问。
正在实现美国政府机构的大量的自主组织,例如NSA、NIAP、NIST和FIPS。NSTISSP No.11是美国政府管理对IT产品的获取的安全策略。此外,存在对于IT系统的通用标准(CC)评估的国际社会支持。
从二十世纪八十年代早期开始,美国政府建立了针对增加计算机系统的安全等级的自主组织。被广泛地已知为始于NSA的“Rainbow Series”的“橘皮书”的早期的工作被其它政府和已知为通用标准的自主组织所评估,所述自主组织准备开发一组可被成员国的政府识别的“通用”的安全标准。此工作正在得到主流西方成员国的越来越多的支持,并且成员数已从7个国家增加到13个国家,并且另外感兴趣的国家有日本、中国、韩国和其它亚洲国家。
已知为通用标准v1.0的标准最初在1996年发布,而目前为v2.2(2004),并且已被广泛地接受并具有ISO认证(ISO/IEC 15408,1999)。此标准通过来自消费者、开发者和评估者/证明者的观点使用安全概念和术语的分层框架来提供对安全性的全面讨论。此标准描述了从设计到部署的广泛的安全方法。此标准是响应于国际安全性的变化的要求的迅速发展的标准。
在安全标准的接受中的最有影响的事件是来自NSTISSP的主席的Directive NSTISSP no.11。在2000年2月,指示出在2002年7月1日之后获得的需要信息保障(IA)的所有IT系统应由通用标准或FIPS加密模块有效程序(FLIP Cryptomodule Validation Program)进行认证。这导致许多向美国政府销售IT设备的公司启动认证程序。另外,关于关键基础设施保护的总统令(PDD-63)鼓励对与关键基础设施的运行相关联的任何IT系统的运行进行CC认证。
这些现有的解决方案均具有缺陷。例如,病毒检测程序仅对已知的病毒有效。而新病毒基本不会被检测到,这是由于基于规则的技术几乎完全无效。因此,病毒的检测是在事实之后才完成。在此情况下,攻击已经在检测之前进行并且通常已造成危害。
销售病毒保护的公司需要检测新病毒或旧病毒的变体,估计危害的可能性,开发兼容检测算法,告知用户,并对病毒保护进行更新。此过程是费时的过程,并且会花费几个小时到一个星期来完成。
病毒保护的用户必须连接到因特网以下载新的病毒保护,从而它们的计算机会暴露在攻击之下。必须下载保护,更新病毒保护程序,并扫描该系统以查找病毒。扫描计算机的过程会花费几个小时,这样会进一步限制劳动力的生产力。甚至,未被传染的计算机的用户也会显著减少对他们的计算机系统的使用。被传染的系统的用户可受到几个小时到数周的损失。
防火墙所包含的弱点是因为它们根据使用IP地址来阻塞网络流量以执行对可信源的选择。通过可信源(例如经由浏览器下载的电子邮件和文件)传送的攻击不会受到防火墙保护的影响。在防止攻击者扫描脆弱性(例如被差的编程习惯遗留为开放的网络端口)时,防火墙也无效。
对于自主组织、获取策略和通用标准,这些程序都包含脆弱性。例如,尽管NSTISSP no.11极大地鼓励通用标准的广泛接受,但过程的成本非常高并且费时。此标准仍在发展,并且需要专门的专家完成认证。其结果仍相对无法证实,并且近期的攻击成功已示出模型尤其是脆弱性分析中的弱点。获得认证的过程可以从低担保等级的6个月到高担保等级的多于3年。
已很好地认识到,试图防止攻击的计算机系统的脆弱性分析仅能给出攻击将不会成功的担保等级。此分析主要依赖于攻击可能性对比于已设计在该系统内的安全功能的强度的概念。这些度量是处于它们的定义初期并且至多是主观的被动方法,这导致了已被近来成功的世界范围的攻击证明为无效的安全方法。
因此,改进对病毒和蠕虫攻击的脆弱性的防止的任何解决方法都需要用于防止以前不可防止的特定类型的计算机攻击的独立操作系统方法、装置和计算机指令。
发明内容
本发明提供了一种用于独立操作系统的、可防止以前不可防止的特定类型的计算机攻击的方法和装置。本发明的示例性方面详细说明了一种使用处理器的现有指令组来实现指令解密的有效方法。解决了处理器体系结构中的重要障碍以便限制对处理器执行定时的影响。本实现未改变处理器核心内的指令执行定时。任何附加的处理被重叠到现有操作内,因此对处理器吞吐量的影响是最小的。
附图说明
在所附权利要求中阐述了被认为是新颖的特征的本发明的特性。但是,通过参照下面对说明性实施例的详细描述并结合附图阅读而最好地理解本发明本身及其优选使用模式、另外的目标和优点,在附图中:
图1是其中可实现本发明的数据处理系统的图形表示;
图2是根据本发明的优选实施例的可实现为服务器的数据处理系统的框图;
图3是其中可实现本发明的数据处理系统的框图;
图4是例示了用于指令流水线内的可编程解密单元内的组件的图;
图5是例示了根据本发明的优选实施例所述的用于主操作码的简化可编程解密单元的图;以及
图6是例示了根据本发明的优选实施例的主操作码和次操作码解密单元的图。
具体实施方式
现在参照附图并具体参照图1,根据本发明的优选实施例描述了其中可实现本发明的数据处理系统的图形表示。所示出的计算机100包括系统单元102、视频显示终端104、键盘106、可包括软盘驱动器和其它类型的永久和可移动存储媒体的存储设备108、以及鼠标110。个人计算机100可包括额外的输入设备,例如操纵杆、触控板、触摸屏、跟踪球、麦克风等。计算机100可使用任何合适的计算机来实现,例如位于纽约Armonk的国际商业机器公司的产品IBM eServerTM计算机或计算机。尽管图示表示示出了计算机,但是本发明的其它实施例可在其它类型的数据处理系统(例如网络计算机)内实现。计算机100还优选地包括图形用户界面(GUI),该图形用户界面可由在计算机100内操作的驻留于计算机可读媒体内的系统软件来实现。
现在参照图2,示出了其中可实现本发明的数据处理系统的框图。数据处理系统200是实现本发明的过程的代码或指令可位于其中的计算机(例如图1的计算机100)的示例。数据处理系统200使用外设组件互连(PCI)局域总线体系结构。尽管所示的示例使用PCI总线,但是也可使用其它总线体系结构,例如加速图形端口(AGP)和工业标准体系结构(ISA)。处理器202和主存储器204通过PCI桥接器208连接到PCI总线206。PCI桥接器208还可包括用于处理器202的集成的存储器控制器和高速缓冲存储器。另外的与PCI局域总线206的连接可通过直接组件互连或通过内插式连接器实现。
在所示示例中,局域网(LAN)适配器210、小型计算机系统接口(SCSI)主机总线适配器212和扩展总线接口214通过直接组件连接而连接到PCI局域总线206。相反,音频适配器216、图形适配器218和音频/视频适配器219通过插入扩充槽的内插式板而连接到PCI局域总线206。扩展总线接口214为键盘和鼠标适配器220、调制解调器222和附加存储器224提供连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228和CD-ROM驱动器230提供连接。典型的PCI局域总线实现将支持三个或四个PCI扩充槽或内插式连接器。
操作系统在处理器202上运行并用于协调和提供对图2的数据处理系统200内的不同组件的控制。操作系统可以是市场上可买到的操作系统,例如可从Microsoft Corporation买到的Windows XPTM。面向对象的编程系统(例如JavaTM编程系统)可与操作系统一起运行,并且提供从数据处理系统200上执行的JavaTM程序或应用对操作系统的调用。“Java”是SunMicrosystems,Inc.的注册商标。用于操作系统、面向对象的编程系统和应用或程序的指令都位于存储设备(例如硬盘驱动器226)上,并且可被装入主存储器204以便由处理器202执行。
本领域内的普通技术人员将理解,图2中的硬件可根据实现而改变。除了图2中所示的硬件之外或代替于所述硬件,可使用其它内部硬件或外围设备,例如闪速只读存储器(ROM)、等同的非易失性存储器或光盘驱动器等。另外,本发明的过程也可应用于多处理器数据处理系统。
例如,如果数据处理系统200任选地被配置为网络计算机,则该数据处理系统200可不包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228和CD-ROM 230。在该情况下,将被适当地称为客户计算机的计算机包括某些类型的网络通信接口,例如LAN适配器210、调制解调器222等。作为另一个示例,数据处理系统200可以是配置成可不依赖于某些类型的网络通信接口来引导的独立系统,而不管数据处理系统200是否包括某些类型的数据通信接口。作为另一个示例,数据处理系统200可以是个人数字助理(PDA),其配置有ROM和/或闪速ROM以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
图2中所示的示例和上述示例并不意味着体系结构的限制。例如,数据处理系统200除了采取PDA的形式之外还可以是笔记本式计算机或手提计算机。数据处理系统200还可以是信息站或Web应用。
处理器202使用可位于存储器(例如主存储器204、存储器224)中或一个或多个外围设备226-230中的计算机实现的指令来执行本发明的过程。
现在参照图3,示出其中可实现本发明的数据处理系统的框图。数据处理系统300是实现本发明的过程的代码或指令可位于其中的计算机的示例,例如图1的计算机100。在所示的示例中,数据处理系统300使用包括北桥和存储器控制器集线器(MCH)308和南桥与输入/输出(I/O)控制器集线器(ICH)310的集线器体系结构。处理器302、主存储器304和图形处理器318连接到MCH 308。图形处理器318可通过例如加速图形端口(AGP)连接到MCH。
在所示的示例内,局域网(LAN)适配器312、音频适配器316、键盘和鼠标适配器320、调制解调器322、只读存储器(ROM)324、硬盘驱动器(HDD)326、CD-ROM驱动器330、通用串行总线(USB)端口与其它通信端口332、以及PCI/PCIe设备334可连接到ICH 310。PCI/PCIe设备可包括例如以太网适配器、内插式卡、用于笔记本式计算机的PC卡等。PCI使用插件总线控制器,而PCIe不使用。ROM 324可以是例如闪速二进制输入/输出系统(BIOS)。硬盘驱动器326和CD-ROM驱动器330可使用例如集成驱动电子器件(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备336可连接到ICH 310。
操作系统在处理器302上运行并用于协调和提供对图3的数据处理系统300内的不同组件的控制。操作系统可以是市场上可买到的操作系统,例如可从Microsoft Corporation买到的Windows XPTM。面向对象的编程系统(例如JavaTM编程系统)可与操作系统一起运行,并且提供从数据处理系统300上执行的JavaTM程序或应用对操作系统的调用。“Java”是SunMicrosystems,Inc.的商标。
用于操作系统、面向对象的编程系统和应用或程序的指令都位于存储设备(例如硬盘驱动器326)上,并且可被装入主存储器304以便由处理器302执行。处理器302使用可位于存储器(例如主存储器304、存储器324)中或一个或多个外围设备326和330中的计算机实现的指令来执行本发明的过程。
本领域内的普通技术人员将理解,图3中的硬件可根据实现而改变。除了图3中所示的硬件之外或代替于所述硬件,可使用其它内部硬件或外围设备,例如闪速存储器、等同的非易失性存储器或光盘驱动器等。另外,本发明的过程也可应用于多处理器数据处理系统。
例如,数据处理系统300可以是个人数字助理(PDA),其配置有闪速存储器以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。图3中所示的示例和上述示例并不意味着体系结构的限制。例如,数据处理系统300除了采取PDA的形式之外还可以是图形输入板式计算机、膝上型计算机或电话设备。
本发明认识到,病毒或蠕虫发起攻击的能力依赖于操作系统和指令体系结构。通过改变这些组件中的任何一个,可破坏攻击方法。由于这些攻击主要依赖于处理器指令体系结构,所以使用非Intel体系结构的数据处理系统不会直接受到针对Intel体系结构发起的攻击的影响。如优选包括的,本发明提供了在L2和L1指令高速缓存之间的指令流水线内的可编程解密单元。此可编程解密单元在体系结构化的指令进入L1指令高速缓存时完成指令解密。
现在参照图4,根据本发明的优选实施例描述了例示出用于指令流水线内的可编程解密单元的组件的图。如图所示,可信计算机基400包括在通常位于盘408上的代码图像410上执行装入/链接操作的可信装入器402。可信计算机基(TCB)是计算机系统的可信部分。计算机的此部分已被验证不具有会影响系统安全性的恶意代码或组件。可信计算机基400是数据处理系统中被相信不具有恶意代码(例如病毒或蠕虫)的一部分。
当选择指令进行解密时,经由重定位映射406使所述指令位于可信计算机基400内。在此示例性实施例中,从存储器412内的L2数据和指令高速缓存416读取指令,并使用存储器解密阵列414对所述指令解密。存储器解密阵列414使用将在图6和7内说明的方法对指令解密。然后,指令执行单元(例如处理器418或L1高速缓存420)接收已加密的指令,但是任何指令执行单元都可接收已解密的指令。没有被可信装入器402装入的任何指令流无法接收正确编码,并且在解密时将导致非法的指令中断。这保护可信计算机基400不受落在安全模型之外的被装入和执行的任何代码(即利用系统脆弱性装入的代码)影响。另外,此发明防止特权升级,其是利用脆弱性改变特权等级的代码。
现在参照图5,根据本发明的优选实施例描述了例示用于主操作码的简化的可编程解密单元500的框图。主存储器阵列506可被编程以对从L2数据和指令高速缓存504读取到L1指令高速缓存502之中的指令解密。当从L2数据和指令高速缓存504将指令读取到L1指令高速缓存502之中时,主操作码508的操作码位0-5用作主存储器阵列506的地址位0-5。主存储器阵列506被配置接收地址位0-5,对这些位解密,并将输出数据位0-5提供给已解密的主操作码510。指令位6-31 512直接转到指令位6-31 514。
主存储器阵列506可以是较大的存储器阵列的一部分。作为较大的存储器阵列的一部分,主存储器阵列506可以用管理程序模式、监控程序模式或用户模式运行。这些模式或等级允许进行可防止通过利用操作系统或管理程序脆弱性进行特权升级的特权等级解密。另外,未示出的默认模式允许指令通过而不被解密。主存储器阵列506在不同时间被编程,并且每种特权模式或等级可被之上的等级编程。管理程序模式在管理程序执行之前被Flexible i&p Series(FipS)经由串行通信(SCOM)端口进行编程,监控程序模式在操作系统在处理器上执行之前被编程,而用户模式是在用户模式执行之前通过管理程序模式进行编程。主存储器阵列506可以用任何模式运行。因为指令在进入L1指令高速缓存502之前被解密,所以可保持指令高速缓存的运行优势。
现在参照图6,根据本发明的优选实施例描述了例示主操作码和次操作码解密单元的图。例如,在具有密集的主操作码空间的体系结构(例如PowerTM体系结构)内,必须使用次操作码映射以便增加抵制更复杂的攻击所必须的功能强度(SOF)。
操作码解密单元600内的主存储器阵列606和次存储器阵列608被编程以便解密从L2数据和指令高速缓存604读取到L1指令高速缓存602中的指令。当从L2数据和指令高速缓存604读取指令时,用于主操作码610的操作码位0-5和用于次操作码612的操作码位21-30可用作为用于主存储器阵列606和次存储器阵列608的地址位。主存储器阵列606被配置接收地址位0-5,解密这些位,并将输出数据位0-5提供给已解密的主操作码614。次存储器阵列608被配置接收地址位21-30,解密这些位,并将输出数据位21-30提供给已解密的次操作码616。在此示例中,仅在主操作码610等于0x31(其是操作码的十六进制表示)时才使用次操作码612。还可在次操作码612空间非常稀疏、小于50%时以及当指令提供大量排列时使用次操作码612。指令位618和620没有被解密,并且直接从加密位618和620转到解密位622和624。
图6描述了当数据被锁定在这些地址线上并且数据总线提供解密指令时由L2数据和指令高速缓存604提供的数据所驱动的具有地址线、主操作码610和次操作码612的存储器阵列。这些解密指令的表示被描述为被驱动到主存储器阵列606的主操作码610位0-5和被驱动到次存储器阵列608内的次操作码612位21-30。
在这些说明性的示例中,主存储器阵列606和次存储器阵列608设置成三个部分:管理程序模式、监管程序模式和用户模式。这允许特权等级解密,其防止通过利用操作系统或管理程序脆弱性进行特权升级。另外,还允许未示出的默认模式,该模式使得指令通过而不会被解密。主存储器阵列606和次存储器阵列608被编程不同次数,并且每种特权模式或等级可被上面的等级编程。管理程序模式在管理程序执行之前被FipS经由SCOM端口编程,监控程序模式在操作系统在处理器上执行之前被编程,用户模式是在用户模式执行之前从管理程序模式编程。主存储器阵列606和次存储器阵列608可以用任何模式或模式的任何组合来运行。因为指令在进入L1指令高速缓存602之前被解密,所以保持了指令高速缓存的运行优势。
因此,本发明提供了一种用于独立操作系统的、可防止以前不可防止的特定类型的计算机攻击的方法和装置。提供了一种使用处理器的现有指令组来实现指令解密的有效方法。解决了处理器体系结构中的重要障碍以便限制对处理器执行定时的影响。处理器核心内的指令执行定时不会改变。任何附加的处理被重叠到现有操作内,因此对处理器吞吐量的影响是最小的。
提供了对本发明的描述是出于说明和描述的目的,而不是穷举或者限制本发明所公开的形式。本领域内普通技术人员将看到许多修改和变型。所选择和描述的实施例是为了最好地解释本发明的原理、实际应用,并使得本领域内的其它普通技术人员可理解适合于预期的特定使用的本发明的具有各种修改的各种实施例。
Claims (18)
1.一种数据处理系统内的用于防止攻击的方法,该方法包括:
读取已加密的体系结构化的指令;
将所述已加密的体系结构化的指令分成一个或多个已加密操作码和一组指令位;
在多个模式之一下解密所述一个或多个已加密操作码以形成一个或多个已解密操作码;
组合所述一个或多个已解密操作码和所述一组指令位以形成已解密的体系结构化的指令;以及
将所述已解密的体系结构化的指令传到指令执行单元。
2.根据权利要求1所述的方法,其中所述一个或多个已加密操作码包括第一已加密操作码,并且其中在多个模式之一下解密所述一个或多个已加密操作码包括:
使用第一存储器解密阵列解密所述第一已加密操作码以形成第一已解密操作码。
3.根据权利要求2所述的方法,其中所述一个或多个已加密操作码还包括第二已加密操作码,并且其中在多个模式之一下解密所述一个或多个已加密操作码包括:
使用第二存储器解密阵列解密所述第二已加密操作码以形成第二已解密操作码。
4.根据权利要求3所述的方法,其中组合所述一个或多个已解密操作码和所述一组指令位包括:
组合所述第一已解密操作码、所述第二已解密操作码和所述一组指令位以形成已解密的体系结构化的指令。
5.根据权利要求1所述的方法,其中所述多个模式是管理程序模式、监管程序模式、用户模式或默认模式中的至少一个。
6.根据权利要求1所述的方法,其中所述指令执行单元是处理器内部的指令高速缓冲存储器。
7.根据权利要求1所述的方法,还包括:
如果所述多个模式之一是默认模式,则绕过所述分离、解密和组合步骤。
8.一种数据处理系统,包括:
总线系统;
连接到所述总线系统的通信系统;
连接到所述总线系统的存储器,其中所述存储器包括一组指令;
指令执行单元;以及
连接到所述总线系统的处理单元,其中所述处理单元包括:用于执行所述一组指令以读取已加密的体系结构化的指令的装置;用于执行所述一组指令以将所述已加密的体系结构化的指令分成一个或多个已加密操作码和一组指令位的装置;用于执行所述一组指令以在多个模式之一下解密所述一个或多个已加密操作码以形成一个或多个已解密操作码的装置;用于执行所述一组指令以组合所述一个或多个已解密操作码和所述一组指令位以形成已解密的体系结构化的指令的装置;以及用于执行所述一组指令以将所述已解密的体系结构化的指令传到指令执行单元的装置。
9.根据权利要求8所述的数据处理系统,其中所述一个或多个已加密操作码包括第一已加密操作码,并且其中用于执行所述一组指令以在多个模式之一下解密所述一个或多个已加密操作码的装置包括:用于使用第一存储器解密阵列解密所述第一已加密操作码以形成第一已解密操作码的装置。
10.根据权利要求9所述的数据处理系统,其中所述一个或多个已加密操作码还包括第二已加密操作码,并且其中用于执行所述一组指令以在多个模式之一下解密所述一个或多个已加密操作码的装置包括:用于使用第二存储器解密阵列解密所述第二已加密操作码以形成第二已解密操作码的装置。
11.根据权利要求10所述的数据处理系统,其中用于执行所述一组指令以组合所述一个或多个已解密操作码和所述一组指令位的装置包括:用于组合所述第一已解密操作码、所述第二已解密操作码和所述一组指令位以形成已解密的体系结构化的指令的装置。
12.根据权利要求8所述的数据处理系统,其中所述多个模式是管理程序模式、监管程序模式、用户模式或默认模式中的至少一个。
13.根据权利要求8所述的数据处理系统,其中所述指令执行单元是处理器内部的指令高速缓冲存储器。
14.根据权利要求8所述的数据处理系统,其中所述处理单元还包括:用于执行一组指令,如果所述多个模式之一是默认模式,则绕过所述分离、解密和组合步骤的装置。
15.一种用于防止攻击的装置,包括:
用于读取已加密的体系结构化的指令的读取装置;
用于将所述已加密的体系结构化的指令分成一个或多个已加密操作码和一组指令位的分离装置;
用于在多个模式之一下解密所述一个或多个已加密操作码以形成一个或多个已解密操作码的解密装置;
用于组合所述一个或多个已解密操作码和所述一组指令位以形成已解密的体系结构化的指令的组合装置;以及
用于将所述已解密的体系结构化的指令传到指令执行单元的传送装置。
16.根据权利要求15所述的装置,其中所述一个或多个已加密操作码包括第一已加密操作码,并且其中所述用于在多个模式之一下解密所述一个或多个已加密操作码的解密装置包括:
用于使用第一存储器解密阵列解密所述第一已加密操作码以形成第一已解密操作码的解密装置。
17.根据权利要求16所述的装置,其中所述一个或多个已加密操作码还包括第二已加密操作码,并且其中所述用于在多个模式之一下解密所述一个或多个已加密操作码的解密装置包括:
用于使用第二存储器解密阵列解密所述第二已加密操作码以形成第二已解密操作码的解密装置。
18.根据权利要求17所述的装置,其中所述用于组合所述一个或多个已解密操作码和所述一组指令位的组合装置包括:
用于组合所述第一已解密操作码、所述第二已解密操作码和所述一组指令位以形成已解密的体系结构化的指令的组合装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/114,552 | 2005-04-26 | ||
US11/114,552 US8086871B2 (en) | 2005-04-26 | 2005-04-26 | Method for fast decryption of processor instructions in an encrypted instruction power architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1855111A CN1855111A (zh) | 2006-11-01 |
CN100481102C true CN100481102C (zh) | 2009-04-22 |
Family
ID=37188647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610067058.3A Active CN100481102C (zh) | 2005-04-26 | 2006-03-31 | 用于对处理器指令的快速解密的方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8086871B2 (zh) |
JP (1) | JP4831742B2 (zh) |
CN (1) | CN100481102C (zh) |
TW (1) | TWI393021B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996901B2 (en) * | 2006-03-31 | 2011-08-09 | Lenovo (Singapore) Pte. Ltd. | Hypervisor area for email virus testing |
US8892905B2 (en) * | 2007-03-21 | 2014-11-18 | Oracle International Corporation | Method and apparatus for performing selective encryption/decryption in a data storage system |
US20090199014A1 (en) * | 2008-02-04 | 2009-08-06 | Honeywell International Inc. | System and method for securing and executing a flash routine |
US8392762B2 (en) * | 2008-02-04 | 2013-03-05 | Honeywell International Inc. | System and method for detection and prevention of flash corruption |
US8819446B2 (en) * | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
US9954875B2 (en) | 2009-06-26 | 2018-04-24 | International Business Machines Corporation | Protecting from unintentional malware download |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US8578175B2 (en) | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
WO2011156021A2 (en) | 2010-03-01 | 2011-12-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for detecting design-level attacks against a digital circuit |
US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
GB2509422B (en) * | 2011-09-29 | 2020-12-30 | Hewlett Packard Development Co | Decryption and encryption of application data |
WO2014210277A1 (en) | 2013-06-28 | 2014-12-31 | The Trustees Of Columbia University In The City Of New York | Diversified instruction set processing to enhance security |
US9292684B2 (en) | 2013-09-06 | 2016-03-22 | Michael Guidry | Systems and methods for security in computer systems |
US10452564B2 (en) * | 2017-04-25 | 2019-10-22 | Entit Software Llc | Format preserving encryption of object code |
US10467405B2 (en) | 2017-04-25 | 2019-11-05 | Micro Focus Llc | Format preserving encryption of floating point data |
US20230076376A1 (en) * | 2021-09-09 | 2023-03-09 | Texas Instruments Incorporated | Resource access in a microcontroller |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS532541B2 (zh) * | 1975-02-03 | 1978-01-28 | ||
JPH1091430A (ja) * | 1996-09-13 | 1998-04-10 | Matsushita Electric Ind Co Ltd | 命令解読装置 |
US6798884B1 (en) * | 1998-09-16 | 2004-09-28 | Murata Kikai Kabushiki Kaisha | Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium |
JP2001034474A (ja) | 1999-07-16 | 2001-02-09 | Nec Corp | データ処理装置及びデータ処理方法 |
US6735310B1 (en) * | 1999-09-17 | 2004-05-11 | International Business Machines Corporation | Technique of password encryption and decryption for user authentication in a federated content management system |
TW546936B (en) * | 2000-10-27 | 2003-08-11 | Synq Technology Inc | Data encrypting/decrypting system in client/server structure and the method thereof |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
JP4098478B2 (ja) | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
US6996725B2 (en) | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
US7237058B2 (en) * | 2002-01-14 | 2007-06-26 | Netlogic Microsystems, Inc. | Input data selection for content addressable memory |
TW567702B (en) * | 2002-04-22 | 2003-12-21 | Taiwan Semiconductor Mfg | System and method integrating e-mail encryption/decryption |
US20040117639A1 (en) | 2002-12-17 | 2004-06-17 | Mowery Keith R. | Secure driver |
TW595183B (en) * | 2003-03-14 | 2004-06-21 | Acer Labs Inc | Crypto-system with an inverse key evaluation circuit |
JP2004287590A (ja) | 2003-03-19 | 2004-10-14 | Matsushita Electric Ind Co Ltd | デバッグシステム、マイクロプロセッサ及びデバッガ |
JP2005018434A (ja) | 2003-06-26 | 2005-01-20 | Toshiba Corp | マイクロプロセッサ |
US7493483B2 (en) * | 2004-02-19 | 2009-02-17 | International Business Machines Corporation | Method to prevent vulnerability to virus and worm attacks through instruction remapping |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
-
2005
- 2005-04-26 US US11/114,552 patent/US8086871B2/en not_active Expired - Fee Related
-
2006
- 2006-03-31 CN CN200610067058.3A patent/CN100481102C/zh active Active
- 2006-04-24 TW TW095114583A patent/TWI393021B/zh active
- 2006-04-26 JP JP2006122694A patent/JP4831742B2/ja not_active Expired - Fee Related
-
2011
- 2011-11-21 US US13/301,227 patent/US8392725B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW200707254A (en) | 2007-02-16 |
US20120066516A1 (en) | 2012-03-15 |
JP4831742B2 (ja) | 2011-12-07 |
US8086871B2 (en) | 2011-12-27 |
TWI393021B (zh) | 2013-04-11 |
CN1855111A (zh) | 2006-11-01 |
US8392725B2 (en) | 2013-03-05 |
US20060242702A1 (en) | 2006-10-26 |
JP2006309766A (ja) | 2006-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100481102C (zh) | 用于对处理器指令的快速解密的方法、装置和系统 | |
US10496812B2 (en) | Systems and methods for security in computer systems | |
US10382448B2 (en) | Methods, systems and computer readable media for detecting command injection attacks | |
US6941473B2 (en) | Memory device, stack protection system, computer system, compiler, stack protection method, storage medium and program transmission apparatus | |
US8402541B2 (en) | Proactive exploit detection | |
CN101438529B (zh) | 经由动态转换的主动计算机恶意软件保护 | |
CN100533333C (zh) | 用于保障平台间和平台内通信的系统和方法 | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
CN101414339B (zh) | 保护进程内存及确保驱动程序加载的安全性的方法 | |
US20050198645A1 (en) | Run-time call stack verification | |
EP3455764B1 (en) | Method and apparatus for dynamic executable verification | |
CN107408176A (zh) | 恶意对象的执行剖析检测 | |
US20050071668A1 (en) | Method, apparatus and system for monitoring and verifying software during runtime | |
CN104517054A (zh) | 一种检测恶意apk的方法、装置、客户端和服务器 | |
US20240289448A1 (en) | System and Methods for Click-Jacking and Content Redressing Protection | |
KR20180081053A (ko) | 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들 | |
KR20060092832A (ko) | 웜 봉쇄 방법 | |
Main et al. | Software protection and application security: Understanding the battleground | |
Zhang et al. | Malicious Package Detection in NPM and PyPI using a Single Model of Malicious Behavior Sequence | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
EP2202661B1 (en) | Apparatus and method for protecting asset in computer system | |
AU2002219852A1 (en) | Systems and methods for preventing unauthorized use of digital content | |
EP1393145A2 (en) | Systems and methods for preventing unauthorized use of digital content | |
Lind | Securing applications using trusted execution environments | |
Roslinmary et al. | An Effective Approach for Detecting and Preventing Sqlinjection Attacks |
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 |