[发明专利]程序执行控制电路、计算机系统和IC卡有效
申请号: | 200710127105.3 | 申请日: | 2007-06-28 |
公开(公告)号: | CN101097609A | 公开(公告)日: | 2008-01-02 |
发明(设计)人: | 小川龙一 | 申请(专利权)人: | 夏普株式会社 |
主分类号: | G06K19/073 | 分类号: | G06K19/073 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 程天正;刘宗杰 |
地址: | 日本大阪*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 执行 控制电路 计算机系统 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,通过 把在从外部源发送的数据中所并入的恶意程序代码转换到不能执行的状态并且将其存储在存储器中,来防止来自外部的安全性攻击,并且当在存储器中所存储的数据将被使用时,该数据被反向转换。依照这种方式,存储来自外部源的数据,使得计算机系统无法执行该数据,借此可以防止所述数据中所包含的恶意代码被执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于夏普株式会社,未经夏普株式会社许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710127105.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高强抗热腐蚀低偏析定向高温合金
- 下一篇:一种无铼第二代镍基单晶高温合金