一种用于智能卡的硬件防火墙系统的制作方法

文档序号:6420218阅读:172来源:国知局
专利名称:一种用于智能卡的硬件防火墙系统的制作方法
技术领域
本发明涉及一种硬件防火墙系统,特别是指一种用于智能卡领域中的硬件防火墙系统。
背景技术
当前,在国际智能卡领域,开始往多功能、多应用、大容量的高端智能卡方向发展,它要求若干个不同应用可以安全共享一张智能卡以达到“一卡多用”的效果。其中最典型的是双界面卡(Dual Interface SmartCard),其主要特点是在一张卡片上同时提供了两种与外界接口的方式接触式和非接触式,两种接口方式共用一个中央处理单元CPU管理,共享卡内存储器,是一种典型的多功能卡。
由于考虑到芯片成本、容易使用等各种因素,智能卡内的CPU往往采用8-bit CPU,如MCS 8051,其优点是通用性强,方便用户编程,其缺点是寻址空间比较小,一般来说,8-bit CPU最多只能寻址64KB的程序地址空间和64KB的数据地址空间。在多应用智能卡中,这些地址空间往往是不够用的。
另外,近年来的COS(智能卡操作系统)引入了一项新技术可以把可执行的机器代码下载到卡里。这样,COS就相当于Windows操作系统,该可执行机器代码就相当于用户应用程序。所下载的机器代码有两种形式1.本机代码(即编译成目标处理器机器语言的代码);2.解释代码(即用目标处理器的汇编语言编写,由COS中内嵌的解释器执行)。第一种方案的优点是显而易见的,本机代码可以在CPU中全速运行!但这种方案的潜在威胁也是显而易见的,由于智能卡中的CPU不具备任何种类的存储保护机制,所下载的本机代码能访问任何处于寻址的存储单元(包括RAM、ROM与EEPROM),于是,所有的存储内容都可以经过卡接口轻而易举地传到终端,这样,任何密钥或整个存储区域中的其他秘密信息的安全性都不再有保证。

发明内容
本发明的目的在于针对上述情况,提供了一种用于智能卡的硬件防火墙系统。该硬件防火墙一方面扩展了智能卡中CPU的寻址空间,使8-bit CPU的寻址空间达到1MB;另一方面使智能卡支持多应用下载,系统与应用之间、应用与应用之间相互隔离,每个应用仅能寻址属于它自己的地址空间。
本发明的上述目的是通过下述技术方案实现的在CPU与物理存储器之间增加了一个硬件防火墙,它利用“段式内存管理技术”把1MB的物理地址空间进行分段,利用“快速上下文切换”技术进行“代码重定位”,它通过修改操作系统或应用程序的逻辑地址,使操作系统与各个应用程序定位到不同的段,映射到不同的物理地址。段表只有一级,总共有8个段(segment0-segment7),段的特征用段描述符来描述,每一个段描述符包括段基地址、段长度、访问权限等三部分,其中,段基地址与段长度均为4KB的整数倍,而段长度的最大值为32KB。嵌入硬件防火墙后,CPU的运行模式分为特权模式与用户模式,操作系统运行于特权模式下,其存储区域和访问权限由段表中的segment0-segment3描述;而应用程序运行于用户模式下,存储区域和访问权限由段表中的segment4-segment7描述。每种应用在它被调用之前,其存储区域和访问权限由操作系统写入段表中,这样,它所允许的存储区域及权限便被操作系统限定了。硬件防火墙用一套硬件电路来检查运行程序代码是否保持在其设定的界限内,当某一应用程序被调用时,硬件防火墙将监视有关的存储边界,如果这些边界被越出或访问权限非法,经一中断返回到特权模式,将此程序停止,而应用的任何进一步作用都将被挂起。
与现有技术相比,本发明的有益效果是本发明扩展了智能卡的存储器空间,同时有效地保证了智能卡内的数据安全,它是解决几个不同应用安全共享一张智能卡以达到“一卡多用”的有效途径。


