CN101233525A - 数据处理装置 - Google Patents

数据处理装置 Download PDF

Info

Publication number
CN101233525A
CN101233525A CN200680027404.3A CN200680027404A CN101233525A CN 101233525 A CN101233525 A CN 101233525A CN 200680027404 A CN200680027404 A CN 200680027404A CN 101233525 A CN101233525 A CN 101233525A
Authority
CN
China
Prior art keywords
mentioned
program
under
data
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200680027404.3A
Other languages
English (en)
Inventor
金村孝一
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101233525A publication Critical patent/CN101233525A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

本发明提供一种不论程序的品质如何、都能够防止各程序处理的数据被其他程序非法使用的数据处理装置。该数据处理装置具备:执行程序的CPU(0106)、和防止其他程序非法存取各程序使用的数据的非法动作防止电路(0105),在保护模式下动作并控制非法动作防止电路(0105)的非法动作防止控制部(0106),对于在通常模式下动作的程序A(0102)使用的存储器区域,根据分配给在通常模式下动作的程序B(0103)的功能标志,判断上述存储器区域可否使用,在可使用的情况下对非法动作防止电路(0105)进行设定,以使程序B(0103)能够使用该存储器区域。

Description

数据处理装置
技术领域
本发明涉及通过多个进程的联动动作处理保护数据的数据处理装置,特别涉及防止对保护数据的非法处理的技术。
背景技术
近年来,在将音乐或电影等内容进行再现的内容再现装置等的许多数字家电中,开始安装用来进行著作权保护的数据的加密、解密的功能(参照专利文献1~3、非专利文献1~2)、以及用来进行销售后的新功能的追加及缺陷修正等的程序更新功能等。
专利文献1:日本特开平2-155034号公报
专利文献2:日本特开平4-102920号公报
专利文献3:日本特开2001-318787号公报
非专利文献1:Lie,D.Thekkath,C.A.Mitchell,M.Lincoln,P.Boneh,D.Mitchell,J.C.and Horowitz,M.Architectural Support for Copy andTamper Resistant Software,In Proceedings of the 9th Inte’l Conference onArchitectural Support for Programming Languages and Operating Systems(ASPLOS-IX),pages 169-177,November 2000.
非专利文献2:E.Suh,D.Clarke,B.Gassend,M.van Dijk,and S.Devadas.The AEGIS processor architecture for tamperevident and tamperresistant processing.Technical Report LCS-TM461,Massachusetts Instituteof Technology,February 2003.
上述加密、解密等的对数据的处理在程序自身的管理下进行,上述数据不会由其他程序泄漏。
但是,在将加密数据进行解密的解密程序、和将解密后的数据再现的播放器程序之间联动处理数据的情况下,需要使得能够从多个程序使用该数据,所以如果恶意利用上述更新功能而导入非法的程序,则会产生由该非法的程序将上述数据泄漏的问题。
发明内容
鉴于上述问题,本发明的目的是提供一种即使在各程序联动处理所处理的数据的情况下也能够防止该数据的泄漏的数据处理装置。
为了解决上述课题,本发明是的数据处理装置,具备按照程序动作的处理器,切换通常模式和保护模式来动作,在该通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,其特征在于,具备:存取禁止单元,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;检测单元,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;切换单元,如果检测到上述调用指令,则从通常模式切换为保护模式;判断单元,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;以及控制单元,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
本发明的数据处理装置通过具备上述结构,第1进程能够将数据交给第2进程,并且不会被第2进程以外的进程知道,能够防止通过在通常模式下动作的其他进程泄漏数据。
此外,通过具备上述结构,即使在第2程序被更新而功能被变更、失去了处理对象数据的使用权限的情况下,上述判断单元也能够检测到该情况,能够通过上述控制单元防止信息泄漏。
此外,也可以是,上述存取禁止单元包括:存储器;保持部,仅在保护模式下,可改写地保持管理信息,该管理信息表示每个进程在上述存储器内许可存取的区域;以及存取限制部,使在通常模式下动作的进程按照上述管理信息对上述存储器进行存取;在上述判断单元判断为有使用权限的情况下,上述控制单元在第2进程的管理信息中追加许可对上述存储器上的保持有上述对象数据的区域进行存取的信息。
根据该结构,由于将上述管理信息的改写限制在保护模式的情况,所以能够防止由在通常模式下动作的其他程序将上述管理信息非法地改写为以能够发生数据泄漏。
此外,也可以是,上述保持部保持的上述管理信息包括一个以上的、将上述存储器中的地址与对应于地址的密钥对应起来的信息;上述存取限制部包括:取得部,取得包括上述存储器的地址的向上述存储器存取的存取请求;地址判断部,判断包含在上述存取请求中的地址是否包含在上述管理信息中;存取执行部,在判断为包含的情况下,如果上述存取请求是写入请求,则将写入的数据用与上述地址对应的密钥进行加密而写入到上述地址所表示的区域中,在上述存取请求是读出请求的情况下,将从上述存储器的上述地址读出的数据用对应于上述地址的密钥进行解密并输出。
根据该结构,由于通过对每个进程设定的每个地址的密钥将数据加密并记录到上述存储器中,将加密并记录的数据进行解密并读出,所以能够防止上述数据被其他程序适当地使用。
这里,在向存储器的存取请求中,除了从上述存储器读出数据的读出请求、向上述存储器写入的数据的写入请求以外,还包括希望使用的上述存储器的区域的使用许可请求、由自程序也使用许可其他程序使用的存储器的区域的共享设定请求等。
此外,上述数据也可以是进程的代码。
根据该结构,能够防止进程的代码泄漏。
此外,也可以是,对各进程分配各自的进程标识符;上述保持部保持的上述管理信息包括一个以上的、将上述存储器中的地址和表示许可向上述地址存取的进程的进程标识符对应起来的信息;上述进程限制部包括:取得部,取得包括上述存储器的地址的、向上述存储器存取的存取请求;地址判断部,判断将包含在存取请求中的地址与分配给请求存取的进程的进程标识符对应起来的信息是否包含在上述管理信息中;存取执行部,在判断为包含的情况下,使请求存取的进程对上述存储器的上述地址进行存取。
根据该结构,即使有向存储器的存取请求,由于将向上述存储器的上述地址的存取仅限制在与上述管理信息中包含的被请求存取的地址对应的进程标识符所表示的进程,所以能够防止由其他程序泄漏上述数据。
此外,也可以是,对于上述数据分配安全要件信息,该安全要件信息表示对一个以上的数据处理方法的各个是否许可执行;对各进程分配功能信息,该功能信息表示能否执行一个以上的数据处理方法的各个数据处理方法;上述调用指令包含表示一个以上的数据处理方法的任一个的处理指定信息;在上述安全要件信息表示许可执行上述处理指定信息表示的数据处理方法、并且第2进程的功能信息表示能够执行上述处理指定信息表示的数据处理方法的情况下,上述判断单元决定为有上述使用权限。
根据该结构,将请求上述数据联动的数据限定于由对该数据分配的安全要件信息许可、并且第2进程的功能信息表示能够执行的数据处理方法的处理,能够降低数据泄漏的可能性。
此外,也可以是,上述切换单元在从上述通常模式向上述保护模式切换的情况下,将在上述通常模式下动作的进程的上下文保存到上述存储器中;在从上述保护模式向上述通常模式切换的情况下,从上述存储器恢复接着在上述通常模式下动作的进程的上下文。
根据该结构,由于能够将上下文的保存、恢复的处理执行限定在保护模式的情况,所以能够防止由在通常模式下动作的进程对上下文进行非法的操作而泄漏数据。
此外,也可以是,上述第1进程及上述第2进程包括在分别动作的期间发生了中断或例外的情况下,处理该中断或例外的中断处理或例外处理;上述数据处理装置还包括:向量表保持单元,仅在保护模式下,可改写地保持表示在发生了中断或例外的情况下要执行的处理的向量表;向量表改写单元,在动作的进程从上述第1进程向上述第2进程切换之前,在保护模式下改写上述向量表,以使在上述通常模式下发生中断或例外时执行第2进程的中断处理或例外处理。
根据该结构,由于将向量表的变更限定于保护模式的情况,所以能够防止由在通常模式下动作的进程对向量表进行非法的写入操作而执行非法进程、从而泄漏数据。
此外,也可以是,上述判断单元还包括:使用请求受理部,从进程受理请求使用上述存储器的区域;使用判断部,判断请求使用的地址是否已被使用;权限判断部,在没有被使用的情况下,判断请求使用的进程有无对希望保存到上述地址的数据的使用权限;管理信息登记部,在上述权限判断部判断为有使用权限的情况下,在请求使用的进程的管理信息中登记许可向上述地址所表示的区域进行存取的信息。
根据该结构,按照来自进程的请求生成管理信息,以使得只有请求使用的进程能够使用所请求的存储器区域,能够防止由其他程序泄漏存储在上述区域中的数据。
此外,也可以是,在上述权限判断部判断为有使用权限的情况下,上述管理信息登记部生成密钥,并作为许可上述存取的信息,在请求使用的上述进程的管理信息中追加将上述地址与所生成的上述密钥对应起来的信息的组。
根据该结构,能够将对每当请求时生成的密钥追加到管理信息中。
如果使用对每个地址不同的密钥,则使用相同的密钥的频率变少,能够降低密钥被解密的概率。
此外,也可以是,上述数据处理装置还包括进行上述进程的调试的调试单元;上述切换单元还在切换为上述通常模式的情况下,使上述调试单元有效,在切换为上述保护模式的情况下,使上述调试单元无效。
根据该结构,能够禁止保护模式下的调试,能够防止保护模式下的处理内容被解析。
本发明的数据处理方法,在具备按照程序动作的处理器、切换通常模式和保护模式来动作的数据处理装置中使用,在上述通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,具备:存取禁止步骤,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;检测步骤,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;切换步骤,如果检测到上述调用指令,则从通常模式切换为保护模式;判断步骤,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;控制步骤,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
本发明的计算机程序,在具备按照程序动作的处理器、切换通常模式和保护模式来动作的数据处理装置中使用,在上述通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,具备:存取禁止步骤,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;检测步骤,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;切换步骤,如果检测到上述调用指令,则从通常模式切换为保护模式;判断步骤,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;控制步骤,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
根据该结构,第1进程能够将数据交给第2进程,并且不会被第2进程以外的进程知道,能够防止通过在通常模式下动作的其他进程将数据泄漏。
此外,通过具备上述结构,即使在第2程序被更新而功能被变更、失去了处理对象数据的使用权限的情况下,通过上述判断步骤也能够检测到该情况,能够通过上述控制步骤防止信息泄漏。
本发明的集成电路,具备按照程序动作的处理器,切换通常模式和保护模式来动作,在该通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,具备:存取禁止单元,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;检测单元,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;切换单元,如果检测到上述调用指令,则从通常模式切换为保护模式;判断单元,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;以及控制单元,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
根据该结构,第1进程能够将数据交给第2进程,并不会被第2进程以外的进程知道,能够防止通过在通常模式下动作的其他进程泄漏数据。
此外,通过具备上述结构,即使在第2程序被更新而功能被变更、失去了处理对象数据的使用权限的情况下,上述判断单元也能够检测到该情况,能够通过上述控制单元防止信息泄漏。
附图说明
图1是示意地表示本发明的程序保护装置的结构的主要部分的图。
图2是表示本发明的程序保护装置的硬件结构的图。
图3是表示密钥寄存器的结构的图。
图4是表示保护对象数据的结构的图。
图5是示意地表示记录程序的文件的结构的图。
图6是示意地表示记录程序的文件的结构的图。
图7是表示程序保护装置的软件结构的图。
图8是表示管理表的结构的图。
图9是表示管理表的结构的图。
图10是表示非法动作防止控制处理的流程图。
图11是表示状态切换动作A及B的处理的流程图。
图12是表示对应于来自程序X的请求的非法动作防止控制部的处理的流程图。
图13是表示程序的整体动作的流程图。
图14是表示程序的整体动作的流程图(图13的后续)。
图15是表示程序保护装置的动作的流程图。
图16表示程序保护装置的动作中的RAM的状态。
图17表示程序保护装置的动作中的管理表的状态。
图18表示程序保护装置的动作中的管理表的状态。
图19表示程序保护装置的动作中的管理表的状态。
图20是表示程序的功能标志是否满足安全要件的处理的流程图。
图21是表示程序保护装置的程序的动作的流程图。
图22是表示变形例的程序保护装置的结构的框图。
图23是表示变形例的ID寄存器的结构的图。
附图标记说明
0101程序保护装置
0102程序A
0103程序B
0104操作系统(OS)
0105非法动作防止电路
0106非法动作防止控制部
0107程序C
0108保护对象数据
0109安全要件列表
0110管理表
0201CPU
0202RAM
0203非易失性存储器
0204总线加密电路
0205密钥寄存器
0206保护存储器
0207存取限制电路
0208状态切换电路
0209调试器I/F
0210总线
0216存储介质
0219向量表
0221非易失性存储器
0401安全内核
0402程序A用中断管理部
0403程序B用中断管理部
0404OS用中断管理部
0405BIOS
0406程序C用中断管理部
具体实施方式
<第1实施方式>
<1.概要>
图1是示意地表示程序保护装置0101的结构的主要部分的图。
程序保护装置0101如图1所示,包括CPU0201、非法动作防止电路0105、和存储介质0216。
CPU0201是执行程序的处理器。
非法动作防止电路0105是具备用来防止由CPU0201执行的程序的非法执行及程序间的非法存取的单元的电路。
存储介质0216在加密的状态下存储有保护对象数据0108,该保护对象数据0108处理由CPU0201执行的程序,并作为内容及个人信息等的机密信息。
在CPU0201上执行的程序中,作为一例,如图1所示,有操作系统(OS)0104、程序A0102、程序B0103、程序C0107、非法动作防止控制部0106等。
非法动作防止控制部0106根据程序A0102、程序B0103、程序C0107、其他程序和OS0104,分别取得存储器区域的使用请求,判断使用可否,在可使用的情况下控制非法动作防止电路0105,仅在请求源的程序请求的状态下可使用该存储器区域。
操作系统(OS)0104是使程序A0102、程序B0103、程序C0107、其他程序(未图示)动作的基本软件。
程序A0102、程序B0103、程序C0107是执行任意的处理的应用程序。在本实施方式中,作为一例,程序A0102是进行作为内容的保护对象数据0108的解密的程序,程序B0103是进行内容的再现的播放器程序,假设程序A0102和程序B0103在处理内容时联动动作。
程序A0102将作为保护对象数据0108的加密的内容进行解密,使程序B0103再现解密后的该内容。程序A0102包含用来调用程序B0103的调用指令,CPU0201如果检测到上述调用指令,则对非法动作防止电路0105进行表示后述的保护模式的状态切换指示。非法动作防止电路0105根据上述状态切换指示向保护模式切换,执行处理。
假设上述调用指令包括内容的输出、复制、移动、特殊再现、数字输出等表示数据处理方法的信息。
此外,非法动作防止控制部0106通过在上述保护模式下控制非法动作防止电路0105,防止例如程序C0107非法地使用上述内容或破坏内容。
以下,对程序保护装置0101的动作详细地进行说明。
<2.结构>
<2.1.硬件结构>
利用附图说明程序保护装置0101的硬件结构。
如图2所示,程序保护装置0101包括:相互经由总线0210连接的CPU0201、非易失性存储器0203、总线加密电路0204、密钥寄存器0205、存取限制电路0207、状态切换电路0208、调试器I/F0209、存储介质0216、非易失性存储器0221、连接在总线加密电路0204上的RAM0202、和连接在存取限制电路0207上的保护存储器0206。
程序保护装置0101具体而言是由微处理器、ROM、RAM等构成的计算机系统,在上述ROM中存储有计算机程序,通过上述微处理器按照上述计算机程序动作,程序保护装置0101实现其功能。
CPU0201是执行存储在RAM0202、保护存储器0206上的程序的微处理器。
状态切换电路0208从CPU0201接受选择性地表示上述通常模式和上述保护模式的哪一种的状态切换指示,将调试器I/F0209、密钥寄存器0205、存取限制电路0207切换为对应于该状态切换指示的模式。
保护模式是只有安全性较高的特定的程序动作的模式,通常模式是其他程序动作的模式。
状态切换电路0208在接收到的上述状态切换指示表示保护模式的情况下,对调试器I/F0209输出表示保护模式的状态信号A0211,使调试器I/F0209无效化,对密钥寄存器0205输出表示保护模式的状态信号B0217,对存取限制电路0207输出表示保护模式的状态信号C0218。
此外,状态切换电路0208在接收到的上述状态切换指示表示通常模式的情况下,对调试器I/F0209输出表示通常模式的状态信号A0211,对密钥寄存器0205输出表示通常模式的状态信号B0217,对存取限制电路0207输出表示通常模式的状态信号C0218。此外,状态切换电路0208根据需要而进行向量表0219的变更。关于切换状态的动作、向量表0219的变更将在后面叙述。
另外,状态切换的详细情况在本发明者们的日本申请-特开2005-11336号公报等中公开。
存取限制电路0207是控制总线0210与保护存储器0206的连接的电路,在从状态切换电路0208获取的状态信号C表示通常模式的情况下,将总线0210与保护存储器0206的连接断开,在表示保护模式的情况下,将总线0210与保护存储器0206连接。由此,在通常模式下动作的程序不能存取保护存储器0206内的数据。
调试器I/F0209是能够连接程序保护装置0101以外的程序调试器的接口,与CPU0201连接。
调试器I/F0209在从状态切换电路0208通知的状态信号A表示通常模式的情况下,将上述程序调试器与CPU0201连接,在状态信号A表示保护模式的情况下,将程序调试器与CPU0201的连接切断。
此外,即使在状态信号A表示通常模式的情况下,也能够通过变更调试器I/F0209的设定,使程序调试器与CPU0201的连接强制性地成为切断状态。
密钥寄存器0205是将与被请求存取的地址对应的加密密钥输出给总线加密电路0204的电路。
如图3所示,密钥寄存器0205保持有表示地址与指令用总线的对应的指令用密钥信息表0305、表示地址与数据用总线加密密钥的对应的数据用密钥信息表0306,从总线加密电路0204取得地址信号0301,将与地址信号0301所表示的地址对应的指令用总线加密密钥信号0302、以及数据用总线加密密钥信号0303输出给总线加密电路0204。
这里,指令用密钥信息表0305包括指令用密钥信息T0311、T0312、T0313……,各指令用密钥信息表示地址与指令用总线加密密钥的对应,数据用密钥信息表0306包括数据用密钥信息T0321、T0322、T0323……,各数据用密钥信息表示地址与数据用总线加密密钥的对应。
密钥寄存器0205的设定的变更仅在状态切换电路0208输出的状态信号B表示保护模式时能够变更,通过非法动作防止控制部0106,利用经由总线0210通知的设定信号0304进行变更。
RAM0202是与总线加密电路0204连接的存储器装置。
总线加密电路0204利用从密钥寄存器0205通知的密钥,对输入输出到与该密钥对应起来的存储器地址的代码或数据进行加密及解密。
由此,在总线0210与RAM0202之间交换的代码及数据由总线加密电路0204进行加密及解密。
此外,总线加密电路0204检测CPU0201是为了获取指令而存取了RAM0202还是为了存取数据而进行存取,在是对同一物理地址获取指令的情况下,使用指令用总线加密密钥,在数据存取的情况下,使用数据用总线加密密钥,进行代码及数据的加密和解密。
非易失性存储器0203存储有文件A0212、文件B0213、文件C0214、文件OS0215、BIOS0405、文件S0220。
这里,以文件A0212的数据构造为例,利用图5对上述文件的数据构造进行说明。
文件A0212包括代码加密密钥0710、程序A0102的代码0711、签名A0115、功能标志A0111。
代码加密密钥0710是在将程序A的代码0711进行加密时使用的密钥(KC_A)。
代码加密密钥0710被利用公开密钥加密算法加密。
由非法动作防止控制部0106保持秘密密钥,该秘密密钥与在对代码加密密钥0710进行加密时使用的公开密钥对应。
在程序A的代码0711中,记述有程序A0102进行的处理,由CPU0201执行。
程序A的代码0711被代码加密密钥0710加密。
签名A0115保存有将程序A的代码0711加密后的卖家的签名。
利用签名A0115能够验证程序A的代码0711的合法性、完整性。
功能标志A0111是表示程序A0102是否具备功能0714、0715、0716、0717、0718……的标志。
在本实施方式中,假设功能标志表示程序是否具备文件输出、复制、移动、特殊再现、数字输出的各功能。
功能标志例如是5位的数据,对各位分配文件输出功能、复制功能、移动功能、特殊再现功能、数字输出功能。即,具备文件输出和移动的功能的情况下的功能标志用2进制数表现为10100,在仅具备数字输出功能的情况下2进制数表现为00001。程序A0102的功能标志A0111在2进制数表现中为00000,表示不具备所有的功能。
文件B0213的数据构造在图5中表示,文件C0214、文件OS0215的数据构造在图6中表示。文件B0213、文件C0214、文件OS0215由于具备与文件A0212同样的结构,所以省略说明。
其中,文件C0214的功能标志C0113表示具备文件输出功能0734,文件OS0215的功能标志OS0114表示具备文件输出功能0744、复制功能0745、移动功能0746。
非易失性存储器0221是存储有表示例外及中断句柄的地址的向量表0219的存储装置。
在程序保护装置0101中,CPU0201在检测到中断或例外的发生的情况下,参照向量表0219,取得接着执行的句柄的位置。
保存在向量表0219中的与各种例外及中断对应的句柄的地址只有状态切换电路0208能够变更,只有在保护模式下动作的软件能够对状态切换电路0208委托向量表0219的设定内容的变更。
存储介质0216以加密的状态存储保护对象数据0108,该保护对象数据0108是内容及个人信息等机密信息。
如图4所示,保护对象数据0108包括数据0701、数据加密密钥0702、安全要件列表0109、签名数据0708。
数据0701是作为保护对象的数据,被利用数据加密密钥0702加密。但是,数据0701并不一定需要加密。
数据加密密钥0702被利用公开密钥加密算法加密,由非法动作防止控制部0106保持与在加密时使用的公开密钥对应的秘密密钥,所以只有非法动作防止控制部0106能够解密。
安全要件列表0109包括安全要件0703、0704、0705、0706、0707……。
安全要件列表例如是各位表示安全要件的5位的数据,各位对应于文件输出功能、复制功能、移动功能、特殊再现功能、数字输出功能,在位值是1的情况下表示能够进行该功能,在位值是0的情况下表示该功能不能进行。
能够进行文件输出和移动的功能的情况下的安全要件列表在2进制数表现下为10100,在仅能够进行数字输出功能的情况下,在2进制数表现下为00001。
这里,对数据0701的安全要件0703、0704、0705、0706、0707都为不能。
签名数据0708是对安全要件列表0109的签名数据,通过使用该签名数据,能够验证安全要件列表0109的合法性。
<2.2软件结构>
接着,利用附图对程序保护装置0101的软件结构进行说明。
如图7所示,在程序保护装置0101的CPU0201上动作的程序包括:包含OS用中断管理部0404的操作系统(OS)0104、包括程序A用中断管理部0402的程序A0102、包括程序B用中断管理部0403的程序B0103、包括程序C用中断管理部0406的程序C0107、安全内核0401、非法动作防止控制部0106、BIOS0405。
BIOS0405存储在非易失性存储器0203中,在程序保护装置0101的电源接通时等,在通常模式下由CPU0201执行。
BIOS0405在进行了硬件的基本设定后,将OS0104装载到RAM0202中。在本实施方式中,BIOS0405仅装载OS0104,但也可以还装载程序A0102、B0103、C0107。
OS0104是具有一般的操作系统的功能的OS,在启动后,依次启动程序A0102、程序B0103、程序C0107。
此外,包含在OS0104中的OS用中断管理部0404包含对在OS0104动作时发生的中断或例外进行处理的句柄。
程序A0102、程序B0103、程序C0107是在OS0104上动作的进行通用处理的程序,处理保护对象数据0108。
包含在程序A0102中的中断管理部0402包含对在程序A0102动作时发生的中断或例外进行处理的句柄。
同样,包含在程序B0103中的中断管理部0403、以及包含在程序C0107中的中断管理部0403包含对在程序B0103、C0107分别动作时发生的中断或例外进行处理的句柄。
程序A0102、程序B0103、程序C0107、OS0104是在通常模式下动作的软件,分别被装载到RAM0202中,由CPU0201执行。安全内核0401是进行保护模式的系统控制的软件,被装载到保护存储器0206,由CPU0201执行。
安全内核0401处置在保护模式中发生的中断及例外,执行对处置的该中断及例外的处理。
保护模式中的向量表0219的内容在从通常模式向保护模式的切换之前,由保护存储器0206改写,以使得在中断及例外发生时CPU0201执行安全内核0401内的句柄。
安全内核0401将控制主体转移到非法动作防止控制部0106。
如果非法动作防止控制部0106的非法动作防止控制处理结束,则控制主体返回到安全内核0401,安全内核0401对状态切换电路0208输出用来向通常模式转移的状态切换委托。
非法动作防止控制部0106控制非法动作防止电路0105,防止包括OS0104等的程序的非法动作。
非法动作防止控制部0106是在保护模式下动作的程序,被装载到保护存储器0206中,由CPU0201执行。由此,不能进行从对保护存储器0206没有存取权限的、在通常模式下动作的程序向安全内核0401及非法动作防止控制部0106的存取。
非法动作防止控制部0106管理管理表0110,该管理表0110是用于控制上述非法动作防止电路0105的数据。
(管理表)
这里,利用图8、图9对管理表0110进行说明。
管理表0110是用来进行程序的数据及代码区域的保护的管理数据组,包括图8所示的数据区域管理信息表组0501、代码区域管理信息表组0502、图9所示的安全要件管理信息表T0310、程序管理信息表T0410、以及当前程序管理表0503。
数据区域管理信息表组0501、代码区域管理信息表组0502、安全要件管理信息表T0310、程序管理信息表T0410、当前程序管理表0503存储在保护存储器0206中。
在对程序保护装置0101接通电源时,各管理表0110的内容为空。
非法动作防止控制部0106在后述的程序登记处理中,按照OS0104对程序A0102、程序B0103、程序C0107进行的登记请求,登记或更新代码区域管理信息表组和程序管理信息表的内容。
非法动作防止控制部0106在后述的数据区域保护设定处理中,按照由其他程序形成的保护设定请求登记或更新数据区域管理信息表组的内容,在后述的数据区域共享设定中,按照从其他程序形成的共享设定请求登记或更新安全要件管理信息表组的内容。
(程序管理信息表T0410)
程序管理信息表T0410包括程序管理信息T0411、T0412、T0413、T0414……。
各程序管理信息包括程序管理信息标识符、代码地址、程序标识符、共享程序标识符、功能标志。
程序管理信息标识符是用来识别程序管理信息的标识符,非法动作防止控制部0106在登记该程序管理信息时分配与已经使用的值不重复的值。
代码地址是各程序管理信息作为管理对象的地址区域。
程序标识符是包含装载到上述地址区域中的代码的程序的标识符,预先对各程序分配。
共享程序标识符是共享上述地址区域的代码的程序的标识符。
功能标志是表示对上述地址区域的代码是否许可文件输出、复制、移动、特殊再现、数字输出的各功能的标志。
功能标志例如是5位的数据,对各位分配文件输出功能、复制功能、移动功能、特殊再现功能、数字输出功能。
即,许可了文件输出与移动的情况下的功能标志在2进制数表现下为10100,在仅许可了数字输出功能的情况下,在2进制数表现下为00001。
(代码区域管理信息表组)
代码区域管理信息表组0502包括程序用代码区域管理信息表T0210、T0220、T0230……,程序用代码区域管理信息表是对每个程序生成的。
对于程序标识符是P1的程序生成的程序P1用代码区域管理信息表T0210包括代码区域管理信息T0211、T0212、T0213……,数据区域管理信息包括代码区域标识符、代码地址、代码加密密钥。
代码区域标识符是用来识别代码区域管理信息的标识符,非法动作防止控制部0106在生成该代码区域管理信息时分配与已经使用的值不重复的值。
代码地址是代码区域管理信息为管理对象的地址区域。
代码加密密钥是用来将在由上述地址区域表示的存储区域中保持的代码进行加密和解密的密钥,在代码存取时使用。
(数据区域管理信息表组)
数据区域管理信息表组0501包括数据区域管理信息表T0110、T0110、T0130……。
数据区域管理信息表是对每个程序生成的,包括数据区域标识符、数据地址、数据加密密钥。
数据区域标识符是用来识别各数据区域管理信息的标识符。
数据地址是各数据区域管理信息为管理对象的地址区域。
数据加密密钥是用来将在由上述地址区域表示的存储区域中保持的数据进行加密、解密的密钥,在存取数据时使用。
(安全要件管理信息表组)
安全要件管理信息表T0310是用来管理对包含在数据区域管理信息表组0501中的各数据区域管理信息的安全要件的表,包括多个安全要件管理信息T0311、T0312、T0313、T0314……。
安全要件管理信息包括安全要件管理信息标识符、数据地址、生成程序标识符、共享程序标识符、安全要件。
安全要件管理信息标识符是用来识别安全要件管理信息的标识符。
数据地址是安全区域管理信息为管理对象的地址区域。
生成程序标识符是对物理存储器上的上述地址区域最先进行了数据设定的程序的标识符。
共享程序标识符是用来对物理存储器上的上述地址区域识别共享该存储器区域的程序的标识符。
安全要件决定由上述数据地址表示的、保持在物理存储器上的上述地址区域中的数据的保护方法。
上述安全要件在本实施方式中具有与功能标志相同的构造,例如是5位的数据,对于各位分配可否执行文件输出功能、复制功能、移动功能、特殊再现功能、数字输出功能。
即,许可执行文件输出与移动的情况下的功能标志在2进制数的表现下为10100,在仅许可执行数字输出的情况下,在2进制数的表现下为00001。
(当前程序管理表0503)
在当前程序管理表0503中存储有当前动作中的程序的标识符。
<3.软件动作>
接着,对在程序保护装置0101上动作的软件的处理流程进行说明。
首先,利用图21对软件整体的处理流程进行说明。
如果对程序保护装置0101接通电源,则BIOS0405启动(步骤S2011)。
BIOS0405在对程序保护装置0101的硬件进行了基本设定后,将OS0104装载到RAM0202中(步骤S2012)。
OS0104对于非法动作防止控制部0106进行对作为自程序的OS0104的后述的登记处理(步骤S2021),进行对程序B0103的登记处理(步骤S2022),进行对程序C0107的登记处理(步骤S2023)。
如果能够完成登记处理,则非法动作防止控制部0106能够对来自OS0104、程序A0102、程序B0103、程序C0107的存储器保护等的各请求进行处理。
接着,OS0104依次启动登记处理成功的程序A0102、B0103、C0107(步骤S2031)。
这里,程序A0102、程序B0103、程序C0107在OS0104上开始动作。
接着,OS0104对于非法动作防止控制部0106进行在自程序内使用的数据区域的后述的保护设定(步骤S2040)。
同样,程序A0102对于非法动作防止控制部0106进行在自程序内使用的数据区域的后述的保护设定(步骤S2041),程序B0103对于非法动作防止控制部0106进行自程序使用的数据区域的保护设定(步骤S2042),程序C0107对于非法动作防止控制部0106进行自程序使用的数据区域的保护设定(步骤S2043)。
接着,程序A0102在需要的情况下,对于非法动作防止控制部0106进行后述的数据区域共享设定(步骤S2051),该数据区域共享设定用来与其他程序共享所使用的数据区域。
同样,程序B0103在需要的情况下,对于非法动作防止控制部0106进行用来与其他程序共享所使用的数据区域的数据区域共享设定(步骤S2052),程序C0107在需要的情况下,对于非法动作防止控制部0106进行用来与其他程序共享所使用的数据区域的数据区域共享设定(步骤S2053)。
由此,多个程序能够共享被保护的存储器区域。
以后,OS0104根据需要而切换进行动作的当前的程序(步骤S2061),当前的程序执行自程序要进行的处理(步骤S2062)。
以下,对步骤S2021中的程序登记处理、步骤S2041中的保护设定处理、步骤S2051中的数据区域的共享设定处理、步骤S2061中的程序切换处理进行说明。
上述的步骤S2020、步骤S2021、步骤S2022、步骤S2023、步骤S2040、步骤S2041、步骤S2042、步骤S2043、步骤S2051、步骤S2052、步骤S2053都按照图10~图12所示的基本的处理流程执行。
以下,对于步骤S2020~S2023,以步骤S2021为例进行说明,对于步骤S2040~S2043,以步骤S2041为例进行说明,对于步骤S2050~S2053,以步骤S2051为例进行说明。
此外,步骤S2021~S2053的各处理的执行并不限于一次,根据需要随时执行。
<3.1程序登记处理>
图21中的步骤S2021是OS0104将关于程序A0102的信息登记到非法动作防止控制部0106中的处理。
图11、图12所示的程序X表示按照该流程动作的程序,在本实施方式中是程序A0102、程序B0103、程序C0107、OS0104中的任一种。这里,OS0104对应于程序X,OS用中断管理部0404对应于程序X用中断管理部,假设OS0104请求对于程序A0102的登记。
程序X首先在对程序X预先指定的、RAM0202上的数据区域中,写入用来登记程序A的登记请求。
在上述登记请求中,包含有图5所示的、在将作为登记的程序的程序A的代码进行加密时使用的密钥(代码加密)、程序的签名数据、功能标志。进而,在上述登记请求中,包括程序的装载地址信息。
密钥被用公开密钥加密算法加密,与在密钥的加密中使用的公开密钥对应的秘密密钥保存在非法动作防止控制部0106中。
秘密密钥被实施了对策,以使其不会泄漏到非法动作防止控制部0106的外部。
程序的签名数据是为了验证程序的合法性、完整性而使用的。
程序的装载地址信息是装载登记的程序的地址区域。
程序X产生以程序A的登记请求为原因的软件中断(步骤S0801),将控制转移给程序X用中断管理部。
接着,程序X用中断管理部调查程序X产生的软件中断的原因,从规定的上述数据区域读出上述登记请求,确认中断的种类(步骤S0802)。这里,程序X用中断管理部确认上述中断的种类是以对于程序A的登记请求为原因的软件中断。
接着,程序X用中断管理部将上述登记请求保存在共享存储器中(步骤S0803)。
这里,上述共享存储器是在通常模式与保护模式的通信中使用的、RAM0202内的规定的存储器区域。
这里,执行用来将程序保护装置0101的动作状态从通常模式向保护模式切换的状态切换动作A。
对于状态切换动作A,利用图11(a)进行说明。
程序X在这里是OS0104。
程序X用中断管理部对状态切换电路0208进行向保护模式的状态切换委托(步骤S1700)。
状态切换电路0208将CPU内的状态保存到预先设定的RAM0202内的程序X管理的数据区域中(步骤S1701)。
状态切换电路0208将作为状态切换委托源的程序X的上下文转移到在RAM0202中预先设定为程序X使用的区域中。
状态切换电路0208输出表示保护模式的状态信号A0211,使调试器I/F0209无效化(步骤S1702)。
接着,状态切换电路0208进行CPU内部状态的清空(步骤S1703)。
接着,状态切换电路0208输出表示保护模式的状态信号B0217,变更密钥寄存器0205的设定(步骤S1704)。
这里,密钥寄存器0205能够利用经由总线0210通知的设定信号0304变更指令用密钥信息表0305和数据用密钥信息表0306。
接着,状态切换电路0208输出表示保护模式的状态信号C0218,变更存取限制电路0207的设定(步骤S1705),存取限制电路0207使从总线0210向保护存储器0206的存取成为开放状态。
所谓的开放状态,是许可从总线0210向保护存储器0206的存取的状态。
接着,状态切换电路0208变更向量表0219的设定,以便在中断及例外发生时CPU0201执行安全内核0401内的句柄(步骤S1706)。
状态切换电路0208使CPU复原在上次从保护模式切换为通常模式之前保存在保护存储器206中的上下文(步骤S1707)。
接着,状态切换电路0208将控制转移给安全内核0401(步骤S1708)。程序保护装置0101变为保护模式,状态切换动作A结束。
接着,安全内核0401将控制转移给非法动作防止控制部0106(步骤S0815)。
接着,非法动作防止控制部0106从共享存储器取得上述请求(步骤S0806)。这里,上述请求是上述登记请求。
接着,非法动作防止控制部0106执行非法动作防止控制处理(步骤S0807)。
这里,利用图10对上述请求是上述登记请求的情况下的非法动作防止控制处理(步骤S0807)的详细情况进行说明。
非法动作防止控制部0106判断上述请求是哪种请求(步骤S600)。
由于上述请求是登记请求(步骤S600:登记),所以向步骤S0612转移。
接着,非法动作防止控制部0106利用安全要件管理信息表T0310和程序管理信息表T0410,判断由程序的装载地址信息表示的代码地址区域是否是未使用区域(步骤S0612)。
在是未使用区域的情况下(步骤S0612的“是”),非法动作防止控制部0106进行程序的签名与功能标志的签名的验证(步骤S0613)。
在签名验证结果是OK的情况下(步骤S0613的“是”),非法动作防止控制部0106生成新的代码区域管理信息表和数据区域管理信息表(步骤S0614)。
接着,作为管理表的更新,进行程序管理信息表T0410的更新和代码区域管理信息表的更新(步骤S615)。
在程序管理信息表T0410的更新中,非法动作防止控制部0106在生成固有的程序标识符后,进行程序管理信息的追加。
在代码区域管理信息表的更新中,非法动作防止控制部0106进行代码加密密钥的解密和代码区域管理信息的追加。
接着,非法动作防止控制部0106生成处理结果。
处理结果包含在管理表的更新(步骤S0615)时生成的程序标识符。在代码地址区域不是未使用区域的情况(步骤S0612的“否”)和签名验证失败的情况(步骤S0613的“否”)下,在处理结果中包含处理失败的原因。将这里生成的处理结果保存在共享存储器中(步骤S0808)。
接着,非法动作防止控制部0106将控制转移给安全内核0401(步骤S0816)。
这里,通过安全内核0401、状态切换电路0208、程序X用中断管理部执行状态切换动作B,从保护模式向通常模式切换(步骤S0809)。
这里,对于状态切换动作B,利用图11(b)进行说明。
这里,程序X如上所述是OS0104。
安全内核0401通过对状态切换电路0208输出表示通常模式的状态信号C0218,委托状态切换(步骤S1710)。
状态切换电路0208将CPU的上下文保存到保护存储器0206中(步骤S0817)。
存取限制电路0207接受状态信号C0218,使从总线0210向保护存储器0206的存取成为截断状态。
所谓的截断状态,表示不能从总线0210向保护存储器0206存取的状态。
状态切换电路0208控制状态信号B0217,变更密钥寄存器0205的设定(步骤S1713)。
这里,密钥寄存器0205能够利用经由总线0210通知的设定信号0304变更指令用密钥信息表0305和数据用密钥信息表0306。
状态切换电路0208进行CPU内部状态的清空(步骤S1714)。
状态切换电路0208进行向量表0219的设定变更(步骤S1715)。这里,状态切换电路0208设定为,使得在中断及例外发生时CPU0201执行包含在程序X用中断管理部中的句柄。
向量表0219设定为,使其执行包含在各个中断管理部中的句柄。关于设定为使其执行包含在哪个中断管理部中的句柄,能够由非法动作防止控制部0106对状态切换电路0208指示。
接着,状态切换电路0208控制状态信号A0211,使调试器I/F0209有效(步骤S1716)。
另外,在非法动作防止控制部0106事前对状态切换电路0208指示使调试器I/F0209不为有效的情况下,状态切换电路0208跳过步骤S1716,使调试器I/F0209不为有效。
这里,状态切换电路0208恢复程序X的上下文(步骤S1717),接着,状态切换电路0208将控制转移给程序X用中断管理部(步骤S1718),程序保护装置0101变为通常模式,状态切换动作B结束。
接着,程序X用中断管理部从共享存储器取得上述处理结果(步骤S0811)。
接着,程序X用中断管理部将处理结果保存在程序X管理的数据区域中(步骤S0812)中后,从软件中断返回(步骤S0813)。
<3.2数据区域的保护设定处理>
图21中的步骤S2041是程序A对非法动作防止控制部0106请求使用的存储器区域的保护设定的处理。
以下,对于保护设定的处理,以与上述的程序登记处理不同的部分为中心进行说明。
这里,假设程序X是程序A0102。
首先,程序X在作为对自程序预先指定的RAM0202上的数据区域的共享存储器中,写入包括数据地址和安全要件的数据区域保护设定请求。
上述数据地址包括程序X希望作为数据区域使用的存储器区域的起始地址和末尾地址。
上述安全要件是程序X对保存在上述数据地址中的数据希望设定的保护属性,具有与安全要件列表0109同样的数据构造。例如,上述安全要件是5位的数据,对各位分配文件输出功能、复制功能、移动功能、特殊再现功能、数字输出功能的执行可否。另外,上述安全要件有时是安全要件列表0109。
非法动作防止控制部0106在步骤S0802取得上述数据区域保护设定请求。
到步骤S0803~S0806为止,与程序登记处理同样。
在作为步骤S0807的详细情况的图10的步骤S0600的判断中,非法动作防止控制部0106判断为上述处理请求是数据区域的保护设定请求(步骤S0600的保护),转移到步骤S0602。
非法动作防止控制部0106判断包含在上述数据区域保护设定请求中的数据地址是否已作为安全要件管理信息表T0310中的安全要件管理信息登记(步骤S0602),如果没有登记,则决定为是未使用区域,如果已登记,则决定为不是未使用区域。
在是未使用区域的情况下(步骤S0602的“是”),更新安全要件管理信息表T0310及数据区域管理信息表组0501(步骤S0603)。
在安全要件管理信息表T0310的更新中,非法动作防止控制部0106在与请求源的程序对应的数据区域管理信息表中追加以上述起始地址及上述末尾地址为数据地址的新安全要件管理信息。
此外,非法动作防止控制部0106生成随机值,登记到上述新安全要件管理信息的数据加密密钥中。
接着,非法动作防止控制部0106将数据区域管理信息表的更新后的信息设定在非法动作防止电路0105中(步骤S0604)。
具体而言,非法动作防止控制部0106作为更新后的信息向非法动作防止电路0105的设定,将上述新安全要件管理信息的数据地址与数据加密密钥的组追加到非法动作防止电路0105的数据用密钥信息表0306中。
此外,在步骤S0602中,在获取的数据地址区域已经由其他程序确保的情况下(步骤S0602的“否”),非法动作防止控制部0106不进行管理表的更新(步骤S0603)以及数据区域设定的变更(步骤S0604)的处理,转移到步骤S0808。
非法动作防止控制部0106将处理结果保存在共享存储器中(步骤S0808)。
在处理结果中,包括正常结束、数据地址区域被其他程序确保等的错误原因等。
以后的处理与上述程序登记处理同样。
<3.3数据区域共享设定处理>
图21的步骤S2051是程序A对非法动作防止控制部0106请求使用的存储器区域的共享设定的处理。
以下,对于数据区域共享设定处理,以与上述程序登记处理不同的部分为中心进行说明。另外,程序X是程序A0102。
首先,程序X在作为对自程序预先指定的RAM0202上的数据区域的共享存储器中,写入包括数据地址和安全要件的数据区域共享设定请求及签名A0115。
上述数据地址包括程序X希望作为数据区域共享的存储器区域的起始地址和末尾地址。上述安全要件包括文件A0212的功能标志A0111的信息。
签名A0115由非法动作防止控制部0106用于功能标志A0111的合法性确认。非法动作防止控制部0106在步骤S0802中取得上述数据区域共享设定请求。
到步骤S0803~S0806为止,与程序登记处理同样。
在作为步骤S0807的详细情况的图10的步骤S0600的判断中,判断为处理请求是数据区域的共享设定请求(步骤S0600的共享)。
非法动作防止控制部0106在步骤S0802中,从RAM0202上的共享存储器取得上述数据区域共享设定请求,在步骤S0632中,判断包含在上述数据区域共享设定请求中的数据地址是否已作为安全要件管理信息表T0310中的安全要件管理信息登记,在已登记的情况下(步骤S0632的“是”),非法动作防止控制部0106进行上述数据区域共享设定请求的妥当性判断(步骤S0633)。
具体而言,妥当性判断是根据在与请求共享的程序对应的程序管理信息中包含的功能标志是否满足作为妥当性判断的对象的安全要件管理信息的安全要件来判断。
此外,关于上述安全要件的合法性,也利用写入上述共享存储器中的签名来确认。
在判断为妥当的情况下(步骤S0633的“是”),非法动作防止控制部0106进行安全要件管理信息表T0310与请求源的程序用的数据区域管理信息表的更新(步骤S0634)。
非法动作防止控制部0106在安全要件管理信息表T0310的更新中,具体而言,在与作为对象的数据区域对应的安全要件管理信息的共享程序标识符中写入请求共享的程序的标识符。
作为所请求的程序的标识符,使用保存在当前程序管理表0503中的标识符。
此外,在请求的程序指定的安全要件比已有的安全要件严格的情况下,将请求的程序指定的安全要件作为与作为对象的数据区域对应的安全要件管理信息的安全要件追加。
这里,所谓的请求的程序指定的安全要件比已有的安全要件严格的情况下,由于安全要件为与安全要件列表0109同样的数据构造,所以是指安全要件比已有的多的情况。
进而,在数据区域管理信息表的更新中,非法动作防止控制部0106在请求源的程序用数据区域管理信息表中追加数据区域管理信息。
这里,在追加的数据区域管理信息的数据地址中,设定请求的地址区域,将作为共享对象的数据区域的加/解密中使用的加密密钥设定为数据加密密钥。
接着,非法动作防止控制部0106进行数据保护设定的变更(步骤S0635)。
具体而言,非法动作防止控制部0106将在步骤S0634更新的数据区域管理信息表的更新内容反映给非法动作防止电路0105,生成表示正常结束的处理结果。
此外,在步骤S0632中,在判断为没有登记的情况下(步骤S0632的“否”),以及在判断为设定不妥当的情况下(步骤S0633的“否”),非法动作防止控制部0106生成表示错误的处理结果。
接着,非法动作防止控制部0106将生成的处理结果保存在共享存储器中(步骤S0808)。
在处理结果中,包含正常结束、数据地址区域被其他程序确保等的错误原因等。
以后的处理与上述的程序登记处理同样。
<3.4程序切换处理>
图21的步骤S2061是程序A0102对非法动作防止控制部0106请求使其切换当前的程序、以及对应于该请求的处理。
以下,对于程序切换处理,以与上述程序登记处理不同的部分为中心进行说明。
另外,假设程序X是程序A0102,请求向程序B0103的切换。
首先,程序X在作为对自程序预先指定的RAM0202上的数据区域的共享存储器中,写入包括希望切换的程序的标识符的切换请求、和对希望切换的程序希望传递的变元数据。
程序X用中断管理部在步骤S0802中取得上述程序切换请求。
到步骤S0803~S0806为止,与程序登记处理同样。
在作为步骤S0807的详细情况的图10的步骤S0600的判断中,判断为处理请求是程序切换请求(步骤S0600的切换)。
非法动作防止控制部0106在步骤S0802中,从RAM0202取得上述切换请求,并且进行变元数据的取得(步骤S0621)。变元数据是从切换源的程序向切换目的地的程序传递的信息,包括指令等。
非法动作防止控制部0106将取得的变元数据保存在保护存储器206中。
RAM0202中的变元数据的保存位置是预先决定的,非法动作防止控制部0106预先知道。
另外,变元数据的位置不需要是固定的,也可以包含在切换请求中。
接着,非法动作防止控制部0106进行当前程序管理表的更新(步骤S0622)。
这里,将当前程序管理表的内容变更为切换目的地的程序的标识符。
接着,非法动作防止控制部0106变更非法动作防止电路0105的设定(步骤S0623)。
非法动作防止控制部0106将存储在密钥寄存器206中的指令用密钥信息表的内容、和数据用密钥信息表的内容删除,将包含在数据区域管理信息表组0501中的、存储在与切换目的地的程序对应的数据区域管理信息表中的各数据区域管理信息中的数据地址与数据加密密钥的组,,写入到非法动作防止电路0105的数据用密钥表中。
此外,将包含在代码区域管理信息表组0502中的、存储在对应于切换目的地的程序代码区域管理信息表中的各代码区域管理信息中的代码地址与代码加密密钥的组,写入到非法动作防止电路0105的指令用密钥信息表0305中。
接着,非法动作防止控制部0106将预先保存在保护存储器0206中的变元数据保存在切换目的地的程序管理的RAM0202中(步骤S0624)。
接着,非法动作防止控制部0106生成包括向切换目的地的程序的分支指示的处理结果,将该处理结果保存在共享存储器中(步骤S0808)。
这样,非法动作防止控制部0106能够将变元数据经由保护存储器交给其他程序。
因此,非法动作防止控制部0106在被从包括OS0104的程序委托了向其他程序的数据的交接的情况下,能够进行交接,以使该数据不会向委托源的程序和委托目的地的程序以外的程序泄漏。
例如,在程序A0102将程序B0103作为函数调用的情况下,在程序B0103没有共享程序A0102的数据区域的情况下,能够安全地进行变元数据的交接。
此外,在程序A0102调用OS0104的系统调用的情况下,也能够同样安全地进行变元数据的交接。
<4.整体动作>
以程序保护装置0101的程序的切换处理(从程序A0102向程序B0103的切换处理)为例,利用图13、图14所示的流程图对整体动作进行说明。
程序A0102在进行了作为保护对象数据0108的内容的解密后,为了委托解密后的内容的再现,在对程序A0102预先决定的数据区域中写入包括向程序B的变元数据的处理请求,为了切换为程序B0103而产生软件中断,将控制转移给程序A用中断管理部0402(步骤S0901)。
程序A用中断管理部0402从上述数据区域取得上述变元数据,并且确认中断的种类是用来向程序B0103切换的软件中断(步骤S0902)。
接着,程序A用中断管理部0402将向程序B0103切换的请求和变元数据保存到共享存储器中(步骤S0903)。
接着,程序A用中断管理部0402、状态切换电路0208、安全内核0401执行上述状态切换动作A,从通常模式向保护模式切换(步骤S0905)。
接着,在步骤S0905中,作为控制主体的安全内核0401将控制转移给非法动作防止控制部0106(步骤S0907)。
接着,非法动作防止控制部0106从共享存储器取得在步骤S0903中保存的上述请求和上述变元数据(步骤S0908)。
接着,非法动作防止控制部0106由于上述请求是向程序B0103的切换请求,所以判断需要进行程序的切换处理,进行上述程序的切换处理0602的处理(步骤0909)。
非法动作防止控制部0106将切换处理的结果保存在共享存储器中(步骤S0910)。
接着,非法动作防止控制部0106将控制转移给安全内核(步骤S0911)。
这里,安全内核0401、状态切换电路0208及OS用中断管理部0404执行上述状态切换动作B,从保护模式向通常模式切换(步骤S0913)。此外,由于在程序的切换中需要操作系统的处理,所以在回到通常模式后,将控制转移给OS用中断管理部0404。
接着,OS用中断管理部0404从共享存储器取得处理结果(步骤S0915),将控制转移给OS0104(步骤S0916)。
接着,OS0104进行从程序A0102向程序B0103的切换处理(步骤S0917)。这里,OS0104进行程序上下文的切换等处理。
接着,OS0104为了向非法动作防止控制部0106委托向程序B0103的切换,将控制转移给OS用中断管理部0404(步骤S0918)。
接着,OS用中断管理部0404将向程序B0103的切换请求保存在共享存储器中(步骤S0919)。
这里,步骤S0921~步骤S0929由于是与步骤S0905~步骤S0913同样的处理,所以省略说明。
但是,由于切换目的地程序不是OS0104而是程序B0103,所以将控制转移给程序B用中断管理部0403。
接着,程序B用中断管理部0403从共享存储器取得处理结果(步骤S0931)。
接着,程序B用中断管理部0403将处理结果保存在程序B0103管理的数据区域中(步骤S0932)后,从软件中断返回(步骤S933)。
然后,程序B0103进行数据处理(步骤S0934)。
<5.以内容解密处理为例的补充说明>
在程序保护装置0101中,对于进行作为加密内容的保护对象数据0108的解密处理的程序A0102与作为将解密后的内容再现的播放器的程序B联动动作的情况,以数据的变化为中心,利用图15~图20所示的图进行补充说明。
此外,对于没有保持有向保护对象数据的存取权的程序C0107向保护对象数据存取的情况的动作也进行说明。
图16表示程序保护装置0101动作中的RAM0202的状态。
程序A0102、程序B0103、程序C0107、OS0104的代码分别用代码加密密钥KC_A、KC_B、KC_C、KC_OS进行加密,保存在非易失性存储器0203中。
保存在非易失性存储器0203中的BIOS0405将文件A0212、文件B0213、文件C0214、文件OS0215装载到RAM0202中。
结果,程序A0102的代码区域(也包括常数)1201被装载到从1000地址号到1100地址号中。
程序B0103、程序C0107、OS0104也同样,分别被装载到2000~2100、3000~3100、4000~4100地址号中。
此外,保存在存储介质0216中的保护对象数据0108被装载到8000~9000地址号的保护对象数据区域1210中。
另外,保护对象数据0108并不一定需要由BIOS0405装载,也可以由其他程序装载。
然后,BIOS0405对非法动作防止控制部0106进行程序登记委托。
非法动作防止控制部0106按照程序的登记处理0601登记各程序。
结果,如图17~图19所示,在管理表0101内生成数据区域管理信息表T0500、T0600、T0700、T0800、代码区域管理信息表T0900、T1000、T1100、T1200、以及程序管理信息表T1300、安全要件管理信息表T1400。
另外,这里BIOS0405装载/登记程序A0102、程序B0103、程序C0107,但也可以在BIOS0405仅装载/登记OS0104后,OS0104装载/登记程序A0102、程序B0103、程序C0107。
通过程序登记处理0601的管理表的更新(步骤S0615),将程序管理信息T1301~T1304追加到程序管理信息表T1300中。
在程序A0102及程序B0103的功能标志0111及0112中,由于没有文件输出功能,所以程序管理信息T1301及T1302的功能标志为无文件输出功能。
此外,程序C0107及OS0104的功能标志0113及0114由于具有文件输出功能,所以程序管理信息T1303及T1304的功能标志为有文件输出功能。
另外,这里仅着眼于文件输出功能,但对于其他功能也同样地进行处理。
在程序登记处理0601的管理表的更新(步骤S0615)中,在程序A用代码区域管理信息表T0900中追加代码区域管理信息T0901和T0902。
在代码区域管理信息T0901中,作为代码区域标识符而设定“A_C0”、作为代码地址而设定“1000~1099”、作为代码加密密钥而设定“KC_A”。
这里,非法动作防止控制部0106将保存在文件A0212中的代码加密密钥0710用秘密密钥进行解密。在代码区域管理信息T0902中,作为代码区域标识符而设定“未定义区域”、作为代码地址而设定“定义区域以外”、作为代码加密密钥而设定“KC_RA”。
这里,所谓的“定义区域以外”,是指由登记在程序A用代码区域管理信息表T0900中的代码区域管理信息T0902以外的代码区域管理信息定义的代码地址区域以外的区域,对于该区域,作为代码加密密钥而使用KC_RA。
KC_RA是非法动作防止控制部0106生成的随机值。另外,其他代码区域管理信息表T1000、T1100、T1200也如图16所示那样同样地设定。
图15是表示程序保护装置0101的动作的流程图。
本流程图表示程序A~C要联动动作、程序C因违反安全要件而停止的情况。
另外,在图15中,各中断管理部0402、0403、0404、0406的动作省略。以下,按照图15说明程序保护装置0101的动作。
程序A0102为了使程序A的数据区域1202能够使用而对非法动作防止控制部0106委托数据保护设定(步骤S1101)。
这里,程序A0102委托非法动作防止控制部0106,使得确保为只有程序A0102能够存取1500~1599地址号的数据区域的状态。
程序A0102进行与步骤S0801~步骤S0813同样的动作,进行数据保护设定。
以下,假设数据保护设定的委托通过同样的动作进行。
结果,对程序A用数据区域管理信息表T0500追加数据区域管理信息T0501,并且对安全要件管理信息表T1400追加安全要件管理信息T1401。
此时,在非法动作防止控制处理(步骤S0807)中,非法动作防止控制部01 06进行数据区域的保护设定处理0603。
数据区域管理信息T0501的数据加密密钥KD_A1是非法动作防止控制部生成的随机值。
接着,程序A0102进行设定以使其处理保护对象数据区域1210的数据(步骤S1102)。
由于保存在保护对象数据区域1210中的保护对象数据0108内的数据0701被用数据加密密钥0702加密,所以如果不将数据0701用数据加密密钥0702解密,程序A0102就不能使用数据0701。
这里,假设用总线加密电路0204进行解密。
所以,程序A0102对非法动作防止控制部0106请求设定数据区域。
在数据区域设定请求中包含有保护对象数据区域1210的地址和安全要件。
这里,程序A0102对非法动作防止控制部0106指示使用包含在保护对象数据0108中的安全要件列表0109作为安全要件。
非法动作防止控制部0106进行图12所示的(步骤S0801)到(步骤S0813)的处理。
在非法动作防止控制处理(步骤S0807)中,非法动作防止控制部0106进行与数据区域保护设定处理0603同样的处理。
但是,在确认是否是未使用区域的处理(步骤S0602)之后,追加图20的流程图所示的、程序A的功能标志是否满足保护对象数据0108的安全要件列表0109所记载的安全要件的确认处理。
如果不满足安全要件,则结束非法动作防止控制处理。
这里,在是否满足安全要件的确认中,非法动作防止控制部0106首先进行安全要件列表的合法性确认(步骤S1801)。
在判断为安全要件列表是非法的情况下(步骤S1801的“否”),结束非法动作防止控制处理。
这里,非法动作防止控制部0106使用签名数据0708进行安全要件列表0109的合法性的确认。
接着,非法动作防止控制部0106进行安全要件与功能标志的比较(步骤S1802)。
这里,非法动作防止控制部0106比较确认了合法性的安全要件列表0109与包含在程序管理信息T1301中的程序A的功能标志,进行是否满足安全要件的确认、以及包含在安全要件管理信息表T1400中的生成的程序是程序A的安全要件管理信息的安全要件是否满足安全要件列表0109的确认。
在判断为不满足安全要件的情况下(步骤S1802的“否”),结束非法动作防止控制处理。
通过确认包含在安全要件管理信息表T1400中的其他数据区域的安全要件是否满足安全要件列表0109,能够防止数据从不满足保护对象数据0108的安全要件的数据区域泄漏。
接着,非法动作防止控制部0106在进行数据加密密钥0702的解密后(步骤S1803),进行数据区域管理信息表的更新(步骤S0603)。
这里,非法动作防止控制部0106在程序A用数据区域管理信息表T0500中追加数据区域管理信息T0502,并且在安全要件管理信息表T1400中追加安全要件管理信息T1402。
在数据区域管理信息T0502的数据加密密钥中保存有数据加密密钥0702。
在图17中,数据加密密钥0702表示为“KD_S”。
接着,程序A0102委托非法动作防止控制部0106,以便用基于安全要件列表0109的安全要件确保1600~1699地址号的数据区域(步骤S1103)。
这里,在安全要件列表0109中包含有保护对象数据0108是文件输出禁止的信息。
这里,非法动作防止控制部0106利用安全要件管理信息表T1400确认所要求的安全要件是否与程序A0102已经生成的所有的数据区域的安全要件同等或比其严格。
如果所要求的安全要件不是与已经生成的所有的数据区域的安全要件同等或比其严格,则不进行管理信息的追加。
如果所要求的安全要件是与已经生成的所有的数据区域的安全要件同等或比其严格的安全要件,则在程序A用数据区域管理信息表T0500中追加数据区域管理信息T0503,并且在安全要件管理信息表T1400中追加安全要件管理信息T1403。
接着,程序A0102从保护对象数据区域1210中读出保护对象数据0108,进行保护对象数据0108的处理(步骤S1105)。
处理结果被保存在程序A的数据区域1203中。
接着,程序A0102进行从程序A0102向程序B0103的切换处理(步骤S1106)。
这里,切换处理进行图13及图14的步骤S0901~步骤S0933的处理。
在执行切换处理(步骤S1106)以前,在非法动作防止电路0105中设定有程序A用代码区域管理信息表T0900以及程序A用数据区域管理信息表T0500的信息。
如果执行了切换处理(步骤S1106),则在非法动作防止电路0105中设定有程序B用代码区域管理信息表T1000以及程序B用数据区域管理信息表T0600的信息。
这里,将各代码区域管理信息表的设定反映在构成非法动作防止控制部0105的密钥寄存器0205的指令用密钥信息表0305中,将各数据区域管理信息表的设定反映在数据用密钥信息表0306中,以便适合动作中的程序的密钥被设定到密钥寄存器中。
这样,程序保护装置0101进行从程序A0102向程序B0103的切换处理(步骤S1106),由于变更了将装载程序A0102的区域进行加/解密的密钥,所以能够防止程序B0103对程序A0102的非法执行。
例如,在程序B0103的动作中转移到被用代码加密密钥KC_A加密后保存在RAM0202中的程序A的代码区域1201(配置在1000~1099地址号中)的情况下,使用代码加密密钥KC_RB对代码区域1201的代码进行解密。
由于即使用密钥KC_RB对用密钥KC_A加密的代码进行解密,也不能将代码正确解密,所以CPU0201不能正确地执行,能够防止程序B0103对程序A0102的非法执行。
此外,同样,在程序B0103的动作中,即使对程序A的数据区域1202进行存取,由于数据加密密钥不同,也不能取得有意义的数据。
此外,程序保护装置0101通过进行从程序A0102向程序B0103的切换处理(步骤S1106),在发生了中断或例外的情况下,执行包含在程序B用中断管理部0403中的句柄。
因此,不会因中断及例外而被程序B0103以外的程序夺走控制。
接着,程序B0103为了使程序B的数据区域1205能够使用而对非法动作防止控制部0106委托数据保护设定(步骤S1107)。
这里,程序B0103委托非法动作防止控制部0106,以便用只有程序B0103能够存取的状态来确保2500~2599地址号的数据区域。
其结果,在程序B用数据区域管理信息表T0600中追加数据区域管理信息T0601,并且在安全要件管理信息表T1400中追加安全要件管理信息T1404。
接着,程序B0103为了将数据区域1203与程序A共享而进行数据保护设定(步骤S1108)。
这里,程序B0103委托非法动作防止控制部0106,以便用表示不能向文件输出的安全要件来确保1600~1699的地址号的数据区域1203。
数据区域1203由于已经被程序A0102确保,所以共享数据区域。
程序保护装置0101进行与图12所示的步骤S0801~步骤S0813同样的处理。
这里,在代码-数据保护设定(步骤S0807)中,非法动作防止控制部0106进行图10所示的数据区域共享设定处理0604。
在数据区域共享设定处理0604中,非法动作防止控制部0106确认所要求的数据区域是否存在于安全要件管理信息表T1400中(步骤S0632)。
非法动作防止控制部0106能够确认安全要件管理信息T1403的存在。
接着,非法动作防止控制部0106确认包含在程序B的程序管理信息T1302中的功能标志是否满足包含在所要求的数据区域的安全要件管理信息T1403中的安全要件。
这里,相对于共享对象的数据区域1203的安全要件是不能输出文件,程序B0103的功能标志是不能输出文件,所以判断为是妥当的。
结果,在包含于安全要件管理信息T1403中的共享程序标识符中设定程序B的标识符。
程序B0103对数据区域1203请求的安全要件是不能向文件输出,这与已有的安全要件相等,所以安全要件管理信息T1403的安全要件不变更。
接着,进行管理表的更新(步骤S0634),在程序B用数据区域管理信息表T0600中追加数据区域管理信息T0602。
数据区域管理信息T0602的数据加密密钥被设定为与程序A用数据区域管理信息T0503同样的密钥。
接着,进行数据保护设定的变更,变更密钥寄存器0205的设定。
结果,从程序B0103也能够参照程序A的数据区域1203。
接着,程序B0103使用数据区域1203的数据进行处理(步骤S1109)。
接着,程序保护装置0101进行从程序B向C的切换(步骤S1110)。
接着,程序C0107为了使程序C的数据区域1207能够使用而对非法动作防止控制部0106委托设定数据保护(步骤S1111)。
在此,程序C0107委托非法动作防止控制部0106以只有程序C能够存取的状态确保3500~3599地址号的数据区域。
结果,在程序C用数据区域管理信息表T0700中追加数据区域管理信息T0701,并且在安全要件管理信息表T1400中追加安全要件管理信息T1405。
接着,程序C0107为了将数据区域1203与程序A0102共享而进行数据保护设定(步骤S1112)。
在此,程序C0107委托非法动作防止控制部0106,以便用表示可向文件输出的安全要件来确保1600~1699的地址号的数据区域1203。
与共享存储器的设定(步骤S1108)同样,非法动作防止控制部0106进行数据区域共享设定处理0604。
共享存储器的设定(步骤S1112)与共享存储器的设定(步骤S1108)不同,共享存储器的设定失败。
这是因为,在数据区域共享设定处理0604中的请求的妥当性判断(步骤S0633)中判断为是不妥当的。
更具体地讲,非法动作防止控制部0106确认程序管理信息T1303的功能标志是否满足安全要件管理信息T1403的安全要件。
由于安全要件是不能进行文件输出、而功能标志是能够输出,所以非法动作防止控制部0106判断为程序C不满足数据区域1203的安全要件(步骤S0633的“否”),非法动作防止控制部0106结束非法动作防止控制处理。
<6.变形例>
另外,基于上述的实施方式说明了本发明,但本发明当然并不限于上述实施方式。以下的情况也包含在本发明中。
(1)在第1实施方式中,代码加密密钥0710等代码加密密钥被用公开密钥加密算法进行加密,但并不限于此。
也可以将各个代码加密密钥用公用密钥加密方式进行加密,在此情况下,在加密时使用的公用密钥由非法动作防止控制部0106保持。此外,程序并不一定需要进行加密。在此情况下,代码加密密钥0710为NULL密钥。此外,代码加密密钥0710可以包含算法信息,该算法信息用于对程序A的代码0711进行加密。
此外,对于数据加密密钥0702,也可以用公用密钥加密方式将数据加密密钥0702进行加密,在此情况下,在加密时使用的公用密钥由非法动作防止控制部0106保持。
此外,在不将数据0701加密的情况下,数据加密密钥0702为NULL密钥。
此外,数据加密密钥0702可以包括在对数据0701进行加密时使用的算法信息。
(2)在上述实施方式中,使用非法动作防止电路0105限制向RAM0202的存取,但并不限于此,也可以使用能够以程序单位限制向RAM0202的存取的其他电路、方法等。
例如,如图22所示,也可以使用非法动作防止电路2105来代替非法动作防止电路0105。
非法动作防止电路2105利用程序ID限制对RAM202的存储,以代替对存储在RAM202中的代码和数据进行加密和解密。
非法动作防止电路2105具备ID寄存器2205来代替密钥寄存器,具备总线连接许可电路2204来代替总线加密电路而。
ID寄存器2205如图23所示,保持有表示地址与指令用总线连接ID的对应的指令用ID信息表2305、和表示地址与数据用总线连接ID的对应的数据用ID信息表2306,从总线连接许可电路2204取得地址信号2301,将与地址信号2301表示的地址对应起来的指令用总线连接ID2302、数据用总线连接ID2303输出给总线连接许可电路2204。
这里,指令用ID信息表2305包括指令用ID信息T2311、T2312、T2313……,各指令用ID信息表示地址与指令用总线连接ID加密密钥的对应,数据用ID信息表2306包括数据用ID信息T2321、T2322、T2323……,各数据用ID信息表示地址与数据用总线连接ID的对应。
随着该变更,非法动作防止控制部0106管理的管理表0110的内容代替在上述实施方式中说明的内容而成为与用来对非法动作防止电路2105设定的ID有关的信息。
此外,可以仅在状态切换电路0208输出的状态信号B表示保护模式时,利用由总线0210通知的设定信号2304进行变更ID寄存器2205的设定。
RAM0202是与总线连接许可电路2204连接的存储器装置。
总线连接许可电路2204将从ID寄存器2205通知的数据用总线连接ID、代码用总线连接ID、和当前动作中的程序固有的ID比较,在一致的情况下许可向该地址表示的存储器区域进行存取。上述的当前动作中的程序的固有的ID是设定在当前程序管理表T0503中的当前程序的固有的ID。
由此,能够通过总线连接许可电路2204控制代码或数据是否在总线0210与RAM0202之间交换。
此外,总线连接许可电路2204检测在CPU0201上动作的程序是为了获取指令而存取RAM0202、还是为了数据存取而存取,在向相同的物理地址获取指令的情况下使用指令用总线连接ID,存取数据的情况下使用数据用总线连接ID。
(3)在上述实施方式中,以程序单位进行代码区域、数据区域、安全要件、程序的管理信息、存储器的共享等信息的管理、执行单位的切换,但并不限于此,也可以按照进程(process)、线程(thread)等其他的单位进行。在此情况下,在通常模式及保护模式的各个模式中联动动作的进程或线程也可以不是包含在相互不同的程序中的进程或线程,而是相同的程序的不同的进程或不同的线程。
(4)上述的各装置具体而言是由微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统,在上述RAM或上述硬盘单元中存储有计算机程序。通过上述微处理器按照上述计算机程序动作,各装置实现其功能。这里,计算机程序是为了实现规定的功能而由多个表示对计算机的指令的指令代码组合而构成的。
(5)构成上述各装置的结构要素的一部分或全部也可以由1个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是将多个结构部集成在1个芯片上制造出的超多功能LSI,具体而言是包括微处理器、ROM、RAM等而构成的计算机系统。在上述RAM中存储有计算机程序。通过上述微处理器按照上述计算机程序动作,系统LSI实现其功能。它们既可以单独构成1个芯片,也可以在1个芯片上包含一部分或全部。
这里,设为LSI,但根据集成度的差异,有时也称作IC、系统LSI、超级LSI、超大规模LSI。
此外,集成电路化的方法并不限于LSI,也可以由专用电路或通用处理器来实现。在LSI制造后,也可以利用能够编程的FPGA(FieldProgrammable Gate Array)、或可重构LSI内部的电路单元的连接或设定的可重构处理器。
进而,如果因半导体技术的进步或派生的其他技术而出现替换LSI的集成电路化的技术,则当然也可以利用该技术进行功能块的集成化。有可能是生物技术的应用。
(6)构成上述各装置的结构要素的一部分或全部也可以由可拆装到各装置上的IC卡或单体的模组构成。上述IC卡或上述模组是由微处理器、ROM、RAM等构成的计算机系统。上述IC卡或上述模组也可以包括上述超多功能LSI。通过微处理器按照计算机程序动作,上述IC卡或上述模组实现其功能。该IC卡或模组也可以具有防篡改性能。
(7)本发明也可以是上述所示的方法。此外,也可以是将这些方法通过计算机实现的计算机程序,也可以是由上述计算机程序构成的数字信号。
此外,本发明也可以是将上述计算机程序或上述数字信号记录在计算机可读取的记录介质、例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等中而成的产品。此外,也可以是记录在这些记录介质中的上述计算机程序或上述数字信号。
此外,本发明也可以是将上述计算机程序或上述数字信号经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数字广播等传送的系统。
此外,本发明也可以是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序动作。
此外,也可以通过将上述程序或上述数字信号记录在上述记录介质中移送,或者将上述程序或上述数字信号经由上述网络等移送,由独立的其他计算机系统实施。
(8)也可以将上述实施方式及上述变形例分别组合。
<7.对于用语的补充说明>
上述数据处理装置对应于程序保护装置0101。
上述检测单元对应于CPU0201及状态切换电路0208。
上述存取单元对应于非法动作防止电路0105、RAM0202、保护存储器0206、以及存取限制电路0207。
上述切换单元对应于状态切换部0208。
上述判断单元对应于非法动作防止控制部0106。
上述控制单元对应于非法动作防止控制部0106及安全内核0401。
上述存储器对应于RAM0202。
上述保持部对应于密钥寄存器0205。
上述存取限制部对应于非法动作防止控制部0106、安全内核0401、非法动作防止控制电路0105、RAM0202、保护存储器0206以及存取限制电路0207。
上述存取限制部的上述取得部对应于RAM0202、非法动作防止电路0205、安全内核0401、和非法动作防止控制部0106。
上述地址判断部对应于密钥寄存器0205和总线加密电路0204。
上述存取执行部对应于总线加密电路0204。
上述管理信息追加部对应于非法动作防止控制部0106。
上述向量表保持单元对应于非易失性存储器221。
上述向量表改写单元对应于非法动作防止控制部0106。
上述使用请求受理部对应于总线加密电路0204。
上述使用判断部对应于总线加密电路0204。
上述权限判断部对应于非法动作防止控制部0106。
上述管理信息登记部对应于非法动作防止控制部0106。
上述调试器单元对应于调试器I/F0209。
上述强制无效化单元对应于CPU0201。
工业实用性
本发明的程序保护装置可以用作为了功能追加、不良状况修正等而能够更新程序的数字家电等,可由经营家电产品的业者等生产、使用、销售等。

