基于Java Card的校园一卡通设计与研究

2015-09-18 13:15于璐罗丽云
软件导刊 2015年8期
关键词:校园一卡通信息安全

于璐 罗丽云

摘要:基于Java Card技术进行一卡通体系构造,提出了可信身份认证方案,并从带权限的密钥集选择和动态口令生成两个方面进行了研究,以消除存在的安全隐患。

关键词:Java Card;Applet;校园一卡通;信息安全

DOIDOI:10.11907/rjdk.151521

中图分类号:TP319

文献标识码:A 文章编号文章编号:16727800(2015)008015802

0 引言

随着计算机技术、网络技术、信息技术的高速发展,各高校普遍使用计算机信息系统来进行各个部门的管理工作。相较于传统的“一个系统一张认证卡”的信息管理模式,当前更多人倾向于对认证信息进行集成。在单位数字化工程中,一卡通成为最为重要的信息关联核心,能实现更为高效和人性化的服务及管理。然而,随着信息的高度集成,一卡通在为人们提供便捷综合认证服务的同时,其安全问题也随之显露。其中,如何实现身份的安全认证是一个亟待解决的问题。

1 基于Java Card技术的一卡通体系结构

一卡通的设计需要考虑其基本功能、安全性、多应用、跨平台等方面,要求同一张卡片提供多种服务,且各业务之间不会相互影响,能够独立运行,这些要求通过Java Card技术能够得到很好的解决。

1.1 Java Card技术

Java Card 技术是Sun公司结合Java技术和智能机技术推出的一种新的技术规范,提供了平台独立性,以及存储和动态更新多种应用的能力。Java Card系统中包括虚拟机、框架层、企业添加类、应用程序等组成部分[1]。其中,Applet是在Java Card中运行的应用程序,每张卡可以有多个Applet程序,可以动态装载到卡上或者从卡上删除。这些程序分别提供不同的服务,如基本身份信息、电子钱包等,不同的Applet用application identifier(AID)来标识。Applet之间设置了防火墙相隔离,保证服务之间的独立运行状态。此外,为了完成合法的穿越防火墙访问,JCRE 提供了服务共享(shareable)机制,如果1个applet希望为其它applet提供自己的某些服务, 可以通过服务共享机制允许其它applet穿越防火墙访问自己共享的服务[2]。

1.2 校园一卡通架构

结合校园需求特点,校园一卡通系统综合了借阅、门禁、用餐、信息房的使用、消费、账务管理、结算、数据传输等多方面的应用。通过校园局域网,用户可以查询个人信息,服务中心系统也能够对各功能的子系统进行统一管理,子系统之间也可以根据需要进行信息的传递与交流。整个业务系统主要分为4部分,分别是个人信息识别、电子消费、学生/职工管理、信息综合查询,如图1所示。

图1 校园一卡通整体架构

其中,个人信息识别主要涉及持卡人姓名、性别、照片信息、身份证号码、出生年月、户口所在地、系别、专业、校园身份(例如:学生、教师、行政人员、实习生等)、入学/入职时间、学号/教工号等相关个人信息,是个人信息的电子认证功能,为校园内的各种行为(如图书馆、考勤、门禁、网络管理等)提供必要的身份认证;电子消费主要承担银行卡的相关功能,包括校园内部的小额消费和校园内的大额消费两种;学生/职工管理主要涉及校内人员相关动态行为的记录及管理;信息综合查询主要是对所有相关记录进行查询,即用户通过读取一卡通数据查询与自身相关的历史信息。

根据具体需求,智能卡的数据设计主要包含3个主体:教职员工、在校学生以及毕业生。

教职员工主体主要包含三方面数据信息:基本应用数据区,主要存放照片、指纹、持卡人基本信息文件等不易发生改变的信息;公共应用数据区,主要存放由学校维护的反映持卡人基本信息的相关通用信息文件;校内管理应用数据区,主要存放校内使用的相关信息,如医疗、门禁、图书馆借阅等。

在校学生主体主要包含4方面的数据信息:其中,基本应用、公共应用和校内管理应用数据区与教职员工的基本类似,存放学生的一些特定基本信息;学生注册数据区,则记录学生注册信息、电子档案以及学历等相关信息。

毕业生主体主要包含四方面数据信息,其中,基本应用数据区与前两者相似,存放毕业生的相关信息;个人信息应用数据区,主要存放学生在校期间的相关活动行为,包括个人标识特征信息、基本信息、各科考试成绩、参与水平考试成绩、奖惩信息等;学生就业情况数据区,记录学生从实习到就业的所有相关信息,帮助学生进行就业跟踪;学生贷款数据区,主要包括学生在校期间的借贷信息及个人诚信水平等。

2 一卡通安全性分析及解决方案

