CN101189586A - 计算机系统及程序生成装置 - Google Patents
计算机系统及程序生成装置 Download PDFInfo
- Publication number
- CN101189586A CN101189586A CNA2006800191820A CN200680019182A CN101189586A CN 101189586 A CN101189586 A CN 101189586A CN A2006800191820 A CNA2006800191820 A CN A2006800191820A CN 200680019182 A CN200680019182 A CN 200680019182A CN 101189586 A CN101189586 A CN 101189586A
- Authority
- CN
- China
- Prior art keywords
- program
- security procedure
- instruction
- management area
- management
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供计算机系统及程序生成装置。手机(10)具有CPU(102)和存储器(107),该CPU(102)读出OS、非安全程序、切换设备驱动程序以及安全程序中含有的各指令并进行译解,对应该译解结果进行动作;存储器(107)由管理区域和管理外区域构成。OS含有只将管理区域作为访问空间、相对于非安全程序向管理区域的访问进行中介的指令以及相对于切换设备驱动程序、指示向安全程序的切换的指令。非安全程序含有经由OS对管理区域进行访问的指令。切换设备驱动程序含有通过OS的指示,从OS向安全程序进行执行切换的指令。安全程序含有只将管理外区域作为访问空间、向管理外区域访问的指令。
Description
技术领域
本发明涉及防止程序的不正当篡改及解析的技术。
背景技术
目前为止,对程序的不正当篡改及解析的技术进行着研究。
例如,在作为程序包贩卖的软件中,为了防止非法复制的使用,有需要利用者输入密码的要求。在这样的软件中,含有检查密码是否正确的代码(计算机程序)。不正当利用者若在该软件内利用一些方法特定出存在进行该检查的代码的位置,对该代码进行篡改而使该检查无效,则该不正当利用者即使不知道密码也可以使用该软件。
另外,近年,提供有在PC(个人计算机)上可以视听的收费数字内容。为了该收费数字内容不被不正当复制而进行了加密,用于视听这些收费数字内容的软件含有用于解密的解密算法以及解密密钥。但是,若恶意的用户对视听用的软件进行解析,能特定出解密密钥,则可以制作出可以对数字内容进行不正当复制的软件。
如上所述,若对软件的内容进行了解析后,则该软件及数字内容的业务将不成立。因此,防止这些软件的解析的技术是必不可少的。
例如,在非专利文件1中,记载有用于防止软件的解析的基本原则和具体方法。另外,在非专利文件2中,记载有作为用于防止软件的解析的工具而开发出的TRCS(tamper Resistant Coding System)的技术课题及其对策。另外,在非专利文献3中,对使用于防止软件的非法复制的软件上的保护方法(复制保护技术)不被无效掉的技术进行了阐述。
称这样的防止软件的不正当解析及篡改的技术为“防篡改技术”。
非专利文献1:《保护软件不被逆解析及改变》(「逆析や改変からソフトを守る」)日经电子学1998.1.5(P209-220)
非专利文献2:《软件的防篡改化技术》(「ソフトウエアの耐タンパ一化技術」)富士复印机技术报告NO.13
非专利文献3:《加密》秀和系统出版1985年
专利文献1:日本特开平11-15705号公报
在多种OS普及的现在,可以比较容易地得到在OS上动作的软件调试程序等的解析工具。
因此,为了使利用依存于OS的库、在OS上进行动作的软件不被第三者知道其隐匿信息,进行安全的处理,即使在安全安装该软件的情况下,该软件对于在OS上动作的调试器的抗性低,这种情况成为了课题。即,存在着不正当解析者利用OS上动作的调试器来特定读出依存于OS的库的部分,并进一步特定秘密信息的危险。
发明内容
本发明是鉴于上述问题点进行的,其目的在于提供一种可以使不正当解析者难特定秘密处理的计算机系统、集成电路及程序生成装置。
为了达成上述的目的,本发明提供一种计算机系统,其特征在于:具有微处理器和存储单元,该微处理器读出并译解基本程序、通常程序以及安全程序中包含的各指令,对应于该译解结果进行动作;该存储单元包括管理区域和与所述管理区域不同的管理外区域,所述基本程序构成操作系统,包含相对于所述通常程序对只将所述管理区域作为访问空间的访问进行中介的指令,所述通常程序含有经由所述基本程序、对所述管理区域进行访问的指令,所述安全程序为不依存于操作系统的程序,含有只将所述管理外区域作为访问空间而访问的指令。
发明效果:
通过该构成,安全程序可以不依存于操作系统即基本程序,访问操作系统的管理外区域。另外,通常程序经由操作系统即基本程序可以访问操作系统的管理区域,但是,不能访问操作系统的管理外区域,因此,通常程序例如为软件调试程序的情况下,软件调试程序不能访问管理外区域,可以起到确保安全程序的对管理外区域的访问的安全性的功能的优良效果。
在此,所述管理区域还存储有所述基本程序及所述通常程序,所述管理外区域还存储有所述安全程序,所述处理器读出所述管理区域中存储的所述基本程序、所述通常程序中包含的各指令,读出所述管理外区域中存储的所述安全程序中包含的各指令。
通过该构成,安全程序由于存储在操作系统的管理外区域,因此所述软件调试程序不能对存储在管理外区域的安全程序进行访问,可以确保安全程序自身内容的安全。
在此,所述安全程序包含进行隐匿处理的指令,该隐匿处理相关于收容在所述管理外区域的应该隐匿的信息。
通过这样的构成,所述软件调试程序不会通过所述安全程序对操作系统的管理外区域中收容的应该隐匿的信息进行访问,因此可以确保这些应该隐匿的信息内容的安全。
在此,所述管理区域还存储有切换程序,该切换程序含有根据基本程序的指示进行从基本程序向安全程序的执行的切换的指令,所述处理器还读出并译解所述管理区域中存储的所述切换程序中包含的指令,对应于该译解结果进行动作,所述基本程序还具有对所述切换程序指示向安全程序的切换的指令,所述安全程序还具有在所述隐匿处理结束后进行从安全程序向基本程序的执行切换的指令。
通过这样的构成,在需要从基本程序进行隐匿处理时等,经由切换程序可以暂时转移到对本来不能访问的安全程序的处理,另外,在隐匿处理执行后,可以再度返回到对操作系统即基本程序的处理。由此,即使从基本程序也可以在确保安全程序的安全性的情况下进行对安全程序的隐匿处理。
在此,所述切换程序,含有在从安全程序向基本程序的执行切换时将堆栈指针的设定返回到基本程序利用的设定的指令,含有在从安全程序向基本程序的执行切换时将堆栈指针的设定返回到安全利用的设定的指令。
通过这样的构成,在从安全程序向基本程序的执行切换时,将堆栈指针的设定返回到基本程序利用的设定,因此可以继续进行基本程序的处理。另外,在从基本程序向安全程序的执行切换时,将堆栈指针的设定返回到安全程序利用的设定,因此可以继续进行安全程序的处理。
在此,所述安全程序被实施难读化。
通过这样的构成,由于进行了难读化,难以对安全程序进行解析,因此可以进一步提高安全程序的安全性。
另外,一般地在软件的处理执行之前,成为执行对象的软件利用的数据被初始化。不正当解析者想要从软件初始化顺序进行对解析对象的软件的解析。在该情况下,不正当解析者可能关注数据初始化处理,特定秘密信息的利用场所。
在此,所述安全程序需要进行初始化处理,初始化处理可以通过多个程序进行。
通过这样的构成,通过利用多个初始化程序分别进行初始化处理,可以分割、分散初始化处理,使不正当解析者很难对数据初始化处理中关注的秘密信息的利用场所进行特定。
在此,所述多个初始化程序在由所述安全程序进行的所述隐匿处理之前进行。
通过这样的构成,由于在由安全程序进行的隐匿处理之前通过各初始化程序的执行,进行各初始化处理,因此在隐匿处理上,不会使用错误的初始值、进行错误的处理。
在此,所述多个初始化程序中的一部分初始化程序,在与其它初始程序不同的时期执行。
通过这样的构成,进一步使不正当解析者很难对数据初始化处理中关注的秘密信息的利用场所进行特定。
另外,在手机等电子设备中适用防篡改技术的情况下,被防篡改化的软件利用的存储空间增加。因此,所述被防篡改化的软件的初始化处理需要的时间增加,在要求响应性的电子设备中,从用户进行希望的处理要求到实际上软件开始处理为止的初始化处理需要的时间非常多。
作为相关于存储器的初始化处理的高速化的文献,有专利文献1中公开的存储器管理方法。但是,该方法中没有得到程序的数据初始化处理的高速化及安全性提高的效果。
在此,一部分初始化程序在该计算机系统刚复位后执行,安全程序中包含的初始化程序在要求安全程序的执行时进行。
通过这样的构成,将在不依存于OS的环境下可以动作的安全软件的初始化处理进行分割、分散,由此可以缩短从用户进行希望的处理要求到实际上安全软件处理开始为止的处理时间,并且可以进一步提高对恶意的解析者的防范性。
如上所述,通过本发明,安全程序执行的代码(存在于ROM上)以及安全程序利用的工作存储器(存在于RAM上),由于作为OS管理外区域,可以防止来自OS上动作的软件调试程序的解析。
另外,由于对安全程序的RAM数据的初始化处理进行分割,可以缩短从用户的安全程序处理要求产生到安全程序启动为止的处理时间。
另外,通过对分割后的初始化处理分散执行,对于从安全程序的初始化处理进行解析的恶意的解析者,由于可以扩大解析对象范围,因此可以使解析困难,提高安全等级。
另外,由于安全程序为不依存于OS的环境下动作的程序,因此安全程序的向其它OS上的移植性非常高。另外,在向其它OS移植时也不会产生安全程序向OS的变更,因此可以不降低安全等级地进行移植。
附图说明
图1是表示安全处理系统1的构成的系统构成图;
图2是表示编译装置30的构成的框图;
图3是表示编译装置40的构成的框图;
图4是表示存储卡20及手机10的构成的框图;
图5是表示存储器107的数据的配置的配置图;
图6是表示二进制数据的各段(section)的配置的配置图;
图7是表示存储器107中的物理地址和逻辑地址的对应关系的图;
图8是表示安全程序202和安全程序用工作存储器602的内容的配置图;
图9是表示API分支表格800的数据结构的数据结构图;
图10是表示复位后,启动OS程序210,启动OS上动作的应用程序软件为止的顺序的图;
图11是表示安全程序202的ZI段的初始化处理结束为止的顺序的图;
图12是表示安全程序202的ZI段的初始化处理结束后,启动安全API为止的顺序的图;
图13是表示安全程序202的执行中产生了中断的情况的顺序的图。
符号说明
10手机
20存储卡
30编译装置
40编译装置
101调试器I/F
102CPU
103MMU
104中断控制器
105输入部
106显示部
107存储器
108输入输出部
109缓冲器
110符号处理器
111D/A变换部
112无线通信控制部
113扬声器
114麦克风
115通信部
116天线
117总线
120通常区域
122输入输出部
130安全区域
132安全处理部
201IPL程序
202安全程序
210OS程序
211非安全程序
212安全程序调出部
213切换设备驱动程序
310OS依存编译部
320OS依存链接部
330形式变换部
350信息存储部
410OS非依存编译部
420OS非依存链接部
430形式变换部
450信息存储部
具体实施方式
1.实施方式
下面,参照附图对本发明的作为一个实施方式的安全处理系统1进行说明。
1.1安全处理系统1的构成
安全处理系统1,如图1所示,具有:编译装置30、编译装置40、手机10及存储卡20。存储卡20安装在手机10上。
编译装置30从对导入到手机10的OS(Operating System。称为基本软件或基本程序)的内核的动作的源程序进行记述和记述依存于该OS的其它动作的源程序,生成一个以上的执行形式的计算机程序(称为OS依存二进制数据)。另外,编译装置40从记载不依存于所述OS的其它动作的源程序,生成一个以上的执行形式的计算机程序(称为OS非依存二进制数据)。
手机10,如后所述,为含有CPU(Central Processing Unit)、ROM(Read Only Memory)、ROM(Random Access Memory)等的计算机系统。在上述中生成的OS依存二进制数据和OS非依存二进制数据通过ROM写入器写入到手机10具有的ROM。这样,ROM存储有计算机程序即OS依存二进制数据及OS非依存二进制数据,所述CPU按照所述计算机程序进行动作,由此手机10达成一部分的功能。OS依存二进制数据即计算机程序的一部分构成OS,其它部分基于该OS的控制而动作。
存储器20,作为一例,存储有对音乐或影像的内容进行了加密而生成的加密内容以及对所述加密内容进行解密的内容密钥。
手机10按照写入ROM的OS依存二进制数据及OS非依存二进制数据进行动作,从存储卡20读出加密内容,利用所述内容密钥对读出的加密内容进行解密,生成解密内容,将生成的解密内容作为音乐祸影像输出。
1.2编译装置30的构成
编译装置(也称为程序生成装置。)30,如图2所示,具有OS依存编译部310、OS依存链接部320、形式变换部330以及信息存储部350。编译装置30生成配置于手机10的后述的存储器107的OS管理区域的二进制数据。
编译装置30,具体地说,为具有微处理器、ROM、RAM、硬盘单元、显示器、键盘、鼠标等的计算机系统。所述RAM或所述硬盘单元上存储有计算机程序。所述微处理器按照所述计算机程序进行动作,由此构成编译装置30的OS依存编译部310、OS依存链接部320、形式变换部330达成其功能。
(1)信息存储部350
信息存储部350存储有:OS内核源代码301a、301b、301c……、非安全程序源代码302a、302b、302c……、安全程序调出部源代码303a、303b、303c……、切换设备驱动程序源代码304a、304b、304c……、地址指定文件322、OS依存库321a、321b、321c……。另外,具有用于存储OS依存二进制数据340a、340b、340c……的区域。
OS内核源代码301a、301b、301c……为分别含有记载导入到手机10的OS的各种处理的源代码(源程序)的一部分即计算机程序,包含有计算机指令,OS内核源代码301a、301b、301c……为这些源代码的整体,记载有该OS处理。另外,OS内核源代码301a、301b、301c……作为整体,与作为OS程序210(如后所述)存储在手机10的存储器107上的二进制数据对应。
非安全程序源代码(也称为通常程序)302a、302b、302c……,为分别记载有非安全处理的源代码(源程序)的计算机程序,包含有计算机指令,非安全程序源代码302a与作为非安全程序211(如后所述)存储在手机10的存储器107上的二进制数据对应。
安全程序调出部源代码303a为记述委托切换设备驱动程序器213(如后所述)调出存储于手机10的存储器107上的安全程序202(如后所述)的处理的源代码(源程序)即计算机程序,其包含有计算机指令,与作为非安全程序211(如后所述)存储在存储器107上的二进制数据对应。委托切换驱动器213的处理,在本实施方式中,为利用OS程序210的库呼叫进行的处理。对于安全程序调出部源代码303b、303c也是一样。
切换设备驱动程序源代码304a为记述有向储存器107上的安全程序调出部212委托的安全程序202的处理分支的处理的源代码(源程序)即计算机程序,含有计算机指令,与作为切换驱动器213(如后所述)存储在存储器107上的二进制数据对应。
地址指定文件322为指定通过OS依存链接部320制作的二进制的ROM数据或RAM数据的配置地址的文件。例如,地址指定文件322含有:对于通过OS依存链接部320生成的各OS依存二进制数据,表示在目标装置(即手机10)的存储器上应该配置的位置的物理地址。
(2)OS依存编译部310
OS依存编译部310将这些OS内核源代码301a、301b、301c……、非安全程序源代码302a、302b、302c……、安全程序调出部源代码303a、303b、303c……、切换设备驱动程序源代码304a、304b、304c……作为输入,将利用高级语言记述的程序代码变换为低级的机器语言(对象代码),即变换为执行形式的计算机程序,分别生成对象文件。
(3)OS依存链接部320
OS依存链接部320对在OS依存编译部310生成的各对象文件进行再配置和符号的解决,若各对象文件内存在有OS依存库321a、321b、321c……的函数符号,则链接到关联的OS依存库,生成OS依存二进制数据。
OS依存链接部320,在被指定了地址指定文件322后,在地址指定文件322内记载的逻辑地址上配置ROM数据、RAM数据。
(4)(形式变换部330)
形式变换部330将通过OS依存链接部320生成的各OS依存二进制数据变换为通过ROM写入器可以写入实际的ROM存储器的形式,生成OS依存二进制数据340a、340b、……,将生成的OS依存二进制数据340a、340b、……写入到信息存储部350。在通过形式变换部330生成的数据形式上,存在有Intel HEX形式和Motorola SRecord形式等。
(5)OS管理外的ROM/RAM的设定
编译装置30如以下所示地进行OS管理外的ROM/RAM的设定。
(a)OS管理外的RAM区域的确保
例如,相对于可以将物理地址“0x10000000”到物理地址“0x11FFFFFF”作为访问对象的存储空间进行操作的OS,将物理地址“0x10000000”到物理地址“0x11E00000”作为OS管理的RAM区域进行分配,将物理地址“0x11F00000”到物理地址“0x11FFFFFF”作为OS管理外的RAM区域进行分配的情况下,指定内核启动时需要的RAM存储参数的大小“0x1E00000”(字节),进行编译。
由此,从物理地址“0x10000000”开始的指定大小“0x1E00000”的区域成为OS管理的RAM区域,其它的区域成为OS管理外的RAM区域。
(b)安全程序用的OS管理外的ROM区域和OS管理外的RAM区域的物理-逻辑的变换(mapping)的设定
在对安全程序用的OS管理外的ROM区域和OS管理外的RAM区域的物理-逻辑的变换的情况下,按照如下进行。
在指定OS内核的存储变换的源文件中,存在指定存储映像(map)的构造体。在Linux的情况下,作为存储映像指定的构造体,准备有
map_desc standard_io_desc[]_initdata
static struct map_desc standard_io_desc[]_initdata={
MAP_DESC(逻辑地址、物理地址、大小、域属性、READ属性、WRITE属性、CACHE属性、BUFFER属性);
};
在此,在逻辑地址中指定了想要与物理地址对应的逻辑地址,在物理地址中指定了想要与逻辑地址进行对应的物理地址,在大小上,指定了想要从上述地址进行逻辑·物理地址对应的大小。在域属性中,指定是内核区域还是用户区域,在READ属性中,若可以READ则设定为“1”,若不可以READ则设定为“0”,在WRITE属性中,若可以WRITE则设定为“1”,若不可以WRITE则设定为“0”,在CACHE属性中,若缓存有效则设定为“1”,若缓存无效则设定为“0”,在BUFFER属性中,若BUFFER有效则设定为“1”,若BUFFER无效则设定为“0”。
如后述的图7所示,在指定OS管理外的ROM、RAM的情况下,相对于该构造体,如下地对源文件记述,对含有该源文件的内核源文件进行编译。
static struct map_standard_io_desc[]_initdata={
MAP_DESC(0xFFB00000,0x11 F00000,0x000FFFFF,DOMAI
N_KERNEL,0,1,1,1),/*安全程序用RAM*/
MAP_DESC(0xFFA00000,0x00260000,0x000FFFFF,DOMAIN
_KERNEL,0,0,1,1),/*安全程序用ROM*/
};
另外,安全程序的域属性为内核域,禁止从在OS上动作的通常软件进行访问。
另外,向安全程序的存储器的访问由于通过切换设备驱动程序执行,需要可从设备驱动程序执行READ/WRITE并且CPU缓存有效。
(6)总结
如上所述,OS内核源代码301a、301b、301c……、非安全程序源代码302a、302b、302c……、安全程序调出部源代码303a、303b、303c……、切换设备驱动程序器源代码304a、304b、304c……分别通过OS依存编译部310进行编译,通过编译而制作出的对象文件通过OS依存链接部320进行链接处理。通过OS依存链接部320生成的OS依存二进制数据通过形式变换部330变换为可以写入ROM的形式,OS依存二进制数据340a、340b、……写入到信息存储部350。
OS(基本程序)含有只将所述管理区域作为访问空间,相对于非安全程序(通常程序)对向所述管理区域的访问进行中介的指令,和相对于切换设备驱动程序(切换程序)指示向安全程序切换的指令。
非安全程序(通常程序)含有经由OS(基本程序),对所述管理区域进行访问的指令。
切换设备驱动程序(切换程序)含有通过OS(基本程序)的指示,进行向OS(基本程序)安全程序的执行的切换的指令。
安全程序,含有只将所述管理外区域作为访问空间、向所述管理外区域进行访问的指令。另外,安全程序的对象处理,含有例如在利用加密内容的所述内容密钥进行解密的处理结束后,进行从安全程序向基本程序的执行的切换的指令。
1.3编译装置40的构成
编译装置(也称为程序生成装置。)40,如图3所示,具有OS非依存编译部410、OS非依存链接部420、形式变换部430及信息存储部450。编译装置40生成配置于手机10的后述的存储器107的OS的管理外区域的二进制数据。
编译装置40,具体地说,为具有微处理器、ROM、RAM、硬盘单元、显示器、键盘、鼠标等的计算机系统。在所述RAM或所述硬盘单元上,存储有计算机程序。所述微处理器按照所述计算机程序进行动作,由此,构成编译装置40的OS非依存编译部410、OS非依存链接部420、形式变换部430达成其功能。
信息存储部450,存储有安全程序源代码401a、401b、401c、……、地址指定文件422、OS非依存库421a、421b、421c、……。另外,具有用于存储OS非依存二进制数据440a、440b、440c、……的区域。
安全程序源代码401a,为记述有利用秘密信息的处理的源代码(源程序)即计算机程序,含有计算机指令。该安全程序401a,在本实施方式中,为记述有用于对加密内容解密的解密处理的代码,与作为安全程序202(如后所述)存储在存储器107上的二进制数据对应。对应安全程序代码401b、401c、……也一样。
地址指定文件422,由于与图2说明的地址指定文件322相同因此省略说明。但是,为了将对应于安全程序代码401a、401b、401c、……生成的安全程序202等配置在OS程序210的管理外区域上,地址指定文件422指定管理外区域的地址。
OS非依存编译部410,将记述有OS非依存的处理的源代码从高级语言变换为低级的机器代码(对象)。OS非依存编译部410制作出符合CPU102的结构的机器代码。
OS非依存链接部420进行再配置和符号的解决,如果需要则制作出链接OS非依存库并且在CPU102上可以执行的库数据。OS非依存的意思为不链接OS依存库321a、321b、321c、……的意思。
形式变换部430,由于与图2说明的形式变换部330相同,因此省略了说明。
1.4存储卡20的构成
存储卡20如图4所示,具有通常区域120、安全区域130、输出输入部122、安全处理部132。
存储卡20,具体地讲,为微处理器、ROM、RAM等构成的计算机系统。所述RAM上,存储有计算机程序。所述微处理器按照所述计算机程序进行动作,因此存储卡20达成其一部分的功能。
通常区域120,为可以自由地由外部设备访问的存储区域,在本实施方式中,存储有加密内容121。
安全区域130为只可以被许可的外部设备进行访问的区域,存储有内容密钥131。
加密内容121为加密的音乐数据或动画数据,为将内容密钥131作为加密密钥利用加密算法进行了加密的数据。各加密数据通过内容ID进行识别。另外,在本实施方式中,加密内容121通过通用密钥方式被加密,将内容密钥131作为解密密钥而使用,从而可以取得解密的内容即音乐数据或动画数据。
输入输出部122进行外部设备和通常区域120和安全处理部132之间的各种数据的输出输入。
安全处理部132,在与外部设备之间,基于CPRM(ContentProtection for Recor dable Media)的结构进行相互认证,在认证成功的情况下,与认证后的设备共有密钥。利用共有的密钥,在与外部设备之间安全地进行数据的输入输出。另外,CPRM因为公知,因此是省略了说明。
1.5手机10的构成
手机10,如图4所示,具有调试器IF101、CPU102、MMU(MemoryManagement Unit)103、中断控制器104、输入部105、显示部106、存储器107、输入输出部108、缓冲器109、符号处理部110、D/A变换部111、无线通信控制部112、扬声器113、麦克风114、通信部115以及天线116,各电路通过总线连接。
(1)手机10的各构成要素
存储器107由ROM和RAM构成,存储有通过CPU102执行的各种程序。
CPU102具有取指令部、指令解码器、计算部、程序计数器、链接寄存器、堆栈指针等,从存储器107上的程序取得指令,对取得的指令进行译解,执行译解后的指令。
MMU103实现将逻辑地址向物理地址变换的虚拟存储功能。
调试器IF101为用于连接手机10和外部的调试器的接口。
中断控制器104对FIQ、IRQ等的硬件中断及软件中断(SWI)、预取异常中止、数据异常中止、复位等的各种中断进行检测,向CPU102的中断检测用的寄存器输出中断产生通知。
通信部115,在无线通线控制部112和手机网、与因特网连接的外部设备之间经由天线116进行信息的接收和发送。
无线通信控制部112具有基带部、调试解调部、放大部等,对经由通信部以及天线116接收发送的各种信息的信号进行处理。
符号处理部110按照MP3等的符号化技术对缓冲器109内存储的音乐数据解密处理,向D/A变换部111输出。
D/A变换部111将通过符号处理部110解密的音乐数据变换为模拟声音信号,向扬声器113输出。
输入部105具有数字键、确认按钮等各种按钮,接收利用者的这些操作。
显示部106具有VRAM、液晶画面,显示各种画面。
麦克风114,将声音变换为电信号,将生成的电信号向无线通信控制部112输出。
扬声器113从无线通信控制部112以及D/A变换部111接收模拟信号,将接收到的模拟信号变换为声音并输出。
(2)存储器107的构成
图5表示存储器107的构成。存储器107由ROM和RAM构成。在图5中,没有将ROM和RAM区别开进行图示,但是,ROM和RAM的区别在图7中进行了图示。
作为一例,如图5所示,存储器107存储有OS程序210、非安全程序211、安全程序调出部212、切换设备驱动程序213、安全程序202、IPL(Initial Program Loader)程序201。
另外,在本实施方式中,存储器107上,分割为OS管理的管理区域和OS管理外即管理外区域两部分而加以利用。在OS上动作的安全程序211、安全程序调出部212、切换设备驱动程序213存储在OS的管理区域。另外,IPL程序201、安全程序202存储在OS的管理外区域。作为这种分割方法,在后面说明。
这样安全程序202由于在OS管理外的管理外区域动作,因此,从OS上动作的软件调试程序进行的解析是不可能的,可以在安全的状态下进行安全程序的执行。
(各程序的说明)
IPL程序201,为汇编语言写的代码(计算机程序),进行OS启动需要的硬件的初始化,含有向OS的内核初始化处理分支的指令。另外,IPL程序201含有执行后述的ZI段A711的数据的初始化的指令。
OS程序210为操作系统,为进行内核初始化时OS利用的硬件的初始化、MMU103的设定和存储器管理以及文件的管理、用户接口的提供等的基本软件。
非安全程序211和安全程序调出部212和切换设备驱动程序213为OS管理的储存器上动作的程序组。
非安全程序211,为无需在安全环境下执行的应用程序。例如,管理手机10的GUI的应用程序以及管理个人的时间表的程序以及音乐再现应用程序等。在内容再现时,相对于存储卡20上存储的加密内容121,需要利用存储卡20上存储的内容密钥131安全地实施解密处理。音乐再现应用程序含有调出安全程序调出部212的解密处理要求。该解密处理要求表示利用了内容密钥131的加密内容121的解密处理。
安全程序调出部212为用于执行安全程序202的调出程序,向切换设备驱动程序213委托安全程序202的执行。
切换设备驱动程序213具有向管理外区域上存储的安全程序202转移处理的接口的功能。
安全程序202为使用秘密信息而进行处理的程序。在实施方式中,安全程序202为利用内容密钥131对加密内容121进行解密的解密程序。另外,安全程序202,在该安全程序202刚启动后,执行后述的ZI段B712的零初始化处理。
另外,在本实施方式中,存储器107由ROM和RAM构成,但是并不限定。存储器107可以具有能存储程序的程序存储部和能存储程序动作时利用的工作存储器的工作存储器存储单元。例如,作为程序存储单元,可以利用HDD(Hard Disk Drive)、EEPROM(ElectricallyErasable Programmable ROM)、FlashROM等,作为工作存储器存储装置,可以利用SDRAM(Synchronous DRAM)、SRAM(Static RAM)等。
上述OS程序210、非安全程序211、安全程序调出部212以及切换设备驱动程序213,在编译装置30上,作为一个以上的OS依存二进制数据而生成,安全程序202在编译装置40上,作为一个以上的OS非依存二进制数据而生成。
这样生成的一个以上的OS依存二进制数据和一个以上的OS非依存二进制数据,通过ROM写入器,写入到ROM。图5表示这样写入到ROM的结果。
(各二进制数据的段的构成)
在此,对通过编译装置30中的编译器以及由链接而生成的各OS依存二进制数据的段构成进行说明。
各OS依存二进制数据,如图6所示,具有ZI段501、RW段502、RO段503。
ZI段501为零初始化对象数据区域。在各程序的初始化的阶段,各段内的数据必须被初始化为零。
RW段502为可读写的段,是配置有可读写的数据的段。
RO段503为只能读的段,为配置有可执行的代码(指令)的段。
图5中,将存储器107内区分为ROM和RAM而进行记载,但是实际上,如图6所示,各OS依存二进制数据的ZI段和RW段配置在RAM上,对应于RO段的配置在ROM上。
另外,通过编译装置40中的编译器以及由链接生成的各OS非依存二进制数据440a、440b、……,也分别如图6所示,具有ZI段、RW段、RO段。
安全程序202启动前,构成安全程序202的ZI段必须被初始化为零。但是,若ZI段的大小太大,则零初始化处理需要时间。在重视终端的应答性能的电子设备中,要尽量削减初始化处理的时间,进行高速的安全程序202的启动。
为了该高速化,将ZI段分割为多个子段,在安全程序202启动以前,进行一部分的子段的零初始化处理,在安全程序202刚启动后,进行剩下的子段的零初始化处理。这样,通过初始化处理的分割,可以实现安全程序202中的初始化处理的高速化。对于该顺序,利用图10和图11在后面讲述。
(存储器107的逻辑地址和物理地址)
下面,对存储器107的逻辑地址和物理地址进行简单的说明。
在各程序中利用的地址为逻辑地址,MMU103将其变换为物理地址,而实际上对存储器107进行访问。即,上述OS程序210、非安全程序211、安全程序调出部212、切换设备驱动程序213以及安全程序211中,指示存储器107形成的存储空间的地址为逻辑地址,MMU103将利用在这些程序上的逻辑地址变换为物理地址,通过物理地址,进行向指示存储器107形成的存储空间的区域的访问。
在刚启动手机10的电源后,MMU103没有进行初始化的情况下,各程序上没有被分配逻辑地址。另外,物理地址和逻辑地址的变换作业在MMU103处于有效的状态时可以。
(存储器107的存储映像(map))
图7表示存储器107上的物理地址和逻辑地址的对应关系。
在存储器107上,如上所述,配置有安全程序202、IPL程序201、OS程序210、非安全程序211、安全程序调出部212以及切换设备驱动程序213,另外,配置有OS用主存储器601和安全程序用工作存储器602。
在此,安全程序202配置在ROM上的OS的管理外区域651,OS程序210、非安全程序211、安全程序调出部212以及切换设备驱动程序213配置在ROM上的OS管理区域652。另外,OS用主存储器601配置在RAM上的OS的管理区域653,非安全程序用工作存储器602配置在RAM上的OS的管理外区域654。
从物理地址0x08000000到0x080C0000表示的ROM内的区域上存在有IPL程序201。IPL程序201为OS程序210启动之前执行的代码(程序指令),在IPL程序201上,没有分配逻辑地址。另外,在本说明书中,以0x开头的字符串为16进制的表示方法。
OS程序210、非安全程序211、安全程序调出部212以及切换设备驱动程序213,存在于从物理地址0x080D0000到0x0BE10000表示的ROM内的区域上,在该区域上,通过OS分配有逻辑地址0xD0000000到0xD3D40000。
OS用主存储器601是OS及OS上动作的程序利用的工作存储器,存在于物理地址0x10000000到0x11E00000的RAM内的区域,在该区域,分配有逻辑地址0xC0000000到0xC1E00000。
安全程序202,由安全程序的执行代码(计算机指令)写成,存在于物理地址0x00260000到0x00350000的ROM内的区域,在该区域,分配有逻辑地址0xFFA00000到0xFFAFFFFF。
安全程序用工作存储器602为安全程序202利用的工作存储器,存在于物理地址0x11F00000到0x11FFFFFF的RAM内的区域,在该区域,分配有逻辑地址0xFFB00000到0xFFBFFFFF。
上述这样的逻辑地址的制定,在OS程序210的内核的初始化处理中进行。
另外,在编译装置30存储的、OS依存链接部320中利用的地址指定文件322,以及编译装置40存储的、OS非依存链接部420上利用的地址制定文件422中,如上述这样的分配有地址。
另外,在本实施方式中,如上述这样的分配有物理地址和逻辑地址,但是由安装对象的设备的不同而不同,本发明并不限定该地址值。
(安全程序202和安全程序用工作存储器602)
下面,利用图8,对安全程序202和安全程序用工作存储器602的内容进行进一步的详细说明。
安全程序用工作存储器602,具有将ZI段分割为两个的ZI段A711和ZI段B712,以及RW段713。
ZI段A711和ZI段B712,在安全程序202执行之前进行零初始化,为收容有安全程序202利用的数据的数据收容段。在本实施方式中,为了高速进行安全程序202的初始化处理,ZI段分割为ZI段A711和ZI段B712
安全程序用工作存储器602的ZI段的零初始化处理中,在手机10刚通上电源后,通过IPL程序201,执行ZI段A711的零初始化处理,然后在用户要求内容再现、安全程序202刚启动后,通过安全程序202执行ZI段B712的零初始化处理。
这样在用户要求内容再现之前,通过进行ZI段A711的零初始化处理,可以缩短从用户要求内容再现后到安全程序202的初始化处理结束的时间,可以缩短用户的等待时间。另外,通过ZI段的初始化处理的分散,可以使不正当解析者对安全程序202的解析变得困难。
RW段713为收容有安全程序202利用的可读写的数据的区域。
另外,安全程序用工作存储器602可以作为安全程序202的堆栈区域进行利用。
安全程序202具有安全API分支处理701、ZI段B初始化API702、安全API_A703以及安全API_B704。
安全API分支处理701、ZI段B初始化API702、安全API_A703以及安全API_B704,如图8所示,分别收容在通过逻辑地址“0xFFA00000”、“0xFFA01000”、“0xFFA02000”、“0xFFA03000”表示开始位置的安全程序202内的区域。
安全API分支处理701收容有API分支表格800(后述),该API分支表格800包含有分别朝向ZI段B初始化API702、安全API_A703以及安全API_B704的分支目的地地址信息。
识别安全程序202的各API的标识符,从安全程序调出部212,经由切换设备驱动程序213,向安全API分支处理701输出。安全API分支处理701通过切换设备驱动程序213得到标识符,抽取与从API分支表格800得到的标识符对应的分支目的地地址,向抽取的分支目的地地址分支执行。
ZI段B初始化API702为进行ZI段B712的零初始化处理的执行代码(程序指令)。
安全API_A703以及安全API_B704分别为进行安全程序的API处理的执行代码(程序指令)。
另外,在本实施方式1中,将安全程序的安全的API作为安全API_A703以及安全API_B704的两个进行了说明,但是并不限定为两个,也可以为两个以上。
(API分支表格800的数据结构)
图9表示API分支表格800的数据结构。
API分支表格800,由多个分支目的地地址信息811、812以及813构成,分支目的地地址信息811、812以及813分别与安全程序202中包含的ZI段B初始化API702、安全API_A703以及安全API_B704对应,各分支目的地地址信息含有标识符和分支目的地地址。
在此,标识符为用于识别对应于含有该标识符的分支目的地地址信息的API的识别信息。另外,分支目的地地址为表示对应于含有该分支目的地地址的分支目的地地址信息的API收容在安全程序202内的位置的逻辑地址。
然后,对分支目的地地址信息811、812、813进行进一步的说明。
分支目的地地址信息811,如图9所示,包含标识符801“1”和分支目的地地址802“0xFFA01000”。分支目的地地址信息811表示了如下情况,即,标识符801“1”被分配给ZI段B初始化API702,在由逻辑地址“0xFFA01000”表示开始位置的安全程序202内的区域中存储ZI段B初始化API702的执行代码(程序指令)。
所以,作为标识符指定了“1”,通过安全API分支处理701,分支为“0xFFA01000”后,执行ZI段B初始化API702。
另外,分支目的地地址信息812,如图9所示,含有标识符803“2”和分支目的地地址804“0xFFA02000”。分支目的地地址信息812表示如下情况,即,标识符803“2”被分配给安全API_A703,在通过逻辑地址“0xFFA02000”表示开始位置的安全程序202内的区域内,存储安全API_A703的执行代码(程序指令)。
所以,作为标识符指定了“2”,通过安全API分支处理701,分支为“0xFFA02000”后,执行安全API_A703。
另外,分支目的地地址信息813,如图9所示,含有标识符805“3”和分支目的地地址806“0xFFA03000”。分支目的地地址信息813表示如下情况,即,标识符805“3”被分配给安全API_A704,在通过逻辑地址“0xFFA03000”表示开始位置的安全程序202内的区域内,存储安全API_A704的执行代码(程序指令)。
所以,作为标识符指定了“3”,通过安全API分支处理701,分支为“0xFFA03000”后,执行安全API_B704。
在本实施方式中,API分支表格800由含有标识符和分支目的地地址的多个分支目的地地址信息构成,但是该构成并限定,可以收容用于进行分支为希望的API的处理的地址信息。
(3)安全API的执行顺序
下面对到安全程序202的安全API执行为止的顺序进行说明。
(a)到应用软件启动为止的顺序
在此,利用图10,对复位后,启动OS程序210,在OS上动作的应用软件启动为止的顺序进行说明。
在本实施方式中,安全程序202为了缩短存储器107内的OS管理外区域中作为工作存储器(RAM)利用的安全程序用工作存储器602内的ZI段的数据的初始化处理所涉及的时间,如上所述,分割安全程序的RAM数据的初始化处理。具体的讲,将ZI段的初始化处理分割为两阶段。
手机10通过利用者接通电源后,得到复位(步骤S900)。
复位后,IPL程序201对OS启动时需要的硬件初始化(步骤S901)。
然后,IPL程序201实施ZI段A711的数据的初始化。(步骤S902)
在ZI段A711的数据的初始化结束后,分支为内核(步骤S903~S904)。
在分支为内核后,执行以下表示的内核的初始化处理。首先,作为内核的初始化处理,执行MMU103的初始化(步骤S905),然后,执行手机10具有的、OS利用的各种设备的初始化(步骤S906)。
在内核的初始化结束后,OS启动,之后,启动各应用软件(步骤S907)。
在此,在应用软件中可以存在通过用户操作而启动的软件。在步骤S907执行后,作为手机的功能成为有效,成为可以接收信息的状态,成为用户可以进行手机上的各种操作的状态。
(b)到安全程序202的执行为止的顺序。
在此,利用图11以及图12对到执行安全程序202为止的顺序进行说明。
在此,图11表示到安全程序202的ZI段的初始化处理结束为止的顺序,图12表示安全程序202的ZI段的初始化处理结束后,安全API启动为止的顺序。
在用户进行了音乐再现的按钮操作后(步骤S1000),OS向安全程序调出部212转移处理(步骤S1001~步骤S1002)。
然后,安全程序调出部212,打开切换设备驱动程序213(步骤S1003),作为标识符指定“1”,现对于切换设备驱动程序213进行库呼叫,向切换设备驱动程序213转移处理(步骤S1004~步骤S1005)。
然后,接收了标识符“1”的切换设备驱动程序213,分支为安全API分支处理701,向安全API分支处理701转移处理(步骤S1006~步骤S1007)。
安全API分支处理701将堆栈指针的设定返回到安全程序202利用的设定(步骤S1008),从API分支表格800得到对应于标识符“1”的分支目的地地址。在此,取得与标识符“1”对应的ZI段B初始化API702的分支目的地地址802“0xFFA01000”,分支为逻辑地址“0xFFA01000”表示的收容位置中收容的执行代码,即ZI段B初始化API702(步骤S1009~步骤S1010)。
在处理分支为“0xFFA01000”后,执行ZI段B初始化API702(步骤S1011)。由此,ZI段B初始化API702的初始化结束。
ZI段B712初始化结束后,安全API分支处理701将堆栈指针的设定返回到OS利用的设定(步骤S1012)。
之后,向OS上动作的安全程序调出部212转移处理(步骤S1013~步骤S1014)。
由此,安全API_A703以及安全API_A704利用的ZI段A711以及ZI段B712的初始化结束。
然后,安全程序调出部212指定安全API的标识符,相对于切换设备驱动程序213进行库呼叫,向切换设备驱动程序213转移处理(步骤S1015~步骤S1016)。
切换设备驱动程序213,将指定的标识符向安全API分支处理701输出,向安全API分支处理701分支(S1017~步骤S1018)。
安全API分支处理701将堆栈指针的设定返回到安全程序202利用的设定(步骤S1019),然后,从API分支表格800取得与接收的标识符对应的分支目的地地址,向取得的分支目的地地址分支(S1020~步骤S1021)。
然后,执行分支目的地地址表示的位置上收容的安全程序202的API处理(步骤S1022)。
安全API的处理结束后,将堆栈指针的设定返回到OS利用的设定(步骤S1023),之后,向安全程序调出部212以及OS转移处理(步骤S1024~步骤S1026)。
图12所示的步骤S1015~步骤S1026的处理,可以在图11所示的步骤S1000到步骤S1014的处理结束后,多次执行。图11所示的全部的步骤结束的意思为安全程序执行时应该被初始化的ZI段的初始化处理结束。
另外,在本实施方式中,安全API_A703为进行内容密钥取得的计算机程序,安全API_A704为利用内容密钥131对加密内容121进行解密的计算机程序。
该情况下,首先执行图11所示的全部的步骤,结束ZI段的初始化。然后,将标识符作为“2”,通过执行图12所示的全部的步骤,取得内容密钥131。然后,将标识符作为“3”,通过执行图12所示的全部的步骤,利用内容密钥131对加密内容121进行解密。
2.其它的变形例
基于上述实施方式对本发明进行了说明,但是,本发明当然不限定于上述实施方式。本发明也包含以下的情况。
(1)安全程序202,也可以是,在安全程序202的执行中,在IRQ、FIQ、软件中断等的中断产生的情况下,暂时中断安全程序202的处理,对安全程序202的处理对象的安全数据进行解密,在对应于中断的处理结束后,对加密安全数据进行解密,从暂时中断安全程序202的处理的点开始,继续执行安全程序202的处理。具体如下所述。
在通过IPL初始化的区域即ZI段A711以及通过安全程序202初始化的区域即ZI段B712上,设置有安全程序202的初始化结束标志。初始化结束标志,在安全程序202的ZI段B712的初始化结束后设定为“1”,在安全程序202执行期间总为“1”。
这样,可以将初始化结束标志设置在ZI段上。但是并不限定为ZI段,也可以在RW段上设置初始化结束标志。
一般地,在计算机系统中,在产生IRQ、FIQ、软件中断等中断时,向CPU的例外矢量表格分支。在例外矢量表格上,按照每个中断原因登录有中断处理例行程序,通过例外矢量表格,按照每个中断原因向中断处理例行程序分支,进行希望的中断处理。
在本实施例中,在例外矢量表格上,预先以中断产生后向安全程序202分支的方式进行了登录。由此,在每次中断产生时,暂时将处理向安全程序202转移。
利用图13对安全程序202执行中中断产生的情况的顺序进行说明。
安全程序202在ZI段B的初始化结束后(步骤S1011),然后将初始化结束标志设为“1”(步骤S1201)。
安全程序202在执行期间,初始化结束标志总是为“1”。
安全程序202开始安全API的执行(步骤S1022)。
在IRQ、FIQ、软件中断等中断产生后(步骤S1202),向CPU的例外矢量表格转移处理。在例外矢量表格上,预先以向安全程序202分支的方式,登录有矢量,因此向安全程序202分支(步骤S1203)。
在向安全程序202分支后,安全程序202对初始化结束标志是否为“1”进行判断(步骤S1204)。
若初始化结束标志为“1”(步骤S1204为YES),由于安全程序202的成为对象的处理在执行中,安全程序202避开中断产生时的点(步骤S1206),对安全程序202执行中利用的与安全信息关联的安全数据(随机数据)进行加密生成加密安全数据(步骤S1207)。在加密安全数据生成后,处理转移向OS(步骤S1208),OS执行中断处理(步骤S1209),中断处理结束后,向安全程序202转移处理(步骤S1210)。安全程序202判断初始化结束表示是否为“1”(步骤S1211)。初始化结束表示若为“1”(步骤S1211为YES),则安全程序202对加密安全数据进行解密生成解密安全数据(步骤S1213),产生中断并恢复到安全程序202的处理中断的点(步骤S1214),继续安全程序202的处理(步骤S1215)。
安全程序202的对象即处理的执行刚要结束之前,安全程序202将初始化结束表示设定为“0”(步骤S1216),之后,结束安全程序202的执行。
初始化结束表示若不为“1”(步骤S1204为NO,或步骤S1211为NO),则向OS转移处理(步骤S1205或步骤S1212)。
(2)本实施方式中,安全程序202为对加密内容解密的解密程序,但是不限于此,也可以为对秘密信息进行处理的程序。
(3)在本实施方式中,切换设备驱动程序213具有从OS依存二进制数据向OS非依存二进制数据的切换接口的功能,但是也可以不利用切换设备驱动程序213而直接从安全程序调出部212向安全API分支处理701分支。
(4)本实施方式中,安全API分支处理701将堆栈指针的设定返回到安全程序202利用的设定,另外,将堆栈指针的设定返回到OS利用的设定,但是不限于此。
切换设备驱动程序213,在从OS向安全程序切换时,对切换时OS利用的堆栈指针退让,可以包含将堆栈指针的设定返回到预先避让的安全程序用的堆栈指针的指令。另外,切换设备驱动程序213,在从安全程序向OS切换时,对切换时安全程序利用的堆栈指针避让,可以包含将堆栈指针的设定返回到预先避让的OS用的堆栈指针的指令。
另外,安全API分支处理701可以进行上述处理。
(5)上述安全程序,可以为构成BIOS(Basic Input/OutputSystem)的一部分的程序。BIOS一般地为对与计算机来连接的盘驱动器、键盘、视频卡等周边设备进行控制的程序组。
(6)在上述实施方式中,编译装置30以及编译装置40,为不同的装置,但是也不限于此。也可以由具有编译装置30及编译装置40各自具有的构成要素的一台编译装置构成。
该编译装置具有:对构成操作系统的源代码进行编译,生成第一对象的第一编译部;进行所述第一对象的符号解决和再配置和第一库中包含的程序的链接,生成操作系统即可执行形式的第一软件的第一链接部;对构成利用隐匿信息的处理的源代码实施编译,生成第二对象的第二编译部;进行所述第二对象的符号解决和再配置和第二库中包含的程序的链接,生成利用隐匿信息的处理构成的可执行形式的第二软件的第二链接部。
(7)本实施方式中,没有示出相对安全程序源代码防篡改化的例子,但也可以相对于安全程序源代码实施防篡改化手法。
所谓防篡改化手法是指,相对于原始代码(程序指令),进行不影响执行的不需要的冗余代码的追加、将某个指令代码置换为其它的等价的指令代码,进行控制结构的复杂化,将一个模块(程序指令的集合)分割为多个模块等的难读化,或预先对原始代码加密,在执行时进行解密。通过适用防篡改方法可以提高安全程序202的安全等级。在实施代码加密的情况下,展开解密的代码的RAM区域为OS不能访问的区域即管理外区域。
关于该技术,因为在非专利文献1、非专利文献2、非专利文献3中进行了详细的叙述,因此省略了说明。
(8)在上述实施方式中,通过IPL程序201,执行ZI段A711的零初始化处理,然后用户作出内容再现要求,在安全程序202刚启动后,通过安全程序202,执行ZI段B712的零初始化处理,但是不限于此。
也可以通过IPL程序201,执行ZI段A711中的一部分变量的零初始化处理,通过安全程序202,执行ZI段B712的一部分的变量的零初始化处理。
另外,在上述实施方式以及变形例中,将ZI段初始为零值,但是不限于此。零值以外的固定值例如“0xffff”等也可以写入到ZI段中。
(9)如上所述,本发明的安全处理装置的特征在于,具有程序存储部和数据存储部,所述程序存储部存储第一软件和第二软件,所述数据存储部由第一数据存储部和第二数据存储部构成,所述第一数据存储部为所述第一软件可以访问的区域,所述第二数据存储部为所述第二软件可以访问的区域,所述第一软件不能对所述第二数据存储部进行访问。
在此,所述第一软件可以为操作系统,所述第二软件可以为利用秘密信息的软件。
在此,第一编译器将第一软件的源代码作为输入,将第一对象作为输出,第一链接程序具有将所述第一对象的符号解决和再配置和第一库链接的功能,将所述第一对象作为输入,将所述第一软件作为输出,所述第一软件为通过所述第一编译器以及所述第一链接程序制作出的可执行数据,第二编译器为与所述第一编译器不同的编译器,将所述第二软件的源代码作为输入,将第二对象作为数据,第二链接程序为与所述第一链接程序不同的链接程序,具有将所述第二对象的符号解决和再配置和第二库组链接的功能,将所述第二对象作为输入,将所述第二软件作为输出,所述第二软件可以为通过所述第二编译器以及所述第二链接程序制作的可执行数据。
在此,所述第二软件可以为相对于篡改和解析具有抗性的软件。
在此,可以将所述第二软件利用的所述第二数据存储部的初始化处理至少分割为一个以上的分割初始化处理。
在此,所述分割初始化处理中,至少一个以上的分割初始化处理,可以在所述第二软件的执行要求产生之前进行执行。
在此,所述分割初始化处理,以在所述第二软件的执行前被处理的方式进行分散,存储在所述程序存储部。
在此,所述程序存储部可以还含有IPL,所述IPL执行至少一个以上的所述分割初始化处理。
在此,所述程序存储部可以还含有切换设备驱动程序,所述切换设备驱动程序将处理从所述第一软件转移到第二软件。
在此,所述切换设备驱动程序管理所述第一软件利用的第一堆栈指针和所述第二软件利用的第二堆栈指针,在所述第一软件执行的情况下,所述切换设备驱动程序将堆栈指针设定为所述第一堆栈指针,在所述第二软件执行的情况下,将所述切换设备驱动程序将堆栈指针设定为所述第二堆栈指针。
(10)所述各装置,具体地说,为微处理器、ROM、RAM等构成的计算机系统。在所述RAM上,存储有计算机程序。在此,计算机程序为了达成预定的功能,为表示相对于计算机的指令的指令代码多个组合构成的程序。所述微处理器按照所述计算机程序进行动作,各装置达成其功能。即,所述微处理器将所述计算机程序中包含的各指令一个一个读出,对读出的指令进行译解,按照译解结果进行动作。
(11)构成所述各装置的构成要素的一部分或全部,可以由一个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI将多个构成部集成在一个芯片上而制造出来的超多功能LSI,具体地讲,为含有微处理器、ROM、RAM等而构成的计算机系统。在所述RAM上,存储有计算机程序。所述微处理器通过按照所述计算机程序动作,由此系统达成其功能。
另外,构成上述各装置的构成要素的各部,可以单独地一芯片化,也可以包含一部分或全部地一芯片化。另外,在此称为LSI,但是由于集成度的不同,也称为IC、系统LSI、超级LSI、终极LSI。
另外,集成电路化的手法也不限于LSI,也可以通过专用电路或通用处理器执行。可以利用在LSI制造后可以进行可编程的FPGA(Field Programmable Gate Array)、或可再构成LSI内部的电路单元的连接或设定的可重构处理器。
另外,由半导体技术的进步或派生的其它技术导致代替LSI的集成电路化的技术出现,当然可以利用该技术进行功能块的集成化。有适应生物工艺学技术的可能性等。
(12)构成上述的各装置的构成要素的一部分或全部可以由可在各装置上安装拆卸的IC卡或单体模块构成。所述IC卡或所述模块,为微处理器、ROM、RAM等构成的计算机系统。所述IC卡或所述模块可以含有上述的超多功能LSI。微处理器按照计算机程序进行动作,由此所述IC卡或所述模块达成其功能。该IC卡或该模块具有防篡改性。
(13)本发明可以为上述表示的方法。另外,也可以为通过计算机实现这些方法的计算机程序,也可以是所述计算机程序构成的数字信号。
另外,本发明可以将所述计算机程序或所述数字信号记录在计算机可读取的记录介质,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等上。另外,可以为记录在这些记录介质上的所述计算机程序或所述数字信号。
另外,本发明可以经由电信线路、无线或有线通信线路、以因特网为代表的网络、数据发送等对所述计算机程序或所述数字信号进行传送。
另外,本发明为具有微处理器和存储器的计算机系统,所述存储器存储所述计算机程序,所述微处理器按照所述计算机程序进行动作。
另外,通过将所述程序或所述数字信号记录在所述记录介质上进行输送,或通过经由所述网络等对所述程序或所述数字信号进行输送,可以通过独立的其它计算机系统实施。
(14)可以将所述实施方式和所述变形例分别进行组合。
产业上的可利用性
本发明的安全处理装置以及方法具有如下的效果,即通过在OS管理外的存储器上动作利用了秘密信息的程序,可以起到防止来自OS上动作的软件调试程序的解析的效果,并且通过对OS管理外动作的程序的RAM数据的初始化处理进行分割,可以起到缩短从用户要求产生后到所述程序启动为止的处理的效果,作为安全的软件的处理方法是有用的。
构成本发明的各装置,在制作内容、配售的内容配售产业中,或在对需要维持其它的秘密的信息的产业中可以经营地、或连续反复地使用。另外,构成本发明的各装置,在电器制造产业中,可以经营地、或连续反复地进行制造或销售。
Claims (13)
1.一种计算机系统,其特征在于:
具有微处理器和存储单元,该微处理器读出并译解基本程序、通常程序以及安全程序中包含的各指令,对应于该译解结果进行动作;该存储单元包括管理区域和与所述管理区域不同的管理外区域,
所述基本程序构成操作系统,包含相对于所述通常程序对只将所述管理区域作为访问空间的访问进行中介的指令,
所述通常程序含有经由所述基本程序、对所述管理区域进行访问的指令,
所述安全程序为不依存于操作系统的程序,含有只将所述管理外区域作为访问空间而访问的指令。
2.如权利要求1所述的计算机系统,其特征在于:
所述管理区域还存储有所述基本程序以及所述通常程序,
所述管理外区域还存储有所述安全程序,
所述处理器读出所述管理区域中存储的所述基本程序、所述通常程序中包含的各指令,读出所述管理外区域中存储的所述安全程序中包含的各指令。
3.如权利要求2所述的计算机系统,其特征在于:
所述安全程序含有进行隐匿处理的指令,该隐匿处理相关于收容在所述管理外区域的应该隐匿的信息。
4.如权利要求3所述的计算机系统,其特征在于:
所述管理区域还存储有切换程序,该切换程序含有根据基本程序的指示进行从基本程序向安全程序的执行的切换的指令,
所述处理器还读出并译解所述管理区域中存储的所述切换程序中包含的指令,对应于该译解结果进行动作,
所述基本程序还具有对所述切换程序指示向安全程序的切换的指令,
所述安全程序还具有在所述隐匿处理结束后进行从安全程序向基本程序的执行切换的指令。
5.如权利要求4所述的计算机系统,其特征在于:
所述切换程序,含有在从安全程序向基本程序的执行切换时将堆栈指针的设定返回到基本程序利用的设定的指令,含有在从安全程序向基本程序的执行切换时将堆栈指针的设定返回到安全利用的设定的指令。
6.如权利要求3所述的计算机系统,其特征在于:
所述安全程序被实施难读化。
7.如权利要求3所述的计算机系统,其特征在于:
所述安全程序需要初始化处理,初始化处理通过多个程序进行。
8.如权利要求7所述的计算机系统,其特征在于:
所述多个初始化程序在由所述安全程序进行的所述隐匿处理之前执行。
9.如权利要求8所述的计算机系统,其特征在于:
所述多个初始化程序中的一部分初始化程序,在与其它初始程序不同的时期执行。
10.如权利要求9所述的计算机系统,其特征在于:
一部分初始化程序在该计算机系统的刚复位后执行,
安全程序中包含的初始化程序在要求安全程序的执行时执行。
11.一种集成电路,其特征在于:
具有微处理器和存储单元,该微处理器读出并译解基本程序、通常程序以及安全程序中包含的各指令,对应于该译解结果进行动作;该存储单元包括管理区域和与所述管理区域不同的管理外区域,
所述基本程序构成操作系统,包含相对于所述通常程序对只将所述管理区域作为访问空间的访问进行中介的指令,
所述通常程序含有经由所述基本程序、对所述管理区域进行访问的指令,
所述安全程序为不依存于操作系统的程序,含有只将所述管理外区域作为访问空间而访问的指令。
12.一种程序生成装置,其特征在于,具有:
第一对象生成部,从构成操作系统的源代码,生成只对执行对象的装置具有的管理区域进行访问的第一对象;以及
第二对象生成部,从使用隐匿信息的处理的源代码,生成只对所述执行对象的装置具有的、与所述管理区域不同的管理外区域进行访问的第二对象。
13.一种记录介质,其为记录有基本程序以及安全程序的计算机可读取的记录介质,其特征在于:
所述基本程序构成操作系统,包含相对于所述操作系统管理下动作的所述通常程序、对只将执行对象的装置具有的管理区域作为访问空间的访问进行中介的指令,
所述安全程序为不依存于操作系统的程序,含有只将所述执行对象的装置具有的、与所述管理区域不同的管理外区域作为访问空间而访问的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005161359 | 2005-06-01 | ||
JP161359/2005 | 2005-06-01 | ||
PCT/JP2006/310744 WO2006129641A1 (ja) | 2005-06-01 | 2006-05-30 | コンピュータシステム及びプログラム生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101189586A true CN101189586A (zh) | 2008-05-28 |
CN101189586B CN101189586B (zh) | 2011-06-15 |
Family
ID=37481570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800191820A Expired - Fee Related CN101189586B (zh) | 2005-06-01 | 2006-05-30 | 计算机系统及程序生成装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7962746B2 (zh) |
EP (1) | EP1890237A1 (zh) |
JP (1) | JP4850830B2 (zh) |
KR (1) | KR20080014786A (zh) |
CN (1) | CN101189586B (zh) |
WO (1) | WO2006129641A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054136A (zh) * | 2009-11-03 | 2011-05-11 | 联发科技股份有限公司 | 计算系统与计算方法 |
CN102404313A (zh) * | 2010-09-28 | 2012-04-04 | 微软公司 | 网络上的对象安全性 |
CN107580765A (zh) * | 2015-01-27 | 2018-01-12 | 艾锐势有限责任公司 | 用于保护流媒体和其它数据流的混淆 |
CN108416209A (zh) * | 2018-03-07 | 2018-08-17 | 北京元心科技有限公司 | 程序安全验证方法、装置及终端设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861046B2 (en) * | 2007-06-29 | 2010-12-28 | Sandisk Corporation | Secure digital host sector application flag compression |
JP2009070327A (ja) * | 2007-09-18 | 2009-04-02 | Panasonic Corp | 情報端末及び情報端末の制御方法 |
US8775824B2 (en) * | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
JP4953385B2 (ja) * | 2008-03-17 | 2012-06-13 | 株式会社日立ソリューションズ | アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 |
US9086913B2 (en) * | 2008-12-31 | 2015-07-21 | Intel Corporation | Processor extensions for execution of secure embedded containers |
US8910307B2 (en) | 2012-05-10 | 2014-12-09 | Qualcomm Incorporated | Hardware enforced output security settings |
GB2515047B (en) | 2013-06-12 | 2021-02-10 | Advanced Risc Mach Ltd | Security protection of software libraries in a data processing apparatus |
CN103365687B (zh) * | 2013-06-28 | 2017-02-08 | 北京创毅讯联科技股份有限公司 | 处理器启动方法、装置及提供初始程序装入程序的装置 |
US10754967B1 (en) * | 2014-12-15 | 2020-08-25 | Marvell Asia Pte, Ltd. | Secure interrupt handling between security zones |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0290330A (ja) * | 1988-09-28 | 1990-03-29 | Hitachi Ltd | プログラム構成方式 |
US5522072A (en) * | 1990-09-04 | 1996-05-28 | At&T Corp. | Arrangement for efficiently transferring program execution between subprograms |
US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
US5826057A (en) * | 1992-01-16 | 1998-10-20 | Kabushiki Kaisha Toshiba | Method for managing virtual address space at improved space utilization efficiency |
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
US5892899A (en) * | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
US5757919A (en) * | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US6393569B1 (en) * | 1996-12-18 | 2002-05-21 | Alexander S. Orenshteyn | Secured system for accessing application services from a remote station |
JP3718578B2 (ja) | 1997-06-25 | 2005-11-24 | ソニー株式会社 | メモリ管理方法及びメモリ管理装置 |
US6269409B1 (en) * | 1997-09-02 | 2001-07-31 | Lsi Logic Corporation | Method and apparatus for concurrent execution of operating systems |
US6772419B1 (en) * | 1997-09-12 | 2004-08-03 | Hitachi, Ltd. | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS |
US6996828B1 (en) * | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
US6385727B1 (en) * | 1998-09-25 | 2002-05-07 | Hughes Electronics Corporation | Apparatus for providing a secure processing environment |
US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
JP2001290665A (ja) * | 2000-04-11 | 2001-10-19 | Nec Software Hokuriku Ltd | プロセッサシステム |
AU2001247941B2 (en) * | 2000-04-11 | 2007-09-06 | Mathis, Richard M. | Method and apparatus for computer memory protection and verification |
US6889378B2 (en) * | 2000-07-24 | 2005-05-03 | Sony Corporation | Information processing method, inter-task communication method, and computer-executable program for the same |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
JP2002251326A (ja) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | 耐タンパ計算機システム |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
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 |
JP2003280754A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
JP2003280755A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 自己復元型プログラム、プログラム生成方法及び装置、情報処理装置並びにプログラム |
US7313797B2 (en) * | 2002-09-18 | 2007-12-25 | Wind River Systems, Inc. | Uniprocessor operating system design facilitating fast context switching |
GB2395583B (en) * | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
KR100941104B1 (ko) * | 2002-11-18 | 2010-02-10 | 에이알엠 리미티드 | 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체 |
GB2411254B (en) * | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
KR101099463B1 (ko) * | 2002-11-18 | 2011-12-28 | 에이알엠 리미티드 | 보안 도메인과 비보안 도메인을 갖는 시스템 내에서 가상메모리 어드레스의 물리적 메모리 어드레스로의 매핑 |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
AU2003278342A1 (en) * | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
DE60308215T2 (de) * | 2002-11-18 | 2007-08-23 | Arm Ltd., Cherry Hinton | Prozessorschaltung zwischen sicheren und nicht sicheren modi |
GB2396930B (en) * | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
GB2396451B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US7539853B2 (en) * | 2002-11-18 | 2009-05-26 | Arm Limited | Handling interrupts in data processing of data in which only a portion of a function has been processed |
US7370210B2 (en) * | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
GB2411027B (en) * | 2002-11-18 | 2006-03-15 | Advanced Risc Mach Ltd | Control of access to a memory by a device |
US7231476B2 (en) * | 2002-11-18 | 2007-06-12 | Arm Limited | Function control for a processor |
GB2396034B (en) * | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
GB2396712B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
US7117284B2 (en) * | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
GB2396713B (en) * | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
US7149862B2 (en) * | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US20040168078A1 (en) * | 2002-12-04 | 2004-08-26 | Brodley Carla E. | Apparatus, system and method for protecting function return address |
JP4347582B2 (ja) * | 2003-02-04 | 2009-10-21 | パナソニック株式会社 | 情報処理装置 |
US7401335B2 (en) * | 2003-02-28 | 2008-07-15 | Wind River Systems, Inc. | Single stack kernel |
US20040243783A1 (en) * | 2003-05-30 | 2004-12-02 | Zhimin Ding | Method and apparatus for multi-mode operation in a semiconductor circuit |
US7415618B2 (en) * | 2003-09-25 | 2008-08-19 | Sun Microsystems, Inc. | Permutation of opcode values for application program obfuscation |
KR20070005917A (ko) * | 2003-09-30 | 2007-01-10 | 쟈루나 에스에이 | 운영체제 |
WO2005052769A1 (ja) * | 2003-11-28 | 2005-06-09 | Matsushita Electric Industrial Co.,Ltd. | データ処理装置 |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
FR2872933B1 (fr) * | 2004-07-06 | 2008-01-25 | Trusted Logic Sa | Procede de partage de temps d'un processeur |
EP2296089B1 (en) * | 2004-08-18 | 2019-07-03 | Red Bend Software | Operating systems |
US7568186B2 (en) * | 2005-06-07 | 2009-07-28 | International Business Machines Corporation | Employing a mirror probe handler for seamless access to arguments of a probed function |
US7797681B2 (en) * | 2006-05-11 | 2010-09-14 | Arm Limited | Stack memory selection upon exception in a data processing system |
-
2006
- 2006-05-30 JP JP2007518997A patent/JP4850830B2/ja active Active
- 2006-05-30 CN CN2006800191820A patent/CN101189586B/zh not_active Expired - Fee Related
- 2006-05-30 WO PCT/JP2006/310744 patent/WO2006129641A1/ja active Application Filing
- 2006-05-30 US US11/915,198 patent/US7962746B2/en active Active
- 2006-05-30 KR KR1020077027157A patent/KR20080014786A/ko not_active Application Discontinuation
- 2006-05-30 EP EP06756740A patent/EP1890237A1/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054136A (zh) * | 2009-11-03 | 2011-05-11 | 联发科技股份有限公司 | 计算系统与计算方法 |
CN102054136B (zh) * | 2009-11-03 | 2013-12-25 | 联发科技股份有限公司 | 计算系统与计算方法 |
CN102404313A (zh) * | 2010-09-28 | 2012-04-04 | 微软公司 | 网络上的对象安全性 |
CN107580765A (zh) * | 2015-01-27 | 2018-01-12 | 艾锐势有限责任公司 | 用于保护流媒体和其它数据流的混淆 |
CN108416209A (zh) * | 2018-03-07 | 2018-08-17 | 北京元心科技有限公司 | 程序安全验证方法、装置及终端设备 |
CN108416209B (zh) * | 2018-03-07 | 2021-10-22 | 北京元心科技有限公司 | 程序安全验证方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101189586B (zh) | 2011-06-15 |
US7962746B2 (en) | 2011-06-14 |
WO2006129641A1 (ja) | 2006-12-07 |
JPWO2006129641A1 (ja) | 2009-01-08 |
EP1890237A1 (en) | 2008-02-20 |
US20090106832A1 (en) | 2009-04-23 |
JP4850830B2 (ja) | 2012-01-11 |
KR20080014786A (ko) | 2008-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101189586B (zh) | 计算机系统及程序生成装置 | |
EP2023248B1 (en) | Data processing device, method, program, integrated circuit, and program generating device | |
CN106462708B (zh) | 认证变量的管理方法和装置 | |
US8307215B2 (en) | System and method for an autonomous software protection device | |
EP2717186A1 (en) | Information processing device and information processing method | |
CN103748594A (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
EP1644802B1 (en) | Dual virtual machine and trusted platform module architecture for next generation media players | |
CN106599629B (zh) | 一种安卓应用程序加固方法及装置 | |
JP4816012B2 (ja) | 情報処理装置、ソフトウェアインストール方法、および光ディスク | |
CN102656561A (zh) | 信息处理装置、虚拟机生成方法及应用发布系统 | |
CN102473220A (zh) | 信息处理装置、信息处理方法以及程序分发系统 | |
CN102171704A (zh) | 用硬件加密存储设备进行外部加密和恢复管理 | |
CN107579962A (zh) | 一种源码加密和解密的方法及装置 | |
US7908450B2 (en) | Memory management unit, code verifying apparatus, and code decrypting apparatus | |
WO2011134207A1 (zh) | 软件保护方法 | |
CN107111728A (zh) | 安全密钥导出功能 | |
CN110352411B (zh) | 用于控制对安全计算资源的访问的方法和装置 | |
US20110145596A1 (en) | Secure Data Handling In A Computer System | |
JP6696352B2 (ja) | プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム | |
JP2002538566A (ja) | 保護光ディスク及び光ディスクを保護する方法 | |
JP2002244757A (ja) | 半導体回路 | |
JP2008310678A (ja) | 記憶装置、情報機器、及びコンテンツ変換方法 | |
CN110134339A (zh) | 一种基于文件虚拟盘的数据保护方法及系统 | |
KR101771348B1 (ko) | 패키지 파일에 대한 패킹 방법 및 시스템 | |
JP2004362077A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20130530 |