CN1740991B - 使用地址比特来发送地址空间中数据安全属性的信号的系统和方法 - Google Patents

使用地址比特来发送地址空间中数据安全属性的信号的系统和方法 Download PDF

Info

Publication number
CN1740991B
CN1740991B CN2005100895031A CN200510089503A CN1740991B CN 1740991 B CN1740991 B CN 1740991B CN 2005100895031 A CN2005100895031 A CN 2005100895031A CN 200510089503 A CN200510089503 A CN 200510089503A CN 1740991 B CN1740991 B CN 1740991B
Authority
CN
China
Prior art keywords
data
equipment
address
system storage
storage
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
CN2005100895031A
Other languages
English (en)
Other versions
CN1740991A (zh
Inventor
D·R·莫瑞斯
J·A·安德鲁斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1740991A publication Critical patent/CN1740991A/zh
Application granted granted Critical
Publication of CN1740991B publication Critical patent/CN1740991B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

一完整性控制系统使用地址比特来启用对存储于系统存储器中数据的加密和/或保护。加密和保护机制通过数据总线与CPU耦合,并通过数据总线与存储器耦合。确定要存储的或从系统存储器检索的数据的位置的地址总线具有多个地址线。地址线的至少之一启用加密机制,以在存储于存储器中之前加密数据并在从存储器检索之后解密数据。另一地址线启用保护机制以生成数据的散列。散列被存储并被用来确定数据在存储于系统存储器中时是否被改变。

Description

使用地址比特来发送地址空间中数据安全属性的信号的系统和方法
相关申请
本申请涉及以下共同受让的共同待批美国专利申请:申请号_____(MSFT-3858/308767.01)于2004年8月27日提交的题为“System and Method for UsingAddress Bits to Form an Index into Secure Memory”(“使用地址比特形成安全存储器索引的系统和方法”);申请号(MSFT-3859/308768.01)于2004年8月27日提交的题为“System and Method for Using Address Bits to Affect Encryption”(“使用地址比特影响加密的系统和方法”);申请号______(MSFT-3860/308769.01)于2004年8月27日提交的题为“System and Method for Using AddressLines to Control Memory Usage”(“使用地址线控制存储器使用的系统和方法”);申请号______(MSFT-3861/308770.01)于2004年8月27日提交的题为“Systemand Method for Applying Security to Memory Reads and Writes”(“将安全应用于存储器读写的系统和方法”)。
技术领域
本发明一般涉及计算机系统,尤其涉及用于在计算机系统内安全执行程序代码的系统和方法。
背景技术
当今的计算机系统常常遭受可破坏或中止计算机系统正常操作的各种攻击。计算机病毒、计算机网络“蠕虫”、以及特洛伊木马程序是不同形式攻击的示例。攻击也可直接来自计算机系统的恶意用户。这些攻击常取试图更改由计算机系统执行的现有程序代码的形式,或者试图对在计算机系统内正常程序执行的不同阶段置入新的未经授权程序代码的形式。用于防止这样的有害攻击的系统和方法正在变得越来越重要。
典型的计算机系统包括计算机硬件、操作系统、以及一个或多个应用程序。计算机硬件通常包括处理器(有时也称为“中央处理单元”或“CPU”)、存储器、以及便于各个组件之间通信的一个或多个系统总线。典型计算机系统的其它组件包括输入/输出控制器、存储器控制器、图形处理单元、音频控制器和电源。
这样的系统通常具有少量的片内(on-chip)存储器(称为高速缓冲存储器)以及多得多的片外(off-chip)存储器(称为系统存储器)。这种系统中的片外存储器一般被视为不可靠的(高速缓冲存储器也被视为不可靠,但通过防止攻击者读取高速缓冲存储器内容的硬件机制对它保护要容易得多)。即,存储在较大系统存储器中的数据易受攻击,其中数据可以数据所有者不希望的方式被轻易改变。这样的攻击将使程序以不希望的方式操作,或使副本保护方案受挫。
已开发了众多确保数据从系统存储器中检索并受保护的系统。特别地,系统已采用强化的加密技术以及检测存储器中数据的变化的其它篡改显现机制。
操作系统可被视为应用程序和计算机系统底层硬件之间的接口。操作系统通常包括在计算机系统处理器上执行的并由各种应用程序管理计算机系统的物理组件及其使用的各种软件例程。
计算机系统的处理器常包括通过操作系统和任何应用程序来管理存储器的使用的存储器管理单元。对计算机系统的许多攻击是以存储器中的程序为目标。例如,执行安全检查代码的各部分可通过当其存储在存储器时简单地替换该程序的一部分而被击败。其它黑客可更改计算机游戏并改变行为。例如,考虑在多人游戏中发现一弱点的情形,其中通过在游戏者本地机器上改变代码可使游戏者获取不公平的好处。这样的不公平好处可破坏否则会流行的游戏的流行度。所有这些考虑表明,防止对程序代码的未经授权更改是极为需要的。
发明内容
本发明提供维护存储于系统存储器中数据的安全性的安全计算环境。该系统包括一CPU,以及通过数据总线与CPU和存储器耦合的一安全机制。地址总线确定数据在系统存储器中的存储单元,并具有多条地址线。在数据存储于存储器之前地址线的至少之一启用安全机制以保护数据。CPU和安全机制可在同一集成电路上。安全机制可包括一加密和解密机制。该系统还可包括作为数据函数生成一完整性检查值的一完整性检查机制。另一地址线可启用完整性检查机制。完整性检查值最好是创建减小了大小值的数据的散列(以加密形式、明码形式或两者的组合),它可用于确定数据是否在存储于系统存储器期间被更改。完整性检查值最好存储在也可驻留于与CPU一起的同一集成电路的安全存储器中。
附图说明
结合附图阅读前面的发明内容和以下说明性实施例的详细描述,能得到更好的理解。为了说明本发明各实施例,在附图中示出本发明的示例性结构;然而,本发明并不限于所揭示的特定方法和装置。在附图中:
图1是本发明各方面可在其中实现的示例性计算机环境的框图;
图2是示出被结合到诸如图1计算环境的计算环境内的安全引擎的框图;
图3是示出在一示例计算环境中地址空间的转换的框图;
图4是进一步示出从有效地址到虚拟地址的转换的各方面的框图;
图5是进一步示出从虚拟地址到实地址的转换的各方面的框图;
图6是进一步示出其中地址比特被设置成表示计算系统安全特征的本发明各方面的框图;
图7是示出用于加密和保护存储于存储器内的数据的安全引擎的方面的框图;
图8是示出用于解密和检查存储于存储器内的数据的安全引擎的方面的框图。
具体实施方式
本发明提供有助于防止对计算机系统的攻击的安全计算环境,这些攻击包括逆向工程、分解、更改或以其它方式改变包括计算机系统存储器中程序代码的数据。本发明可在包括不受信任存储器和处理器的计算机系统或计算装置中体现,该处理器具有包括加密和/或校验机制的安全引擎。系统使用地址比特来向安全引擎发送信号以在将数据存储于系统存储器之前对数据执行安全操作。地址比特可指示例如应对系统存储器的特定页加密。此外,地址比特可指示例如应保护存储器的特定页(即可校验的未更改的页)。在保护情形中,是数据函数的诸如散列的校验信息最好存储于防篡改的安全存储器中。安全存储器可被视为驻留于安全区域中。通常,安全区域通过将安全存储器置于与CPU相同的集成电路上来提供。从不受信任系统存储器中检索校验信息并且将其与已存储的校验信息比较之后,校验信息从数据中复制。信息之间的差异指示该数据已经被改变。
图1示出本发明的一些方面可在其中实现的多媒体控制台100的功能组件。多媒体控制台100具有中央处理单元(CPU)101,包括1级缓存区102、2级缓存区104、以及MMU(存储器管理单元)103。1级缓存区102和2级缓存区104临时存储数据并因此减少存储器访问周期数,从而改进了处理速度和输入输出吞吐量。可提供具有一个以上内核的CPU 101,以及因之而附加的1级和2级缓存区102和104。MMU 103负责处理由CPU请求的存储器访问。由MMU 103执行的其它功能包括从虚拟地址到物理地址的翻译(即虚拟存储器管理)、存储器管理、高速缓存控制等。
图形处理单元(GPU)108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速和高分辨率图形处理的视频处理管道。通过总线数据从图形处理单元108被运送到视频编码器/视频编解码器114。视频处理管线将数据输出到A/V(音频/视频)端口140用于传送到电视和其它显示器。存储器控制器110被连接到GPU108以便于处理器对各类存储器112的访问,诸如但不限于RAM(随机存取存储器)。
多媒体控制台100包括最好在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一USB主控制器126、第二USB控制器128、以及前面板I/O子组合130。USB控制器126和128用作外围控制器142(1)-142(2)、无线适配器148、以及外部存储器装置146(例如闪存、外部CD/DVD ROM盘、可移动介质等)的主机。网络接口124和/或无线适配器148提供对网络(例如因特网、家庭网络等)的访问,并可以是各种各样有线或无线接口组件的任一种,包括以太卡、调制解调器、蓝牙模块、电缆调制解调器等等。
例如闪存的非易失性存储器143被提供用以存储在启动过程期间载入的应用程序数据。介质驱动器144被提供并可包括DVD/CD驱动器、硬盘驱动器、或其它可移动介质的驱动器。介质驱动器144可在多媒体控制台100内部或外部。应用程序数据可通过介质驱动器144访问用于由多媒体控制台100执行、回放等。介质驱动器144通过诸如串行ATA总线或其它高速连接(例如IEEE 1394)的总线连接到I/O控制器120。
系统管理控制器122提供各种与确保多媒体控制台100可用性相关的服务功能。音频处理单元123以及音频编/解码器136形成具有高保真和立体声处理的相应音频处理管道。音频数据通过通信链接在音频处理单元123和音频编/解码器126之间传送。音频处理管道将数据输出到A/V端口140用于由具有音频能力的外部音频播放器或装置复制。
前面板I/O子组合130支持电源按钮150、弹出按钮152、以及任何LED(发光二极管)或在多媒体控制台100外表面上展现的其它指示器的功能。系统电源模块136向多媒体控制台100的组件提供电源。电扇138冷却多媒体控制台100内的电路。
CPU 101、GPU 108、存储器控制器110以及多媒体控制台100内的各个其它组件通过一个或多个总线相互连接,包括串行和并行总线、存储器总线、外围总线、以及使用各种总线体系结构的任一种的处理器或本地总线。
当多媒体控制台接通电源时,程序代码和数据可从非易失性存储器143载入存储器112和/或高速缓存102、104,并在处理器101上执行。应用程序代码可呈现当导航到多媒体控制台100上可用的不同介质类型时提供一致用户体验的图形用户界面。在操作中,包含在媒介驱动器144内的应用程序和/或其它介质可被启动或从介质驱动器144播放,以向多媒体控制台100提供其它功能。
通过简单地将系统连接到电视或其它显示屏,多媒体控制台100可作为单机系统操作。在该单机模式中,多媒体控制台100使一个或多个用户能与该系统交互、观看电影、或收听音乐。然而,结合通过网络接口124或无线适配器148可用的宽带连接,多媒体控制台100还可作为更大网络区域的参与者而操作。
图2示出图1系统的其它方面,其中本发明的各个组件被集成以提供防止代码改变、逆向工程、篡改等的安全特征。集成装置20包括CPU 101、MMU 103、高速缓存104、安全引擎105和总线接口107。各个组件通过地址总线28和数据总线26相互连接。MMU 103控制存储于高速缓存104的存储器,以确保高速缓存行(例如22)按CPU 101所需地移入移出高速缓存104。存储于高速缓存104的数据由CPU 101在其上操作,因而以明码存储。根据本发明一方面,当高速缓存行存储于系统存储器112时,数据通过安全引擎105移动并可在它移入移除存储器112时被加密和解密。图2示出高速缓存行22以明码存储于高速缓存104中而当存储于存储器112中时则被加密成高速缓存行22’。
系统存储器112被视为不受信任。即,攻击者可危及它的安全并可发现和改变其全部内容。此外,可监视地址以及将总线接口107连接到系统存储器112的数据总线28、26。另一方面,集成装置20被视为是安全的。在装置20内部的总线28、26不能被监视。高速缓存104在安全引擎105和CPU 101之间,并被视为是受信任的。高速缓存104对系统存储器的所有写入都由安全引擎105保护,如下进行更全面描述。除系统RAM 112之外,系统还包含被视为受信任的安全存储器23。最好该安全存储器23在集成装置20内以防止其总线28、26被监视。
存储器管理单元103处理确保所必需的数据在高速缓存104内从而CPU 101可继续有效地操作。为此,当所需指令和数据在存储器112中时MMU 103与高速缓存104交换数据。根据本发明一方面,安全引擎105确定安全级别以应用于要在高速缓存104和系统存储器112之间移动的数据。例如,高速缓存行22移到存储器中变为加密高速缓存行22’。
由于移到系统存储器112的高速缓存104的每一行都有可能具有应用于它的安全措施,重要的是尽可能快地应用安全措施以避免对整个系统的性能有很大打击。换言之,需要对写入不受信任系统存储器112的数据提供安全措施但又不想为添加的安全措施付出重大性能损失的代价。本发明一方面是要使用地址总线来提供一种控制安全措施的应用的有效机制。最终,示例系统所采用的存储器管理方案有助于理解如何使用寻址机制来确定安全措施的应用。存储器管理通常利用把程序地址空间翻译成物理地址空间的各种寻址方案。PowerPC系统所使用的一种这样的寻址方案使用从有效地址到实地址的转换。图3有助于示出在PowerPC环境中执行的地址翻译。其它寻址方案可在适当时用于不同处理器环境。
参照图3,通过诸如段后援缓冲器304和翻译后援缓冲器308的一个或多个地址转换表格,有效地址302被转换成实地址310。通常程序在相连的地址空间中(称为有效地址空间)操作;然而,物理地址空间必须提供并由众多应用程序共享。这样,物理地址空间由系统管理并可包含任意数量的不同程序或程序部分。为了解决各个程序的需要,系统使程序能在显现为相连但由跟踪程序和数据的物理位置的存储器管理单元管理的地址空间中操作。该程序在被称为有效地址空间的空间中操作。该有效地址空间被翻译成虚拟的地址空间(即可同时容纳所有程序的寻址连续体)。
有效地址是由CPU 101生成的用于提取指令或用于数据访问的地址。地址翻译机制试图将有效地址302转换成随后用于访问存储器112的实地址310。地址翻译中的第一步骤是将有效地址302转换成虚拟地址306。第二步骤是将虚拟地址306转换成实地址310。图4进一步提供了从有效地址302转换成虚拟地址306的工程的细节。段后援缓冲器(SLB)304指定有效段ID(ESID)402和虚拟段ID(VSID)410之间的映射。SLB 304条目的数量是实现相关的。SLB 304的内容通常由操作系统管理。表格304中每个SLB条目将一ESID 402映射为一VSID 410。然后VSID组成虚拟地址306中的较高位比特。剩下的较低位比特,页地址信息404和字节地址信息406,被直接从有效地址302映射到虚拟地址306。
地址翻译中的第二个步骤是把虚拟地址翻译成实地址。虚拟到实的翻译使用了页表格308’。在概念上,页表格308’由地址再定位硬件搜索以翻译每个基址。由于性能的原因,硬件通常保留持有最近使用的页表格条目的翻译后援缓冲器(TLB)308。TLB 308在搜索页表格308’之前搜索。或者,页表格可以不是表格而是生成TLB条目所需的算法。在该布置中,当地址翻译未在TLB 308中发现时,可生成一个或多个TLB条目并用于更新TLB 308中的条目。
图5提供了从虚拟到实的地址映射的更多细节。页表格308’(如上所述该页表格的一部分被高速缓存于TLB 308中)是指定虚拟页号和实页号之间映射的大小可变的数据结构。页表格308’的大小通常是4KB的倍数,其起始地址是其大小的倍数且位于具有有限访问的存储器中,即它仅可由操作系统访问。VSID 410和虚拟页号404形成对页表格308’的索引。然后页表格308’具有一相应的实页号502。该实页号502形成实地址的较高位比特。字节地址信息406直接从虚拟地址306中翻译。
图6示出从虚拟到实的页号映射的操作。虚拟页号306被用来查找一相应的页表格条目602。例如502a、502b、502c的每个页表格条目包含一实页号和页保护比特604。页保护比特604指示例如是否有一页可读、写等。页表格条目的26个高位比特(即0-25)形成实页号502。除形成实页地址之外,高位比特还提供对该页安全级别的指示。注意,比特0-11中的各个比特(比特606)提供页是否加密、受保护或不加密、不保护等的指示。此外,比特提供用于加密和保护存储器页的其它信息。存储在实页号中的包括安全比特的信息形成地址310的一部分。
参看图7,根据本发明一方面进一步示出安全系统。图7提供示出由安全系统执行的部分功能的框图。然而,实现的各方面可以变化,例如判决框718可被实现为一逻辑电路。其它特征也可用各种方法实现。无论如何,该图用来示出根据本发明各方面执行的一般功能。
如图所示,比特0和1指示寻址单元是受保护的还是加密的。在本说明性实施例中,保护被控制在页级别上,因为单个页表格条目被单页中的所有存储器地址所共享。这样,所有那些存储器单元都属于同一安全级别。如果比特0被设置,则启用保护。类似地,如果比特1被设置,则启用加密。
如果未启用加密,则启用门722而禁用门720,且数据700作为明文块724被存储于存储器112中。另一方面,如果启用了加密,则数据700作为明文726被移到加密引擎714中。例如密钥等的安全引擎状态710由加密引擎714应用以产生密文块726’。所应用的加密技术可以是诸如AES或其某些变体的众所周知的加密算法的任一种。相关要点是加密引擎由存储于页表格中的地址信息驱动。这样,存储器页可被设置为直接通过地址信息加密。
如果保护被启用(可加密或不加密),则确定安全存储器的偏移量并还启用数据散列。该安全存储器偏移量可以是地址信息的组合。例如,存储在例如比特3-8的较高位比特中的比特与较低位比特26-34组合来提供安全存储器的偏移量。该偏移量提供了完整性检查值应被存储在安全存储器中的地方。除了安全存储器偏移量,散列函数也应用于数据700。散列可以是密文、明文或两者的函数。该特定散列函数可以是安全散列函数,并可以是数据700的但在大小上有所缩减的任一函数。经计算的散列728被存储在安全存储器716中由安全存储器偏移712指定的位置中。此后,当数据(如密文726’或明文724)被存储在存储器112中(不安全存储器)时,散列值可被用来确定存储器112中的数据是否已被改变。散列值在数据从存储器112中检索时重新计算,并与所存储的散列值相比较以确定一致性。不一致的值将指示数据在存储于存储器112中时有未经授权的改变。
图8示出从存储器112检索加密和/或保护数据的逆向操作。此时加密数据726’或明文数据724从存储器112中检索。再一次,实地址中的高位比特指示要应用的安全措施类型。如果比特1被设置,则数据作为密文通过门820传送(即先前已被存储为密文)。如果比特1未设置,则明文724通过门822传送并存储于高速缓存104中。由设置比特1指示的密文726’还被送往解密引擎714,其中它被解密为明文726并存储于高速缓存104中。
如果保护比特0被设置,则对从存储器112检索的数据计算散列值802。在此示例中,对明文726的数据计算散列;然而,散列函数可被应用于密文数据726’和/或明文数据。此外,可使用不加密的保护方案。经计算的散列802与从由安全存储器偏移量712所指向的安全存储器716中检索的已存储的散列728比较。如果已存储的散列728与计算散列不相同,则指示存储器已被更改的安全例外808生成。
再参看图2,将总线接口连接到系统存储器112的地址总线28最好截去用来寻址存储器112的高位比特。因为它是用来寻址存储器112的实际地址,所以该地址被称为物理地址。在所述示例实现中,最好截去12个高位比特(0-11)。该截短将使比特12-41组成物理地址。
本发明提供用于确保存储于系统存储器112的数据的完整性和安全性的一种系统和方法。通过采用地址比特来指示要应用于存储在存储器112的数据的安全措施。安全措施可直接存储于地址翻译表格,而无需使数据与特定安全措施相关联的独立表格。
以上系统和方法仅是示例描述,并非旨在表示需要一特定的寻址方案或处理器体系结构。相反,该示例旨在指示使用地址比特来一般地确定安全措施。
以下所述的本发明各实施例的元件可通过硬件、固件、软件或其任意组合来实现。术语硬件通常指具有诸如电子、电磁、光学、电光学、机械、机电部件的物理结构的元件,而术语软件一般指逻辑结构、方法、过程、程序、例程、进程、算法、公式、函数、表达式等。术语固件一般指在硬件结构中(例如闪存、ROM、EROM)实现或体现的逻辑结构、方法、过程、程序、例程、进程、算法、公式、函数、表达式等。固件的示例可包括微码、可写控制存储器、以及微编程结构。当以软件或固件实现时,本发明实施例的元件实质上是执行必须任务的代码分段。软件/固件可包括执行本发明一实施例中所述操作的实代码,或仿真或模拟操作的代码。程序或代码分段可被存储在处理器或机器可访问介质中,或由体现为载波的计算机数据信号或载波信号调制的信号经传输介质传送。“处理器可读或可访问介质”或“机器可读或可访问介质”可包括可存储、传输或传送信息的任何介质。处理器可读或机器可访问介质的示例包括电子电路、半导体存储器装置、只读存储器(ROM)、闪存、可擦写ROM(EROM)、软盘、光盘(CD)ROM、光盘、硬盘、光纤介质、射频(RF)链接等。计算机数据信号可包括可在诸如电子网络信道、光纤、空气、电磁波、RF链接等的传输介质上传播的任何信号。代码分段可经诸如因特网、内联网等的计算机网络下载。机器可访问介质可被体现为一制造品。机器可访问介质可包括当由机器访问时使机器执行下述操作的数据。机器可访问介质还可包括内嵌程序代码。程序代码可包括执行下述操作的机器可读代码。术语“数据”在此指为机器可读目的而编码的任意类型的信息。因此,它可包括程序、代码、数据、文件等。
本发明实施例的全部或部分可通过硬件、软件、或固件、或其任意组合实现。硬件、软件、或固件硬件可具有彼此耦合的若干模块。硬件模块可通过机械、电子、光学、电磁、或任何物理连接与另一模块耦合。软件模块通过函数、过程、子程序、或子例程调用、跳转、链接、参数、变量、以及实参传递、函数返回等与另一模块耦合。软件模块与另一模块耦合以接收变量、形参、实参、指针等和/或生成或传送结果、经更新变量、指针等。固件模块通过以上硬件和软件耦合方法的任意结合与另一模块耦合。硬件、软件、或固件模块可与另一硬件、软件、或固件模块的任一模块耦合。模块还可以是软件驱动程序或接口以与运行于该平台上的操作系统交互。模块还可以是硬件驱动程序以配置、设置、初始化、从硬件装置收发数据。装置可包括硬件、软件和固件模块的任意组合。
本发明各实施例可以被描述为通常陈述为流程图、流程表、结构图、或框图的过程。尽管流程图可将操作描述为顺序过程,许多操作可并行或并发执行。此外,操作的顺序可重排。当其操作完成时过程终止。
本领域技术人员将容易理解,在示例性实施例中许多其它更改是可能的,而未在本质上背离本发明的新颖性教学和优点。任何这样的更改旨在被包括于由以下示例性权利要求所定义的本发明范围中。

Claims (26)

1.一种用于将数据存储在系统存储器中的设备,所述系统存储器在所述设备外,其特征在于,包括:
一CPU;
一安全装置,它通过在所述设备内的数据总线与所述CPU耦合,并通过在所述设备内的数据总线与所述系统存储器耦合,所述安全装置和所述CPU在同一集成电路上;以及
具有多个地址线的一地址总线,所述地址总线将所述CPU和所述安全装置连接到所述系统存储器,所述地址线的至少之一启用所述安全装置以在存储于所述系统存储器之前提供对所述数据的安全措施。
2.如权利要求1所述的设备,其特征在于,设置在所述地址线上的值由所述设备内的存储器管理单元确定。
3.如权利要求2所述的设备,其特征在于,所述值是由所述存储器管理单元维护的表格的函数。
4.如权利要求1所述的设备,其特征在于,所述安全装置包括一加密装置。
5.如权利要求1所述的设备,其特征在于,所述安全装置包括按照所述数据的函数生成完整性检查值的完整性检查装置。
6.如权利要求5所述的设备,其特征在于,所述完整性检查装置执行一散列函数。
7.如权利要求5所述的设备,其特征在于,所述完整性检查值被存储于一安全存储器中。
8.如权利要求7所述的设备,其特征在于,所述安全存储器在与所述CPU相同的同一集成电路上。
9.如权利要求4所述的设备,其特征在于,所述数据在从所述设备内的高速缓存移动之后以及存储到所述系统存储器之前被加密。
10.如权利要求7所述的设备,其特征在于,所述地址线提供对所述完整性检查值存储在安全存储器的地方的指示。
11.如权利要求7所述的设备,其特征在于,所述完整性检查值为所述设备之内的高速缓冲存储器的一行而生成。
12.如权利要求4所述的设备,其特征在于,还包括通过数据总线与所述CPU耦合并通过数据总线与所述系统存储器耦合的一解密装置,其中启用所述加密装置以在存储于所述系统存储器之前加密数据的所述地址线的至少之一,被用来启用在从所述系统存储器检索所述数据期间对所述数据的解密。
13.如权利要求6所述的设备,其特征在于,所述完整性检查值与在从所述系统存储器检索所述数据期间生成的第二完整性检查值比较。
14.如权利要求1所述的设备,其特征在于,启用所述安全装置的至少一个地址线是一高位地址线。
15.一种用于将数据存储在系统存储器中的方法,其特征在于,包括:
提供一安全装置,它通过数据总线与CPU通信,并通过数据总线与所述系统存储器通信,所述安全装置与所述CPU在同一集成电路上;
在所述安全装置处从具有多个地址线的地址总线的至少一个地址线中接收一启用信号;以及
在将所述数据存储到所述系统存储器之前,响应于所述启用信号将安全措施应用于所述数据。
16.如权利要求15所述的方法,其特征在于,所述启用信号由存储器管理单元确定。
17.如权利要求15所述的方法,其特征在于,所述安全装置包括一加密装置,且其中所应用的安全措施是加密。
18.如权利要求15所述的方法,其特征在于,所述安全装置包括一完整性检查装置,且其中所应用的安全措施是按照所述数据的函数生成完整性检查值,且其中所述地址线的至少另一条启用所述完整性检查装置。
19.如权利要求18所述的方法,其特征在于,所述完整性检查装置执行一散列函数。
20.如权利要求18所述的方法,其特征在于,包括将所述完整性检查值存储于安全存储器中。
21.如权利要求20所述的方法,其特征在于,包括在与所述CPU相同的同一集成电路上提供所述安全存储器。
22.如权利要求17所述的方法,其特征在于,所述数据在从高速缓冲器移动之后以及存储到所述系统存储器之前被加密。
23.如权利要求20所述的方法,其特征在于,所述地址线提供了对所述完整性检查值存储在安全存储器的地方的指示。
24.如权利要求20所述的方法,其特征在于,所述完整性检查值为高速缓冲存储器的一行而生成。
25.如权利要求17所述的方法,其特征在于,还包括在从所述系统存储器检索所述数据期间解密数据。
26.如权利要求19所述的方法,其特征在于,还包括将所述完整性检查值与在从所述系统存储器检索所述数据期间生成的第二完整性检查值作比较。
CN2005100895031A 2004-08-27 2005-07-27 使用地址比特来发送地址空间中数据安全属性的信号的系统和方法 Expired - Fee Related CN1740991B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/928,970 US7444523B2 (en) 2004-08-27 2004-08-27 System and method for using address bits to signal security attributes of data in the address space
US10/928,970 2004-08-27

Publications (2)

Publication Number Publication Date
CN1740991A CN1740991A (zh) 2006-03-01
CN1740991B true CN1740991B (zh) 2010-10-27

Family

ID=35427583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100895031A Expired - Fee Related CN1740991B (zh) 2004-08-27 2005-07-27 使用地址比特来发送地址空间中数据安全属性的信号的系统和方法

Country Status (4)

Country Link
US (1) US7444523B2 (zh)
EP (1) EP1637960B1 (zh)
JP (1) JP4806226B2 (zh)
CN (1) CN1740991B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7904706B2 (en) * 2004-12-01 2011-03-08 Innovation First, Inc. System and method for processing encrypted source code updates
US7904943B2 (en) 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
CN101051892B (zh) * 2007-03-14 2010-05-26 江中尧 一种cpu专用数据的加密装置及方法
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8468365B2 (en) * 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
US8595510B2 (en) 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8181035B1 (en) 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8261085B1 (en) 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
CN103620617B (zh) * 2011-06-29 2016-08-17 英特尔公司 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备
JP2013088879A (ja) * 2011-10-13 2013-05-13 Kyocera Document Solutions Inc 情報処理装置
US8954755B2 (en) 2012-01-23 2015-02-10 International Business Machines Corporation Memory address translation-based data encryption with integrated encryption engine
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9400890B2 (en) * 2012-08-10 2016-07-26 Qualcomm Incorporated Method and devices for selective RAM scrambling
US8793506B2 (en) * 2012-08-31 2014-07-29 Intel Corporation Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9507961B2 (en) 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
KR102218202B1 (ko) * 2014-08-01 2021-02-23 삼성전자주식회사 반도체 장치
IL234956A (en) * 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
KR101786006B1 (ko) 2016-01-29 2017-10-17 한국과학기술원 머클 트리 기반 메모리 무결성 검증 방법 및 장치
EP3252651A1 (en) 2016-05-30 2017-12-06 Samsung Electronics Co., Ltd Computing system having an on-the-fly encryptor and an operating method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
CN1236132A (zh) * 1997-10-10 1999-11-24 通用仪器公司 应用块链接和块重新排序的带有外部存储器的安全处理器

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4930578B1 (zh) 1970-09-30 1974-08-14
US3668651A (en) 1970-12-30 1972-06-06 Ibm Working device code method of i/o control
US3829840A (en) 1972-07-24 1974-08-13 Ibm Virtual memory system
US3827029A (en) 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4476524A (en) 1981-07-02 1984-10-09 International Business Machines Corporation Page storage control methods and means
EP0186230A2 (en) 1984-12-21 1986-07-02 Koninklijke Philips Electronics N.V. Memory access controller with parallel checking of virtual address and action word
US4740916A (en) 1985-12-19 1988-04-26 International Business Machines Corporation Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus
US4771458A (en) 1987-03-12 1988-09-13 Zenith Electronics Corporation Secure data packet transmission system and method
JPH03141446A (ja) * 1989-10-27 1991-06-17 Hitachi Ltd メモリ保護回路
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5058164A (en) 1990-05-03 1991-10-15 National Semiconductor Corp. Encryption of streams of addressed information to be used for program code protection
US5233616A (en) 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
GB2251102B (en) 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5347428A (en) 1992-12-03 1994-09-13 Irvine Sensors Corporation Module comprising IC memory stack dedicated to and structurally combined with an IC microprocessor chip
US5634108A (en) 1993-11-30 1997-05-27 Unisys Corporation Single chip processing system utilizing general cache and microcode cache enabling simultaneous multiple functions
US6185546B1 (en) * 1995-10-04 2001-02-06 Intel Corporation Apparatus and method for providing secured communications
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5652793A (en) 1995-05-08 1997-07-29 Nvidia Corporation Method and apparatus for authenticating the use of software
US6151618A (en) 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6199163B1 (en) 1996-03-26 2001-03-06 Nec Corporation Hard disk password lock
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6026293A (en) 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
DE19642560A1 (de) 1996-10-15 1998-04-16 Siemens Ag Elektronische Datenverarbeitungsschaltung
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6021201A (en) * 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
DE69832082D1 (de) 1997-02-13 2005-12-01 Helbig Sr Sicherheitskoprozessor zur verbesserung der computersystemsicherheit
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
WO2000026791A2 (en) 1998-11-05 2000-05-11 Koninklijke Philips Electronics N.V. Secure memory management unit which uses multiple cryptographic algorithms
US7225333B2 (en) 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
JP4226760B2 (ja) * 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP4086445B2 (ja) 2000-03-09 2008-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報送信方法、ネットワーク・プロバイダ・サーバ、情報端末及び情報端末における方法
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7117373B1 (en) 2000-11-28 2006-10-03 Xilinx, Inc. Bitstream for configuring a PLD with encrypted design data
JP2002244757A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路
US7526795B2 (en) 2001-03-27 2009-04-28 Micron Technology, Inc. Data security for digital data storage
US20020147918A1 (en) 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7603703B2 (en) 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
US7526654B2 (en) 2001-10-16 2009-04-28 Marc Charbonneau Method and system for detecting a secure state of a computer system
US7272832B2 (en) 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US6745307B2 (en) 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US6735673B2 (en) 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7107459B2 (en) 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
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
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US8135962B2 (en) * 2002-03-27 2012-03-13 Globalfoundries Inc. System and method providing region-granular, hardware-controlled memory encryption
US6851056B2 (en) * 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US7266842B2 (en) 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US7139890B2 (en) 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
EP1510899B1 (en) * 2002-06-05 2011-12-07 Fujitsu Limited Memory management unit
RU2005115094A (ru) 2002-11-18 2006-01-20 Арм Лимитед (Gb) Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена
US8261063B2 (en) 2003-02-03 2012-09-04 Hewlett-Packard Development Company, L.P. Method and apparatus for managing a hierarchy of nodes
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US7111146B1 (en) 2003-06-27 2006-09-19 Transmeta Corporation Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
CN1236132A (zh) * 1997-10-10 1999-11-24 通用仪器公司 应用块链接和块重新排序的带有外部存储器的安全处理器

Also Published As

Publication number Publication date
JP2006065851A (ja) 2006-03-09
EP1637960A2 (en) 2006-03-22
EP1637960A3 (en) 2006-11-29
US7444523B2 (en) 2008-10-28
JP4806226B2 (ja) 2011-11-02
CN1740991A (zh) 2006-03-01
EP1637960B1 (en) 2019-09-25
US20060048221A1 (en) 2006-03-02

Similar Documents

Publication Publication Date Title
CN1740991B (zh) 使用地址比特来发送地址空间中数据安全属性的信号的系统和方法
US7822993B2 (en) System and method for using address bits to affect encryption
US7734926B2 (en) System and method for applying security to memory reads and writes
US10097349B2 (en) Systems and methods for protecting symmetric encryption keys
JP4876053B2 (ja) トラステッド・デバイス集積回路
KR20190075063A (ko) 처리 시스템에서의 직접 메모리 액세스 인가
US10237059B2 (en) Diversified instruction set processing to enhance security
CN110134619A (zh) 使用签名的地址验证
CN101231621B (zh) 隐藏存储器访问模式
CN103824032A (zh) 在微控制器中用于数据安全性处理的方法和装置
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
CN107562515A (zh) 一种在虚拟化技术中管理内存的方法
CN109144894B (zh) 基于数据冗余的内存访问模式保护方法
CN107526974B (zh) 一种信息密码保护装置和方法
JP2022512051A (ja) メモリ完全性チェックのための完全性ツリー
CN110825672A (zh) 用于联机加密处理的高性能自主硬件引擎
TWI797353B (zh) 動態密碼密鑰擴展之電路、方法及系統
CN106209346A (zh) 白盒密码技术交错查找表
US20230259660A1 (en) Integrity tree for memory security
CN107563226B (zh) 一种存储器控制器、处理器模块及密钥更新方法
US7356668B2 (en) System and method for using address bits to form an index into secure memory
US7653802B2 (en) System and method for using address lines to control memory usage
JP2005039864A (ja) ソフトウェアの保護機能付き情報処理装置およびソフトウェアの保護機能付き情報処理方法
GB2622065A (en) Counter integrity tree
US20130103953A1 (en) Apparatus and method for encrypting hard disk

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: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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

Granted publication date: 20101027

Termination date: 20200727

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