CN1511286A - 内存部分的保密方法及装置 - Google Patents

内存部分的保密方法及装置 Download PDF

Info

Publication number
CN1511286A
CN1511286A CNA028103416A CN02810341A CN1511286A CN 1511286 A CN1511286 A CN 1511286A CN A028103416 A CNA028103416 A CN A028103416A CN 02810341 A CN02810341 A CN 02810341A CN 1511286 A CN1511286 A CN 1511286A
Authority
CN
China
Prior art keywords
information
internal memory
memory
program
visit
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.)
Pending
Application number
CNA028103416A
Other languages
English (en)
Inventor
G・S・斯特龙金
G·S·斯特龙金
巴恩斯
B·C·巴恩斯
R·施密特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1511286A publication Critical patent/CN1511286A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Abstract

本发明提供一种用于保密内存的部分的方法及装置。本方法包括用以保护和指示至少一个存有读取和写入禁能的至少其中之一的信息的内存的实际地址识别信息。本方法包括接收从程序来的请求以访问信息。本方法更进一步包括反应以判定程序有授权访问信息而访问信息。

Description

内存部分的保密方法及装置
发明领域
本发明大致上关于保密,详言之,关于在数据处理系统中,内存部分的保密方法及装置。
背景技术
对于个人计算机所用的微处理器,通常设计成提供各种不同的可由计算机程序师所使用的硬件保护机构。该等保护机构时常对于执行于个人计算机的操作系统的整合性和保密性非常重要。
例如,x86微处理器的架构,提供了操作于区段(segment)和页(page)层级的保护机构。该x86微处理器的区段保护机构一般辨识四个特权层级(privilege level),编号从0至3,为从较高的特权层级至较低的特权层级。因此,具有特权层级0的应用软件具有最高的特权,为通常具有实质享有所有资源的全部的权利。x86保护机构提供根据特权层级而限制访问某些区段资料或页资料的能力。举例而言,关键操作系统码及资料可予保护,若较的那些所包含的应用码放置于更具有特权的区段处。微处理器的保护机构仅于受控制、规定的方式,可允许应用码访问操作系统码及资料。
通常操作于特权层级0的操作系统,利用硬件保护机构及不同的特权层级来保护其控制下的资源。对于当今所用的操作系统及其相关联的驱动器,具有超过百万条形码线,其意谓着于x86的架构,所有的这些码线将完全访问于所有的计算机资源,这并非很特别的事。亦不必感到吃惊,现用的及新的操作系统的庞大架构及复杂性,已达成具有保持系统的整合和保密性的挑战技能。对于当今大的及通常复杂的操作系统的确保免于保密缺失(或其它的错误),那是很困难的事。这些保密上的缺失,相继使由操作系统所管理的资源置于风险中,并开放整个操作系统及平台可受病毒或其它不怀好意的程序的攻击。
例如,x86架构不提供对内存部分的读取和写入保护的机构。而现今使用者,系利用页表对于所选择的内存的区域提供写入保护,但是并不存在有对内存的该等区域提供读取保护的等效机构。因此,可能对于不怀好意的程序创造了新的页表写映以防止写入保护。也就是说,操作于0特权层级的程序,由首先创造的假页表其能够写映至受保护的内存区的实际地址,然后更新其表登入项目而使受保护的内存区域能够写入,因而对受保护的内存区能够予以访问。程序因此可未经授权而访问于内存区。
本发明有关于克服,或至少减少了一个或多个上述问题的影响。
发明内容
于本发明的一个概念,提供了一种内存部分的保密方法。该方法包括识别用来保护的信息,并指示至少一个内存的实际地址,该内存存放了作为禁止读取和写入的至少其中一个的信息。该方法包括接收从程序来欲访问信息的请求。该方法更包括反应于判定程序有授权可访问信息而访问信息。
于本发明的另一个概念,提供了一种内存部分的保密装置。该装置包括含有特权码的内存。该特权码能够接受保护选择的信息的请求,并指示至少一个内存的实际地址,该内存存放了作为禁止读取和写入的至少其中一个的信息。该特权码能够接受从程序来欲访问信息的请求。该特权码更能够反应于判断程序有授权可访问信息而访问信息。
附图说明
由阅读下列的详细说明,并参照所附图式,本发明的上述和其它优点将变得更为清楚,各图中相同的元件用相同的参考号码,其中:
图1为显示依照本发明的计算机系统的实施例的方块图;
图2绘示可使用于图1的计算机系统的处理器的一个实施例;
图3绘示范例指令的列表,该指令可以是图1的计算机系统中的特权;
图4为显示依照本发明的可使用于图1中的计算机系统的方法;
图5为显示用来保护于图1中的计算机系统的内存的所选择内存位置的例表;以及
图6为显示依照本发明可由图1的计算机系统所使用的方法。
虽然本发明可容易作各种的修饰和替代形式,且已用参考图式举例说明的方式而详细说明了本发明的特定实施例。然而,应该了解到此特定实施例的说明并不欲作为限制本发明为所揭示的特定形式,反之,本发明将涵盖所有落于权利要求范围内所界定的本发明的精神和范围内的修饰、等效和替换。
具体实施方式
下文中将说明本发明的范例实施例。为了清楚起见,本说明书中并未将所有实际施行本发明的特征均作了说明。然而应了解到,在开发任何此种真实的实施例时,必须作出许多与实施相关的决定,以便达到发明者的特定目标,譬如符合随着实施例的不同而有所变化的与系统相关及与商业相关的限制条件。此外,我们应当了解,此种开发工作可能是复杂且耗时的,然而,仍将是一种对此项技艺具有一般知识者在参阅本发明揭示事项之后可从事的例行工作。
兹参照各图式,图1显示了例示的计算机系统100。计算机系统100包括处理器105、北桥110、内存115、周边元件互接(PCI)总线125、南桥130、AT附接(ATA)界面(更通称为整体驱动电子(IDE)界面)135,工业标准架构(ISA)总线145、输入/输出(I/O)控制器芯片150、键盘和鼠标控制器(KBC)界面、软盘控制器(FDC)界面、X总线155、和只读存储器(ROM)160。北桥110和南桥130可以是单一芯片或多个芯片的一部分。虽然并没有限制,但于所示实施例中处理器105可以是x86处理器。x86处理器的架构说明于文献标题为″英特尔架构软件研发者手册″第三卷,其并合本案以为全盘参考。
依据所需要实施的情形,计算机系统100可包括其它的总线、元件、和/或系统。举例而言,计算机系统100可以包括高速缓存、调制解调器、并联或串联界面、SCSI界面、网络界面卡、等等。
于示范实施例中,处理器105包括第一和第二缓存器162、164,该第一和第二缓存器162、164界定了存有超级特权码的内存的区域。如以下的更详细说明,依照本发明的超级特权码可包括一组具有高保密层级,可以控制访问于计算机系统100的所选择的计算机指令。
处理器105耦接到北桥110。北桥110提供了处理器105、内存115、和PCI总线125之间的界面。南桥130提供PCI总线125和周边、装置、和耦接到IDE界面135的次系统、ISA总线145、和X总线155之间的界面。I/O界面150耦接到ISA总线145。
北桥110提供处理器105、内存115、耦接到PCI总线125的装置、和耦接到南桥130的装置和次系统的二者或多者间的连接访问。一般而言,可移动的周边装置插进入连接到PCI总线125,耦接到计算机系统100的PCI″槽″(未显示)。或可取而代之,位于母板上的装置,可直接连接到PCI总线125。
南桥130提供PCI总线125和各种不同的装置和次系统,尤其是譬如调制解调器、打印机、键盘、鼠标等,通常经由X总线155、ISA总线145、和最近所用的IDE界面135而耦接到计算机系统100的遗留装置(legacy devices)之间的界面。南桥130包括经由IDE界面135、ISA总线145、和X总线155,而将遗留装置界接于计算机系统100的其余的装置的逻辑。
譬如硬盘的储存装置175,系耦接到IDE界面135。储存装置175可有一个或多个操作系统(OS)、装置驱动器、和其它储存于其中的应用程序。于x86架构,操作系统和其相关联装置驱动器通常操作于特权层级0,允许OS和装置驱动器访问系统100的各种不同资源。可以安装于储存装置175的操作系统的一个例子是窗口(Windows),现正由微软(Microsoft)公司提供使用中。Windows操作系统通常装运于譬如用于储存装置175、I/O界面150等的装置驱动器之用来控制系统100资源的各种不同的装置驱动器。此外,可藉由Windows操作系统而使用第三部分装置驱动器。
ROM160可包含基本输入/输出系统(BIOS),该BIOS管理执行于计算机系统100和所附接的装置譬如储存装置175、输入/输出界面150等的操作系统之间的管理资料流。于本发明的一个实施例中,超级特权码(SPC)可以储存在ROM160中,以使得当计算机系统100开机后,SPC与BIOS于实质相同的时间起始。虽然于所示实施例中超级特权码(SPC)是存放于ROM160中,但是应可注意到,SPC亦可存放于其它地方,包括于处理器105中的区域内存(未显示)、于储存装置175中、由SPC可执行的任何其它适当的内存地址。于一替代实施例中,SPC可施行为操作系统的一部分,于此情况SPC将最可能储存于储存装置175中。
兹参照图2,显示处理器105的特定实施例。详言之,于图2中处理器105为x86处理器。处理器105的处理器105的架构支持多个作业模式,包括保护模式、实时地址模式、和系统管理模式。保护模式为处理器105的固有作业模式。于保护模式中,可以使用处理器105的所有指令和特征。实时地址模式提供英特尔(Intel)公司8086处理器的程序作业环境,而系统管理模式提供具有执行电源管理和OEM不同特征的透明机构的操作系统。
如图2中所示,处理器105包括总体描述符表(global descriptor table,GDT)210、区域描述符表(LDT)215、任务状态区段(task-state segment,TSS)220、中断描述符表(IDT)225、IDT缓存器230、5个控制缓存器235(a-e)、和任务缓存器240。当操作于保护模式时,实质上所有的内存通过GDT210或(可选用之)LDT215其中之一进行访问。GDT210和LDT215包含称之为区段描述符的登入项目(entry)。区段描述符提供区段的基部地址和访问权、型式、和使用信息。各区段描述符具有提供指针进入GDT210或LDT215的相关区段选择器。
TSS220定义执行任务环境的状态。TSS220包括一般目的缓存器(图中未显示)状态、区段缓存器、E旗标(EFLAGS)缓存器245、区段选择器、三个堆栈区段的堆栈指示器(其中一个堆栈各对于特权层级0、1、和2)。TSS220亦包括相关于任务和页表基础地址对于LDT215的区段选择器。
任务缓存器240拥有区段选择器、基部地址、区段限制、和用于目前任务的TSS220描述符属性。任务缓存器240参考于GDT210中的TSS描述符,其中基部地址特定TSS220的线性地址,区段限制特定于TSS220中的字节数目。LTR和STR指令分别加载并储存任务缓存器240的区段选择器部分。当LTR指令加载于任务缓存器240中的区段选择器,则从TSS描述符来的基部地址、限制和描述符属性可自动地加载任务缓存器240。当任务交换发生时,任务缓存器240自动加载对于新任务的TSS220的区段选择器和描述符。在将新的TSS信息写入缓存器240之前,任务缓存器240的内容不会自动储存。
IDT225操控外部中断、软件中断、和异常事项。IDT225包含了栅极描述符的收集,该等栅极描述符提供对中断和异常事项操控器的访问。于IDT225中的栅极描述符能够是中断栅极、捕获栅极、或任务栅极型式。处理器105依于接收从内部硬件、外部中断控制器、或从软件来的中断向量,而访问中断或异常事项操控器。如同GDT210,IDT225并非是一个区段。IDT225的基部的线性地址系包含于IDT缓存器(IDTR)230中。
控制缓存器235(a-e)决定处理器105的操作模式,和现正执行任务的特征。控制缓存器235(a-e)包含各种用于控制系统层级操作的旗标和资料场。详言之,CR0缓存器235a包含控制处理器105的操作模式和状态的系统控制旗标。CR1缓存器235b予以保留。CR2缓存器235c包括页缺陷线性地址。CR3缓存器235d,其通常称之为页目录基部缓存器,包括页目录250的基部的实际地址和二个旗标。此二个旗标控制于处理器105的内部资料快取(图中未显示)的页目录250的快速访问。CR4缓存器235e包含一群可使几个架构延伸的旗标。
处理器105的x86架构,能够支持内存115(请参阅图1)或虚拟内存(经过划分页面)的直接实际寻址。当使用实际寻址时,线性地址处理为实际地址。当利用划分页面时,则实质上所有的码、资料、堆栈、和系统区段及GDT210和IDT215皆能划分成页。
于实际内存115中页的位置,包含有高达4种型式或层级的系统数据结构。划分成页资料的基部实际地址包含于控制缓存器CR3 235d中。对于划分成页,线性地址分割成多个部分,提供分离的偏移于每一个别的划分成页表,和页框260中。于图2中所示的范例实施例中,显示了一个二阶层系统数据结构。于页目录250中的登入项目,包含了页表255的基部的实际地址、访问权、和内存管理信息。于页表255中的登入项目,包含了页框的实际地址、访问权、和内存管理信息。页目录250的基部实际地址系包含于控制缓存器CR3 235d中。于图2中所示的范例实施例中,对于划分成页,线性地址分割成三个部分,提供分离的偏移于页目录250、页表255、和页框260中。
依照本发明,超级特权码(SPC)包括一系列的″超级特权″指令,该等指令可以由具有访问此等指令的呼叫程序所执行。此处使用术语″程序″作为对于譬如程序、功能、例行例程等的逻辑单元或区块码的一般术语。因此,举例而言,″程序″可以是操作系统或任何其它的应用程序。对于选择的SPC指令的限制访问增加了对计算机系统100的保密层级,该对于计算机系统100的保密并没有表现在现在使用的计算机系统中。也就是说,由于本发明的研发成功,操作于0特权层级的程序(例如操作系统、相关装置驱动器等),不能够自动获得访问于系统100的资源。取而代之,如下列的更详细说明,本发明的SPC可以选择地允许不同的特权至不同的程序操作于0特权层级。
图3显示″超级特权″指令330和允许至具有授权行使这些指令程序的相关访问权325的范例列表。举例而言,登入项目350仅说明操作系统具有授权访问CR3缓存器235d。因此,当由非操作系统(OS)的程序请求访问CR3缓存器235d将遭到否决时,若操作系统企图访问CR3缓存器235d,则SPC将允许完成该访问。此SPC允许选择的程序执行超级特权指令330的机构,将更详细说明于下列图4中。
应注意者,图3中所说明的访问权仅是作例示目的用。于此技艺方面的技术人员将了解到,访问权325和选择的特权指令330,能够特定实施,而因此可变化从一个实施例至另一个实施例。登入项目360显示操作系统及其具有访问至GTD210的相关装置驱动器,而登入项目365显示于0特权层级的任何应用软件操作已访问至IDTR230。登入项目370描述具有访问至任务缓存器240的操作系统和装置驱动器。
图4显示可以由图1的计算机系统100使用的方法。图4的方法开始于方块步骤410,其中当计算机系统100开启后,起始SPC。于起始过程期间,SPC写入处理器105的第一和第二缓存器162、164中,以定义存放在SPC中的保护的内存区域。应注意者于一替代实施例中,替代的二个缓存器162、164,可以用一个缓存器而界定保护的内存区域。也就是说,可以使用单一个缓存器以识别内存区域的开始地址,同时可以使用预先选定的偏移值以定义放置在SPC中内存区域的结束地址。
二个缓存器162、164一旦经写入后,定义存放着SPC的保护的内存区域。保护的内存区域可以定义于ROM160中的内存115中,或任何可以执行SPC的其它储存区域。若缓存器程序化指示于内存115中的内存区域,然后SPC复制其本身至由二个缓存器162、164所界定的受保护的内存区域,于该缓存器162、164中SPC系与所有的其它程序遮蔽开。于一替代实施例中,SPC可程序制作该二个缓存器162、164,仅指示ROM160中SPC于初始存放的位置。于此例中,其后可以直接从ROM160执行SPC,虽然希望有较快速的性能从内存115执行SPC。
于方块步骤420,当一个程序(例如操作系统)企图执行指令,则于方块步骤430处理器105判定是否指令是选择之为SPC一部分的特权指令(请参阅图3的330)的其中一个。若该指令不是特权指令330的其中一个,则于方块步骤435,处理器105允许完成此指令。然而,若由程序执行的指令为特权指令330的其中一个,则于方块步骤440,处理器105产生一个例外。于方块步骤450,SPC捕获由处理器105所产生的例外。
于方块步骤460,SPC判定是否企图执行特权指令的程序具有适当的访问权。至呼叫程序的访问权,例如可以是如图3所示之以程序为基础的方式。欲确认此呼叫程序,于一个实施例中,SPC根据呼叫程序的地址而参照堆栈。或者,可以使用例如Soft-Ice的大众可取用的除错器,来鉴定呼叫程序的地址。若呼叫由授权执行特权指令的程序发出,则于方块步骤465,SPC执行此特权指令。
根据程序的标号(signature),SPC能够鉴定呼叫程序,该标号系于呼叫程序植入期间植入的假设号。例如,若呼叫程序为操作系统,则该操作系统于植入期间由假设而产生的标号,可于后来使用于鉴定由操作系统所产生的呼叫。
若于方块步骤460,SPC判定呼叫程序没有访问特权指令,则于方块步骤470拒绝此请求。可以几种理由拒绝访问特权指令。第一,若呼叫程序没有至特权指令的访问权,则可以拒绝执行此特权指令的呼叫程序。第二,若SPC不能证明呼叫程序的确实性,则可拒绝至特权指令的访问。也就是说,即使呼叫程序可以有访问权以请求特权指令,但是若SPC不能用堆栈证明的话,则其请求仍可遭到拒绝,此堆栈事实上系经过授权的企图执行特权指令的呼叫程序(相反于伪装作为呼叫程序的不怀好意的程序代码)。
为较佳地显示图4的方法,于此处提供了一个例子。为了显示的目的,兹假设于方块步骤420操作系统企图修正CR3缓存器235d。更进一步,为了此显示的目的,兹假设SPC包含了图3的特权指令330,以及假设列出于图3的程序有至特权指令330的访问权。于方块步骤430,处理器105判定是否访问CR3缓存器235d的是特权指令,以及因此依照图3,其为,处理器105于方块步骤440产生了一个例外。于方块步骤450,SPC捕获于步骤440由处理器105所产生的例外。
然后于方块步骤460,SPC判定是否操作系统(即呼叫程序)具有修正CR3缓存器235d的访问权。允许CR3缓存器235d修正之前,SPC首先须验证欲修正CR3缓存器235d的起始请求事实上是由操作系统为之。鉴定操作系统的请求的方法,系参照堆栈。兹假如由堆栈的地址确认其为事实上发出请求修正CR3缓存器235d的操作系统,则于方块步骤460,SPC执行该指令以修正该CR3缓存器235d。当SPC执行该指令修正CR3缓存器235d时,处理器105将完成请求而不会产生一个例外,因为该请求系由经授权以修正特权指令的SPC所提供。
依照本发明,处理器105根据内存的实际地址,维持读取/写入保护表。图5显示读取/写入保护表的范例。超级特权码更新相关于保护表510的内存地址的读取和写入保护指示器。于一个实施例中,保护表510可以是一个读取/写入保护位图。
图5显示内存115的位置515的各实际地址,包含了读取栏520、写入栏530、和访问栏540,然而于此技艺方面的相关技术人员可以了解到于其它的实施例中可以依于施行的需要而使用额外的栏或较少的栏。读取栏520指示是否个别的内存位置515为致能或禁能读取,而写入栏530指示是否个别的内存位置515被致能或禁能写入。访问栏540识别经授权以访问个别的内存位置515的程序。举例而言,内存位置1000至1003可以仅由操作系统访问。虽然图5显示具有关联于内存位置515的个别读取栏520、写入栏530、和访问栏540的各内存位置515,但是其中可期望此等字段可以是关联于内存位置的区块,而不是相关的个别的内存位置。
系统100(参看图1)亦可使用图6的方法,以保护内存115的选择的区域。图6的方法开始于方块步骤610,其中程序(例如操作系统、装置驱动器)指定用于保护的资料或信息的选择的部分。于一个范例中,操作系统(即程序)可以识别存放有要求保护的IDT225的内存的区域。欲保护IDT225,操作系统要求SPC记注存放有IDT225的相关的内存位置515,像是读取禁能和写入禁能,其中之一或二者,依于寻求保护的型式而定。
于方块步骤620,SPC更新对应于内存115的区域的保护表510(参照图5),该内存115存放着寻求由程序保护的资料或信息。也就是说,SPC记注像是读取禁能、写入禁能,或者是二者的内存区域。于一个实施例中,仅允许SPC修正保护表510,藉此防止未经授权的程序,譬如病毒,获得访问内存115的保护区域。于一替代实施例中,SPC允许具有至受保护的内存区域的访问权的程序,故可直接修正保护表510。举例而言,于图5中,因为操作系统具有访问至内存位置1000至1003,则SPC将允许操作系统修正对于这些位置515的读取和写入访问权。SPC能够证明其为如上述的使用堆栈寻求修正保护表的真正的操作系统(而不是一些不怀好意的程序)。
于方块步骤630,程序请求访问至受保护的内存位置515,以及于方块步骤640,SPC判定程序是否有访问至受保护的内存位置515。若内存位置禁能读取和写入,则呼叫程序能够既不写入也不读取受保护的内存位置515的内容。读取保护可防止不怀好意的程序访问受保护的内存,即使程序欲建立一个伪装的页表登入项目写映到受保护的内存位置515。
于方块步骤640,若SPC判定呼叫程序未访问至受保护的内存,则于方块步骤640SPC拒绝请求。若于方块步骤640,SPC判定呼叫程序已访问,则SPC允许完成访问。于一个实施例中,访问权可如图5中的定义。
指定访问权至内存位置515,或替代地至内存区,允许本发明防止未经授权的内存访问。程序不能再藉由建立伪装的页表和标记相关联的如写入致能的内存而轻易地规避现存的保密机构。藉由控制于实体层的访问,本发明使得很难藉由首先写映虚拟页至受保护的内存位置,并然后指示受保护的内存写入致能于伪装的页表登入项目,而程序制作获得未经授权的访问。
可以藉由本发明而保护一个譬如IDT、GDT、LDT的变化表。此外,亦可藉由本发明而保护其它的譬如加密键等的特征。
经由阅读本说明书而了解本发明后,本技艺方面的一般技术人员应了解到,上述的说明可以有许多的变形,而不会偏离此处所说明的本发明的观念。因此,以下提出本发明的权利要求,而本申请权利要求不仅是前述的说明,而且是用以界定发明的专用权。

