当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:为解决传统读卡器功能单一、不能独立完成金融交易的问题,选择超低功耗而且价格低廉的单片机完成硬件平台的设计;并在芯片内部编程实现金融交易,开发出一套功能丰富、成本低、使用便利的金融IC卡读卡器产品。

摘要:为解决传统读卡器功能单一、不能独立完成金融交易的问题,选择超低功耗而且价格低廉的单片机完成硬件平台的设计;并在芯片内部编程实现金融交易,开发出一套功能丰富、成本低、使用便利的金融IC卡读卡器产品。超低功耗读卡器采用USB接口通信,在读卡器内部实现金融交易能很好地提升金融交易的安全性,同时提高了金融应用开发的工作效率和硬件资源的利用率。
关键词:PBOC2.0规范;金融IC卡;金融交易;MSP430F5510;模块化设计

引言
    PBOC2.0规范是国内金融IC卡产业的基础性规范,内容丰富,可以满足我国银行卡应对国际IC卡迁移的需要。它既满足国内银行卡高安全和多应用的实际需求,也为跨行业合作提供了良好的基础架构。银行磁条卡存储空间小、无运算能力,而金融IC卡具备多应用加载的平台,可丰富银行卡产品系列,成为商业银行业务创新的重要技术手段。
    在PBOC2.0规范指导下的金融IC卡的发展为金融IC卡读卡器的发展了带来了机遇,设计和开发使用方便、效率高和有着高可移植性的新型金融IC卡读卡器必将促进国家金融IC的应用发展。

1 硬件设计
    在读卡器MCU的选择上,为减少读卡器的功耗,并降低器件上的成本,选择TI公司的超低功耗单片机MSP430F5510。其提供的丰富外设I/O接口使读卡器实现各种功能,并自带全速USB2.0(12 Mbps)特性,也方便了USB接口开发及HID通信协议的实现。MSP430F5510引脚图如图1所示。


    MCU选择RGZ48PIN的封装形式,使得读卡器设计小巧,48引脚能为开发提供足够的I/O口。高频率晶振XT2IN引脚外接4 MHz晶振,能为IC卡提供稳定的时钟源。
1.1 MCU与IC卡座接口设计
    MCU与IC卡卡座的接口电路如图2所示。IC卡座的V_IC与电源模块的输入引脚相连,IC_CLK与MCU的高频晶振(XT2IN)相连,为IC卡工作提供稳定的时钟源。IC卡数据的输入/输出通过IC_IO与MCU的I/O口进行连接,MCU通过I/O口控制与IC卡的数据交互,并通过IC_DET检测IC卡的插入和拔出,通过Reset引脚对IC卡进行复位。
1.2 MCU与USB接口设计
    USB接口与MCU的接口电路如图3所示。
    USB接口的电源通过二极管D1接到MCU的电源供电部分,为MCU的正常工作提供电源。USB的Data+、Data-引脚分别接MCU的DP、DM引脚,MCU上的PUR引脚与DP引脚间接一个1.4 kΩ上拉电阻,完成MCU的两个引脚DP和DM差分信号的输入。

2 软件设计与开发
    读卡器内部软件主要由3部分组成,分别为ISO7816协议的实现、USB接口协议HID的实现、金融交易在读卡器内部的实现。ISO7816协议的实现主要参考ISO7816规范,详细的实现过程这里不再详细叙述。由于MSP430F5510自带全速USB2.0(12Mbps),可参照HID协议完成底层固件HID协议的开发。下面详细叙述金融交易在读卡器内部的实现。
    为使得软件开发具有条理性,考虑将金融交易部划分为以下4个模块:指令功能模块、安全认证模块、协助功能模块、独立交易功能模块。各模块之间可以相互辅助,实现金融交易的功能。
2.1 指令功能模块
    这个模块也可以称为基础功能模块,设计此模块能解决从PBOC2.0规范中抽象出各金融IC卡指令的问题。在模块内部实现PBOC2.0规范中所述的交易指令:选择、读记录、取数据对象、应用初始化、应用锁定、应用解锁、外部认证、生成应用密文、内部认证、PIN修改/解锁、设置数据、修改记录、验证。
    这些指令的实现能方便具体交易的调用,使得其他模块不再具体考虑指令调用的细节。
