好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

NFC系统与羊城通系统接口相关部分的实现设计.doc

15页
  • 卖家[上传人]:hs****ma
  • 文档编号:390043394
  • 上传时间:2023-09-25
  • 文档格式:DOC
  • 文档大小:425KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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中用于建立安全通道和认证的APPLET1.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的应用标识并通过密码认证来选择调用APPLET1.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后台公钥进行签名认证,认证通过后记录充值结果信息。

      3.OTA方式的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 A7JCOP41V22[2发送] SELECT 命令标识数据说明(参见GP规范9.9.2)CLA00按照ISO/IEC7816-4命令和响应的结构和编码INSA4SELECT命令,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.