Claims (8)

1.一种用来提供计算机系统(100)中保密的方法,包括:
识别用来保护的信息;
指示一个内存(115)的一部分,该内存存放了至少可读取或不可读取的信息;
接收从程序来欲访问该信息的请求;以及
基于判定该程序是否有授权可访问该信息,而访问该信息。
2.如权利要求1所述的方法,其中指示至少一个该内存的实际地址包括:
根据对应于与该内存(115)的该部分有关的实际地址的登入项目,生成一个表;以及
将访问权分配到在该表中对应于与该内存(115)的该部分有关的实际地址的登入项目中。
3.一种用来提供保密的方法,包括:
写入至少一个缓存器以定义特权的内存区域;
定义至少一个计算机指令作为特权指令,其中该特权指令储存在该特权的内存区域;
识别用来保护的信息;
分配至少一个内存的实际地址,该内存储存了至少一个读访问权信息;以及
基于分配的访问权,使用该特权指令控制对该信息的访问。
4.如权利要求3所述的方法,进一步包括分配至少一个内存的实际地址,该内存储存了至少一个写访问权的信息。
5.如权利要求4所述的方法,其中分配内存(115)的至少一个实际地址包括:
生成一个表,该表具有内存(115)的一个或多个实际地址的登入项目的至少一个;以及
指示该表的该登入项目中与内存(115)的实际地址有关的访问权。
6.一种用于提供安全的装置,其特征在于,该装置包括:
内存(115);
与内存耦接连通的处理器(105),该处理器(105)适于:
识别内存(115)的至少一部分,该内存储存了至少一个写保护信息;
接受从一个程序中来的欲访问储存在内存(115)的该部分中的信息的请求;以及
基于确定该程序具有访问该信息的授权,允许访问该信息。
7.如权利要求6所述的装置,其中处理器(105)适于:
生成一个表,该表具有一个或多个登入项目,该登入项目与内存(115)的该部分的实际地址有关;以及
将登入项目中读写访问和访问权的至少一个指示为存储于内存(115)的该部分的信息。
8.如权利要求7所述的装置,其中该程序是操作系统。
CNA028103416A 2001-04-04 2002-02-01 内存部分的保密方法及装置 Pending CN1511286A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/825,905 US7631160B2 (en) 2001-04-04 2001-04-04 Method and apparatus for securing portions of memory
US09/825,905 2001-04-04