Claims (14)

1.一种数据处理装置,具备按照程序动作的处理器,切换通常模式和保护模式来动作,在该通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,其特征在于,具备:
存取禁止单元,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;
检测单元,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;
切换单元,如果检测到上述调用指令,则从通常模式切换为保护模式;
判断单元,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;以及
控制单元,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
2.如权利要求1所述的数据处理装置,其特征在于,
上述存取禁止单元包括:
存储器;
保持部,仅在保护模式下,可改写地保持管理信息,该管理信息表示每个进程在上述存储器内许可存取的区域;以及
存取限制部,使在通常模式下动作的进程按照上述管理信息对上述存储器进行存取;
在上述判断单元判断为有使用权限的情况下,上述控制单元在第2进程的管理信息中追加许可对上述存储器上的保持有上述对象数据的区域进行存取的信息。
3.如权利要求2所述的数据处理装置,其特征在于,
上述保持部保持的上述管理信息包括一个以上的、将上述存储器中的地址与对应于地址的密钥对应起来的信息;
上述存取限制部包括:
取得部,取得包括上述存储器的地址的向上述存储器存取的存取请求;
地址判断部,判断包含在上述存取请求中的地址是否包含在上述管理信息中;
存取执行部,在判断为包含的情况下,如果上述存取请求是写入请求,则将写入的数据用与上述地址对应的密钥进行加密而写入到上述地址所表示的区域中,在上述存取请求是读出请求的情况下,将从上述存储器的上述地址读出的数据用对应于上述地址的密钥进行解密并输出。
4.如权利要求2所述的数据处理装置,其特征在于,
上述数据是进程的代码。
5.如权利要求2所述的数据处理装置,其特征在于,
对各进程分配各自的进程标识符;
上述保持部保持的上述管理信息包括一个以上的、将上述存储器中的地址和表示许可向上述地址存取的进程的进程标识符对应起来的信息;
上述进程限制部包括:
取得部,取得包括上述存储器的地址的、向上述存储器存取的存取请求;
地址判断部,判断将包含在存取请求中的地址与分配给请求存取的进程的进程标识符对应起来的信息是否包含在上述管理信息中;
存取执行部,在判断为包含的情况下,使请求存取的进程对上述存储器的上述地址进行存取。
6.如权利要求1所述的数据处理装置,其特征在于,
对于上述数据分配安全要件信息,该安全要件信息表示对一个以上的数据处理方法的各个是否许可执行;
对各进程分配功能信息,该功能信息表示能否执行一个以上的数据处理方法的各个数据处理方法;
上述调用指令包含表示一个以上的数据处理方法的任一个的处理指定信息;
在上述安全要件信息表示许可执行上述处理指定信息表示的数据处理方法、并且第2进程的功能信息表示能够执行上述处理指定信息表示的数据处理方法的情况下,上述判断单元决定为有上述使用权限。
7.如权利要求1所述的数据处理装置,其特征在于,
上述切换单元在从上述通常模式向上述保护模式切换的情况下,将在上述通常模式下动作的进程的上下文保存到上述存储器中;
在从上述保护模式向上述通常模式切换的情况下,从上述存储器恢复接着在上述通常模式下动作的进程的上下文。
8.如权利要求7所述的数据处理装置,其特征在于,
上述第1进程及上述第2进程包括在分别动作的期间发生了中断或例外的情况下,处理该中断或例外的中断处理或例外处理;
上述数据处理装置还包括:
向量表保持单元,仅在保护模式下,可改写地保持表示在发生了中断或例外的情况下要执行的处理的向量表;
向量表改写单元,在动作的进程从上述第1进程向上述第2进程切换之前,在保护模式下改写上述向量表,以使在上述通常模式下发生中断或例外时执行第2进程的中断处理或例外处理。
9.如权利要求1所述的数据处理装置,其特征在于,
上述判断单元还包括:
使用请求受理部,从进程受理请求使用上述存储器的区域;
使用判断部,判断请求使用的地址是否已被使用;
权限判断部,在没有被使用的情况下,判断请求使用的进程有无对希望保存到上述地址的数据的使用权限;
管理信息登记部,在上述权限判断部判断为有使用权限的情况下,在请求使用的进程的管理信息中登记许可向上述地址所表示的区域进行存取的信息。
10.如权利要求9所述的数据处理装置,其特征在于,
在上述权限判断部判断为有使用权限的情况下,上述管理信息登记部生成密钥,并作为许可上述存取的信息,在请求使用的上述进程的管理信息中追加将上述地址与所生成的密钥对应起来的信息的组。
11.如权利要求1所述的数据处理装置,其特征在于,
上述数据处理装置还包括进行上述进程的调试的调试单元;
上述切换单元还在切换为上述通常模式的情况下,使上述调试单元有效,在切换为上述保护模式的情况下,使上述调试单元无效。
12.一种数据处理方法,在具备按照程序动作的处理器、切换通常模式和保护模式来动作的数据处理装置中使用,在上述通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,其特征在于,具备:
存取禁止步骤,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;
检测步骤,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;
切换步骤,如果检测到上述调用指令,则从通常模式切换为保护模式;
判断步骤,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;
控制步骤,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
13.一种计算机程序,在具备按照程序动作的处理器、切换通常模式和保护模式来动作的数据处理装置中使用,在上述通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,其特征在于,具备:
存取禁止步骤,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;
检测步骤,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;
切换步骤,如果检测到上述调用指令,则从通常模式切换为保护模式;
判断步骤,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;
控制步骤,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
14.一种集成电路,具备按照程序动作的处理器,切换通常模式和保护模式来动作,在该通常模式下,作为上述程序的执行单位的进程动作,在上述保护模式下,上述进程的动作被抑制,其特征在于,具备:
存取禁止单元,在通常模式下,对于第1进程的处理对象数据许可上述第1进程的存取,禁止其他进程的存取;
检测单元,在通常模式下,检测指示从上述第1进程调用第2进程的调用指令;
切换单元,如果检测到上述调用指令,则从通常模式切换为保护模式;
判断单元,在保护模式下,判断上述第2进程是否具有对上述处理对象数据的使用权限;以及
控制单元,在保护模式下,在判断为上述第2进程具有上述使用权限的情况下,对上述存取禁止单元进行控制,以许可上述第2进程在上述通常模式下对上述处理对象数据进行存取。
CN200680027404.3A 2005-05-26 2006-05-26 数据处理装置 Pending CN101233525A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005153478 2005-05-26
JP153478/2005 2005-05-26

