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

PayFlex同时具备用户卡和SAM卡功能,支持电子钱包用户卡的消费、圈存等交易。

从文件结构上看,仅支持定长记录文件和循环记录文件两种格式。PIN和密钥都是存储在定长记录文件中,PIN也就是所谓的持卡人验证CHV,密钥分为验证密钥和计算密钥,CHV文件中只有一个记录来存储PIN,而密钥文件中最多可以存储16条密钥;交易记录和钱包文件是用循环记录文件来存储的。

从安全机制上看,也是采用访问控制条件加上当前安全状态的模式。但是相对比较简单,总共有5种访问控制状态:自由访问、PIN、密钥验证、PIN+密钥验证、拒绝访问。

数值

AC

含义

0

ALW

自由访问

1

CHV

验证PIN

2

AUT

验证密钥

3

CHV+AUT

验证PIN+验证密钥

4

RFU

5

RFU

6

RFU

7

RFU

8

RFU

9

RFU

10

RFU

11

RFU

12

RFU

13

RFU

14

RFU

15

NEV

拒绝访问

每个文件在创建的时候都有2个字节AC1和AC2用来指示不同APDU命令的访问控制权限,同时也有另外2个字节KN1和KN2来指出实现需要的访问控制权限将会使用的密钥。

访问权限的获得可以通过明文的方式验证PIN或者密钥,也可以通过密文的方式来验证。这里所谓的密文方式,实际上就是我们常说的外部认证,也就是先取8字节的随机数,然后再通过密钥加密,把加密后的数据按照某种规则截取6个字节,送到卡片中去比对。

因为PayFlex本身也具有SAM卡的功能,所以也可以用PayFlex卡计算分散密钥。此外PayFlex还支持内部认证,可以让主机或者终端来验证卡片的合法性。

电子钱包的交易流程和现在常用PBOC电子钱包交易非常类似,也是通过两个步骤,经由SAM卡来完成的,交易完成之后也生成类似于MAC和TAC的证书数据,用来验证交易的完整性。

和目前PBOC电子钱包不同的是PayFlex卡的密钥长度都是8字节,而不是16字节。

当时这款产品是基于TI的一款TMS373C012,只有4K的程序ROM,128字节的RAM和1K字节的EEPROM。在这样有限的资源里,开发出如此功能的产品,的确称得上是地位领先了。其中实现了20来个APDU,包括读/写/更新记录文件、外部认证、内部认证、验证/更改/解锁PIN(或密钥)、选择文件、创建文件、消费、圈存、分散密钥、取随机数、补丁程序的下载和激活等。

后来,在96年PBOC电子钱包规范发布之后,斯伦贝谢迅速推出了一款符合PBOC规范的QianFlex产品。

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

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

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

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

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

  3. 智能卡安全机制比较系列(六) TimeCOS

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

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

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

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

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

  6. sed修炼系列(四):sed中的疑难杂症

    本文目录:1 sed中使用变量和变量替换的问题2 反向引用失效问题3 "-i"选项的文件保存问题4 贪婪匹配问题5 sed命令"a"和"N" ...

  7. 分布式系列四: HTTP及HTTPS协议

    分布式系列四: HTTP及HTTPS协议 非常全面的一篇HTTP的文章: 关于HTTP协议,一篇就够了 还有一个帮助理解HTTPS的文章: 也许,这样理解HTTPS更容易 本文的一些描述摘自这篇文章 ...

  8. Mina 系列(四)之KeepAliveFilter -- 心跳检测

    Mina 系列(四)之KeepAliveFilter -- 心跳检测 摘要: 心跳协议,对基于CS模式的系统开发来说是一种比较常见与有效的连接检测方式,最近在用MINA框架,原本自己写了一个心跳协议实 ...

  9. struts2官方 中文教程 系列四:Action

    先贴个本帖的地址,免得其它网站被爬去了struts2教程 官方系列四:Action  即 http://www.cnblogs.com/linghaoxinpian/p/6905521.html 下载 ...

随机推荐

  1. Linux系统编程(25)——终端

    在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端.控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动 ...

  2. [LeetCode] 21. Merge Two Sorted Lists 解题思路

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  3. MD中bitmap源代码分析--SYNC IO和RAID5的补充

    最近在做bwraid的R6的设计工作,需要调研一下bitmap下刷磁盘的IO属性(是否为SYNC IO),还有raid5中bitmap的存储和工作方式. 1.bitmap刷磁盘是否为 SYNC IO? ...

  4. 迭代导出word 文档

    Map迭代的使用: Map map = new HashMap() ; Iterator it = map.entrySet().iterator() ; while (it.hasNext()) { ...

  5. Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)

    转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如: ...

  6. MAC安装SVNServer

    MAC已经自带了SVN,所以,直接使用就好 1.创建svn repository svnadmin create /path/svn/pro  //仓库位置,svn是svn的目录,pro是一个版本库的 ...

  7. referer报头

    依据客户的到达方式定制页面 referer报头保存了用户是从哪个网站找到到这里来的信息的.如果用户直接输入了页面的地址,浏览器就不会发送referer信息. 5.6.1 创建一个可以根据链接过来的网站 ...

  8. Android应用程序之间共享文字和图片(二)

    MainActivity如下: package cn.testshare1; import java.io.File; import java.util.ArrayList; import andro ...

  9. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

  10. iOS、mac开源项目及库(感谢原作者的分享)

    目录 模糊效果 富文本 表相关 HUD与Toast 其他UI 其他动画 网络测试 网络聊天 Model 数据库 PDF 摄像照相视频音频处理 消息相关 消息推送服务器端 版本新API的Demo 测试及 ...