PSAM嵌入式驱动---概念

PSAM前序

    刚好最近忙了几项目的部分驱动都与PSAM相关,且不同项目硬件设计原因,涉及软件纯模拟PSAM驱动和硬件USART支持ISO7816的硬件PSAM驱动,顺便边做边总结,纯个人理解,方便交流,其中许多内容也是从别人摘录而来便于理解。

PSAM背景

	PSAM卡是一种安全模块,用于验证用户卡的合法性,同时保护终端机具的扣款行为。比如,在公交车上,用于刷卡扣费的车载机具里都有一张PSAM卡,这个PSAM卡和乘客手里的公交卡是一对多的关系,大家只有在公交公司授权的网点买的公交卡,才能乘车;也只有公交公司部署的合法机具才能扣除公交卡里的钱:

与PSAM相似的几个概念

	SIM --- Subscriber Identity Module
	SIM卡是GSM系统的移动用户所持有的IC卡,称为用户识别卡。GSM系统通过SIM卡来识别GSM用户。同一张SIM卡可在不同的手机上使用。GSM手机只有插入SIM卡后,才能入网使用; 单纯是ID作用,只是SAM相关卡借用了SIM初期的机电气外形设计与安全交易不相关。
	
	下面几个才是与主题相关的概念:
	SAM --- Secure Access Module
	PSAM --- Purchase Secure Access Module
	ESAM --- Embedded Secure Access Module
	ISAM --- Increase Secure Access Module
	USAM --- USB Secure Access Module
	
	先有了PSAM,然后才有了SAM。由于网络状况的原因,使用IC卡作为支付介质的系统里面,消费环境不能在每次交易的时候,都做到实时与后台相连接认证IC卡的合法性以及交易完全性。因此,一种我们目前已经认可的交易模式——“电子钱包脱机消费”产生了。即便目前通讯技术发展到已经不存在技术障碍,在权衡风险、代价、方便性等等,我们还是要继续使用并发扬光大脱机消费这样一个模式。由此,就需要对发生交易的终端有所要求,一是能够鉴别IC卡的真伪,再者需要能够保证交易的合法性与安全性,本着不把终端制造商拉下水的目的,于是,坚持一个原则:终端设备与系统安全机制分离,即所有有关安全性的因素,都放置到一个叫PSAM卡里面,由系统发行方来发行管理。没有 PSAM卡的消费终端,相当于没有SIM卡的手机,安装PSAM卡以后,该消费终端就获得了系统运营商的许可,有权鉴别卡片的真伪,有权从卡上的钱包扣款。因此,PSAM的解释为:销售点终端安全存取模块(Purchase Secure Access Module)。
	
	ESAM:嵌入式安全模块(Embedded Secure Access Module)。通过ESAM来完成机具与IC卡的双向认证工作,安全的实现机具的计价扣费等功能。完全满足PSAM功能。

	PSAM:放在脱机消费终端内,用来控制电子钱包脱机消费交易的SAM卡,通常是铳成ID-000的小卡形状,存放消费主密钥,能够验证用户卡上消费子密钥是否符合约定的对应关系,并且保证扣款过程的安全性。

	ISAM:的出现并不具有典型意义,其中的I,可解释为Input,也可解释为Increase,放置在充值终端设备内,脱机充值交易中控制充值交易安全。说它不具有典型意义的原因是,脱机充值的模式是小额支付系统早期的模式,基于安全、风险、政策、技术发展等考虑,脱机充值应用在未来不会有生命力,因此, ISAM作为一个过渡产品,慢慢会成为历史。

	ESAM:属于企业创造的新名词,其中的“E”代表一种形态,特指采用SOP或者DIP封装形式的SAM,作为设备原始设计的一部分,生产的时候焊接在设备的电路板上,不像是其他的SAM是在卡座内,可以灵活拆卸。ESAM的名字与功能无关,比如ESAM形式的PSAM或者ISAM,比如ESAM形式的电子钱包应用。都是符合逻辑的说法。ESAM有几种典型的应用:作为电子计数文件,在预付费表具内控制表具的运行。作为安全数据的存储与认证,实现硬件设备的版权保护与安全使用。

	USAM 是一个新产品,是基于已有SAM概念的基础上,进行的10%左右的创新而来,其中的“U”,大家一定比较容易猜到,即“USB”,是一个采用USB接口和通讯方式的SAM,在这里补充一下,前面所说的各种SAM的通讯方式都是符合ISO/IEC 7816中规定的接口和通讯协议。USAM是两种成熟技术结合,一种全新形态的产品。能大幅度提高SAM的效率与性能,减少设备开发工作量,使SAM的应用趋于标准化、开放性,也扩展了SAM的应用领域,由于传输速度快,数据通讯速度最快可达到12M Bps;相比ISO/IEC 7816中的9600Bps、38400Bps、56Kbps等等,速度高出几个数量级。

ISO IEC7816

	与SAM类相关的标准、接口及应用在ISO中作了全面说明引导,即如下图,说明一切概念问题, 具体的可以查阅相关标准。

PSAM嵌入式驱动---概念

相关概念

名词

	IFS: Maximum information field size
	IFSC: IFS for the card
	IFSD: IFS for the interfatce device
	INF: information field
	INS: instruction byte
	Lc: length field for coding number Nc
	Le: length field for coding number Ne
	PCB: protocol control byte
	PPS: protocol and parameters selection
	TA, TB TC TD :interface bytes

PSAM卡电气

	如下图,物理机械电气定义部分如下,以及常与之对应的实体卡座。

PSAM嵌入式驱动---概念
PSAM嵌入式驱动---概念
PSAM嵌入式驱动---概念
卡电源分类:
—5V for class A
—3V for class B
—1.8V for class C

PSAM嵌入式驱动---概念

与驱动相关的概念

#1. Activation卡激活
PSAM嵌入式驱动---概念
#2. Cold reset冷复位
PSAM嵌入式驱动---概念
3. Warm reset热复位
PSAM嵌入式驱动---概念

嵌入式驱动要做的

	对于嵌入式驱动来说,不管是模拟还是硬件方案,都只要实现下面四个接口:

1. Icc_Poll

	检卡,即通过硬件电路检测查看卡槽内是否有卡存在。
	对上层接口来说就是获取卡槽状态。

2. Icc_Active

	卡激活,通过冷复位获取卡的ATR(Answer to reset) 数据。
	对上层接口来说就是卡上电。
	示波器抓图如下:![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210401140720614.jpg?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMyNTYxNw==,size_16,color_FFFFFF,t_70#pic_center)
对应用ATR:3B 98 95 80 1F 46 80 31 E0 73 FE 21 1B 18 2A
对于这部分,后面会做具体介绍。
此外,在获取ATR之后,这一部分如果需要支持PPS的话,还要增加PPS协商。

3. Icc_Exchange

交互,即实现APDU交互,获取随机数等,对驱动来说,能获取随机数就算成功。
对上层接口来说就是数据交互。
示波器抓图如下:![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210401143404157.jpg?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMyNTYxNw==,size_16,color_FFFFFF,t_70#pic_center)

4. Icc_Removal

 移卡,即实现逻辑上的对卡移除。
 对上层接口来说就是卡下电。

具体的原理及实现后面会继续…

上一篇:P6292 区间本质不同子串个数


下一篇:SAM 后缀自动机