相對傳統(tǒng)的紙券、磁卡等信息介質(zhì),非接觸IC卡以其存儲容量大、數(shù)據(jù)穩(wěn)定性高、簡單的讀寫性、防偽性能強的優(yōu)點在高速公路收費系統(tǒng)的運營中得到廣泛的應(yīng)用。
在IC卡開發(fā)運用方面,一般采用兩種操作方式,即采用塊(Block)操作方式和文件(File)操作方式。塊操作讀寫方式按塊來操作,讀寫不方便,容易被破 解 密 碼?,F(xiàn)在的IC卡大部分都采用文件密文加密方式。按文件操作方式,兩扇區(qū)的密鑰都不一樣,保密性得到提高。文件操作方式實際上是采用按扇區(qū)批量讀寫數(shù)據(jù)的管理方法,在大批量讀寫速度上也得到了提高,操作更方便。高速公路的密鑰發(fā)行管理軟件是基于這種文件讀寫方式而開發(fā)的。
高速公路聯(lián)網(wǎng)收費IC卡開發(fā)運用概述
現(xiàn)階段在高速公路上IC卡運用最廣泛的是非接觸邏輯加密卡,即Mifare One卡,其次是已經(jīng)興起并得到運用的CPU雙界面卡,即MifarePro卡??ㄆ能浖_發(fā)運用主要有兩個方面:一、卡片的發(fā)行;二、卡片的個人化。
一、卡片的發(fā)行
高速公路聯(lián)網(wǎng)收費的卡片發(fā)行遵循卡片統(tǒng)一管理和統(tǒng)一發(fā)行的原則。IC卡密鑰統(tǒng)一管理是系統(tǒng)安全和統(tǒng)一的重要保證,IC卡密鑰統(tǒng)一發(fā)行是實現(xiàn)高速公路聯(lián)網(wǎng)收費的重要保證?;贗C卡安全管理的要求以及密鑰管理基本原則,選用接觸式CPU卡作為密鑰管理的基本載體。
二、卡片的個人化:
開發(fā)者需要設(shè)計并建立IC卡應(yīng)用系統(tǒng)的中心數(shù)據(jù)庫,庫中保存系統(tǒng)數(shù)據(jù)及各持卡人的專用數(shù)據(jù),這是任何一種卡基本應(yīng)用系統(tǒng)必備的。發(fā)卡站負責發(fā)行新卡,包括按規(guī)定格式,對新卡作初始化,分區(qū)及寫入分區(qū)密碼,寫入原始數(shù)據(jù)。此中心也常用于舊卡添加數(shù)據(jù)和收費。發(fā)卡站與區(qū)域中心數(shù)據(jù)庫聯(lián)結(jié),寫卡時同時更新中心數(shù)據(jù)庫。結(jié)算和掛失工作站則用于對日常業(yè)務(wù)進行結(jié)算。同時可以處理IC卡掛失,重失和銷毀報廢工作。顯然也必須與中心庫連接,對庫中數(shù)據(jù)進行更新。
IC卡在軟件開發(fā)應(yīng)用中問題的提出
在非接觸IC卡的軟件開發(fā)應(yīng)用當中難免會遇到一些技術(shù)上的問題。從技術(shù)上講,非接觸邏輯加密卡片的容量是1024個字節(jié),去掉每個扇區(qū)的密碼塊,按理應(yīng)可存儲小于等于768個字節(jié)的數(shù)據(jù),但信息存儲越多,讀寫的時間越長,不穩(wěn)定的因素就越大。這其中有幾個方面的原因,一、跟卡片的質(zhì)量有關(guān),二、跟刷卡的距離、角度、速度有關(guān);三、跟軟件開發(fā)有關(guān)??ㄆ馁|(zhì)量主要來自廠家對卡片的生產(chǎn)上的工藝要求。在這里,我主要是講軟件開發(fā)應(yīng)用當中的因素。
非接觸邏輯加密卡在讀寫天線的上方操作的距離應(yīng)小于10CM,實際應(yīng)用當中的最佳距離應(yīng)在0到5cm。當卡片在讀寫天線上以蘭定的速度劃過,就可能會出現(xiàn)待寫入的數(shù)據(jù)信息一部分寫進去,一部分沒寫進去,甚至更嚴重的是把卡里的內(nèi)容寫壞。導(dǎo)致MAC碼(報文鑒別碼Message Authentication Code)認證失敗。因為我們很難規(guī)定操作者在刷卡中一定要按照15 的斜角在有效的范圍內(nèi)操作卡片,卡片在讀卡天線上來回的晃動,最易造成壞卡。即寫到IC卡內(nèi)的信息因刷卡操作不當導(dǎo)致寫入無效的數(shù)據(jù)。該無效的數(shù)據(jù)來源于讀寫機具系統(tǒng)提供的初始值。例如:高速公路入口刷卡寫入當前的Unix時間,由于刷卡的不當導(dǎo)致讀寫機具默認的寫入的數(shù)據(jù)為0,則出口讀出的時間將是1970年1月1日刷的卡。因此,在軟件開發(fā)運用中就應(yīng)該有容錯性。
當然,在IC卡的開發(fā)過程當中,IC卡每一步驟的讀寫失敗都會有錯誤返回碼,可以利用該錯誤的返回碼來判斷這次卡片的讀寫情況的。并根據(jù)情況提示操作人員重新刷卡,直到待寫入的信息完整無誤的寫入到IC卡內(nèi)。最終提示刷卡成功。但在實際應(yīng)用當中是會有這樣的一種情況產(chǎn)生的。既IC卡寫數(shù)據(jù)信息成功,沒有錯誤的返回碼,但是其中的不穩(wěn)定的光電信號導(dǎo)致寫入的信息有誤,當然這是比較難發(fā)生的事。這就是它的抗靜電和紫外線的能力弱的缺點。同樣的,在Mifare Pro卡,既CPU雙界面卡的運用當中也會存在著這些問題。CPU雙界面卡的認證過程比較復(fù)雜,往往被運用在高速公路一卡通行的儲值卡、記帳卡中。因此在開發(fā)及實際操作當中更不允許出錯,必需要有容錯功能,否則會出現(xiàn)扣了款的儲值卡返回扣款未成功的返回碼。
城市公交系統(tǒng)的運用中的非接觸邏輯加密卡在操作上運用了電子錢包,其中利用備用數(shù)據(jù)塊,在最大程度上解決了非接觸加密卡的不穩(wěn)定因素。
解決卡片的操作問題主要有以下幾方面:
一、從操作上盡量規(guī)范操作;
1、傳統(tǒng)方式的卡片操作是操作員在機具上按照一定的距離、速度、角度進行刷卡,當然最有效的方式就是放在機具上。規(guī)范操作如下圖示:
規(guī)范1:
IC卡與讀卡器距離≤5CM且呈≥150 交角,在天線上方,由上至下移動,直至車道收費程序提示“寫卡”、“讀卡”成功。
規(guī)范2:
IC卡在讀寫器呈上方≤5cm,由左至右移動,穿越天線,移動時間≥1s。
規(guī)范的卡片操作,可使卡片在讀卡器上方被鎖定的時間足夠在小于200毫秒的讀寫時間里完成一次讀寫任務(wù)。
減少讀寫不成功的機率。
2、目前,有些高速公路采用卡箱的管理方式,包括半自動卡箱和全自動卡箱。卡片在車道讀寫中采用機械方式,將卡片通過插入裝置送入讀寫槽里,讓卡片充分和讀寫機具在有效范圍內(nèi)接觸,待卡片讀寫完全成功后,再由讀寫槽送出來。入口發(fā)給司機或出口自動回收入卡箱。這種方式大大減少因為人為的操作所帶來的機具讀寫失誤,最小程度的防止壞卡的形成,有效的減少卡片因損壞而帶來的資源浪費。同時,利用卡箱管理卡片可減少人為地對卡片的作弊行為。
二、盡量減少讀寫數(shù)據(jù)量;
卡片里的數(shù)據(jù)越多,讀寫的時間開銷越大,讀寫時間過長,出錯的機率更大。
1、在IC卡數(shù)據(jù)格式定義上,盡可能少用字符串的定義,如時間的定義按Unix的格式;公務(wù)卡里的免費范圍按位(Bit)義。既一個位代表一個免費路段。
2、在出口處理卡片信息上,可不對卡片內(nèi)容清空,而是在根據(jù)入口攜帶的信息計算出費率后,直接置回收標志,減少因清空卡里的信息所帶來的時間開銷。甚至還沒來的及清空數(shù)據(jù),操作員已經(jīng)把卡片移走,導(dǎo)致無法清空數(shù)據(jù)。
3、盡量將數(shù)據(jù)壓縮在一個扇區(qū)內(nèi)。避免一個完整的數(shù)據(jù)字段被分割成兩段被定義在一個連續(xù)的兩個文件(扇區(qū))內(nèi)或不連續(xù)的兩個文件(扇區(qū))內(nèi)。
三、可能對讀寫數(shù)據(jù)進行驗證:
IC卡片里內(nèi)容的性質(zhì)可根據(jù)需要分為,重要數(shù)據(jù)和次要數(shù)據(jù)。如入口區(qū)域編碼、路段編碼、站編碼、車型、車種時間等屬于重要的數(shù)據(jù);入口收費員信息、工班信息等屬干次要信息。把重要的數(shù)據(jù)盡可能規(guī)劃到同一扇區(qū)的同一數(shù)據(jù)塊里。然后對重要的數(shù)據(jù)按字節(jié)進行累加求和或按位異或,然后把校驗結(jié)果放在卡里。在入口時,可對寫入卡片的內(nèi)容迅速的進行校驗,出口讀卡時將重要的數(shù)據(jù)按入口的校驗方法和卡里的校驗結(jié)果進行比較。通過這種校驗手段,可檢查出入口卡的信息是否被改寫過。
四、壞卡的查詢處理;
應(yīng)用環(huán)節(jié)中的壞卡有三種:一、物理損壞的卡片;二、MAC碼信息錯;三、帶有錯誤信息的卡片。
物理損壞的卡片在讀寫機具上操作時是無任何反應(yīng)的;MAC碼丟失,則提示MAC錯誤,這是卡片在使用過程中,被人為破壞導(dǎo)致MAC碼丟失;帶有錯誤信息的卡片是入口的重要信息丟失,無法根據(jù)入口信息計算費率。
對于壞卡的處理可采用出口壞卡查詢,它是根據(jù)操作員在出口的車道界面輸入的卡表面唯一號,并由系統(tǒng)軟件通過計算機網(wǎng)絡(luò),結(jié)合后臺查詢服務(wù)程序,返回車輛入口的收費信息及圖像,作為出口車道的入口依據(jù),重新計算出收費費率。以完成一次收費過程。
五、Mifare Pro卡刷卡失敗處理
Mifare Pro卡既雙界面CPU卡,也稱兩片式電子標簽。它既可以是接觸的讀寫(既通過不停車收費的車載設(shè)備(OBU)與路側(cè)設(shè)備(RSU)微波讀寫控制器通訊)又可以是在人工收費車道非接觸讀寫器上操作。儲值卡或記帳卡通常是采用這種這種卡片結(jié)構(gòu)的。當然這要求讀寫機具同時要能讀寫、認證兩種卡片,整個刷卡過程當中是要經(jīng)過嚴密的認證過程的。在實際應(yīng)用中,因刷卡操作不當,卡片在刷卡的過程中是會出現(xiàn)認證失敗或扣款失敗。也因此出現(xiàn)卡片的出口回寫標志已寫成功,而對電子錢包操作扣款又失敗的問題。即出現(xiàn)扣了款卻返回扣款失敗的錯誤碼。對于這個問題的解決,可通過前端軟件循環(huán)的邏輯判斷,判斷的條件是只能允許反復(fù)的對同一張卡片(既卡號相同)進行操作,直至所有認證通過并且完全扣款成功。僅當扣完款的卡片及成功回寫回收標志的卡片是不可以再次刷卡的。當然,除了從軟件上來防止錯誤,還可以采用前面提到的用卡箱的機械讀寫管理操作方式,避免錯誤。
<