TimeCOS是握奇公司推出的智能卡操作系统,也可以说是国内早期自己开发的为数不多的几款COS之一。当然随着后来国内公司对于CPU卡开发的投入,其他公司的COS产品也纷纷推出。

其实从握奇的TimeCOS来看,早期的1.0版本和目前流行的TimeCOS版本之间在安全机制方面存在很大的差别。TimeCOS1.0采用的是按位比较的状态机机制,也就是说TimeCOS1.0在内存中维护一个安全状态字节,这个字节的每个位分别对应一种安全状态,在初始情况下这个状态字节为00,只有通过外部认证或者是通过PIN的验证之后这个字节的某个位才能从0转变为1。而某个文件或者应用的安全状态一般都需要这个安全状态字节的某些位必须被置1之后才能被访问或者操作。这种模式简单易行,基本可以满足各种基本的应用需求。

但是在随后的TimeCOS版本中,握奇借鉴了StarCOS的安全机制模式,也采用前后顺序状态,以及状态数值之间的大小比较来确定安全状态是否被满足。

在握奇各种细分的COS版本中,基本上都采用了这种类StarCOS的安全机制,其中包括:PBOC产品、PKI产品、PSAM产品等。

具体的实施方法是:卡片的内存中同样会有一个安全状态字节,不过这个字节的变化不是按位改变,而是由认证密钥(或者PIN)中预设的“后续状态”来直接指定,对于卡片中存储的任何一个密钥(含PIN)都有一个所谓的“后续状态”。

这个字节被划分为前后两个半字节,分别用来指出MF和当前DF的状态。

卡片各种操作的权限的获得就是通过这个状态的转变来实现,该状态的取值范围是0到15,操作的权限用一个字节表示,分为左右两个半字节,其中左半字节和右半字节的取值均为0-15(0x0-0xF),可以表示为0xXY,如果当前DF的安全状态值V满足Y<=V<=X的条件,那么就获得了操作权限。

比如一个文件的读权限是0x52,而写权限是0x84;密钥1的后续状态是0x03,而密钥2的后续状态是0x05。那么认证密钥1之后可以文件满足读权限,但是不可写;认证密钥2后可以满足文件的写权限,但是不可读。

如果要把某个权限设定为可以自由操作,无需认证密钥,那么可以设为0xF0,这种情况下无论安全状态字节的值V是什么都满足0<=V<=15的条件。当然如果要把某个权限设定为禁止,即无论认证多少密钥都不能满足权限,那么可以设定为0x1F,在这种情况下无论S为任何值V都不能满足小于等于1并且大于等于15的条件。

特别地如果操作权限为0x0Y(即0xXY中的X=0),则表示需要比较MF下的安全状态大于Y。

如果仔细分析了StarCOS的安全机制,可以发现握奇采用的机制是在StarCOS的基础上进行的一个改进版本,因为StarCOS可以定义比较模式,也就是StarCOS可以更灵活地定义比较安全状态究竟是采用大于、小于还是等于或者不等于的模式。

国内另外一些厂商推出的COS多数借鉴握奇的TimeCOS安全机制,比如明华的所谓SmartCOS,以及复旦的FMCOS。

而航天金卡的PowerCOS则是完全照搬了StarCOS的安全机制。

国内的一些应用开发商和某些行业标准制定者,在进行系统开发和行业标准规划的过程中根本没有去认真阅读ISO7816的相关标准,仅把某家厂商的用户手册作为唯一的参考,甚至错误地认为全世界所有的COS都应该是这样的,实在让人无语!

