具有存储保护功能的计算机系统的制作方法

文档序号:6609006阅读:346来源:国知局
专利名称:具有存储保护功能的计算机系统的制作方法
技术领域
本发明涉及一种在具备可执行计算机程序的CPU(中央运算处理装置)和由可存放计算机程序及数据的一个或多个存储装置构成的存储区域的计算机系统中,用于防止由用户的疏忽或非法使用造成的存储区域内的保密数据的删除、窜改、泄漏的存取控制,更详细地说,涉及一种对存放包含保密数据的数据存储区域的数据保护技术。
背景技术
在具备CPU、一个或多个存储装置的计算机系统中,通常为了回避由于由CPU向存储装置的预想外的存取及权限以外的存取而造成的系统整体的动作不稳定或不能动作等情况,而在系统内设置对存储装置的存取控制单元。
现有的存取控制通常是对每个文件附加属性,且判别用户对文件有无存取权(access right)。用户对于具有存取权的文件,可进行read(读出)/write(写入)等操作。
但是,在判别用户对文件有无存取权的方式中,应用程序可对记载了存取权的存取控制列表文件进行存取,存在通过操作而将该文件删除、窜改、泄漏的可能性。还存在被恶意用户将该文件进行非法地删除、窜改、泄漏的可能性。
针对该问题点,特开2003-345654号公报中公开的现有技术表示于图10。特开2003-345654号公报中公开的计算机系统使用多个OS控制程序104,使用户直接利用的主机OS(操作系统)102和管理保护对象的文件的客户机OS 103动作。通信控制程序110根据存取控制列表119,对来自外部的存取请求判定可否存取,在可存取时启动客户机OS 103并对保护对象的文件进行存取。作为实现该存取控制的硬件的构成例,有在美国Intel公司的MPU(微处理器)中使用的Execute Disable Bit等。这是将实地址(real address)转换为称作页面的虚拟地址(virtual address),对每个该页面附加称作读出/写入/执行的属性并进行存取控制。利用该功能能够实现客户机OS和主机OS的存取控制。
但是,多个OS控制程序可对存取控制列表文件进行存取。另外,通常工作存储器即堆栈区域基于启动的客户机OS及操作,而使用大小是各式各样的,难以按照页面设定存取权。通过缓冲器溢出攻击等,可对堆栈区域内的数据进行破坏、窜改,且可置换为恶意的程序代码时,可夺取客户机OS、主机OS或多个OS控制程序的权限。这样的脆弱性在自变量数据(变量)的保持及子程序的返回地址的存放中使用堆栈区域时可发现。例如,见程序开发语言即C语言等的规格,只通过软件进行更完全地防御是非常困难的。
接着,以作为缓冲器溢出攻击而熟知的用C语言记述的对数据或程序的破坏、窜改动作的程序为例进行说明。
首先,图4表示正常的程序执行(#1~#5)和堆栈区域的状态变化情况。堆栈区域是暂时的数据存放场所,因此被设定在RAM(随机存取存储器)上。
堆栈区域通常在以下的程序执行处理(#1~#5)中使用。
#1执行主程序的程序。
#2调出子程序并在堆栈区域内确保返回地址。
#3在堆栈区域内确保子程序内的局部变量区域(a,Buf)。
#4在变量(Buf)中存放输入数据(Data)。
#5终止子程序,跳转到存放于堆栈中的返回地址并返回到主程序。
但是,在#5中返回到主程序时,堆栈区域被开放,但堆栈内残留有数据。
图5表示受缓冲器溢出攻击时的程序执行和堆栈区域的状态变化(#6~#9)情况。
#6进行与图4所示的正常动作#1~#3相同的动作。
#7输入在变量(Buf)中确保的大小以上的数据(Data)。例如由于在C语言中使用的strcpy函数等未进行数据大小的核对,因此,超出Buf区域并覆盖到堆栈区域内的其它区域。
#8即使终止子程序,因正确的返回地址被覆盖,也不能返回本来的返回地址。
#9将程序代码(program)和向该程序代码的开头转移控制的地址(address)嵌入Data中,由此可执行按照攻击者的意图的程序。
进而,不仅堆栈区域,而且相对于RAM上的暂时的数据保持区域即堆积区域也可进行同样的攻击。图6表示受缓冲器溢出攻击由堆栈区域向堆积区域数据破坏侵蚀时的程序的执行和堆栈区域与堆积区域的状态变化的情况(#10~#12)。
#10进行与图4所示的正常动作#1~#3相同的动作。
#11输入在变量(Bur)中被确保的大小以上的数据(Data)。
#12进一步根据该Data输入,数据破坏侵蚀到RAM上的堆积区域。
直到破坏到堆积区域时,就存在不再进行正常动作而变为攻击者的意图的可能性。通过这种处理,执行攻击者意图的程序,从而可对内部的保密数据进行删除、窜改、泄漏。

发明内容
本发明是鉴于上述问题而开发的,其目的在于提供一种具有存储保护功能的计算机系统,在OS及应用程序执行时,即使将堆栈区域内的数据窜改为恶意代码,也可阻止按照窜改后的代码的恶意程序的执行,从而可防止针对存储区域内的保密数据的删除、窜改、泄漏等。
用于实现上述目的的本发明的计算机系统,具备CPU,可执行计算机程序;存储区域,其由可存放所述计算机程序及数据的一个或多个存储装置构成;以及内存映射电路,用于存储存取控制内存映射,上述存取控制内存映射设定了所述存储区域的每个地址的所述CPU的程序执行用存取权的有无,对根据所述存取控制内存映射规定为无所述存取权的地址范围的所述存储区域,许可通常的读出及写入动作的存取,但禁止来自所述CPU的程序执行用的存取。
根据具有上述第一方面特征的计算机系统,利用存取控制内存映射可设定程序执行用的存取权的有无,且可进行通常的读出/写入,而可保持程序执行用的存取不能进行的地址范围,即使该地址范围的存储区域内的数据通过通常的读出/写入被改写为恶意程序,由该恶意程序的执行造成的针对存储区域内的保密数据的删除、窜改、泄漏也不能进行,从而,存储区域内的保密数据被安全地保护。
另外,本发明的计算机系统在上述第一方面特征的基础上,第二方面特征在于,具备存取权判定电路,根据所述存取控制内存映射,判定由所述CPU的程序计数器指定的执行程序存放地址的所述存储区域的所述CPU的所述存取权的有无,在无所述存取权时,输出存取禁止信号,该存取禁止信号是所述CPU执行规定处理的信号,所述规定处理是指从CPU对所述执行程序存放地址的所述存储区域不能进行存取的规定处理。
根据具有上述第二方面特征的计算机系统,根据存取控制内存映射规定为无程序执行用的存取权的地址范围的所述存储区域的存取,由CPU的程序计数器指定的程序执行用的程序存放地址,基于存取控制内存映射判定为无所述存取权时,作为来自CPU的程序执行用的存取被禁止,因此,即使该地址范围的存储区域内的数据通过通常的读出/写入被改写为恶意程序,由该恶意程序的执行造成的针对存储区域内的保密数据的删除、窜改、泄漏也不能进行,从而,存储区域内的保密数据被安全地保护。
再者,本发明的计算机系统在上述第二方面特征的基础上,第三方面特征在于,所述存取权判定电路具备匹配电路,其接收来自所述程序计数器的所述执行程序存放地址的输入和来自所述内存映射电路的所述存取控制内存映射的输入,并比较所述执行程序存放地址和所述存取控制内存映射,根据所述匹配电路的比较结果,使所述存取禁止信号激活。
根据具有上述第三方面特征的计算机系统,基于将执行程序存放地址、和根据存取控制内存映射被规定为程序执行用的存取权无或有的地址范围进行比较后的结果,可判定执行程序存放地址的该存取权的有无,即使恶意程序被覆盖到存放有正常程序的地址范围以外的、无该存取权的地址范围,也不能够执行,由该恶意程序的执行造成的针对存储区域内的保密数据的删除、窜改、泄漏也不能进行,从而,存储区域内的保密数据被安全地保护。
另外,本发明的计算机系统在上述第三方面特征的基础上,第四方面特征在于,所述存取权判定电路与所述CPU取出指令的定时信号的输入同步判别来自所述程序计数器的所述执行程序存放地址的输入。
根据具有上述第四方面特征的计算机系统,通过与CPU取出指令的定时信号同步判别来自所述执行程序存放地址的输入,可准确判别执行程序存放地址,从而能够切实地达到具有上述第三方面特征的计算机系统的作用效果。
再者,本发明的计算机系统在上述第二~第四方面的任一方面特征的基础上,第五方面特征在于,将由所述存取控制内存映射规定的所述CPU无所述存取权的地址范围固定为数据存放专用地址。
根据具有上述第五方面特征的计算机系统,固定所述CPU的无所述存取权的地址范围,则可作为安全的数据存放用区域使用。
另外,本发明的计算机系统在上述第二~第四方面的任一方面特征的基础上,第六方面特征在于,将由所述存取控制内存映射规定的所述CPU无所述存取权的地址范围作为堆栈区域使用。
根据具有上述第六方面特征的计算机系统,堆栈区域上的数据不能够作为程序而执行,因此,即使恶意程序代码通过缓冲器溢出等被装入堆栈上,也可防止非法的执行。
再者,本发明的计算机系统在上述第二~第六方面的任一方面特征的基础上,第七方面特征在于,所述内存映射电路构成为,不能进行基于所述CPU的程序执行的所述存取控制内存映射的内容变更。
根据具有上述第七方面特征的计算机系统,存取控制内存映射的内容通过恶意程序也不能变更,因此,能够更高度地防止由恶意程序造成的数据的删除、窜改、泄漏。还有,针对由CPU对内存映射电路的存取控制内存映射的内容变更的存取,只要由用户限制主机系统的使用状态即可,即,在出厂后进行限制即可。
另外,本发明的计算机系统在上述第六方面特征的基础上,第八方面特征在于,由所述存取控制内存映射规定的所述CPU的无所述存取权的地址范围根据所述堆栈区域的增减而变化。
根据具有上述第八方面特征的计算机系统,通过使无所述存取权的地址范围与程序执行中增减的堆栈区域一致而增减,可有效地设定存取限制区域。
再者,本发明的计算机系统在上述第八方面特征的基础上,第九方面特征在于,所述存储区域的一部分被划分成无来自所述CPU的所述存取权的堆栈区域、和有来自所述CPU的所述存取权的堆积区域,在所述堆栈区域溢出且所述堆积区域被侵蚀时,所述存取控制内存映射变化,使得被侵蚀了的所述堆积区域变为无来自所述CPU的所述存取权的状态。
根据具有上述第九方面特征的计算机系统,即使因堆栈区域的溢出,有来自所述CPU的程序执行用存取权的堆积区域的数据被改写为恶意程序代码,也不能执行,从而能够防止恶意程序的执行。
另外,本发明的计算机系统在上述第二~第八任一方面特征的基础上,第十方面特征在于,所述存储区域的一部分被划分成无来自所述CPU的所述存取权的堆栈区域、和有来自所述CPU的所述存取权的堆积区域,以即使所述堆栈区域溢出,所述堆积区域也不被侵蚀的方式,将所述堆栈区域和所述堆积区域的各地址范围分离而设定。
根据具有上述第十方面特征的计算机系统,可防止因堆栈区域的溢出有来自所述CPU的程序执行用存取权的堆积区域的数据被改写为恶意程序。
再者,本发明的计算机系统在上述第二~第十任一方面特征的基础上,第十一方面特征在于,所述存取禁止信号使所述CPU产生规定的中断动作。
根据具有上述第十一方面特征的计算机系统,在执行嵌入堆栈区域内的非法程序时,可产生规定的中断操作,从而控制非法程序的执行。
另外,本发明的计算机系统在上述第二~第十任一方面特征的基础上,第十二方面特征在于,所述存取禁止信号使所述CPU产生复位动作。
根据具有上述第十二方面特征的计算机系统,在执行嵌入堆栈区域内的非法程序时,可通过对CPU执行中断且进行整体初始化而防止非法程序的执行。
再者,本发明的IC卡的特征在于,装载有具有上述任一特征的存储保护功能的计算机系统。
根据具有上述特征的IC卡,可提供一种IC卡,其能够有效地防止利用缓冲器溢出攻击等的非法程序的执行。


图1是表示本发明的计算机系统的一实施方式的电路结构的框图;图2是表示本发明的计算机系统的存取权判定电路的输入信号、输出信号及内部电路结构之一例的电路图;图3是表示本发明的计算机系统的一实施方式的另一电路结构的框图;图4是表示未进行缓冲器溢出攻击时的正常程序的执行和堆栈区域的状态变化情况的图;图5是表示受到缓冲器溢出攻击时的程序的执行和堆栈区域的状态变化情况的图;图6是表示受缓冲器溢出攻击且自堆栈区域向堆积区域数据破坏侵蚀时的程序的执行和堆栈区域及堆积区域的状态变化情况的图;图7是表示本发明的计算机系统的一实施方式的、阻止受到缓冲器溢出攻击时的非法程序的执行的动作过程之一例的图;图8是表示本发明的计算机系统的一实施方式的、阻止受到缓冲器溢出攻击时的非法程序的执行的动作过程的另一例的图;图9是表示本发明的IC卡的构成例的框图;图10是表示现有的具有数据保护功能的计算机系统之一例的框图。
具体实施例方式
下面,参照附图对本发明的具有存储保护功能的计算机系统(下面适当简称为“本发明系统”)的实施方式进行说明。
第一实施方式图1表示本发明系统1的概略构成例。如图1所示,本发明系统1构成为,具有CPU(中央运算处理器)10、ROM(只读存储器)11、RAM12、非易失性存储器13、外围I/O接 14、内存映射电路15、存取权判定电路16、数据总线17、及地址总线18。CPU10、ROM11、RAM12、非易失性存储器13、及外围I/O接口14通过地址总线18与数据总线17相互连接。由ROM11、RAM12及非易失性存储器13构成存放CPU10可执行的程序代码及存放数据的存储区域19。
再者,在本实施方式中,存储区域19中,存放程序代码的程序代码区域、及存放固定数据的固定数据区域在ROM11及非易失性存储器13内形成,另外,在程序执行时被利用的存储区域,假设存放动态数据的堆栈区域和其它堆积区域,在可高速读出及写入的RAM12内形成的情况。
内存映射电路15由RAM或寄存器构成,将设定了存储区域19的每个地址的、来自CPU10的程序执行用存取权(下面适当简称为“执行权”)的有无的存取控制内存映射进行存储,并向存取权判定电路16输出存取控制内存映射的信息。在本实施方式中,内存映射电路15的输入及输出与数据总线17分离且没有直接的连接,因此,由CPU10通过程序的执行,防止存取控制内存映射的内容不小心或非法地变更。
存取权判定电路16按每一执行程序存放地址,判定用CPU内的程序计数器20的值指示的执行程序存放地址Spc指定的存储区域19的执行权的有无。图2表示存取权判定电路16的输入信号、输出信号及内部电路结构的详细情况。在图2所示的实施例中,自内存映射电路15输出的存取控制内存映射的信息,是表示来自CPU10的程序执行用的存取不许可(即,无执行权)即执行不许可地址范围的上限和下限的上限地址信号SA1和下限地址信号SA2。存取权判定电路16具备比较执行程序存放地址Spc与存取控制内存映射的信息SA1,SA2的匹配电路21,匹配电路21进行自程序计数器20输入的执行程序存放地址Spc、和上限地址信号SA1和下限地址信号SA2的每个的比较,判定在上限地址信号SA1和下限地址信号SA2之间的执行不许可地址范围是否存在执行程序存放地址Spc。并且,在本实施方式中,在执行不许可地址范围是否存在执行程序存放地址Spc,即,执行程序存放地址Spc的执行权的有无,是通过自CPU10输入的、在CPU10取出指令的定时激活的取出定时信号Sft同步来判定的。具体来说,在执行不许可地址范围存在执行程序存放地址Spc,并且取出定时信号Sft为激活状态(高电平时)时,判定为无执行程序存放地址Spc的执行权,激活(成为高电平)存取禁止信号SC并输出。
存取禁止信号SC自CPU10向由存储区域19的程序计数器20的值指示的执行程序存放地址Spc指定的地址区域进行存取,对CPU10执行不能进行存放于该地址区域的非法程序的执行的后述处理。其结果,被非法写入存储区域19的整个地址区域之内的由存储于内存映射电路15的存取控制内存映射规定的执行不许可地址范围的程序的执行不能进行,由该非法程序的执行造成的针对存放于存储区域19内的保密数据的删除、窜改、泄漏被防止于未然。
再者,本发明系统1的构成为如图3所示,使用自CPU10输出的堆栈指示器22的值,作为表示自内存映射电路15输出的存取控制内存映射的执行不许可地址范围的上限的上限地址信号SA1,由此根据堆栈区域的增减而变化。例如,可以将自CPU10输出的堆栈指示器22的值SP作为上限地址信号SA1使用,将减去由执行中的子程序使用的堆栈区域部分所得的值,作为表示执行不许可地址范围的下限的下限地址信号SA2。
实施例1其次,对如图5例示的、受到缓冲器溢出攻击时的本发明系统1的防御动作之一例进行说明。图7表示受到缓冲器溢出攻击时的正常程序的执行、阻止具有恶意的非法程序的执行、及堆栈区域的状态变化的情况(#13~#15)。
#13受到缓冲器溢出攻击时的动作进行与图5所示的#6~#8相同的动作。
#14CPU10根据窜改了的返回地址,将控制转移到嵌入在执行不许可地址范围内设定的堆栈区域中的有恶意的非法程序。在此,存取权判定电路16检测出用程序计数器20的值指示的执行程序存放地址Spc处于存储于内存映射电路15的存取控制内存映射的执行不许可地址范围内,并激活存取禁止信号SC。
#15通过存取禁止信号SC的激活,检测出非法程序的执行,将存取禁止信号SC作为对CPU10的中断请求信号使用,由此,在CPU10中启动中断处理。在该中断处理中,通过实行堆栈区域的清除(数据删除)等适当处理,能够防止由具有恶意的非法程序造成的内部保密数据的删除、窜改、泄漏。
在此,由于在上述步骤#13受到的缓冲器溢出攻击,在如图6的#12所示超出被预先设定的堆栈区域且堆积区域的数据被改写的情况下,CPU10根据窜改了的返回地址,将控制转移到嵌入堆积区域中的具有恶意的非法程序。
但是,通过超过堆栈区域的数据写入,堆栈指示器的指示值转移到堆积区域内,因此,表示执行不许可地址范围的上限的上限地址信号SA1也转移到堆积区域内,被缓冲器溢出攻击侵蚀了的堆积区域的执行权自起始的有执行权的状态变化为无执行权的状态。因而,与上述#14的情况同样,存取权判定电路16检测出用程序计数器20的值指示的执行程序存放地址Spc处于存储于内存映射电路15的存取控制内存映射的执行不许可地址范围内,并激活存取禁止信号SC。而且,上述#15的中断动作被执行,被嵌入堆积区域的具有恶意的非法程序不能执行,从而能够防止内部保密数据的删除、窜改、泄漏。
另外,通过对在RAM12中设定的堆栈区域的地址范围进行不连续地分离,具体来说,将堆栈区域和堆积区域的边界的地址范围作为ROM11或非易失性存储器13的地址范围,堆积区域不会因缓冲器溢出攻击而被侵蚀,这样,作为针对缓冲器溢出攻击的防御策略是有效的。
实施例2其次,对如图5例示的、受到缓冲器溢出攻击时的本发明系统1的防御动作的另一例进行说明。在本实施例2中,将系统整体作为初始状态,对针对缓冲器溢出攻击而进行防御的动作进行说明。
图8表示检测出具有恶意的非法程序的执行,并进行复位处理时的程序执行、阻止具有恶意的非法程序的执行、及堆栈区域的状态变化的情况(#16~#18)。
#16受到缓冲器溢出攻击时的动作进行与图5所示的#6~#8相同的动作。
#17CPU10根据窜改了的返回地址,将控制转移到嵌入在执行不许可地址范围内设定的堆栈区域中的具有恶意的非法程序。在此,存取权判定电路16检测出用程序计数器20的值指示的执行程序存放地址Spc处于存储于内存映射电路15的存取控制内存映射的执行不许可地址范围内,并激活存取禁止信号SC(与实施例1的#14动作相同)。
#18通过存取禁止信号SC的激活,检测出非法程序的执行,将存取禁止信号SC作为对CPU10的复位请求信号使用,由此,在CPU10中复位处理被启动,CPU10再启动。通过CPU10再启动,能够更切实地防止具有恶意的非法程序的执行。
在此,通过在上述步骤#16受到的缓冲器溢出攻击,在如图6的#12所示超出预先设定的堆栈区域且堆积区域的数据被改写的情况下,CPU10根据窜改了的返回地址,将控制转移到嵌入堆积区域中的具有恶意的非法程序。
但是,通过超过堆栈区域的数据写入,堆栈指示器的指示值转移到堆积区域内,因此,表示执行不许可地址范围的上限的上限地址信号SA1也转移到堆积区域内,被缓冲器溢出攻击侵蚀了的堆积区域的执行权自起始的有执行权的状态变化为无执行权的状态。因而,与上述#17(#14)的情况同样,存取权判定电路16检测出用程序计数器20的值指示的执行程序存放地址Spc处于存储于内存映射电路15的存取控制内存映射的执行不许可地址范围内,并激活存取禁止信号SC。而且,上述#18的复位动作被执行,嵌入堆积区域的具有恶意的非法程序不能执行,从而能够防止内部保密数据的删除、窜改、泄漏。
第二实施方式在上述第一实施方式中,内存映射电路15由RAM或寄存器构成,由存储于其中的存取控制内存映射规定的执行不许可地址范围,可进行物理变更,尤其是在图3所示的构成例中,对执行不许可地址范围根据堆栈指示器22的值变化的情况进行了说明。但是,在第二实施方式中,对执行不许可地址范围作为数据存放专用地址区域被预先固定的情况进行说明。数据存放专用地址区域例如覆盖包含堆栈区域和堆积区域的RAM12的整个地址范围。
在第二实施方式中,存取控制内存映射通过硬件或软件处理不能进行改写而被存储于内存映射电路15内。存取控制内存映射不能进行改写,因此,内存映射电路15的电路结构可比上述第一实施方式更简单。另外,本发明系统1整体的结构与图1所示的结构相同。
由ROM构成内存映射电路15时,执行不许可地址范围已在出厂阶段被固定,在出厂后不能变更,而由RAM或寄存器构成内存映射电路15时,与制造后的出厂测试同时,从测试器侧或根据特殊程序(存放于非易失性存储器13等),可由CPU10进行设定。在后者的情况下,制造后的许可范围的设定不管用怎样的特殊方法,只要在设定后将该程序删除等,对设定内容的窜改没有危险性即可。
在本第二实施方式中,如果执行不许可地址范围被固定,那么,通过事先确保个人信息等保密信息的存放区域,并对该存放区域无条件地设定为没有执行权,就能够将执行不许可地址范围作为完全的数据专用区域来使用。
再者,通过将第一实施方式的内存映射电路15的功能和第二实施方式的内存映射电路15的功能进行组合,即,通过将固定的执行不许可地址范围和可变的执行不许可地址范围组合使用,就能够更切实地防止具有恶意的非法程序的执行。
第三实施方式其次,对上述第一或第二实施方式的本发明系统1的应用例进行说明。图9表示装载了本发明系统1的IC卡2的构成例。另外,对与图1表示的本发明系统1相同的构成元件付与相同的符号且省略其重复的说明。在IC卡上记录有密码及电子证明信息等重要数据。针对伺机破坏这些数据的攻击者,通过装载本发明系统1能得到安全的IC卡。
其它实施方式其次,对本发明系统的其它实施方式进行说明。
(1)在上述第一实施方式中,虽然对堆栈区域的地址范围记载的是根据数据的写入向上位地址方向进行扩张的情况下,对作为表示执行不许可地址范围的上限的上限地址信号SA1使用堆栈指示器22的值的情况进行了说明,但在堆栈区域的地址范围向下位地址方向扩张的情况下,也可以作为表示执行不许可地址范围的下限的下限地址信号SA2使用堆栈指示器22的值。
(2)作为本发明系统1的构成例,例示了图1及图3的结构,但本发明系统1的构成例不限于此。例如,在上述各实施方式中,记载了存储区域19由ROM11、RAM12、及非易失性存储器13三种存储装置构成的情况,但是CPU10的程序执行时使用的存储区域仅由RAM12构成的实施方式也可以。
(3)在上述各实施方式中,例示了内存映射电路15在图1、图2及图3中作为独立电路的情况,但组装到CPU10或存取权判定电路16内也可以。另外,例示了存取权判定电路16在图1、图2及图3中作为独立电路的情况,但也可以作为硬件电路组装到CPU10内。
(4)在上述第三实施方式中,作为本发明系统1的应用例将IC卡进行了说明,但本发明系统1的应用例不限定于IC卡。
本发明涉及的计算机系统可应用于需要用存取控制来防止由于用户的疏忽及非法使用造成存储区域内的保密数据的删除、窜改、泄漏的计算机系统中。
权利要求
1.一种具有存储保护功能的计算机系统,具备CPU,可执行计算机程序;存储区域,其由可存放所述计算机程序及数据的一个或多个存储装置构成;以及内存映射电路,用于存储存取控制内存映射,上述存取控制内存映射设定了所述存储区域的每个地址的所述CPU的程序执行用存取权的有无,对根据所述存取控制内存映射规定为无所述存取权的地址范围的所述存储区域,许可通常的读出及写入动作的存取,但禁止来自所述CPU的程序执行用的存取。
2.如权利要求1所述的计算机系统,其中,具备存取权判定电路,根据所述存取控制内存映射,判定由所述CPU的程序计数器指定的执行程序存放地址的所述存储区域的所述CPU的所述存取权的有无,在无所述存取权时,输出存取禁止信号,该存取禁止信号是所述CPU执行规定处理的信号,所述规定处理是指从CPU对所述执行程序存放地址的所述存储区域不能进行存取的规定处理。
3.如权利要求2所述的计算机系统,其中,所述存取权判定电路具备匹配电路,其接收来自所述程序计数器的所述执行程序存放地址的输入和来自所述内存映射电路的所述存取控制内存映射的输入,并比较所述执行程序存放地址和所述存取控制内存映射,根据所述匹配电路的比较结果,使所述存取禁止信号激活。
4.如权利要求3所述的计算机系统,其中,所述存取权判定电路与所述CPU取出指令的定时信号的输入同步判别来自所述程序计数器的所述执行程序存放地址的输入。
5.如权利要求2~4任一项所述的计算机系统,其中,将由所述存取控制内存映射规定的所述CPU无所述存取权的地址范围固定为数据存放专用地址。
6.如权利要求2~4任一项所述的计算机系统,其中,将由所述存取控制内存映射规定的所述CPU无所述存取权的地址范围作为堆栈区域使用。
7.如权利要求2~4任一项所述的计算机系统,其中,所述内存映射电路构成为,不能进行基于所述CPU的程序执行的所述存取控制内存映射的内容变更。
8.如权利要求6所述的计算机系统,其中,由所述存取控制内存映射规定的所述CPU的无所述存取权的地址范围根据所述堆栈区域的增减而变化。
9.如权利要求8所述的计算机系统,其中,所述存储区域的一部分被划分成无来自所述CPU的所述存取权的堆栈区域、和有来自所述CPU的所述存取权的堆积区域,在所述堆栈区域溢出且所述堆积区域被侵蚀时,所述存取控制内存映射变化,使得被侵蚀了的所述堆积区域变为无来自所述CPU的所述存取权的状态。
10.如权利要求2~4任一项所述的计算机系统,其中,所述存储区域的一部分被划分成无来自所述CPU的所述存取权的堆栈区域、和有来自所述CPU的所述存取权的堆积区域,以即使所述堆栈区域溢出,所述堆积区域也不被侵蚀的方式,将所述堆栈区域和所述堆积区域的各地址范围分离而设定。
11.如权利要求2~4任一项所述的计算机系统,其中,所述存取禁止信号使所述CPU产生规定的中断动作。
12.如权利要求2~4任一项所述的计算机系统,其中,所述存取禁止信号使所述CPU产生复位动作。
13.一种IC卡,其中,装载有权利要求1~4任一项所述的具有存储保护功能的计算机系统。
全文摘要
本发明提供一种具有存储保护功能的计算机系统,能够防止由缓冲器溢出攻击等造成的对存储区域内的保密数据的删除、窜改、泄漏等。所述计算机系统具备内存映射电路(15)和存取权判定电路(16)。所述内存映射电路(15)将设定了存储区域(19)的每个地址的CPU(10)的程序执行用存取权的有无的存取控制内存映射进行存储;所述存取权判定电路(16)根据存取控制内存映射,判定由程序计数器(20)指定的执行程序存放地址(Spc)的存储区域的CPU的存取权的有无,在无存取权时,输出存取禁止信号,该存取禁止信号是所述CPU(10)执行规定处理的信号,所述规定处理是指从CPU(10)对执行程序存放地址的存储区域不能进行存取的规定处理。
文档编号G06F12/14GK101071401SQ20071010253
公开日2007年11月14日 申请日期2007年5月14日 优先权日2006年5月12日
发明者大山茂郎 申请人:夏普株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1