转自:http://tech.yktworld.com/201008/201008311414388523.html
金融IC卡作为新型的金融品种,在银行业务中的应用越来越广。各发卡行推出的金融IC卡必须符合统一的文件结构规范,才能够共享POS机和圈存机等端末设备。本文阐述了符合人民银行统一规范和符合ISO/IEC 7816-4规范的金融IC卡文件体系结构,对金融IC卡的文件访问机制做了简要说明。
一、金融IC卡文件组织结构
IC 卡操作系统(COS)的文件系统是三层的物理结构,即由主控文件(MF,Master File)、专有文件(DF,Dedicated File)和基本文件(EF,Elementary File)组成一个类似于DOS的层次结构。
1.主控文件是整个文件系统的根。每张卡有且只有一个主控文件,它在卡的个人化过程中首先被建立起来,在卡的生命周期中一直存在并保持有效,可存储卡的公共信息并为各种应用服务。通过个人化建立起来的主控文件包括文件控制参数和文件安全属性等信息。
2.专有文件是在MF下针对不同应用建立起来的一种文件,是位于MF之下的含有基本文件的一种文件结构,它存储某个应用的全部数据以及与应用操作相关的安全数据。DF由创立文件命令建立,对DF的建立操作由MF的安全属性控制。在DF下一般不再建立子 DF,只建立基本文件EF。一个DF对应一种应用。
3.基本文件存储了各种应用的数据和管理信息,它存在于MF或DF下。EF从存储内容上分为两类:安全基本文件(SEF,Secret Elementary File)和工作基本文件(WEF,Working Elementary File)。
安全基本文件包括用于用户识别和与加密有关的保密数据(个人识别码、PIN)等,其内容不允许被读出,但可以用专门的指令修改和写入。在MF和每个DF下面只能有一个安全基本文件,文件中的KEY和PIN的类型和修改权限可以指定。
工作基本文件包含应用的实际数据,在符合WEF的读写等安全属性时可对其进行操作,其大小和个数受到MF和DF所拥有空间的限制。整个文件系统的空间在MF、DF和EF创建时被分配和确定,在物理上不再变化。要访问某个EF,必须先选择相应的MF和DF。
除了金融IC卡的文件基本结构,卡片同时支持其他专有应用,其中DF1表示金融应用。它和其他应用一起建立在MF下。在MF和DF下都存在一些基本文件。下面是一些基本文件在金融应用中的说明。
ATR文件:复位应答文件,在卡片复位时获得应答信息。
KEY文件1:主控MF下密钥文件,存放卡片主控KEY、外部认证KEY等密钥。
目录文件:存放金融应用和其他专业应用的名称目录索引。
专有文件DF1:金融应用专有文件,在该应用下创建的文件由金融应用调用。
KEY文件2:金融应用下密钥文件,存放金融应用主控KEY、圈存圈提密钥、消费密钥、TAC密钥、MAC密钥、修改透支密钥、重装PIN密钥、解锁PIN密钥等密钥。
EF0015:金融应用公共基本信息文件。
EF0016:金融应用持卡人基本信息文件。
ED文件:金融应用电子存折文件。
EP文件:金融应用电子钱包文件。
EF0018:金融应用交易明细文件,自动记录每次圈存、圈提、消费的交易明细,能容纳10条最新的交易记录。
二、金融IC卡文件访问
金融IC卡的访问起始于一个名为1PAY.SYS.DDF01的初始文件,通过该文件找到金融支付环境必须存在的目录数据文件(DDF)。这个DDF被映 射到卡片的MF,包含了支付系统的目录。当卡片选择这个DDF文件时,从该文件的文件控制信息(FCI)中可以得到支付系统目录文件的短文件标识 (SFI)。
DDF中的每一条记录对应着卡片中不同的应用数据文件(ADF)的入口地址,它包含应用的名称、应用的标签、选择应用的命令和应用的入口地址等。目录可以 使用READ RECORD命令进行读取,并获得所要选择应用的应用标识符(AID)。除金融应用外,该目录文件还可以包含其他应用的入口地址,但该目录不要求包含卡片 上所有的ADF入口地址,也不要求沿着DDF的连接一定能够找到卡片支持的全部应用。但只有从初始目录开始,沿着DDF的连接能够找到应用,才具备国际互 通性。金融应用的访问要求符合这个互通性。
在支付系统目录中,每一个应用标识符对应一个应用数据文件(包括金融应用)的入口地址。应用标识符的结构必须符合ISO/IEC 7816-5,通过应用标识符,用SELECT命令能选择所要操作的应用DF,并返回该应用的文件控制信息(FCI)。
除了初始文件外,其他目录在支付系统环境下是可选的。每一个目录由一个目录短文件标识码定位,它存放在每一个DDF的FCI中。当包含该目录的DDF为当 前选定的文件时,可通过SFI来定位某一应用。如果在这一DF下不存在下一级的DF(例如金融应用),则不需要在DF中建立DDF文件。
当卡片成功选择金融应用的专用文件后,该专用文件被设置为当前文件应用,并允许使用金融应用的特殊命令来对其操作,包括电子钱包和电子存折的应用。
其他基本数据文件的选择可以通过READ命令并采用SFI方式实现。用文件的短文件标识符发出读记录命令来选择EF,但命令只对当前应用(目录)下的文件有效。
三、金融IC卡文件操作
在金融交易中,IC卡文件的操作(包括访问、查询和修改)并不是直接修改和编辑文件,而是对COS发送相应的操作指令,而操作指令必须在符合安全规范的前 提下才能被执行。在电子存折/电子钱包应用的执行过程中,卡片总处于某种状态。在某一种状态下,只有某些命令能够被执行。
卡片所处的状态有以下几种:空闲状态、圈存状态、消费/取现状态、圈提状态、修改状态。
当应用选择完成后,卡片首先进入空闲状态。当卡片从终端接收到一条命令后,它必须先检查当前状态是否允许执行该命令。当命令成功执行以后,卡片进入另一个状态(或同一个)。如果命令执行不成功,则卡片进入空闲状态。
第一行表示命令发出时卡片的当前状态,第一列表示发出的命令,而整张表给出的是在当前状态下某个子命令执行成功后的状态。阴影部分表示指令在卡片处于相应 状态时发出的命令是无效的。在这种情况下,卡片不执行该命令,并向终端返回“6901”状态码“命令不接受(无效状态)”,同时卡片返回空闲状态。
IC卡的文件结构和访问控制有其独立性,并由卡片操作系统完成。而针对IC卡片的操作,只需按应用访问到相应的文件并发出相应的指令,由卡片根据文件的结构来进行相应的读写操作,从而使金融IC卡文件具有更高的安全性。