CN1197014C - 内部存储器型抗篡改处理器及保密方法 - Google Patents
内部存储器型抗篡改处理器及保密方法 Download PDFInfo
- Publication number
- CN1197014C CN1197014C CNB031074170A CN03107417A CN1197014C CN 1197014 C CN1197014 C CN 1197014C CN B031074170 A CNB031074170 A CN B031074170A CN 03107417 A CN03107417 A CN 03107417A CN 1197014 C CN1197014 C CN 1197014C
- Authority
- CN
- China
- Prior art keywords
- memory
- attribute
- task
- page
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 175
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 abstract description 21
- 238000004321 preservation Methods 0.000 abstract description 4
- 238000013523 data management Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Microcomputers (AREA)
Abstract
本发明的具有大容量内部存储器的抗篡改处理器及保密方法,能够在多任务环境下,实现防止不正当的改变的高效的内部数据管理。该抗篡改处理器具有:把用不同的密码键加密的多个程序分别译码的译码部件;用于以存储器页单位,把由译码部件译码的多个程序以普通代码存储的内部存储器;设定任务对访问对象的各存储器页要求的要求保密属性为排它的,并且存储起来的要求保密属性保存部件;对各存储器页,存储该存储器页的存储器保密属性的存储器保密属性保存部件;在执行任务时,该任务对访问对象的存储器页,在存储器保护属性保存部件设定存储器保密属性的保密管理部件;把存储在要求秘密属性保存部件中的要求保密属性与存储在存储器保护属性保存部件中的存储器保护属性进行比较的存储器保护部件。
Description
技术领域
本发明涉及在封装内部具有能容纳多个程序及其工作区域的大容量的内部存储器,在多任务的程序执行环境下,能防止对执行代码和处理对象数据的不正当的改变的抗篡改处理器。
背景技术
开放系统被作为信息系统网络而广泛普及。在开放系统中,明确揭示了PC等的面向一般用户的计算机的硬件和系统程序(或OS)的信息,最终用户能改变系统程序,加以希望的改良。在这样的环境下,为了保护应用程序处理的信息的著作权、程序自身的著作权,以系统OS对于应用程序能采取的敌对动作为前提,保护程序秘密的硬件就成为必要的。提出了把这样的硬件作为微处理器而实现的尝试(特愿平2000-35898号,Lie等,“对防复制和篡改软件的构造支持”;计算机构造新闻28(5):p168-等)。
这些微处理器在多任务环境下,为了防止程序及其处理的信息被偷窥和改变,具有把信息加密的功能。把这样的微处理器称作抗篡改微处理器。
抗篡改微处理器的主要目的在于:通过对在最终用户的系统中工作的应用程序的保护,保护程序和内容、网络服务权利人的权利。更具体而言,可列举以下三点。
(1)保护包含在程序中的算法的秘密。
(2)保护嵌入程序中的商业秘密和内容不被不正当复制。
(3)保护程序的动作、处理结果不被改变。
对包含在程序中的算法的保护在对程序的权利人的保护中是必要的,对嵌入程序中的商业秘密和内容的保护在防止程序处理的有著作权保护的内容被不正当地复制中是必要的。在利用网络服务的程序中,例如在与服务器交换核款信息的应用程序中,正确地执行核款信息的发送动作,防止不正当的改变对于服务提供者的权利的保护是重要的。作为实际的例子,我们知道已经分析了用个人电脑(PC)播放DVD的程序,它读取了用于破译DVD的密码的商业秘密,制作了不正当地复制DVD的程序(DeCSS)。
这里,关于现在提出的开放系统中的应用程序的保密机构,根据本申请的发明者们的提案(特愿2000-35898号、特愿2000-135010号、特愿2000-333635号、特愿2001-024480号),加以简单说明。在介绍的例子中,其特征在于:在一个系统上,模拟并行地执行了多个程序商的程序,而管理该系统资源的OS能各自独立地保持秘密。把这样的环境称作“多方应用程序保护环境”。
图11表示了以前提出的多方应用程序保护环境的概要。目标系统(例如PC)1102内置抗篡改微处理器1103,具有硬盘那样的二级存储装置1107、处理器外部的存储器1108。用系统1102和用户1112构成系统环境1101。
多个不同的程序商1121-1~1121-n分别通过网络把加密的程序1123-1~1123-n发送给目标系统1122。把加密的程序称作保护程序。
把从程序商发来的加密程序存储在目标系统1102的二级存储装置1107中,在执行时,被读入到外部存储器1108上确保的区域1109上。在外部存储器上,程序还是被加密的状态。把加密程序从外部存储器1108读入微处理器1103中,开始被译码。使用从程序商发来的对应于各程序的键,在保护功能1106中进行译码处理。译码后的程序被读入高速缓冲存储器1104中。程序的译码和向高速缓冲存储器1104的读入不会一次全部读入,而是按照程序的执行而部分地执行。读入高速缓冲存储器中的程序部分是普通状态的。
在微处理器1102的内部,由保护功能1106以普通代码处理程序,没有OS1110存在的余地。另外,除了由微处理器1103的规格决定的操作,无法从外部直接读出高速缓冲存储器1104的内容。
而近年,由于集成电路技术的发展,能在与微处理器同一封装中搭载大容量的存储器。在这样的内部存储器型的处理器中,虽然有最大存储器用量的限制,但是在以往的以外部存储器为前提的抗篡改处理器中,有可能降低作为辅助开销的存储器读入、写出时的密码处理的负荷。
可是,即使把存储器作为内部存储器配置在抗篡改处理器内部,存储器的资源管理归根结底还是处于OS的管理之下,所以要充分地考虑到基于OS的敌对动作。因此,在内部存储器型的微处理器中,在OS的管理之下的程序的保密成为必要,但是却未提出任何具体的保密的实现方法。
在内部存储器型的处理器中,不仅单一的程序,当模拟并行处理多个不同的加密程序时,虽然有必要分别保证多个程序的保密,但是对此还没有任何提案。
发明内容
在内部存储器型的抗篡改微处理器中,为了在保证保密的同时,实现多任务处理,有必要考虑以下各点:
(1)能保护多个程序不被有意图地改变的存储器操作的整体性(integrity);
(2)同时实现基于OS的资源管理和内部存储器的保密;
(3)任务和OS的通信。
具体而言,当某一任务对于内部存储器的某地址进行n次的存储器操作时,在该过程中,必须保护其免受来自别的任务的存储器操作或来自OS的有意图的攻击。因为任务的执行由多个命令的步骤构成,正确地执行它们,首先是要取得正确的结果。当包含OS在内的攻击者只执行程序的某一部分,或在一系列的操作中只把特定的操作除外时,就肆意地变更了程序的动作,无法进行正确的程序的执行。
另外,当OS进行作为资源管理的一环的存储页面的操作时,能考虑到利用了存储器的释放进行的攻击,但是为了排除这样的攻击,就必须同时实现资源管理和程序的保密。
当任务发出系统调用时,与OS进行数据交换,但是这时,有必要与OS共享存储器,进行通信。
这里,考虑了把以往的外部存储器型抗篡改微处理器的保护机构原封不动地应用于内部存储器型中的处理器。首先主内部存储器被分割为块或页的单位(例如4K字节页)。在处理器内部设置了对各存储器页保持它的保密属性的表,表项目保存对应的存储器页的保密属性。在任务T0操作的存储器页的保密属性描述符中自动地设定了任务T0的ID,包含OS在内的其他任务都作为普通代码读出该内容,无法改写。可是,OS为了存储器页的再利用,能强制地解除某些存储器页的保密属性。如果存储器页的保密属性被解除,则页的内容被全部删除,并且初始化为给定的值,保护了原任务的秘密。
现在,任务T0要对某地址A0的存储器页M0,从M0的初始状态到Op1~Opn,进行n次的存储器操作。虽然初始状态可以不定,但是可靠地进行Op1~Opn的操作,取得最终的结果才是目的。当然,在该过程中,不能有别的任务对存储器的操作。
基于一般任务的存储器操作能通过以往的外部存储器型的保护机构排除。可是,在OS解除了页M0的保密属性后,即使原封不动地把外部存储器型的保护机构原封不动地应用于内部存储器型中,也无法排除把该页改写为攻击者想要的数据的攻击,并且无法检测到该攻击。虽然能保护保密属性被解除以前的数据的秘密,但是无法防止被置换成其他的数据。
作为结果,具有OS特权的攻击者能够按意图自由地改写任务的秘密存储器内容。
存储器页的强制的保密属性的解除对于任务的保密构成威胁。可是,在多任务的系统中,无法采用排除这样的强制解除功能,而只有任务自身能解除该保护属性的结构。这是因为当一部分的任务占据了过大的存储器时,OS就无法控制它了。
另外,用于OS与任务通信的非保护状态的存储器访问和保护的存储器访问必须能共存。
因此,本申请留意了这些点,在封装体内具有比较大容量的内部存储器的微处理器中,在多任务的程序执行环境下,实现能防止对执行代码和作为处理对象的数据的不正当改变的高效的内部数据管理。
内部存储器型抗篡改微处理器具有以下部分。
(a)把用不同的密码键加密的多个程序分别译码的译码部件;
(b)用于以存储器页为单位,把由译码部件译码的多个程序作为普通代码各自存储的内部存储器;
(c)当把所述程序读入内部存储器的其他存储器页中,作为任务执行时,设置该任务对访问对象的各存储器页要求的要求保密属性为与其它任务是排它的并且存储起来的要求保密属性保存部件;
(d)对每个存储器页,存储该存储器页的存储器保密属性的存储器保密属性保存部件;
(e)在执行任务时,该任务针对访问对象的存储器页,在存储器保护属性保存部件中设定存储器保密属性的保密管理部件;以及
(f)把存储在要求秘密属性保管部件中的要求保密属性与存储在存储器保护属性保存部件中的存储器保护属性进行比较,当一致时,允许对该存储器页进行访问的存储器保护部件。
在这样的内部存储器型微处理器中,因为程序和数据以普通代码状态存储在内部存储器中,所以在存储器的读出、写出时没必要进行密码处理,能消除处理能力的额外开销。
另外,在模拟并行地执行多个程序的多任务环境下,进行存储器资源管理的OS即使想利用存储器页的释放进行不正当的处理,也不会成功。只要任务对访问对象存储器页要求的保密属性和设定在该任务处理所必要的存储器区域中的保密属性不一致,就不允许对该存储器页的访问。
根据这样的结构,保护了多个程序的各自的秘密,同时实现了基于OS的资源管理和各程序的保密。另外,通过管理存储器页的保密属性,能确保非保护区域,能保证任务和OS的通信。
另外,本发明的内部存储器的保密方法的特征在于:把用不同的密码键加密的多个程序读入微处理器内部,分别进行译码;以存储器页为单位,把译码的多个程序以普通代码形式存储在内部存储器中;当把所述程序读入存储器页中,作为任务而执行时,设定该任务对访问对象的各所述存储器页要求的要求保密属性为与其它任务排它;对所述各存储器页设定该存储器页的存储器保密属性;比较所述要求保密属性和所述存储器保密属性,当一致时,允许对该存储器页的访问。
另外,本发明的另一个内部存储器的保密方法的特征在于:把用不同的密码键加密的多个程序读入微处理器内部,分别进行译码;以存储器页为单位,把译码的多个程序以普通代码形式存储在内部存储器中;当把所述程序读入存储器页中,作为任务而执行时,把该任务对访问对象的各所述存储器页要求的要求保密属性与识别该任务的任务标识符进行关联,并且设定为与其它的任务排它;对所述各存储器页,设定该存储器页的存储器保密属性;只有当所述要求保密属性和所述存储器保密属性一致,并且所述存储器页的任务标识符和所述执行任务的任务标识符一致时,允许对该存储器页的访问。
附图说明
下面简要说明附图。
图1是本发明的实施例1的内部存储器型抗篡改处理器的概要结构图。
图2是图1的抗篡改处理器的内部存储器分配图。
图3是用于说明图1的抗篡改处理器的任务开始和存储器的确保的图。
图4是表示图1的抗篡改处理器的MPA表的结构例的图。
图5是表示图1的抗篡改处理器的MTR寄存器的结构例的图。
图6是表示图1的抗篡改处理器的存储器访问步骤的流程图。
图7是表示本发明的实施例2的存储器访问步骤的流程图。
图8是表示本发明的实施例3的抗篡改处理器的保密机构的概要结构图。
图9是表示实施例3的抗篡改处理器的存储器访问步骤的流程图。
图10是表示本发明的实施例4的抗篡改处理器的存储器访问步骤的流程图。
图11是表示一般的多方应用程序保护环境的概要图。
具体实施方式
在以下的说明中,把以加密状态存储在微处理器的外部存储器中的程序读入并进行处理的以往类型的抗篡改处理器称作“外部存储器型抗篡改处理器”,把在微处理器的封装体内以普通代码的状态存储程序的抗篡改处理器称作“内部存储器型的抗篡改处理器”。
另外,在本说明书中,程序的保密是指以固有的程序键加密的程序的工作数据不能由其他程序读取,防止了按照攻击者的意图对数据进行改变和对程序的动作进行改变等的攻击。
<实施例1>
图1是本发明的实施例1的内部存储器型的抗篡改处理器的概要结构图。处理器100在处理器封装体101内具有处理器核心102、高速缓冲存储器模块103、总线接口部件(BIU)107、包含秘密保护管理器(保密管理部件)301的固件(ROM)109、内部存储器110,它们通过内部总线126彼此连接。
处理器核心102具有执行中的程序使用的工作寄存器114和任务切换部件(STS:secure task switcher)115。工作寄存器114包含MTR(memory type range)寄存器401。MTR寄存器401存储任务对访问对象即内部存储器区域(即存储器页)指定是否要求保密的要求保密属性(RPA:requested protection attribute)。任务切换部件115具有:与任务对应,保存执行中的寄存器状态的任务上下文表116;与任务对应,保存程序加密键等键信息的键表117(任务键表)。
在固件109中,虽然未图示,但是在处理器100中存储了固有的秘密键。固件109包含称作秘密保护管理器的保密管理部件301,管理内部存储器110的各存储器页的存储器保密属性(MPA:memoryprotection attribute)。秘密保护管理器301作为例如存储在固件中的程序来实现。
内部存储器110大致分为两个区域。它们是用户区111和隐秘区112。在用户区111中,在执行时存储了OS和包含系统区域的用户程序。隐秘区112是只有秘密保护管理器301才能操作的区域,存储有存储器保密属性(MPA:memory protection attribute)表501。存储器保密属性表501存储了每个存储器页的保密属性。上述的秘密保护管理器301按照任务发出的保密命令,针对对应的存储器页,在存储器保密属性表501中设定存储器保密属性。OS的操作完全不会涉及到隐秘区112。
高速缓冲存储器模块103具有命令高速缓冲存储器104、数据高速缓冲存储器105和存储器保护模块(存储器保护部件)106。数据高速缓冲存储器105在程序的执行时(即访问对象区域时),读入内部存储器110的用户区112的页内容和与它对应保存在MPA表501中的保密属性。存储器保护模块106将写入数据高速缓冲存储器105的高速缓冲存储器标记中的存储器保密属性(MPA)与从核心102的MTR寄存器401输出的任务指定的要求保密属性(RPA)进行比较,只有当这两个属性一致时,才允许对对象存储器页进行访问。
BIU107具有密码模块(解码部件)108,对与外部的输入输出数据进行加密。处理器100通过BIU107与外部进行输入输出。用外部总线与处理器相连的外围设备桥芯片122在其内部具有缓存器123。外围设备桥芯片122分别连接着闪存121和HDD125。
图2表示了内部存储分配图。用户区111和用于秘密保护管理器的区域301在存储分配图上被隔离。存储分配图的前半部分被分配给用户区,后半部分被分配为秘密保护管理器的区域。放在用户区111中的外部程序不能对包含秘密保护管理器301的固件109进行访问。
在实施例1中,为了说明的简单化,假定了不具有虚拟地址机构的实地址方式的处理器。下面,说明这样的抗篡改处理器的动作。
程序的读入和任务的生成
图3是表示图1的微处理器100的程序A读入和任务生成的步骤的概要图。程序A在由处理器100执行之前,以加密的状态存储在微处理器外部的闪存121(图1)和HDD124(图1)中。
在读入程序A之前,由OS和别的程序读入并生成的任务1被读入用户区111中。OS被读入用户区111的从地址0、P开始的区域中,任务1被读入从地址X开始的区域中。
程序A由配给键302和程序主体303构成。在程序A的读入时,OS通过给定的步骤,把加密状态的程序A读入外围设备桥芯片122的缓存器123中。接着,OS指定缓存器123的程序的地址、内部存储器中的程序的配置地址Y和任务ID(任务k),发出任务生成命令。
如果发出了任务的生成命令,控制就从OS转移到秘密保护管理器301。秘密保护管理器301作为例如存储在固件109中的程序而被安装,为了保护程序的秘密,具有比外部程序即OS更高的特权。只有秘密保护管理器301能操作内部存储器的隐秘区112和任务上下文表116、任务键表117。
秘密保护管理器301从缓存器123取得程序A的配给键302,使用存储在固件109中的处理器秘密键(未图示),通过密码模块108把配给键302解码,取出程序键。把该程序键存储在与任务键表117的任务ID(即任务k)对应的条目117-k中。接着,根据程序键,通过密码模块108把缓存器123中的程序主体303解码,把解码了的程序配置到从内部存储器的程序配置地址Y开始的区域中。
在与隐秘区112的存储器保密属性(MPA)表501(图1)的程序配置区域相对应的条目中写入任务ID(k),对这些区域付与保护属性,防止来自其他任务的访问。如后所述,对于存储器的各页设定了MPA表501的条目(例如,以4K字节为一页)。在此前执行的任务1的条目中,写入了任务ID=1,通过这次程序A的读入,写入任务ID=k。
这样,任务执行的准备结束,控制回到OS后,OS发出指示任务ID=k执行开始的命令。这样,从给定的地址开始执行程序A即任务k。须指出的是,在实施例1中,秘密保护管理器301由固件109实现,但是也可以通过安装硬件来实现。当安装硬件时,在秘密保护管理器301进行任务执行的准备时,OS能并行处理其他的任务,能提高系统的响应性能。
存储器的确保
那么,在执行生成的任务k时,任务k在内部存储器110中动态地确保必要的存储器区域。首先,任务k对OS要求存储器区域。OS向任务k分配能使用的区域,例如从地址Z开始的存储器区域。任务k为了能把该区域作为只有任务k能排它访问的区域而使用,则设置该区域的保密属性。任务k指定地址区域,通过明确地发行保密属性的设定命令,设定了保密属性。保密属性的设定只有该任务才能进行,即使是OS,也不能设定其他任务的保护属性。
须指出的是,通常OS为了避免与其它任务发生存储器资源冲突,在存储器管理部件MMU(未图示)中设定该区域的资源保护属性,使其他任务无法访问。该设定归根结底还是以基于OS的资源保护为目的,当OS具有恶意时,有必要注意可能不能完成保护任务秘密的功能。
如果从任务k发出了保护属性的设定命令,处理就转移到秘密保护管理器301。秘密保护管理器301在MPA表501的指定区域所对应的条目中写入命令的发行者即任务k的ID,把该区域从基于其他任务的访问保护起来。MPA表501的形式例如如图4所示。MPA表502具有与各存储器页对应的条目501-1~501-n。条目具有两个字段,在字段P中存储有表示对应的存储器页是否需要保密的保密位。例如,当保密位的值为1时,意味着要保密。在剩下的字段中存储了任务ID。须指出的是,如上所述,当处理器具有用于资源管理的MMU(未图示)时,秘密保护管理器301最好采用确认发出保护属性设定命令的任务具有对象区域的访问权的结构。
基于保护任务的存储器的访问
当任务访问设定了保护属性的地址时,指定要访问的对象区域为保护区域,再进行访问。该保护区域的指定由处理器核心102中的MTR(memory tape range)寄存器401进行。
图5表示了MTR寄存器401的形式。MTR寄存器401是由两个字组成的寄存器,在第一字401a中写入对象区域的开始地址,在第二字401b中写入大小,在字段402中设定保护位为1。由此,对指定的地址区域设定了任务要求的保密属性(RPA:requested protectionattribute)。如果在要求保密位中写入0,则此前设定的保密属性变为无效。
某存储器的访问变为保护还是非保护由MTR寄存器401的地址范围的指定和访问对象的地址的组合决定。访问对象地址如果在MTR寄存器401指定的范围内,则它成为保护对象。任务能利用的MTR寄存器可以有多个。
图6是表示存储器的访问步骤的流程图。下面,说明访问存储器的步骤。当为了执行任务,核心102向数据高速缓冲存储器105发出读出要求时,现在正在执行的任务ID和由任务要求的要求保密位(RPA)与地址一起被输出(S601)。而当访问对象区域时,从内部存储器110的用户区111把内容读入数据高速缓冲存储器105中。这时,从MPA表501读出与存储器地址相对应的条目,把条目中记录的任务ID和存储器保密位(MPA)写入对应的高速缓冲存储器行的标识中(S602)。存储器保密位(MPA)和要求保密位(RPA)的取得顺序无所谓,可以同时进行。
在访问存储器时,从核心102输出的要求保密属性(RPA)是由任务读取的,应该设定在访问对象存储器中的存储器保护属性。因此,该要求保密属性(RPA)必须与作为访问对象的内部存储器区域的存储器保密属性(MPA)一致。
因此,在步骤S603中,在存储器保护模块106中,对写入高速缓冲存储器标识中的存储器保密位(MPA)和从核心102输出的要求保密位(RPA)进行了比较。当比较结果一致时(S603中,YES),进入S604,这次对写入高速缓冲存储器标识中的任务ID是否与从核心102输出的任务ID一致进行判断。S604和S603的判断顺序无所谓,可以是同时。
只有当保密位与任务ID双方一致时,才进入S605,对要执行的任务判断是否有对存储器页的访问权。这是因为基于OS的资源保护的关系,在存储器管理部件MMU中,有时禁止了任务对对象区域进行访问。如果承认了访问权(S605中,YES),就允许了对对象存储器区域的访问,在步骤S606中,执行了存储器的操作。当禁止访问时(S606中,NO),在步骤S608中,产生资源保护例外。
而在步骤S603中,当写入高速缓冲存储器标识中的存储器保密位MPA和从核心102输出的任务要求的保密位RPA不一致时(S603中,NO),或者在步骤S604中,任务ID不一致时,在步骤S607中对处理器核心102通知保密例外的发生。结果,中断了该任务的执行,且不能重新开始。
例如,当任务k要访问对象区域时,当在MTR寄存器401中未设定正确的保护区域,对保密的对象区域,作为无保密而访问时,即使任务ID一致,存储器保护模块106也判断为非法访问。另外,从核心102输出的要求保密位RPA指定需要保密,则要访问存储器时,即使将写入高速缓冲存储器标识中的存储器保密位MPA为无保密的区域作为对象时,同样也不允许访问。
这样的保密例外的判断标准和资源保护例外的判断标准不依存于彼此的判定结果和顺序,是独立的。
须指出的是,当在与OS的数据交换中,访问非保护的存储器时,因为它是MTR寄存器401指定的区域以外,并且MPA表501的项目的保密位应该为0,所以访问当然是成功的。
如果其他的任务访问了为任务k分配的内部存储器的存储器区域时,从核心102发送的任务ID和高速缓冲存储器标识的任务ID不一致,所以当然产生保密例外,中断非法访问的任务的执行。
须指出的是,虽然未触及程序区域中的保护程序区域的保护方法,但是与上述的任务处理同样,当基于任务生成命令进行程序加载时,通过在对应区域的MPA表501中设定保密属性可以实现。当访问程序区域的存储器时,要求的保密属性RPA不由MTR寄存器401定义,而原封不动地使用执行中的任务ID。
任务的切换
当正确地进行了存储器的操作,执行了任务k时,如果产生中断,则如图3所示,在该时刻的工作寄存器114的信息暂时被保存到上下文表116的任务ID=k的条目中,控制转移给OS。该上下文表116的内容只有秘密保护管理器301能知道,OS和其他任务无法见到该内容。同样,核心102的MTR寄存器401也指定任务k要求的要求保护属性(RPA),所以作为任务k的寄存器信息,被从其他任务的访问保护起来。
基于OS的存储器的释放
OS能强制地释放设定了保密属性的存储器,用于其他目的。OS指定释放对象的存储器区域,发出保密强制释放命令。通过该命令的发行,秘密保护管理器301在把对象区域的MPA表501改写为无保护的同时,把对应的用户存储器区域111初始化为给定值,删除存储的信息。
通过把保密属性改写为无保护,OS把该存储器区域分配给其他任务,或者OS自身使用,能在别的用途中使用。
通过该存储器释放功能,同时实现了保密和恰当的OS存储器资源管理。
任务的结束
OS在结束保密的任务时,指定该任务ID,发出任务结束命令。根据任务结束命令的发行,秘密保护管理器301把设定了任务保密属性的MPA表501的对应条目改写为无保护的值。同时,与存储器释放时同样初始化该存储器区域。通过该任务结束功能,能不泄漏任务的秘密,而再利用任务ID。
存储器访问时的综合保证效果
根据所述的微处理器100的结构,说明能一贯保证对存储器访问的保护。
任务T0对于某地址A0的存储器页M0,从M0的初始状态到Op1~Opn,进行n次的存储器操作。虽然,初始状态可以不定,但是有必要可靠地进行Op1~Opn的操作,取得最终状态的结果。在该过程中,不能加上其他任务的存储器操作,或变更Op1~Opn的操作顺序,或省略。在一系列的操作的途中,即使进行一次页初始化,结果也会变得与期待的不同。
在实施例1的方法中,最初,任务T0发出确保存储器页M0,设定保密属性的命令。由此,在与存储器页M0对应的MPA表501的条目中,设置保密位为“1”和任务ID。然后,在MTR寄存器401中设定M0的地址,进行Op1~Opn的操作。程序自身被加密,攻击者难以进行顺序变更等,保证了任务自身对存储器页保密属性的设定、秘密保护管理器301的设定、Op1~Opn的操作的顺序是正确的。
接着,因为根据实地址参照了存储器页M0,所以保证了作为地址被参照的页总是只有一个。
因此,在Op1~Opn的访问中,所谓的不发生保护例外,访问成功就是说对于对象存储器页M0确实进行了Op1~Opn的操作。
另外,能对某存储器页设定保密属性的是任务自身,该任务在Op1~Opn的操作之前,只进行一次保密属性的设定。对存储器页的访问Op1~Opn是在MTR寄存器中,指定保密位为1而进行的。假定,其间如果OS进行了存储器页的释放,则在Op1~Opn中,发生MTR寄存器401指定的保护属性(RPA)和存储器页的保护属性(MPA)的不一致,发生保密例外,在这里应该终止任务的执行。
因此,在Op1~Opn的访问中,所谓的不发生保密例外,访问成功可是说是在这些操作之间一次也未进行对基于OS的存储器释放。
这样,根据实施例1的微处理器结构,能保证上述存储器操作的统一性、一贯性。而且,该存储器操作的统一性实现了OS的强制的存储器释放(资源管理)和任务对非保护存储器页的访问。
如此的资源管理和保密的组合使得只有任务能设定存储器的保密属性,同时在访问存储器时,把设置在存储器页中的存储器保护属性MPA与任务保存的要求保护属性RPA进行比较,只有属性一致时才允许访问的结果是实现了这样的资源管理和保密的并存。
只当MPA和RPA一致时才允许存储器访问的结构在对保护存储器和非保护存储器的访问混合存在时,即使任务没有明确地设置保密属性,单独地也具有提高存储器操作安全性的效果。
<实施例2>
在实施例1中,内部存储器保密属性的设定是根据任务发出的明确命令进行的。在实施例2中,存储器保密属性的设定是在存储器访问时自动进行。即在存储器页未被保密的状态下(即存储器保护属性MPA为0),如果任务以要求保密的状态(即要求保护属性RPQ的值为1)访问存储器,就自动地在对应的MPA条目的字段中设置存储器保护位为1。同时,用随机数初始化存储器内容。通过该结构,进一步提高了存储器的内容安全性。
在访问存储器时,除了自动地为对象存储器区域设定保密属性以外,与实施例1是同样的。以下就存储器访问时的自动保密属性设定加以详细说明。
图7是表示包含自动保密属性设定的存储器访问步骤的流程图。在访问某存储器区域时,是否把它作为保护区域来访问与实施例1同样,由MTR寄存器401指定的地址范围和对象地址的组合决定。
首先,在步骤S701中,构成要求保密属性(RPA)的保密位和任务ID与对象地址一起从核心102输出。而在步骤S702中,存储在高速缓冲存储器标识中的对应的存储器页的MPA保护位和任务ID通过存储器保护模块106被取得。
在步骤703中,判断RPA和MPA是否一致。当一致时,在步骤S704中,判断任务ID是否一致,然后与实施例1同样,在S705、S706、S711中处理资源保护判断。
当不一致时(在S703中,NO),进入步骤S707,判断RPA的保密位是否为1。如果RPA的保密位为1(在S707中,YES),则在步骤S708中,处理转移到秘密保护管理器301,在访问对象存储器页的MPA条目中设置保密位的值1和访问任务的任务ID。在步骤S709中,通过随机数把该页的内容全部初始化。然后,进入步骤S704,判断任务ID是否一致,以后的处理与实施例1是同样的。
在步骤S707中,当RPA的保密位不是1时(即0的时候),把该访问作为违反保密来处理,在步骤S710中,产生保密例外。
下面,根据实施例2的结构,补充说明保护任务对存储器的访问不被基于OS的有意图的对存储器的改变。
任务T0对于某地址A0的存储器页M0,从M0的初始状态到Op1~Opn,进行n次的存储器操作。虽然,初始状态可以不定,但是有必要可靠地进行Op1~Opn的操作,取得最终状态的结果。在该过程中,不能加上基于其他的任务的存储器的操作,或变更Op1~Opn的操作顺序,或省略。在一系列的操作的途中,即使进行一次页的初始化,结果也会变得与期待的不同。
在实施例2的方法中,任务T0在MTR寄存器401中设定存储器页M0的地址,对存储器页M0进行Op1存储器操作。这时,对存储器页M0设定了存储器保密属性。在初始状态中,应该还未对存储器页M0付与保护属性。然后,任务T0进行Op1~Opn。
首先,程序自身被加密,攻击者很难进行顺序的变更等。因此,保证了存储器页保密属性的设定、MTR寄存器401的设定、Op1~Opn的操作顺序是正确的。
接着,因为根据实地址参照了存储器页,所以保证了用某地址参照的页总是只有一个。因此,在Op1~Opn的访问中,所谓的不发生保护例外,访问成功就是说对于对象存储器页M0确实进行了Op1~Opn的操作。
另外,只有该任务能对某存储器页设定该任务的保密属性,由该任务设定保密属性只限于Op1~Opn的操作时。可是,这时,由随机数初始化了存储器页的内容。
因此,其间,一旦OS进行存储器页的释放,即使按意图改写了M0的内容,这时,保护属性也被清除了。结果,内容一定是由随机数初始化的,有意图的改变不成功。当然妨碍了任务的正常动作,但是,产生攻击者所图谋的结果的可能性一般是极低的。
根据实施例2的结构,能保护任务的保密存储器不被有意图的改变。这样的保护使OS的强制的存储器释放和任务对非保护存储器页的访问并存。
<实施例3>
在实施例1和实施例2中,说明了以实地址方式的微处理器作为对象,使任务的秘密的安全性和基于OS的存储器管理并存,同时,确保了任务与OS的通信,保证了存储器操作的一贯性的保密方式。
实施例3涉及具有虚拟存储机构的内部存储器型处理器。特别说明了在具有虚拟存储机构的处理器中成为问题的对存储器页的偷换攻击的防止。
在具有虚拟存储机构的系统中,OS能把物理存储器的任意的页分配为任意的虚拟地址。另外,该分配能根据任务而进行不同的分配。对于分配的描述,使用了称作页表的内部主存储器上的表。关于页表,后面将进行描述。
在访问存储器时,为了把虚拟地址高速变换为物理地址,常常只把页表的必要的部分读入特殊的高速缓冲存储器中。该临时存储器被称作TLB(translation lood-aside buffer)。
页表向TLB的读入有由处理器硬件进行的读入和基于软件的读入两种。在前者的例子中,有Intel公司的Pentium,在后者的例子中,有MIPS公司的R3000。实施例3中的向TLB的读入能应用于任意的情况。
图8表示实施例3的微处理器的TLB结构。实施例3中的保密属性的设定与实施例1相同,是基于任务的明确设定。因此,关于TLB结构以外的部分,是与实施例1所示的同样的。
首先,在内部存储器110的用户区111中设定了页表111-1。另外,在MPA表501的条目(参照图4)中,除了任务ID,还包含存储有指向该存储器页的虚拟地址的字段。
命令高速缓冲存储器104具有P-TLB(104-1)和R-TLB(104-2),数据高速缓冲存储器105也同样具有P-TLB(105-1)和R-TLB(105-2)。R-TLB是用于地址变换的TLB。而P-TLB存储了存储器保密属性,补充R-TLB,使任务的保密更安全。R-TLB和P-TLB的条目是一对一地对应存在的,通过对R-TLB进行写入,后面描述的处理自动地对P-TLB进行。换言之,P-TLB的更新是以R-TLB的写入为契机而间接进行的,除了秘密保护管理器301,其他任务无法明确地操作P-TLB。
在实施例3中,作为任务的保密属性的要素保存了属性指定时的虚拟地址。如上所述,与实施例1同样,在任务发出保密属性设定命令时,进行了虚拟地址的设定。对于虚拟地址,使用了任务指定的地址。这里,物理地址P0的存储器页M0被映射为虚拟地址V0。这时,秘密保护管理器301选择了与存储器页M0的物理地址P0对应的条目作为写入保护属性的MPA表501的条目。在选择的MPA条目中,写入任务ID、存储器页M0的虚拟地址V0。虽然,有时分配给物理页的虚拟地址根据任务而不同,但是在实施例3中,因为不考虑任务间保护存储器的共享,所以只要对该存储器设定了保护属性,就不会有来自其他任务的访问,所以不成问题。
图9说明实施例3的微处理器中的存储器访问步骤。
在步骤S801中,当访问某存储器页M0时,在读入数据之前,取得了与访问对象的虚拟地址V0相对应的条目。在步骤S802中,把取得的条目从页表111-1加载到数据高速缓冲存储器105的R-TLB中,进行了从虚拟地址V0到物理地址P0的变换的准备。向R-TLB的加载由硬件或软件(OS)进行。
如果进行了加载,在步骤S803中,就由秘密保护管理器301自动读出变换目标物理地址P0所对应的MPA条目。在步骤S804中,从MPA表501读出的设定时的虚拟地址V0与变换源的R-TLM的虚拟地址进行对照,判断是否一致。
如果一致(在S804中,YES),则TLB的加载成功。如果不一致(在S804中,NO),则TLB的加载失败,在S806中,产生保密例外。
如果TLB的加载成功,则在对应的数据高速缓冲存储器的P-TLB(105-1)中写入MPA条目的任务ID和保密有无。向被读入了参照R-TLB(105-2)进行地址变换的结果的高速缓冲存储器行的标识中,写入在对应的P-TLB(105-1)的条目中记录的任务ID和保密有无。其后的处理与实施例1的处理是同样的。
在实施例1中,在对应于物理存储器而保持的存储器保密属性(MPA)和任务要求的要求保护属性(RPA)中分别包含了保密位和任务ID,对其的比较是在核心发出对存储器访问要求时进行的。
在实施例3中,存储器保密属性(MPA)与要求保护属性(RPA)的比较是在以页单位进行TLB的加载时和在以字单位进行存储器访问时分散进行的。当加载TLB时,对任务要求的虚拟地址V0和保存在MPA表501中的保护属性设定时的虚拟地址进行比较。在访问存储器时,与实施例1同样,比较保密位和任务ID。
在实施例3中,基本上也对作为任务执行的结果而生成的要求保护属性RPA和描述作为对象区域的存储器的保护属性的存储器保密属性MPA进行比较,但是,对于各属性项目的比较在时间上分散,其密集程度是不同。
实施例3的结构针对如下的攻击,在保证存储器操作的综合性这一点上是有效的。
考虑在某任务中将设定了保护属性的存储器页M0、M1分别配置为虚拟地址V0、V1,然后实施处理Op1~Opn。预先决定在V0、V1的哪一方进行Op1~Opn的处理。
可是,如果使用虚拟存储机构,就能在进行Op1~Opn操作时的任意时刻改变存储器页M0、M1的虚拟地址上的配置。例如,如果对存储器页M1的操作是清除存储器操作,则通过改变操作对象存储器页的虚拟地址,就能清除存储器页M0。这时,处理变为与程序的生成者的意图不同,但是只有在以实施例1那样的以实地址为前提的结构中,不能防止这样的偷换攻击。
在实施例3中,把存储器保密属性设定时参照的虚拟地址作为物理存储器页的保密属性定义进行保存,在执行地址变换时,比较变换对象的虚拟地址和保存的地址。然后,当发生不一致时,通过禁止访问,防止上述的再配置存储器页的攻击。在实施例3中,通过在TLB的加载时进行比较处理,谋求处理的高效,但是也可以在每次处理器核心参照存储器的时,进行比较。这时,虽然效率会稍微下降,但是取得了同样的结果。
须指出的是,在上述的例子中,是把使用虚拟存储器情况下的存储器访问综合性保证和任务明确发出存储器保密属性设定命令的结构结合进行的说明。但是,虚拟地址的比较处理即使单独使用,对于防止利用虚拟存储进行存储器交换攻击也是有效的。
另外,在保密属性命令发出时,最好先清除定义了对应物理地址的变换的P-TLB。这是因为在保密属性命令发出前,残存有读入的TLB条目时,会产生问题。例如,如果任务对读入了参照非保护状态的TLB条目的结果的高速缓冲存储器行进行参照,则与期待相反,不会设定保密属性,会发生保密例外,中止处理。因此,在保密属性命令发出时,最好清除P-TLB。
<实施例4>
在实施例1~3中,说明了在内部存储器型抗篡改处理器中,实现基于任务的排他的存储器访问的结构。
在实施例4中,对共享秘密的多个任务能共享某存储器区域,并且相对于不保密的任务进行排它访问的结构例进行说明。
在实施例4中,基本结构与图1所示的实施例1的结构相同。因此,以下以变更点为中心进行说明。
首先,任务用于访问内部存储器的共享区域的保密信息保存在MTR寄存器401中。在实施例1和实施例2中,在MTR寄存器401中只保存了地址区域,但是在实施例4中,除了地址区域,还保存了用于共享的秘密值。在任务设定保密属性时指定秘密值。而且,在参照存储器时,把该秘密值作为要求保密属性(RPA)使用。须指出的是,为了防止攻击,秘密值的长度最好为128位以上。
另外,在由任务对存储器页设定保密属性时,也指定了秘密值,并存储在MPA表501的对应条目中。因此,在实施例4中,被存储在MPA表501条目中的变为保护有无、任务ID、虚拟地址、秘密值四项。
在加载程序时,在设定了程序区域的存储器保密属性(MPA)的情况下,在MPA项目的秘密值中写入加密程序的程序键的值。
图10表示了实施例4的微处理器的存储器访问的步骤。
与已经说明的实施例1~3同样,访问可否通过根据从处理器核心102输出的要求保密属性(RPA)和存储在高速缓冲存储器标识中的存储器保密属性(MPA)的一致与否来判定。
即在步骤S901中,从核心取得表示保护有无的保密位、任务ID、虚拟地址、秘密值,在步骤S902中,取得写入高速缓冲存储器标识中的存储器保护位、任务ID、虚拟地址、秘密值。在核心输出的四项中,作为要求保密属性(RPA)被使用的是除了任务ID的三项。这是因为任务间共享存储器,所以判定基准不依存于任务ID,而是秘密值是否一致。
在步骤S903中,在存储器保护模块106中,对核心输出的RPA保密位和写入高速缓冲存储器标识中的保密位进行比较。当不一致时,与实施例1~3同样,在步骤S908中,产生保密例外。
在步骤S903中,当两者的保密位一致时,在步骤S904、S905中,分别比较两者(RPA和MPA)的虚拟地址和秘密值。当不一致时,在步骤S908中,产生保密例外。
如果在保密方面,保密位、虚拟地址、秘密值都一致(步骤S903~S905中,都是YES),就进入步骤S906,在资源保护方面,判断任务ID是否一致。当不一致时,在步骤S909中,产生资源保护例外。当一致时,在步骤S907中,执行存储器操作。
作为实施例4的微处理器的具体的利用形态,列举例如预先在多个程序中嵌入公共的秘密X,而某程序生成的任务A确保存储器区域,设定秘密值X,别的任务B在MTR寄存器401中设定秘密值X,进行访问的例子。秘密值X除了预先决定以外,也可以由Diffy-Hellman法等众所周知的键共享方式共享。
如图10的流程图所说明的那样,不知道秘密值X的任务对该存储器共享区域进行访问会发生保密例外,当然失败。因此,能实现只有知道秘密值X的任务的排他的存储器共享。
在实施例4中,把存储器区域的排他的(安全)共享与基于任务的存储器保密属性的设定命令结合进行了说明。但是,在MPA、RPA中利用秘密值,安全地进行存储器区域的共享的方法是不依存于任务发出的保密属性设定命令的存在的,能单独实现任务间的安全的存储器共享。
如上所述,在内部存储器型抗篡改微处理器中,在多任务环境下,使OS的内部存储器资源管理和保密并存,不但确保OS和任务的通信,而且能保护多个程序不被有意图的改变。
Claims (10)
1.一种内部存储器型抗篡改微处理器,其特征在于包括:
把用不同的密码键加密的多个程序分别译码的译码部件;
用于以存储器页为单位,把由所述译码部件译码的多个程序以普通代码形式存储的内部存储器;
当把所述程序读入存储器页中,作为任务而执行时,设定该任务对访问对象的各所述存储器页要求的要求保密属性为与其它任务排它,并且存储起来的要求保密属性保存部件;
对所述每个存储器页,存储该存储器页的存储器保密属性的存储器保密属性保存部件;
在执行所述任务时,该任务对作为访问对象的所述存储器页,在所述存储器保密属性保存部件中设定所述存储器保密属性的保密管理部件;
把存储在所述要求保密属性保存部件中的所述要求保密属性与存储在所述存储器保密属性保存部件中的所述存储器保密属性进行比较,当一致时,允许对该存储器页的访问的存储器保护部件。
2.根据权利要求1所述的内部存储器型抗篡改微处理器,其特征在于:所述存储器保密属性保存部件和所述要求保密属性保存部件还存储用于识别所述任务的任务标识符;
所述存储器保护部件将所述要求保密属性和所述存储器保密属性进行比较,并且比较各对应的所述任务标识符,仅当所述要求保密属性和所述存储器保密属性一致,并且各对应的所述任务标识符一致时,允许对该存储器页的访问。
3.根据权利要求1所述的内部存储器型抗篡改微处理器,其特征在于:所述保密管理部件根据所述任务发出的命令,在所述存储器保密属性保存部件中设定所述存储器保密属性。
4.根据权利要求1所述的内部存储器型抗篡改微处理器,其特征在于:所述保密管理部件当所述任务访问所述访问对象存储器页时,根据所述比较结果,设定所述存储器保密属性。
5.根据权利要求4所述的内部存储器型抗篡改微处理器,其特征在于:所述保密管理部件当所述任务对作为访问对象的所述各存储器页要求的要求保密属性是需要保密,而该访问对象存储器页的存储器保密属性是非保密属性时,设置所述存储器保密属性为保密属性,初始化该存储器页。
6.根据权利要求1所述的内部存储器型抗篡改微处理器,其特征在于:还具备把所述内部存储器的虚拟地址变换为物理地址的地址变换部件;
所述存储器保密属性保存部件针对所述存储器页的各物理地址存储所述存储器保密属性;
所述存储器保密属性保存部件和所述要求保密属性保存部件还分别存储访问对象存储器页的虚拟地址。
7.根据权利要求6所述的内部存储器型抗篡改微处理器,其特征在于:所述存储器保护部件在从所述虚拟地址向所述物理地址进行变换时,对所述存储器保密属性保存部件的虚拟地址和所述要求保密属性保存部件的虚拟地址进行比较,当一致时,进行地址变换。
8.根据权利要求1所述的内部存储器型抗篡改微处理器,其特征在于:所述内部存储器具有由多个任务共享的共享区域;
所述存储器保密属性和所述要求保密属性分别包含用于所述共享的秘密值;
所述存储器保护部件将所述存储器保密属性中包含的所述秘密值与所述要求保密属性中包含的所述秘密值进行比较,只有在一致时,允许对共享区域的访问。
9.一种内部存储器的保密方法,其特征在于:把用不同的密码键加密的多个程序读入微处理器内部,分别进行译码;
以存储器页为单位,把译码的多个程序以普通代码形式存储在内部存储器中;
当把所述程序读入存储器页中,作为任务而执行时,设定该任务对访问对象的各所述存储器页要求的要求保密属性为与其它任务排它;
对所述各存储器页设定该存储器页的存储器保密属性;
比较所述要求保密属性和所述存储器保密属性,当一致时,允许对该存储器页的访问。
10.一种内部存储器的保密方法,其特征在于:把用不同的密码键加密的多个程序读入微处理器内部,分别进行译码;
以存储器页为单位,把译码的多个程序以普通代码形式存储在内部存储器中;
当把所述程序读入存储器页中,作为任务而执行时,把该任务对访问对象的各所述存储器页要求的要求保密属性与识别该任务的任务标识符进行关联,并且设定为与其它的任务排它;
对所述各存储器页,设定该存储器页的存储器保密属性;
只有当所述要求保密属性和所述存储器保密属性一致,并且所述存储器页的任务标识符和所述执行任务的任务标识符一致时,允许对该存储器页的访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002079155A JP3866597B2 (ja) | 2002-03-20 | 2002-03-20 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
JP079155/2002 | 2002-03-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1445680A CN1445680A (zh) | 2003-10-01 |
CN1197014C true CN1197014C (zh) | 2005-04-13 |
Family
ID=27785307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031074170A Expired - Fee Related CN1197014C (zh) | 2002-03-20 | 2003-03-20 | 内部存储器型抗篡改处理器及保密方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7219369B2 (zh) |
EP (1) | EP1347384A3 (zh) |
JP (1) | JP3866597B2 (zh) |
KR (1) | KR100491991B1 (zh) |
CN (1) | CN1197014C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201331A (zh) * | 2015-05-05 | 2016-12-07 | 旺宏电子股份有限公司 | 用于写入数据的方法及设备与储存媒体 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2403562A (en) * | 2003-07-04 | 2005-01-05 | Hewlett Packard Development Co | Secure processing environment in which executable code for services is only received by a secure loading process through the service request interface |
JP4263976B2 (ja) * | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
EP1523228A3 (en) * | 2003-10-09 | 2008-03-05 | Matsushita Electric Industrial Co., Ltd. | Mobile terminal, circuit board, circuit board design aiding apparatus and method, design aiding program, and storage medium having stored therein design aiding program |
FI120638B (fi) * | 2003-12-17 | 2009-12-31 | Nokia Corp | Java-sovellusten käyttämän datan suojausjärjestelmä |
US7590845B2 (en) | 2003-12-22 | 2009-09-15 | Lenovo Singapore Pte. Ltd. | Key cache management through multiple localities |
JP4282472B2 (ja) * | 2003-12-26 | 2009-06-24 | 株式会社東芝 | マイクロプロセッサ |
JP4574994B2 (ja) * | 2004-01-26 | 2010-11-04 | 東芝マイクロエレクトロニクス株式会社 | メモリ外付けマイコン |
WO2005096120A1 (ja) * | 2004-04-02 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | 実行装置 |
JP4612461B2 (ja) * | 2004-06-24 | 2011-01-12 | 株式会社東芝 | マイクロプロセッサ |
JP4559794B2 (ja) * | 2004-06-24 | 2010-10-13 | 株式会社東芝 | マイクロプロセッサ |
JP4490192B2 (ja) * | 2004-07-02 | 2010-06-23 | 株式会社エヌ・ティ・ティ・ドコモ | マルチタスク実行システム |
JP4204522B2 (ja) * | 2004-07-07 | 2009-01-07 | 株式会社東芝 | マイクロプロセッサ |
US7779239B2 (en) * | 2004-07-28 | 2010-08-17 | Intel Corporation | User opt-in processor feature control capability |
US7444523B2 (en) * | 2004-08-27 | 2008-10-28 | Microsoft Corporation | System and method for using address bits to signal security attributes of data in the address space |
US7502928B2 (en) | 2004-11-12 | 2009-03-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure data processing and transmission |
JP4551231B2 (ja) * | 2005-01-31 | 2010-09-22 | 日本電信電話株式会社 | プログラム実行保護システム、プログラム実行保護方法 |
WO2006082985A2 (en) | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
JP4522372B2 (ja) * | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置 |
JP4606339B2 (ja) | 2005-02-07 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | セキュアなプロセッサの処理の移行を実施する方法および装置 |
KR100670005B1 (ko) * | 2005-02-23 | 2007-01-19 | 삼성전자주식회사 | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 |
JP4738068B2 (ja) * | 2005-06-17 | 2011-08-03 | 富士通セミコンダクター株式会社 | プロセッサ及びシステム |
US7571298B2 (en) * | 2005-06-30 | 2009-08-04 | Intel Corporation | Systems and methods for host virtual memory reconstitution |
JP2007058588A (ja) * | 2005-08-24 | 2007-03-08 | Toshiba Corp | プログラム保護機能を持つプロセッサ |
US7739726B2 (en) * | 2005-11-14 | 2010-06-15 | Route1 Inc. | Portable device for accessing host computer via remote computer |
US20070143459A1 (en) * | 2005-12-19 | 2007-06-21 | Lucent Technologies Inc. | Protection of privacy-sensitive information through redundancy, encryption and distribution of information |
US20070162475A1 (en) * | 2005-12-30 | 2007-07-12 | Intel Corporation | Method and apparatus for hardware-based dynamic escape detection in managed run-time environments |
TW200805065A (en) * | 2006-01-17 | 2008-01-16 | Nxp Bv | Region protection unit, instruction set and method for protecting a memory region |
US7991965B2 (en) * | 2006-02-07 | 2011-08-02 | Intel Corporation | Technique for using memory attributes |
JP4902644B2 (ja) * | 2006-04-24 | 2012-03-21 | パナソニック株式会社 | データ処理装置、データ処理方法、データ処理プログラム、およびそのデータ処理プログラムを記録した記録媒体、並びに集積回路 |
JP2008009933A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | 記憶装置とその制御方法 |
US20080016305A1 (en) * | 2006-07-12 | 2008-01-17 | International Business Machines Corporation | Implementation of Soft Protections to Safeguard Program Execution |
US7762553B2 (en) * | 2006-11-25 | 2010-07-27 | Harris Curtis J | Form-fitting electronic game controller cover |
US7610448B2 (en) * | 2006-12-27 | 2009-10-27 | Intel Corporation | Obscuring memory access patterns |
US8434127B2 (en) * | 2007-02-08 | 2013-04-30 | Nec Corporation | Access control system, access control method, electronic device and control program |
JP4976991B2 (ja) * | 2007-11-22 | 2012-07-18 | 株式会社東芝 | 情報処理装置、プログラム検証方法及びプログラム |
US8477946B2 (en) * | 2008-02-27 | 2013-07-02 | International Business Machines Corporation | Method and apparatus for protecting encryption keys in a logically partitioned computer system environment |
US8726042B2 (en) * | 2008-02-29 | 2014-05-13 | Microsoft Corporation | Tamper resistant memory protection |
JP5322620B2 (ja) | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
US8549260B2 (en) * | 2009-01-29 | 2013-10-01 | Infineon Technologies Ag | Apparatus for processing data and method for generating manipulated and re-manipulated configuration data for processor |
JP5171907B2 (ja) * | 2010-09-13 | 2013-03-27 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
CN102436559B (zh) * | 2010-09-29 | 2016-06-01 | 联想(北京)有限公司 | 一种状态切换方法及系统 |
JP5782120B2 (ja) * | 2011-06-06 | 2015-09-24 | 株式会社ソシオネクスト | コンテンツデータ再生方法、およびサムネイル画像生成方法 |
JP5316592B2 (ja) * | 2011-06-09 | 2013-10-16 | 富士通セミコンダクター株式会社 | セキュアプロセッサ用プログラム |
KR101944010B1 (ko) * | 2012-02-24 | 2019-01-30 | 삼성전자 주식회사 | 애플리케이션의 변조 감지 방법 및 장치 |
US9430384B2 (en) * | 2013-03-31 | 2016-08-30 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
US9767044B2 (en) * | 2013-09-24 | 2017-09-19 | Intel Corporation | Secure memory repartitioning |
US9411600B2 (en) * | 2013-12-08 | 2016-08-09 | Intel Corporation | Instructions and logic to provide memory access key protection functionality |
US9703715B2 (en) * | 2013-12-28 | 2017-07-11 | Intel Corporation | Shared memory in a secure processing environment |
US10049216B2 (en) * | 2014-02-06 | 2018-08-14 | Intel Corporation | Media protection policy enforcement for multiple-operating-system environments |
FR3035241B1 (fr) * | 2015-04-16 | 2017-12-22 | Inside Secure | Procede de partage d'une memoire entre au moins deux entites fonctionnelles |
US9875189B2 (en) | 2015-06-12 | 2018-01-23 | Intel Corporation | Supporting secure memory intent |
GB2539433B8 (en) * | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
WO2017178888A1 (en) * | 2016-04-12 | 2017-10-19 | Guardknox Cyber Technologies Ltd. | Specially programmed computing systems with associated devices configured to implement secure lockdowns and methods of use thereof |
US10884952B2 (en) | 2016-09-30 | 2021-01-05 | Intel Corporation | Enforcing memory operand types using protection keys |
CN108229207B (zh) * | 2016-12-09 | 2021-09-14 | 上海新微技术研发中心有限公司 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
US11392496B2 (en) * | 2018-02-28 | 2022-07-19 | Sony Corporation | Memory management system, memory management method, and information processing apparatus with reduced power consumption |
GB2572158B (en) * | 2018-03-20 | 2020-11-25 | Advanced Risc Mach Ltd | Random tag setting instruction |
GB2575878B (en) | 2018-07-27 | 2021-06-09 | Advanced Risc Mach Ltd | Binary search procedure for control table stored in memory system |
US11226894B2 (en) | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
CN114996725B (zh) * | 2022-05-06 | 2023-07-28 | 北京中科昊芯科技有限公司 | 一种保护开发程序的方法以及处理器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558176A (en) | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
US5628023A (en) | 1993-04-19 | 1997-05-06 | International Business Machines Corporation | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view |
US5666411A (en) | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
US5845129A (en) * | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
JP3790323B2 (ja) * | 1997-04-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データ転送制御装置、マイクロコンピュータ及びデータ処理システム |
US5991399A (en) * | 1997-12-18 | 1999-11-23 | Intel Corporation | Method for securely distributing a conditional use private key to a trusted entity on a remote system |
US6105137A (en) * | 1998-07-02 | 2000-08-15 | Intel Corporation | Method and apparatus for integrity verification, authentication, and secure linkage of software modules |
JP2000066956A (ja) | 1998-08-17 | 2000-03-03 | Nec Corp | 共有メモリのアクセス権設定・検証方式 |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
DE19925195A1 (de) * | 1999-06-01 | 2000-12-07 | Giesecke & Devrient Gmbh | Verfahren für die sichere Verwaltung eines Speichers |
WO2001016759A1 (en) * | 1999-08-31 | 2001-03-08 | Cryptec Systems, Inc. | Smart card memory management system and method |
-
2002
- 2002-03-20 JP JP2002079155A patent/JP3866597B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-18 KR KR10-2003-0016803A patent/KR100491991B1/ko not_active IP Right Cessation
- 2003-03-20 EP EP03251729A patent/EP1347384A3/en not_active Withdrawn
- 2003-03-20 CN CNB031074170A patent/CN1197014C/zh not_active Expired - Fee Related
- 2003-03-20 US US10/391,618 patent/US7219369B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201331A (zh) * | 2015-05-05 | 2016-12-07 | 旺宏电子股份有限公司 | 用于写入数据的方法及设备与储存媒体 |
CN106201331B (zh) * | 2015-05-05 | 2020-03-17 | 旺宏电子股份有限公司 | 用于写入数据的方法及设备与储存媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20030182571A1 (en) | 2003-09-25 |
EP1347384A2 (en) | 2003-09-24 |
JP3866597B2 (ja) | 2007-01-10 |
US7219369B2 (en) | 2007-05-15 |
JP2003280989A (ja) | 2003-10-03 |
CN1445680A (zh) | 2003-10-01 |
KR20030076336A (ko) | 2003-09-26 |
KR100491991B1 (ko) | 2005-05-30 |
EP1347384A3 (en) | 2004-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1197014C (zh) | 内部存储器型抗篡改处理器及保密方法 | |
CN1189819C (zh) | 抗干预微处理器 | |
US7392415B2 (en) | Sleep protection | |
CN112005237B (zh) | 安全区中的处理器与处理加速器之间的安全协作 | |
JP4982825B2 (ja) | コンピュータおよび共有パスワードの管理方法 | |
TW563030B (en) | Generating a key hierarchy for use in an isolated execution environment | |
US9652635B2 (en) | Secure processor and a program for a secure processor | |
US7874009B2 (en) | Data processing device | |
JP4601557B2 (ja) | マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置 | |
KR101054981B1 (ko) | 프로그램의 콘텍스트를 보안적으로 저장하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
JP3880933B2 (ja) | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 | |
US7681044B2 (en) | Secure processor and system | |
CN1410876A (zh) | 微处理机 | |
CN1928881A (zh) | 一种计算机数据安全防护方法 | |
JP2004038394A (ja) | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム | |
US20160094555A1 (en) | System and methods for executing encrypted managed programs | |
CN110069935A (zh) | 基于标记内存的内部敏感数据保护方法及系统 | |
CN115329351A (zh) | 一种面向Windows系统的文件保护系统及方法 | |
JP4643702B2 (ja) | マイクロプロセッサ | |
CN107563226A (zh) | 一种存储器控制器、处理器模块及密钥更新方法 | |
JP2004272816A (ja) | マルチタスク実行システム及びマルチタスク実行方法 | |
JP4314311B2 (ja) | 情報処理装置および情報処理システム | |
CN107688729A (zh) | 基于可信主机的应用程序保护系统及方法 | |
CN116823585A (zh) | Gpu可信执行环境的构建方法、gpu可信计算执行方法及装置 | |
CN115688198A (zh) | 电力物联智能终端可信执行系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050413 Termination date: 20160320 |