随着金融电子化的发展,金融IC卡将逐步取代磁条卡,成为人们日常消费的结算工具。IC卡比磁条卡具有更安全、交易成本低、使用方便等优势IC卡具有保密性好、文件管理安全等特点,适应未来更为复杂的业务需求,为医保、社保等领域提供服务。金融IC卡的密钥管理系统是IC卡管体制使发卡行和持卡人得到安全保障。本文旨在探讨金融IC卡的密钥管理机制。
一、密钥的类型
根据《中国金融集成电路(IC)卡规范》,全国共建立三级密钥管理系统。人民银行总行建立一级密钥管理系统,各商业银行总行和人民银行各中心支行建立二级密钥管理系统,商业银行地区分行建立三级密钥管理系统,分级负责生成不同级别的密钥管理系统、维护不同级别的密钥管理系统。
根据密钥级别的不同,在密钥管理系统中的密钥可分为三大类:公共密钥、分行专有密钥、管理密钥。
1.公共密钥是指由人民银行总行生成的全国消费主密钥和各商业银行总行生成的行内公共密钥,安全存放在各总行的母卡中。全国消费主密钥是由人民银行总行生成和维护的公共密钥,简称为GPK。人民银行通过其一级密钥管理系统向各二级密钥管理系统分散,用于金融IC卡的消费/取现交易。
2.分行专有密钥台商业银行地区分行生成和维护,安全存放在分行的母卡中。分行生成其他交易使用的主密钥,包括部分IC卡片的维护密钥。在金融IC卡应用中,分行专有的普通密钥有7种,分别用于圈存、圈提、修改密码和PIN维护等操作如圈存主密钥MLK、圈提主密钥MULK、修改主密钥MUK、签名主密钥MTK、重装PIN主密钥MRPK、解锁PIN主密钥MPUK、应用维护主密钥MAMK。分行还可以选择生成其他应用的主密钥。
3.管理密钥分为认证密钥和保护密钥。认证密钥用于对卡片做外部认证,出厂密钥、洗卡密钥、认证密钥是位于卡片密钥文件的同一位置的卡片不同阶段的密钥.一般记为ADMK认证密钥还包括出厂认证密钥PRDK、密钥卡管理主密钥、分行密钥卡认证密钥、PSAM卡认证密钥等。
保护密钥(传输密钥)是用来对主密钥进行加密保护,输入到卡片或输出到另一张卡片。保护密钥分导人密钥和导出密钥两种。导人密钥保存在金融IC卡标准应用下的导人密钥文件,导出密钥保存在金融IC卡标准应用下的导出密钥文件。所有保护密钥都用外层的认证密钥加密保护进人卡片中,保护密钥也称传输密钥。传输密钥被传递给下一级机构或安全设备,下一级机构利用该密钥进行主密钥的导出,传递密钥可以通过卡片也可以通过信封传递。如分行发卡传递密钥TK1。
三级密钥系统中有些密钥是由一级、二级密钥系统产生、传递而来。在传递过程中必须经过一定的运算,这个过程称为密钥的分散。
二、密钥的分散
人总行生成的主密钥是消费/取现主密钥,称为根密钥,标志为G*K。分行生成和使用的密钥称为主密钥或称为分行专有密钥,标志为M*K。用户卡使用的经过主密钥分散的密钥称为用户卡密钥,标志为D*K。用户卡交易过程中使用的过程密钥标志为S*K。由G*K到M*K、D*K的过程就是密钥的分散过程。
1.公共密钥的分散
人总行将消费/取现根密钥(GPK)根据各商业银行特征号和人行中心支行地区号进行分散,传递给二级密钥机构各商业银行总行的二级密钥机构根据地区分行号、人行二级密钥机构根据各商业银行特征号进行分散,生成三级密钥系统的分行消费/取现主密钥(MPK)分散过程标志为MPK=DIVERSIFY(GPK,IPI)。
①人总行将消费/取现根密钥(GPK)根据各商业银行特征号进行分散。
②人总行将消费/取现根密钥(GPK)根据人行中心支行地区号进行分散。
③各商业银行总行的二级密钥机构根据地区分行号进行分散。
④人行二级密钥机构根据各商业银行特征号进行分散。
2.用户卡密钥的分散
用户卡的消费/取现密钥(DPK)用分行的消费/取现主密钥(MPK)根据卡片应用序列号(ASN)分散生成,即DPK=DI—VERSIFY(MPK,ASN)用户卡的其他密钥DLK、DTK、DULK、DUK、DRPK、DPUK、DAMK用相应的分行专有密钥MLK、MTK、MULK、MUK、MRPK、MPUK、MAMK分散生成。
消费/取现过程密钥(SPK)由用户卡中的消费/取现密钥生成,标志为SPK=SESSION(DPK,DA—TA)。
3.密钥的传递
在不同级别的密钥管理系统中,密钥用密钥卡来承载。密钥卡保证密钥在总行密钥管理系统内、总行和分行、分行和用户卡之间进行安全的传递。
密钥的传递过程就是密钥卡密钥的导人和导出过程。在密钥卡里的密钥文件结构如图2所示。
导人密钥文件里存放着导人密钥,导人密钥是用来对输人的主密钥密文进行解密的,导出密钥文件里存放着导出密钥,导出密钥是用来对输出的主密钥进行加密的。进人导人密钥文件的导人密钥和进人导出密钥文件的导出密钥必须用管理密钥文件的管理密钥加密。
主密钥进入主密钥文件必须用导人密钥加密,导出主密钥时,卡片会用导出密钥对该主密钥加密。为了保证主密钥正确无误地写人,密文需要附加签名段,签名的算法根据金融IC卡规范中定义的安全报文格式。
卡片中预设有计数器,限制主密钥的导出次数.同时卡片受PIN保护。
三、密钥卡的生成
密钥管理系统用于生成各种主密钥,制作各种密钥卡。下面以三级密钥系统为基础,介绍密钥卡的生成和控制。
1.生成分行专有密钥
密钥生成系统由密钥生成卡来实现其算法,主密钥生成卡相当于一个密钥生成器,由主管人员输入种子A和种子B,主密钥生成卡便会产生一些“强度较高”的主密钥作为分行专有的主密钥同样的种子对不同的主密钥生成卡产生的主密钥是不一样的,主密钥生成卡、种子A和种子B应该分开安全保存。
密钥系统在生成银行主密钥的时候,每个主密钥会生成多个版本和多个索引。以用户卡的使用期为10年计,若每个版本的使用期为2年,则密钥系统会生成五个版本的主密钥在母卡A和母卡B中。某一个版本密钥的使用周期为2年。在发卡母卡、用户卡中只有其中一个版本的密钥,是当前使用周期内的密钥版本,每2年更新一次。
总控卡的主密钥由分行母卡A和分行母卡B导入,它含有分行的全部密钥。总控卡用于生成系统其它控制卡,由总控员掌握,该主密钥有输出次数控制。
2.将密钥导入二级密钥机构
提供的发卡母卡中,合并消费/取现根密钥MPK,形成分行发卡母卡,分行发卡母卡是由二级密钥管理中心发行的,一般不能导出。只能由总控卡和操作员卡一起,将本行生成的其他专有密钥的某一个版本注入发卡母卡。发卡员利用分行发卡母卡和分行发卡控制卡来发行用户卡。
用户卡的密钥由发卡系统导入,其密钥由发卡母卡上的主密钥分散而成。
3.生成PSAM卡和HSAM密钥传递卡
总控卡和操作员卡一起,导出HSAM控制卡和PSAM控制卡。HSAM控制卡、PSAM控制卡是总控卡的子卡。总控员持有HSAM控制卡,将密钥导入加密机,HSAM控制卡的主密钥只能导出一次;操作员持有PSAM控制卡,将分行的MK导入PSAM卡,PSAM控制卡的主密钥导出次数和PSAM卡数有关。
加密机和PSAM卡中则存在多个版本的密钥,这样它可以对不同版本的用户卡进行进行交易密钥效验。
四、密钥的更换
在实际运行的过程中,IC卡密钥的安全相当重要。为保证密钥的可靠性,发卡母卡的密钥每2年更换一个版本,同时用户卡每隔2年必须做展期交易,已验证用户卡的密钥版本是否在有限期内。
为保证银行密钥的安全,在IC卡交易系统中,密码的效验都通过加密机来进行。密码是存放在加密机中的,如果因意外因素导致密钥泄露,必须更换已泄露的交易主密钥。为保证已经发出的用户卡在更换交易主密钥后能继续使用,密钥管理系统采用了交易密钥多个索引的办法。对于每一个版本的某一个密钥,其实也有多组,由多个索引值来区分。对某一版本的一个用户卡,每一个交易密钥有多个索引。正常时使用第一索引的密钥,异静隋况下(如密钥泄露)启用下一个索引。此机制保证在异常情况下更换密钥时,不需收回已发出的用户卡,而只需将应用系统(包括PSAM)中的密钥更新为新的索引。
五、结束语
密钥管理系统是金融IC卡管理的核心部分。随着人总行在北京、上海、长沙等地金融IC卡试点工作的开展,各地的三缀密钥系统将逐渐建立,IC卡密钥的安全体系也会更加完善。