Publications (1)

Publication Number Publication Date
CN1511286A true CN1511286A (zh) 2004-07-07

Family

ID=25245202

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA028103416A Pending CN1511286A (zh) 2001-04-04 2002-02-01 内存部分的保密方法及装置

Country Status (7)

Country Link
US (1) US7631160B2 (zh)
EP (1) EP1374064A2 (zh)
JP (1) JP2004530979A (zh)
KR (1) KR20030088492A (zh)
CN (1) CN1511286A (zh)
AU (1) AU2002238005A1 (zh)
WO (1) WO2002082259A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101589365B (zh) * 2007-01-25 2012-07-04 微软公司 用于保护操作系统资源的方法
CN102880815A (zh) * 2012-08-21 2013-01-16 上海华御信息技术有限公司 基于应用程序临时存储空间的防护方法及系统
CN107690621A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 受保护的异常处置
WO2019237866A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种运行时访问控制方法及计算装置
WO2022193630A1 (zh) * 2021-03-15 2022-09-22 清华大学 敏感数据的读取方法、装置、电子设备及存储介质

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US8356334B2 (en) * 2001-05-25 2013-01-15 Conexant Systems, Inc. Data network node having enhanced security features
FI115257B (fi) * 2001-08-07 2005-03-31 Nokia Corp Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
GB0129596D0 (en) * 2001-12-11 2002-01-30 Nokia Corp Risk detection
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US6785790B1 (en) * 2002-05-29 2004-08-31 Advanced Micro Devices, Inc. Method and apparatus for storing and retrieving security attributes
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7480919B2 (en) * 2003-06-24 2009-01-20 Microsoft Corporation Safe exceptions
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US20060265525A1 (en) * 2005-05-23 2006-11-23 Boyd William T System and method for processor queue to linear block address translation using protection table control based on a protection domain
US7502871B2 (en) * 2005-05-23 2009-03-10 International Business Machines Corporation Method for query/modification of linear block address table entries for direct I/O
US7464189B2 (en) * 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US20070005815A1 (en) * 2005-05-23 2007-01-04 Boyd William T System and method for processing block mode I/O operations using a linear block address translation protection table
US7502872B2 (en) * 2005-05-23 2009-03-10 International Bsuiness Machines Corporation Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US7552240B2 (en) 2005-05-23 2009-06-23 International Business Machines Corporation Method for user space operations for direct I/O between an application instance and an I/O adapter
US8418233B1 (en) * 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US7500071B2 (en) * 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
US7657662B2 (en) * 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US7577761B2 (en) * 2005-08-31 2009-08-18 International Business Machines Corporation Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US20100132053A1 (en) * 2005-10-04 2010-05-27 Nec Corporation Information processing device, information processing method and program
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7886099B2 (en) * 2006-06-16 2011-02-08 Superspeed Llc Systems and methods for providing a personal computer with non-volatile system memory
US20080162848A1 (en) * 2006-12-30 2008-07-03 Hewlett-Packard Development Company, L.P. Controlling access to a memory region
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US20090037678A1 (en) * 2007-07-31 2009-02-05 Giles Chris M Protected portion of partition memory for computer code
US8006055B2 (en) * 2008-03-04 2011-08-23 Microsoft Corporation Fine granularity hierarchiacal memory protection
US9152636B2 (en) * 2008-03-07 2015-10-06 Leadcom Technology Co., Ltd. Content protection system in storage media and method of the same
JP4514066B2 (ja) * 2008-04-28 2010-07-28 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理装置におけるアクセス制御方法
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US8555015B2 (en) 2008-10-23 2013-10-08 Maxim Integrated Products, Inc. Multi-layer content protecting microcontroller
US8245291B2 (en) * 2008-11-18 2012-08-14 Oracle International Corporation Techniques for enforcing access rights during directory access
US8850410B2 (en) * 2010-01-29 2014-09-30 International Business Machines Corporation System using a unique marker with each software code-block
US8689349B2 (en) * 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US8966629B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
WO2013100636A1 (ko) 2011-12-30 2013-07-04 에스케이씨앤씨 주식회사 마스터 tsm
WO2013100419A1 (ko) * 2011-12-30 2013-07-04 에스케이씨앤씨 주식회사 애플릿 액세스 제어 시스템 및 방법
US9823869B2 (en) * 2014-01-08 2017-11-21 Nvidia Corporation System and method of protecting data in dynamically-allocated regions of memory
US20160085695A1 (en) 2014-09-24 2016-03-24 Intel Corporation Memory initialization in a protected region
US10754967B1 (en) * 2014-12-15 2020-08-25 Marvell Asia Pte, Ltd. Secure interrupt handling between security zones
US9710404B2 (en) 2015-03-23 2017-07-18 Intel Corporation Dynamic configuration and peripheral access in a processor
US10671547B2 (en) 2016-12-19 2020-06-02 Intel Corporation Lightweight trusted tasks
GB2563886B (en) * 2017-06-28 2019-12-25 Advanced Risc Mach Ltd Realm management unit-private memory regions
US11875168B2 (en) 2020-03-19 2024-01-16 Oracle International Corporation Optimizing execution of foreign method handles on a virtual machine
US11513779B2 (en) 2020-03-19 2022-11-29 Oracle International Corporation Modeling foreign functions using executable references
US11543976B2 (en) * 2020-04-01 2023-01-03 Oracle International Corporation Methods for reducing unsafe memory access when interacting with native libraries

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR119649A (zh) * 1975-03-24
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
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
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
EP0432359A3 (en) 1989-11-21 1993-03-17 International Business Machines Corporation Method and apparatus for performing memory protection operations in a parallel processor system
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
US5557771A (en) * 1990-12-01 1996-09-17 Hitachi, Ltd. Data processing system and storage device and auxiliary memory bits for controlling data protection in the storage device
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5995750A (en) * 1997-12-16 1999-11-30 Micro Motion, Inc. Memory protection system for a multi-tasking system
US6148384A (en) * 1998-06-02 2000-11-14 Adaptec, Inc. Decoupled serial memory access with passkey protected memory areas
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101589365B (zh) * 2007-01-25 2012-07-04 微软公司 用于保护操作系统资源的方法
CN102880815A (zh) * 2012-08-21 2013-01-16 上海华御信息技术有限公司 基于应用程序临时存储空间的防护方法及系统
CN102880815B (zh) * 2012-08-21 2016-02-03 上海华御信息技术有限公司 基于应用程序临时存储空间的防护方法及系统
CN107690621A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 受保护的异常处置
CN107690621B (zh) * 2015-06-16 2022-05-27 Arm 有限公司 受保护的异常处置
WO2019237866A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种运行时访问控制方法及计算装置
WO2022193630A1 (zh) * 2021-03-15 2022-09-22 清华大学 敏感数据的读取方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP2004530979A (ja) 2004-10-07
KR20030088492A (ko) 2003-11-19
AU2002238005A1 (en) 2002-10-21
US20020147916A1 (en) 2002-10-10
EP1374064A2 (en) 2004-01-02
WO2002082259A3 (en) 2003-09-18
WO2002082259A2 (en) 2002-10-17
US7631160B2 (en) 2009-12-08

