资源描述
张家港手机市民卡工程项目建设方案神州数码信息系统有限公司2009年12月目录1.1.2手机市民卡工程的重要意义264751081清算模式811912103.1 总体架构113.2.1.1 通用密钥的管理133.2.1.2 手机市民卡密钥卡管理143.2.1.2.1 洗卡143.2.1.2.2 密钥装载153.2.1.2.3 密钥更新153.2.1.2.4 密钥激活153.2.1.2.5 密钥销毁163.2.1.2.6 密钥恢复163.2.1.2.7 口令管理163.2.1.2.8 手机市民卡密钥卡的查询163.2.1.2.9 手机市民卡密钥卡属性管理163.2.1.3 加密机管理163.2.1.3.1 加密机密钥管理163.2.1.3.2 加密机密钥状态查询163.2.1.3.3 加密机信息查询173.2.1.3.4 加密机管理173.2.2.1 基本设计思路171) 采用分层次结构进行设计:由于手机用户数量庞大,手机支付涉及的行172) 采用集中与分布相结合的方式:将采用集中与分布相结合的方式,来实173) 采用对称技术进行密钥管理:全系统密钥管理将采用对称技术(即对称174) 采用“种子”和衍生(分散)技术生成系统的各级密钥:譬如,由多个173.2.2.2 系统组成及配置清单183.2.2.3 密钥管理中心193.2.2.3.1 主要功能193.2.2.3.3 系统环境及配置(建议)223.2.2.3.4 密钥管理233.2.2.4 卡片密钥下装系统243.2.2.4.1 主要功能243.2.2.4.3 密钥管理253.2.2.4.4 导入手机市民卡发卡密钥263.2.2.4.5 与制卡系统的连接263.3 发卡方案263.3.1.1 OpenCommand 打开串口273.3.1.2 CloseCommand 关闭串口273.3.1.3 Write HardInfo 写卡片信息273.3.1.4 Get HardInfo 读卡片信息283.3.1.5 Create File 建立文件293.3.1.7 GET CHALLENGE353.3.1.8 Get Response 获取响应363.3.1.9 EXTERNAL AUTHENTICATION373.3.1.10 SELECT File383.3.1.11 READ RECORD413.3.1.12 READ BINARY43IC42443.3.1.13 UPDATE BINARY443.3.1.14 UPDATE RECORD463.4 POS支付方案48PC / POS493.4.2.1 银行卡交易流程及协议503.4.2.1.1 刷卡交易流程图503.4.2.1.2 步骤说明513.4.2.1.3 指令集543.4.2.1.3.1 CONNECT(寻找手机)543.4.2.1.3.2 InitMC(刷卡交易初始化) 功能:543.4.2.1.3.3 ReadMC(读银行卡信息指令)543.4.2.1.3.4 Transmit_Consume_Note(返回消费记录指令) 功能:543.4.2.1.3.5 DISCONNECT(中断连接)543.4.2.2 电子钱包交易流程及协议543.4.2.2.1 电子钱包圈存交易流程图553.4.2.2.2 圈存交易步骤说明553.4.2.2.3 圈存交易指令集 3.4.2.2.3.1 CONNECT(找卡)583.4.2.2.3.2 INITIALIZE FOR LOAD583.4.2.2.3.3 CREDIT FOR LOAD 功能:583.4.2.2.3.4 GET TRANSACTION PROVE命令 功能:583.4.2.2.3.5 DISCONNECT(中断连接)593.4.2.2.4 电子钱包消费交易流程图593.4.2.2.5 消费交易步骤说明593.4.2.2.6 消费交易指令集 3.4.2.2.6.1 CONNECT(找卡)623.4.2.2.6.2 INITIALIZE FOR PURCHASE623.4.2.2.6.3 DEBIT FOR PURCHASE 功能:623.4.2.2.6.4 GET TRANSACTION PROVE 功能:623.4.2.2.6.5 DISCONNECT(中断连接)633.4.2.3 电子票据交互流程及协议633.4.2.3.1 电子票据读取部分 3.4.2.3.1.1 电子票据读取流程图633.4.2.3.2 电子票据写入部分663.4.2.3.2.1 电子票据写入流程图663.4.2.3.2.2 电子票据写入步骤说明663.4.2.3.3 指令集683.4.2.3.3.1 CONNECT(找卡)683.4.2.3.3.2 Write_ET_Init(写入电子票据数据初始化指令)683.4.2.3.3.3 Write_ET_Info(写入电子票据数据指令)693.4.2.3.3.4 Write_ET_End(结束写入电子票据数据指令)693.4.2.3.3.5 Read_ET_Init(读取电子票据初始化指令)693.4.2.3.3.6 Read_ET_Info(读取电子票据数据指令)693.4.2.3.3.7 Read_ET_End(电子票据读取完毕)693.4.2.3.3.8 DISCONNECT(中断连接)703.5 OTA业务短信充值方案703.5.2.1 充值713.5.2.1.1 业务介绍723.5.2.1.2 业务流程723.5.2.2 加密传输733.5.2.3 密钥安全管理743.5.2.4 业务流程中的加解密过程753.5.2.4.1 卡片对充值短信加密763.5.2.4.2 后台系统对充值短信解密763.5.2.4.3 后台系统对充值短信加密、卡片对充值短信解密773.6 电子钱包系统773.7 电子票据业务系统783.8 自助终端系统793.10 客户服务系统813.11 应用支撑中间件系统833.12 手机移动支付软件系统84? 通信网络84? 移动支付平台848085? 认证中心85? 支持业务类型85? 安全机制8581864.1手机市民卡涉及到的运营/服务商864.1.1移动运营商864.1.2银行8782874.3成本估算884.3.2投入费用888488 第一章项目概述1.1建设背景1.1.1手机移动支付的应用背景随着近距离无线通信技术的发展,手机移动支付的概念浮现在大众面前。手机移动支付是电子支付的一种新的形式,可以将多张不同发卡行的银行卡和电子钱包集成在同一部手机中。人们外出时只要按日常习惯携带一部自己的手机,就可以满足全部持有的银行卡、电子钱包的使用功能。这是一项有望大规模改变用户生活方式的技术用手机对准刷卡器(POS机),就可以实现商场购物、餐馆付账、自动售货机上购买、坐公交地铁、看电影(体育比赛);甚至可以将手机放在嵌有电子标签的海报前,可以购买电影票、下载电影内容和海报等。于是手机将占据用户口袋中最重要的位置,取代了钱包中的各种卡片。会让消费者的支付生活变得灵活、方便与安全。由于简化消费者购买和付款的方式,因而也将为金融机构、移动运营商、零售商以及系统服务商创造更多的价值。实现手机移动支付的背景和条件已经成熟:客观条件:? 消费者需求的变化;? 先进的电子技术发展;? 移动网络和电子货币的普及;? 产业链的和谐发展;主观条件:? 政府支持;? 移动运营商、银行的高度重视;? 人们的消费观念和消费习惯形成;实现手机移动支付方案的必要技术条件:? 手机内置带安全模块的专用的MCU;? 手机带有无线数据传输通道;4? 手机与存储部件可以分离;芯片设计示意图手机市民卡内置符合PBOC2.0以及EMV的规范要求的电子钱包及银行卡,支持远程操作,操作信息可双网认证,数据传输全部DES加密。从软、硬件设计上保证了安全可靠。1.1.2手机市民卡工程的重要意义张家港市政府在现代文明城市建设中不断完善各种制度,并通过发行“市民卡”来提供合理的工具,真正发挥市政府设计各种制度、福利的初衷。“市民卡”作为一种集成了社会保障、公共服务支付、居民身份认证、福利领取、一般金融消费功能的现代化服务性产品其作用极为重要,作为与现代文明城市配套的现代化服务体组成部分,给张家港市民带来更多在和谐社会下生活的幸福感和自豪感。由于服务部门不同、结算单位不同、使用功能不同、使用人群不同等一系列现实中的应用问题,卡片越来越多,不方便居民携带,一般意义上的“市民卡”形式在某些使用性上还会有些缺憾。而采用新一代支付平台-手机支付技术的“手机市民卡”可以作为普通IC“市民卡”的有效补充,其OTA业务将进一步提升“市民卡”使用功能和体验。高新技术采用的前瞻性将使张家港“市民卡”在国内一段时期里独领风骚,即便到了将来手机支付盛行的时代也不显落后。手5机支付实现了利用手机SIM/UIM卡作为载体融合多种卡片功能的应用,从而实现了一卡多用,更大程度上方便了“市民卡”的使用和推广。1.2目标任务1.2.1总体目标(1)实现身份认证功能:通过将用户的身份信息(姓名、照片、身份证号码、指纹等)写入手机市民卡,手机市民卡成为用户身份的电子凭证,记录其个人的基本信息,为用户提供安全可靠的电子身份证明,用户可以使用它作为身份认证,为各类系统提供身份比对信息,从而享受各种政府服务(社会保险、医疗保险、民政、残疾人保障、劳动就业、住房公积金、计生、电子政务等)、公共服务(医疗卫生、社区服务、图书馆等)、商家服务(各种VIP卡)。(2)实现电子钱包功能: 通过将电子钱包信息写入手机市民卡,实现非接触式手机钱包,能基于POS机网络消费。区别普通电子钱包必须在商家的POS机上才能查询到自己的账单或进行充值,手机市民卡通过手机的STK菜单,自主实现对电子钱包金额的查询和在线充值。(3)实现银行卡功能:通过把银行卡信息写入手机市民卡中 ,实现银行磁卡IC化,利用现有的POS网络和ATM机,在POS或ATM机上增加无线桥接器或使用内置桥接器的机具,用户能通过置入手机市民卡,使手机能在POS机上直接完成“刷卡”消费或在ATM机上完成各种操作。整个操作过程和使用普通银行卡完全相同。并且,手机市民卡可以内置签名、照片等身份认证标识,与POS或ATM机配合完成身份的人工或自动确认。一张手机市民卡可以写入多张银行卡信息,彼此间互不关联,便于用户携带。(4)实现电子票据功能:用户通过各种渠道,如优惠券发放机、WAP、网站、OTA等获取商家提供的优惠券及各类门票等电子票据,将其下载到手机市民卡中,从而在商家处获得一定的消费折扣或服务。(5)实现自助充值功能:除了传统的手机银行、WAP上网等方式,用户使用手机的STK菜单,可实现手机市民卡中电子钱包的自助充值,从而解决了用户在需要充值的时候却找不到充值点的问题。这一功能对公交卡等经常性消费用的电子钱包有极大意义,不但可以节省人工充值点或自助充值机具的部署费用,更加方6便了使用者,使推广和使用的范围大大扩充。1.2.2阶段目标一期目标截止到2010年6月30日:(1)实现身份认证功能: 手机市民卡中包含身份识别信息,如身份证号、照片等信息,可以满足门禁、会员识别等需求。(2)实现电子钱包功能: 手机市民卡充值、消费流程和公交卡相似,通过充值网点现金充值,在POS机上扣款消费。二期目标截止到2010年12月31日:? 实现银行卡功能,主要是和银行系统的接口需要联调。? 移动运营商开放OTA短信平台后,手机的短信功能可以充分发挥其优势,电子票据、自助充值功能可以逐步实现。第二章需求分析2.1手机市民卡与普通市民卡的关系手机市民卡是以RFSIM卡形式出现的高度集成的IC芯片卡,属于市民卡衍生卡。市民卡衍生卡不含普通市民卡的社保卡芯片及功能,没有银行磁条信息。手机市民卡不但囊括了普通市民卡非接触芯片的所有功能,而且还具备了更多更完善的金融功能、空中下载功能。手机市民卡是普通市民卡的有效补充,不局限于市民卡功能,它是一张真正的通讯卡片,也是真正的市民卡、银行卡。具体功能、涉及到的服务、运营则由相关服务提供方负责。手机市民卡可以在普通市民卡发行的同时进行关联发行,也可在市民卡发行之后进行关联,还可以只发行手机市民卡。7手机市民卡与市民卡关系图2.2手机市民卡系统需求2.2.1手机市民卡的管理卡管理是手机市民卡系统的核心,卡业务管理包含业务操作功能、后台业务处理、卡片管理功能和系统管理功能。1 业务操作功能,即卡的生命周期管理:申请、制卡、发卡、挂失、补卡、换卡、注销、数据导入、综合查询;2 后台业务处理:制卡任务退领、开卡数据获得、消费数据获取、黑名单管理、日终处理等;3 卡片管理功能:手机市民卡的入库管理、出库管理、作废管理、回收管理,包括成品卡、半成品卡、PSAM卡等;4 系统管理功能:用户管理、权限管理。2.2.2手机市民卡的应用卡应用功能:1. 身份识别:通过读取个人信息进行身份认证;82. 电子钱包的充值交易、扣款交易;3. 银行卡的业务:取现、存款、消费、转帐等;4. 电子票据的下载、使用、删除;5. 自助充值:从银行卡账户扣减金额,充入手机市民卡电子钱包中。卡应用领域:手机市民卡的应用范围并不仅限于居民日常金融、公共事业支出和消费,更可以扩展到政府、企事业单位等领域,充分提高工作效率、节省社会资源。手机市民卡商业便民应用由于手机市民卡具有的身份认证功能,使其可以广泛应用于政府、企事业单位办公的门禁系统、公安局的身份查证系统、工商局信息登记系统、税务登记、社保系统等等这些对身份认证严格的领域,既不增加使用者成本,又方便了办公。资金缴付的功能(电子钱包和银行卡功能)配合身份认证功能能够轻松完成包括工商、税务、教育、卫生等各种行政事业费用的缴纳。9手机市民卡政府应用2.2.3手机市民卡的服务卡服务主要依托新的技术手段,为市民提供多种渠道的服务,包括服务大厅、服务网站、客服中心、自助设备、消费终端、银行网点、移动网点、电信网点等服务渠道,提供的应用功能主要有:1 服务大厅:为市民、政府部门、公共事业单位、商户等提供服务的主要渠道,包含手机市民卡的核心业务,包括卡管理、清结算、账务管理等;2 服务网站:提供网上服务,如知识宣传、业务介绍、相关政策查询等静态信息,也提供网上预挂失、信息查询、意见建议及回复等动态操作;3 客服中心:通过市话网络为市民提供语音电话服务,客服中心的建设可以依赖于现有的客服中心,也可以建立专为市民卡服务的客服系统;4 自助设备:可以方便的为手机市民卡用户提供信息查询、圈存及其他自助服务;5 消费终端:是消费平台直接面向手机市民卡用户提供服务的渠道,提供刷卡消费、黑名单管理与应用,交易数据查询与上传等;6银行网点:包括柜面和自助设备,丰富卡服务渠道,主要提供手机市民10卡的银行业务支持。7 移动运营商网点:包括柜面和自助设备,丰富卡服务渠道,主要提供手机市民卡的移动业务支持。2.2.4清结算清结算主要负责对手机市民卡金融电子支付服务的交易清分和结算。手机市民卡中的电子钱包小额电子支付功能,要求有多种消费支付模式的清分结算体系的支撑:1清算模式手机市民卡系统支持多级清算模式。即软件系统支持建立不同的会计核算主体,建立总清算中心、分清算中心。系统内实行总清算中心与分清算中心、分清算中心与网点的二级资金清算。2清结算主体:支持对小额消费、代理业务、公用事业收费、政府专项补助等资金的清结算,包括:? 商户清结算:和支持手机市民卡消费的商户进行小额消费的清结算; ? 团体清结算,包括和政府部门的专项补助资金拨付、公共事业单位的费用收缴业务的清结算;? 代理商清结算:对市民卡服务中心发展的各类代理商进行结算,例如代理充值、代理收费等业务的清结算;? 银行清结算:和合作银行进行资金往来的清结算,可以通过合作银行和商户、团体、代理商进行资金划拨。3清结算包括的主要功能包括:? 脱机交易数据处理:对脱机交易网点上送的交易数据,自动进行校验入账批处理,对自动校验入账报错的数据进行手工核对入账;? 清分清算:对所有的联机交易数据、脱机交易数据根据预先制定的清算规则进行交易数据的汇总清分,生成各类清算数据,为结算提供数据依据;? 结算入账:根据不同的结算对象和结算类型,在预先约定的结算周期内11采用不同的结算方式,可以进行银行结算与直接结算;? 差错处理:对账务处于非对称平衡状态进行差错处理,包括一记双讫、当日差错处理、隔日差错处理等。2.2.5账务管理账户管理主要包含如下功能:1 账户管理:可针对多类型账户完成管理及结算要求,包括个人账户、商户账户、团体账户、网点账户、公司账户的开户、入账、会计分录、销户等账户生命周期管理。2 总账管理:是一个支持多币种、多分支机构、多利润中心的会计系统,比普通的总账有更多的功能,通过定义总账、分户帐以及他们之间的相互关系,可灵活定义业务所需的会计科目表。2.2.6手机移动支付手机移动支付软件需求有以下三大类:1.手机本身基于J2ME的系统这部分软件通常通过OTA下载到手机中,可以进行手机支付的相关业务。2.移动运营商、银行的后台系统主要包括:OTA业务系统、银行卡业务系统。3.移动支付业务及支撑平台该平台是移动支付业务安全、快捷、便利的保证,涉及的软件比较多。具体包括:密钥管理系统、发卡系统、身份认证系统、电子钱包充值系统、电子钱包支付系统(POS消费)、银行卡业务系统接口、电子票据业务系统、客户服务系统(呼叫中心系统、CRM系统)、决策支持系统、自助终端系统、网站系统等。12第三章技术方案3.1 总体架构手机市民卡系统总体架构图手机市民卡系统包括密钥管理系统,制卡发卡系统,POS支付系统(电子钱13包、银行卡、电子票据),OTA业务系统等。同时手机市民卡系统需要市民卡系统的卡管系统、服务体系、清结算及账务系统做支撑,以方便市民卡的统一管理。本系统中卡片的生成、POS终端的改造、OTA平台的开通是系统部署的关键,移动运营商、银行、商户和市民卡服务中心的系统软件要顺利对接,才能保证手机市民卡系统的性能稳定,手机市民卡才能得到很好的推广应用。具体技术实现就可以按照如下步骤进行:1 确定RFSIM卡片结构、密钥体系,由移动运营商的卡片提供商制卡(写SIMCOS,写手机移动支付应用COS),市民卡服务中心负责发卡(写卡结构、写密钥)。2 确定POS厂商,对POS进行设备的软、硬件改造。3 市民卡系统的卡片管理、清结算、账务管理做相应修改,满足手机市民卡发行时的账户建立、充值、小额支付的结算需要。4 电子钱包系统、应用支撑中间件系统的建立,让手机市民卡移动支付更安全、支付功能更完善。5 自助终端系统、网站系统的完善,满足手机市民卡的业务需求。6 客户服务系统的建立及完善,提供手机市民卡的全方位服务。7 银行的合作模式确定,银行业务系统改造,手机市民卡的银行卡功能开通使用。8 移动运营商开通OTA短信平台,随着手机移动支付软件、电子票据业务系统的开发应用,手机市民卡可以实现空中充值,空中挂失,电子票据等功能。3.2 密钥管理方案本节详细介绍了手机市民卡支付业务密钥管理系统的特点、设计原则、安全机制和实现原理,确保密钥管理中心的密钥安全生成、传输和销毁;保障新应用的方便扩展。针对手机市民卡支付业务项目的具体特点,该方案设计的密钥管理中心为“两级密钥管理体系”的多应用管理平台:密钥管理中心和卡片密钥下装系统。143.2.1 密钥管理系统功能密钥管理中心包括下列管理功能:? 通用密钥的管理? 手机市民卡密钥卡的管理? 自有业务PSAM卡的管理? 日志管理? 用户管理? 加密机管理3.2.1.1 通用密钥的管理通用密钥是指从密钥管理中心通过根密钥分发出的密钥,包括:卡片主控密钥、卡片维护密钥、应用主控密钥、应用维护密钥、消费主密钥、圈存主密钥、TAC主密钥、PIN、PIN解锁密钥、PIN重载密钥、短信充值密钥。3.2.1.1.1 种子密钥产生卡片主控密钥、卡片维护密钥、应用主控密钥、应用维护密钥更新时,首先必须产生各自的种子密钥。通过加密机可以产生出所需的种子密钥,并可把产生的密钥按分量打印成密钥种子码单或存贮到IC卡上。产生的种子密钥需要注入到加密机中。卡片主控根密钥存储在全国密钥管理中心,根据各省标识特征,通过函数计算,分散得到各省的卡片主控一级密钥,各省根据卡的特征标识,再次进行函数计算,分散后得到每张卡的卡主控密钥。卡片维护密钥同样生成,写入卡片需要卡片主控密钥的保护。卡片应用密钥包括卡片应用主控密钥,卡片应用维护密钥,卡片一系列应用主工作密钥。卡片的应用如果是全国级的,那则由全国密钥中心将一套卡片应用根密钥分散生成每张卡的密钥数据,发给各省级用于写卡;卡片的应用如果为省级的,那则由省级密钥中心将一套卡片应用根密钥分散生成每张卡的密钥数据,自行写卡。15如果卡片应用为第三方的,一种方式是第三方将自己根密钥分散后的每张卡的数据直接给运营商或者制卡商;另一种方式是由第三方提供将根密钥分散生成的卡片应用一级密钥给运营商,由运营商进行再次分散,生成针对每张卡的应用密钥。3.2.1.1.2 密钥更新卡片主控密钥、卡片维护密钥、应用主控密钥都需要在卡片主控密钥的保护下,采用安全报文的形式更新。应用维护密钥需要在应用主控密钥的保护下,采用安全报文的形式更新。3.2.1.2 手机市民卡密钥卡管理3.2.1.2.1 洗卡手机市民卡密钥卡在装载密钥之前,需要完成洗卡工作。洗卡主要是建立密钥卡的文件系统,写入初始卡片主控密钥,控制密钥头,加密密钥头和卡片基本信息。根据密钥管理中心策略,在洗卡时,可以为所有手机市民卡密钥卡设置相同的初始卡片主控密钥,也可以按不同批次设置不同的初始卡片主密钥卡。3.2.1.2.2 密钥装载完成手机市民卡密钥卡洗卡后,可以将各密钥装载到手机市民卡密钥卡上,所有的密钥都通过上级密钥分散得到。密钥装载采用安全报文的方式进行,密钥装载的控制过程如下:? 卡片主控密钥在卡片主控密钥的控制下装载;? 卡片维护密钥在卡片主控密钥的控制下装载;? 应用主控密钥在卡片主控密钥的控制下装载;? 应用维护密钥在应用主控密钥的控制下装载;? 应用主工作密钥在应用主控密钥的控制下装载。? 自有应用主工作密钥在应用主控密钥的控制下装载。163.2.1.2.3 密钥更新在密钥管理系统中,只能更新卡片主控密钥、卡片维护密钥、应用主控密钥、应用维护密钥和自有业务工作密钥。密钥更新采用安全报文的方式进行,密钥更新的控制过程如下:? 卡片主控密钥在卡片主控密钥的控制下更新;? 卡片维护密钥在卡片主控密钥的控制下更新;? 应用主控密钥在卡片主控密钥的控制下更新;? 应用维护密钥在应用主控密钥的控制下更新;? 自有业务工作密钥在应用主控密钥的控制下更新;3.2.1.2.4 密钥激活密钥管理中心具有密钥激活功能,在激活密钥的同时会使同种类型的已激活密钥失效。3.2.1.2.5 密钥销毁销毁后的密钥不能恢复,也不再可用,销毁后的密钥会存贮在一个单独的数据库中,以备今后查询。3.2.1.2.6 密钥恢复密钥恢复功能可以恢复已经失效的密钥。3.2.1.2.7 口令管理手机市民卡密钥的口令管理分为修改口令和解锁口令。3.2.1.2.8 手机市民卡密钥卡的查询手机市民卡密钥卡查询能根据不同的查询条件查询手机市民卡密钥卡的相关信息。173.2.1.2.9 手机市民卡密钥卡属性管理手机市民卡密钥卡属性管理可管理手机市民卡上密钥的各种属性,还能设定手机市民卡密钥卡能分发的手机市民卡卡的数量。3.2.1.3 加密机管理3.2.1.3.1 加密机密钥管理加密机密钥管理可以查看加密机中的所有密钥,并能为加密机中不同的密钥添加密钥用途信息。加密机密钥管理还能检查主备加密机密钥是否同步。3.2.1.3.2 加密机密钥状态查询加密机状态管理可以检查加密机是否正常。3.2.1.3.3 加密机信息查询加密机信息查询可以查看加密机版本号等加密机信息。3.2.1.3.4 加密机管理加密机管理能完成加密机在主备之间的切换。3.2.2 密钥管理系统体系结构密钥管理系统含密钥管理中心和卡片密钥下装系统。3.2.2.1 基本设计思路密钥管理系统的基本设计思路是:1) 采用分层次结构进行设计:由于手机用户数量庞大,手机支付涉及的行业较多,总的密钥量较大,因此,初步考虑,将密钥管理系统分成两级:密钥管理中心和卡片密钥下装系统(二级密钥管理中心)。182) 采用集中与分布相结合的方式:将采用集中与分布相结合的方式,来实现整个系统的密钥管理。密钥管理的控制权集中在密钥管理中心,而手机市民卡具体的制作由卡片密钥下装系统实施。3) 采用对称技术进行密钥管理:全系统密钥管理将采用对称技术(即对称加密算法)实现。这样将可达到保密和高效,同时也便于与已建密钥管理系统的金融系统等的连接。4) 采用“种子”和衍生(分散)技术生成系统的各级密钥:譬如,由多个“种子”(可以由物理噪音源WNG4生成的随机数提供)生成一级密钥管理中心的根密钥,再由根密钥根据分散原则,衍生生成各种类型的通用主密钥,而后再由这些通用主密钥衍生生成各种类型的应用主密钥等等。3.2.2.2 系统组成及配置清单密钥管理系统由密钥管理中心及卡片密钥下装系统组成。每个卡片密钥下装系统下设若干个受理点,如下图所示。19密钥管理中心受理点受理点受理点 整个系统的配置清单如下表,本系统配置清单为密钥管理中心一套、卡片密钥下装系统一套的设备清单。203.2.2.3 密钥管理中心3.2.2.3.1 主要功能密钥管理中心的主要功能:1) 实现密钥管理全过程的安全,包括密钥的产生、存放、分发、下装、使用、备份、更新、销毁等;2) 对于不同级别或种类的密钥,由不同级别的操作员分别管理; 3) 生成并保管卡片根密钥,根密钥的生成应做到多人控制、相互制约; 4) 按手机支付业务系统中所涉及的各种应用标识代码生成各种密钥; 5) 实现与卡片密钥下装系统之间的密钥安全传递; 6) 制作PSAM卡;7) 对系统中密钥的生成、分散、使用、更新和销毁进行安全审计。 3.2.2.3.2 软件模块框架21密钥管理软件框架如下图所示:接口区辑区数据区? 安全管理模块 1)用户管理;2)系统管理、设备管理; 3)安全策略制定及控制。 ? 日志审查模块1)提供灵活的数据库查询和统计;2)设置严格的日志权限,不允许修改日志; 3)友好的用户界面。 ? 数据库模块1)对密钥管理中心中的敏感信息进行安全存储; 2)设置数据库的防伪权限划分。 ? 密钥管理模块 1)产生真随机数; 2)产生密钥种子码单; 3)生成应用根密钥; 4)进行密钥分散;5)提供密钥导入接口,导入已由其他密钥平台生成的密钥; 6)部分密钥加密导出接口;227)密钥分组功能,将同类应用和同级别密钥进行分组; 8)密钥更新与销毁; 9)密钥信息统计与管理。 ? 制卡模块1)根据种子码制作种子密钥卡,并确保种子密钥卡中密钥的分割; 2)制作PSAM卡;3)制作卡片根密钥备份卡; 4) 制作卡片下装系统管理员卡。3.2.2.3.3 系统环境及配置(建议)硬件环境:1金融数据加密机:密钥管理中心所有密钥的产生和管理设备。 2服务器和PC机:金融数据加密机的管理终端和系统管理服务器 3IC卡读写器。4UPS:不间断电源设备。5小型制卡设备:专用的制卡设备,用于PSAM卡的制作。 软件环境:1WINDOWS 2000操作系统:安装在金融数据加密机的管理终端和系统管理服务器中。2数据库软件:安装在系统管理服务器中。3密钥管理中心软件系统:安装在系统管理服务器中。 密钥管理中心的配置示意如图所示。233.2.2.3.4 密钥管理1.密钥生成 1)应用密钥生成密钥管理中心生成根密钥,将密钥根据应用标识分别离散为应用工作主密钥、应用主控密钥、应用维护主密钥等应用密钥。2)卡片密钥生成手机市民卡卡片密钥用于创建和维护用户卡中的文件、信息。由密钥管理中心金融数据加密机产生一个随机数作为卡片密钥种子码,金融数据加密机对种子码进行特定运算,生成用户卡的卡片主控密钥、卡片维护密钥、PIN重装密钥、PIN解锁密钥等卡片密钥。3)交易密钥生成密钥管理中心用金融数据加密机分别产生硬件随机数,作为圈存、圈提密钥等交易密钥。2.密钥流程图:密钥管理中心密钥流程如下图所示:243卡片制作: PSAM卡制作:利用密码机产生PSAM卡主控密钥、PSAM卡维护密钥,以及洗卡密钥等相关密钥。PSAM卡的发卡在密码机的控制下进行,具体描述如下:1. 用密钥管理中心PSAM洗卡密钥的PIK替换PSAM卡的厂商传输密钥; 2. 用密钥管理中心PSAM发卡主控密钥替换PSAM卡的厂商传输密钥; 3. 在主控密钥的控制下,写入维护密钥;4. 在维护密钥的控制下,写PSAM卡MF下的信息文件; 5. 在主控密钥的控制下,写入应用主控密钥; 6. 在应用主控密钥的控制下,写入应用维护密钥;7. 在应用维护密钥的控制下,写PSAM卡ADF下的信息文件; 8. 在主控密钥的控制下,写入其他相关密钥。注:上述步骤中的主控密钥、维护密钥、应用密钥均为密钥管理中心PSAM发卡相应密钥对PSAM卡序列号(SN)的分散。3.2.2.4 卡片密钥下装系统3.2.2.4.1 主要功能卡片密钥下装系统的主要功能:1) 主要完成手机市民卡密钥的生成及安装,并实现与制卡设备的安全连接; 2) 具备卡片密钥下装全过程的安全审计的功能;3) 制定手机市民卡密钥下装的安全管理策略和管理方式。 3.2.2.4.2 软件模块框架卡片密钥下装系统软件框架如下图所示:25? 安全管理模块1)制定手机市民卡卡片下装的安全管理策略和管理方式;2)用户权限划分和管理;3)系统设备管理。? 日志审查模块1)对卡片密钥下装过程进行日志记录;2)提供严格的权限划分,不允许对日志进行修改;3)提供良好的用户界面。? 密钥管理模块1)通过发卡母卡和洗卡母卡安全生成手机市民卡密钥;2)手机市民卡密钥的安全导入;3)新应用密钥的准备;4)特殊应用的用户卡密钥的安全下装。? 通信模块1)实现与制卡设备的通信连接;2)用户卡密钥的安全传递。3.2.2.4.3 密钥管理1)密钥来源手机市民卡卡片密钥来源于密钥管理中心下发的手机市民卡发卡密钥。262)密钥生成手机市民卡密钥由密码机应用密钥和卡片密钥经用户卡标识分散生成。3)密钥下装手机市民卡卡片密钥在密码机中分散生成后加密导出,然后通过通信模块下传到制卡设备或新应用增加受理网点,将密钥初始化至手机市民卡中。3.2.2.4.4 导入手机市民卡发卡密钥导入手机市民卡发卡密钥将如应用主控密钥、应用维护主密钥、应用工作主密钥等密钥导入密码机中安全存储。其导入方式采用密码机进行密钥导入。具体导入流程同二级密钥管理中心通用主密钥导入方式一致。3.2.2.4.5 与制卡系统的连接卡片密钥下装系统与制卡系统的连接体现为卡片下装系统前置与制卡系统的连接。当制卡系统进行手机市民卡发卡时,根据手机市民卡的应用向卡片下装系统提请该应用的密钥服务请求,卡片下装系统前置接收该请求后,判断制卡系统的访问权限,并进行交易转发处理。3.3 发卡方案本节主要介绍手机市民卡的发卡接口和发行过程,手机市民卡下装完通讯COS及应用COS后,根据其卡片规范和密钥体系对白卡进行初始化,将卡片数据文件生成、密钥导入。2.4GHZ RFSIM的读写操作接口通过API DLL方式提供,市民卡服务中心发卡系统只需调用发卡接口函数即可将手机市民卡生成。3.3.1 发卡接口3.3.1.1 OpenCommand 打开串口定义:打开读卡器设备连接的串口。HANDLE _stdcall opencomm(char *comp, char *baud);27参数说明:comp: 串口号,如 com1 baud: 打开串口参数:如波特率、奇偶校验、数据位和停止位,例如115200,n,8,1返回值: 打开串口返回的句柄值。3.3.1.2 CloseCommand 关闭串口定义:关闭读卡器设备连接的串口。void _stdcall closecomm(HANDLE hd1);参数说明:hd1: 打开串口返回的句柄值3.3.1.3 Write HardInfo 写卡片信息定义和范围:Write HardInfo命令用于初始化卡片信息,写入的卡片信息主要包括:16字节的传输密钥,8字节的卡片序列号和4字节的COS版本,其中的传输密钥用于控制卡片主控密钥的载入。只有在卡片状态为空卡时,才可以执行此命令。int _stdcall WriteHardInfo(int hd1,unsigned char *pKey,unsigned char *pSN,unsigned char *pVer,unsigned char *pResult);参数说明:hd1:串口句柄值*pKey:16字节的传输密钥*pSN:8字节的卡片序列号*pVer:4字节的COS版本*pResult:返回的状态码返回的状态码:28返回值:3.3.1.4 Get HardInfo 读卡片信息定义和范围:Get HardInfo命令用于获取卡片基本信息。基本信息主要包括卡片序列号,COS版本号和卡片FLASH剩余空间。只有在卡片状态不为空时,才能执行此命令。int _stdcall GetHardInfo(int hd1,unsigned char *pVal,unsigned char *pOut,unsigned char *pResult);参数说明:hd1:串口句柄值*pVal:*pOut:返回卡片相应信息*pResult:返回的状态码返回的状态码:293.3.1.5 Create File 建立文件定义和范围:Create File命令用于建立MF文件、DF文件和EF文件。当建立MF文件时,卡片必须为空,卡片首先外部认证验证卡片传输密钥(制造商密钥),通过后把主控文件(MF)的数据写入手机市民卡。建立DF文件时,只有MF存在且有足够的空间,并且满足当前建立文件的安全条件,并且MF没有被锁住,才可建立DF。建立EF文件时,只有卡空间EF文件头+文件体,并且满足当前建立EF文件的安全条件才可建立EF。int _stdcall CreateFile(int hd1,unsigned char *pVal,unsigned char *pData,unsigned char *pResult);参数说明:hd1:串口句柄值*pVal:00- 建立MF01- 建立DF02- 建立EF*pData:文件信息*pResult:返回的状态码30文件信息及其长度在建立不同类型的文件分别描述如下: (1)建立MF文件时数据域的信息:建立文件权限指明在MF目录下创建文件时需满足的权限。短文件标识符指明MF下的应用列表文件,该文件是一个变长的记录文件,有效表示为该字节的高三位为000,低5位为短文件的标识符。无列表文件填00。(3)建立EF文件时数据域的信息:31如果建立银行应用,则MF必须取名为:1PAY.SYS.DDF01。文件性质:固定03H文件类型:二进制文件(00H) 线性定长记录文件(01H) 循环定长记录文件(02H)读、写权限:0 F 。写标志位说明:00H 该EF可反复更新; 01H 该EF只能更新一次。 3.3.1.6 Write KEY 增加或修改密钥定义和范围:WRITE KEY命令可向卡中装载或更新卡中已经存在的密钥,本命令可支持8字节或16字节的密钥,密钥以密文加MAC的方式写入。当本命令用于增加密钥时必须满足密钥文件的修改权限,修改密钥时必须满足密钥的修改权限。在密钥装载前必须用GET CHANLLEGE命令从卡片内取一个4字节的随机数。 int _stdcall WriteKey(int hd1,unsigned char *pVal,unsigned char *pType,unsigned char *pData,unsigned char *pResult);参数说明: hd1:串口句柄值*pVal:XX- 最高位b7=1表示追加密钥,b7=0表示修改密钥;P1低7位表示密钥标识32*pType:XX- 密钥类型*pData:加密后的密钥信息+4字节MAC值 *pResult:返回的状态码其中原始密钥信息如下:注:密钥标识(KID): 不能等于FFh,同类型密钥的标识符必须唯一。 密钥版本: 同类密钥的版本,默认为等00H。 密钥用途: 密钥用途为1字节,即为密钥类型。算法标识: 算法标识为00,则算法是Triple DES,如果是Single DES则算法标识为01,算法标识对PIN表示PIN长度,范围2-6字节。33使用权限: 指使用某一密钥时所需满足的安全条件。修改权限: 指用Write KEY指令修改某一密钥时所需满足的安全条件。 后续状态: 只对PIN、和外部认证KEY有效。当口令核对成功或外部认证成功后,置卡片状态机为后续状态。错误计数器: 错误计数器的高半字节为初始错误计数,指明密钥可以连续错误的最多次数;错误计数器的低半字节为当前最多允许错误计数,指明当前还可允许的错误次数。如果连续错误的次数超过初始错误计数的值,密钥自动锁死。在使用密文形式进行安装密钥时,命令报文数据域包括要装载的密钥密文信息和MAC。密钥密文信息使用主控密钥对以下数据加密(按所列顺序)产生的: 密钥版本号 算法标识 密钥用途 使用权限 后续状态 修改权限34错误计数器 密钥值MAC是用主控密钥对下数据进行MAC计算(按所列顺序)产生的: CLA INS P1 P2 Lc密钥密文信息加密和MAC计算的方法遵循中国金融集成电路(IC)卡规范。生成MAC码的初始值为:4个字节的随机数+00 00 00 00。密文安装应用主控密钥时,所使用的密钥为上一层的卡片主控密钥。 密文安装MF下的卡片主控密钥时,则使用卡片的传输密钥进行安装。 装载6字节的PIN时,数据长度为14H;装载8字节的单长度密钥时,数据长度为1CH;装载16字节的双长度密钥时,数据长度为24H。3.3.1.7 GET CHALLENGE定义和范围:GET CHALLENGE命令请求一个用于安全相关过程(例如:安全报文)的随机数。 该随机数只能用于下一条指令,无论下一条指令是否使用了该随机数,该随机数都将立即失效。int _stdcall GetChallenge(int hd1,unsigned char *pOut,unsigned char *pResult);参数说明:35hd1:串口句柄值 *pOut:返回随机数*pResult:返回的状态码 返回的状态码:返回值:3.3.1.8 Get Response 获取响应定义和范围:Get Response命令提供了一种从卡片向接口设备传送APDU的传输方法。 int _stdcall GetResponse(int hd1,unsigned char *pOut,unsigned char *pResult);参数说明: hd1:串口句柄值 *pOut:返回的数据 *pResult:返回的状态码 返回的状态码: 36返回值:3.3.1.9 EXTERNAL AUTHENTICATION定义和范围:EXTERNAL AUTHENTICATION命令要求IC卡中的应用验证密码。 IC卡的响应包括命令处理状态的回送。 int_stdcallExternal_Authentication(inthd1,unsignedchar*pValidate,unsigned char *pResult); 参数说明: hd1:串口句柄值*pValidate:包含8-16字节的数据;前8个必备型字节包含密码,可选的1-8个附加字节是专用的信息。*pResult:返回的状态码 返回的状态码:IC卡可能回送的警告状态码如下表所示:IC卡可能回送的错误状态码如下表所示:37返回值:3.3.1.10 SELECT File定义和范围:SELECT File命令通过文件名或AID来选择IC卡中的PSE、DDF或ADF。应用选择在本规范的第7篇中描述。命令执行成功后,PSE、DDF或ADF的路径被设定。应用到AEF的后续命令将采用SFI方式联系到所选定的PSE、DDF或ADF。 从IC卡的响应报文应由回送FCI组成。int _stdcall SelectFile(int hd1,unsigned char *pControl,unsigned char *pSelect,unsigned char *pFileName,unsigned char *pOut,unsigned char *pResult); 参数说明:hd1:串口句柄值*pControl:引用控制参数*pSelect:00第一个或仅有一个,02下一个 *pFileName:文件名 *pOut:返回的数据 *pResult:返回的状态码 引用控制参数:38返回的数据:响应报文中数据域应包括所选择的PSE、DDF或ADF的FCI。本规范不规定FCI中回送的附加标志。下表定义了成功选择PSE后回送的FCI:下表定义了ADF回送的A5中包含的数据,其中必须包含标签为9F08的应用版本号,其数值由全国金融标准化技术委员会负责定义和维护。39此命令执行成功的状态码是9000。 IC卡可能回送的警告状态码如下表所示:注:SW1 SW2=6A82用于表示当卡支持部分文件名选择时,没有与此部分文件名相匹配的文件。3.3.1.11 READ RECORD定义和范围:READ RECORD命令用于读取记录文件的内容。IC卡的响应由回送记录组成。int _stdcall ReadRecord(int hd1,unsigned char *pSafe,unsigned char *pRecordNO,unsigned char *pControl,unsigned char *pMAC,unsigned char *pResult);参数说明: hd1:串口句柄值40*pSafe:00无安全报文,04安全报文*pRecordNO:记录的个数*pControl:引用控制参数*pMAC:当无安全报文使用时,命令报文数据域不存在。使用安全报文时,命令报文的数据域中应包含MAC。MAC的计算方法和长度由应用决定。*pResult:返回的状态码引用控制参数:返回的状态码:此命令执行成功的状态码是9000。IC卡可能回送的警告状态码如下表所示:返回值:413.3.1.12 READ BINARY定义和范围:READ BINARY命令用于读取二进制文件的内容(或部分内容)。int _stdcall ReadBinary(int hd1,unsigned char *pSafe,unsigned char *pControl,unsigned char *pAddress,unsigned char *pMAC,unsigned char *pResult);参数说明:hd1:串口句柄值*pSafe:00无安全报文,04安全报文*pControl:引用控制参数*pAddress:从文件中读取的第一个字节的偏移地址*pMAC:当无安全报文使用时,命令报文数据域不存在。使用安全报文时,命令报文的数据域中应包含MAC。MAC的计算方法和长度由应用决定。*pResult:返回的状态引用控制参数:返回的状态码:此命令执行成功的状态码是9000。IC卡可能回送的警告状态码如下表所示:IC42返回值:3.3.1.13 UPDATE BINARY定义和范围:UPDATE BINARY命令报文使用命令APDU中给定的数据修改EF文件中已有的数据。int _stdcall UpdateBinary(int hd1,unsigned char *pSafe,unsigned char *pControl,unsigned char *pAddress,unsigned *pData,unsigned char *pResul
展开阅读全文