隨著國民經(jīng)濟(jì)的不斷發(fā)展,我國城市公用事業(yè)的發(fā)展也取得了很大成就,特別是利用IC卡作為收費(fèi)管理的媒介,實(shí)施城市一卡通系統(tǒng),已在國內(nèi)許多城市成功應(yīng)用,為市民的日常生活提供了極大的方便,得到普通百姓和各級管理部門的廣泛認(rèn)可。
建設(shè)部為了對全國范圍內(nèi)各城市建設(shè)事業(yè)一卡通工程提供可靠的安全標(biāo)準(zhǔn),開發(fā)了“建設(shè)事業(yè)IC卡密鑰管理系統(tǒng)”,提供了密鑰管理的統(tǒng)一標(biāo)準(zhǔn)和IC卡結(jié)構(gòu)的統(tǒng)一規(guī)范,提高了系統(tǒng)的安全性能。
“建設(shè)事業(yè)IC卡密鑰管理系統(tǒng)”是經(jīng)建設(shè)部IC卡應(yīng)用服務(wù)中心授權(quán)并經(jīng)城市行政主管部門認(rèn)可的由城市發(fā)卡機(jī)構(gòu)管理和操作的IC卡安全管理系統(tǒng)。該系統(tǒng)主要用于生成管理城市內(nèi)充值安全認(rèn)證卡、用戶卡和管理卡。各城市首先由主管領(lǐng)導(dǎo)生成城市總控卡,并結(jié)合建設(shè)部發(fā)放的城市主密鑰卡生成城市密鑰母卡。由城市密鑰母卡生成并裝載ISAM卡和用戶卡密鑰。在“城市一卡通”系統(tǒng)中,用戶卡的充值業(yè)務(wù)是系統(tǒng)整體設(shè)計(jì)中的重要環(huán)節(jié),應(yīng)用ISAM卡進(jìn)行充值授權(quán)認(rèn)證,是保證系統(tǒng)安全性的重要手段。目前,充值方式有脫機(jī)充值和在線聯(lián)機(jī)充值兩種解決方案。作為脫機(jī)充值方式,雖然初期投入成本較低,但存在著種種弊端和安全隱患。
● 黑名單發(fā)布滯后
● 未及時上傳充值數(shù)據(jù)造成用戶卡清算不平衡
● 脫機(jī)充值設(shè)備損壞造成充值數(shù)據(jù)丟失
● 對充值操作的權(quán)限控制及業(yè)務(wù)監(jiān)控能力不強(qiáng)
以上情況,均會對IC卡用戶及一卡通運(yùn)營商造成不必要的損失。隨著網(wǎng)絡(luò)連接成本的逐步降低以及用戶對于系統(tǒng)安全性要求的進(jìn)一步提高,聯(lián)機(jī)充值方式逐漸成為首選方案。
從系統(tǒng)設(shè)計(jì)角度看,聯(lián)機(jī)充值系統(tǒng)應(yīng)采用“三層體系結(jié)構(gòu)”,即前臺客戶機(jī)系統(tǒng)——中間件應(yīng)用服務(wù)器系統(tǒng)——后臺中心數(shù)據(jù)庫系統(tǒng)。通過中間件將前臺客戶機(jī)與后臺數(shù)據(jù)庫聯(lián)系起來,有利于系統(tǒng)的安全性、可靠性和可擴(kuò)充性。聯(lián)機(jī)充值業(yè)務(wù)系統(tǒng)示意圖如圖1所示。
圖1 聯(lián)機(jī)充值業(yè)務(wù)系統(tǒng)示意圖
對于前臺客戶機(jī)系統(tǒng),有多種實(shí)現(xiàn)方式。除去城市一卡通中心自辦網(wǎng)點(diǎn)外,同時利用銀行、郵局的現(xiàn)有網(wǎng)點(diǎn)開辦聯(lián)機(jī)充值業(yè)務(wù),可以顯著解決充值網(wǎng)點(diǎn)數(shù)量偏少,用戶充值不方便的問題。但是,由于在線充值的業(yè)務(wù)數(shù)據(jù)需要通過網(wǎng)絡(luò)傳輸,在制定相應(yīng)的異常處理,即沖正流程時,需要考慮網(wǎng)絡(luò)故障的情況。借以保證后臺數(shù)據(jù)庫與前臺終端的數(shù)據(jù)一致性。
網(wǎng)點(diǎn)客戶機(jī)進(jìn)行充值時,由讀寫機(jī)具完成對卡片的充值操作,通過認(rèn)證卡內(nèi)密鑰與ISAM卡是否匹配來確定是否是本系統(tǒng)卡??蛻舳顺绦虬l(fā)送給讀寫機(jī)具讀卡指令后,讀寫機(jī)具會將卡內(nèi)的信息發(fā)送給客戶端,用來顯示給客戶。如果繼續(xù)充值,那么需要根據(jù)相應(yīng)提示來確定充值金額。此時充值交易開始,客戶端將充值金額和相關(guān)內(nèi)容組成充值請求報文,發(fā)送給中間件。中間件首先判斷請求報文是否合法以及有效,然后查詢黑名單并進(jìn)行充值權(quán)限和授權(quán)充值額度的認(rèn)證。認(rèn)證通過后,后臺交易流程開始,數(shù)據(jù)庫記錄本筆充值交易數(shù)據(jù),相應(yīng)扣減網(wǎng)點(diǎn)的充值額度,并將充值內(nèi)容通過客戶端返回給讀寫機(jī)具。讀寫機(jī)具根據(jù)發(fā)送回來的內(nèi)容,再利用ISAM卡計(jì)算充值密鑰,依據(jù)充值規(guī)則對用戶卡進(jìn)行充值。充值成功后,由客戶端向后臺返回充值成功報文,充值交易及后臺交易流程均結(jié)束。充值流程示意圖如圖2所示。(見后圖)
如果充值過程中發(fā)生意外,無論是網(wǎng)絡(luò)故障還是讀寫卡片時出現(xiàn)異常,客戶端均進(jìn)入沖正流程。沖正流程的原則是卡片先沖正,后臺再沖正,以保證數(shù)據(jù)安全性。沖正流程示意圖如圖3所示。(見后圖)
這樣,一卡通中心可以通過向代理網(wǎng)點(diǎn)配備IC卡讀寫機(jī)具的方式來授權(quán)其辦理充值業(yè)務(wù),并且可以實(shí)時監(jiān)控各個網(wǎng)點(diǎn)的工作情況,從而解決使用脫機(jī)充值系統(tǒng)導(dǎo)致的黑名單滯后以及對充值操作的權(quán)限控制能力不強(qiáng)等種種問題。
在進(jìn)行系統(tǒng)設(shè)計(jì)時,因?yàn)橛脩羲玫腎C卡一般為邏輯加密卡,卡片本身沒有智能身份驗(yàn)證功能,因此在規(guī)劃設(shè)計(jì)卡片結(jié)構(gòu)時,需要依照建設(shè)部規(guī)范,實(shí)行“一卡一密”,同時將安全認(rèn)證機(jī)制封裝在讀寫機(jī)具內(nèi)部。
客戶機(jī)在與中間件通訊時,通訊報文采用密文傳輸。傳輸密鑰由一卡通中心依據(jù)“一卡一密”的原則事先生成,存放于ISAM卡內(nèi)。由客戶機(jī)/讀寫機(jī)具利用傳輸密鑰對通訊報文進(jìn)行加、解密,以保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
通過對業(yè)務(wù)邏輯進(jìn)行封裝的方式,僅對客戶機(jī)系統(tǒng)開放中間件和讀寫機(jī)具的通訊接口,達(dá)到了保證系統(tǒng)安全的目的。通過制定沖正流程,可以解決系統(tǒng)的數(shù)據(jù)一致性的問題,使得在線充值解決方案更加完善,從而可以推動城市一卡通系統(tǒng)的進(jìn)一步發(fā)展。
圖2 在線充值流程示意圖
圖3 沖正流程示意圖