密钥文件的大小分配取决于要装载的密钥个数。每个密钥均为一条可变长的记录,每条记录的长度为密钥数据长度加7。以此可以计算密钥文件的大小。在发卡程序设计过程中,常常会出现因为密钥文件的大小分配不够而造成后面的密钥无法写入。
密钥文件建立过程中的有关权限和密钥使用后的后续状态值的规定一方面起到对密钥文件本身的安全维护作用,另一方面也将决定对卡片操作的流程。显然这个要素至关重要。
3.2各密钥值的写入
关于密钥值的写入,关键问题是要弄清楚该密钥要求以何种形式写入。通常有以下几种形式:
(1)以明文形式写入(常见的如口令密钥PIN的写入);
(2)以带线路保护的形式写入(要求计算MAC);
(3)以对密钥值进行加密后的密文形式写入(要求计算DES或3DES);
(4)以对密钥值进行加密并带线路保护的形式写入(要求计算DES&MAC)。
如果密钥值的写入要求加密并带线路保护,则密钥值写入时须对该密钥值进行DES&MAC计算后以密文形式写入(当然卡片操作系统内部会自动将其解释成明文),带线路保护的目的是防止密钥值在写入的过程中被劫取。如果不要求带线路保护写入,可直接以明文方式写入。
在发卡程序设计过程中,尤其要注意卡片主控密钥、应用主控密钥、应用维护密钥及其它密钥之间的关系及其写入要求。
3.2.1卡片主控密钥与应用主控密钥
卡片主控密钥是对整个卡片的访问起控制作用的密钥,由卡片生产商写入,由发卡方替换为发卡方的卡片主控密钥。发卡程序设计过程中,在对卡片进行任何操作之前,必须使用卡片主控密钥作外部认证, 应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。一般地,发卡方替换卡片的主控密钥之后,为验证替换工作正确,再用新的卡片主控密钥作一次外部认证。
相关专题: