CPU卡开发指南(五)发卡流程

CPU卡开发指南(五)发卡流程,第1张

CPU卡开发指南(一)错误码

CPU卡开发指南(二)基本指令

CPU卡开侍哗汪发指南(三)安全体系

CPU卡开发指南(四)原理解析

CPU卡开发指南(五)发卡流程

[toc]

本人要学习一个新东西最好的方法是是需要知道到底该怎么做,然后回过头去看理论会理解的比较快, 本章主要是对 复旦微电子CPU卡COSFMCOS 2_0用户手册 里的内容的个人理解。具体的cos命令参考 CPU卡开发指南(二)基本指令芦丛 ,本章不重复阐述。

一般地,卡片供应商提供卡片时,已经对卡片进行过初始化(主要用于对卡片进行测试),亦即卡片上已经建立了主文件(MF)及老仔主密钥文件(MF下的Keyfile文件),主密钥文件中也已写入了初始卡片主控密钥。

在对CPU卡建立特定的卡结构及写入密钥和数据之前,程序设计中的第一步应该对卡片进行外部认证。外部认证所使用的密钥正是初始卡片主控密钥。

外部认证主要分为以下几步。

许多发卡程序在设计过程中,没有考虑到擦除卡片上已有的卡片结构,而是在完成外部认证后直接改写原有卡片的主密钥文件的卡片主控密钥。常见问题是由于原有主密钥文件创建时的空间大小不够,而发卡程序试图写入除卡片主控密钥外还想写入卡片维护密钥时,势必造成写入空间不够而导致写入不成功。

为了独立地管理一张卡上不同应用之间的安全问题,CPU卡中的每一个应用放在一个单独的ADF中。各个ADF及其下属各文件数据的访问(包括改写、读取)只能应用该ADF下的密钥文件中的密钥数值。为讨论方便,此处假设只有一个ADF。

MF文件是ROM的根目录文件,不会被擦除,所以不需要创建。

在MF文件建立DF目录

在DF文件下建立EF文件,EF文件为FMCOS的基本文件,在EF文件中可以写入数据

在外部认证之前,首先取个随机数,4个或8个字节都可以,例如,你提到的4个字节,然后再其后增加4个字节的00,组成一个8字节的数据块。

在外部认证指令中,会指定一个外部认证密钥的密钥索引,指令的数据埋数域弯告首就是加密机或SAM卡用这个指定密钥对上文中的8字节数据块加友唯密后的密文。

CPU卡接到外部认证指令后,会用指定索引的密钥加密8字节数据块,再与指令中的密文比对,如果一致,就认证成功,否则就报错。

目前常用的加密算法就是DES或SM1算法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12474184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存