毕业论文-CPU卡发卡系统的设计与实现_第1页
毕业论文-CPU卡发卡系统的设计与实现_第2页
毕业论文-CPU卡发卡系统的设计与实现_第3页
毕业论文-CPU卡发卡系统的设计与实现_第4页
毕业论文-CPU卡发卡系统的设计与实现_第5页
已阅读5页,还剩223页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICPU卡发卡系统的设计与实现摘要随着信息产业的不断深入,智能卡行业取得了飞速发展。目前,大多数城市已经把建设“城市一卡通”作为首要目标,为居民提供更为方便的服务。随着中国人民银行PBOC标准的发布,金融卡IC化正式拉开帷幕,全国都开始了磁条卡向CPU卡的迁移工作,快速升级IC卡系统以迫切。发卡系统是IC卡系统的重要组成部分,负责系统的卡片发行、行业对接和信息管理。现有的CPU卡发卡系统存在以下弊端:卡片不具有“一卡多用”的功能;密钥管理体系安全性较低;系统可兼容的卡片类型单一;系统扩展性较差,CPU卡发卡系统成为当前IC卡建设的首要目标。本文针对现有发卡系统存在的问题,在分析一卡通系统整体架构的基础上,1.根据系统设计目标和功能需求,设计各级卡片内部文件结构,实现“一卡多用”的功能。并根据PBOC3.0准则,规划金融卡扩展应用区文件结构,加入金2.根据系统密钥管理需求,设计并实现CPU卡发卡系统密钥管理体系。规划密钥加密算法的基础上,提供安全性更高的国密SM4算法进行密钥分散,提高系数据库,对硬件设施管理、业务管理、银行网点管理、综合查询、通信管理等功能模块及License控制、界面定时器控制等安全机制进行详细的流程设计与代码实经过系统测试及结果分析,表明CPU卡发卡系统满足功能要求,并能够安全关键词:发卡系统,卡片结构,密钥管理,CPU卡,安全机制ⅡWiththefurtherdevelopmentoftheinformationindustry,theof'citycard'asaprimarygoalfromthemagneticsecuritymanagementsystem,poorsystemcbecomesourprimarygoalonthecurrentprojectofICcardconstruction.contributionsofthispaperareasfollow2.AccordingtothesecretwiththehardwaresupporingofPSAMcard,SM4algorithmofhighersecurityisIvirousfunctionmodules,suchashardoutletmanagement,integratedsearching,andcommunicationmanagement,asLicensecontrolandTimercontrolinterfacesafetymechanisms.MoKeywords:cardissuingsystem,card目录 X注释表 1 11.2国内外发展现状 21.2.1国内发展现状 21.2.2国外发展现状 31.3本文研究内容 4 5 62.1一卡通系统分析 62.2发卡系统分析 82.2.1发卡系统功能分析 82.2.2现有系统存在问题 82.2.3系统设计目标 92.3CPU卡发卡系统软件架构研究与分析 2.4CPU卡发卡系统关键点研究与分析 2.4.1卡片应用结构设计 2.4.2密钥管理体系设计 2.4.3信息安全技术 2.5本章小结 第3章CPU卡发卡系统需求分析与总体设计 3.1CPU卡发卡系统需求分析 3.1.1系统功能需求分析 3.1.2系统非功能需求分析 3.2CPU卡发卡系统总体设计 3.2.1硬件模块组成 V3.2.2软件模块组成 3.2.3银行业务平台 3.3系统开发方案分析与选择 3.3.1软件开发平台选择 3.3.2数据库管理系统选择 3.3.3硬件设备选择 3.3.4库接口调用方式选择 4.1卡片分析与设计 4.1.1卡片类型及作用 4.1.2卡片结构规划 4.2密钥分析与算法实现 4.2.1密钥类型及作用 4.2.2密钥加密算法实现 4.2.3密钥分散算法实现 4.3密钥的生成与装载 4.3.1PSAM母卡密钥生成 4.3.2PSAM子卡密钥生成 4.3.4银行卡密钥生成 第5章CPU卡发卡系统详细设计与实现 5.1发卡系统软件功能模块设计 5.2数据库的设计与实现 5.2.1数据库设计 5.2.2数据库连接与操作 5.3主要功能模块详细设计与实现 5.3.1硬件设施管理模块 5.3.3银行网点管理模块 5.3.4综合查询模块 5.3.6系统管理模块 5.4系统安全机制设计与实现 5.4.2界面定时器控制 5.5本章小结 6.1测试方案分析与设计 6.1.1测试方法选择 6.1.2测试流程设计 6.3.1系统管理模块 6.3.2硬件设施管理模块 6.3.4银行网点管理模块 6.3.6系统性能测试 7.1全文总结 致谢 图录图录图录图1.1金融卡市场规模图 1图2.1一卡通系统整体架构 6图2.2C/S结构图 图2.5CPU卡文件结构设计图 图2.6DES算法加密过程 图2.7SM4算法实现结构图 图3.1系统总体架构 图3.2硬件模块间的关系 图3.3金融卡内部结构图 图3.4ZR1800读卡器 图3.5读卡器JNative实现原理图 图4.3PSAM子卡内部结构 图4.4CPU卡内部结构 图4.5银行卡内部结构 图4.6SM4算法实现框图 图4.7密钥分散算法 图4.8母卡MF区密钥生成过程 图4.9母卡DF区密钥生成过程 图4.10子卡MF区密钥生成过程 图4.11子卡MF区密钥生成过程 图4.12子卡DF区密钥生成过程 图录重庆邮电大学硕士学位论文图录 图4.15银行卡密钥生成过程 图5.3硬件设施校验实现流程 图5.4卡片初始化实现流程 图5.5卡片发行实现流程 图5.6银行卡发卡实现流程 图5.8洗卡实现流程 图5.9银行网点信息管理实现流程 图5.10网点子卡管理实现流程 图5.11综合查询实现流程 图5.12通信模块实现流程 图5.14界面定时器实现流程 图6.3登陆身份验证界面 图6.4发卡系统主界面 图6.6用户注册失败界面 图6.7读卡器及卡片校验成功 图6.8读卡器及卡片校验失败 图6.9SM4算法加密结果 图6.10GMTools数据解密结果 图6.11母卡初始化界面 图6.12CPU卡初始化界面 图6.13CPU卡发行界面 图录图录图6.14卡片初始化信息查询界面 图6.15卡片发行信息查询界面 图6.16读卡器测试程序界面 图6.17合法性校验失败界面 图6.18洗卡成功界面 图6.19洗卡失败界面 图6.20合法性校验成功界面 图6.21网点信息查询界面 图6.22网点信息编辑界面 图6.23网点信息删除界面 图6.24网点子卡管理界面 图6.25子卡绑定成功界面 图6.26子卡绑定失败界面 图6.27卡片初始化信息查询界面 图6.28卡片初始化信息详细界面 图6.29洗卡信息查询界面 图6.31无法安装软件提示 图6.32软件安装界面 图6.33SM4算法执行时间 图6.34制定备份任务 图6.35备份任务显示 图6.36备份数据文件 表录X表录 表3.1CPU卡发卡系统功能需求分析 表3.2常用数据库比较 表4.1PSAM母卡文件结构 表4.2母卡Key文件结构 表4.6CPU卡Key文件结构 表4.8银行卡Key文件的结构 表4.9密钥的类型及其作用 表5.1数据库表格信息 表5.3PSAM母卡发卡信息表结构 表6.3账户登陆测试用例 表6.5合法性校验测试用例 表6.6SM4算法验证测试用例 表6.7发卡功能测试用例 表6.8洗卡功能测试用例 表6.11综合查询测试用例IntegratedCircuit,集成电路DiskOperatingSystem,磁盘操作系统PurchaseSecurityApplicationModule,终端安全控制模块TransactionAuthorizationCryptogram,交易验证码MessageAuthenticationCode,消费认证码DataEncryptionStandard,数据加密标准TripleDataEncryptionAlgorithm,三重数据加密算法InternetProtocol,网络间互联协议MicrosoftFoundationClasses,微软基础类库GraphicalUserInterface,图形用户界面RadioFrequencyIdentification,射频识别技术UniversalSerialBus,JavaNativeInterface,Java原生接口DynamicLinkLibrary,动态链接库MasterKey,主密钥EntityRelationshipDiagram,实体-联系模型JavaDataBaseConnectivity,Java数据库连接ApplicationProgrammingInterface,应用程序编程接口第1章引言1第1章引言多年以来的持续投入,使得我国智能卡产业发展迅速,目前已成为全球最大作会获知,在135亿张已发行的智能IC(IntegratedCircuit,集成电路)卡中,数量最高的是电信智能卡,接近60亿张,第二位是银行IC卡,24亿张,二代居民身份证居第三位,14亿张,社保卡也达到了8.6亿张l²1,特别是2009-2015年金融IC卡市场规模(按销量)呈现迅速增长之势,如下图1.1所示:图1.1金融卡市场规模图“城市一卡通”已成为城市现代化文明建设发展的重要标志,是政府主力推中国人民银行)标准的发布,全国都开始了磁条卡向CPU(CentralProcessingUnit,中央处理器)卡的迁移工作。金融卡的广泛使用,提高了银行卡支付的安全性,为银行卡在多个方面的应用提供基础。2013年2月,PBOC3.0标准正式发布。该标准在银行卡上加入了“闪付(QuickPass)”功能,使得银行卡不再只具有金融功能,而是融入众多行业应用成为多用途银行卡,如金融消费卡、社保卡及市民第1章引言2卡等卡种,全面覆盖了公共交通、商场购物、餐厅消费等众多小额支付领域。不仅方便了消费者,而且为银行开发新的银行卡产品提供了基础,具有很大的市场过整合综合交通、教育、社保、小额支付、数字社区、企业管理、旅游娱乐等领然而实现这一目标的重点,是怎样有效地利用IC卡的先进技术和产品对IC设计较简单且安全性较低,密钥种类较少,常用的以上弊端阻碍着“城市一卡通”的发展,所以对原有发卡系统进行升级,构能出色、用途广泛的“一卡通”系统,可以极大的方便人们的生活,具有很大的1.2国内外发展现状虽然IC卡较晚进入中国,但是IC卡系统建设发展的速度却非常快,如今已应用在社会经济等多个领域,如工商行政管理部门的企业卡,石油领域的油卡,IC卡系统从单纯只支持M1卡逐渐发展,到2013年,在国家的倡导下,开始建设基于CPU卡的IC卡系统,不断升级IC卡系统以保障卡片的安全性第1章引言3卡可以“一卡多用”的特点,2015年7月5日,《数字城市一卡通通用技术互操作性要求》发布,该要求已成为“城市一卡通”联网准则的第一个国家标准,并于2016年2月1日起实施。标准说明了城市一卡通互联互通系统的技术要求、用户通系统可以满足城市综合交通、公用事业缴费、景观、社会服务、停车场管理等业务需求。截至2016年12月,住建部城乡建设部牵头的全国城市建设标准已超过190个,发卡总数达8亿5000万张,覆盖城市人口超过8亿。全国互联互通城市已达77个,一卡通互通业务突破2亿,支持互通性的终端超过120万台,覆盖城市人口超过3亿。建设事业IC卡部门通过将近四年的理论探索及社会实践,已经大致完成了具有建设事业特色的IC卡应用模式的拓展。主要体现在以下几个方面:一是实现“一卡多用”的功能,如上海已将公交车、出租车、地铁、轻轨及轮渡实现一卡化;二是双界面CPU卡慢慢得到发展与使用,如大连市已经发行了22万张;三是已经在一些城市实现了异地的互联互通,如无锡和上海已经通用了公共交通卡;美国是信用卡起源地,自60年代就开始了发卡应用。两个最大的发行机构是Master和VISA,现在已经成为一个全球性的国际运营组织。2010年,Master发行了电子钱包MONDEX,同时VISA发行了电子钱包VISACASH,这两种电子钱取行安全升级,使用SAM卡建立了多级密钥体系,提升卡片的安全性。2.欧洲行、公共汽车、预付费功能设置为一体。2013年,伦敦开始使用信用卡或借记卡第1章引言4搭乘各种公共交通,这使得市民的出行更加的方便。2014年,法国巴黎实行“一次性通行证”规则,将公共汽车票和地铁票融为一体,这张票不仅能搭乘城市地铁,而且还能搭乘郊区的地铁[10]。近年来IC卡建设在欧洲发展速度很快,基于CPU卡的灵活性加入多个行业应用,不断升级IC卡系统,在2015年9月,就已经实现了多个城市的互联互通。3.亚洲最近几年,IC卡在亚洲各国家备受关注。日本出现的“Suica”卡片,让游客外出更为便捷。“Suica”卡不仅节约了设备的成本,而且带动了相关产业的发展。新加坡基于CPU卡建设“一卡通”系统,该系统发行的卡片不仅可以用来乘坐地铁、公共汽车,还可以用来支付罚款及在便利店买东西。在台湾,金融IC卡已经投入行业应用的使用,将停车卡、家庭/商业银行卡、汽车加油卡、自动售卡和交通卡本课题来源于校企合作项目“XX省XX市CPU卡发卡系统开发”。本项目旨在开发一个功能更全面、安全性更高、扩展性更好的CPU卡发卡系统,以提高对CPU卡片的发行和管理,并加入XX市金融卡的行业应用功能。本文使用国家规定的标准CPU卡,并根据PBOC3.0准则,设计银行卡内扩展应用区文件结构,加入银行卡的行业应用功能,建立密钥管理体系,开发一个界面简洁、功能强大、性能出色、安全易用的CPU卡发卡系统,真正实现“城市互1.根据系统设计目标和功能需求,规划CPU卡发卡系统卡片种类并设计各级卡片内部文件结构,实现“一卡多用”的功能。在此基础上,根据PBOC3.0准则,规划金融卡扩展应用区文件结构,明确金融卡行业应用的加入规范,实现金融卡行业应用功能的加入。2.根据系统密钥管理需求,对密钥管理体系进行设计与实现。分析密钥类型及作用,确定各级卡片密钥种类及生成方式。研究密钥加密算法与密钥分散算法,以PSAM卡为硬件支撑,在兼容通用DES/3DES密钥加密算法的基础上,提供安全性更高的国密SM4算法进行密钥分散,实现密钥的生成与装载。第1章引言5行详细设计与实现,包括MySQL数据库的搭建,业务查询、通信管理等功能模块及安全机制的流程设计与代码实现。并完成与银行柜面系统的数据对接与业务清算,同时预留第三方行业应用接口,便于新的应用的第一章:引言。首先对本文研究背景及国内外发展现状进行介绍,然后说明上,对现有发卡系统存在的问题进行详细阐述,提出本课题所设计的发卡系统的完成对卡片应用结构、密钥管理体系、信息安全等关键点的研究与分析。卡发卡系统的功能需求及非功能需求,而后对系统整体架构进行设计,并详细阐述了PBOC3.0中的银行卡行业应用的加入规范。最后分析并选择开发方案及关键技术,包软件开发平台、数据库系统、硬件设备和库接口调用方法第四章:密钥管理体系详细设计与实现。根据系统需求及设计方案,规划各级卡片内部文件结构,对密钥加密算法、密钥分散算法、密钥的类型及作用进行架构,设计软件功能模块,而后对数据库E-R模型进行分析,设计数据库字段与表格。最后,完成系统各功能模块与安全机制的业务流程设计与代码实现。第六章:软件测试与结果分析。搭建测试环境,对CPU卡发卡系统及所发行的卡片进行严格的功能测试,并对系统进行性能测试,最后对测试结果进行数据第七章:结束语。对本文所做工作进行回顾与总结,指出了开发过程中有待6关联系统一关联系统一级平台、川级平台终端平台市民卡第2章CPU卡发卡系统研究与分析本章在分析一卡通系统的基础上,对传统发卡系统进行研究,提出了CPU卡发卡系统的设计目标和体系架构,最后对系统开发中所涉及到的关键点进行研究与分析。城市一卡通系统具有多级结算结构、明确的数据处理流程、高级别的系统密钥安全机制等。系统分为以中央结算、统一卡务、数据交互、密钥保管为“核心平台”的应用,实现与社区、公交、公共事业、商业、教育、校园等各行业平台的信息共享,给予政府部门高效的决策支持和完善的应急管控,方便市民通过手上的一卡通或手机在城市内便捷支付[11]。一卡通系统整体架构如图2.1所示。银行业务平台运营商业务平台城际清算平台数据清算平台客户服务平台行业应用接口公共事业应用商业小额支付教育应用企业事业应用公共交通应用社会保障应用金融应用扩展应用银行圈存读卡器小额支付公交城市水、电表银行圈存------------------T---<非接触式银行卡手机支付非接触式银行卡手机支付7一卡通系统由市民卡、终端平台、二三级平台、一级平台和关联系统组成。下面对每一部分进行详细介绍。一卡通系统中,市民卡是连接市民与系统的桥梁。市民卡包括M1卡、CPU卡、金融卡以及手机支付等。用户通过使用一卡通系统发行的市民卡可直接在各终端平台上进行消费。2.终端平台终端平台主要用于卡片在各种场景下的消费。每个行业应用都有对应的消费终端平台,包括读卡器、小额支付、公交、城市水电表和银行圈存等。当市民卡在终端平台上进行消费后,终端将具体消费信息进行上传至二、三级平台,并完成对市民卡的相关操作。3.二、三级平台二、三级平台又可称为行业合作方,包括各种具体行业应用。该部分主要为与一卡通系统合作的各个行业方,其通过行业应用接口与一级平台进行交互。一级平台根据该平台内具体的行业需求进行卡片发行与市民基础数据的准备,该平台对各自行业的终端平台消费数据进行采集并管理。4.一级平台一级平台为一卡通系统的核心。该部分主要包括发卡系统、数据清算平台和客户服务平台等。其中发卡系统又包括密钥管理、卡务管理和数据交换等。一级平台主要完成卡片的规划、发行、充值、管理与用户基础数据的存储、管理。该平台可通过行业应用接口与数据交换平台、行业方或第三方系统进行数据交互。5.关联系统关联系统又可称为第三方平台。该部分包括银行业务平台、运营商运营平台等。这些第三方平台可以与一卡通系统进行合作,通过数据交换直接与一级平台进行交互,推广更多的卡片业务,方便市民的生活。近年来,金融卡IC化的迅速发展,越来越多的一卡通系统将考虑银行卡行业扩展应用的加入,利用银行众多的网点与渠道建设一卡通系统。8发卡系统位于一卡通系统中的一级平台,是一卡通系统的核心。发卡系统的主要功能是:在一系列安全机制的控制下,操作人员通过上位机向读卡器发送指令,从而完成对卡片的相关操作,操作完成后,将相关数据发送至卡片管理中心FrequencyIdentification,射频识别技术)与读卡器进行通信。发卡系统的软件组成为:密钥管理体系、上位机软件及卡片管理中心。密钥管理体系主要负责卡片的安全认证及密钥的生成与传递,是发卡系统的核心。上位机软件即为提供给操作人员进行操作的软件,操作人员通过上位机软件调用相2.2.2现有系统存在问题需求的增多与新业务的产生,现有的发卡系统存在很多弊端,主要体现在以下几单一,对主目录文件和应用目录文件未进行分离,不利于对卡片进行自定义的扩2.密钥管理体系安全性较低。对于现有CPU卡系统,卡片密钥种类较单一,通常只有两至三种仅可以满足特定行业应用的密钥,密钥种类的单一性也使得密钥体系设计较为简单,卡片的安全得不到保障。9金融功能,其IC化所带动的“闪付”功能在小额免密支付领域具有很大的使用价值。对于现有CPU卡系统,所支持的卡片类型较为单一,仅为国家标准CPU卡,4.扩展性差、缺乏可伸缩性。现有发卡系统,卡内结构的固定和封闭决定其无法同时开通多个应用。并且系统大多在建设时缺乏统一的规划,只为特定行业应用服务,行业接口的单一性很难使其进行扩展,系统缺乏可伸缩性,无法做到为了解决原有发卡系统的弊端,本课题对CPU卡发卡系统进行研究。传统发卡系统的功能和性能的基础上,使用CPU卡进行重新设计与开发,采用分层模块化的开发思想建立高安全性的密钥体系并提供功能接口,便于系统进行扩展,紧跟时代步伐。遵循PBOC3.0准则,加入金融卡的行业应用功能,使得金融1.“一卡多用”的功能。CPU卡存储空间采用类似计算机操作系统的目录和文件式管理方式,可以根据需要合理分配存储空间,它的储存空间是逻辑加密卡的数倍,完全满足现在储存的需要。CPU卡可应用于金融、保险、警务等多域,有一卡多用的能力,且已得到中国人民银行的认证。本课题根据通用一卡通标准重新设计CPU卡内文件结构,将主目录文件与应用目录文件分离,使得进行2.密钥管理体系安全性高。CPU卡的密钥控制灵活,密钥种类较多。根据系统需求,选择合理的密钥类型,使用安全性更高的密钥算法,以PSAM卡为硬件支撑进行密钥的生成、存储和分散,设计一套安全、合理的密钥管理体系是发卡3.金融卡行业应用功能。金融卡IC化近年来日益流行,系统遵循最新的PBOC3.0准则,规划卡内行业应用区结构,和银行合作,加入金融卡的行业应用第2章CPU卡发卡系统研究与分析4.系统扩展性更好。本课题所研究的CPU卡发卡系统的最终目标是构建“城服务器进行分离,在服务器预留第三方行业接口,便于行业应用的加入,这种做2.3CPU卡发卡系统软件架构研究与分析选择适合的系统架构,是开发CPU卡发卡系统的第一步。现在流行的软件体浏览器/服务器)架构。于不相同的两个设备上,使用客户端向服务器提交请求,而后接收服务器传回的结果并显示,服务器的作用是对客户端的请求进行处理,并将处理结果返回至客—请求一—请求一数据库图2.2C/S结构图浏览器即为客户端,浏览器的功能是向Web服务器提交请求。Web服务器的功能是接受客户端的请求后,执行相应SQL语句向数据库服务器提交请求。数据库服第2章CPU卡发卡系统研究与分析一请求一一响应-一写入一一读取一服务器程序网页数据库及其一请求一一响应-一写入一一读取一服务器程序网页C/S与B/S都是当前软件开发中的主流架构,示为C/S与B/S架构的优缺点对比。表2.1C/S与B/S对比架构优点缺点C/S架构认证机制复杂,安全性高;快速的响应有益于大量数据的处理;逻辑处理强大、适用于复杂流程的实现适合局域网使用;维护和升级较为麻烦;用户群体固定B/S架构扩展性较好;使用方便、易于维护和可供大量用户使用较慢的响应速度,安全性低;交互性不好;不适合处理大量数据发卡系统对安全性有着极高的要求,且密钥分散流程和系统业务逻辑都较复杂,并且使用规模相对较少,尤其是顶级密钥卡片,整个系统只有一张。综合以2.4CPU卡发卡系统关键点研究与分析在C/S架构下,为了提升CPU卡发卡系统的应用体验,下面对发卡系统中几构建CPU卡发卡系统过程中,如何定义卡中的文件结构、应用类型及其数据信息,以便更好的实现消费,是发卡系统的一个关键问题。此步骤也称为卡片个人化。卡片个人化前,会根据系统需求设计卡片结构,而后,发卡系统将按照设计装载应用并将个人化数据写入。个人化成功后,将不会再在卡片上建立文件,只可以对文件进行使用和管理[15]。因此,卡片内部结构必须高效、安全、稳定。合理的卡片内部文件结构设计能够提高整个系统的易用性和扩展性。CPU卡存储空间采用目录和文件式管理方式,其内部文件结构的设计非常灵活,且其存储空间较大,合理设计应用分区可以轻松的满足一卡多用的性能。CPU录文件)以及EF(ElementaryFile,基本文件)[10]。下面对其进行具体介绍:的基础。可类比为DOS(DiskOperatingSystem,磁盘操作系统)的根目录,可在MF下创建子目录,并由其目录下的key文件保护,卡片外部认证通过后可读。当IC卡进行复位之后,IC卡会将MF选择成2.DF文件:可以在MF文件下创建DF文件。DF也是卡片目录文件,在DF不管是在逻辑概念上还是物理结构上,它都拥有自己的一套应用数据与安全机制,访问DF文件前需要通过应用(文件)选择指令实现。3.EF文件:可以在MF和DF下创建EF文件。EF是卡片基本文件,用来存放个人化信息及卡片密钥。存放个人化信息的EF文件为工作基本文件,达到相应的安全权限后才可操作该EF文件。存放密钥的EF文件为内部基本文件,一个目录下只可以存在一个密钥文件且必须在MF/DF下第一个被创建,该文件里可存放多个密钥,在达到相应的安全权限后,可在卡片内进行密钥运算,在满足写的权CPU白卡的内部文件结构如下图2.4所示。其中只存在一个MF目录和控制其目录的key文件,发卡系统可根据系统需求擦除卡片上已有的卡片结构,对CPU卡内部文件结构进行重新设计。虽然CPU卡文件空间是逻辑加密卡的数倍,但是仍需合理规划才能得到最佳的使用。为了提高各行业间数据的隔离性,保证数据的安全性,本文采用一个DF文件对应一个行业应用的方式进行卡片结构分区规划,每个区域拥有自己的应用数据及安全机制,如图2.5所示。第2章CPU卡发卡系统研究与分析图2.5CPU卡文件结构设计图保证卡片的安全性是构建发卡系统的关键,而安全性的保证由密钥管理体系完成。密钥管理体系的主要作用是提供密钥卡与用户卡上各种密钥的生成、装载及存储。密钥卡为PSAM(PurchaseSecurityApplicationModule,终端安全控制模块)卡,具有密钥导出功能及计算功能,是密钥的载体。PSAM卡是特殊的CPU卡,它的密钥安全功能更加强大,并且支持多级密钥分散。由于密钥的生成使用梯级生成、下放形式进行,即下级卡片的各种密钥均有上一级卡片分散而得,并以卡片的方式进行传递,所以对卡片密钥种类进行研究与分析,选择合适的密钥加密算法,设计合理的分散机制,构建出高安全性的密钥管理体系是CPU卡发卡1.密钥种类密钥的存在确保了文件的安全性从而保证卡片和交易流程的安全性,只有在通过层层密钥认证满足权限后,才可以操作文件,所以选择合理的密钥种类进行装载是密钥管理体系的首要问题。CPU卡使用16字节密钥,支持多种密钥类型,并可根据实际需要建立多级分区,实现多级分区多级密钥的组合控制,提高了使用上的安全性。CPU白卡的主文件MF下的key中只存在一个卡片主控密钥(又称卡片传输密钥),该密钥是由卡商所灌注的,是CPU卡片的控制密钥,必须存在。在通过CPU卡外部认证后,可修改卡片主控密钥,并在其控制下装载其他密钥,如卡片维护密钥、加密密钥、解密密钥及PIN(PersonalIdentificationNumber,个人识别密码)密钥等。DF区由应用主控密钥进行保护,应用主控密钥是DF区的控制密钥,同样,是必须存在的。DF应用区下的key文件中同样可以根据具体的应用需求装载多种密钥,这些密钥在装载时受到应用主控密钥的控制,比如消费密钥、圈存密钥以及TAC(TransactionAuthorizationCryptogram,交易验证码)密钥等。本课题的建设目标是一个通用的CPU卡发卡系统,所以在密钥选择中尽量具有一般性。根据行业发卡要求,本文在卡片主目录MF区域内存放三种密钥,分别为卡片主控密钥,MAC(Messag和口令认证PIN密钥。MAC、加密密钥为加密密钥类型,用来分散下一级卡片的卡片主控密钥;口令验证PIN密钥用来进行身份的验证。根据卡片的消费流程,在卡片DF区存放四种密钥,分别为应用主控密钥、消费密钥、圈存密钥和TAC密钥。消费密钥控制卡片的消费;圈存密钥控制卡片的充值;TAC密钥控制消费过程中TAC码的计算。各密钥的相关属性及具体生成流程和装载方式将在后文详2.密钥加密算法智能卡的核心是安全,而安全的基础则是算法,使用合适的密钥加密算法是保证密钥安全性和使用高效性的关键。现在密钥管理体系中使用最为广泛的加密算法为DES(DataEncryptionStandard,数据加密标准)算法和3DES(TripleDataEncryptionAlgorithm,三重数据加密算法),随着PBOC3.0标准的发布,密钥加密算法也进行了升级,标准中引入了国密SM4算法。DES算法是一种分组加密算法。其原理是使用64位的密钥,以64位明文为一组进行分组加密。加密时,64位密钥中有效密钥为56位,剩下8位是奇偶校验第2章CPU卡发卡系统研究与分析位[7]。DES算法包括初始置换函数IP、子密钥Ki、获取密钥函数F和末置换函数K(48位子密图2.6DES算法加密过程SM4算法又称为分组密码算法。2012年3月21日,国家密码局正式发布SM4算法,其算法设计简沽,结构有特点,安全高效。数据分组长度为128位,密钥长度也为128位。加密算法和密钥扩展算法均使用非线性迭代运算,总共进行32轮迭代。算法的解密过程和加密过程一致,仅仅是轮密钥不相同,解密过程的轮基本轮函数128位密文输出密钥扩展图2.7SM4算法实现结构图DES算法是公开的,为国际标准加密算法。SM4算法,两种算法同属于分组密钥算法,广泛应用于密钥计算领域。目前PBOC3.0准则中子密钥的分散就是使用的SM4算法,如下表2.2所示为两种算法的性能比表2.2DES算法与SM4算法对比比较类别计算基础二进制二进制算法结构标准逻辑运算,先替代后置换,不包含非线性变换线性变换加解密算法是否相同是是计算轮数16轮(3DES为16轮×3)32轮分组长度64位128位密钥长度64位(3DES为128位)128位有效密钥长度56位(3DES为112位)128位实现难度容易实现容易实现实现平台硬件实现快,软件实现慢软件和硬件实现都快安全性较低较高非线性变换,还增加了计算轮数、分组长度以及有效密钥长度,这些都大大提高到目前为止,SM4算法还没有被攻破。并且SM4算法密钥长度为128位,若使用穷举法对其进行攻击则需要2128次运算,而DES算法密钥长度为56位,只需进行256次运算,这远远小于SM4算法的2128次运算[19]。而2128次运算需要相当多情况下必须使用硬件实现,这在一定程度算法进行密钥加密操作,但是考虑到如今市面上支持SM4算法的读卡器终端与卡片均较少,为了提高系统的兼容性,系统依然提供DES/3DES算法。密钥管理体系的实质就是设计一套合理的密钥分散机制,使密钥的生成、存级到市级层层发卡的形式。最高级卡片拥有最高的权限,进行密钥分散产出子卡密钥分散机制是连接各级卡片的桥梁,也是管理行业应用的钥匙。一般的,密钥体系有一级、二级和三级等。一级密钥体系只需进行一次密钥分散,行业应用方直接控制卡片的生成和管理,虽然密钥的产生方便快捷,但是密钥的安全性难以保证,同时,也不方便进行应用的增加。二级密钥需要进行两次密钥分散,分为省部级和市级(具体行业方),分别管理各级的卡片,方便卡片进行应用的增加,并且也提高了密钥的防攻击性,即使一级被破解也不会导致整个发卡系统的崩溃。三级密钥管理体系需要进行三次密钥的分散,可以继续下放到各个县级,三级密钥管理体系虽然安全性很高,但是实现起来非常困难,成本也较高。因此,综合考虑,本文采用二级密钥体系。从最高部门到行业方层层发卡,共同确保系统的安全性和实用性。系统的安全性也是CPU卡发卡系统的关键。发卡系统拥有大量的卡片相关数据及用户信息,这些数据的保密性要求都非常高,为了避免关键数据的泄露,提高系统的安全性,在开发中加入软件使用权限控制技术和界面使用控制技术,保在C/S架构下,要使用该发卡系统就必须安装发卡系统软件客户端,由于CPU卡发卡系统直接关系用户的切身利益,所以该系统只能给经过行业授权的发卡点使用,为了确保系统软件的安全性,我们对软件使用权限进行控制,现有的控制技术有以下两种方式:“加密狗”和License控制。下面分别进行详细介绍。“加密狗”是一种加密产品,它结合了软件和硬件,可直接插在PC机的并行口上进行使用,“加密狗”外形类似U盘,又称为加密锁,现在发展成一个用来保护软件的行业内通用名词。“加密狗”内有大量的存储空间可供使用,它的加密实现非常简单,可以直接使用其加密软件来加密自己的exe文件。解密的时候必须拥“加密狗”技术安全性较高,但是其硬件成本较大,一般多在业务量较小的系统License(许可证)是现在最常用的一种软件使用权限控制技术,它有多种实现方式,可以基于IP(InternetProtocol,网络间互联协议)地址或者一对公私钥在CPU卡发卡系统中,考虑到系统任务量较多且使用群体较大,相对本文采用License技术来控制软件的安装使用,只有合法的管理者才可以进行系统2.界面使用控制技术客户端存在于个人PC机上,难免会存在一些情况打断卡片的发行操作,对于安全性要求极高的发卡系统来说,不能无止境的等待操作人员继续发卡,长时间的等待容易泄露系统关键信息。所以,为了提高发卡系统的防攻击性,在发卡系统软session为服务器与客户端的会话控制,服务器与客户端的交互机制都由在客户端或服务器设置session的过期时间,当客户端与服务器无交互的时间达到session的过期时间时,就会自动触发监听器,执行对应逻辑事件,比如断开与服务器的连接、退出系统等。session监听器控制适用于B/S架构,其原理简单,易于实现,但是session监听系统是通过客户端与服务器是否有业务来往判断系统是界面定时器控制是指在软件界面加入定时器,监听系统的鼠标和键盘事件,如果超过一定的时间系统无任何事件发生,就完成相应的逻辑操作。界面定时器提高了系统的自我保护能力,开发人员在定时器内设置等待时间与等待结束后的操作,当监听不到鼠标或键盘事件的时间达到设置的等待时间,界面就会自动触发定时器,并完成设置的逻辑操作,比如关闭界面、断开数据库或退出系统等。界面定时器适合在C/S下使用,原理较复杂,但是实现方式较多,安全性较高。并且与服务器的交互并不是特别频繁,所以相对于session监听器更适合监听客户端与服务器之间是否有业务请求的情况,界面定时器控制实时、快速的特点更适2.5本章小结阐述了发卡系统的功能。然后对传统发卡系统存在的不足进行分析,在此基础上进行系统开发。最后,为了提升发卡系统的安全性与易用性,对卡片内部应用结第3章CPU卡发卡系统需求分析与总体设计CPU卡发卡系统的建设目标是开发一个安全、高效的发卡服务平台。本章首最后完成开发方案的分析与选择,包括开发语言、开发平台、数据库、硬件设备需求分析是软件开发的第一步,是将对系统功能、性能等方面的要求归纳为详细的文字内容,成为系统设计与开发工作的依据。根据项目实际使用场景,本本课题所研究的发卡系统主要实现CPU卡的发行和管理、银行卡行业应用的开通以及和行业方合作使卡片可以在各个行业应用领域消费。通过对卡片内部结构的规划和权限控制以及一套健全的密钥管理体系和系统安全机制,确保卡片的为密钥管理、硬件设施管理、业务管理、查询管理、通信管理、银行网点管理及表3.1CPU卡发卡系统功能需求分析功能需求功能描述密钥管理为了确保卡片的安全性,必须建立一套合理的包括密钥种类、加密算法、分散级数。密钥是连接密钥卡和用户卡的桥梁,同时,系统还应提供密钥的销毁功能,便于卡片重新灌注硬件设施管理硬件设施为CPU卡和读卡器,为了保证系统的稳定,需要提供1.卡片的合法性识别2.读卡器的合法性识别表3.1CPU卡发卡系统功能需求分析(续)功能需求功能描述业务管理1.发卡。也可称为卡片的初始化,根据具体行业功能需求规划卡片内部结构后,根据结构建立各级卡片内部文件系统,并装载相关密钥2.开卡。用户持有相关身份证件办理卡片,系统创建用户账户3.充值。更改数据库内用户账户的金额信息,同时操作CPU卡的钱包文件进行金额改写4.洗卡。删除数据库内用户的账户信息,并退还同时将卡片内部文件结构和密钥进行“清空”,这时卡片恢复为最初的“白卡”查询管理通信管理1.软件客户端与通信服务器通信。对于各级卡片的任何操作都需要将数据传送至服务器,便于统一管理2.通信服务器与银行柜面系统通信。金融卡行业应用开通采用银行柜面开通形式,在每开通一张金融卡或在银行柜面进行行业应用充值后,都需及时与发卡系统软件后台进行数据交互,便于服务器对卡片信息的管理银行网点管理为了提升系统的稳定性和适用性,对所合作的银行的所有网点进行统一的登记,并记录每个银行网点所拥有的对应的行业方PSAM子卡属性系统管理1.系统用户身份认证2.账户管理,操作人员账户的添加、修改和删除操作3.系统日志管理除功能需求外,开发时还应满足以下非功能性需求,以保证系统能够长时间1.运行性能。由于系统所包含的密钥卡的特殊性较强,最顶级的密钥卡只有一张,在发行下级卡片时,只能流水作业发行,所以系统在前期不会出现特别高的并发量,因此只需保证50个并发用户数。还有,要达到良好的用户体验,数据2.稳定性。用户卡片初始化建立数量繁多,并且用户办理卡片时间不确定性系统服务器应该保证7×24小时正常使用。第3章CPU卡发卡系统需求分析与总体设计3.安全性。系统存储着大量重要业务信息,为保证信息的安全,需要使用一熟悉使用系统,应设计更加智能化与人性化的软件界面及内容排列。同时对于像5.先进性。系统的开发需要成本和时间,为了更好地使用资源,系统需要采用更先进的开发平台和技术,确保在很长一段周期内系统不会被淘汰。6.扩展性。系统的设计目标是可以融合多个行业应用,所以系统在开发过程设计总体架构如下图3.1所示。密钥体系密钥体系库接口天线银行网点管理通信管理数据处理数据库服务器银行业务平台通信服务器软件客户端用户卡读卡器库接口函数图3.1系统总体架构第3章CPU卡发卡系统需求分析与总体设计硬件模块包括读卡器、天线及IC卡;软件模块包括软件客户端、密钥管理体系及通信服务器。硬件模块和软件模块各自扮演着不同的角色,相互协同运作。下面卡和用户卡,其中PSAM卡内置于读卡器内。读卡器、天线及用户卡三者之间的用户卡用户卡波磁电天线装置读卡器图3.2硬件模块间的关系天线装置内置于读卡器中。密钥在传递过程中,密钥管理体系将密钥写入PSAM卡中,读卡器与非接触式CPU卡(用户卡)交互数据之前,必须进行相互认证,通过后,才可读写卡片。本文主要对CPU卡发卡系统的软件模块进行设计发卡系统的软件模块包括:密钥管理体系、软件客户端、通信服务器、数据库。密钥管理体系是系统的核心部分,确保卡片的安全性;软件客户端提供给操作人员使用,下发指令至读卡器完成对卡片的操作并处理卡片返回的数据,而后将卡片产生的所有数据传送至通信服务器;通信服务器实现对从客户端、银行业务平台、第三方应用所发送数据的集中存储和管理;数据库实现对数据的存储,第3章CPU卡发卡系统需求分析与总体设计3.2.3银行业务平台本系统遵循最新的PBOC3.0准则提供金融卡的小额支付扩展应用功能。PBOC3.0中废除了电子钱包功能,增加了电子现金账户,并加入了银行卡的“闪而后在银行柜面或者自助圈存机将金融主账户的金额转账至电子现金账户。在所有能受理银行卡电子现金账户的小额支付终端上,用户无需输入密码,可以直接刷卡消费,非常的便捷24]。准则在基于银行卡的“闪付”功能上增加了行业小额支付扩展应用,行业应用方可根据行业需求进行个人化设计,其行业数据以扩展应用的方式存储在金融应用区域,以满足公交、自行车、地铁等行业应用,满足PBOC3.0准则的金融卡内部结构如下图3.3所示。金融应用区域金融应用区域特殊行业专用应用区域功能金融卡图3.3金融卡内部结构图使用前,行业合作方需要获得发卡方的应用开通主密钥,在行业的设备或者行业合作方柜台上进行开通,即行业合作方在对应的扩展应用文件上运用RECORD命令在指定的扩展应用文件中增加应用记录,即开通新的行业应用,并将行业应用管理密钥写入记录中,其中行业合作方将读写密钥以PSAM卡方式移综合分析两种方式的合理性和安全性,本课题选择第二种方案,由发卡方(合作银行)进行行业应用个人化。卡片由银行柜面一次发卡,先开通银行金融应用,再调用多行业一卡通前置系统开通行业应用,在开通过程b)银行柜面终端创建文件结构并写入应用开c)开通行业应用时,使用行业方提供的PSAM卡写入应用管理密钥和行业应c)对于校验通过的客户信息,银行系统和发卡系统同时记录。(3)卡片行业应用个人化操作a)银行柜面终端根据发卡系统返回的写卡指令进行个人化写卡操作;结合上文功能需求分析、软件架构及总体设计,本节对开发过程中所涉及到的开发语言、数据库、硬件设备及库接口调用方式进行分析与选择,保证系统开Classes,微软基础类库)编程和Java的GUI(GraphicalUserInterface,图形用户界面)编程。在很多地方显得累赘与臃肿。MFC编程技术是主流的PC客户端开发件的丰富性和布局的灵活性让程序员能够轻松的开发出优秀的应用程序,但是MFC功能复杂,很多情况下需要用到很多宏,使代码的阅读变得困难。并且消息映射的现实机制非常笨拙,没有采用继承,而是采用落后的表驱动,对底层库的MFC却没被使用,而相反的,为了迎合MFC,编译器的很多地方都按标准执行。Java语言由Sun公司提出,是一门可跨操作系统,拥有高移植性的面向对象编程语言。使用Java语言最大的特点和优势在于Java所编辑程序的多平台运行能力,可以说是通用的语言之一。Java语言是对C++语言的升级,摒弃了C++语言中不合理的、容易产生歧义的内容,加上自身优秀的内存管理机制和垃圾回收机制,使得近年来Java语言备受重视,成为大多数的图形化界面开发类,其中包含了大量的控件,比如文本框、按钮和标签等,使优秀的性能,适合系统的开发。因此本文选用Java语言、GUI编程技术进行系统发卡系统的数据保管依靠数据库,数据库负责储存和维护数据,它的性能和系统的稳定性还有效率挂钩,所以根据需求选择适合的数据库非常重要。如今关系型数据库是使用最多的数据库,它对网状型和层次型数据库在抽象级别和信息表3.2常用数据库比较分类特点具有图形化界面,功能强大,使用简单,管理高效;扩展性较只能在Windows平台下使用,容量一般,适合中小型系统开发不具有图形化界面,但是可安装图形化插件,功能强大,操作较为复杂,不易上手;扩展性较好,适用多种系统,安全性极高,容量较大,适合大型系统开发,使用成本较高具有图形化界面,操作简单,执行速度较快,安全性较高;扩展性较好,适用多种系统,安装简单,管理便捷,容量较小,适合中小型系统开发CPU卡发卡系统属于中小型系统,且数据结构较为简单,从表中可看出差及成本较高,所以系统使用MySQL数据现在市面上存在的均为国家标准CPU卡片,大部分卡片芯片只支持国际通用算法性能优越,软硬件都易于实现且安全性都很高,所以使用软件实现SM4算法完全可行。为了节约系统开发成本,并且提高系统对不支持SM4算法芯片的卡片算法使用硬件(卡内芯片)实现。所以用户卡使用不具有密钥导出功能的7k内存的非接触式RFID卡片及符合PBOC3.0标准的银行卡。考虑到系统开发需要建立二级密钥体系,所以PSAM卡选用具有密钥导出功能的2G内存的接触式RFID卡读卡器设备,通过对其驱动程序DLL的操作控制CPU卡片。第3章CPU卡发卡系统需求分析与总体设计现在市面上的读卡器有许多种类型,根据系统的功能需求,CPU卡发卡系统读卡器。ZR1800发卡器是一台双界面读写器,内嵌3个PSAM卡小卡座,侧面集成2个PSAM卡大卡槽,支持ISO7816-1/2/3/4协议。此读卡器支持3类接口,分别为支持无驱动程序USB(UniversalSerialBus,通用串行总线)接口、USB转串户来说非常的方便。使用该发卡器,发卡、写卡、消费、充值、初始化、密钥管卡的交易流程。如下图3.4所示,为系统所选用的读卡器。图3.4ZR1800读卡器在CPU卡发卡系统中,读卡器为软硬件通信的桥梁,软件客户端必须通过读LinkLibrary,动态链接库)完成对卡片的操作。Java语言调用库接口DLL常用有JNI(JavaNativeInterface,Java原生接口),JNA(JavaNativeAccess,Java工具类),JNative(JavaNative,Java本地方法类)三种方法,其使用难度和开发体验JNI最繁琐,先用Java书写类中的函数并于本地声明,而后调用javac指令编译这个类,编译成功后得到一个头文件,此头文件的扩展名为h,然后用C/C++第3章CPU卡发卡系统需求分析与总体设计语言对本地方法进行实现,最后将此文件生成DLL。JNA较容易实现,设置一个Java接口,而后根据DLL中的函数在这个接口里书写方法,其中方法名称、方法参数、参数类型都要和DLL中的函数一致。大部分函数可以使用该方法被重新“定义”,但是一些函数无法实现该操作,因为Java中的数据类型和C中的数据类型存在不一致性,比如Java中没有指针。JNative功能最全面,其封装了JNI,虽然也需要对DLL中函数的重新“定义”,但是它的实现方法不同于JNA,它并不需要将方法参数及参数类型进行一一转换,而是直接声明即可。JNative技术不需要对DLL进行编译,使用方便,执行速度快。综合上述分析,相比与JNI技术和JNA技术,JNative技术开发难度适中,综合功能强大,满足系统需求,因此本文选用JNative技术作为系统软件模块与硬件模块交互的方式[31]。如下图3.5所示,为发卡系1.将RFID驱动程序DLL和JNativeAPI加载进项目内库。2.使用Java语言重新封装库接口函数,重写库接口函数分为以下五个步骤:(1)使用JNative对象加载RFID驱动程序DLL名称和函数名;(5)使用getRetValAsInt()方法获取卡片返回3.根据函数的不同功能进行调用,完成业务逻辑,实现对CPU卡的操作。软件客户端软件客户端界面C动态链接库DLL通信服务器网络图3.5读卡器JNative实现原理图本章对CPU卡发卡系统进行需求分析与总体设计。首先分析系统的功能性需求和非功能性需求,然后对系统整体架构进行设计,阐述了软件模块和硬件模块的构成及功能,并详细介绍了银行卡行业应用的加入规范。最后,分析选择系统的开发方案,包括Java语言及GUI编程技术、MySQL数据库、ZR1800读卡器以第4章密钥管理体系详细设计与实现密钥管理体系是发卡系统的核心部分,只有通过了密钥认证,才能对CPU卡进行操作,设计合理的密钥管理体系是提高卡片安全性的关键。本章根据需求分析及总体方案,对CPU卡发卡系统的密钥管理体系进行详细设计与实现,包括密钥的生成、装载和认证。前文提到,密钥是以硬件形式存在于PSAM卡内的,层层分散进行多级控制,本节将对CPU卡发卡系统中所有类型的卡片进行分类介绍并根据系统功能需求对其内部结构进行详细规划。1.卡片类型密钥管理体系中存在三种类型的卡片,分别为PSAM母卡、PSAM子卡和非接触式CPU卡,下面对每种卡片进行介绍。PSAM母卡内置于读卡器中,掌控PSAM子卡和非接触式CPU卡的安全,可出很多张子卡,该卡在整个发卡系统中有且只有一张,由高层领导保管。子卡分为两种类型,一种为发卡系统PSAM子卡,作用是分散出用户卡(非接触式CPU卡);一种为消费终端PSAM子卡,存放在终端消费器具,作用是在卡片消费时校验卡片的合法性。一张PSAM子卡可以分散出很多张用户卡,该卡由行业应用方使用。非接触式CPU卡为用户卡,供用户消费时使用,由PSAM子卡分散而得。卡第4章密钥管理体系详细设计与实现最高部门(省级部门)行业应用(市级部门)最高部门(省级部门)行业应用(市级部门)中主要存放行业相关信息、用户个人信息及密钥。该系统中用户卡分为两种,分PSAMPSAM卡母卡PSAM卡子卡PSAM卡子卡非接触式CPU卡PSAM卡子卡非接触式CPU卡非接触式CPU卡用户图4.1卡片关系图为一个主文件(MF)和一个密钥文件(MF下的Key文件),卡片主控密钥已经存在于Key文件中。在程序设计中,首先要对卡片进行外部认证,之后在CPU卡中建立特定的卡结构并写入密钥和数据。卡片使用主控密钥(又称传输密钥)来进行外部认证,通过后,对卡片上现有的文件结构进行擦除,而后根据应用需求,重新建立文件结构。目前很多发卡程序在设计过程中,没有考虑到要做擦除已有卡片结构的操作。完成外部认证后,就可进行卡片主控密钥的改写及其他密钥的装载,在装载过程中,经常会出现由于原有主密钥文件的空间大小不够,导致密统功能需求规划卡内结构并进行重新创建是密钥管理体系的关键之处。下面将对卡片内部文件结构和密钥类型进行规划,使得在满足系统功能需求的条件下最大化的节省卡片内部空间,方便卡片进行扩展。前文提到,为了提高第4章密钥管理体系详细设计与实现由最高部门管理,其内部结构如下图4.2所示。KEYDF(应用区)图4.2PSAM母卡内部结构MF表示主文件。DF表示应用区文件。MF片主控密钥及其他卡片控制密钥。DF下的Key文件为应用区密钥文件,装载应用发卡信息文件,存放行业应用信息。母卡文件详细属性如下表4.1所示。表4.1PSAM母卡文件结构文件名称文件标识符文件大小建立权限读写权限Key文件 Key文件 建立权限可为空。PSAM卡存在于读卡器中,读卡器与PSAM卡通信之前,必须进行密钥认证,认证通过了,才可进行后续操作。母卡Key文件结构如下表4.2表4.2母卡Key文件结构密钥名称密钥标识密钥长度获取方式更改权限后续状态卡片主控密钥MAC、加密密钥第4章密钥管理体系详细设计与实现表4.2母卡Key文件结构(续)密钥名称密钥标识密钥长度获取方式更改权限后续状态口令验证PIN密钥应用主控密钥消费密钥圈存密钥TAC密钥集成电路(IC)卡规范》所规定,应用区的密钥标识为行业应用方自行确定,下文所提到的卡片中的密钥标识确定方式均相同。获取方式中,0X00表示该密钥是改,0X00则表示不能更改。后续状态中,0X00表示2.PSAM卡子卡文件结构PSAM子卡的主要功能是分散非接触式CPU卡(用户卡),子卡由母卡分散而KEY卡片公共信息文件终端信息文件DF(应用区)KEY发卡信息文件图4.3PSAM子卡内部结构DF区的EF发卡信息文件,用来存放行业第4章密钥管理体系详细设计与实现表4.3PSAM子卡文件结构文件名称文件标识符文件大小建立权限读写权限Key文件 Key文件发行下一级卡片;文件标识符为0X0C时,表示该子卡为消费终端子卡,存放于消费终端,用于在用户消费时校验卡片的合法性。子卡Key文件结构如下表4.4所示。表4.4子卡Key文件结构密钥名称密钥标识密钥长度获取方式更改权限后续状态卡片主控密钥MAC、加密密钥口令验证PIN密钥应用主控密钥消费密钥圈存密钥TAC密钥加密密钥,口令验证PIN密钥存放在MF下的Key文件中,其余为应用区的密钥。如果卡片的MF文件标识符为0XOC,说明此卡片为消费终端子卡,将不具有口令验证PIN密钥。另外,所有PSAM子卡的MAC、加密密钥都相同。3.非接触式CPU卡文件结构本系统中的用户卡分为两种,分别为普通CPU卡(简称CPU卡,以下同)和CPU卡为用户卡,主要供用户消费时使用,CPU卡由PSAM子卡分散而来,发行成功后由用户消费使用,其内部结构如下图4.4所示。DH发卡方应用图4.4CPU卡内部结构第4章密钥管理体系详细设计与实现人基本信息文件、交易记录文件、钱包文件、循环记录文件和充值记录文件。其交易记录文件存放卡片交易信息,钱包文件存放金额,循环记录文件内存放以流水号记录的交易信息,只记录最近十条,超过十条后从第一条开始进行覆盖,充表4.5CPU卡文件结构文件名称文件标识符文件大小建立权限读写权限 表4.6CPU卡Key文件结构密钥名称密钥标识密钥长度获取方式更改权限后续状态卡片主控密钥消费密钥圈存密钥TAC密钥PSAM子卡分散而来,其中卡片主控密钥存放在MF下的Key文件中,其余为应支持非接触式小额支付的卡片需要行业方提供卡内扩展应用区行业应用记录数和具体的文件结构,而后由发卡方灌注并预设行业开通密钥。其内部结构如下图4.5第4章密钥管理体系详细设计与实现用)银行卡的内部结构由MF主目录、密钥文件、电子现金账户、DF扩展应用区卡相同。银行卡文件详细属性如下表4.7所示。表4.7银行卡文件结构文件名称文件标识符文件大小建立权限读写权限电子现金— 银行卡Key文件结构如下表4.8所示。表4.8银行卡Key文件的结构密钥名称密钥标识密钥长度获取方式更改权限后续状态应用开通密钥应用管理密钥MF下的Key文件中,应用管理密钥存放在DF区。银行卡内扩展应用区的结构由银行柜面创建,并预置应用开通密钥,而后在应用开通密钥的控制下写入应用管第4章密钥管理体系详细设计与实现理密钥,应用管理密钥由合作方提供的PSAM子卡的密钥分散而来,扩展应用区4.2密钥分析与算法实现根据卡片内部结构规划,本节将对四种卡片内所有密钥的作用和装载方式进行介绍。并对密钥层层分散所涉及到的密钥加密算法进行分析和选择,以保证密该密钥管理体系中总共存在20种密钥,每种密钥存在于各级卡片上发挥不同的作用,密钥之间协同运作,共同保证卡片的安全,每种密钥的具体属性见下表表4.9密钥的类型及其作用卡片类型密钥类型序号代码作用装载方式母卡卡片主控密钥1整个卡片的安全控制通过卡片外部认证后以明MAC、加密密钥2PSAM子卡时,分散出在卡片主控密钥的控制下由安全报文加密保护的口令验证PIN密钥3对卡片持有者的合法在卡片主控密钥的控制下由安全报文加密保护的应用主控密钥4用区文件创建和密钥装在卡片主控密钥控制下消费密钥5PSAM子卡时,分散出卡片主控密钥对试点城圈存密钥6PSAM子卡时,分散出在应用主控密钥的控制TAC密钥7PSAM子卡时,分散出PSAM子卡TAC密钥。在应用主控密钥的控制第4章密钥管理体系详细设计与实现表4.9密钥的类型及其作用(续)卡片类型密钥类型序号代码作用装载方式子卡卡片主控密钥8整个卡片的安全控制密通过卡片外部认证后MAC、加密密钥9在PSAM子卡发出用户卡时,分散出CPU卡主控密钥、银行卡应用管理密在卡片主控密钥的控制下由安全报文加密保口令验证PIN密钥对卡片持有者的合法性在卡片主控密钥的控制下由安全报文加密保应用主控密钥用区文件创建和密钥装载在卡片主控密钥控制消费密钥在PSAM子卡发出CPU卡时,分散出CPU卡消费在应用主控密钥的控圈存密钥在PSAM子卡发出CPU卡时,分散出CPU卡圈存在应用主控密钥的控TAC密钥在PSAM子卡发出CPU卡时,分散出PSAM子卡在应用主控密钥的控CPU卡卡片主控密钥整个卡片的安全控制密通过卡片外部认证后消费密钥在CPU卡消费时进行校在卡片主控密钥的控制下写入.圈存密钥在CPU卡进行圈存时进在卡片主控密钥的控TAC密钥在CPU卡消费时进行TAC码的计算,在卡片主控密钥的控银行卡应用开通密钥整个扩展应用MF区域的由银行预置,并提供应用管理密钥在应用开通密钥的控密钥加密算法是密钥管理体系的关键,直接决定卡片的安全性。前文提到,由于现在市面上支持SM4算法的CPU卡芯片较少,大多只支持DES/3DES算法。所以为了提高系统的适用性,本文使用软件实现SM4算法,DES/3DES算法依然使用硬件(卡内芯片)实现。操作人员进行发卡操作时,可通过配置文件进行算法选择。下面对SM4算法的实现过程进行介绍。第4章密钥管理体系详细设计与实现其中存在两个参数mode和sk,整型mode,用来表示是加密还是解密;长整型数第4章密钥管理体系详细设计与实现算法的解密密钥sm4_setkey_dec(),过程为上述设置加密密钥过程的逆序。第四个函数为sm4_crypt_ecb(),此函数的作用是对明文进行加密或对密文进行解密,参数为sm4_contextctx和byte[]text,其中根据ctx中mode的值确定是加密运算还是解密运算,在实现中,本文设置数值1为加密,0为解密,text为对应的明文或密文。SM4主类将以上四个接口函数及SM4中涉及的常量数据和移位变化进行封装,为SM4的运行类做铺垫。第三个类SM4Utilsjava为SM4工具类,此类为运行类,这个类里包括二个函数及一些私有全局变量,这两个函数为对主类中的接口函数进行调用并根据SM4加/解密流程封装成加/解密函数,私有全局变量为密钥。第一个函数为加密函数encryptData_ECB(),参数为明文,函数内部依次调用加密密钥设置函数与sm4_crypt_ecb()函数。第二个函数为解密函数decryptData_ECB(),参数为密文,函数内部依次调用解密密钥设置函数与sm4_crypt_ecb()函数。在系统开发过程中,在代码的任何地方,如果需要使用SM4算法,只需实例化一个SM4Utils类的对象,传进原始密钥和明文,而后调用encryptData_ECB()加密函数,X第1圈第2圈X₃₁X₃₂,第32圈R反序列变化Y图4.6SM4算法实现框图第4章密钥管理体系详细设计与实现密钥管理体系中,下级卡片的密钥均由对应的上级卡片的密钥分散而来。密钥分散算法是以密钥加密为基础的,是指使用MK(MasterKey,主密钥)对分散因子进行分散,得到DK(DynamicKey,子密钥)的过程34]。其中,主密钥MK长度为16,分散因子长度为8,子密钥DK长度为16。子密钥在生成中分为左右3.对输入数据使用主密钥MK进行SM4/DES/31.8字节分散因子按位求反后为输入数据;3.对输入数据使用主密钥MK进行SM4/DES/3DES运算。密钥分散算法的实现过程如下图4.7所示。分散国子(8字节)按位分散国子(8字节)按位求反(16字节)(8字节)(8字节)分散因子(8字节)图4.7密钥分散算法分散因子即为下级卡片的序列号,调用Cardlnfo()方法获取卡片序列号后,以对应的母卡密钥为加密密钥,进行SM4/DES/3DES计算,得到DK的左半部分,而后对卡号按位求反,再次进行SM4/DES/3DES运算,得到DK的右半部分。主密钥通过密钥分散算法得到子密钥,如果子密钥丢失,可以通过该算法从主密钥第4章密钥管理体系详细设计与实现4.3密钥的生成与装载本节对各级卡片密钥的生成流程进行设计与实现。每种密钥的生成与装载均返回值判断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论