




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NFC系统与羊城通系统接口相关部分的实现设计与羊城通接口相关部分包括APPLET下载(读卡器和空中)、密钥下载(读卡器和空中)和在线充值三个主要部分。最小系统主要实现读卡器内部环境下的APPLET下载和密钥下载,以及在线充值部分;空中(OTA)方式的APPLET和密钥下载方案,计划确认后在最小系统实施过程中实现。1羊城通发行系统改造及内部环境下的APPLET及密钥下载1.1发行系统改造方案建议改造原来的发行系统,并提取及缓存读取余额、读取交易记录、刷卡消费及充值所需的各扇区密钥,包括第0、1、2、4、12、13、14、15扇区的KEYA和KEYB。并提取用于交易TAC认证的密钥。密钥提取出来后在羊城通发行环境下做缓存。密钥提取成功并将NFC手机发行为羊城通卡后,利用下面的APPLET和密钥通过读卡器方式下载至NFC手机的SMARTMX芯片中。产生手机个人卡(类PK)的非对称密钥对,并安全存储用于下载给NFC手机中用于建立安全通道和认证的APPLET。1.2通过读写器下载APPLET方案下载环境是在发行内部环境中,利用发行机器及连接的读写器进行,也可单独再接读写器,只要读写器符合14443-4协议规范。通过连接发行服务器的读写器来下载APPLET和密钥,直接写入SMARTMX中,写入过程中并不缓存相关数据。写入后只可以通过APPLET调用接口来调用该APPLET,而无法读取APPLET内部的内容。1.2.1下装密钥产生及下载首先产生下装密钥KEY,并在羊城通发行系统中保存,同时用产生的KEY来改写CARDMANAGE中的第2条密钥,使得第2条密钥内容在羊城通环境下产生同时写入CARDMANAGE中的不可读区域,用于APPLET下装时建立安全通道。1.2.2安全通道建立及APPLET下载采用发行服务器加非接触式读写器来直接向SMARTMX卡中下载,按照GP规范中的高安全认证方式进行安全通道的建立,并利用该安全通道下载APPLET,算法核心为3DES算法,采取密文认证并进行APPLET密文+MAC方式下装。APPLET下装至SMARTMX后无法读取APPLET内容,更无法读取APPLET的内部代码,只可以利用APPLET的应用标识并通过密码认证来选择调用APPLET。1.3内部环境下的KEYA、KEYB密钥下载密钥的下装过程中的安全通道是预置在对应APPLET内的,如充值APPLET,利用APPLET内部的密钥加密及存储机制来建立密钥下载的安全通道,并进行密钥下载。理论上密钥下载的安全通道取决于用户,可由用户指定安全策略并在相应的APPLET内实现,包括PKI方式,以及3des加密认证方式等。基于该过程是发行的内部环境下进行,通过读写器直接将密钥传递给APPLET,建议采用3DES加密方式,以后的OTA方式下载密钥采取PKI等更高的安全加密及认证方式。第一步产生加密基础密钥,该密钥在羊城通发行系统保存(也可产生下载后销毁不保存)并预制到APPLET内。接着产生随机数,并用基础密钥加密随机数作为加密密钥。第二步利用上一步产生的加密密钥来加密要下载的KEYA或KEYB。第三步通过读写器非接触读卡方式,直接调用SMARTMX内相应的APPLET,并将随机数和加密后的KEYA、KEYB密文以参数形式传递给APPLET,APPLET收到随机数后通过预制的密钥来产生解密密钥,并解密加密后的密钥KEYA、KEYB,解密后付值给APPLET内的密钥变量。APPLET工作时再从相应的变量获取密钥内容。注:密钥在卡内的存储不同于CPU卡,不是物理的指定存到哪里,而相当于APPLET的一个变量的值,只要APPLET没有预留将密钥传递出来的接口,密钥就无法读取。2羊城通在线充值系统改造及NFC手机在线充值在线充值按照现有羊城通在线充值方式进行,区别主要在于充值过程不用下载充值相关密钥,充值密钥在发行过程中已经安全存储在SMARTMX卡中的充值应用APPLET内,充值连接过程主要是做相应认证,并做相应系统记录。如上图所示,步骤如下:第一步,操作MIDLET,输入金额,并将充值金额传递给充值APPLET;第二步,充值APPLET读取卡片信息,并产生随机数作为会话密钥,来加密卡片信息及充值信息包,用NFC后台公钥加密随机数作为加密密钥,并用卡片私钥进行签名,将签名信息、卡片及充值数据加密信息、加密密钥打包返回;第三步,MIDLET接收返回信息,并与NFC后台连接发给后台;第四步,NFC后台接收数据后,先用卡片公钥进行签名认证,然后利用后台私钥解密加密密钥获取会话密钥,再利用会话密钥解密数据包,获取卡片信息和充值申请,判断卡片帐户状态及帐户余额;第五步,如帐户余额不足或帐户状态不允许充值,则将认证结果返回给充值MIDLET,MIDLET进行相应显示;如帐户允许充值且有余额,则产生随机数作为会话密钥,来加密卡片信息及充值信息包,用羊城通后台公钥加密随机数作为加密密钥,并用NFC后台私钥进行签名,将签名信息、卡片及充值数据加密信息、加密密钥打包发给羊城通后台系统;第六步,羊城通后台接收数据后,先用NFC后台公钥进行签名认证,然后利用羊城通系统私钥解密加密密钥获取会话密钥,再利用会话密钥解密数据包,获取卡片信息和充值申请,判断卡片帐户状态,如允许充值则将羊城通的签名和结果返回给NFC后台系统;第七步,NFC后台接收到羊城通后台数据包,利用羊城通公钥进行签名认证,并用NFC后台私钥进行签名,连同认证结果发送给充值MIDLET;第八步,充值MIDLET接收数据包并把数据包传递给充值APPLET;第九步,充值APPLET用NFC后台公钥进行签名认证,如允许充值则进行充值操作,并将充值操作结果信息及卡片签名返回给充值MIDLET;第十步,充值MIDLET进行结果判断并进行相应显示,同时将签名数据包发送给NFC后台系统;第十一步,NFC后台系统用卡片公钥进行签名认证,并进行相应记录,同时将充值结果信息结合NFC后台系统签名发送给羊城通系统;第十二步,羊城通系统接收数据包,并用NFC后台公钥进行签名认证,认证通过后记录充值结果信息。3OTA方式的APPLET及密钥下载3.1 APPLET的OTA下载建立各应用下载安全通道APPLET,如羊城通预实现空中下载,先实现一个用于建立APPLET下载的安全通道APPLET,在此APPLET内实现与羊城通的认证(如PKI认证)和加解密,MIDLET将解密后的APPLET密文传递给CARDMANAGE,并采取密文方式直接下载进SMARTMX卡中,SMARTMX卡用预制在CARDMANAGE中的下装密钥进行解密并装载。安全通道APPLET包含羊城通后台系统的公钥及卡片私钥;用于通信过程的签名认证。基本处理过程如下:如图所示,APPLET的OTA下载流程如下:第一步,操作MIDLET调用安全通道APPLET,将要下载的APPLET信息传递给安全通道APPLET;第二步,安全通道APPLET获取卡片信息,并产生随机数作为会话密钥,利用会话密钥加密卡片信息和应用下载申请信息,利用卡片私钥进行签名,并利用羊城通公钥加密会话密钥获得加密密钥,并把签名、加密后的卡片和申请信息及加密密钥返回给MIDLET;第三步,MIDLET将签名、加密后的卡片和申请信息及加密密钥发送给羊城通系统;第四步,羊城通系统接收数据包,并用卡公钥信息认证签名,认证通过后利用羊城通私钥解密加密密钥获得会话密钥,再用会话密钥解密数据包,获得卡片信息及下载应用申请;第五步,羊城通系统产生随机数,用随机数作为会话密钥加密APPLET获得APPLET密文数据包,利用羊城通私钥进行签名,并用卡片公钥进行会话密钥加密获得加密密钥;并将APPLET密文、签名、加密密钥发送给MIDLET;第六步,MIDLET接收数据包,并将APPLET密文、签名、加密密钥传递给安全通道APPLET;第七步,安全通道APPLET利用羊城通公钥认证签名,利用卡片私钥解密加密密钥获得会话密钥,再利用会话密钥解密获得APPLET的密文,再利用下装KEY加密APPLET及相关下装认证数据,返回给MIDLET;第八步,MIDLET将安全通道APPLET产生的认证数据传递给CARDMANAGE,认证通过后,将返回的APPLET密文给CARDMANAGE,按照下装流程将密文APPLET下装到SMARTMX中,最后将下装结果返回给MIDLET;第九步,MIDLET解析返回结果并进行显示,同时将下载结果发送给羊城通后台。注:MIDLET只是调用APPLET以及与羊城通通信,所有的加解密和认证过程都是在APPLET内部完成,很好地保证下载过程的安全。3.2 密钥的OTA下载前边描述过,密钥的下载是与相应的APPLET接口,安全机制在相对应的APPLET内进行。密钥的OTA下载也近似APPLET的空中下载过程,不同之处主要体现在第四步和第八步,可以在第四步和第八步选择更安全的加密方式。具体如下:第四步,羊城通系统在加密KEYA,KEYB数据时可采用PKI方式加密,如利用羊城通的私钥进行加密,将加密后的密文发送出来;第八步,MIDLET将从安全通道APPLET获取的KEYA或KEYB经过羊城通私钥加密的密文传递给对应的APPLET,APPLET收到密文后在APPLET内利用羊城通公钥和卡的私钥进行认证和解密,解密后的密钥传递给APPLET内相应变量存贮,并不留密钥传递出来的接口,使得密钥无法读出,保证密钥的绝对安全。附件:APPLET下装过程实例具体步骤如下:应用下载程序Java Card0、发送复位信号1、收到复位应答(ATR)2、发送SELECT,选择应用Card Manage3、收到SELECT应答4、发送INITIALIZE UPDATE,初始化卡和主机间会话会话安全通道5、收到INITIALIZE UPDATE应答6、发送EXTERNAL AUTHENTICATE,认证主机身份7、收到EXTERNAL AUTHENTICATE应答12、发送INSTALL,请求装载应用文件13、收到INSTALL应答14、发送LOAD,上传第一块应用数据16、发送LOAD,上传第N块应用数据15、收到LOAD应答17、收到LOAD应答18、发送INSTALL,请求安装应用19、收到INSTALL应答20、发送GET STATUS,检查应用安装是否成功21、收到GET STATUS应答APPLET下载实例说明如下:1应答 卡片的ATR(复位应答)使用的通信协议:异步半双工传输协议,即:T=1标识数据说明TS3B3B:正向;3F:反向T0E91、 TB1-TD1存在2、 历史字节长度=9TB100不使用VPPTC10000-FF:需要额外保护时间长度TD181TA2-TC2不存在,TD2 存在;使用T=1协议TD231TA3-TB3 存在,TC3和TD3不存在,使用T=1协议TA3FE10-FE:表示IC卡信息域大小的初始值且具有16-254Byte的IFSITB345BWI=0-4;CWI=0-5TCK4A校验字符历史字节43 4F 50 34 31 56 32 32 A7JCOP41V222发送 SELECT 命令标识数据说明(参见GP规范9.9.2)CLA00按照ISO/IEC7816-4命令和响应的结构和编码INSA4SELECT命令,选择应用P104通过名字选择P200第一次或仅执行一次LC08Data的长度DataA0 00 00 00 03 00 00 00应用AIDLe00取实际应答APDU长度3应答 SELECT应答标识数据说明(参见GP规范9.9.3)Data Field6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF所选应用的描述信息SW1SW290 00成功4发送 INITIALIZE UPDATE 命令标识数据说明(参见GP规范D.4.1.5)CLA80按ISO/IEC7816-4命令和响应的结构INS50初始化会话安全通道P100用the Security Domain选择的第一个可用KeyP200P1P2说明的KeySet,用于初始化the Secure Channel SessionLC08Data长度Data00 21 8B D2 B6 71 18 AA8个字节随机数,由off-card实体选择,对这个Session是唯一的。Le00取应答数据实际长度5应答 INITIALIZE UPDATE应答标识数据说明(参见GP规范D.4.1.6)Data Field00 00 00 00 00 00 00 00 00 00 (Key diversification data)FF (Key Version Number)02(Secure Channel Protocol identifier)00 00 93 73 3A B8 2C 0F(Card challenge)B5 76 4F CD 86 55 33 92(Card cryptogram)Key diversification data(10byte)+Key information(2byte)+Card challenge(8byte)+Card cryptogram(8byte)CardCryptogram产生见本文第5节SW1SW290 0090 00成功;6A 88 找不到参考数据6发送 EXTERNAL AUTHENTICATE命令标识数据说明(参见GP规范D.4.2)CLA84专有的SM格式INS821、 主机身份认证2、 确定后续命令的安全级别P100安全级别:不期望安全信息P200设为00LC10Data长度Data15 C0 8D EF F2 84 D6 D7 86 CB 2D 8E 37 A8 E9 F71、host cryptogram2、the APDU command MAC.host cryptogram和MAC生成参见第5节Le无7应答 EXTERNAL AUTHENTICATE应答标识数据说明(参见GP规范参见GP规范D.4.2)Data Field无无SW1SW290 0090 00 成功;63 00 主机密码认证失败8发送 DELETE命令:删除指定AID应用标识数据说明(参见GP规范9.2.2)CLA80按ISO/IEC7816-4命令和响应的结构INSE4删除指令P100设为“00”P20000删除对象;80删除对象和相关对象LC0EData长度Data4F 0C 59 43 54 43 61 72 64 57 72 69 74 65TLV格式要删除数据的名称(Tag有:4F表示AID、D0表示Delete a Key Identifier、D2表示Delete a Key Version Number)Le00取应答数据实际长度9应答 DELETE应答标识数据说明(参见GP规范9.2.3)Data Field无删除确认信息长度(1Byte)+删除确认信息(0-256Byte,参见GP规范9.1.7)SW1SW26A 886581:内存错误;6A88:数据不存在;6A82:应用10发送 DELETE命令:删除指定AID应用包标识数据说明(参见GP规范9.2.2)CLA80按ISO/IEC7816-4命令和响应的结构INSE4删除指令P100设为“00”P20000删除对象;80删除对象和相关对象LC09Data长度Data4F 07 59 43 54 43 61 72 64TLV格式要删除数据的名称(Tag有:4F表示AID、D0表示Delete a Key Identifier、D2表示Delete a Key Version Number)Le0011应答 DELETE应答标识数据说明(参见GP规范9.2.3)Data Field无删除确认信息长度(1Byte)+删除确认信息(0-256Byte,参见GP规范9.1.7)SW1SW26A 886581:内存错误;6A88:数据不存在;6A82:应用12发送 INSTALL命令for load标识数据说明(参见GP规范9.5.2)CLA80按ISO/IEC7816-4命令和响应的结构INSE6为卡内容管理执行的各种步骤P10202:装载;20:个人化;10:extradition;08/0C:make selectable;04/0C:安装;其它:保留P200设置为“00”LC14Data长度Data07 59 43 54 43 61 72 64 08 A0 00 00 00 03 00 00 00 00 00 00LV格式数据存在字节数名称Mandatory1装载文件AID长度Mandatory5-16装载文件AIDMandatory1Security Domain AID长度Conditional5-16Security Domain AIDMandatory1装载文件数据块Hash表长度Conditional0-n装载文件数据块Hash表Mandatory1装载参数域长度Conditional0-n装载参数域Mandatory1装载标记长度Conditional0-n装载标记Le0013应答 INSTALL应答标识数据说明(参见GP规范9.5.3)Data Field00安装确认长度(1Byte)+确认(0-nByte)SW1SW290006581:存储器错误;6A80:数据域参数错误;6A84:内存不够;6A88:未发现指定数据14发送 LOAD命令:上传第一块数据标识数据说明(参见GP规范9.6.2)CLA80INSE8装载指定文件数据,定义了上传数据的格式,文件分成小块,分多条LOAD指令将装载文件上传到卡上。P100b8=0:有多块;b8=1:是最后一块(b8表示一个字节的最高位)P200表示块号LCFFData 长度DataC4 82 01 49 01 00 20 DE CA FF ED 02 02 04 00 01 07 59 43 54 43 61 72 64 0E 63 6F 6D 2F 6E 65 77 63 6F 6D 2F 6E 66 63 02 00 21 00 20 00 21 00 10 00 16 00 26 00 0E 00 78 00 0A 00 11 00 00 00 61 02 6E 00 00 00 00 00 00 02 01 00 04 00 16 02 02 01 07 A0 00 00 00 62 01 01 00 02 08 A0 00 00 01 67 41 30 02 03 00 10 01 0C 59 43 54 43 61 72 64 57 72 69 74 65 00 08 06 00 0E 00 00 00 80 03 00 FF 00 07 01 00 00 00 1C 07 00 78 00 01 10 18 8C 00 06 7A 05 30 8F 00 02 3D 8C 00 01 18 1D 04 41 18 1D 25 8B 00 00 7A 02 21 18 8B 00 08 60 03 7A 19 8B 00 05 2D 1A 03 25 10 D0 6A 08 11 6E 00 8D 00 07 1A 04 25 73 00 10 FF A4 FF A4 00 09 18 19 8C 00 04 70 08 11 6D 00 8D 00 07 7A 04 23 19 8B 00 05 2E 1B 05 25 29 04 08 1B 08 16 04 8D 00 03 31 1E 60 0A 11 6F 00 8D 00 07 70 08 11 90 00要装载文件内容,格式如下表所示:Tag长度值E2 可变DAP块4F5-16Security Domain AIDC3可变装载文件数据块签名C4可变装载文件数据块说明1、符合ASN.1编码规则2、数据来自Applet的CAP文件,参见本文第4节中粉红色数据Le0015应答 LOAD命令应答标识数据说明(参见GP规范9.6.3)Data Field00确认长度(1Byte)+确认(0-nByte)SW1SW290006581:存储器错误; 6A84:内存不够16发送 LOAD命令:上传最后一块数据标识数据说明(参见GP规范9.6.2)CLA80INSE8装载指定文件数据,定义了上传数据的格式,文件分成小块,分多条LOAD指令将装载文件上传到卡上。P180b8=0:有多块;b8=1:是最后一块(b8表示一个字节的最高位)P201表示块号LC4EData 长度Data8D 00 07 7A 08 00 0A 00 00 00 00 00 00 00 00 00 00 05 00 26 00 09 03 80 03 02 06 00 00 01 01 00 02 00 06 81 00 18 06 00 00 51 03 80 0A 01 06 80 03 00 06 80 07 01 03 80 03 03 09 00 11 00 00 00 0D 05 06 04 0A 07 07 0E 11 08 070E 0A 08要装载文件内容,格式如下表所示:Tag长度值E2 可变DAP块4F5-16Security Domain AIDC3可变装载文件数据块签名C4可变装载文件数据块Le0017应答 LOAD应答标识数据说明(参见GP规范9.6.3)Data Field00确认长度(1Byte)+确认(0-nByte)SW1SW290006581:存储器错误; 6A84:内存不够18发送 INSTALL命令for install标识数据说明(参见GP规范9.5.2)CLA80按ISO/IEC7816-4命令和响应的结构INSE6为卡内容管理执行的各种步骤P10C02:装载;20:个人化;10:extradition;08/0C:make selectable;04/0C:安装;其它:保留P200设置为“00”LC28Data长度Data07 59 43 54 43 61 72 64 0C 59 43 54 43 61 72 64
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康办公设备销售及安装合同协议
- 涉外贸易合作协议条款及条件
- 2025年食品安全追溯体系在食品销售渠道中的应用与优化报告
- 2025年多式联运信息平台大数据分析与物流企业协同发展前景研究
- 2025年中医药现代化国际市场拓展的中医药养生服务市场趋势研究报告
- 2025年房地产市场库存压力释放策略与营销策略创新应用报告
- 小学中秋节活动策划方案模板
- 2025年中国跑车行业市场调查研究及投资前景预测报告
- 2025标准低压供用电合同范本
- 春季运动会策划方案
- (2025)医疗护理员理论考试试题含答案
- 2025年贵州省中考英语真题含答案
- 建设工程法律培训
- 炎症性肠病病人的护理
- 肿瘤护理安宁疗护
- 2025年南京市中考数学真题试卷
- 青少年心血管健康防护策略
- 2025年呼伦贝尔农垦集团有限公司招聘笔试参考题库含答案解析
- 2025年重庆市中考数学试卷真题(含标准答案)
- 仓管员笔试试题及答案
- 兵团连队职工考试试题及答案解析
评论
0/150
提交评论