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. windows内核对象句柄

    内核对象用于管理进程.线程和文件等诸多种类的大量资源,每一个内核对象都只是一个句内存快,它由操作系统内核分配,并只能右操作系统内核访问.这个内存块是一个数据结构,其维护着与对象相关的信息,其中少数成员 ...

  2. typedef与define的区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415 ...

  3. C - Critical Links - uva 796(求桥)

    题意:有一些网络通过一些线路连接,求关键的连接,也就是桥,如果删除这个链接那么会产生两个子树 分析:注意一下图不是连通图即可 ************************************* ...

  4. POJ 3723 Conscription

    Conscription Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6325   Accepted: 2184 Desc ...

  5. Power(int base, int exponent) 函数实现

    这个是个高效的算法,时间复杂度为 O(logn) 原理: a的n次方: #include<iostream> #include<cmath> using namespace s ...

  6. 【转】asp.net mvc webapi+angular.js案例

    参考地址:http://www.mamicode.com/info-detail-892383.html 大家好,本文用一个简单的demo演示AngularJS在MVC中的使用,在学习这个demo之前 ...

  7. codeforces Arrival of the General 题解

    A Ministry for Defense sent a general to inspect the Super Secret Military Squad under the command o ...

  8. 使用spring @Scheduled注解运行定时任务、

    曾经框架使用quartz框架运行定时调度问题. 老大说这配置太麻烦.每一个调度都须要多加在spring的配置中. 能不能降低配置的量从而提高开发效率. 近期看了看spring的 scheduled的使 ...

  9. 使用const 提高函数的健壮性

    1.如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针指向的内存单元,起到保护的作用. 例如:void StringCopy(char *strDest, const cha ...

  10. js中this的指向

    在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧. JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式: 1. ...