2.2 安全认证模块
    此模块的设计可解决交易过程中涉及到的安全认证,单片机内部可以实现RSA算法、3DES算法、哈希算法SHA-1。针对完成PBOC2.0规范中的脱机数据认证,软实现各种安全认证算法能很好地节省硬件成本,使得开发具有相对的独立性。
2.3 协助功能模块
    协助功能模块可作为工具模块,为其他模块提供服务。在模块内部实现对IC卡指令返回的数据的解析、PDOL(处理选项数据对象列表)、DDOL(动态数据认证数据对象列表)、CDOL(卡片风险管理数据对象列表)等数据对象的组包。
    IC卡指令返回的数据实质上就是一个有格式的长字符串,这个字符串数据都有相应的模板格式,但不同的指令返回的数据模板不同。而且模板中包含的TLV(Tag、Length、Value)数据结构也各不相同,模板中还可能再包含模板。对于模板中有单一TLV数据结构不带模块结构的数据,可以通过先解析Tag,接着解析长度,再解析数据内容的方式,取得某个Tag对应的Value值。即便是一个字符串由多个TLV结构的数据对象组成,这种方法也可以完成对TLV结构的解析以及对单个Tag对应值的确定。
    但是对于有多个模块结构的数据对象进行解析时,就需要先解析模板,确定该TLV的数据对象在哪个模板中,然后从长数据串中截取出这个模板对应的数据,然后再在这个模板中进行TLV数据的解析。
    具体在设计中,采用如上所述的分析方法实现两种不同的TLV解析功能,一种可以直接解析只有TLV结构字符串的函数;另外一种则可以针对有多个模板的字符串进行解析。
2.4 独立交易功能模块
    在上面三个功能模块的基础上实现金融交易,这里主要设计实现了以下金融交易:读取IC 卡信息、读取IC交易日志、写卡脚本、生成ARQC(授权应用密文)、ECC(电子现金)交易。下面详述各交易的实现。
2.4.1 读取IC卡信息
    读取IC卡信息,可借助指令功能模块中的选择指令选择IC卡应用个人化环境(PSE),然后利用协助功能模块的解析函数,解析出卡片中的应用标识符AID,再通过选择指令选择AID,解析出PDOL(处理选项数据对象列表)。PDOL实质上是一个模板,表明了处理选项数据对象中应当包含哪些数据对象。解析出 PDOL,利用上述协助功能模块中的组PDOL对象功能函数便可以形成处理选项数据对象。在应用初始化指令中将这个数据对象发送给卡片,卡片接收到后,会根据处理选项数据对象作出交易的判断,在返回的数据中带回来交易中需要读取的交易记录,然后根据卡片返回到AFL(应用文件定位器)。遍历读取相应的记录、解析相应的记录,就可以找到需要的IC卡个人信息。
    以上方法不是唯一读取IC卡的方法,对于常用持卡人信息的读取,也可以选择读取IC卡前两几条记录,从中分析得到IC卡持卡人的个人信息。这种方法读取速度快,但是对于持卡人信息不在前几条记录中的卡片,则会发牛读取不到信息的错误。为避免此种错误的发生,设计中采用如上遍历读取记录的方法。
2.4.2 读取IC卡交易日志
    金融IC卡对于圈存、ECC交易,在卡片中会有相应的日志记录。IC卡交易日志以文件的形式保存在IC中,最多能保存十条交易日志,而且第一条是最近的交易日志。在交易过程中通过读IC卡日志能判断出最近几笔交易的详细情况,交易日志的读取通过指令模块中的Select指令选取PSE,然后解析出 AID。选择AID后,解析出日志入口标签的值,从而找到日志对应的SFL(短文件标识符)以及交易日志中的记录个数。逐条读取SFL下的记录,就可以得到完整的交易日志。然后再使用Get Data指令读取日志格式标签的值,便可以对照日志格式解析交易日志,得出每笔交易的详细信息。
    以上为最全面的IC日志读取方法,在实现中为节省程序运行时间,一般在选择AID后直接读取SFL为0x0B,在该文件下从第1条记录读取到第10条记录。这种方法也能将交易日志完整的读取出来,而且还节省了时间。读卡器在内部实现中采用了这种方法。
