所有文件可以通过文件标识符用SELECT命令进行选择,目录文件DF可以通过目录名称进行选择。短文件标识符:由于对CPU卡文件的操作要求节省空间并且方便操作。于是好像便出现了短文件标识符这个东东。所谓短文件标识符,在字面上的意思就是比文件标识符短。好像实际上也是这样。大家看看,短文件标识符只用1个字节来表示,并且只用1个字节低五位来表示。同一个目录下的文件短标识符必须是唯一的。短文件标识符可以通过ReadBinary、UpdateBinary命令的参数P1来实现文件的选择:若P1的高三位为100,则低5位为短文件标识符。例如:若P1为81H,即10000001,其中高三位为100,则所选的文件标识符为00001,十六进制文件标识表示为0001。短文件标识符选择还可以通过ReadRecord、UpdateRecord命令参数P2来实现文件的选择,方法是若P2的高五位不全为0,低五位为100,则高五位为短文件标识符。对于命令AppendRecord低五位为000来表短文件标识符。短文件标识符选择只能用五位来决定文件标识符,所以可选择的最大文件标识为31,若文件需要短文件标识符进行选择,则建立文件时就需将文件标识符取在1-31之间。<文件的访问>上一节中规定了那么多种文件,那么,究竟该怎么对那些文件进行访问呢?MF:在CPU卡被复位后自动被选择,在任何一级子目录下可通过文件标识3F00或其文件名来选择MFDF通过文件名或文件标识符来选择DF,在MF下可以选择任意DF。如果当前文件是一个DF下的一个EF,同样可以通过选择DF的文件标识符或文件名来选择任意DF。二进制文件:在满足读条件时可使用ReadBinary读取,在满足写条件时可用UpdateBinary来更改二进制文件的内容。定长记录文件:在满足读条件时可使用ReadRecord读取,在满足写条件时,若记录未满则用AppendRecord增加新记录,若记录已满则用UpdateRecord来更改指定记录的内容。循环定长记录文件:在满足读条件时可使用ReadRecord读取,在满足追加条件时可使用AppendRecord在文件末尾追加一个记录,当记录写满后自动覆盖最早写的记录,最后一次写入的记录,其记录号总是1,上次写入的记录号是2,依次类推。变长记录文件在满足读条件时可使用ReadRecord读出记录,在满足写条件时若记录未满则用AppendRecord增加新记录,若记录已满则用UpdateRecord来更改指定记录的内容。变长记录文件的格式为TLV格式,Tag为1字节的记录标识,L为1字节的记录数据长度,V为L字节的数据值。在执行UpdateRecord更改已存在的记录时,新写的整条记录长度必须和原来的整个记录长度相等,否则将返回错误。cpu卡入门教程8-安全篇[原创]问题的引出:假如说你现在手中有6份重要文件1、房契2、银行存折3、毕业证书4、户口本5、某某人欠你的100万块钱的欠条(呵呵,假装你有这么多钱,你是百万富翁并且很慷慨,一个好人)6、结婚证(这个好像已婚人士才有)这些对我们来说都是比较重要的东东,一定要妥善的安全的保存啊!你可以这么保存:方法1:把这些文件锁在六个保险柜里,一个柜子放一个文件方法2:把六个文件全部锁在一个保险柜里方法3:把六个文件锁在n个保险柜里,这个n比6小又比1大方法4:把文件放在一个小保险柜里,把小保险柜放进大保险柜里,或者你觉得很好玩的话,再把大保险柜放进大大保险柜里,如此一个保险柜再套另一个保险柜,只要你有钱、只要你还想套、我不反对。(另:至于买什么牌子的保险柜、价钱多少的保险柜,不在本文章的研究之中,有兴趣者可以和我私下讨论。我的电话是:139-123456789电话开机时间:凌晨3点到4点)在CPU卡中的文件的存放也会存在这些问题,比如说你有6个文件,你想存放在CPU卡的某个应用中。考虑到安全问题,CPU卡的文件安全及访问机制是由通过认证来实现的(如认证密钥、认证PIN,想进一步了解可以参考我写的文章:内、外部认证深入剖析:我们现在以认证是通过密钥的认证来说明:方法1:6个文件用6个密钥来保护,每个文件对应一个密钥方法2:6个文件只用一个密钥来保护方法3:6个文件进行归类,用n个密钥保护,这个n比6小又比1大方法4:文件用密钥套密钥保护。比如说文件1用密钥1保护、密钥1的使用又必须通过密钥2的认证。或者下面还更复杂密钥2的使用必须通过密钥3的认证。你可以把密钥想象成保险柜的钥匙,小保险柜的钥匙必须在大保险柜的控制下使用。(意思就是:小保险柜的钥匙必须在大保险柜的钥匙打开了大保险柜之后才能起作用,这话好像有些拗口,跟绕口令试的,呵呵)其实一般的保险柜都要密码的,也就是说保险柜的钥匙要和密码配套使用,两者缺一不可,好像看起来这样做会更保险一点,事实上也是。至于是先开钥匙后输入密码还是先输入密码再开钥匙,这主要看保险柜的设计。在CPU卡中可以实现,CPU卡可以用用户密码加上卡上密钥的方法实现。可以设计成两种模式:方式1、在密钥认证成功后,密码才可以使用。方式2、在密码的验证成功后,密钥才可以被使用。这必须按顺序来,如方式一,你要是想先验证密码,对不起,卡片会给你一个提示:安全状态不满足。这时候,你必须做的工作是,现对密钥进行认证,密钥认证成功后,再验证密码就不会提示安全状态不满足了以上机制好像听起来比较复杂,但其实也并不复杂。(谈何容易,或许你会这么说)在卡片中,现在比较流行的并且实现起来也挺简单的的方法:状态机机制一个CPU卡文件的安全认证设计,涉及到3方面的状态:1、系统当前的安全状态2、对文件操作必须满足的状态3、密钥的状态我们再以保险柜为例:比如说我们想查看保险柜的那张100万欠条的内容。1、对应的系统的当前状态:保险柜关闭状态2、对文件操作必须满足状态:保险柜打开状态怎么使系统的的当前状态:保险柜关闭状态变成对文件操作必须满足状态:保险柜打开状态呢?我们使用保险柜的钥匙来打开保险柜。3、使用钥匙后的后续状态:保险柜打开状态这样我们实现了对文件的操作。在CPU卡中,状态可以用一个数字来表示:比如说0我们定义:1、系统缺省的当前安全状态:02、对文件操作必须满足的状态:63、密钥的后续状态:6步骤:1、直接对文件进行操作,文件比较“系统的缺省状态:0”不等于“对文件操作必须满足的状态:6”提示,安全状态不满足。2、我们对密钥进行认证,认证通过后,把“密钥的后续状态:6”赋值“系统缺省的当前安全状态”这样“系统的缺省状态=6”3、下面我们再对文件进行操作,文件比较“系统的当前状态:6”等于“对文件操作必须满足的状态:6,可以对文件进行操作安全状态的表示:实际使用中一般用1个字节(16进制)来表示状态,低4位表示安全级别下限(0-15),高4位表示安全级别上限(0-15)假设一字节的值为:XY(0<=X<=F)(0<=Y<=F)现在以文件的状态来说明:假设文件的状态为:1、0Y(如:01,02,03,04....),表示对文件的访问无安全限制(即这个文件随便都可以访问)2、如果X>Y(如:10,32,85等),表示这个文件被禁止访问3、如果X<=Y(如:13,11,33,38),表示对文件进行访问前,必须满足文件的访问权限。比如说文件的访问权限是:13,现在的权限必须是1、2或者是3才可以访问文件比如说文件的访问权限是:38,现在的权限必须是3到8的值才可以访问文件比如说文件的访问权限是:33,现在的权限必须是3才可以访问文件系统一般都会规定一个缺省的权限:比如说0
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库CPU卡说明(2)在线全文阅读。
相关推荐: