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