在高校校园一卡通运行环境中,对校园卡卡片和数据传输两方面的安全进行深入的分析。结合传统密码算法和现代密码算法实现各级密钥的生成和分发,以传统的3DES加密算法生成各级密钥,以现代密码技术PKI技术实现会话密钥的分发,并对整个校园卡一卡通的密钥管理方案进行具体的设计。
1 引言
“校园一卡通”是以IC卡为信息载体的适用于高校校园管理和消费的综合系统,IC卡取代了校园内使用的各种个人证件和现金支付手段,在一张IC卡上实现消费和管理等多种功能。在校园一卡通中,各应用子系统将系统产生的电子账单传到结算中心,在这个交易过程中,校园卡本身的伪造和攻击以及交易过程中传输的金融数据的安全性非常重要。由于“校园一卡通”的交易数据涉及到全校师生以及后勤部门的切身经济利,交易数据的篡改将会造成巨额的经济损失和“校园一卡通”软、硬件设备的作废,因此其安全性是整个“校园一卡通”系统安全性的根本保证。
2 安全方案设计
2.1 卡片的安全
作为一个IC卡应用系统,“校园一卡通”充分利用IC卡提供的硬件加密逻辑分发、管理和使用IC卡,IC卡的硬件加密逻辑(主要体现为主密码、分区密码和擦除密码)可以说是IC卡的密钥,在“校园一卡通”系统中,正是将其纳入整个密钥管理体制来统一管理的。
整个密钥管理系统采用三级密钥体制,由密钥管理中心根据传统3DES算法产生系统的根密钥、二级密钥和会话密钥。密钥的分发采用根密钥和二级密钥的分发采用智能卡(CPU卡)作为传递介质以及线路加密的方式。
2.1.1 密钥生成前的准备工作
根据功能,密钥生成系统由根密钥系统、二级密钥系统和SAM卡密钥系统组成。密钥生成系统的主要任务是利用各种密钥的生成机制和加密算法,并将生成的密钥存储在具有密钥导出功能的CPU智能卡,即SAM(Security Access Module)卡。密钥的发行采用由上一级生成下一级所需的各种子密钥。系统在生成相应的密钥时,同时生成相应的认证密钥,将其存储在相应的认证卡中,以控制和配合密钥卡的使用。密钥卡必须通过其认证卡的相互认证(外部认证)后才能正常使用。
2.1.2 根密钥生成
密钥和密钥种子的产生一般用随机数的方法产生。对于高密级的根密钥,要求绝对地随机产生,比如采用掷币法或投骰法等产生真随机数。根密钥采取由多人、多批次分开完成注入:由学校不同的负责人分别输入16位(取值范围0,1,.... 9,A,.....,F)种子A和种子B,种子A和种子B在密钥发生器中产生所需的所有密钥,保存在密钥母卡和密钥控制卡中,密钥母卡中的密钥只能在密钥控制卡的控制下导入、导出。种子A和种子B必须安全保存,当密钥母卡或密钥控制卡意外损坏、丢失或因使用次数过多而自然损坏时,可用种子A和种子B恢复出相同的密钥。同时,密钥发生器还要产生几套不同的密钥保存在密钥母卡中,万一出现某套密钥泄漏,可实时启用另一套密钥 。
第一步,输人种子A和种子B:由两人独立输入一个16位数(或少于16位),分别作为SeedA和SeedB ;
第二步,计算种子C:SeedC=SeedA o SeedB;
第三步,密钥种子的初始化:

重复执行从第四步以第六步,直到所有的原始密钥全部生成。