智能卡安全机制比较系列(六) TimeCOS的更多相关文章

  1. 智能卡安全机制比较系列(一)CardOS

    自从智能卡开始进入人们的日常生活之后,大家对于智能卡的安全性普遍看好,但是不同公司的智能卡在安全机制的实现方面也存在很多的差异.对于智能卡应用开发和智能卡COS设计人员来说,如果能够更多地了解不同公司 ...

  2. 智能卡安全机制比较系列(五) StarCOS

    StarCOS是捷德公司的推出的智能卡COS,和前面说过的几种COS不同的是,国内的用户对于StartCOS可以说非常熟悉,而且因为握奇.明华.天喻等公司的安全机制都基本上是脱胎于StarCOS,所以 ...

  3. 智能卡安全机制比较系列(二)DS SmartCard

    DS Smart Card是飞利浦公司自己开发的一款CPU卡产品,在早期芯片厂商开发自己的COS并进行推广很普遍,现在像英飞凌(前西门子半导体)以及恩智普(前飞利浦半导体)几乎很少推广自己的COS,大 ...

  4. 智能卡安全机制比较系列(三) MPCOS

    MPCOS是金普斯早期推出的一款多应用支付芯片卡操作系统,支持ISO7816以及PCOS的数据格式和命令.MPCOS具有两级目录文件结构,即MF下可以有一级DF,每个DF下最多可创建63个EF. MP ...

  5. 智能卡安全机制比较系列(四) PayFlex

    PayFlex是斯伦贝谢公司(经过若干整合现在是金雅拓的一部分)在上世纪90年代推出的一款电子钱包支付COS,从功能上看可以说PayFlex是EMV96以及PBOC电子钱包规范的雏形. PayFlex ...

  6. CSS 魔法系列:纯 CSS 绘制各种图形《系列六》

    我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

  7. WCF编程系列(六)以编程方式配置终结点

    WCF编程系列(六)以编程方式配置终结点   示例一中我们的宿主程序非常简单:只是简单的实例化了一个ServiceHost对象,然后调用open方法来启动服务.而关于终结点的配置我们都是通过配置文件来 ...

  8. SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性

    原文:SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 ...

  9. R语言数据分析系列六

    R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集 ...

随机推荐

  1. sqlserver2012关于allwayson和复制结合起来的做法以及需要注意的问题

    allwayson的自动故障转移需要它对应的windows故障转移群集有仲裁设置,这样相当于三台以上的服务器做allwayson才比较合适   1.首先安装sqlserver的时候需要勾选上“复制” ...

  2. 如何右键新建HTML

    直接转载的,原文作者写的很详细:http://blog.csdn.net/ruanjiayou/article/details/51284864 14年在qq日志里写过 2014-10-25  htt ...

  3. 转:史上最全最强SpringMVC详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--conf ...

  4. xml to json

    // Changes XML to JSONfunction xmlToJson(xml) {    // Create the return object    var obj = {};    i ...

  5. (转)OS X Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程

    如果你是一名 Web 开发者,很多时候都需要在本地搭建服务器测试环境,比如 Apache+Mysql+PHP 这样的环境.事实上 Mac OS X 中想要搭建这样的环境很简单,本文我们就会将详细的教程 ...

  6. getChars的使用方法

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.ut ...

  7. 七、Solr服务部署和安全

    概念: 我们知道,Solr是以webapp的形式运行的,那么我们只需要把Solr.war文件部署到web容器中,便可以运行了,但是因为需要连接数据库做索引并且提供线上的服务调用query接口,那么So ...

  8. FZU 1686 神龙的难题(DLX反复覆盖)

    FZU 1686 神龙的难题 pid=1686" target="_blank" style="">题目链接 题意:中文题 思路:每个1看成列, ...

  9. LF will be replaced by CRLF问题解决方法

    [GIT] warning: LF will be replaced by CRLF问题解决方法 开发环境: 操作系统: windows xp ruby 1.9.2 rails 3.1.3 git v ...

  10. linux 下文件的比较

    1.cmp命令,比较两个文件是否相同 比较文件test1和test2,如果这两个文件完全相同,则无任何输出,否则,输出第一处不同所在的字节以及行号,然后忽略后面的不同之处,退出命令的执行. [root ...