Java Card平台的开放性以及服务能够动态下载、移除的特性,使得不同的卡外实体通过不同的服务提供者与卡上不同的Applet进行交互。业务的复杂性增加了安全和管理问题的复杂性,由此产生的安全隐患也备受关注。这些安全和管理问题包括:鉴别非法访问,包括终端对文件系统的非法访问;多应用服务的非法下载、使用、删除;服务共享机制的非法下载、使用和删除;卡上多应用调用系统资源的合法性等。

卡外实体与卡上多应用的相互身份识别,包括持卡人身份识别和卡上应用身份识别。卡外实体和卡上应用的安全通信,包括通信双方的身份认证,数据通信的保密性、完整性,通信数据序列的顺序性等。

综上分析得知,可信的身份认证是解决所有安全隐患的关键。加密算法设置、密钥管理、远程登录口令确认这3个方面是实现身份认证的主要途径,以确保持卡人无法非法获取权限或服务非法调用系统资源。在本文中,加密算法采用PKI技术对认证信息进行加解密。

2.1 密钥管理

密钥是实施信息加解密的必要工具,经过公钥加密的信息只有对应的私钥才能解密还原原始信息。因此,使用不同级别的公钥对信息进行加密可以实现权限分级,保障用户或服务的合法权限分配。

具体做法为:在卡上开发一个卡管理的Applet,该应用程序的主要任务是管理和维护一组密钥集,密钥集的数目可根据权限需求确定,采用服务共享机制(shareable)提供服务,不同的密钥集对应不同的安全等级,例如文件系统访问的权限等级、不同Applet分权限下载、安装、删除等。当需要进行某种级别的安全操作时,卡外实体利用选定的某个密钥集,与卡管理Applet中的对应密钥集进行相互身份认证,确认权限等级。双向认证通过后,卡外实体可下载、使用Applet提供的服务,而Applet也可以对外提供符合身份等级权限的安全服务,同时Applet也可以向服务提供商申请下载、调用经身份认证后才允许提供的安全服务。

2.2 登录口令确认

动态口令认证系统主要由两部分组成:客户端操作和服务器端认证。客户端将代表用户身份的唯一性识别码(固定部分)和某种变化的因素(可变部分)作为输入参数,经过特定算法运算得到一个动态口令。在服务器认证端进行同样的操作,并与客户端送来的登录信息进行比较,若两者匹配,则认证通过[3]。其中,客户端的固定部分包括卡的唯一标识码和自身随机生成的3DES密钥,可变部分为置于卡端和服务器端的计数器因子,每认证成功一次计数器加1。具体步骤如下:

客户端操作:首先随机生成一个3DES密钥deskey,并将卡内该应用的计数器初始化为0,获取卡唯一性标志码ICCID,通过shareable获取与其身份相对应的密钥集SP。利用SP将ICCID和deskey进行加密运算,将生成的加密后的信息info发送至认证服务器端。

服务器端操作:接收来自客户端的info信息,根据参数判断注册过程后,利用相应权限的私钥进行解密,获取客户端的ICCID和随机生成的deskey,依据约定将计数器置为0。

至此,双方均拥有了一致的口令因子。客户端利用3个口令因子进行相应的计算得到一个动态口令,之后计数器加1,并将此口令发送至服务器验证。服务器端接收到来自客户端的口令后,使用相同的计算因子和算法得到一个动态口令,将此口令与客户端口令相比对。若口令一致,则通过验证,为客户提供所选密钥集权限下的相关服务,同时计数器加1。具体流程如图2所示。

3 结语

从Java Card技术本身而言,其具有平台独立、一卡多用、复用、应用开发简单快速等特点。但随着高校服务项目的增多,消费内容也在不断增加,在实际应用中,除了要考虑整体网络架构,还要考虑卡内应用程序和接口程序的安全性以及持卡人身份认证和权限分配问题,从而最大程度上保证一卡通的安全使用。本文在讨论校园一卡通架构的基础上,从带权限的密钥集选择和动态口令生成这两个方面进行了探讨,使得用户能够在更加安全的环境中进行服务的选择和应用。

参考文献:

[1] 田文进.JavaCard技术在数字化校园一卡通中的应用[J].电子测试,2013(19):250251.

[2] 董威.基于JavaSIM卡的GlobalPlatform安全技术研究[J].北京邮电大学学报,2006(3):9194.

[3] 唐倩.基于Java_SIM卡的移动身份认证解决方案和关键技术研究[D].北京:北京邮电大学,2011.

[4] 宫萍.基于JavaCard的校园和科研院所一卡通的应用设计[J].四川兵工学报,2012(7):114116.

[5] 李明江.基于JavaCard的校园一卡通的应用设计[J].黔南民族师范学院学报,2009(6):2428.

(责任编辑:孙 娟)

猜你喜欢
校园一卡通信息安全
保护信息安全要滴水不漏
高校信息安全防护
校园一卡通模式下的校园安全管理
保护个人信息安全刻不容缓
信息安全