于璐 羅麗云
摘要:基于Java Card技術(shù)進(jìn)行一卡通體系構(gòu)造,提出了可信身份認(rèn)證方案,并從帶權(quán)限的密鑰集選擇和動態(tài)口令生成兩個方面進(jìn)行了研究,以消除存在的安全隱患。
關(guān)鍵詞:Java Card;Applet;校園一卡通;信息安全
DOIDOI:10.11907/rjdk.151521
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:16727800(2015)008015802
0 引言
隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)、信息技術(shù)的高速發(fā)展,各高校普遍使用計算機信息系統(tǒng)來進(jìn)行各個部門的管理工作。相較于傳統(tǒng)的“一個系統(tǒng)一張認(rèn)證卡”的信息管理模式,當(dāng)前更多人傾向于對認(rèn)證信息進(jìn)行集成。在單位數(shù)字化工程中,一卡通成為最為重要的信息關(guān)聯(lián)核心,能實現(xiàn)更為高效和人性化的服務(wù)及管理。然而,隨著信息的高度集成,一卡通在為人們提供便捷綜合認(rèn)證服務(wù)的同時,其安全問題也隨之顯露。其中,如何實現(xiàn)身份的安全認(rèn)證是一個亟待解決的問題。
1 基于Java Card技術(shù)的一卡通體系結(jié)構(gòu)
一卡通的設(shè)計需要考慮其基本功能、安全性、多應(yīng)用、跨平臺等方面,要求同一張卡片提供多種服務(wù),且各業(yè)務(wù)之間不會相互影響,能夠獨立運行,這些要求通過Java Card技術(shù)能夠得到很好的解決。
1.1 Java Card技術(shù)
Java Card 技術(shù)是Sun公司結(jié)合Java技術(shù)和智能機技術(shù)推出的一種新的技術(shù)規(guī)范,提供了平臺獨立性,以及存儲和動態(tài)更新多種應(yīng)用的能力。Java Card系統(tǒng)中包括虛擬機、框架層、企業(yè)添加類、應(yīng)用程序等組成部分[1]。其中,Applet是在Java Card中運行的應(yīng)用程序,每張卡可以有多個Applet程序,可以動態(tài)裝載到卡上或者從卡上刪除。這些程序分別提供不同的服務(wù),如基本身份信息、電子錢包等,不同的Applet用application identifier(AID)來標(biāo)識。Applet之間設(shè)置了防火墻相隔離,保證服務(wù)之間的獨立運行狀態(tài)。此外,為了完成合法的穿越防火墻訪問,JCRE 提供了服務(wù)共享(shareable)機制,如果1個applet希望為其它applet提供自己的某些服務(wù), 可以通過服務(wù)共享機制允許其它applet穿越防火墻訪問自己共享的服務(wù)[2]。
1.2 校園一卡通架構(gòu)
結(jié)合校園需求特點,校園一卡通系統(tǒng)綜合了借閱、門禁、用餐、信息房的使用、消費、賬務(wù)管理、結(jié)算、數(shù)據(jù)傳輸?shù)榷喾矫娴膽?yīng)用。通過校園局域網(wǎng),用戶可以查詢個人信息,服務(wù)中心系統(tǒng)也能夠?qū)Ω鞴δ艿淖酉到y(tǒng)進(jìn)行統(tǒng)一管理,子系統(tǒng)之間也可以根據(jù)需要進(jìn)行信息的傳遞與交流。整個業(yè)務(wù)系統(tǒng)主要分為4部分,分別是個人信息識別、電子消費、學(xué)生/職工管理、信息綜合查詢,如圖1所示。
圖1 校園一卡通整體架構(gòu)
其中,個人信息識別主要涉及持卡人姓名、性別、照片信息、身份證號碼、出生年月、戶口所在地、系別、專業(yè)、校園身份(例如:學(xué)生、教師、行政人員、實習(xí)生等)、入學(xué)/入職時間、學(xué)號/教工號等相關(guān)個人信息,是個人信息的電子認(rèn)證功能,為校園內(nèi)的各種行為(如圖書館、考勤、門禁、網(wǎng)絡(luò)管理等)提供必要的身份認(rèn)證;電子消費主要承擔(dān)銀行卡的相關(guān)功能,包括校園內(nèi)部的小額消費和校園內(nèi)的大額消費兩種;學(xué)生/職工管理主要涉及校內(nèi)人員相關(guān)動態(tài)行為的記錄及管理;信息綜合查詢主要是對所有相關(guān)記錄進(jìn)行查詢,即用戶通過讀取一卡通數(shù)據(jù)查詢與自身相關(guān)的歷史信息。
根據(jù)具體需求,智能卡的數(shù)據(jù)設(shè)計主要包含3個主體:教職員工、在校學(xué)生以及畢業(yè)生。
教職員工主體主要包含三方面數(shù)據(jù)信息:基本應(yīng)用數(shù)據(jù)區(qū),主要存放照片、指紋、持卡人基本信息文件等不易發(fā)生改變的信息;公共應(yīng)用數(shù)據(jù)區(qū),主要存放由學(xué)校維護(hù)的反映持卡人基本信息的相關(guān)通用信息文件;校內(nèi)管理應(yīng)用數(shù)據(jù)區(qū),主要存放校內(nèi)使用的相關(guān)信息,如醫(yī)療、門禁、圖書館借閱等。
在校學(xué)生主體主要包含4方面的數(shù)據(jù)信息:其中,基本應(yīng)用、公共應(yīng)用和校內(nèi)管理應(yīng)用數(shù)據(jù)區(qū)與教職員工的基本類似,存放學(xué)生的一些特定基本信息;學(xué)生注冊數(shù)據(jù)區(qū),則記錄學(xué)生注冊信息、電子檔案以及學(xué)歷等相關(guān)信息。
畢業(yè)生主體主要包含四方面數(shù)據(jù)信息,其中,基本應(yīng)用數(shù)據(jù)區(qū)與前兩者相似,存放畢業(yè)生的相關(guān)信息;個人信息應(yīng)用數(shù)據(jù)區(qū),主要存放學(xué)生在校期間的相關(guān)活動行為,包括個人標(biāo)識特征信息、基本信息、各科考試成績、參與水平考試成績、獎懲信息等;學(xué)生就業(yè)情況數(shù)據(jù)區(qū),記錄學(xué)生從實習(xí)到就業(yè)的所有相關(guān)信息,幫助學(xué)生進(jìn)行就業(yè)跟蹤;學(xué)生貸款數(shù)據(jù)區(qū),主要包括學(xué)生在校期間的借貸信息及個人誠信水平等。
2 一卡通安全性分析及解決方案
Java Card平臺的開放性以及服務(wù)能夠動態(tài)下載、移除的特性,使得不同的卡外實體通過不同的服務(wù)提供者與卡上不同的Applet進(jìn)行交互。業(yè)務(wù)的復(fù)雜性增加了安全和管理問題的復(fù)雜性,由此產(chǎn)生的安全隱患也備受關(guān)注。這些安全和管理問題包括:鑒別非法訪問,包括終端對文件系統(tǒng)的非法訪問;多應(yīng)用服務(wù)的非法下載、使用、刪除;服務(wù)共享機制的非法下載、使用和刪除;卡上多應(yīng)用調(diào)用系統(tǒng)資源的合法性等。
卡外實體與卡上多應(yīng)用的相互身份識別,包括持卡人身份識別和卡上應(yīng)用身份識別。卡外實體和卡上應(yīng)用的安全通信,包括通信雙方的身份認(rèn)證,數(shù)據(jù)通信的保密性、完整性,通信數(shù)據(jù)序列的順序性等。
綜上分析得知,可信的身份認(rèn)證是解決所有安全隱患的關(guān)鍵。加密算法設(shè)置、密鑰管理、遠(yuǎn)程登錄口令確認(rèn)這3個方面是實現(xiàn)身份認(rèn)證的主要途徑,以確保持卡人無法非法獲取權(quán)限或服務(wù)非法調(diào)用系統(tǒng)資源。在本文中,加密算法采用PKI技術(shù)對認(rèn)證信息進(jìn)行加解密。
2.1 密鑰管理
密鑰是實施信息加解密的必要工具,經(jīng)過公鑰加密的信息只有對應(yīng)的私鑰才能解密還原原始信息。因此,使用不同級別的公鑰對信息進(jìn)行加密可以實現(xiàn)權(quán)限分級,保障用戶或服務(wù)的合法權(quán)限分配。
具體做法為:在卡上開發(fā)一個卡管理的Applet,該應(yīng)用程序的主要任務(wù)是管理和維護(hù)一組密鑰集,密鑰集的數(shù)目可根據(jù)權(quán)限需求確定,采用服務(wù)共享機制(shareable)提供服務(wù),不同的密鑰集對應(yīng)不同的安全等級,例如文件系統(tǒng)訪問的權(quán)限等級、不同Applet分權(quán)限下載、安裝、刪除等。當(dāng)需要進(jìn)行某種級別的安全操作時,卡外實體利用選定的某個密鑰集,與卡管理Applet中的對應(yīng)密鑰集進(jìn)行相互身份認(rèn)證,確認(rèn)權(quán)限等級。雙向認(rèn)證通過后,卡外實體可下載、使用Applet提供的服務(wù),而Applet也可以對外提供符合身份等級權(quán)限的安全服務(wù),同時Applet也可以向服務(wù)提供商申請下載、調(diào)用經(jīng)身份認(rèn)證后才允許提供的安全服務(wù)。
2.2 登錄口令確認(rèn)
動態(tài)口令認(rèn)證系統(tǒng)主要由兩部分組成:客戶端操作和服務(wù)器端認(rèn)證。客戶端將代表用戶身份的唯一性識別碼(固定部分)和某種變化的因素(可變部分)作為輸入?yún)?shù),經(jīng)過特定算法運算得到一個動態(tài)口令。在服務(wù)器認(rèn)證端進(jìn)行同樣的操作,并與客戶端送來的登錄信息進(jìn)行比較,若兩者匹配,則認(rèn)證通過[3]。其中,客戶端的固定部分包括卡的唯一標(biāo)識碼和自身隨機生成的3DES密鑰,可變部分為置于卡端和服務(wù)器端的計數(shù)器因子,每認(rèn)證成功一次計數(shù)器加1。具體步驟如下:
客戶端操作:首先隨機生成一個3DES密鑰deskey,并將卡內(nèi)該應(yīng)用的計數(shù)器初始化為0,獲取卡唯一性標(biāo)志碼ICCID,通過shareable獲取與其身份相對應(yīng)的密鑰集SP。利用SP將ICCID和deskey進(jìn)行加密運算,將生成的加密后的信息info發(fā)送至認(rèn)證服務(wù)器端。
服務(wù)器端操作:接收來自客戶端的info信息,根據(jù)參數(shù)判斷注冊過程后,利用相應(yīng)權(quán)限的私鑰進(jìn)行解密,獲取客戶端的ICCID和隨機生成的deskey,依據(jù)約定將計數(shù)器置為0。
至此,雙方均擁有了一致的口令因子??蛻舳死?個口令因子進(jìn)行相應(yīng)的計算得到一個動態(tài)口令,之后計數(shù)器加1,并將此口令發(fā)送至服務(wù)器驗證。服務(wù)器端接收到來自客戶端的口令后,使用相同的計算因子和算法得到一個動態(tài)口令,將此口令與客戶端口令相比對。若口令一致,則通過驗證,為客戶提供所選密鑰集權(quán)限下的相關(guān)服務(wù),同時計數(shù)器加1。具體流程如圖2所示。
3 結(jié)語
從Java Card技術(shù)本身而言,其具有平臺獨立、一卡多用、復(fù)用、應(yīng)用開發(fā)簡單快速等特點。但隨著高校服務(wù)項目的增多,消費內(nèi)容也在不斷增加,在實際應(yīng)用中,除了要考慮整體網(wǎng)絡(luò)架構(gòu),還要考慮卡內(nèi)應(yīng)用程序和接口程序的安全性以及持卡人身份認(rèn)證和權(quán)限分配問題,從而最大程度上保證一卡通的安全使用。本文在討論校園一卡通架構(gòu)的基礎(chǔ)上,從帶權(quán)限的密鑰集選擇和動態(tài)口令生成這兩個方面進(jìn)行了探討,使得用戶能夠在更加安全的環(huán)境中進(jìn)行服務(wù)的選擇和應(yīng)用。
參考文獻(xiàn):
[1] 田文進(jìn).JavaCard技術(shù)在數(shù)字化校園一卡通中的應(yīng)用[J].電子測試,2013(19):250251.
[2] 董威.基于JavaSIM卡的GlobalPlatform安全技術(shù)研究[J].北京郵電大學(xué)學(xué)報,2006(3):9194.
[3] 唐倩.基于Java_SIM卡的移動身份認(rèn)證解決方案和關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2011.
[4] 宮萍.基于JavaCard的校園和科研院所一卡通的應(yīng)用設(shè)計[J].四川兵工學(xué)報,2012(7):114116.
[5] 李明江.基于JavaCard的校園一卡通的應(yīng)用設(shè)計[J].黔南民族師范學(xué)院學(xué)報,2009(6):2428.
(責(zé)任編輯:孫 娟)