设计CPU发卡程序需要考虑以下关键步骤和要素:
引言
定义卡中的数据信息(如逻辑加密卡)或卡中的应用类型及其数据信息(如CPU卡)。
将数据信息写入卡中,以便应用于系统中进行交易,这一环节称为卡片个人化。
发卡前的准备工作
卡片供应商提供的卡片通常已经过初始化,包括主文件(MF)和主密钥文件(MF下的Keyfile文件),且主密钥文件中已写入初始卡片主控密钥。
在建立特定的卡结构及写入密钥和数据之前,需要对卡片进行外部认证,使用的密钥是初始卡片主控密钥。
完成外部认证后,建议擦除卡片上已有的卡片结构,再重新建立卡片结构,以避免原有主密钥文件空间不足的问题。
密钥文件的建立与密钥值的写入
CPU卡中的每个应用放在一个单独的ADF中,各个ADF及其下属文件的访问只能使用该ADF下的密钥文件中的密钥数值。
密钥值的写入形式有多种,包括明文形式、带线路保护的形式(计算MAC)、加密后的密文形式(计算DES或3DES)以及加密并带线路保护的形式(计算DES&MAC)。
发卡程序设计过程中,需特别注意卡片主控密钥、应用主控密钥、应用维护密钥及其他密钥之间的关系及其写入要求。
卡结构建立
在卡片上建立特定的卡结构,包括选择和应用不同的文件结构和密钥。
个人化数据写入
将所需的个人化数据写入卡片中,确保卡片在系统中可以正常使用。
外部认证
在进行任何操作之前,使用卡片主控密钥进行外部认证,确保卡片的安全性。
权限管理
设计并实现密钥管理体系,规划各级卡片的密钥种类及生成方式,确保系统的安全性。
系统架构
根据系统设计目标和功能需求,设计各级卡片内部文件结构,实现“一卡多用”的功能。
根据PBOC3.0准则,规划金融卡扩展应用区文件结构,加入金融卡的行业应用开通功能。
接口与通信
定义与CPU卡和ESAM模块相关的单片机端口,并确保程序中端口的输入输出和电平高低状况可以进行改变。
测试与验证
在实际环境中测试发卡程序,确保其稳定性和安全性。
通过以上步骤和要素,可以设计出一个安全、可靠的CPU发卡程序。建议在实际操作中,根据具体需求和环境进行详细设计和测试,以确保程序的高效性和安全性。