基于Java Card的校園一卡通的應(yīng)用設(shè)計
文章出處:http://www.sgrivertours.com 作者:李明江 人氣: 發(fā)表時間:2011年11月17日
隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)、信息技術(shù)的高速發(fā)展,高等院校也向數(shù)字化、信息化、網(wǎng)絡(luò)化邁進,普遍使用計算機信息系統(tǒng)來進行各個部門的管理工作。但由于各部門的管理信息系統(tǒng)起步不同、平臺不同,造成各部門的系統(tǒng)相對獨立,數(shù)據(jù)信息無法兼容互通,各個部門形成相對獨立的數(shù)據(jù)孤島,這樣一些公共基礎(chǔ)信息的準(zhǔn)確性和及時f生都無法保障。特別有些部門已逐步建立起自己的智能卡應(yīng)用系統(tǒng),造成了學(xué)生(學(xué)生證、考試卡、借書證、飯卡、上網(wǎng)卡)和教職工身上持有多張卡,造成不方便的同時,也讓資源不能合理配置和共享,使整個學(xué)校的管理水平下降。
校園一卡通是以智能卡為信息載體,適用于校園消費和管理的網(wǎng)絡(luò)系統(tǒng),并能實現(xiàn)與校園網(wǎng)的對接。智能卡中的硬件資源是非常有限的。一個最普通的智能卡具有256字節(jié)的RAM ,16K字節(jié)的ROM和4K一8K字節(jié)的EEPROM;而最高檔次的智能卡當(dāng)前也只有4K字節(jié)的RAM,64K字節(jié)ROM和64K字節(jié)的EEPROM;更多智能卡的硬件配置位于二者之間。另一方面,智能卡對安全性、執(zhí)行效率、事件處理等方面的要求也是很高的。智能卡應(yīng)用程序在開發(fā)時都以匯編語言外加C語言為主,需要對智能卡硬件有很深的專業(yè)知識,編程復(fù)雜,開發(fā)速度慢,成本高。
在智能卡的生命周期中,可能會受到各種各樣的攻擊,有些可能是無意識的誤操作,更多的是蓄意的行為。影響智能卡安全的有以下一些基本問題:
(1)智能卡和接口設(shè)備之間的信息流通。這些信息可以被截取分析,從而可被復(fù)制或插入假信號。
(2)模擬智能卡(或偽造智能卡)。模擬智能卡與接口設(shè)備之間的信息,使接口設(shè)備無法判斷出是合法的還是模擬的智能卡。
(3)在交易過程中更換智能卡。在授權(quán)過程中使用的是合法的智能卡,而在交易數(shù)據(jù)寫入之前更換成另一張卡,從而將交易數(shù)據(jù)寫入替代卡中。
(4)修改信用卡中控制余額更新的日期。信用卡使用時需要輸入當(dāng)天日期,以供卡判斷是否是當(dāng)天第一次使用,即是否應(yīng)將有效余額項更新為最高授權(quán)余額(允許一天內(nèi)支取的最大金額),如果修改控制余額更新的日期(即上次使用的日期),并將它提前,則輸入當(dāng)天日期后,接口設(shè)備會誤認(rèn)為是當(dāng)天第一次取款,于是將有效余額更新為最高授權(quán)余額,因此利用竊來的卡可取定最高授權(quán)的金額。
(5)商店雇員的作弊行為。接口設(shè)備寫入卡中的數(shù)據(jù)不正確,或雇員私下將一筆交易寫成兩筆交易,因此接口設(shè)備不允許被借用、私自拆卸或改裝。
1 Java Card的構(gòu)架
1.1 Java Card介紹
Java智能卡技術(shù)就是將智能卡技術(shù)和Java語言的開發(fā)和應(yīng)用技術(shù)相結(jié)合的一門集軟件、安全和加密、單機和網(wǎng)絡(luò)以及有關(guān)社會管理、金融和商貿(mào)專業(yè)知識和技術(shù)的綜合技術(shù)。Java CARD充分利用了Java“一次編寫,隨處運行”的能力,使Java也能在智能卡和其他存儲容量相對匱乏的設(shè)備上得以應(yīng)用。Java卡是一種能運行Java語言程序的智能卡,它在有限資源環(huán)境下的智能卡中支持Java語言的一個子集,是Java嵌入到智能卡中的一種新的應(yīng)用。它以其多應(yīng)用的支持、良好的安全特性、主流的面向?qū)ο蟮木幊汰h(huán)境、應(yīng)用程序在線動態(tài)下載等眾多優(yōu)點進一步推動了智能卡技術(shù)在網(wǎng)絡(luò)時代的應(yīng)用和發(fā)展。同時,Intemet和移動計算技術(shù)的發(fā)展也對Java卡技術(shù)提出了更高的需求。
Java智能卡開發(fā)人員不必象原來的IC卡或智能卡開發(fā)人員那樣,要對IC卡或智能卡的硬件有很深的專業(yè)知識,需要對芯片編寫6805和8051的匯編語言程序。Java智能卡開發(fā)人員能從供應(yīng)商那里獲得現(xiàn)成的Java智能卡產(chǎn)品以及集成Java開發(fā)環(huán)境,使Java智能卡開發(fā)人員能集中主要精力在應(yīng)用細(xì)節(jié)、方法擴充、庫及創(chuàng)新上。運用Java Card技術(shù)可以使卡上應(yīng)用程序的開發(fā)工作更加容易,同時也能加強運作于不同廠商的智能卡跨平臺作業(yè)能力。Java Card可以使許多以前由于卡片COS限制無法實現(xiàn)的想法得以實現(xiàn)。Java卡的API規(guī)范為智能卡制定了一個Java語言的特殊子集,目前的版本為2.2。Java卡的特色:
(1)平臺獨立:Java卡Applet能夠在不同卡片的JCRE上執(zhí)行,即通過JVM的機制來達到跨平臺的能力;
(2)一卡多用:在同一個Java卡中能夠存放多個Java卡Applet,并且也能夠下載新的Applet,從而達到“一卡多用”的目的;
(3)復(fù)用:可以根據(jù)需要刪除Java卡上的應(yīng)用或增加新的應(yīng)用,而無需更換新的智能卡,這樣大大增強智能卡的靈活性;
(4)與現(xiàn)有智能卡兼容:Java卡能與國際標(biāo)準(zhǔn)IS07816(智能卡標(biāo)準(zhǔn))以及工業(yè)界標(biāo)準(zhǔn)(如Europay/Master Card/Visa,EMV)相容;
(5)應(yīng)用開發(fā)簡單快速:開發(fā)人員無需了解復(fù)雜的智能卡硬件和智能卡專用的技術(shù),就可以進行智能卡應(yīng)用的開發(fā),從而大大減少開發(fā)時間和降低開發(fā)難度;
(6)開發(fā)環(huán)境和開發(fā)人員豐富:開發(fā)人員可以任意選擇他們所熟悉和喜歡的開發(fā)工具,幾乎當(dāng)今所有流行的Java開發(fā)環(huán)境都可以被用來進行Java卡的開發(fā)。
1.2 java Card體系結(jié)構(gòu)
符合JavaCard2.2的Java Card體系結(jié)構(gòu)如圖1所示,其中,Java Card ROM 中的最底層代碼是訪問存儲器(包括RAM、ROM和EEPROM)和I/0的設(shè)備驅(qū)動程序,根據(jù)需要,也可能包括訪問加密處理器的驅(qū)動程序。這些驅(qū)動程序都是用C或匯編語言實現(xiàn)的,從而大大提高了Java Card執(zhí)行效率。JavaCard虛擬機(JCVM),它是傳統(tǒng)的JVM的簡化版本。將負(fù)責(zé)控制上層應(yīng)用程序?qū)ava Card硬件驅(qū)動程序的訪問。Java卡的API為智能卡制定了一個Java語言的特殊子集。各種上層應(yīng)用程序都被稱為印一plet。Applet可以動態(tài)裝載到Java卡上,使得開發(fā)人員無需了解復(fù)雜的智能卡硬件和智能卡專用的技術(shù),就可以進行智能卡應(yīng)用的開發(fā),從而大大減少開發(fā)時間和降低開發(fā)難度。由于Java虛擬機的使用,Java卡的Applet能夠在不同卡片的JCAE(Java Card Application Environment)上執(zhí)行,即透過Java虛擬機的機制來達到跨平臺的能力。
Java Card 體系結(jié)構(gòu)
2 校園一卡通應(yīng)用設(shè)計
根據(jù)不同的需求,智能卡有以下幾方面的應(yīng)用:
(I)管理部門應(yīng)用。①教師資格認(rèn)證管理;②學(xué)生注冊認(rèn)證;③學(xué)歷/學(xué)位信息管理;④助學(xué)貸款管理、就業(yè)輔助服務(wù);⑤體育比賽服務(wù)。
(2)校園內(nèi)應(yīng)用。①校園管理應(yīng)用;②校園消費管理;③身份認(rèn)證管理;④圈存。
(3)校外應(yīng)用。①學(xué)歷/學(xué)位信息識別;② 電子檔案;③可信個人數(shù)據(jù)服務(wù)。
基于java card的校園一卡通系統(tǒng)綜合了門禁、消費、通卡管理、賬務(wù)管理、結(jié)算、數(shù)據(jù)傳輸?shù)榷喾矫娴臉I(yè)務(wù)需要,校園一卡通應(yīng)用系統(tǒng)是建立在校園網(wǎng)絡(luò)的基礎(chǔ)上,通過校園局域網(wǎng),中心系統(tǒng)可以對各功能子系統(tǒng)進行統(tǒng)一管理;各功能子系統(tǒng)可以進行信息傳遞和交流,用戶可以對個人信息進行查詢。系統(tǒng)整個業(yè)務(wù)系統(tǒng)主要分為幾個部分,如圖2所示:
2.1 個人信息認(rèn)證
校園一卡通具有記錄學(xué)生的系別、專業(yè)、姓名、身份證號碼、出生年月、性別、戶口所在地等個人基本信息,具有個人信息電子認(rèn)證功能,可以嵌人身份證及照片信息、學(xué)歷學(xué)籍信息??梢詾楦鞣N考試、圖書館、門禁、考勤、網(wǎng)絡(luò)中心、校醫(yī)院提供所需的身份認(rèn)證。
2.2 電子錢包
校園一卡通具有銀行卡的全部功能,它既能實現(xiàn)原有銀行磁條卡的全部大額消費功能,又能實現(xiàn)電子錢包的小額消費的全部功能。
2.3 學(xué)生管理
實現(xiàn)學(xué)生在校期間的注冊,注銷,成績單管理等功能。
2.4 交費
實現(xiàn)學(xué)生交納學(xué)費、上機、醫(yī)療、用餐、校內(nèi)購物、浴室使用等費用功能。
2.5 信息查詢服務(wù)
提供查詢信息功能包括:選修課程查詢、考試成績查詢、招聘信息、助學(xué)獎學(xué)情況、家庭情況查詢、個人學(xué)校電子檔案查詢服務(wù)等。
基于java card校園卡的各類卡的數(shù)據(jù)設(shè)計按如下進行:
(1)教職員工卡(教育管理卡),由以下三個數(shù)據(jù)區(qū)構(gòu)成:
圖2 校園一卡通應(yīng)用示意圖
a)基本應(yīng)用數(shù)據(jù)區(qū):存放在智能卡整個生命周期中不會改變的信息。包括發(fā)卡機構(gòu)數(shù)據(jù)文件、持卡人基本信息文件、照片信息數(shù)據(jù)元、指紋信息元。
b)公共應(yīng)用數(shù)據(jù)區(qū):存放教職員工的基本信息文件等由學(xué)校維護的反映持卡人通用信息的文件。
c)學(xué)校內(nèi)部管理應(yīng)用數(shù)據(jù)區(qū):存放學(xué)校自行定義管理的、在校內(nèi)使用的信息,如醫(yī)療信息、門禁信息、圖書館讀者信息等。
(2)在校學(xué)生卡,在公共數(shù)據(jù)區(qū)與內(nèi)部數(shù)據(jù)區(qū)的基礎(chǔ)上增加了注冊數(shù)據(jù)區(qū)與交通應(yīng)用數(shù)據(jù)區(qū),由四個數(shù)據(jù)區(qū)構(gòu)成:
a)基本應(yīng)用數(shù)據(jù)區(qū):存放在學(xué)生卡的整個生命周期內(nèi)不會改變的信息,被組織存放學(xué)生卡教育環(huán)境對應(yīng)的Applet下。
b)公共應(yīng)用數(shù)據(jù)區(qū):存放由學(xué)校維護的反映持卡人通用信息的文件。
c)學(xué)校內(nèi)部管理應(yīng)用數(shù)據(jù)區(qū):存放在校內(nèi)使用的信息,如身份信息、門禁信息、圖書館讀者信息等,各學(xué)??梢愿鶕?jù)實際需要進行必要的擴充。
d)學(xué)生注冊數(shù)據(jù)區(qū):記錄學(xué)生注冊信息,學(xué)歷信息,電子檔案。
(3)畢業(yè)生卡,由四個數(shù)據(jù)區(qū)構(gòu)成:
a)基本應(yīng)用數(shù)據(jù)區(qū):存放在畢業(yè)生卡的整個生命周期內(nèi)不會改變的信息,被組織存放在畢業(yè)生卡的Applet下。
b)可信個人信息應(yīng)用數(shù)據(jù)區(qū):可信個人信息是指由學(xué)校擔(dān)保在學(xué)生畢業(yè)時一次錄入的信息,包括學(xué)生11PD(可信個人數(shù)據(jù))標(biāo)識信息、生物特征信息、個人基本信息、課程考試成績、水平考試成績、獎懲信息等。
c)學(xué)生就業(yè)應(yīng)用數(shù)據(jù)區(qū).fi2錄學(xué)生的首次就業(yè)的信息、跟蹤學(xué)生就業(yè)信息。由教育管理部門維護。
d)學(xué)生貸款應(yīng)用數(shù)據(jù)區(qū):記錄學(xué)生的貸款信息、誠信信息。
3 安全性分析
在設(shè)計過程中,充分考慮了智能卡應(yīng)用系統(tǒng)中常見的安全性問題,并結(jié)合了Java Card技術(shù)在安全性方面的優(yōu)勢,其安全方面具有如下特點:
3.1 系統(tǒng)的安全性。系統(tǒng)具有安全性,包括網(wǎng)絡(luò)系統(tǒng)、主機系統(tǒng)、數(shù)據(jù)存取系統(tǒng)、數(shù)據(jù)傳輸系統(tǒng)的安全性,數(shù)據(jù)備份和災(zāi)難恢復(fù)的可靠性。為保證系統(tǒng)軟件、應(yīng)用軟件及數(shù)據(jù)安全,系統(tǒng)嚴(yán)格選用操作系統(tǒng)平臺,開發(fā)平臺,設(shè)計防病毒功能,保護系統(tǒng)數(shù)據(jù),并建立備份系統(tǒng),定期自動進行全量及增量備份。在系統(tǒng)中采用射頻證卡作為身份識別,并在關(guān)鍵信息的處理、傳輸中采用加密處理,防止信息的非法訪問,確保系統(tǒng)的不可攻擊性。
3.2 軟件環(huán)境的安全性系統(tǒng)采用Java Card技術(shù),使用了當(dāng)前最流行的Java語言作為軟件開發(fā)環(huán)境。Ja—va Applet受Java安全性的限制,而Java Card系統(tǒng)的安全性模式在很多方面與標(biāo)準(zhǔn)Java有所不同。比如Java Card不支持安全管理器類、語言的安全策略是由虛擬機實施的。Java Applet創(chuàng)建可存儲和處理資料的對象,對象由創(chuàng)建該對象的Applet所擁有。即使Applet有對某個對象的引用,它也不能調(diào)用該對象的方法,除非它擁有該對象,或該對象已確定共享。某個Applet可與另一個Applet或所有Applet共享其對象。Applet是Java Card內(nèi)的獨立實體。其選擇、執(zhí)行和功能不受駐留在同一張卡上的其它Applet的影響。
3.3 網(wǎng)絡(luò)運行的可靠性??煽啃园ňW(wǎng)絡(luò)運行的可靠性、各硬件設(shè)備的可靠性、所運行軟件的可靠性,并在系統(tǒng)中加入掉電保護、數(shù)據(jù)備份等手段來保證系統(tǒng)的正常、長期的運行。可以采用實時與非實時相結(jié)合的網(wǎng)絡(luò)架構(gòu),系統(tǒng)管理中心有中心數(shù)據(jù)庫,各子系統(tǒng)又具有本地庫,各本地庫與中心通過校園網(wǎng)實現(xiàn)數(shù)據(jù)互傳,使各應(yīng)用子系統(tǒng)依賴校園網(wǎng),又可脫離校園網(wǎng)單獨運行,這樣增加了運行的安全可靠性。消費終端都有自備電池,能在斷電的情況下工作,消費終端有存儲功能可保存一定的消費記錄。
4 總結(jié)
雖然目前校園通卡建設(shè)的相關(guān)研究和解決方案很多,但對采用一種什么樣的技術(shù)應(yīng)用于校園通卡系統(tǒng)中,能方便的移植形成統(tǒng)一的校園通卡建設(shè)模式,同時安全性高,可擴展性強,在這方面的研究卻很少。正是在這種前提下由于Java Card技術(shù)的本身特性,我們把它引入到校園通卡建設(shè)的研究中來,以解決目前校園通卡建設(shè)存在的可移植性不強、平臺安全隱患、可擴充性不高等問題。旨在運用先進的Java Card技術(shù),使用簡單高效的開發(fā)環(huán)境,更加快捷、安全地實現(xiàn)“一卡在手,走遍校園”的構(gòu)想。