CN100424659C - 用基于物理地址的安全配置确定对象安全的方法及装置 - Google Patents

用基于物理地址的安全配置确定对象安全的方法及装置 Download PDF

Info

Publication number
CN100424659C
CN100424659C CNB028217306A CN02821730A CN100424659C CN 100424659 C CN100424659 C CN 100424659C CN B028217306 A CNB028217306 A CN B028217306A CN 02821730 A CN02821730 A CN 02821730A CN 100424659 C CN100424659 C CN 100424659C
Authority
CN
China
Prior art keywords
security
level
memory
internal storage
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB028217306A
Other languages
English (en)
Other versions
CN1578946A (zh
Inventor
B·C·巴尼斯
G·S·斯特劳金
R·W·施密特
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.)
GlobalFoundries 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 CN1578946A publication Critical patent/CN1578946A/zh
Application granted granted Critical
Publication of CN100424659C publication Critical patent/CN100424659C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Abstract

本发明提供一种执行虚拟内存访问的方法及装置。本发明执行软件对象,建立对于软件对象的安全级别,并建立二级表。本发明接收根据执行的软件对象的内存访问需求,并对应于二级表中区段的至少一个安全级别作确定。使用安全级别执行多表内存访问,确定是否收到所述内存访问请求,及如果收到所述内存访问请求,根据所述多级别表访问允许内存访问。本发明响应于执行的软件对象,验证执行安全级别与访问的区段相关的安全级别之间的匹配。本发明根据响应于执行安全级别和关联于访问的区段的安全级别之间相匹配的二级表,而确定虚拟内存地址。本发明对应于虚拟内存地址的物理内存位置定位,并访问该根据定位物理内存位置的内存部分。

Description

