PSAM卡用于商户POS、网点终端、直联终端等端末设备上,负责机具的安全控管。PSAM卡具有一定的通用性。经过个人化处理的PSAM卡能在不同的机具上使用。 PSAM卡支持多级发卡的机制,各级发卡方在卡片主控密钥和应用主控密钥的控制下创建文件和装载密钥。

1. 文件结构

社会保障DES算法环境: 

FID=3F00,AID=7378312E73682EC9E7BBE1B1A3D5CF;FID = DF01,AID = D15600000590 

 

社会保障SSF33算法环境: 

FID=DDF1,AID=7378322E73682EC9E7BBE1B1A3D5CF;FID = DF01,AID = D15600000590

2. 密钥属性

1)密钥用途(27, 47, 67)的低5位为密钥类型,高3位为密钥分散级数。密钥类型约定如下: 

——0,主控密钥

——1,维护密钥 

——2,消费密钥 

——3,PIN解锁密钥 

——4,重装PIN密钥 

——5,用户卡应用维护密钥 

——6,MAC密钥 

——7,加密密钥 

——8,MAC、加密密钥 

——9-31,保留

2) 密钥算法标识 

密钥算法标识指定了密钥所支持加密算法。密钥算法标识约定如下: 

——0,3DES 

——1,DES 

——2-255,保留 

3) 密钥版本 

密钥版本指定某种类型密钥的标识。对消费密钥来说,密钥版本是用于消费交易密钥选择过程中的密钥版本号,而对于其他密钥来说,密钥版本是密钥标识。

3. 读写用户卡

SET_CPU(0)
ATR=CPURESET()
LSKEY31=LAST(ATR,16)
00A404000F7378312E73682EC9E7BBE1B1A3D5CF
0020000003123456(9000) //验证主PIN
0084000008(RANDOM+9000) SET_CPU(1)
00A4040006D15600000590
BFDE485D18+LSKEY31+3337313730307378+RANDOM(9000) //48=psam用途 5D=标识
80FA000008+1122334455667788
00C0000008(ENDATA1+9000) //get response SET_CPU(0)
0082000710+ENDATA1+1122334455667788(9000) //外部认证 07=密钥标识
00A4020002EF0C
00B202042A(DATA1+9000) //读取第二条记录 SET_CPU(0)
0084000008(RANDOM+9000) SET_CPU(1)
BFDE281210+LSKEY31+RANDOM(9000) //48=psam用途 5D=标识
80FA000008+1122334455667788
00C0000008(ENDATA2+9000) //get response SET_CPU(0)
0082000410+ENDATA2+1122334455667788(9000) //外部认证 07=密钥标识
00A4020002EF0C
00DC02042A+E9283B363232323131333831393133383431333D32303039313031303032393237373439393939393F40

4. 密钥标识分配表

由于PSAM卡中同时存在国家级、省级和地市级控制的密钥,密钥安装分散,为了保证卡内密钥能协调工作,不相互冲突,各级发放和应用PSAM卡的机构,应按照下表密钥标识的分配原则来定义PSAM卡内的密钥标识号。

国家级

省级

地市级

PSAM卡自用密钥

‘00’~‘07’

‘00’~‘07’

‘00’~‘07’

针对用户卡DDF下的密钥

‘08’~‘0F’

‘10’~‘17’

‘18’~‘1F’

针对用户卡各应用下的密钥

‘20’~‘3F’

‘40’~‘7F’

‘80’~‘BF’

注:‘C0’~ ‘FF’保留为将来使用,各级机构不得占用。

文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38423875