图1是本发明智能卡硬件防火墙的系统架构原理图;图2是本发明中快速上下文切换逻辑(FCSE)的代码重定位原理;图3是本发明中逻辑地址到物理地址的映射过程;图4是本发明中应用程序的调用原理;图5是本发明中特权模式与用户模式之间的相互转换原理。
其中FCSE为快速上下文切换逻辑(Fast Context Switch Extension),它执行“代码重定位”功能;Segment Table为段表,其中共包含8个段描述符(SegmentDescriptor);StbReg为段表基地址寄存器。由于段表是连续存放的,StbReg就是用来指示段表的首地址,共8位;
CtrlReg为控制寄存器,用来控制硬件防火墙的当前模式,只有1位有效位(OPM)。OPM=0时表示特权模式,OPM=1时表示用户模式;StatusReg为状态寄存器,用来指示硬件防火墙的当前状态,共有2位有效位,分别表示是否发生了非法数据访问和非法程序访问;具体实施方式
下面结合附图和实施例对本发明作进一步描述。
该智能卡硬件防火墙系统的基本原理是如图1所示,16位的CPU逻辑地址LA[15:0]首先通过FCSE(快速上下文切换逻辑)变换为18位的扩展逻辑地址MLA[17:0],其中FCSE的代码重定位(地址变换)原理如图2所示。
在FCSE中,LA[15:0]与MLA[17:0]的具体变换关系可由以下伪代码来描述(符号 & 表示VHDL中的“拼位”操作)MLA[14:0] =LA[14:0]MLA[17:15]=0 & 0 & LA15+OPM & Code_data & 0OPM(Operation Mode)表示CPU的当前运行模式,OPM=0时表示特权模式,OPM=1时表示用户模式。Code_data表示当前的地址是外部程序空间地址(Code_data=0)还是外部数据空间地址(Code_data=1)。
然后,把FCSE所生成的逻辑地址施加到段表中。在这里,段表是硬件防火墙中“段式内存管理技术”的核心部分,其主要功能是进行逻辑存储空间到物理存储空间的转换。在智能卡的硬件防火墙中,段表只有一级,总共有8个段(segment0-segment7),其中,segment0-segment3为特权模式专用,而segment4-segment7为用户模式专用。这里,作为特权模式的segmentO-segment3一般是固定不变的,而作为用户模式的segment4一segment7,则在每个应用程序运行前由特权模式程序设置。
每个段都采用一个段描述符来定义,段描述符反映了逻辑地址到物理地址的映射关系。每个段描述符包括一个基地址(Base)、一个相关的限制(Limit)和一个访问权限(AP),其中,限制也叫做段长度(Length)。在FCSE输出的逻辑地址中,MLA[17:15]作为段选择(表索引),而MLA[14:10]为段内逻辑地址(段索引),段内逻辑地址是相对于段基地址的偏移,偏移不能超过限制,否则将产生一个访问异常。
每段的段长度与段基地址都是可变的,但为了方便硬件电路的设计,段长度与段基地址都设定为4KB的整数倍,并且段长度的最大值为32KB,段基地址为20位(可寻址1MB的物理空间)。这样,段长度应该占有2个字节,而段基地址应该占用3个字节。但另外一方面,由于段长度和段基地址都设定为4KB的整数倍(最低12位都是0),因此,为了节省段描述符所占用的存储空间,把段长度和段基地址的数值都除以4096(右移12位),然后再存入段描述符中,这样,一个段描述符共占用2个字节,其中段基地址占用1个字节,而段长度和访问权限合并占用1个字节,如下图所示。

其中,AP的定义如下


