智能卡安全机制比较系列(五) StarCOS
StarCOS是捷德公司的推出的智能卡COS,和前面说过的几种COS不同的是,国内的用户对于StartCOS可以说非常熟悉,而且因为握奇、明华、天喻等公司的安全机制都基本上是脱胎于StarCOS,所以经常会给大家造成一种错觉,好像智能卡的COS就该是这样的。其实完全不然,稍后会介绍握奇的TimeCOS,从TimeCOS V1.0中可以看出来,和StarCOS还是有很大差别的。
捷德中国为了满足国内PBOC的需求,在StarCOS的基础上推出了Star China,安全机制和StarCOS相同。
StarCOS的文件结构除了通常的二进制透明文件、线性定长记录文件、线性变长记录文件、循环记录文件之外,还多了一种名为compute的文件结构,从形式上看compute文件和循环记录文件类似,但是每条记录又有自己固定的结构定义。
StarCOS的MF和每个DF都有自己的初始安全状态,当卡片上电后首先默认选择MF,安全状态为MF的初始状态,当选择某个DF后,当前DF的安全状态就是该DF的初始状态。MF和DF的初始状态在文件建立的时候可以设定。
在整个卡片的操作过程中分别保存两个当前安全状态,一个是MF的,另一个是当前DF的。只有通过验证PIN或者外部认证、双向认证才能改变当前的安全状态。
总共有1到15种状态可以设定,用半字节来表示。
在MF下有建立EF、安装密钥、建立DF、注册DF的安全条件;在DF下有建立EF和安装密钥的安全条件;对于EF而言分别有读、写、锁定、解锁、增值、减值等操作的安全条件。
所谓的安全条件AC就是定义卡片应该处于什么样的安全状态下,才能满足相应的操作。安全条件为一个字节,具体定义为:
其中高两位b8b7定义比较模式,分别为等于、小于、大于等于、不等于;b6用来定义是否采用安全报文;b5用来表示和当前DF的安全状态比较还是和MF的安全状态比较;b4b3b2b1则表示比较时参考的安全状态。
简单地说如果卡片MF的安全状态是05,当前DF的安全状态是08,如果在当前DF下有一个EF的读AC=43、写AC=99,那么就可以对该EF进行读操作,但是不能写。
在密钥中有两个安全条件值ACV,其中第一个ACV用来指明这个密钥的使用条件、而第二个ACV的后四位数据用来指明正确认证密钥后将要转换的后续状态。同样每条密钥中还有一个用来指出更新密钥需要遵循的安全状态。
下图用来说明安全状态的转换
该图说明只有在MF下验证DES密钥之后,才能进入DF下进行PIN验证,并且将DF的安全状态改变为c。
StarCOS的安全机制是目前见到过的最灵活和最有效的安全机制,对于文件的不同操作可以非常方便地定义安全条件,即可以参考当前的DF值也可以参考MF下的值。
唯一的限制是在98年版的StarCOS S2.1中,仅支持二级文件目录,亦即在MF下只有一级DF,虽然稍显不足,但是也基本上可以满足大多数应用的需求。
智能卡安全机制比较系列(五) StarCOS的更多相关文章
- 智能卡安全机制比较系列(一)CardOS
自从智能卡开始进入人们的日常生活之后,大家对于智能卡的安全性普遍看好,但是不同公司的智能卡在安全机制的实现方面也存在很多的差异.对于智能卡应用开发和智能卡COS设计人员来说,如果能够更多地了解不同公司 ...
- 智能卡安全机制比较系列(六) TimeCOS
TimeCOS是握奇公司推出的智能卡操作系统,也可以说是国内早期自己开发的为数不多的几款COS之一.当然随着后来国内公司对于CPU卡开发的投入,其他公司的COS产品也纷纷推出. 其实从握奇的TimeC ...
- 智能卡安全机制比较系列(二)DS SmartCard
DS Smart Card是飞利浦公司自己开发的一款CPU卡产品,在早期芯片厂商开发自己的COS并进行推广很普遍,现在像英飞凌(前西门子半导体)以及恩智普(前飞利浦半导体)几乎很少推广自己的COS,大 ...
- 智能卡安全机制比较系列(三) MPCOS
MPCOS是金普斯早期推出的一款多应用支付芯片卡操作系统,支持ISO7816以及PCOS的数据格式和命令.MPCOS具有两级目录文件结构,即MF下可以有一级DF,每个DF下最多可创建63个EF. MP ...
- 智能卡安全机制比较系列(四) PayFlex
PayFlex是斯伦贝谢公司(经过若干整合现在是金雅拓的一部分)在上世纪90年代推出的一款电子钱包支付COS,从功能上看可以说PayFlex是EMV96以及PBOC电子钱包规范的雏形. PayFlex ...
- Netty4.x中文教程系列(五)编解码器Codec
Netty4.x中文教程系列(五)编解码器Codec 上一篇文章详细解释了ChannelHandler的相关构架设计,版本和设计逻辑变更等等. 这篇文章主要在于讲述Handler里面的Codec,也就 ...
- java多线程系列(五)---synchronized ReentrantLock volatile Atomic 原理分析
java多线程系列(五)---synchronized ReentrantLock volatile Atomic 原理分析 前言:如有不正确的地方,还望指正. 目录 认识cpu.核心与线程 java ...
- [时序图笔记] 步步为营UML建模系列五、时序图(Squence diagram)【转】
概述 顺序图是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序. 顺序图是一种详细表示对象之间以及对象与系统外 ...
- CSS 魔法系列:纯 CSS 绘制各种图形《系列五》
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
随机推荐
- codeforces284 div1 B:概率dp
蛋疼的期末..好久没有A题了,,惭愧啊 昨晚打起精神准备做cf 结果竟然忘记注册了..拿学长号看了看题,今早起来补了一道dp 题目大意: 有n首歌,你需要边听边猜 对于第 i 首歌 每听一分钟你猜出它 ...
- css链接
css code: a:link{ color:#FF0000; } a:visited{ color:#00FF00; } a:hover { color:#0000FF; } a:active{ ...
- 今天在写powershell脚本中犯的两个错误
可能是因为牙痛没睡好,今天老是犯错,还是脚本写错,特别难调. 第一个错误: powershell脚本里面,函数与函数互相调用的传参.其实就像调用普通的cmdlet一样的写法,应该这么写: Add-Sc ...
- [React] React Router: Router, Route, and Link
In this lesson we'll take our first look at the most common components available to us in react-rout ...
- qemu-img 快照的一些总结
qemu-img 快照的一些总结 http://www.openext.org/2014/06/qemu-img-snapshot-re http://blog.csdn.net/muge0913/a ...
- ssh远程登录linux live系统
要想ssh远程登录,须要准备两件事:配置同网段IP和开启SSH服务. 因为live系统没有IP,所以首先须要配置IP. 我的live系统是在虚拟机上启动的,宿主IP为192.168.230.1,liv ...
- linux/unix运行级别
在SYSTEM V 风格的UNIX系统中,系统被分为不同的运行级别,这和BSD分支的UNIX有所不同,常用的为0~6七个级别:0关机 1单用户 2不带网络的多用户 3带网络的多用户 4保留,用户可以自 ...
- Python学习--07迭代器、生成器
迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). Python里使用for...in来迭代. 常用可迭代对象有 ...
- itext poi 学习之旅 (2)创建excel
Computer.java package com.qiang.poi; public class Computer { private int id; private String name; pr ...
- Java Se 基础系列(笔记) -- OO
记录所学到的关于Java Se的一些基础知识 1.对象是通过“属性(成员变量)”和“方法”来分别对应事物所具有的静态属性和动态属性 2.类(Class)是对某一类事物的抽象,对象(Object)为某个 ...