用基于物理地址的安全配置确定对象安全的方法及装置
技术领域
本发明一般涉及计算机系统操作,特别是涉及一种用来执行基于物理地址的安全配置以提供一种安全的内存访问的方法及装置。
背景技术
计算机或计算机系统在许多今日的工业和家庭应用中为重要的要素。有许多的系统,譬如制造系统、电源系统、产品分配系统、文件系统等,由使用处理器的计算机系统供应电源。这些处理器执行各种不同的测试和执行多个彼此互相作用的软件程序。输入/输出装置经常允许处理器和软件程序的处理操作。在处理器操作期间希望有标准级别的安全,以使得某些软件结构(例如,软件对象、子程序、独立程序等)能受控制而赋予较其它的软件结构有优先权。经常,为了防止处理器的未经授权或未留意的访问或操作,而限制访问某些软件结构和某些处理器功能。现用计算机架构包括使用虚拟内存的设计,该虚拟内存使用几个系统定义的表,而这些表存在于计算机系统内的物理内存中。在这些系统表中的登入项通常预先定义,并包含保留的区段,这些区段限制对某些软件结构的访问。
计算机系统已经改革从单一任务装置成为多任务装置。计算机系统使用操作系统执行许多的任务并管理他们的资源使用。一般而言,当使用者要求使用一个处理(例如,开启譬如字符处理器的应用程序),则操作系统提供某些计算机资源(例如,内存的各部分)由该任务使用。然而,许多计算机资源不能或专门使用于此方式。例如,打印机驱动程序通常由多任务使用。因此,操作系统亦通常定义对于相关于此等共享资源的各任务的访问权和协议。因此,由于操作系统的尽量功能发挥,而使得计算机系统能够以有效的方式同时执行多个任务。
在如此计算机环境中的一个重要理念是″安全″。多任务的计算机系统,使用安全和保护服务,以保护他们的操作系统不让使用者处理,并保护避免互相作处理。若没有了保护,则无用的程序可能无意地破坏在内存空间属于操作系统或其它处理的程序代码或数据。值得注意的是,至少在此内容中,安全并未暗示防阻故意的恶劣行为,虽然亦考虑到保护防止此等事情的发生。
譬如x86处理器的许多个处理器设有多个安全级别,譬如特权级别(privilege levels)。兹参照到图1,显示了表现多个安全级别的一个范例。图1中的倒金字塔结构显示了四个级别的安全(特权),第0级别、第1级别、第2级别、和第3级别。操作系统赋予了基层的特权级别,譬如第0级别。由第0安全级别所赋予的特权允许特定的软件结构以获得由其后的安全级别譬如第1至3级别所提供的访问。若软件结构仅允许第2级别的安全特权,则特定的软件结构仅具有经由第2和3级别特权赋予操作的访问和控制。在许多情况中,例如微软窗口(Microsoft Windows)的流行操作系统,并未使用多个特权级别的全部能力。一些软件操作系统仅使用二个特权级别,譬如第0级别和第3级别。
使用者应用程序可以执行于第3安全级别,而操作系统服务和所有的驱动程序操作于第0安全级别。因此能将计算机系统开放于各不同的安全风险中。此尤其重要,因为多数的驱动程序具有访问至所有的计算机资源,因为他们正操作于最高特权级别,第0安全级别。因此,对于驱动程序未经授权之访问(该驱动程序控制于计算机系统中之装置,譬如调制解调器装置),能够引起调制解调器的未经授权的操作,而造成系统破坏。再者,至系统内存的未经授权的访问,能导致损失有价值的数据和软件程序。
本发明系相关于克服、或至少减少了上述一个或多个问题的影响。
发明内容
在本发明的一个方面,提供了一种执行虚拟内存访问的方法。本发明执行软件对象(object);建立对于软件对象的安全级别。本发明执行使用了至少其中一个安全级别的多表内存访问。本发明执行对象功能。使用所述安全级别执行多表内存访问包括建立所述二级表,确定是否收到所述内存访问请求,和如果收到所述内存访问请求,根据所述多级别表访问允许内存访问。
在本发明的另一个方面,提供了一种执行虚拟内存访问的装置。本发明的装置包括:连接到总线的处理器;将至少一个软件对象连接到处理器的装置;内存单元;和连接到总线和该内存单元的内存访问接口。该内存访问接口根据至少一个安全级别响应于处理器执行的软件对象,而提供该处理器至少一部分内存单元的多级别表内存访问。该内存访问接口包括虚拟内存访问表和与该虚拟内存访问表连接的二级表。
虽然本发明可容易作各种的修饰和替代形式,然已用参考图式举例说明的方式而详细说明了本发明的特定实施例。然而,应暸解到此处特定实施例的说明并不欲作为限制本发明为所揭示的特定形式,反之,本发明将涵盖所有落于所附申请专利范围内所界定的本发明的精神和范围内的修饰、等效和替换。
附图说明
由参考下列的说明,配合所附图式,将可了解本发明。各图中相同的参考号码系表现相同的组件,其中:
图1显示用于计算机系统中安全访问的多个特权级别的表现方式;
图2为可使用于依照本发明的一个实施例的计算机系统的步骤图;
图3为依照本发明的一个实施例的显示于图2的处理单元的更详细步骤图表现;
图4为依照本发明的一个实施例的显示于图3的内存访问接口的更详细步骤图表现;
第5A及5B图显示由第1至4图中显示的由处理器执行的内存访问的步骤图表现;
图6显示使用依照本发明的一个实施例的安全设计,执行内存访问的方法的流程图描述;
图7显示依照本发明的一个实施例,执行说明于图6中的多表内存访问的方法的流程图描述;
图8显示依照本发明的一个实施例,设立于图7中说明的二级表的方法的流程图描述;
图9显示依照本发明的一个实施例,执行说明于图7中的多级别表访问的方法的流程图描述;
图10显示依照本发明的一个实施例,确定说明于图9中的在二级表中的安全级别的方法的流程图描述;以及
图11显示依照本发明的一个实施例,响应于图7中所说明的多级别表访问,促进适当的内存访问的方法的流程图描述。
具体实施方式
下文中将说明本发明的实施范例。为了清楚起见,本说明书中并非将所有实际执行本发明的特征,均作了说明。当然应了解到,在开发任何此种实际的实施例时,必须作出许多与实施相关的确定,以便达到发明者的特定目标,譬如符合随着实施例的不同而有所变化的与系统相关及与商业相关的限制条件。此外,我们应当了解,此种开发工作可能是复杂且耗时的,然而,仍将是一种对此项技艺具有一般知识者在参阅本发明揭示事项之后可从事的例行工作。
如图1中所示,本发明的实施例提供了使用安全访问系统的内存访问。本发明的实施例提供多个内存访问表系统,以在由计算机系统中的一个或多个处理器所初始化的内存访问期间,能够提供安全。本发明的实施例亦设有虚拟内存访问系统,该系统使用主虚拟内存访问表和二级内存访问表,这些表于内存访问期间获得增进安全性。
兹参照图2,显示了依照本发明的系统200的一个实施例。系统200包括处理单元210;多个输入/输出装置,譬如键盘230、鼠标240、输入笔250;和显示单元220,譬如监视器。在一个实施例中,由本发明所揭示的安全级别系统设于处理单元210中。从输入/输出装置230、240、250其中之一来的输入,可初始化一个或多个在处理单元210中软件结构的执行,该软件结构包括操作系统。然后访问设置在系统200中的内存,以执行存在在处理单元210中的各种不同的软件结构。本发明的实施例,根据程序制作入系统200中的预定的安全登入项,限制由一个或多个软件结构所初始化的内存访问。
兹参照图3,显示了依照本发明的处理单元210的一个实施例的简化步骤图。在一个实施例中的处理单元210,包括处理器310、内存访问接口320、内存单元340、和譬如软件对象或结构的可编程对象350。处理器310可以是包含了多个处理器(图中未显示)的微处理器。内存单元340包括物理的内存区段345,该内存区段345包括譬如磁带内存、闪存、随机访问内存、在半导体芯片上存在的内存、和类似此等内存的物理的内存。在半导体芯片上读取的内存可以采用任何各种不同的形式,譬如同步动态随机访问内存(SDRAM)、双倍率动态随机访问内存(DDRAM)、和类似的内存。处理器310通过系统内存访问接口320而与内存单元通讯。在一个实施例中,内存访问接口320为公知的结构,设有送至内存单元340的内存地址和逻辑信号,来特征化所需要的内存交易信息。
在一个实施例中,处理器310连接到主总线315。处理器310经由主总线315与内存访问接口320和对象350通讯。内存访问接口320连接到主总线315和内存单元340。处理器310亦连接到主总线325,该主总线325用来与外围装置通讯。在一个实施例中,主总线325是一个外围组件互接(PCI)总线(参照PCI规格,2.1版)。用来驱动显示单元220和其它装置(例如,PCI装置)的视频控制器(图中未显示)系连接到主总线325。计算机系统200可包括譬如二级PCI总线(图中未显示)或在本领域的普通技术人员已知的其它外围装置(图中未显示)。
处理器310根据从对象350来的指令,执行多个计算机处理操作。对象350可包括软件结构,促发处理器310以执行多个功能。此外,对象350的多个二级区段,譬如操作系统、和譬如微软字符(Microsoft Word)使用者接口软件系统、和类似系统,可以同时存在于处理器310中并执行操作。
响应于由对象350所提供的软件代码的执行,处理器310执行一个或更多个内存访问,以为了执行由一个或更多个对象350的初始化所促发的任务。由处理器310所执行的内存访问,包括访问用来储存执行码的内存位置,和从储存的内存位置获得数据的内存访问。经常,储存在特定内存位置的某些数据,由少数几个选择的对象350的其中一个所限制访问。本发明的实施例提供了多表安全访问,以限制访问至在系统200中的特定内存位置。处理器310经由内存访问接口320执行内存访问。内存访问接口320提供至内存单元340的访问,该内存单元340可包括物理内存345和虚拟内存342(亦即,使用具有本发明的优点之在本领域的普通技术人员已知的虚拟内存技术所组构的物理内存)。本发明的至少一个实施例,提供了多表虚拟内存访问协议。
兹参照图4,显示了依照本发明的内存访问接口320的一个实施例步骤图描述。在一个实施例中,内存访问接口320包括虚拟内存访问表410和二级表430。本发明的实施例提供了使用虚拟内存系统执行的内存访问。由本发明的实施例所使用的虚拟内存系统,使用了多级别表定位设计(亦即,使用了虚拟内存访问表410结合二级表430),来访问虚拟内存地址。由处理器310使用虚拟内存地址以定位所需要的物理内存地址。
系统200使用虚拟内存访问表410结合至少一个其它的表,譬如二级表430,来定义虚拟内存地址。虚拟内存访问表410和二级访问表430用来转译虚拟内存地址(线性地址),以引导至物理内存地址。物理内存地址指向在物理内存345中的内存位置。由本发明的实施例所提供的多级别内存表系统,允许二级表430定义虚拟内存访问表410的整个区段。在一些例子中,二级表430可以定义不呈现在虚拟内存访问表410中的虚拟内存地址的一部分。可以使用二级表430作为精细调整装置,该精细调整装置根据由虚拟内存访问表410所产生的虚拟内存地址而进一步定义物理内存地址。此将造成更正确和更快速的虚拟内存地址定义。
在一个实施例中,在其中可包括有多个二级组表的二级表430,系储存在如图3中所示的内存单元340中,或在系统200的主存储器中(图中未显示)。二级表430系以高安全级别储存,以防止未经安全保护或未验证的软件结构或对象350获得对二级表430的访问。在一个实施例中,处理器310根据由对象350送出的指令,要求访问至在物理内存345中的位置。响应于由处理器310所产生的内存访问请求,内存访问接口320促发虚拟内存访问表410以产生虚拟内存地址,该虚拟内存地址由二级表430进一步定义。然后虚拟内存地址指向在虚拟内存342中的位置。然后处理器310要求访问至虚拟内存位置,该位置用来定位在物理内存345中的对应位置。
由处理器310执行的内存访问的一个实施例显示于第5A、5B图中,并说明于下列。兹参照第5A图,显示了内存系统500的一个实施范例,用来储存和取回在数据处理器或计算机系统中的安全级别属性。在一个实施例中,内存系统500整合入在系统200中的处理单元210。内存系统500在数据处理器(图中未显示)中是有用的,该数据处理器使用虚拟寻址设计来访问内存。举例而言,当使用分页设计来寻址内存时,可由处理器310使用内存系统500,该分页设计譬如是执行在x86型微处理器中的分页设计。在一个实施例中,在x86系统中的单一内存页包括4于字节(Kbyte)的内存。而且,内存系统500查找在处理器310中的特殊应用,该处理器310指定于页级别适当的安全级别属性。
内存系统500接收物理地址553,该物理地址553由页部分510和相对于虚拟、线性、或媒介地址的偏移部分520所组成,这些虚拟、线性、或媒介地址将由在x86型微处理器中的分页单元所接收。在一个实施例中,页部分510数据寻址适当的内存页,而偏移部分520数据寻址于选择的页部分510中的特定的偏移内存位置。内存系统500接收物理地址553,譬如将由在x86型微处理器中的分页单元(图中未显示)所产生的物理地址。
多级别查找表530(通常称的为扩展安全属性表,ESAT)接收物理地址的页部分510。多级别查找表530储存关联于内存的各页的安全属性。换言之,各页具有关联于该页的某些安全级别属性。在一个实施例中,关联于页的安全属性储存在多级别查找表530中。举例而言,关联于各页的安全属性可以包括下阅(look down)、安全环境ID、轻权值呼叫闸(lightweight call gate)、读取激活、写入激活、执行、外部主写入激活、外部主读取激活、加密内存、激活的安全指令,等等。具有本发明所揭示的优点的许多这些属性为此技艺方面的一般技术人员所已知。
在一个实施例中,多级别查找表530定位于系统200的系统内存(图中未显示)中。在一个替代实施例中,多级别查找表530整合入处理器310中,该处理器310包括使用系统200的微处理器。因此,多级别查找表530能够操作的速度,至少是部分操作的速度,系相关于系统内存的速度。系统内存的速度,相较于处理器310的速度,通常为相对的低。因此,使用多级别查找表530取回安全属性的处理会使系统200的整个操作慢下来。欲减短请求定位并取回安全属性的时间周期,高速缓存540系与多级别查找表530并行实施。高速缓存540可以与处理器310位于相同的半导体晶粒上(亦即,高速缓存和处理器310系整合在一个半导体芯片上),或设在处理器晶粒的外部。一般而言,高速缓存540的速度可以实质上较多级别查找表530的速度为快。高速缓存540包含较小的二级组的页和其包含于多级别查找表530中的安全属性。因此,对于储存在高速缓存540中的页,可以实质地增快取回安全属性的操作。
兹参照第5B图,显示了用来储存和取回关联于在内存中的页的安全属性的多级别查找表530的一个实施例。多级别查找表530包括通常称之为ESAT目录的第一表550,和通常称之为ESAT的第二表552。一般而言,第一表550包含用于多个ESAT 552地址的开始地址的目录,在该ESAT 552中储存了用于各页的安全属性。在此处所示实施例中,可以使用单一ESAT目录550以写映整个内存。
物理地址553的第一部分,其包括最高幂次位而通常称之为目录(DIR)554者,系用来作为进入第一表550的指标。物理地址553亦可包括含有表数据570的部分,表数据570可识别已寻址的表550、552。物理地址553更进一步包括在表550、552中的偏移部分520,该表550、552引导至特定的登入项560、580。第一表550位于系统内存内的基准地址555。物理地址553的DIR部分554增加到基准地址555以识别登入项560,该登入项560指向到其中一个第二表552中适当地址的基准地址。在一个实施例中,多个第二表552可以表现在多级别查找表530中。一般而言,在第一表550中的每一个登入项560指向到在第二表552中其中一个的开始地址。换言之,每一个登入项555可指向至其本身的各别ESAT560。
在一个实施例中,第一表550和各第二表552占据于物理内存345中的一页。因此,如果需要的话,在公知的具有分页激活的x86型微处理器中的内存管理单元能够交换表550、552进入和离开系统内存。也就是说,因为表550、552的多级别管理,所有的表552不须同时表现在物理内存345中,用于内存系统500适当地操作。若由第一表550中的登入项560请求不正处于物理内存中的其中一个表552,则x86微处理器的公知的内存管理单元(图中未显示)可从譬如硬盘机的主存储器中读取页,并将请求的页552储存于可访问的系统内存中。此调整至一页大小的表550、552减少需要储存多级别查找表530的系统内存的量,并减少所需的使用表550、552访问内存的内存交换的量。
在一个实施例中,各页有4千字节大小,而系统内存体总共有16兆字节(Mbyte)。因此,一页中大约可以容纳4000个ESAT表552。在一个实施例中,4000个ESAT表552各可以包含4000组的安全属性。再者,ESAT目录550包含对于各4000个ESAT表552的开始地址。第一表550的登入项560指向至适当的第二表552的基准地址。在适当的第二表552中的所需要的登入项580由将物理地址553的第二部分570(表部分)加至包含于登入项560中的基准地址555而识别。在一个实施例中,登入项580包含关联于在物理内存345中识别的页的预定的安全属性。显示在第5A及5B图中的多表设计为一个实施范例,蒙受本发明所揭示益处的在此技艺方面的一般技术人员,可依照本发明而执行变化的多表设计。
兹参照图6,显示了依照本发明的一个实施例的方法的流程图描述。由系统200初始化对象350(步骤610)。譬如特定的软件程序(例如,微软字处理Microsoft Word)的对象350能够由譬如鼠标240的输入/输出装置的启动而初始化。当由系统200初始化对象350时,处理器310执行由对象350所提供的码(步骤620)。然后系统200根据用于对象350的预定的安全级别建立安全级别(步骤630)。然后系统200请求多表内存/资源访问(步骤640)。下文中将更详细说明由系统200执行的多表内存/资源访问。根据建立的安全级别和由系统200执行的多级别内存/资源访问,而执行对象350的功能。对象350的功能可包括建立文件、执行由调制解调器(譬如无线调制解调器,及其类似装置)初始化的通讯(步骤650)。
兹参照图7,显示了图6的步骤640中所描述的执行多表内存/资源访问的一个实施例的流程图说明。系统200执行二级表设立功能(步骤710)。设立二级表包括放置和/或更新安全级别数据在二级表430中。能够使用二级表430来定义在虚拟内存访问表410中的多个区段。二级表430可包含相关表登入项(例如,第5B图中的560、580)的整个区段的资料,这些表登入项也许正从虚拟内存访问表410中遗失。
在一个实施例中,系统200将物理内存345划分成页,而使得处理器310根据这些页而访问至物理内存345。在一个实施例中,各页定义于4千字节的内存区段,该4千字节系与X86处理器兼容。虚拟内存访问表410和二级表430包含索引在表410、430中。可以使用这些索引来计算物理地址553,该物理地址553能够用来定位物理内存345的特定部分。以下将更详细说明由处理器310实施使用表410、430来访问内存。
一旦系统200设立二级表430后,系统200检核从处理器310来的内存访问请求(步骤720)。从处理器310来的内存访问请求通常由对象350促发。一些对象350需要扩充内存访问以执行他们的个别任务,譬如经由调制解调器初始化通讯、取回关于特定文件的数据、以及类似的工作。系统200确定是否已接收了内存访问请求(步骤730)。当系统确定尚未接收到内存访问时,系统200继续检核内存访问请求,如由图7中从步骤730回到步骤720的路径所指示。
当系统200确定已经请求内存访问时,系统200依照本发明的一个实施例执行多级别表访问(步骤740)。以下将提供由系统执行的多级别表访问的更详细说明。一旦系统执行在步骤740中说明的多表访问,则系统200响应于多级别表访问而允许适当的内存访问(步骤750)。换言之,系统200允许该促发处理器310请求内存访问的对象350,实际地获得由处理器310请求的对物理内存345的访问。
兹参照图8,显示了如图7中的步骤710所指示,设立二级表430的方法的一个实施例。系统200将物理内存345分成多个区段。这些区段经常称之为内存页。在一个实施例中,将各区段/页划分成4千字节的相等内存(步骤810)。在一个实施例中,划分成4千字节区段的物理内存345的各区分,能够由那些已习得本发明揭示优点的在在本领域一般技术人员所已知的硬件处理来执行。在替代实施例中,成为区段的物理内存345的各区分,能够由那些已习得本发明揭示优点的在本领域一般技术人员所已知的软件处理技术来执行。
系统200确定从二级表430中省略那一区段,并执行省略功能(步骤820)。由二级表430中省略的各区段为内存页,这些页可指定缺省的安全级别。省略的区段包括能够分配广级别或低级别安全级别的内存页。因此,系统200指定缺省的安全级别用于省略的区段(步骤830)。最低的安全级别指定给省略的区段,因此能够由实际上任何软件对象350访问省略的区段,该软件对象350促发处理器310访问内存。
然后系统200指定对应于在物理内存345中各未省略的区段/页的安全级别(步骤840)。系统200根据由特定的标得350所期望的访问经由处理器310而将安全级别指定到内存页。系统200保护某些硬件装置,和在处理器单元210中的其它的内存位置,同时指定适当的安全级别至未省略的区段/页。
一旦指定了安全级别后,系统200与虚拟内存342的特定的区段/页相关联(步骤850)。虚拟内存位置根据特定的安全级别可指向到特定的物理内存区段345。然后系统200利用虚拟内存342至于物理内存345中的区段的关联性,来建立多级别二级表430(步骤860)。在一个实施例中,省略了二级表430中的特定的空间,以为了节省内存资源。如上所述,省略的内存位置,指定了缺省的安全级别,该缺省的安全级别通常为最低的安全级别。
兹参照到图9,显示了图7的步骤740中所指示的执行多级别表访问处理的一个实施例。在接收到对于内存访问的请求后,系统200响应于请求的内存访问,确定在二级表中的安全级别(步骤910)。系统200根据响应于至处理器310的指示内存访问,确定在二级表430中的安全级别,该指示系关于初始化在处理器310中执行软件的对象350的型式。某些软件对象350需要能够访问在内存中的某些敏感数据,和/或访问在处理器310中的输入/输出装置的更高级别的安全访问。举例而言,需要数据的通讯转移的软件对象350,将需要高安全级别间距以为了从处理器单元310访问敏感数据。反之,执行譬如微软字符(Microsoft Word)的数据处理器功能的软件对象350,将需要低级别的安全间距以执行其任务。
然后系统200检验初始化内存访问请求的软件对象350的执行安全级别,和为内存访问目标的页的安全级别(步骤920)。处理器310比较现正执行软件对象350的安全级别与为内存访问的目标的页的安全级别,以为了确定匹配(亦即,是否允许请求的内存访问)。此防止使得某些未经授权以访问在物理内存345中的某些敏感数据的软件对象350,不能够访问和控制某些内存位置。然后系统200将适当的安全级别关联至由软件对象350所初始化的特定访问请求(步骤930)。
然后系统200将二级表地址关联至对应于物理内存345中一位置的虚拟内存342。系统200位于物理内存345,并将适当的安全级别关联至物理内存页(步骤930)。在一个实施例中,内存访问接口320执行定位虚拟内存342,和关联虚拟内存342至物理内存345中的位置。
兹参照图10,显示如图9的步骤910中所指示的响应于处理器310的内存访问请求,确定在二级表430中安全级别的一个实施例。系统200响应于从虚拟内存访问表410来的内存访问请求,而确定物理地址553(步骤1010)。然后系统200根据物理地址553,响应于软件对象350,定位由处理器310所执行的内存区段/页(步骤1020)。当根据软件对象350执行码时,系统200确定由处理器310正在执行的页的安全级别,该系统200能够定义现用的安全级别。因此,系统200有效地使用内存区段/页以定义安全级别(步骤1040)。然后系统200发送定义的安全级别至处理器310以执行适当的内存访问(步骤1030)。完成了显示于图10中的步骤,即实质地完成了确定在图9的步骤910中所指示的二级表中安全级别的步骤。
兹参照图11,显示如图7的步骤750所描述的执行适当的内存访问的各步骤的一个实施例的流程图说明。系统200检核对应于特定内存访问请求的安全级别(步骤1110)。安全级别可根据正由处理器310执行的特定软件对象350,而与特定的内存请求相关联。然后系统200确定安全级别是否足够允许访问至内存/资源(步骤1120)。系统200检核以了解是否安全级别间距为适当以允许由处理器310所请求的内存访问,并获得访问至特定的内存位置。
当系统200确定安全级别根据由处理器310所作的特定的内存访问请求,并不高到足够允许内存/资源访问时,系统200就否决请求的内存/资源访问(步骤1140)。当系统200确定安全级别的确足够允许请求的内存/资源访问时,系统200就允许处理器310或软件对象350获得对物理内存345中的特殊内存位置的访问(步骤1130)。完成了指示于图11中的步骤,即实质地完成了于图7的步骤750中所指示的允许适当的内存访问的处理。由本发明所教示的原则可执行于其它型式的自动机架上。
揭示于上的特殊实施例仅作说明用,而本发明可作修正以及以不同的方式实施,但是对于本领域一般技术人员而言在阅读习得本说明书后,当可了解本发明可以诸多等效方式实施。再者,除了以下的申请专利范围中说明之外,并不欲对其中所示的构造或设计的细部作限制。因此,当可明证以上揭露的特定实施例可作更改或修饰,而所有此等变化皆系考虑在本发明的精神和范围内。因此,本发明提出下列的申请专利范围请求保护。