这样,硬件防火墙就通过段表实现逻辑地址到物理地址的映射,具体的地址映射过程如图3所示,可简单描述如下◆通过FCSE把CPU的16位逻辑地址LA[15:0]转换为18位逻辑地址MLA[17:0]。
◆MLA[17:15]用来在段表中选择某一段描述符。由于每个段描述符占用2个字节,所以Table Index=MLA[17:15]*2。由Table Index加上STB Base(段表基地址寄存器)的值作为索引在段表中选择一个段描述符,所选择的段描述符包括AP、limit和base三项。
◆比较MLA[14:0]与limit*4096的大小、通过CPU的R/W信号线以及段描述符的AP数值来判断访问权限是否合法。如果MLA[14:0]≥limit*4096,或访问权限非法,则拒绝访问,产生访问错误异常,否则,以MLA[14:0]+Base*4096为地址,访问物理存储空间。
该智能卡硬件防火墙系统的模式转换是嵌入硬件防火墙后,CPU的运行模式分为特权模式与用户模式。特权模式对CPU外设具有完全的控制权限,包括处理中断,可访问硬件防火墙控制寄存器和修改段表;而用户模式对外设的操作是受限的,不能处理中断,对硬件防火墙控制寄存器和段表均无操作权限。
在智能卡中,从特权模式到用户模式的切换是通过写控制寄存器CtrlReg中的OPD位来实现的,通过置位OPM的值便实现了从特权模式到用户模式的切换;而从用户模式到特权模式的切换是通过特别增加的专用软中断源INT5来完成的,该软中断的执行将引起一个系统陷阱,而这个系统陷阱将造成CPU由用户模式转移到特权模式,并进入系统服务调度程序,数值参数指明了被请求的系统服务号。
用户模式应用程序的调用如图4所示,芯片复位后(OPM=0,Segment0-Segment3=缺省值)进入特权模式。在特权模式下,系统COS首先判断该运行哪个应用程序(由相应的PID标识),然后设置段表Segment4-Segment7,接着可以通过以下方式调用应用程序进入用户模式(一般来说,应用程序程序的开始逻辑地址是0x0000) 首先置CtrlReg.OPD=1,紧接着调用LJMP或LCALL指令进入用户模式,这LJMP或LCALL指定了用户应用程序的开始逻辑地址。
该智能卡硬件防火墙系统的用户模式与特权模式之间的切换处于用户模式的应用程序在发生以下两种情况下需要切换到特权模式其一、应用程序需要调用系统服务;其二、应用程序访问权限非法或产生越界访问错误(异常)。从某种意义上讲,异常也是一种系统服务调用。用户模式到特权模式的切换是通过“软件中断”的方法来完成的,这里特别增加了INT5软中断源。
在用户模式环境下,通过置中断控制寄存器中的IR5位为“1”(这时,硬件会自动设置控制寄存器CtrlReg的OPD位为“0”),便产生了软中断,CPU切换到特权模式,软中断服务程序被调用,进行访问异常错误处理或进入系统服务调度程序,数值参数指明了被请求的系统服务号,如图5所示。另外,系统服务程序的返回(应首先置CtrlReg.OPD=1)即完成了特权模式到用户模式的切换。
一般来说,系统服务调用所需的数值参数可以存放在寄存器或堆栈中,如果传递给系统服务的参数指向了在用户空间中的缓冲区,则必须查明这些缓冲区的可访问性。另外,由于系统服务调用在形式上相当于中断服务程序,因此应该注意保护与恢复现场。
综上所述,本发明人通过以上技术方案的实施,达到了本发明人的发明目的。该硬件防火墙系统一方面扩展了智能卡中CPU的寻址空间,另一方面使智能卡支持多应用下载,同时有效地保证了智能卡内的数据安全。
权利要求
1.一种智能卡硬件防火墙系统,其特征为安装在CPU与物理存储器之间,利用“段式内存管理技术”把物理地址空间进行分段,利用“快速上下文切换”技术进行“代码重定位”,它通过修改操作系统或应用程序的逻辑地址,使操作系统与各个应用程序定位到不同的段,映射到不同的物理地址。这样,智能卡中8-bit CPU的寻址空间被扩展到1MB,并且使智能卡支持多应用下载,系统与应用之间、应用与应用之间相互隔离,每个应用仅能寻址属于它自己的地址空间。
2.如权利要求1所述的智能卡硬件防火墙系统,其特征为“段式内存管理技术”中的段表只有一级,总共有8个段,段的特征用段描述符来描述,每一个段描述符包括段基地址、段长度、访问权限等三部分,其中,段基地址与段长度均为4KB的整数倍,而段长度的最大值为32KB。
3.如权利要求1或2所述的智能卡硬件防火墙系统,其特征为嵌入硬件防火墙后,CPU的运行模式分为特权模式与用户模式,操作系统运行于特权模式下,而应用程序运行于用户模式下,其存储区域及权限由操作系统通过修改段表来限定。
4.如权利要求3所述的智能卡硬件防火墙系统,其特征为从特权模式到用户模式的切换是利用控制寄存器CtrlReg中的OPD位来实现的,而从用户模式到特权模式的切换是通过特别增加的专用软中断来完成的。
全文摘要
本发明公开了一种用于智能卡的硬件防火墙系统,旨在提供一种安全有效,并能使不同应用安全共享一张智能卡的硬件防火墙系统。它利用“段式内存管理技术”把物理地址空间进行分段,利用“快速上下文切换”技术进行“代码重定位”,通过修改操作系统或应用程序的逻辑地址,使操作系统与各个应用程序定位到不同的段,映射到不同的物理地址。这样,智能卡中的8-bit CPU的寻址空间被扩展到1MB,且使智能卡支持多应用下载,允许其发行后再往卡里下载应用,系统与应用之间、应用与应用之间相互隔离,每个应用仅能寻址属于它自己的地址空间。
文档编号G06F9/48GK1614575SQ20031010840
公开日2005年5月11日 申请日期2003年11月4日 优先权日2003年11月4日
发明者邱炳森 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1