当前位置:文档之家› NFC系统与羊城通系统接口相关部分的实现设计

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

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后台公钥进行签名认证,认证通过后记录充值结果信息。

3.OTA方式的APPLET及密钥下载
3.1 APPLET的OTA下载
建立各应用下载安全通道APPLET,如羊城通预实现空中下载,先实现一个用于建立APPLET下载的安全通道APPLET,在此APPLET内实现与羊城通的认证(如PKI认证)和加解密,MIDLET将解密后的APPLET密文传递给CARDMANAGE,并采取密文方式直接下载进SMARTMX卡中,SMARTMX卡用预制在CARDMANAGE中的下装密钥进行解。

相关主题