Java Card技术在数字化校园一卡通中的应用

2013-09-12 04:24田文进
电子测试 2013年19期
关键词:智能卡一卡通应用程序

田文进

(湖北医药学院,湖北十堰,442000)

0 引言

校园一卡通是一种集合了多种应用的智能卡,是智能卡技术在学校这个特定领域的应用。早期,校园卡只具有简单的就餐消费功能,现在校园一卡通已经具有学校的综合管理和金融服务等多种功能。目前国内很多高校都已经开始投入使用这种校园通卡,但是其采用的技术移植性差,并没有一个统一的建设模式,对社会资源造成了极大的浪费。同时由于校园一卡通涉及到学生的身份、财务等信息,安全性问题也令人担忧。Java Card技术具有安全性高、移植性强等特点,将这种技术引入到校园一卡通建设当中,以解决目前校园卡建设的问题。

1 Java Card技术基本原理

Java Card技术是Sun公司结合Java技术和智能机技术推出的一种新的技术规范,旨在解决传统智能卡开发过程复杂以及兼容性等问题。Java Card系统中包括虚拟机、框架层、企业添加类、应用程序等组成部分。Applet是在Java Card中运行的应用程序,每张卡中驻留一个或者多个Applet,程序运行的时候动态装载到Java Card中,因此Java Card可以互不影响的处理多种任务。由于Applet是运行在Java Card虚拟机上,而不是执行在卡硬件环境中的,因此开发人员不需要学习了解智能卡技术,就可以进行智能卡开发,开发难度降低,大大的减少了开发的时间。

Java Card对于硬件环境要求并不是太高,8位CPU智能卡即可满足其要求。Java Card虚拟机分为卡内虚拟机和卡外虚拟机,卡内虚拟机负责装载和引用解析类,因此被称作Java Card转换器。卡内虚拟机主要实现字节码的执行,是一个字节码翻译器。通过.cap转换文件来实现两部分虚拟机之间的数据交换。Java Card是一个多应用的环境,涉及到个人的安全信息,因此必须要有防火墙机制。

2 Java Card基础上的一卡通系统设计

2.1 一卡通的需求分析

一卡通的设计需要考虑其存储容量、基本功能、安全性等方面。一卡通作为信息载体,对于信息的携带量具有较高的要求。现在智能卡的ROM为16KB,RAM一般为256B,智能卡容量小会出现效率不高的问题,因此在设计时可以选择性价比高的智能卡,通过优化程序尽可能实现多种功能。校园一卡通将智能卡的强大功能和计算机网络的数字化里面融入学校,实现全校各类数据的统一管理。校园一卡通基本功能包括常规的身份认证和小额支付两个功能。常规的身份认证包括用餐、洗浴等生活支出、宿舍图书馆门禁、图书馆借阅等,校内小额支付包括学校网络支付、校园超市购物、校车乘坐等各种消费。由于一卡通的支付功能,因此需要考虑一卡通使用过程中与设备交互的信息安全问题,避免出现消费当中个人信息泄露或者消费信息错误等问题。

2.2 系统结构

一卡通系统的总体结构如下图所示:

图3.1 一卡通系统总体结构图

校园主干网和中心服务器将校园各个消费点联结起来,以此来进行各种数据交换。主干网的畅通无阻保证 了校园一卡通系统的正常运转。系统的设计上中心服务器和各个消费点的服务系采用实时性和非实时性相结合的设计思想,来确保系统不受突发事件的影响。这种设计思想的主要内容是:当主干网畅通的时候,进行交换和统计数据;当有故障时,各个消费点的服务器承担各自消费系统运行任务,从而能够保证各个消费系统的正常运行。

图3.2 一卡通的Java体系结构

校园一卡通的网络环境是以校园网为主体,以大型的数据库管理软件为运行平台。其硬件组成部分包括基于Java Card技术的智能卡、智能卡终端、工作站等部分。其中校园一卡通的Java Card体系可细化为如下图所示的结构:

2.3 一卡通上Applet设计

2.3.1 Applet功能定义

Applet设计首先需要进行功能定义,也就是确定系统将要实现的Applet的功能,能做什么而不能做什么。Applet应该具有存款、取款、查询余额等功能。同时为了预防一些非法操作,同时还需要设计一些身份认证措施,比如验证用户的PIN码等。

2.3.2 获取Applet的AID

一卡通系统中需要使用应用程序标志(AID)识别Applet,每个Applet都有与之相对应的AID。国际上通过RID和PIX来确保AID的唯一性。RID是ISO分配给卡供应商的ID号,通常是5个字节,PIX是各个供应商扩展的ID,用来管理Applet,通常是0~11字节。

2.3.3 Applet程序类结构的设计

Applet功能的实现通过内置select(),deselect(),ins tall(),process(),register()等方法,当Java卡收到由终端发出的APDU命令后,就会调用上述的方法,这些方法提供信息的写入、查询、反馈等多种功能,也能够实现验证身份和小额的支付。Select()方法可以进行一些数据的初始化工作,deselect()方法用来进行一些复位的工作,比如说复位PIN码。Install()方法用来创建Applet实例,创建后,通过调用register()方法来注册。

2.4 程序分析

对于小应用程序当中的主类初始化当中定义的常量如下所示:

应用程序运行错误时候返回的错误代码如下所示:

程序的开发调试是基于Jbuilder 6.0,Applet开发调试环境为Sun公司提供的JCDK2.2开发包。

3 总结

本文讨论的Java Card技术在校园一卡通中的应用,旨在基于先进的Java Card技术搭建一个简单便捷的开发平台,使校园一卡通的使用更加方便快捷,从而安全的实现“一卡在手,走遍校园”的构想。随着高校的服务项目的增多,消费的内容也在不断增加,在实际的应用当中,不仅仅要考虑卡内的应用程序和接口程序安全,还需要考虑整个网络架构以及核心设备的安全性问题,从而最大程度上保证一卡通的安全使用。

[1]张新访,李成华,吴俊军.“一卡多用”智能卡安全性的实现[J].计算机系统应用,2006(1):56—58.

[2]王明飞.Java智能卡的安全性[J].电脑知识与技术,2011(24):6015—6016.

[3]何久田,游代安,蒋遂平,等.Java卡应用的设计与实现[J].计算机工程与应用,2006(4):229—232.

[4]傅俊,盘红华.市民卡数据采集系统的设计与开发[J].计算机与现代化,2008(5):46—49.

猜你喜欢
智能卡一卡通应用程序
东方磁卡李晓东:进击的智能卡研发巨子
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于STC89 单片机的非接触智能卡读写机设计
基于“一卡通”开发的员工信息识别系统
公共交通一卡通TSM平台研究
临沂机顶盒智能卡升级方案介绍
向心加速度学习一卡通
一卡通为新农合基金加密
智能卡领域首个国家工程建设标准发布