一、密钥管理系统的设计前提
密钥管理是密码技术的重要环节。在现代密码学中,在密码编码学和密码分析学之外,又独立出一支密钥管理学。密钥管理包括密钥的生成、分配、注入、保管、销毁等环节,而其中最重要的就是密钥的分配。IC卡的密钥管理机制直接关系到整个系统的安全性、灵活性、通用性。密钥的生成、发行、更新是系统的一个核心问题。
为保证一个大型的CPU卡应用系统的安全使用、保证信息不被侵犯,应在系统实施前建立起一套完整的密钥管理系统。密钥管理系统的设计目标是在安全、灵活的前提下,可以安全地产生各级主密钥和各类子密钥,并将子密钥安全地下发给子系统的发卡中心,用来产生SAM卡、用户卡和操作员卡的各种密钥,确保以上所有环节中密钥的安全性和一致性,实现集中式的密钥管理。在全省内保证各个城市能够发行自己的用户卡和密钥卡,并由省级管理中心进行监控。
二、密钥管理系统的设计方法
1.系统安全的设计
本文以一个省级医疗保险CPU卡应用系统为例,介绍密钥管理系统的设计。该系统是面向省级医疗保险行业、在各个城市进行应用的系统,系统最终所发行的卡片包括SAM卡和用户 卡。SAM卡将放在多种脱机使用的设备上;用户卡是由用产自己保存与使用并存储用产的基本信息和电子资金信息。系统设计的关键是保障系统既具有可用性、开放性,又具有足够的安全性。
本系统密钥的存储、传输都是使用智能卡来实现的,因为智能卡具有高度的安全性。用户卡(提供给最终用户使用的卡片)上的密钥根本无法读出,只是在达到一定的安全状态时才可以使用。SAM卡(用来识别用户卡的认证密钥卡)中的密钥可以用来分散出用户卡中部分脱机使用的密钥,但也无法读出。各级发行密钥母卡上的密钥在达到足够的安全状态时可以导出,但导出的密钥为密文,只有送到同类的卡片内才可以解密。
本系统的安全机制主要有卡片的物理安全、智能卡操作系统的安全、安全的算法、安全的密钥生成与存储、密钥的安全传输与分散、保障安全的管理措施与审计制度。
2.密钥的分层管理
密钥主要分层进行管理,即省级密钥管理中心只负责生成种子密钥,各个城市根据密钥种子负责生成自己的密钥系统和用户卡,这样既可以在全省范围内统一规划,又可以灵活使用。
3.安全的密钥管理体制
密钥受到严格的权限控制,特别是对密钥的使用权限进行分级管理和控制;密钥的生成、注入、导出等功能由发卡中心(省医疗保险基金管理中心)进行统一的控制和管理。
三、系统功能
密钥管理系统的目标就是安全地产生各级主密钥和各类子密钥。并将子密钥安全地下发给子系统的发卡中心,用来产生SAM卡、用户卡和操作员卡中的各种密钥,确保以上所有环节中密钥的安全性和一致性,实现集中式的密钥管理。系统通过IC卡硬件、IC卡操作系统、合理的密钥管理系统设计、严格的安全管理规定来实现以上目标。
密钥管理系统是IC卡应用系统中最重要的环节,主要功能有密钥的产生、分配、使用、更新和销毁。
1.密钥的生成
产生省级各类主密钥和市级各类子密钥:产生用户卡和操作员卡的各种密钥。密钥生成主要由三种形式结合使用:
·使用安全可靠、快速的软件生成方法;
·使用卡片存储密钥;
·使用加密机生成密钥。在密钥生成过程中,必须在安全、保密的环境下进行。
2.密钥的分配:密钥生成之后,再根据不同的业务种类进行密钥的分发。之后将密钥下发给城市,并保证密钥的安全性和一致性。密钥在IC卡中以密文的形式进行下装或分发到各个子系统,并且密钥受到相应的安全控管,只有达到安全条件才可以使用密钥进行分配或下装。IC卡作为传输密钥的载体,由于其自身的安全系数非常高,通过合理的设计完全可以有效进行密钥传输和分发。
3.密钥的使用:在各个分系统和IC卡中,可以设计密钥使用的安全条件,只有达到密钥的安全使用条件,才可以使用密钥进行相应的操作。而且密钥的使用过程中,都是以非可见性的形式存储的,任何人都没有权限进行读取,包括卡片制造商和系统商。密钥在受到非法攻击时,能够自行锁住,从而达到防止非法破译的目的。
4.密钥的更新:密钥的更新涉及到的安全问题比较多,由于大多数密钥的更新是在安全强度较弱的环境进行的,且涉及的范围很大,所以应当谨慎地进行密钥更新。如果需要更新密钥,可以在安全保密的状态下,密钥以密文的形式,并且在一定的安全条件管理下,定期地进行更新。
5.密钥的失效:密钥在使用一段时间后,由于安全的需要,可以将其强制失效,但可以起用备份密钥进行管理。如果密钥受到非法攻击,其也可以自动换效,以保护整个密钥系统的安全。密钥卡和存有关键数据的IC卡失效之后,必须回收秘密销毁。
密钥管理系统主要分为两大模块:
·省级密钥管理模块
·市级密钥管理模块
省级密钥管理模块的主要功能是产生省级主密钥,并为各城市产生城市主密钥,以密钥卡的形式传输到各城市,同时在密钥卡上记录发卡信息以便跟踪审计,密钥卡的文件结构和使用方法以书面形式记载。
市级密钥管理模块的主要功能是生成SAM卡、生成和安装用户卡上的各种密钥并且初始化用户卡。
四、密钥管理系统的运行与管理地点的设置
考虑到医疗保险IC卡发行的要求,密钥管理系统应在省或市医疗保险基金管理中心运行与管理。其中生成母密钥的密码应在省劳动和社会保障厅或市劳动和社会保障局封存。
五、密钥管理系统的总体功能结构
1.母密钥生成模块
该模块负责生成医疗保险系统的根密钥(即母密钥),只能在省医疗保险基金管理中心使用与控制。在完成二级密钥的生成后,应将母密钥卡进行封存。母密钥的生成必须在高度安全保密的情况下进行,并由少数人进行管理。生成母密钥的种子由相关各部门的主要负责入输入,然后再使用安全算法进行处理,最终生成医疗保险系统的母密钥。母密钥生成之后,分成多个载体进行保存和使用。
·存放到IC卡中生成母密钥卡(密钥不可见)用于生成二级密钥卡,并且每张每密钥卡都受到PLN和外部认证密钥卡的保护,也就是说在生成母密钥卡的同时也给每张母密钥卡生成一个PLN和外部认证密钥,且相对应生成外部认证密钥卡,在使用母密钥卡生成二级密钥时,首先输入个人密码,然后母密钥卡和外部认证卡进行双向认证,达到使用母密钥的安全条件后才可以使用母密钥生成下级密钥。
·密钥种子必须以书面的形式严格保密存储且必须分开由几个人各掌管一部分。
·母密钥的作用是生成二级密钥。
2.二级密钥生成模块
用母密钥根据医疗保险系统的要求,生成二级密钥。二级密钥包括:发卡主密钥、市级主密钥、省级应用主密钥。该级别的密钥由省医疗保险基金管理中心使用与保管。
发卡主密钥的作用:用于生成与发卡相关的各级功能密钥,即发放密钥、挂失密钥、补办密钥、注销密钥、充值密钥、查询密钥。
市级主密钥的作用:根据系统要求,生成与市级应用相关的应用密钥。
省级应用主密钥的作用:根据系统功能要求,生成各种功能的省级应用密钥。
3.发卡密钥生成模块:该模块将按要求生成各个市的发卡密钥。
4.市级密钥生成模块:该模块将按要求,用本市的市级主密钥生成相应的各种应用密钥。
5.省级应用密钥生成模块:该模块将按要求,用省级应用主密钥生成省级各种应用密钥。
6.密钥管理:该模块将按要求,对所有密钥的生成、发放进行记录与管理,并负责各种密钥卡的挂失、注销、黑名单、补办等管理。
六、密钥的安全特性
1.密钥的装载
密钥的装载采用方式,其控制过程如下:
·卡片主控密钥在卡片主控密钥的控制下更新;
·应用主控密钥在片卡主控密钥的控制下装载;
·应用主控密钥在应用主控密钥的控制下更新;
·应用主密钥在应用主控密钥的控制下装载和更新。
2.密钥的访问
·密钥不允许直接读;
·密钥必须在主控密钥的控制下更新;
·各级密钥不能被外界直接访问,只能接受内部操作系统发来的指令进行计算;
·计算临时密钥产生的结果只保留在卡片内部,不能被外界直接访问。
3.密钥的属性:密钥的使用都有一定的限制,必须满足密钥属性的要求。
七、系统的发卡流程
1.IC卡生产发行过程的安全机制
当省或城市向卡厂订购卡片时,制造商使用传输密钥装入测试合格的IC卡芯片内制成卡片,运送省级或城市IC管理中心。传输密钥用来控制IC卡的安全传输,以防止卡片在生产商和省级或城市之间运送时被替换。
当省级或市级IC卡管理中心接到订购的IC卡后,首先使用传输密钥对卡片进行鉴别,以检验卡片的合法性,防止非法卡片。
鉴别通过后,将省级或市级IC卡管理中心自己的主控密钥用厂商传输密钥加密,载入到IC卡中,再在IC卡中用厂商传输密钥解密,得到主控密钥用来替换掉IC卡中的传输密钥,之后才可以在本系统内使用主控密钥进行密钥的装载。
2.发卡流程
用来发行用户卡的IC卡由指定的用户卡制造商提供。省级或市级给每个授权的用户卡制造商发放一张用户卡传输主密钥卡,卡厂将传输主密钥装入测试合格的IC卡芯片内制成卡片,再运送市级IC卡应用管理中心。
市级IC卡管理中心首先使用用户卡制造主密钥卡对这些卡片进行认证,确保卡片安全传输,认证通过以后,使用市级主密钥卡、城市主密钥卡授权卡、SAM卡母卡、SAM卡母卡授权将这些卡片初始化成用户卡。