来源:中国一卡通网 作者:不详 发布时间:2013-01-30 09:40:15 字体:[大 中 小]
摘 要: 本文结合笔者多年的城市通卡系统开发和运营经验,对城市通卡制作流程和密钥的生产、存储、传递、试用等环节进行了全面分析.以期对城市通卡项目的实施提供有益的借鉴和参考。与此同时.也必须意识到.通卡绝对的安全是不存在的。从技术角度来说不能完全杜绝安全隐患.最重要的是应该加强对员工安全防范意识的教育.时刻将安全放在第一位。从思想上深刻认识密钥管理对通卡运营的重要意义,防止玩忽职守.麻痹大意而导致的经营风险。
随着城市一卡通项目的建设,卡片应用领域扩大,对通卡的安全性也提出了更高的要求。发卡与密钥管理系统是城市通卡成败的关键,也是整个一卡通系统安全的核心。本文结合笔者多年的通卡系统开发与运营经验对发卡与密钥管理系统的各个环节进行了透彻的分析,并提出了相关的安全控制策略.以期对通卡运营商提供有益的帮助。
1.引言
随着社会经济的发展和信息技术的进步,城市一卡通系统已经成为各地打造智慧城市的重要基础设施和核心系统。IC卡作为城市一卡通系统中电子货币的载体.实现“一卡多用.一卡通用”是系统的基本诉求.这就对系统的安全性提出了极高的要求。保证安全性是城市一卡通系统成败的关键之一.是统一行业规范和管理的前提.能防止出现盗卡和伪卡的产生.保证持卡人的利益不受损害.对维护政府的形象和社会稳定起到关键的作用。在IC卡系统中.影响系统安全性的重要因素就是发卡和系统中密钥的管理机制.密钥是保证IC卡交易安全性的一个重要手段一旦密钥泄漏则有可能造成灾难性的后果因此对密钥的生成、存储、传递、分配、发行、更新、保管、销毁等方面的管理以及在交易过程中对密钥的使用和认证都需要以严格安全的手段进行控制。因此,可以说:发卡与密钥管理系统是整个城市通卡应用系统安全的核心,密钥的管理和控制是城市通卡应用系统的关键.密钥系统的安全性将直接影响整个通卡系统的安全性。
2.城市通卡个人化简介
在介绍城市一卡通的个人化之前.笔者先就智能卡的完整生产制造流程做一个概要的介绍。智能卡行业涉及完整的产业链.发展至今已经成为一个相对完整和成熟的生态系统。其中,产业链的上下游包括半导体厂商、卡商、封装厂商、COS研发机构、城市通卡运营公司等。从芯片设计到成品卡的诞生主要包括以下几个主要的步骤:芯片设计与制造、COS掩膜、模块封装、卡基封装、卡片初始化、卡片个人化。其中卡片的个人化工作,可以由通卡运营商委托卡商进行批量制卡.也可以通过购买发卡设备自行完成。具体采用何种方式,需要对安全和效率之问做一个全面的评估。如果委托卡商制卡.意味着必须提供用户卡发卡母卡或加密机给卡商无论安全机制理论上设计的多么完备.也存在卡商恶意截取密钥制造伪卡的可能性。而发卡单位自己购买设备,也存在成本高、效率低的问题。
智能卡的个人化大体可以分成三个组成部分,分别是:创建卡片结构、安装密钥和个人信息的写入。为了确保发卡的成功率和一致性.最好是同步完成以上三部分工作。如上所述,卡片初始化后.卡内已经安装有厂商的制造密钥即卡片传输密钥。而卡片个人化的时候,需要用运营商自己的卡片主控取代卡片传输密钥。通过以上的方法.一方面完成卡片来源合法性验证.另一方面也可完成卡片控制权由卡商向卡运营商的交接.也就是通常意义上的“洗卡”。
3.密钥管理
密钥管理系统(KeyManagementSystem)。简称KMS,是城市通卡项目安全的核心。如何进行密钥的安全管理.贯穿着IC卡应用的整个生命周期。密钥管理是密码技术的重要环节.由于现代密码学中加密方法都是公开的.密钥就成了所有加密系统的关键。现在的城市通卡系统.理论上都具有很高的安全性.尤其是CPU卡.由于是一卡一密,即使某种卡片的密钥被攻破.理论上也不会造成整个密钥体系的崩溃。在满足了理论上的安全性之后,城市通卡的安全性依赖于管理和应用本身。因此,非常有必要建立一套高效、稳定的密钥管理系统。很多业内专家指出.现在加密系统的安全性取决于密钥及密钥管理,而跟算法本身及硬件实现过程的保密没有太大关系。密钥管理涉及到产生、存储、备份、分配‘、更新、传递、保管、使用、销毁等环节,其中密钥的备份和传递是最大的难题。
3.1密钥生成流程与步骤
城市通卡正式运行密钥制作过程指的是从厂商提供的制造密钥传输卡和用户卡空白卡片直至生成用于初始化制作用户卡的母卡的这一段过程。密钥系统中的密钥按其作用可分为两类:管理密钥和业务密钥管理密钥以主控密钥为代表,主要用于控制卡片使用、结构创建、密钥灌装等,但不参与具体交流流程。业务密钥以消费密钥、圈存密钥为典型代表.是保证卡片和密钥在交易过程中的安全认证。管理密钥包括主控密钥和VI令。主控密钥采取随机方式产生.安装在系统内的所有卡片中通过对主控密钥的认证.实现运营商对系统卡片的控制和管理.同时防止了系统外的非法卡片混入本系统。密钥管理系统中的卡片口令由系统管理员进行维护。业务密钥的产生相对复杂,其安全性直接影响到系统的正常运行。密钥管理系统要保证业务密钥安全的产生以及在出现意外事故后得到及时恢复。业务密钥的产生需要密钥因子和分散因子两个部分。
1)密钥因子:分为三部分,由三位部门主管领导确定并掌管。当三部分密钥因子汇齐便可以产生系统的总控密钥(根密钥),总控密钥为业务密钥的产生提供了来源。
2)分散因子:即业务代码,由相关部门的管理人员确定.为总控密钥分散产生业务密钥提供分散因子。业务代码为多条,每条长度为8个字符。总控密钥和业务代码的内容将决定业务密钥的值.业务密钥的多少取决于业务代码的数量。总控密钥和业务代码一旦确定,每次分散计算的结果即业务密钥的值均相同。因此密钥因子和分散因子对于系统产生和恢复业务密钥是尤为重要的。
3.2密钥的存储
密钥存储安全是整个密钥系统安全的基础,一般可采用密钥卡或加密机的方式对密钥进行存储。由于硬件加密机具备良好的攻击防范能力.在为上层应用提供安全服务功能的同时.也充分考虑了自身的安全性设计。在物理方面,采用了物理锁防拆、防撬设计;打开机盖密钥自动销毁:紧急情况下人工毁钥装置;在密钥管理方面.采用用户访问权限控制(密钥注入管理)以及密钥在加密机外的分段备份存放安全机制.保证了加密机自身及密钥的安全。密钥卡建议只在需要密钥传递、交换等临时场景下使用。
出于对整个密钥体系安全性的考虑.加密机中密钥的加载工作必须在传输密钥的控制下进行。从密钥制作流程中.可以看出业务主密钥卡中存放着包括卡片主控密钥在内的所有密钥.使用业务主密钥母卡和业务主密钥母卡传输卡通过硬件加密机的IC卡读写口灌人加密机内部.用于密钥的备份和SAM卡的发行。
3.3密钥的传递
无论是发行用户卡还是制作PSAM卡都会牵涉到密钥的传递.如果密钥在传递过程中被非法监听或窃取,整个密钥系统的安全性就无从谈起。因此.密钥的传递是密钥存储后确保城市通卡系统安全性的关键所在。鉴于此.密钥在传递过程中一般采用安全报文的形式来实现。所谓安全报文就是密文加MAC.安全报文可以确保数据的可靠性、完整性和对发送方的确认。
在发行用户卡的过程中.用户卡中的密钥是由加密机或母卡中的次主密钥根据应用序列号asn分散而得到的。因此,理论上每张用户卡的子密钥都是唯一的.这使得整个密钥体系同时兼顾良好的扩展性和较高的安全性。发行用户卡所需的子密钥是在硬件加密机中完成分散和加密保护.并以安全报文的形式传递给用户卡,再由卡片COS对其进行解析成明文装载到卡内.在此过程中子密钥始终不会以明文形式驻留在计算机内存中.整个分配过程是安全可靠的。当然,从加密机角度来看,不同型号不同版本会有比较大的差异,建议在具体的密钥系统实施过程中要求加密机厂商封掉明文导出密钥的程序接口也就是说。加密机中次主密钥的导出必须是经过其他密钥保护后才能以密文的形式导出。PSAM卡的二次发卡由通卡运营商通过专门的SAM卡发行软件完成.需要厂商制造密钥传输卡和SAM卡操作员卡配合共同完成,加密机中密钥是通过保护密钥加密后导出,由于是发卡机构自己控制.密钥的安全性是可控的。
3.4密钥的使用
次主密钥导入到母卡或SAM卡后.密钥就进入使用阶段。要设置密钥的用途,即设置次主密钥只能用于分散.或只能用于导出.或既可以分散也可以导出.密钥系统以此来限制次主密钥的使用,以进一步提高系统的安全性。同时.在密钥的使用过程中,可以引入版本(VERSION)和索引(INDEX)的概念.进一步加强密钥系统的安全性。密钥系统引入VERSION的概念.使得在不同阶段发行的用户卡对应的次主密钥不同而INDEX概念的引入.使得在密钥系统和用户卡中有多组.即多个INDEX的密钥在系统受到攻击等突发事故发生时。可以紧急启用另一INDEX的密钥。密钥系统中密钥索引的个数不宜太多.通常用户卡有一个正常的使用周期或有效期.在使用周期内或有效期内,多组索引全部被攻破的可能性不大。密钥索引组数太多.要求用户卡有更多的空间来存储多组索引的子密钥,卡片的成本也将提高。因此.在密钥的使用过程中应综合考虑密钥索引组数的设置。
4.安全性的其他保障
城市一卡通系统的安全性除了通过对密钥生成、存储、传递等环节进行进行科学设计.达到理论上的安全保障外,还应加强诸如人事、规程和日常管理制度的健全与完善工作。任何密钥系统的安全性都不可能依赖于密钥系统本身.而必须通过强有力的行政管理手段加以配合。具体来说可以通过如下辅助手段。加强密钥系统的安全完善。
1)密钥管理系统:1令管理。密钥管理系统KMS安装在特定的位于数据中心的主机设备上.其口令可分为KMS主机的超级管理员口令和KMS本身的管理员口令。这两个口令应该由不同的工作人员保存,并进行定期的口令更新.口令的设置必须满足相关的复杂度要求
2)SAM卡发行软件维护。SAM卡发卡需要厂商制作密钥传输卡、SAM卡操作员卡和SAM卡发行程序协同配合完成。实际操作过程中,也要遵循权力最小化的原则.即至少需要两人分别包括发行SAM卡所需的认证卡和SAM卡发行软件的口令。实际发卡时,必须由专人监督下方可进行。
3)加密机安全管控。加密机本身的系统管理员口令必须更新。同时,在加密机使用前必须注入加密机的本地初始密钥。本地初始密钥的设置可以由三个领导分别输人各自的密钥因子进行合成得到.并且可以将初始密钥存储保存在指定的密钥卡中进行备份。本地密钥也称主密钥,主要用来完成对次主密钥的加密保护。如果主密钥未设置或者不小心泄露.不法分子完全可以利用主密钥完成对次主密钥的加密导出.然后根据主密钥对导出的密钥进行解密.从而使整个密钥体系崩溃。所以.主密钥的设置和保管就显得格外重要.必须由专人保管并由不同的人员存放主密钥的初始密钥卡口令。
5.小结
本文结合笔者多年的城市通卡系统开发和运营经验,对城市通卡制作流程和密钥的生产、存储、传递、试用等环节进行了全面分析.以期对城市通卡项目的实施提供有益的借鉴和参考。与此同时.也必须意识到.通卡绝对的安全是不存在的。从技术角度来说不能完全杜绝安全隐患.最重要的是应该加强对员工安全防范意识的教育.时刻将安全放在第一位。从思想上深刻认识密钥管理对通卡运营的重要意义,防止玩忽职守.麻痹大意而导致的经营风险。
推荐文章
论坛热帖