2.4.3 写卡脚本
    卡片脚本是发卡行对卡片进行认证过后,认为此卡片为合法卡片后,返回的可以修改IC卡记录内容的命令。写卡脚本命令执行之前首先需要对发卡行返回的密文数据进行外部认证,实质上是卡片在验证发卡行的真伪。发卡行验证通过,便可以通过产生密文指令向卡片发送表示允许进行交易,卡片收到后会产生允许交易的密文,产生TC(交易证书)。TC需要保存,结算的时候或者联机中在脚本执行结果中返回给服务器,TL值的产生,说明了卡片承认了这笔交易,服务器清算的时候验证TC证书。如果TC证书验证通过,后台服务就会把这笔消费人账。由于产生密文的指令可以产生3种应用密文形式,分别为:TC、ARQC(授权请求密文)、AAC(应用认证密文),在产生密文的指令中需要指明为产生TC的指令,而且需要组建CDOL2(卡片风险管理数据对象列表2)的数据。CDOL2的结构同PDOL结构,会指定卡片风险管理数据对象需要哪些数据元,CDOL2在读记录中读取,利用协助功能模板组建CDOL2对象数据。卡片接收产生应用密文指令后,如果返回正确,则可以顺利执行写卡指令,写卡指令执行正确后,整个交易结束。此时如果交易正常,在IC卡的交易日志中应能查到最近的这次交易。
2.4.4 生成ARQC
    ARQC(授权应用密文)在交易中有长片产生的一种密文,这个密文送到后台服务器,后台服务器会通过验证这个应用密文的正确与否来确定IC卡的真伪。ARQC通过发送产生应用密文来得到,在产生应用密文的指令中,密文类型要选择为ARQC,通过读记录、解析记录、组建CDOL1(风险管理数据对象列表1)得到风险管理数据对象1。卡片接收指令后,会返回所需的ARQC。应用密文指令发送之前需要去完成选择PSE、选择AID、应用初始化和读记录的工作。
2.4.5 ECC交易
     ECC(电子现金)交易是接触式IC卡的一种脱机消费方式。由于交易是在脱机的情况下进行的,所以交易中不涉及联机的认证过程。在选择PSE、选择AID后的GPO(应用初始化)指令中,利用PDOL指明支持电子现金,然后再读取需要的IC卡记录,得到相关的认证数据,包括IC卡公钥证书、发卡行公钥证书、认证中心公钥索引、发卡行公钥余项、IC卡公钥余项、IC卡公钥指数、发卡行公钥指数。记录读取完毕后,需要先进行DDA(动态数据认证)认证,通过后再发送产生应用密文(产生TC)的指令,指令执行正确后再发送外部认证指令。指令执行正确,交易则开始对相关交易数据的保存以及终端风险管理进行处理。以上任何一条指令执行中如果发生错误,交易即终止。

结语
    本文在超低功耗单片机MSP430F5510的基础上设计和实现了一款功能丰富的IC卡读卡器。利用MSF430F5510自带的全速USB硬件资源实现了HID协议,使得读卡器可以实现无驱动的使用,方便了读卡器的使用。金融交易在芯片内部的实现,也可以使得这款读卡器能作为其他产品的一个模块,因为其内部实现了相应的RSA算法、3DES算法、哈希算法SHA-1,同时也实现了牛成ARQC、写卡、读取IC卡信息、读交易口志、ECC交易。这些交融交易在读卡器内部的实现,能减少外部应用对金融交易的重复开发,节省资源,同时也大大提高了工作效率。此款读卡器往实际的应用中有很好的使用效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化
关闭
关闭