Publications (1)

Publication Number Publication Date
CN101233525A true CN101233525A (zh) 2008-07-30

Family

ID=37452108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680027404.3A Pending CN101233525A (zh) 2005-05-26 2006-05-26 数据处理装置

Country Status (4)

Country Link
US (1) US7874009B2 (zh)
JP (1) JP4886682B2 (zh)
CN (1) CN101233525A (zh)
WO (1) WO2006126686A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023935A (zh) * 2009-09-22 2011-04-20 三星电子株式会社 具有密钥的数据存储设备及其方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114560A1 (ja) * 2007-02-21 2008-09-25 Nec Corporation コンピュータ、動作ルール適用方法、オペレーティングシステム
US8332660B2 (en) * 2008-01-02 2012-12-11 Arm Limited Providing secure services to a non-secure application
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
KR101425621B1 (ko) * 2008-01-15 2014-07-31 삼성전자주식회사 컨텐츠를 안전하게 공유하는 방법 및 시스템
JP2009278491A (ja) * 2008-05-16 2009-11-26 Casio Comput Co Ltd マイクロプロセッサ及びマイクロプロセッサ応用装置
US8484486B2 (en) * 2008-08-06 2013-07-09 Silver Spring Networks, Inc. Integrated cryptographic security module for a network node
US8555089B2 (en) * 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
JP5272751B2 (ja) * 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
US20110167496A1 (en) * 2009-07-07 2011-07-07 Kuity Corp. Enhanced hardware command filter matrix integrated circuit
US8301856B2 (en) * 2010-02-16 2012-10-30 Arm Limited Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法
US9076020B2 (en) * 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
WO2012169111A1 (ja) * 2011-06-06 2012-12-13 パナソニック株式会社 コンテンツデータ再生方法、およびサムネイル画像生成方法
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9575903B2 (en) * 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9772875B2 (en) * 2011-11-29 2017-09-26 Dell Products L.P. Multiple framework level modes
KR20140105343A (ko) * 2013-02-22 2014-09-01 삼성전자주식회사 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system
US20160179580A1 (en) * 2013-07-30 2016-06-23 Hewlett Packard Enterprise Development L.P. Resource management based on a process identifier
JP5911835B2 (ja) 2013-09-17 2016-04-27 株式会社東芝 情報処理装置
DE102015110729A1 (de) * 2014-07-21 2016-01-21 Dspace Digital Signal Processing And Control Engineering Gmbh Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle
JP6370231B2 (ja) * 2015-01-26 2018-08-08 Kddi株式会社 ソフトウェア更新装置、方法及びプログラム
JP2016139322A (ja) * 2015-01-28 2016-08-04 株式会社リコー 画像処理装置及びそれを備えた電子黒板
EP3271827A4 (en) * 2015-07-29 2019-02-27 Hewlett-Packard Enterprise Development LP FIREWALL FOR DETERMINING ACCESS TO A SECTION OF A MEMORY
US10339333B2 (en) * 2016-07-20 2019-07-02 Montage Technology Co., Ltd. Method and apparatus for controlling application to access memory
US10649678B2 (en) * 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring
JP2019133345A (ja) * 2018-01-30 2019-08-08 東芝メモリ株式会社 データ蓄積装置、データ処理システムおよびデータ処理方法
KR102287758B1 (ko) * 2018-03-05 2021-08-09 삼성전자주식회사 부채널 공격으로부터 캐시를 보호하는 시스템
KR20200021815A (ko) * 2018-08-21 2020-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN111968693B (zh) * 2020-08-21 2022-08-05 广芯微电子(广州)股份有限公司 一种mcu及mcu调试接口控制方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02155034A (ja) 1988-12-08 1990-06-14 Toshiba Corp セキュリティ機能付き計算機
JPH04102920A (ja) 1990-08-22 1992-04-03 Nec Corp 情報処理装置
EP1536422B1 (en) * 1998-09-22 2011-11-09 Panasonic Corporation Optical disc and method for recording additional information to an optical disc
US7096268B1 (en) * 1999-09-01 2006-08-22 Matsushita Electric Industrial Co., Ltd. Copyrighted data processing method and apparatus
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
JP4226760B2 (ja) 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP4177957B2 (ja) 2000-03-22 2008-11-05 日立オムロンターミナルソリューションズ株式会社 アクセス制御システム
US7035850B2 (en) * 2000-03-22 2006-04-25 Hitachi, Ltd. Access control system
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP4102920B2 (ja) 2002-07-25 2008-06-18 カシオ計算機株式会社 情報提供装置およびプログラム
US7171539B2 (en) * 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
WO2004046925A1 (en) * 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
RU2005115094A (ru) * 2002-11-18 2006-01-20 Арм Лимитед (Gb) Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена
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
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
GB2395583B (en) * 2002-11-18 2005-11-30 Advanced Risc Mach Ltd Diagnostic data capture control for multi-domain processors
US7231476B2 (en) * 2002-11-18 2007-06-12 Arm Limited Function control for a processor
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
GB2396034B (en) * 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
GB2396712B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
JP4423206B2 (ja) * 2002-11-18 2010-03-03 エイアールエム リミテッド 安全モードと非安全モードとを切り換えるプロセッサ
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
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
KR101015456B1 (ko) * 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023935A (zh) * 2009-09-22 2011-04-20 三星电子株式会社 具有密钥的数据存储设备及其方法

Also Published As

Publication number Publication date
US20090083520A1 (en) 2009-03-26
JP4886682B2 (ja) 2012-02-29
JPWO2006126686A1 (ja) 2008-12-25
WO2006126686A1 (ja) 2006-11-30
US7874009B2 (en) 2011-01-18

Similar Documents

Publication Publication Date Title
CN101233525A (zh) 数据处理装置
CN1647443B (zh) 帮助具有多个级别软件的集成系统的安全操作的方法和系统
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
CN102117387B (zh) 安全密钥访问设备及方法
CN1331056C (zh) 集成系统中的数据访问方法和系统
US9083512B2 (en) Recording device, and content-data playback system
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
US7788487B2 (en) Data processing apparatus
CN100354786C (zh) 开放型通用抗攻击cpu及其应用系统
US6895506B1 (en) Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
CN101174290B (zh) 安全处理器
CN100585608C (zh) 一种数据文件的安全处理方法及系统
US20200042747A1 (en) Security processing unit of plc and bus arbitration method thereof
US7299363B2 (en) Method for using shared library in tamper resistant microprocessor
CN101673251A (zh) 具有特许存储器的设备及其应用
US20050246551A1 (en) System and method for rendering selective presentation of documents
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
JP3624971B2 (ja) ソフトウエア利用制御方法
CN101556638A (zh) 数据处理设备
KR20080096054A (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
JP2010231623A (ja) キャッシュメモリ制御装置及び方法
CN101763319A (zh) 一种磁盘全盘加密系统及方法
KR20120068543A (ko) 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
JP2009075474A (ja) 暗号処理装置
JP2008097481A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080730