Similar Documents

Publication Publication Date Title
CN1511286A (zh) 内存部分的保密方法及装置
US5469556A (en) Resource access security system for controlling access to resources of a data processing system
CN1307535C (zh) 安全执行模式下信任客户使用安全核心系统
KR100927750B1 (ko) 무단 변경 방지 방법, 무단 변경 방지 프로세서, 무단 변경방지 제품, 무단 변경 방지 시스템
CN1278244C (zh) 内存管理系统及依据线性地址的内存存取保密的方法
US5504814A (en) Efficient security kernel for the 80960 extended architecture
EP1966706B1 (en) Identifier associated with memory locations for managing memory accesses
CN1132107C (zh) 计算机系统中控制对映射到i/o地址空间的寄存器的访问的系统
US8402269B2 (en) System and method for controlling exit of saved data from security zone
KR101955189B1 (ko) 스왑 아웃된 메모리 페이지의 가상 머신 가상화된 메모리로의 맵핑을 위한 가상 머신에서의 페이지 오류 삽입
CN1700136A (zh) 处理器扩展和软件验证
CN103460179A (zh) 用于透明地对应用程序进行插桩的方法和设备
CN1759557A (zh) 具有外围设备访问保护的数据处理系统及其方法
CN1639666A (zh) 具有外围设备访问保护的数据处理系统及其方法
CN1285038C (zh) 控制装置对内存的访问以提供增强的内存访问安全的系统与方法
CN1628284A (zh) 安全执行模式异常
CN108491249B (zh) 一种基于模块权能的内核模块隔离方法及系统
CN1030654A (zh) 利用存取和故障逻辑信号保护主存储器单元的设备和方法
US11200175B2 (en) Memory accessor invailidation
Blair et al. MPKAlloc: Efficient Heap Meta-data Integrity Through Hardware Memory Protection Keys
US6889308B1 (en) Method and apparatus for protecting page translations
Israel et al. Digital Equipment Corporation VAX/VMS Version 4.3
Lister et al. Protection
JP2009104555A (ja) Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
Wagner et al. Control Data Corporation Network Operating System Security Evaluation Package

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication