CN101097609A - 程序执行控制电路、计算机系统和ic卡 - Google Patents

程序执行控制电路、计算机系统和ic卡 Download PDF

Info

Publication number
CN101097609A
CN101097609A CNA2007101271053A CN200710127105A CN101097609A CN 101097609 A CN101097609 A CN 101097609A CN A2007101271053 A CNA2007101271053 A CN A2007101271053A CN 200710127105 A CN200710127105 A CN 200710127105A CN 101097609 A CN101097609 A CN 101097609A
Authority
CN
China
Prior art keywords
program
storage area
memory zone
stored
computer
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
Application number
CNA2007101271053A
Other languages
English (en)
Other versions
CN101097609B (zh
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN101097609A publication Critical patent/CN101097609A/zh
Application granted granted Critical
Publication of CN101097609B publication Critical patent/CN101097609B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/77Protecting 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 in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

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

Abstract

一种防止从外部通信设备发送到计算机系统如IC卡并存储在其中的非法程序被执行的计算机系统。该系统包括CPU3、通信电路4、存储第一和第二计算机程序的第一存储器区域5、第二存储器区域6,第二存储器区域包括用于第一计算机程序、由所述通信电路接收数据、在CPU的程序执行中使用数据的存储区域。当由CPU执行的程序是第一计算机程序时,若程序代码被存储在第一存储器区域5中或第二存储器区域6中用于所述第一计算机程序的存储区域,则允许程序被执行,若程序代码被存储在所述第二存储器区域6中不同于用于第一计算机程序的存储区域的存储区域,则不允许程序被执行。

Description

程序执行控制电路、计算机系统和IC卡
技术领域
本发明涉及一种诸如IC卡之类的计算机系统,所述计算机系统具有到外部连接设备的通信接口,并且尤其涉及一种程序执行控制电路,用于控制所述IC卡的易失性存储器中的程序代码的执行,以防止通过非法执行从所述外部连接设备接收到所述易失性存储器中作为恶意程序代码的命令数据而非法修改或读取所述IC卡中的数据。
背景技术
由于与广泛使用的磁卡相比,包括在塑料卡中装备有CPU(CentralProcessing Unit中央处理单元)、非易失存储器、易失性存储器等IC芯片的IC卡能够存储大量数据,并且在安全方面更为优越,所以它正变得越来越普遍。
如图6和7所示,IC卡执行基本操作,使得它接收从外部连接设备23所发送的命令APDU(Application Data Unit应用数据单元)24并且确定所述IC卡20中命令的内容,对应于所述IC卡20中的命令内容来执行处理,并且将其处理结果作为响应APDU 25返回到所述外部连接设备23,其中所述外部连接设备23包括终端PC 21和IC卡读取器/写入器22(R/W)。
在ISO/IEC7816-4中定义了从外部连接设备所发送的命令APDU的格式,所述ISO/IEC7816-4是如图8所示的IC卡的国际标准。在图8中所示出的四个字节CLA、INS、P1和P2被称作命令首部,用于表示IC卡的处理种类。CLA是用于定义应用的数据,INS是指令代码,并且P1和P2是命令APDU的参数。另外,Lc、Data和Le是命令主体并且包括所述命令的处理信息。Lc指代数据长度,Data指代数据字段,并且Le指代从IC卡所返回的响应APDU的数据长度。响应APDU的SW1和SW2是IC卡上的状态信息。
例如,在IC卡程序命令已经被存储到命令首部中并且程序数据已经被存储到命令APDU的命令主体中之后,用于对IC卡上的信息进行编程的命令被从外部连接设备发送到所述IC卡。IC卡检查所接收的命令APDU的命令首部,并且当它把所述命令确定为程序命令时,它对IC卡中的命令APDU的命令主体的信息进行编程,并且将其结果发送到外部连接设备作为响应APDU,所述响应APDU具有在图8中所示出的格式。
由IC卡作为命令APDU所接收的数据被存储在易失性存储器(RAM)的接收缓冲器中,所述易失性存储器通常由所述IC卡的应用程序来使用。
IC卡的CPU执行在非易失存储器中所存储的程序代码。另外,它可以预先把数据存储到易失性存储器中并且能够把所述数据作为程序代码来执行。即,在接收缓冲器中所存储的命令APDU可以作为程序代码被执行。
IC卡的命令数据应当被正确地包含在从外部连接设备向所述IC卡发送的命令APDU中。然而,能够包含在命令APDU中的不是原始的命令数据,而是程序代码。包含于命令APDU的程序代码可以被存储在接收缓冲器中,并且IC卡的CPU可以执行所述程序代码。
IC卡的CPU包含用于指定要执行的程序代码地址的程序计数器,并且程序计数器值例如在每次执行所述程序代码时被增加。
在IC卡处于正常状态的过程中,易失性存储器中接收缓冲器的地址不太可能被设置到程序计数器,并且所述接收缓冲器中的数据作为程序代码来执行。
然而,当程序计数器被外部攻击操作并且在所述程序计数器中设置接收缓冲器的地址时,所述接收缓冲器中的命令数据可以作为程序代码执行。
当恶意的攻击者向IC卡发送包含恶意程序代码的命令APDU时,把非法的程序代码存储到所述IC卡的易失性存储器的接收缓冲器中,并且成功地以所述接收缓冲器的地址设置程序计数器,所述非法的程序代码被执行并且所述IC卡的内部数据能够被读取或修改。
作为操作程序计数器的方法,考虑一种其中由于施加到IC卡的CPU上的一些噪音而使CPU失控并且把程序计数器移到与原始执行地址不同的地址的方法。
作为防止从外部连接设备发送到IC卡的易失性存储器并且存储到其中的非法程序被执行的方法,在日本专利申请已公开号2000-222202中公开了一种方法。依照日本专利申请已公开号2000-222202,通过把在从外部源发送的数据中所并入的恶意程序代码转换到不能执行的状态并且将其存储在存储器中,来防止来自外部的安全性攻击,并且当在存储器中所存储的数据将被使用时,该数据被反向转换。依照这种方式,存储来自外部源的数据,使得计算机系统无法执行该数据,借此可以防止所述数据中所包含的恶意代码被执行。
将参考在图9中所示出的流程图来描述此常规方法。首先,在步骤S301产生随机数。然后,在步骤S302从外部源接收数据。在步骤S303,使用在步骤S301所产生的随机数来转换在步骤S302所接收的数据,并且在步骤S304把所转换的数据存储到存储器中。这里应当注意的是,在存储器中所存储的数据无法被计算机系统执行。在步骤S305,所述数据在存储器要求它时被取出。在步骤S306,在步骤S305所取出的数据被反向转换并且恢复为原始数据。在步骤S307,使用被反向转换的数据。
然而,依照在日本专利申请已公开号2000-222202中所公开的常规方法,由于必须转换并反向转换所接收的数据,所以当使用高级转换时会花费时间并且损害了实时特性。另外,当被反向转换并恢复为原始数据的数据存在于存储器中时,在该数据中所并入的恶意代码在那时可以被来自外部的攻击所执行。
另外,系统程序(OS:操作系统)和对应于各种服务的应用程序通常被安装在IC卡的非易失存储器中。同时,易失性存储器(RAM)被用作每个程序的操作区域。
在系统程序执行期间,并不总是从其中存储程序的非易失存储器中执行所述系统程序的程序代码。即,用于编程非易失存储器中的数据或更新它的程序代码或者用于抑制功率消耗的程序代码被预先从非易失存储器转送到易失性存储器,并且在一些情况下被系统程序所执行。
这里,当易失性存储器中的程序代码的全部执行均不被允许时,尽管可以防止从外部连接设备发送到IC卡的易失性存储器并且存储在其中的非法程序被执行,但是如上所述的其中必须在易失性存储器中执行系统程序的过程也无法执行。
发明内容
本发明考虑到上述问题,并且本发明的目的首先是提供一种程序执行控制电路,用于控制程序代码的执行以防止从外部连接设备向计算机系统(诸如IC卡)发送并存储在其中的非法程序被执行;并且其次提供了一种具有存储器保护功能的计算机系统,其中防止恶意程序被执行并且可以防止在诸如IC卡之类的计算机系统中所存储的数据被擦除、修改、泄漏等。
为了获得上述目的的依照本发明的程序执行控制电路通过控制计算机系统特征在于第一特性,所述计算机系统包括能够执行第一计算机程序和第二计算机程序的CPU,能够接收从外部连接设备所发送的数据的通信电路,用于存储所述第一和第二计算机程序的第一存储器区域,以及第二存储器区域,包括用于所述第一计算机程序的存储区域、用于由所述通信电路所接收数据的存储区域和用于当所述CPU执行程序时所使用数据的存储区域,使得在认识到将由所述CPU执行的程序是所述第一计算机程序的情况下,当所述程序的程序代码被存储在所述第一存储器区域中或所述第二存储器区域中用于所述第一计算机程序的存储区域中时,允许所述程序被执行,并且当所述程序代码被存储在所述第二存储器区域中不同于用于所述第一计算机程序的存储区域的存储区域中时,不允许所述程序被执行。
依照具有第一特性的程序执行控制电路,由于从外部连接设备所接收并且存储在第二存储器区域的预定区域中的数据在所述第一计算机程序执行期间不允许作为程序代码执行,所以即使当恶意程序代码被包含在所接收的数据中,那么也可以防止所述数据被非法修改或读取。另外,由于在第二存储器区域中仅仅为所述第一计算机程序所分配的存储区域中所存储的数据才可以在第一计算机程序的执行期间作为程序代码执行,所以执行所述第二存储器区域中的第一计算机程序所要求的过程可以被执行。
此外,除第一特性之外,依照本发明的程序执行控制电路在特征在于第二特性,执行控制使得在认识到将由CPU执行的程序是第二计算机程序情况下,当所述程序的程序代码被存储在第一存储器区域中时,允许所述程序被执行,并且当所述程序代码被存储在第二存储器区域中时,不允许所述程序被执行。
依照具有第二特性的程序执行控制电路,由于从外部连接设备接收并且存储在第二存储器区域中的数据在第二计算机程序执行期间不允许作为程序代码执行,所以即使当恶意程序代码被包含在所接收的数据中,那么也可以防止所述数据被非法修改或读取。另外,可以防止第二计算机程序错误地执行在第二存储器区域中所存储的第一计算机程序。
此外,除第二特性之外,依照本发明的程序执行控制电路特征在于第三特性,包括以下各项:标志,用于确定将由CPU执行的程序是第一计算机程序还是第二计算机程序;边界地址寄存器,用于存储第二存储器区域中用于所述第一计算机程序的存储区域的边界地址,和地址比较器,用于把所述第一或第二存储器区域的地址(用于指定所述程序的程序代码被存储在的位置)与在所述边界地址寄存器中所存储的边界地址相比较,并且确定所述程序代码是否被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中。当所述标志示出了由CPU执行的程序是第一计算机程序,并且地址比较器确定程序代码被存储在第二存储器区域中用于所述第一计算机程序的存储区域中时,程序执行控制电路在从所述第一或第二存储器区域读取程序代码的取指令周期期间向所述第二存储器区域输出读出控制信号;并且当所述标志示出将由CPU执行的程序是第二计算机程序,或者地址比较器确定所存储的位置被存储在第二存储器区域中除其中用于第一计算机程序的存储区域之外的存储区域时,它在取指令周期期间不向所述第二存储器区域输出读出控制信号。
依照具有第三特性的程序执行控制电路,可以逐一地实现具有第一或第二特性的程序执行控制电路。
用于获得上述目的的依照本发明的计算机系统特征在于第一特性,包括以下各项:依照以上第一到第三特性中任何一个的程序执行控制电路,能够执行第一计算机程序和第二计算机程序的CPU,能够接收从外部连接设备所发送的数据的通信电路,能够存储所述第一和第二计算机程序的第一存储器区域,以及第二存储器区域,包括用于所述第一计算机程序的存储区域、用于由所述通信电路所接收数据的存储区域和用于当所述CPU执行程序时所使用数据的存储区域。
此外,除第一特性之外,依照本发明的计算机系统特征在于第二特性:第一存储器区域包括非易失存储器并且第二存储器区域包括易失性存储器。
更进一步地,除第一或第二特性之外,依照本发明的计算机系统特征在于第三特性:所述程序执行控制电路是具有第三特性的程序执行控制电路,并且系统程序和应用程序被分别作为第一计算机程序和第二计算机程序存储在第一存储器区域中,并且在CPU已经被复位之后开始所述系统程序,并且包括第一步骤:在所述程序执行控制电路中所提供的边界地址寄存器中设置边界地址,第二步骤:把在所述程序执行控制电路中所提供的标志设置为这样的状态,使得将由CPU执行的程序是第一计算机程序,和第三步骤:把部分或全部系统程序存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中。
此外,除第三特性之外,依照本发明的计算机系统特征在于第四特性:其所述系统程序进一步包括第四步骤:确定通信电路接收到从外部连接设备所发送的命令数据还是没有,第五步骤:当确定在第四步骤接收到命令数据时,把所述命令数据存储在所述第二存储器区域中用于由所述通信电路所接收数据的存储区域中,第六步骤:确定所述命令数据是应用程序的开始命令还是不是,第七步骤:当在第六步骤确定所述命令数据是所述应用程序的开始命令时,把标志设置为这样的状态,使得将由CPU执行的程序是第二计算机程序,第八步骤:开始所述应用程序,和第九步骤:在所述应用程序已经完成之后,把所述标记设置为这样的状态,使得将由CPU执行的程序是第一计算机程序。
此外,除第四特性之外,依照本发明的计算机系统特征在于第五特性:在系统程序的第八步骤已经开始应用程序之后,所述应用程序具有第一步骤:确定通信电路是否接收到从外部连接设备所发送的命令数据,第二步骤:当在第一步骤确定接收到了所述命令数据时,把所述命令数据存储到所述第二存储器区域中用于由所述通信电路所接收数据的存储区域中,第三步骤:确定所述命令数据是否为所述应用程序的结束命令,和第四步骤:当在第三步骤确定所述命令数据是所述应用程序的结束命令时,把操作移动到所述系统程序的第九步骤。
此外,除第四或第五特性之外,依照本发明的计算机系统特征在于第六特性:所述系统程序进一步包括:第十步骤:当在第六步骤确定所述命令数据是所述系统程序的开始命令时,确定将要执行的系统程序是否被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中,当在所述第十步骤确定所述系统程序被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中时,执行在所述第二存储器区域中用于所述第一计算机程序的存储区域中所存储的系统程序的步骤,和当在所述第十步骤确定所述系统程序没有被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中时,执行在所述第一存储器区域中所存储的系统程序的步骤。
依照具有以上每个特性的计算机系统,由于当执行第一或第二计算机程序时从外部连接设备所接收并且存储在第二存储器区域的预定区域中的数据不允许作为程序代码执行,所以即使当恶意程序代码被包含在所接收的数据中,也可以防止所述数据被非法修改或读取。
此外,一种依照本发明的IC卡,其特征在于包括具有任何一个以上特性的计算机系统。
依照具有以上特性的IC卡,防止从外部连接设备发送到IC卡并且存储在其中的恶意程序被执行,并且可以防止在IC卡中所存储的数据被擦除、修改、泄漏等。
附图说明
图1是示出依照本发明一个实施例的计算机系统的系统构造示例的框图;
图2是示出依照本发明一个实施例的程序执行控制电路的电路构造示例的电路图;
图3示出了简要示出依照本发明一个实施例的程序执行控制电路的操作的控制状态的存储器映象;
图4是用于解释依照本发明一个实施例的计算机系统的系统程序的处理过程的流程图;
图5是用于解释在图4中所示出的系统程序中的处理过程期间应用程序的执行过程的流程图;
图6是用于解释IC卡的基本系统构造的视图;
图7是用于解释IC卡的基本命令流程的视图;
图8是用于解释IC卡的命令APDU和响应APDU的数据结构的视图;和
图9是示出防止从外部所接收的恶意程序被执行的常规方法的流程图。
具体实施方式
在下文中,将参考附图描述依照本发明的程序执行控制电路和计算机系统的实施例(以下有时被称为“本发明的电路”和“本发明的系统”)。
依照此实施例,假定本发明的电路被应用于计算机系统,所述计算机系统包括CPU(中央处理器)、可以接收从外部连接设备所发送数据的通信电路、非易失存储器和易失性存储器,并且本发明的系统作为IC卡提供,所述IC卡在塑料卡中并入有一个或多个IC芯片,所述IC芯片包括本发明的计算机系统和电路的组件。
与常规的例子类似,依照此实施例的IC卡的基本系统具有在图6中所示出的构造。终端PC 21和IC卡读取器/写入器22作为外部连接设备23,使用接触型接口或非接触型接口与IC卡20通信。如图7所示,在图6中的外部连接设备23和IC卡20之间交换命令,使得命令APDU 24被从外部连接设备23发送到IC卡20,并且其相对于命令APDU 24的处理结果作为响应APDU 25被从所述IC卡20发送到所述外部连接设备23,像常规情况那样。
图1示出了本发明的系统的进一步详细构造(对应于在图6中所示出的IC卡20)。本发明的系统1包括CPU 3、通信电路4、非易失存储器5、易失性存储器6和本发明的电路2。
CPU 3通过读取在非易失存储器5和易失性存储器6中所存储的程序代码来在IC卡中执行处理。
通信电路4是用于向外部连接设备23发送以及从中接收数据的通信接口电路,更具体地说是用于接收命令APDU以及发送响应APDU,并且它提供了接触型接口或非接触型接口。
非易失存储器5包括诸如闪速存储器之类的半导体非易失性存储器,并且易失性存储器6包括诸如SRAM或DRAM之类的半导体随机存取存储器。非易失存储器5的地址区域提供了第一存储器区域,并且易失性存储器6的地址区域提供了不同于所述第一存储器区域的第二存储器区域,并且CPU 3可以访问这两个存储区域。
IC卡的系统程序的程序代码(对应于第一计算机程序)和所述IC卡的应用程序的程序代码(对应于第二计算机程序)被存储在由非易失存储器5所提供的第一存储器区域中。
如图3所示,由易失性存储器6所提供的第二存储器区域被划分为仅用于系统程序的程序代码的存储区域R1、接收缓冲器7(R2)和用于当CPU 3执行系统程序或应用程序时读取和写入数据的数据存储区(临时工作区)R3,其中所述接收缓冲器7是用于由通信电路4所接收的数据(命令APDU)的存储区域。系统程序中必须在第二存储器区域中执行的程序代码被存储在第二存储器区域中仅用于所述系统程序的程序代码的存储区域R1中。程序代码中将要执行的过程包括用于在非易失存储器5中进行数据写入的过程等。
本发明的电路2控制CPU 3是否可以执行在易失性存储器6中所提供的第二存储器区域中所存储的程序代码。本发明的电路2的构造和操作将参考图2进行描述。
图2是示出本发明的电路2的一个电路构造示例的电路图。如图2所示,本发明的电路2包括标志10、边界地址寄存器11、地址比较器12、与电路13和或电路14。本发明的电路2控制是否可以从易失性存储器6中读取程序代码,以允许或不允许存储于第二存储器区域中的程序代码被图1中所示出的CPU 3执行。
标志10存储1比特标识符F,用于识别将由CPU 3执行的对象是系统程序还是应用程序。当在标志10中所存储的标识符F是“逻辑值1”(以下只用“1”来表示)时,这意味着系统程序正被执行或者刚好在其执行之前,并且当标识符F是“逻辑值0”(以下只用“0”来表示)时,这意味着应用程序正被执行或刚好在其执行之前。另外,如下面将描述的那样,对标志10所进行的标识符F的设置由CPU 3借助系统程序来执行。
边界地址寄存器11存储在第二存储器区域中仅用于系统程序的存储区域R1的边界地址。更具体地说,当划分第二存储器区域使得第二存储器区域中仅用于系统程序的存储区域R1(地址区域)位于接收缓冲器R2和临时工作区R3的地址区域下侧时,所述边界地址是存储区域R1的最高有效地址或存储区域R2或R3的最低有效地址。
地址比较器12接收地址信号和在边界地址寄存器11中所存储的边界地址,并且比较所述地址值并且确定地址信号的地址值是否处于第二存储器区域中仅用于系统程序的存储区域R1中,所述地址信号用于指定将执行的程序代码的存储空间。当地址信号的地址值处于第二存储器区域中仅用于系统程序的存储区域R1中时,输出“1”,并且当其并不处于存储区域R1中时(即,它处于存储区域R2或R3),输出“0”。更具体地说,当假定第二存储器区域被划分使得第二存储器区域中仅用于系统程序的存储区域R1位于接收缓冲器R2或临时工作区R3的下侧,并且所述边界地址由存储区域R1的最高有效地址指定时,在地址信号的地址值等于或小于边界地址的地址值的情况下输出“1”,并且在所述地址信号的地址值大于所述边界地址的地址值的情况下输出“0”。
与电路13具有三个输入端,向其输入标志10(标识符F)的输出、地址比较器12的输出和取指令信号Sif,并且其输出被输入到或电路14。取指令信号Sif是读出控制信号,当CPU 3读取在第一或第二存储器区域中所存储的程序代码时,在取指令周期期间输出所述读出控制信号。取指令信号Sif在“1”变为激活状态。
或电路14具有两个输入,向其输入与电路13的输出和第二读出控制信号S2rd,并且其输出被输入到易失性存储器6作为易失性存储器6的读出控制信号RD。第二读出控制信号S2rd是当CPU 3取出程序代码并且在执行所取出指令时读取在第二存储器区域中所存储的数据时输出的读出控制信号。第二读出控制信号S2rd在“1”变为激活状态。
因而,当与电路13的全部输入为“1”或第二读出控制信号S2rd是“1”时,读出控制信号RD变为“1”并且被激活。这里,集中在控制CPU 3是否可以从易失性存储器6读取程序代码的情况,由于第二读出控制信号S2rd的信号电平是“0”,所以读出控制信号RD的状态基本上由与电路13的每个输入的信号电平来确定。即当标志10的标识符F是“1”并且将由CPU 3执行的对象是系统程序,以及地址比较器12的输出是“1”并且将执行的系统程序的程序代码处于第二存储器区域中仅用于系统程序的存储区域R1中时,与取指令信号Sif同步地输出读出控制信号RD,并且允许读取第二存储器区域中仅用于系统程序的存储区域R1中所存储的程序代码。
另外,当标志10的标识符F为“0”并且将由CPU 3执行的对象是应用程序时,读出控制信号RD不被激活,而不管将执行的程序代码存储在什么地方,并且不允许所述程序代码被读取。此外,即使当标志10的标识符F为“1”并且将由CPU 3执行的对象是系统程序时,如果地址比较器12的输出为“0”并且将执行的程序代码并不处于第二存储器区域中仅用于系统程序的存储区域R1中,那么类似地,所述程序代码不允许被读取。
图3示出了存储器映象,用于概括按照本发明的电路操作的控制状态,并且依照标志10的标识符F和用于指定将执行程序代码所存储地方的地方示出了程序代码的允许执行或禁止执行的状态。在图3中,当系统程序正被执行时(即当标识符F为“1”时)的存储器映象被布置在左边(图3A),并且当应用程序正被执行时(即当标识符F为“0”时)的存储器映象被布置在右边(图3B)。
如图3所示,当标志10的标识符F为“1”时,允许程序代码在仅用于系统程序的存储区域R1中执行,并且不允许程序代码在接收缓冲器R2和临时工作区R3中执行。另外,当标志10的标识符F为“0”时,不允许程序代码在整个第二存储器区域(R1,R2和R3)中执行。
接下来,将参考在图4中所示出的流程图来描述本发明的系统的执行操作,包括对本发明的电路2的控制。
首先,在步骤S100,当CPU 3被复位时,所述CPU 3中的程序计数器被设置为刚好在复位之后的初始地址,即非易失存储器5(第一存储器区域)的系统程序的头地址。
然后,在步骤S101,开始执行在第一存储器区域中所存储的系统程序。
然后,在步骤S102,通过由CPU 3执行系统程序来在本发明的电路2的边界地址寄存器11中设置边界地址。
然后,在步骤S103,通过执行系统程序来在本发明的电路2的标志10中设置“1”,使得可以识别所述系统程序的执行状态。
然后,在步骤S104,通过执行系统程序来把必要的程序代码从第一存储器区域转送到第二存储器区域中仅用于系统程序的存储区域R1并且存储在其中。
在系统程序从步骤S101到S104执行之后,如在图3A中的存储器映象所示,本发明的电路2变为控制状态,其中可以允许程序代码在第二存储器区域中仅用于系统程序的存储区域R1中执行。
然后,在步骤S105,通过执行系统程序来确定命令APDU是否被从外部连接设备23发送到通信电路4。
当在步骤S105发送了命令APDU时(是),操作通过执行系统程序而移到步骤S106,并且命令APDU被存储在第二存储器区域中的接收缓冲器(R2)7中。从那时起,即使当在接收缓冲器7中所存储的命令APDU是恶意程序代码,如图3A中的存储器映象所示,由于不允许程序代码在接收缓冲器(R2)7中执行,所以防止了所述程序代码被非法执行。另外,当在步骤S105没有发送命令APDU时(否),重复在步骤S105的确定操作。
然后,在步骤S107,通过执行系统程序来确定在步骤S106存储于接收缓冲器(R2)7中的命令APDU的内容。当命令APDU在步骤S107是应用程序的开始命令时(是),操作移到步骤S108;并且当它不是时(当它是系统程序的开始命令时)(否),操作移到步骤S111。
在步骤S108,当通过执行系统程序来把“0”设置在本发明的电路2的标志10中时,可以识别应用程序的执行状态。借助在步骤S108的过程,本发明的电路2变为控制状态,在所述控制状态中不允许程序代码在第二存储器区域中被执行,如图3B中的存储器映象所示。
然后,在步骤S109,由CPU 3执行应用程序。
这里,将参考在图5中所示出的流程图来描述应用程序在步骤S109的执行过程。
首先,在步骤S109,通过执行系统程序来调用在图5中所示出的应用程序的执行过程的子例程。因而,在步骤S200,在第一存储器区域中的应用程序的首地址设置CPU 3的程序计数器,并且在步骤S201,开始在所述第一存储器区域中所存储的应用程序。
然后,在步骤S202,通过执行应用程序来确定命令APDU是否被从外部连接设备23发送到通信电路4。
当在步骤S202发送了命令APDU时(是),通过执行所述应用,操作移到步骤S203并且命令APDU被存储在第二存储器区域中的接收缓冲器(R2)7中。从那时起,即使当在接收缓冲器7中所存储的命令APDU是恶意程序代码,如图3B中的存储器映象所示,由于不允许在接收缓冲器(R2)7中执行程序代码,所以防止了所述程序代码被非法执行。此外,由于不允许在第二存储器区域中仅用于系统程序的存储区域R1以及临时工作区R3中执行程序代码,所以可以防止存储于所述第二存储器区域中的程序代码被错误地从应用程序执行。另外,当在步骤S202没有发送命令APDU时(否),重复在步骤S202的确定操作。
然后,在步骤S204,通过执行应用程序来确定在步骤S203存储于接收缓冲器(R2)7中的命令APDU的内容。当在步骤S204,命令APDU是应用程序的结束命令时(是),操作移到步骤S206;并且当它不是时(否),操作移到步骤S205并且继续执行所述应用程序。
当操作移到步骤S206时,它从子例程返回到在图4所示出的主例程中的步骤S110。
通过执行系统程序,在步骤S110把本发明的电路2的标志10设置为“1”,并且可以识别所述系统程序的执行状态。借助在步骤S110的执行过程,本发明的电路2返回到控制状态,在所述控制状态中允许在第二存储器区域中仅用于系统程序的存储区域R1中执行程序代码,如图3A中的存储器映象所示。
当操作因为依照在步骤S107的确定,命令APDU不是应用程序的开始命令而是系统程序的开始命令而被移到步骤S111时,通过执行系统程序来确定在步骤S106存储于接收缓冲器(R2)7中的命令APDU的内容,并且当所述命令APDU是在所述第二存储器区域中所存储的系统程序的开始命令时(是),操作移到步骤S112,并且当它不是时,操作移到步骤S113。
在步骤S112,被要求在第二存储器区域中执行的系统程序的命令过程在所述第二存储器区域中仅用于系统程序的存储区域R1中执行。同时,在步骤S113,在第一存储器区域中执行所述系统程序的命令过程。
如上所述,本发明的电路2和本发明的系统1可以提供存储器保护功能,其中可以确保防止从外部连接设备23发送到本发明的系统1的易失性存储器并且存储在其中的恶意程序被执行,当IC卡的系统程序正被执行时,可以执行分配给所述系统程序的易失性存储器区域的程序代码;并且当所述IC卡的应用程序正被执行时,不允许执行易失性存储器的整个区域中的程序代码,从而可以防止IC卡中所存储的数据被擦除、修改或泄漏。
(另一实施例)
接下来,将描述本发明的另一实施例。
(1)依照上述实施例,尽管假定本发明的系统1被作为在塑料卡中并入有一个或多个IC芯片的IC卡来提供,所述IC芯片包括CPU 3、通信电路4、非易失存储器5、易失性存储器6和本发明的电路2,但是本发明的系统1并不总是限于IC卡。
(2)另外,当本发明的系统1包括多个IC芯片时,在不同的IC芯片中分别包括CPU 3和易失性存储器6的情况下,本发明的电路2可以包括在除包含CPU 3和易失性存储器6的IC芯片之外的IC芯片中,或者可以在所述CPU 3或易失性存储器6的IC芯片中形成。
(3)尽管依照上述实施例,在图2中图示了本发明的电路2的一个电路构造例子,然而本发明的电路2不局限于在图2中所示出的电路构造。另外,在上述实施例中,尽管假定由“逻辑值1”来定义本发明的电路2的输入和输出信号的激活状态,但是可以由“逻辑值0”来指定部分或全部信号的激活状态。另外,标志10的标识符F的每个逻辑值以及地址比较器12的输出的定义不局限于上述实施例。因此,依照每个信号的逻辑值的定义,可以适当地改变本发明的电路2的电路构造。
依照本发明的程序执行控制电路和计算机系统可以被应用于与具有与外部连接设备的通信接口的计算机系统(诸如IC卡)。
尽管已经按照优选实施例描述了本发明,然而应当理解的是,在不脱离本发明的精神和范围的情况下,本领域技术人员可以进行各种修改和替换。因此,本发明应当按照随后的权利要求来限定。

Claims (11)

1.一种用于控制计算机系统的程序执行控制电路,
所述计算机系统包括能够执行第一计算机程序和第二计算机程序的CPU、能够接收从外部连接设备所发送的数据的通信电路,用于存储所述第一和第二计算机程序的第一存储器区域,和第二存储器区域,包括用于所述第一计算机程序的存储区域、用于由所述通信电路所接收数据的存储区域和用于当所述CPU执行程序时所使用数据的存储区域,
所述程序执行控制电路控制所述计算机系统,使得在认识到将由所述CPU执行的程序是所述第一计算机程序的情况下,
当所述程序的程序代码被存储在所述第一存储器区域或所述第二存储器区域中用于所述第一计算机程序的存储区域中时,允许执行所述程序,并且当所述程序代码被存储在第二存储器区域中不同于用于所述第一计算机程序的存储区域的存储区域时,不允许执行所述程序。
2.如权利要求1所述的程序执行控制电路,进行控制使得在认识到将由所述CPU执行的程序是所述第二计算机程序的情况下,
当所述程序的程序代码被存储在所述第一存储器区域中时,允许所述程序被执行,并且当所述程序代码被存储在所述第二存储器区域中时,不允许所述程序被执行。
3.如权利要求2所述的程序执行控制电路,包括:
用于确定将由所述CPU执行的程序是所述第一计算机程序还是所述第二计算机程序的标志;
边界地址寄存器,用于存储所述第二存储器区域中用于所述第一计算机程序的存储区域的边界地址;和
地址比较器,用于把所述第一或第二存储器区域的地址与在所述边界地址寄存器中所存储的边界地址相比较,并且确定所述程序代码是否存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中,所述地址用于指定所述程序的程序代码被存储在的位置,
当所述标志表明将由所述CPU执行的程序是第一计算机程序并且所述地址比较器确定所述程序代码被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中时,所述程序执行控制电路在从所述第一或第二存储器区域读取程序代码的取指令周期期间向所述第二存储器区域输出读出控制信号,并且
当所述标志表明将由所述CPU执行的程序是第二计算机程序时或者所述地址比较器确定所述程序代码被存储在第二存储器区域中不同于用于所述第一计算机程序的存储区域的存储区域时,所述程序执行控制电路在取指令周期期间不向所述第二存储器区域输出读出控制信号。
4.一种计算机系统,包括:
如权利要求1到3中任何一项所述的程序执行控制电路;
能够执行第一计算机程序和第二计算机程序的CPU;
能够接收从外部连接设备所发送的数据的通信电路;
能够存储所述第一和第二计算机程序的第一存储器区域;和
第二存储器区域,包括用于所述第一计算机程序的存储区域、用于由所述通信电路所接收数据的存储区域,以及用于当所述CPU执行程序时所使用数据的存储区域。
5.如权利要求4所述的计算机系统,其中
所述第一存储器区域包括非易失存储器,并且所述第二存储器区域包括易失性存储器。
6.一种计算机系统,包括:
如权利要求3所述的程序执行控制电路;
能够执行第一计算机程序和第二计算机程序的CPU;
能够接收从外部连接设备所发送的数据的通信电路;
能够存储所述第一和第二计算机程序的第一存储器区域;和
第二存储器区域,包括用于所述第一计算机程序的存储区域、用于由所述通信电路所接收数据的存储区域以及用于当所述CPU执行程序时所使用数据的存储区域,其中
系统程序和应用程序分别作为所述第一计算机程序和第二计算机程序被存储在所述第一存储器区域中,
在所述CPU已经被复位之后开始所述系统程序,并且包括
第一步骤:在程序执行控制电路中所提供的边界地址寄存器中设置边界地址,
第二步骤:设置在所述程序执行控制电路中所提供的标志的状态,使得将由所述CPU执行的程序是所述第一计算机程序,和
第三步骤:把部分或全部系统程序存储到所述第二存储器区域中用于所述第一计算机程序的存储区域中。
7.如权利要求6所述的计算机系统,其中
所述第一存储器区域包括非易失存储器,并且所述第二存储器区域包括易失性存储器。
8.如权利要求6所述的计算机系统,其中
所述系统程序进一步包括
第四步骤:确定所述通信电路是否接收到从外部连接设备所发送的命令数据,
第五步骤:当确定在第四步骤接收到命令数据时,把所述命令数据存储到所述第二存储器区域中用于由所述通信电路所接收数据的存储区域中,
第六步骤:确定所述命令数据是否为所述应用程序的开始命令,
第七步骤:当在第六步骤确定所述命令数据是所述应用程序的开始命令时,设置所述标志的状态,使得将由所述CPU执行的程序是所述第二计算机程序,
第八步骤:开始所述应用程序,和
第九步骤:在已经完成所述应用程序之后,设置所述标志的状态,使得将由所述CPU执行的程序是所述第一计算机程序。
9.如权利要求8所述的计算机系统,其中
所述应用程序包括
第一步骤:在所述系统程序的第八步骤已经开始所述应用程序之后,确定所述通信电路是否接收到从所述外部连接设备所发送的命令数据,
第二步骤:当确定在第一步骤接收所述命令数据时,把所述命令数据存储到所述第二存储器区域中用于由所述通信电路所接收数据的存储区域中,
第三步骤:确定所述命令数据是否为所述应用程序的结束命令,和
第四步骤:当在第三步骤确定所述命令数据是所述应用程序的结束命令时,把操作移动到所述系统程序的第九步骤。
10.如权利要求8或9所述的计算机系统,其中
所述系统程序进一步包括
第十步骤:当在第六步骤确定所述命令数据是所述系统程序的开始命令时,确定将要执行的系统程序是否被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中,
当在第十步骤确定所述系统程序被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中时,执行在所述第二存储器区域中用于所述第一计算机程序的存储区域中所存储的系统程序的步骤,和
当在第十步骤确定所述系统程序未被存储在所述第二存储器区域中用于所述第一计算机程序的存储区域中时,执行在所述第一存储器区域中所存储的系统程序的步骤。
11.一种包括如权利要求4到9中任何一项所述的计算机系统的IC卡。
CN2007101271053A 2006-06-28 2007-06-28 计算机系统、以及程序执行控制电路和方法 Expired - Fee Related CN101097609B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006178655A JP4203514B2 (ja) 2006-06-28 2006-06-28 プログラム実行制御回路、コンピュータシステム、及び、icカード
JP2006-178655 2006-06-28
JP2006178655 2006-06-28

Publications (2)

Publication Number Publication Date
CN101097609A true CN101097609A (zh) 2008-01-02
CN101097609B CN101097609B (zh) 2011-01-26

Family

ID=38750568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101271053A Expired - Fee Related CN101097609B (zh) 2006-06-28 2007-06-28 计算机系统、以及程序执行控制电路和方法

Country Status (4)

Country Link
US (1) US20080005799A1 (zh)
EP (1) EP1879125A3 (zh)
JP (1) JP4203514B2 (zh)
CN (1) CN101097609B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059304A (ja) * 2006-08-31 2008-03-13 Sony Corp 通信装置および方法、並びにプログラム
JP5460133B2 (ja) * 2009-06-09 2014-04-02 ラピスセミコンダクタ株式会社 マイクロコントローラ装置
CN106462709A (zh) * 2014-01-27 2017-02-22 克洛诺斯赛博科技有限公司 自动渗透测试设备、方法和系统
KR20160025292A (ko) * 2014-08-27 2016-03-08 에스케이하이닉스 주식회사 데이터 저장 장치, 그것을 포함하는 데이터 처리 시스템 및 그것의 동작 방법
JP6578814B2 (ja) 2015-08-20 2019-09-25 株式会社ソシオネクスト プロセッサ及びプロセッサシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2266149Y (zh) * 1996-07-09 1997-10-29 大连海事大学 一种微机硬盘存取控制装置
CN2368081Y (zh) * 1999-01-07 2000-03-08 北京航力电子产品贸易公司 计算机硬盘保护卡
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
WO2006056988A2 (en) * 2004-11-24 2006-06-01 Discretix Technologies Ltd. System, method and apparatus of securing an operating system
US9158941B2 (en) * 2006-03-16 2015-10-13 Arm Limited Managing access to content in a data processing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法

Also Published As

Publication number Publication date
EP1879125A2 (en) 2008-01-16
JP2008009650A (ja) 2008-01-17
JP4203514B2 (ja) 2009-01-07
EP1879125A3 (en) 2010-10-20
US20080005799A1 (en) 2008-01-03
CN101097609B (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
US9418224B2 (en) Portable electronic device and control method of portable electronic device
CN101097609B (zh) 计算机系统、以及程序执行控制电路和方法
WO1998030958A1 (en) Secure multiple application ic card system
JP2001256460A (ja) 1チップマイクロコンピュータ及びそれを用いたicカード
JP2007257542A (ja) 複合携帯可能電子装置および複合icカード
US20070075149A1 (en) Portable electronic device and IC card
US8082395B2 (en) Portable electronic device
JP4896842B2 (ja) 携帯可能電子装置
US6669099B2 (en) Memory card
KR20060067132A (ko) 휴대 가능 전자 장치
KR100399603B1 (ko) 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
JP2007115187A (ja) 携帯可能電子装置およびicカード
CN108376227B (zh) 一种安全芯片的文件访问方法及其系统
JP2009129402A (ja) Icカード用半導体装置、icカード、及びicカード用端末装置
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP2006195901A (ja) 半導体装置
CN104778053A (zh) 一种智能卡初始化控制方法及装置
JP2008047040A (ja) 携帯可能電子装置およびicカード
CN101853216A (zh) 数据处理系统、控制器及其搜寻特定内存区的方法
JP4734838B2 (ja) 情報記録媒体とプログラム、及びコマンド実行制御方法
WO2009016542A2 (en) Mobile communication device and method for defragging mifare memory
CN115840968A (zh) 兼具逻辑加密卡和cpu卡的芯片及其通信方法
JP2005275621A (ja) 携帯可能電子装置、電子処理システム、及び電子処理方法
JP2004206575A (ja) 携帯可能電子媒体及び携帯可能電子媒体に用いられる通信方法
US20100200650A1 (en) Mobile communication device and method for recovering mifare memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110126

Termination date: 20160628