Claims (7)

1. 一种用基于物理地址的安全配置确定对象安全的方法,包括:
执行软件对象(350);
关联物理地址以执行一个相关于执行所述软件对象(350)的内存访问;
使用所述物理地址为该软件对象(350)建立安全级别;
提供一个二级表(430),用来转译虚拟内存地址,以引导到物理内存地址;
使用所述安全级别执行多表内存访问以执行一个相关于执行所述软件对象(350)的内存访问,其中使用所述安全级别执行多表内存访问包括:建立所述二级表(430),确定是否收到所述内存访问请求,根据所述内存访问请求执行多表内存访问,及如果收到所述内存访问请求,根据所述多表内存访问允许内存访问;以及
执行相关于执行该软件对象(350)的功能;
其中设立所述二级表(430)包括:
将物理内存(345)划分成为多个区段;
从该二级表(430)确定至少其中一个省略区段,和至少其中一个未省略的区段;
指定对该省略区段的缺省安全级别;
指定对该未省略区段的缺省安全级别;以及
将该至少一个指定的区段与虚拟内存相关联;
其中根据所述内存访问请求执行多表内存访问包括:
确定对应于该二级表(430)中区段的至少一个安全级别;
响应于执行该软件对象(350),验证执行安全级别与相关联访问区段的安全级别之间的匹配;
根据该二级表(430)响应于该执行安全级别和该相关联的访问区段的安全级别之间的匹配,而确定虚拟内存地址;以及
对应于该虚拟内存地址定位物理内存位置。
2. 如权利要求1所述的方法,其中对于该软件对象(350)建立安全级别进一步包括,指定相关于至少一部分内存的内存访问的安全级别。
3. 如权利要求1所述的方法,其中确定对应于该二级表(430)中区段的至少一个安全级别,包括:
从虚拟内存表(410)确定物理地址(553);
根据该物理地址(553),确定执行的区段;以及
根据确定的执行区段,定义当前的安全级别。
4. 一种用来执行虚拟内存访问的装置,其包括:
连接到总线(315)的处理器(310);
将至少一个软件对象(350)连接到该处理器(310)的装置;
内存单元(340);以及
连接到总线(315)和内存单元(340)的内存访问接口(320),该内存访问接口(320)包括虚拟内存访问表(410)和与该虚拟内存访问表(410)连接的二级表(430),该内存访问接口(320)响应于该处理器(310)执行该软件对象(350),使用该虚拟内存访问表(410)和该二级表(430)来关联到一个物理地址以提供内存访问以及根据至少一个安全级别而向所述处理器(310)提供一个与所述物理地址相关的多级别表内存访问。
5. 如权利要求4所述的装置,其中该内存访问接口(320)提供虚拟内存寻址配置,根据安全级别来访问该内存单元(340)的至少一部分。
6. 一种可处理及执行计算机程序的计算机装置,该计算机装置包括:
用于执行软件对象(350)的模块;
用于关联物理地址以执行一个相关于执行所述软件对象(350)的内存访问的模块;
用于使用所述物理地址为该软件对象(350)建立安全级别的模块;
用于建立二级表(430)的模块;
用于根据该软件对象(350)的执行而接收内存访问请求的模块;
用于确定对应于该二级表(430)中的区段的至少一个安全级别的模块;
用于响应于执行该软件对象(350)而验证执行安全级别与相关联访问区段的安全级别之间的匹配的模块;
用于根据该二级表(430)响应于该执行安全级别和相关联该访问区段的该安全级别之间的匹配而确定虚拟内存地址的模块;以及
用于定位对应于该虚拟内存地址的物理内存位置以及根据定位该物理内存位置而访问内存的一部分的模块。
7. 如权利要求6所述的可处理及执行计算机程序的计算机装置,其中该用于确定对应于该二级表(430)中区段的至少一个安全级别的模块是用以:
从虚拟内存表(410),确定物理地址(553);
根据该物理地址(553),确定执行的区段;以及
根据确定该执行的区段,定义当前安全级别。
CNB028217306A 2001-10-31 2002-08-09 用基于物理地址的安全配置确定对象安全的方法及装置 Expired - Fee Related CN100424659C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/999,881 US20040064723A1 (en) 2001-10-31 2001-10-31 Method and apparatus for physical address-based security to determine target security
US09/999,881 2001-10-31

Publications (2)

Publication Number Publication Date
CN1578946A CN1578946A (zh) 2005-02-09
CN100424659C true CN100424659C (zh) 2008-10-08

Family

ID=25546734

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028217306A Expired - Fee Related CN100424659C (zh) 2001-10-31 2002-08-09 用基于物理地址的安全配置确定对象安全的方法及装置

Country Status (9)

Country Link
US (1) US20040064723A1 (zh)
EP (1) EP1440373B1 (zh)
JP (1) JP2005508039A (zh)
KR (1) KR100931706B1 (zh)
CN (1) CN100424659C (zh)
AU (1) AU2002324662A1 (zh)
DE (1) DE60237909D1 (zh)
TW (1) TW589530B (zh)
WO (1) WO2003038573A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707409B2 (en) * 2002-04-30 2010-04-27 Kt Corporation Method and system for authenticating software
US6785790B1 (en) * 2002-05-29 2004-08-31 Advanced Micro Devices, Inc. Method and apparatus for storing and retrieving security attributes
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
US20060090136A1 (en) * 2004-10-01 2006-04-27 Microsoft Corporation Methods and apparatus for implementing a virtualized computer system
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
CN102460400B (zh) * 2009-06-29 2014-09-24 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
US9465946B2 (en) 2012-06-01 2016-10-11 Intel Corporation Identification and execution of subsets of a plurality of instructions in a more secure execution environment
US8812873B2 (en) 2012-09-26 2014-08-19 Intel Corporation Secure execution of a computer program using binary translators
KR102017828B1 (ko) 2012-10-19 2019-09-03 삼성전자 주식회사 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
US9389793B2 (en) 2014-03-06 2016-07-12 Freescale Semiconductor, Inc. Trusted execution and access protection for embedded memory
DE102014212018A1 (de) * 2014-06-23 2015-12-24 Continental Teves Ag & Co. Ohg Verfahren und Schaltkreis zur Vermeidung von Speicherschutzverletzungen
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US9703623B2 (en) * 2014-11-11 2017-07-11 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Adjusting the use of a chip/socket having a damaged pin
JP6838223B2 (ja) * 2016-11-02 2021-03-03 日立Astemo株式会社 車両制御装置
CN107562514B (zh) * 2017-08-03 2020-11-24 致象尔微电子科技(上海)有限公司 一种物理内存访问控制与隔离方法
CN107562515B (zh) * 2017-08-04 2021-09-07 海光信息技术股份有限公司 一种在虚拟化技术中管理内存的方法
CN107516052B (zh) * 2017-08-14 2020-11-13 海光信息技术有限公司 一种内存访问隔离方法
US10956084B2 (en) * 2018-05-04 2021-03-23 International Business Machines Corporation Drive utilization in multi-tiered systems with read-intensive flash
US11087028B2 (en) * 2018-09-04 2021-08-10 International Business Machines Corporation Multi-layered data security in mobile personal computing devices
CN112528345A (zh) * 2019-09-18 2021-03-19 华为技术有限公司 通信方法、装置、计算机可读存储介质和芯片

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1289968A (zh) * 2000-11-17 2001-04-04 后健慈 控制内存记忆页存取属性的方法及其架构
GB2356469A (en) * 1999-11-17 2001-05-23 Motorola Ltd Portable data carrier memory management system and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US5293597A (en) * 1987-03-09 1994-03-08 At&T Bell Laboratories Concurrent context memory management unit
JPH01175057A (ja) * 1987-12-28 1989-07-11 Toshiba Corp セキュリティの動的管理方法
US4926476A (en) * 1989-02-03 1990-05-15 Motorola, Inc. Method and apparatus for secure execution of untrusted software
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5802590A (en) * 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
JP4522548B2 (ja) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 アクセス監視装置及びアクセス監視方法
US6694457B2 (en) * 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2356469A (en) * 1999-11-17 2001-05-23 Motorola Ltd Portable data carrier memory management system and method
CN1289968A (zh) * 2000-11-17 2001-04-04 后健慈 控制内存记忆页存取属性的方法及其架构

Also Published As

Publication number Publication date
WO2003038573A3 (en) 2003-12-24
CN1578946A (zh) 2005-02-09
EP1440373A2 (en) 2004-07-28
KR100931706B1 (ko) 2009-12-14
AU2002324662A1 (en) 2003-05-12
WO2003038573A2 (en) 2003-05-08
DE60237909D1 (de) 2010-11-18
EP1440373B1 (en) 2010-10-06
TW589530B (en) 2004-06-01
KR20050018630A (ko) 2005-02-23
US20040064723A1 (en) 2004-04-01
JP2005508039A (ja) 2005-03-24

Similar Documents

Publication Publication Date Title
CN100424659C (zh) 用基于物理地址的安全配置确定对象安全的方法及装置
CA1266532A (en) Method to share copy on write segment for mapped files
US5835760A (en) Method and arrangement for providing BIOS to a host computer
CN101520753B (zh) 数据处理设备和控制虚拟机对安全存储器的访问的方法
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
CN103383667A (zh) 存储器保护电路、处理单元和存储器保护方法
US8601229B2 (en) Secure memory access system and method
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US20030046492A1 (en) Configurable memory array
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
US6725345B2 (en) Object-oriented program with a memory accessing function
JPH0296246A (ja) 論理プロセッサ設備を供なったデータプロセッシングシステム内で論理システムの起動を制御する装置
WO2012018906A1 (en) Processor support for filling memory regions
US7178014B2 (en) Method and apparatus for using a memory region to pass parameters between a run time environment and SMM handler
GB2356469A (en) Portable data carrier memory management system and method
KR100941743B1 (ko) 타겟 보안을 이용한 입력/출력 디바이스들의 다중-테이블액세싱을 위한 방법 및 장치
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
US7228406B2 (en) Interacting with optional read-only memory
US7017035B2 (en) Method and apparatus for using an ACPI NVS memory region as an alternative CMOS information area
US7389427B1 (en) Mechanism to secure computer output from software attack using isolated execution
US7533233B2 (en) Accommodating multiple operating systems and memory sizes on IA-32 platforms
EP1692592B1 (en) Method to control the access in a flash memory and system for the implementation of such a method
US6560698B1 (en) Register change summary resource
EP0389886B1 (en) Ring reduction logic mechanism
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法

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
ASS Succession or assignment of patent right

Owner name: ADVANCED MICRO DEVICES INC

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES INC.

Effective date: 20100709

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: GRAND CAYMAN ISLAND RITISH CAYMAN ISLANDS

TR01 Transfer of patent right

Effective date of registration: 20100709

Address after: Grand Cayman, Cayman Islands

Patentee after: Globalfoundries Semiconductor Inc.

Address before: American California

Patentee before: Advanced Micro Devices Inc.

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

Granted publication date: 20081008

Termination date: 20130809