一种新的“一卡多用”智能卡模型
1、问题的提出
智能卡(Smart Card)又称CPU卡,是一种镶嵌有单片机芯片的IC卡。卡上的单片机芯片包含中央处理器CPU、随机存储器RAM 、电擦除可编程存储器EEPROM 或FlashMemory、只读存储器ROM和I/O接口。COS (ChipOperating System)为芯片操作系统,它是掩膜在IC卡内单片机ROM中的可执行代码,是芯片资源的管理者和安全保密的基础。
传统的COS基本操作方式为:从接口设备接收到一条命令,然后经过加工处理返回应答信息给接口设备。每个命令都要经过其中4个模块,如果其中任意一个模块在处理中发现错误都将返回相应的出错信息。传输管理负责卡和接口设备之间的数据通信,通信使用的协议一般是1SO7816-3所规定的T=O的异步半双工字符传输协议豉T=1异步半双工块传输协议。数据在传输方式上一般有3种不同的类型:明文方式、明文校验方式和密文方式。对于以明文方式进行传输的数据由传输管理器直接送给命令处理模块。当数据以明文校验方式或密文方式传输时需要加密运算器对数据进行相应的处理。命令解释器只是对外部输入的每条命令作语法分析,分析和检查命令参数是否正确,然后根据命令参数的含义执行相应的功能模块。如果发现参数有错,直接返回出错的信息。文件管理器控制对文件的操作和访问。在做数据操作前,文件管理器将根据文件的安全属性来检查卡的安全状态,以确定操作的可行性。文件的安全属性和文件结构一旦产生便处于文件管理器的控制之下。对文件数据的操作和管理将按如下的规则:对某个文件做操作之前,必须先选择该文件;文件系统有三层结构,并且操作系统不支持以路径的方式选择文件,所以在选择某个文件之前必须先选择它的上一层文件,不允许跨层选择。卡片上电后自动选择主控文件;访问文件中的数据要受文件的安全属性的控制;对文件的建立受该文件所属上层文件的安全属性的控制。
综上所述,对于传统的卡和COS,由于在卡的生命周期内不能更新卡上的COS,并采用了相应的访问控制措施和加密传输方式,从而可以保证卡上数据的安全和完整。智能卡的发展趋势之一是“一卡多用” ,即在一张智能卡上集成多个应用。这不仅可以有效地降低单个应用的使用成本,而且也便于用户的携带。对单应用智能卡来说,由于应用的提供者通常就是卡的发行者,因此卡上的数据安全通常就由卡的发行者负责。支持“一卡多用” 的智能卡应允许用户下载其特定的应用程序,允许用户扩充或修改部分COS命令。每一应用只能访问其自己的数据和程序,而不能访问其它应用的数据或程序。由于一张智能卡同时存在多个应用,应用可能由于本身的缺陷或出于恶意攻击的目的,访问其他应用的数据或程序。数据安全性无法只由卡片发行商、应用的提供商或者用户来单独保证。因此如何保证卡上的数据安全是支持”一卡多用”智能卡系统应解决的核心问题。
COS中与安全最相关的部分就是文件的管理,也就是存储器的管理(包括RAM、ROM、EEPROM和Flashmemory等)。对于传统的COS而言,COS中的命令可以对所有的存储空间进行操作, 由于COS不可以更新,所有对存储器的操作都要通过相应的COS命令来进行,所以存储器都处于COS的控制之下,而在COS命令中采用了相应的控制方法就可以保证存储器上的数据安全。利用有关的指令就可以读取所有的存储器的数据和写所有能写的存储区(除ROM外)。在“一卡多用”的系统中,显然,可以利用添加新的应用的方法来对系统进行攻击(读出所有数据进行分析、改写一些系统关键数据等),这些攻击方法可以绕过COS的文件控制模块直接进行,使得文件控制模块形同虚设。同时,添加的应用如果存在缺陷也可能会存在破坏系统的问题。因此,如何实施有效地存储管理来防止这类问题的发生就成为系统安全的关键问题。
特定用户下载的程序可以对其他用户的程序和数据进行访问。现有智能卡硬件设计不能对多个用户区进行隔离保护,即限制特定用户命令的访问范围。本文提出了一种一卡多用智能卡的安全模型,它能支持一卡多用的安全使用,允许多个应用在智能卡中下载其特殊命令,并实现多个应用的隔离。每一应用只能访问其自身的数据或用户命令,不能访问其他应用的数据或命令。
2 、“一卡多用”智能卡的硬件模型
在Intel 8086/8088系统中,由于硬件的限制,系统程序和用户程序同属于一个安全级别(即系统程序和用户程序在执行上没有任何区别,例如DOS系统),因此用户特定应用程序的执行可能破坏系统从而导致整个系统崩溃或者存取其它用户的数据,显然这种模型是非常不安全的,而现在的智能卡系统几乎都是基于这种模型的,利用现有的智能卡来实现“一卡多用” 就难以保证整个系统的安全。借鉴Intel80386中利用硬件建立4个特权级来保证系统程序和用户程序分离以实现多任务及任务切换和对各个任务环境进
留言区(共0条)