社保系列7《PSAM卡》的更多相关文章

  1. PSAM卡

    PSAM卡    终端安全控制模块,符合<中国金融集成电路(IC卡)PSAM卡规范>,   包括普通PSAM卡和高速PSAM卡. PSAM符合以下标准及规范: 识别卡,带触点的集成电路卡标 ...

  2. PSAM卡与CPU(用户卡)的操作过程

    最近我一直在研究关于通过国密PSAM卡作为安全模块来读写cpu(用户卡)的问题 其实,两者都是卡片,或者说都是从设备.它们之间是无法相互访问的. 实际上,PSAM 卡是作为秘密密钥的载体,专门执行加密 ...

  3. PSAM 卡的应用操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  4. IC卡、M1卡、CPU卡、SAM卡、PSAM卡的联系与区别

    一. 技术方面(非接触式IC卡)  1. 逻辑加密卡又叫存储卡,卡内的集成电路具有加密逻辑和EEPROM(电可擦除可编程只读存储器).  2. CPU卡又叫智能卡,卡内的集成电路包括中央处理器(CPU ...

  5. PSAM 卡的应用 操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  6. PSAM卡之常用APDU指令错误码【转】

    本文转载自:http://blog.csdn.net/lvxiangan/article/details/53933714 PSAM卡的内容交互,是通过APDU指令完成的,常见的APDU报文格式如下: ...

  7. Mifare系列6-射频卡与读写器的通信(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...

  8. 社保系列11《ATR》

    1)  冷复位(Cold Reset) 当IC卡的电源电压和其他信号从静止状态中复苏且申请复位信号时,IC卡产生的复位. 2)  热复位(Warm Reset) 在时钟(CLK)和电源电压(VCC)处 ...

  9. MIFARE系列3《卡能源和数据传递》

    在MIFARE卡中,能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯片上,不再需要额外的组件.线圈嵌入塑料中,形成了一个无源的非接触卡. 读卡器向IC发一组固定频率的电磁波,卡内有一个IC串联 ...

随机推荐

  1. Jsp:useBean标签的使用

    1.<jsp:useBean id="为Bean起的别名(随意起)" class="Bean的目录,从包名开始写" scope="page | ...

  2. 慕课网-安卓工程师初养成-3-2 Java中的算术运算符

    来源:http://www.imooc.com/code/1279 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现 ...

  3. Oracle密码过期the password has expired

    oracle11G新特征,半年会提醒一次修改新密码 正常情况:只要输入原先帐号密码,回车即可. 不正常情况:输入新密码帐号,回车,提示验证错误,这时就需要切换到没过期的管理员用户,高权限也行,输入   ...

  4. AD采样问题总结

    说明:来源http://bbs.csdn.net/topics/390899032论坛讨论 一个100HZ的正弦波,我用300HZ的采样率去采样,那么根据香农定律是不是一秒钟就采集到300个点,因为这 ...

  5. 学习练习 java 线程

    package com.hanqi.xc; import java.util.*; public class lianxi extends Thread { public void run() { c ...

  6. windows在远程桌面连接中使用命令行参数

    在此版本的 Windows 中,可以从搜索框("运行"对话框或命令行)启动远程桌面连接,而不是从「开始」菜单启动它. 从"运行"对话框启动远程桌面的步骤 依次单 ...

  7. HTTP长连接200万尝试及调优

    对于一个server,我们一般考虑他所能支撑的qps,但有那么一种应用, 我们需要关注的是它能支撑的连接数个数,而并非qps,当然qps也是我们需要考虑的性能点之一.这种应用常见于消息推送系统,也称为 ...

  8. ORA-00031: session marked for kill 处理Oracle中杀不掉的锁

    一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE中杀不 ...

  9. 1.5如何学习Linux驱动开发

    1.准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动,建议使用Ubuntu Linux 10.04及以上版本: 2.准备一块开发板,建议采用基于ARM11的开发板: 3.学习GUN ...

  10. Android IOS WebRTC 音视频开发总结(五四)-- WebRTC标准之父谈WebRTC

    本文主要是整理自国内首届WebRTC大会上对Daniel的一些专访,转载必须说明出处,欢迎关注微信公众号blacker,更多说明详见www.rtc.help 说明:以下内容主要整理自InfoQ的专访, ...