智能卡安全机制比较系列(二)DS SmartCard
DS Smart Card是飞利浦公司自己开发的一款CPU卡产品,在早期芯片厂商开发自己的COS并进行推广很普遍,现在像英飞凌(前西门子半导体)以及恩智普(前飞利浦半导体)几乎很少推广自己的COS,大多时候都是在集中精力推广自己的芯片。
飞利浦的DS系列智能卡COS结合了ISO7816和ETSI的规范(也就是SIM卡规范),在安全机制上采取了和SIM卡类似的密码验证方式,即主要通过密码比对的方式获取对文件的访问控制权限。
DS CPU卡一共定义了三种基本的访问权限,分别是发卡商权限(0到3)共享权限(0和1),持卡人权限(0和1)。这些访问权限通过密码单元中对应的访问权限区域来定义,对应的密码分别是发卡商密码和持卡人密码,而共享权限可以利用发卡商密码或者持卡人密码来获得。在正确验证密码后根据访问权限区域设定的数据位就可以获得其中的一种或几种权限。一旦获得了某种权限,那么这种权限就一直保留,直到到卡片断电,或者是对同一个密码又进行了错误的认证后才会消失。每次正确的密码认证所获得的权限是累加的关系。
在可以设定的权限中共有16种状态,其中0表示始终满足,即不需要认证,而15表示永远都不满足,即拒绝任何访问。其余的14种状态可以分别对应不同的密码或者密码组合来实现访问控制。每个密码还设计了对应的解锁密码,当连续错误验证密码超过规定的次数后,该密码将被锁定,只有通过核对解锁密码才能解开。下表是访问控制权限组合:
|
访问控制编号 |
需要的访问控制权限 |
访问控制条件 |
|
0 |
不可用 |
始终满足 |
|
1 |
10 00 0000 (80H) |
持卡人权限0 |
|
2 |
01 00 0000 (40H) |
持卡人权限1 |
|
3 |
00 00 0000 (00H) |
永远不满足 |
|
4 |
00 00 1000 (08H) |
发卡商权限0 |
|
5 |
00 00 0100 (04H) |
发卡商权限1 |
|
6 |
00 00 0010 (02H) |
发卡商权限2 |
|
7 |
00 00 0001 (01H) |
发卡商权限3 |
|
8 |
10 00 1000 (88H) |
持卡人权限0和发卡商权限0 |
|
9 |
01 00 1000 (48H) |
持卡人权限1和发卡商权限0 |
|
10 |
00 10 0000 (28H) |
共享权限0 |
|
11 |
00 01 0000 (10H) |
共享权限1 |
|
12 |
00 10 1000 (28H) |
共享权限0和发卡商权限0 |
|
13 |
00 10 0100 (24H) |
共享权限0和发卡商权限1 |
|
14 |
00 10 0010 (22H) |
共享权限0和发卡商权限2 |
|
15 |
不可用 |
永远不满足 |
总体上看DS的CPU卡COS主要是依据SIM卡的规范而设计的安全机制,而其中的文件管理和操作也符合SIM卡的标准,比如对于文件的访问除了一般的读写之外,还有对文件的禁用和启用,在文件被禁用后不能更改,根据文件建立时规定的禁用可读与否来决定文件禁用后是否可读。
DS卡只支持一种EF文件类型,那就是透明二进制文件。
DS卡还有一种据称申请专利的认证技术,采用DES的算法来认证卡片上存储的数据,借以判断终端明确知道的某个地址的卡片内容对不对,这种认证方式类似于7816规定的内部认证,但是机制上又有自己的定义,所以也比较有意思。在目前广泛应用的CPU卡中几乎没有人再使用这种机制了。
这种认证机制可以核对更改后的数据是否正确、实现文件内容的密文读出、实现带有随机数的内部认证。实际上终端应该能够确切地知道卡片中某个位置存储的4个字节数据,在认证中并不是采用简单的密码比较方式,而是采用随机数和认证响应的方式进行计算和比较。
认证是依靠当前的EF文件来进行的,在认证进行之前,对于文件的读权限必须满足。通过两步来完成认证,第一步是生成临时密钥,第二步是使用第一步得到的临时密钥计算认证数据。首先终端发送8字节的随机数据给卡片,卡片把前两字节用当前文件的标识给替换掉,使用该数据通过认证密钥Kc进行DES解密运算来得到临时密钥。如果重新进行了正确的文件选择,那么原来计算得到的临时密钥就会被破坏。然后利用临时密钥对文件中某个地址的4个字节数据及其对应的两个字节的地址进行DES解密运算,出于冗余和8字节DES计算的需要,两个字节的数据被重复,即8字节的数据结构为:数据(4字节)+地址(2字节)+地址(2字节)。经过计算得到的8字节认证数据传送给终端,终端可以比对计算的结果是否正确,来确定认证是否成功。
智能卡安全机制比较系列(二)DS SmartCard的更多相关文章
- 智能卡安全机制比较系列(一)CardOS
自从智能卡开始进入人们的日常生活之后,大家对于智能卡的安全性普遍看好,但是不同公司的智能卡在安全机制的实现方面也存在很多的差异.对于智能卡应用开发和智能卡COS设计人员来说,如果能够更多地了解不同公司 ...
- 智能卡安全机制比较系列(六) TimeCOS
TimeCOS是握奇公司推出的智能卡操作系统,也可以说是国内早期自己开发的为数不多的几款COS之一.当然随着后来国内公司对于CPU卡开发的投入,其他公司的COS产品也纷纷推出. 其实从握奇的TimeC ...
- 智能卡安全机制比较系列(五) StarCOS
StarCOS是捷德公司的推出的智能卡COS,和前面说过的几种COS不同的是,国内的用户对于StartCOS可以说非常熟悉,而且因为握奇.明华.天喻等公司的安全机制都基本上是脱胎于StarCOS,所以 ...
- 智能卡安全机制比较系列(三) MPCOS
MPCOS是金普斯早期推出的一款多应用支付芯片卡操作系统,支持ISO7816以及PCOS的数据格式和命令.MPCOS具有两级目录文件结构,即MF下可以有一级DF,每个DF下最多可创建63个EF. MP ...
- 智能卡安全机制比较系列(四) PayFlex
PayFlex是斯伦贝谢公司(经过若干整合现在是金雅拓的一部分)在上世纪90年代推出的一款电子钱包支付COS,从功能上看可以说PayFlex是EMV96以及PBOC电子钱包规范的雏形. PayFlex ...
- [知识库分享系列] 二、.NET(ASP.NET)
最近时间又有了新的想法,当我用新的眼光在整理一些很老的知识库时,发现很多东西都已经过时,或者是很基础很零碎的知识点.如果分享出去大家不看倒好,更担心的是会误人子弟,但为了保证此系列的完整,还是选择分享 ...
- swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?
date: 2018-8-01 14:22:17title: swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?description: 阅读 sowft 框架源码, 了解 sowf ...
- WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...
- WCF编程系列(二)了解WCF
WCF编程系列(二)了解WCF 面向服务 服务是复用进化的结果,起初的复用是函数,面向对象编程的出现使复用从函数上升到对象,随后面向组件编程又将复用从对象上升到组件,现在面向服务编程将复用 ...
随机推荐
- HDU-1047(DP-二进制状态压缩)
Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of h ...
- red-hat6.5 yum 源配置,cloud-init 安装 This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register
This system is not registered to Red Hat Subscription Management. You can use subscription-manager t ...
- 提升效率的Linux终端快捷操作汇总
很多普通 Linux 桌面用户都对使用终端感到排斥和恐惧,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行,如:安装软件.升级系统等. 无论你是新手还是 Linux 终端使用的老鸟,系统极 ...
- IT项目外包有哪些注意事项
2015年两会上,李克强总理在政府工作报告中首次提出“互联网+”计划,各种互联网创业项目也如雨后春笋般破土而出.由于很多创业团队并没有自己的技术团队,所以软件外包成为很多创业项目普遍采取的一种方案.在 ...
- 自己写的Ext树,Ext3.4,静态全部加载
var load = function(){ /** * 书籍资料目录 */ var bookIT = new Ext.tree.TreeNode({ text:"IT", lea ...
- java笔记4之比较运算符
/* 比较运算符: ==,!=,>,>=,<,<= 特点: 无论你的操作是简单还是复杂,结果是boolean类型. ...
- Redis哨兵模式
Redis-Sentinel redis的哨兵模式 Redis Sentinel 模式简介 Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案 ...
- JAXB--学习1
一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实 ...
- 正则表达式JSP实例
<%@ page language="java" import="java.util.*,cn.com.Person,cn.com.Adddress" p ...
- Linux学习一些在Terminal可以用到的快捷键及Shell常用的通配符
Ctrl+c 终断程序 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg Ctrl+a 将光标移至 ...