发布时间:2008-11-21阅读:955
智能卡作为识别媒体从一开始就是典型的单个用户系统。然而,多功能智能卡的高度安全性和访问机制使 智能卡能用做多用户系统。当然,不应低估有关的成本和努力。为此,所需的加密保护机制的复杂性也将成 为关键。
这里的状况很类似于不同的文件结构的情况。原则上,用透明的文件结构也可以构造一个面向数据集合的 电话目录。但是,用线性可变的文件结构能工作得好一些。
这就是为什么数据库询问语言SQL(Structured Query Language)的一个子集合在ISO/IEC7816-7中被标 准化以用于智能卡的根本原因,并且已经被不同的操作系统供应商结合到产品中去了。规定在ISO/IEC 9075 标准中SQL的用于智能卡的子集被称做结构化卡查询语言SCQL(Structured Card Quety Language)。使用 具有SCQL性能的智能卡的主要领域是健康管理,因为在这个领域中不同的人员和机构必须使用大量不同的读 写访问权来访问数据。
像SQL一样,SCQL支持面向表格的数据库系统。在这样的系统中,包含有表格名、固定数量的命名行和可变 数量的列。“逻辑视图”可用于这种表格,如果一张视图是静态的,这就是说某个数量的行数已指派给此视 图。相反,一个动态视图是满足特定条件(诸如给定名字=陈红)的列的选择,静态视图和动态视图的结合 是允许的。每一视图有其自己的名字并可用做读写数据的基础,参见图1和图2。
SCQL在智能卡中需要操作系统中包括一种另外类型的文件结构,称之为“数据库”。具有此结构的文件称 数据库文件DBF(Data Base File)。这是一个数据库对象,可以直接位于MI'之下或隶属于某个DF,它含 有数据表格和相关的系统表格。一个DBF可用数据库命令寻址而不需要首先被选择,它是一个逻辑构造,其分布可能跨过数个EF,这取决于操作系统。
必须在DBF中建立起三个系统表格以管理用户和权限。对象描述表(object descriptiontable)存储有关 表格的信息和与之相关的视图,它们由用户描述表(user descriptic,n table)所补充,是由数据库系统 中的用户所定义的。第3个DBF表格是权限描述表(privilege description诫此),它规定了单个的用户关 于表格和视图的权限,以及允许的对表格和视图的操作权限。
可以对SCQL表格或视图执行的操作有读、插人、写和删除,它们都要受访问杈的管制,定义了一个指针以 便在表格或视图中读写,它指向要施行操作之列。
图1 一个有3行5列的SCQL表格(为此表建立了静态和动态视图。视图1是静态的,整个显示了第1和第2列。 视图2是动态的,显示了满足某个条件的各列中的所有行)
图2 一个SCQL表格之例,有三行为:‘名’和‘团伙’,特性‘保护人’。有7条记录项,同时给出了三个 视图(可在SCQL中对不同的视频规定不同的访问权)
虽然和SQL比起来SCQL有很多限制,诸如没有分类,没有嵌套查询,没有并(运算)等等,它仍然具有在 多用户领域中找到应用的可能。然而,目前可用的微控制器的存储器还没有大到满足智能卡中大范围的SCQL 数据库的需要。最好还是等待一下,直到大量应用兴起之时。这里有三条基本的SCQL命令:PERFORM SCQL OPERATION(执行SCQL操作),PERFORM TRANSACTION OPERATION(执行交易操作)和PERFORM USER OPERATION(执行用户操作),对它们来说只需要三条指令(INS),因为真正的SCQL操作是由参数字节P2所启动的,在命令体 和响应体中的数据都是TLV编码的数据对象。这三条命令已归纳在表1,表2和表3之中。
表1 遵照ISO/IEC 78167的SCQL命令PERFORM SCQL OPERATION
表2 遵照lSO/lEC 7816-7的SCQL命令PERFORM TRANSACTION OPERATION的功能
表3 遵照ISO/IEC 7816-7的SCCIL命令PERFORM USER OPERATION的功能