一种多存储单元操作隔离的智能卡及其实现方法
技术领域
本发明涉及智能卡的硬件实现及实现方法。
背景技术
当前广泛应用的智能卡在对内部存贮器的安全使用方面,基本通过智能卡操作系统COS来进行控制。部分芯片设计会进行核心态和用户态的地址区分,通过程序运行在不同状态来控制对不同区域的访问。但基本上,最底层或处于核心态的程序控制者拥有所有的芯片资源,不同用户的数据隔离是通过COS及应用隔离来实现的,因此安全性无法达到很高的程度,尤其是在卡上存在不同应用管理用户时,不同应用的数据安全隔离有较大的安全隐患。在软件方面提高安全性的主要努力如JAVA卡,采用了软件防火墙机制,但这种安全性同样依赖于底层软件的安全实现。由于初始平台提供者可能具备完全的安全控制方式,后续不同应用管理者对共用平台有较大的安全性疑虑,影响了不同运营者在同一智能卡平台上进行业务运营的积极性。
发明内容
本发明要解决的问题是提供一种多存储单元操作隔离的智能卡及其实现方法,解决了现有技术中智能卡内部存贮器通过软件COS进行分区控制安全性不理想的问题。
为了解决上述技术问题,本发明提供了一种多存储单元操作隔离的智能卡实现方法,包括:
所述智能卡的数据存储区被划分成多个区块,将每个区块的操作密钥存储于密钥存储单元中,为数据存储区各个区块设置密钥验证存储单元,以及为每个区块设置操作指示,所述密钥验证存储单元用于存储数据存储区各区 块的验证数据,所述验证数据由用户通过智能卡操作系统COS写入;
当用户需要执行某操作时,先通过智能卡操作系统COS向密钥验证存储单元进行写数据操作,写数据操作触发运算比较单元对所写入的数据与密钥存储单元中相应区块密钥进行比较运算,根据比较结果,操作指示单元中相应的操作指示被硬件置为Enable或Disable,当操作指示单元中相应的操作指示为Enable时,允许用户执行所要求的操作。
进一步地,上述方法还可具有以下特点,所述方法进一步包括以下步骤:
(a)用户需要对数据存储器中某区块进行操作时,先通过COS向密钥验证存储单元中相应区块位置写入数据;
(b)对密钥验证存储单元的写操作触发运算比较单元进行比较运算,所述运算比较单元将所写入的数据与密钥存储单元中相应位置保存的密钥进行比较运算,判断结果是否相同,如果是,执行下一步,否则,操作指示单元中相应位置的操作指示被硬件置为Disable;
(c)操作指示单元中相应位置的操作指示被硬件置为Enable,访问控制单元根据所述操作指示单元中的Enable指示对相应区块进行操作。
进一步地,上述方法还可具有以下特点,在所述步骤(b)中,所述比较运算进一步是指:分别对所写入数据和密钥存储单元中相应位置的密钥进行数据运算后再进行比较。
进一步地,上述方法还可具有以下特点,在所述步骤(c)中,所述对相应区块进行操作包括以下操作的一种或几种:修改密钥存储单元中相应区块的密钥;读取相应区块中的数据;向相应区块中写入数据。
为了解决上述技术问题,本发明还提供了一种多存储单元操作隔离的智能卡,其中,所述智能卡的数据存储区被划分成多个区块,所述智能卡包括:
密钥存储单元,用于存储数据存储区中各区块的操作密钥;
密钥验证存储单元,用于存储数据存储区各区块的验证数据,所述验证数据由用户通过智能卡操作系统COS写入;
运算比较单元,用于在用户通过COS写入数据时被触发执行所述写入 的数据与所述密钥存储单元中相应区块密钥的比较运算;
操作指示单元,用于根据所述运算比较单元的比较结果,将其中相应区块的操作指示硬件置为Enable或Disable;
访问控制单元,用于在操作指示单元中相应区块的操作指示为Enable时,执行用户所要求的操作。
进一步地,上述智能卡还可具有以下特点,当所述运算比较单元的比较结果相同时,所述操作指示单元将其中相应区块的操作指示硬件置为Enable;当所述运算比较单元的比较结果不相同时,所述操作指示单元将其中相应区块的操作指示硬件置为Disable。
进一步地,上述智能卡还可具有以下特点,所述密钥验证存储单元是在用户需要对数据存储器中某区块进行操作时,由用户通过COS向其中相应区块的位置写入数据。
进一步地,上述智能卡还可具有以下特点,所述运算比较单元的比较运算进一步是指:分别对所写入数据和密钥存储单元中相应位置的密钥进行数据运算后再进行比较。
进一步地,上述智能卡还可具有以下特点,所述访问控制单元执行用户所要求的操作包括以下操作的一种或几种:修改密钥存储单元中相应区块的密钥;读取相应区块中的数据;向相应区块中写入数据。
进一步地,上述智能卡还可具有以下特点,所述智能卡还包括一存储单元配置表,用于存储智能卡数据存储区中各区块的数量和大小。
进一步地,上述智能卡还可具有以下特点,所述密钥存储单元的读操作被禁止,和/或所述密钥验证存储单元的读操作被禁止。
本发明通过在智能卡中集成不依赖于软件控制的安全访问机制,将卡内存贮器划分为多个安全区域,这些安全区域的访问受各自独立的密钥及安全算法控制,从而从硬件机制上保证了不同应用区域的安全隔离。
附图说明
图1为本实施例智能卡结构示意图;
图2为本实施例实现流程图。
具体实施方式
本实施例所述采用硬件机制进行多个存储器区域操作隔离的智能卡如图1所示,图中虚框部分以外是现有常规智能卡的主要组成部分,现有各单元模块之间的连接关系并未画出。
智能卡的数据存储器被划分为多个BLOCK(区块),BLOCK的数量和大小可以是固定的在芯片设计时确定,也可以是可配置的,如果划分是可配置的,则该配置需要在芯片出厂时在存储单元配置表E中被确定。一旦确定,这种划分对最终用户来讲是不可改变的。
将可配置的存储器划分与安全逻辑相关联,可以增大本发明产品的应用灵活性,避免必须均分配置、固定配置等芯片设计时就要确定的约束。
图1中虚框中的部分为本实施例中新增的单元,包括:
密钥存储单元(见图中的密钥存储器A),用于保存数据存储器中所有BLOCK(区块)的不同操作权限的密钥值,参见表1;为了存储器A中密钥的安全性,对存储器A的读操作被禁止,存储器A的写操作受操作指示单元的控制,只有操作指示单元中相应BLOCK的写允许标志为Enable状态时,才可更新密钥存储器A中相应BLOCK的密钥。
表1密钥存储器A的存储示意表
密钥验证存储单元(见图中的密钥验证存储器B,以下简称验证存储器B),用于存储待验证数据;对存储器B也依据BLOCK和权限分为不同的数据区域,参见表2,初始值为空(Null),对验证存储器B的读取也被禁止,防止数据被盗取,COS可以向其中写入数据,对验证存储器B的写入操作会触发运算比较单元的比较运算操作。
表2验证存储器B的存储示意表
运算比较单元(见图中的运算比较器C),在COS向验证存储器B写数据时触发运算比较单元的比较运算,用于比较写入验证存储器B的数据和相应位置上密钥存储器A中的值,运算比较器C的比较运算可以是对密钥存储器A和B中对应位置值的简单相同性比较,也可以是对密钥存储器A和B中的值进行某种现有算法或用户约定算法的运算后再进行比较,以获得更高的安全性,如DES(数据加密标准)运算,在使用如DES类的算法时,运算比较器C会预先生成一个随机数供COS使用,COS可以使用该随机数进行先期运算后再将结果写入存储器B中。
操作指示单元(见图中操作允许指示存储器D,以下简称指示器D),用于保存数据存储器中各个BLOCK不同操作的操作指示,指示器D中所有操作指示由硬件通过运算比较器C来进行控制,根据运算比较器C的比较结果修改相应BLOCK的指示,只有在操作指示为允许时才可以修改密钥存储器A中相应BLOCK的操作密钥值,或者对相应的BLOCK进行读和/或写操作。上电复位时指示器D的所有状态将被置为Disable,D的初始状态参见表3;
表3操作允许指示存储器B的示意表
访问控制单元(见图中访问控制器F),用于根据指示器D的操作指示对密钥存储器A的密钥进行修改操作,或者对存储器的不同BLOCK的访问进行安全控制(即读和/或写操作)。
本实施例中两存储单元操作隔离的实现方法如图2所示,包括以下步骤:
步骤201,当用户需要修改密钥和/或“读和/或写”BLOCK时,通过COS向验证存储器B中相应的位置进行写数据操作;
只有向验证存储器B中写入数据正确,用户才能进行所要求的操作。
步骤202,对验证存储器B的写操作触发运算比较器C进行比较运算,运算比较器C将写入验证存储器B的数据与密钥存储器A中相应位置的密钥进行比较运算,判断结果是否相同,如果是,执行下一步,否则,触发指示器D中相应位置的操作指示被硬件置为Disable,访问控制器F不会执行用户的操作;
如前所述,运算比较器C的比较运算可以是对密钥存储器A和B中对应密钥值的简单相同性比较,也可以是对密钥存储器A和B中的值进行某种现有算法或用户约定算法的运算后再进行比较,以获得更高的安全性,如DES(数据加密标准)运算,在使用如DES类的算法时,运算比较器C会预先生成一个随机数供COS使用,COS可以使用该随机数进行先期运算后再将结果写入B中。
步骤203,触发指示器D中相应位置的操作指示被硬件置为Enable;
步骤204,访问控制器F根据指示器D中相应操作指示进行操作,只有指示器D中相应BLOCK的写允许标志为Enable状态时,才可执行用户的更新密钥存储器A中相应BLOCK的密钥的操作或对存贮器的BLOCK进行读和/或写的操作。
本发明虽然由COS来触发改写密钥,但COS并不有直接来控制各个BLOCK的访问权限。只有向验证存储器B中写入数据正确,用户才能进行所要求的操作。
本发明的通过硬件机制将卡内存储器划分为多个安全区域的智能卡,安全度更高,并且因为可以通过统一的划分方案,方便运营商在不同智能卡平台进行业务运营开发。