LEGIC非接觸IC卡系統(tǒng)安全性分析與應(yīng)用
文章出處:http://56733.cn 作者:萬振凱 人氣: 發(fā)表時間:2011年09月29日
非接觸IC卡的用途極為廣泛, 各廠商由于自身的背景及目標(biāo)市場定位不同, 其推出的非接觸IC卡也有不同的特點(diǎn)目前的非接觸IC卡可分為射頻卡、非接觸邏輯加密卡、非接觸CPU卡、混合卡和復(fù)合卡。其中, 非接觸邏輯加密卡應(yīng)該是企業(yè)級用戶選型中的優(yōu)選產(chǎn)品智能卡系統(tǒng)的安全性是必須關(guān)注的重要指標(biāo)對于眾多的非接觸邏輯加密卡, 不同廠家在安全性設(shè)計(jì)上有較大的不同, 安全級別差異很大。
LEGIC公司因?yàn)閾碛卸嗄陱氖掳卜喇a(chǎn)品設(shè)計(jì)的豐富經(jīng)驗(yàn), 因此其推出的非接觸IC卡, 是依其獨(dú)特的安全理念和專利技術(shù)而研制的在同類產(chǎn)品中居于領(lǐng)先地位, 其他類似產(chǎn)品已有被破譯的報(bào)道, 而LEGIC至今還沒有, 因此高安全性是比非接觸IC卡的一大特點(diǎn)。本文對此進(jìn)行分析, 并研究其在校園網(wǎng)中的應(yīng)用
1、LEGIC非接觸IC卡安全機(jī)制分析
LEGIC保密模塊SM05-S內(nèi)部含有高度集成電路元件, 其中包括RF載波電路部分, 能完成電磁能量的發(fā)送并將數(shù)字信號疊加在LEGIC數(shù)據(jù)載波上, 從數(shù)據(jù)載波中接收信號數(shù)據(jù);數(shù)字電路部分, 能對發(fā)送的數(shù)據(jù)執(zhí)行加密、解密、調(diào)制、解調(diào),將不同的接口數(shù)據(jù)信號轉(zhuǎn)換傳送給應(yīng)用計(jì)算機(jī)或微處理控制器所以能夠?qū)崿F(xiàn)應(yīng)用系統(tǒng)復(fù)雜的保密概念, 如認(rèn)證、授權(quán)、數(shù)據(jù)組織概念、讀寫保護(hù)及系統(tǒng)設(shè)置等在系統(tǒng)中, 讀寫器(WRU)與感應(yīng)卡(MIM)之間建立通訊的過程和實(shí)際數(shù)據(jù)通訊的過程都采用嚴(yán)密的加密算法當(dāng)感應(yīng)卡進(jìn)人讀寫器的天線范圍, 讀卡器就自動執(zhí)行互相認(rèn)證的過程, 如圖1
圖1 LEGIC讀卡器認(rèn)證過程
圖1中, 讀寫器中的SM 模塊通過天線發(fā)射一個隨機(jī)數(shù), 當(dāng)感應(yīng)卡進(jìn)入天線的接收范圍, 并接收到SM模塊發(fā)射的隨機(jī)數(shù)后, 即將該隨機(jī)數(shù)與卡內(nèi)的密碼進(jìn)行加密運(yùn)算, 并將結(jié)果返回給SM 模塊,SM 模塊將感應(yīng)卡返回的結(jié)果與原機(jī)數(shù)進(jìn)行反運(yùn)算, 即可確認(rèn)感應(yīng)卡的合法性合法性認(rèn)證的過程同時產(chǎn)生新的密碼用于隨后所有通訊數(shù)據(jù)的加密該加密方式每次都使用不同的隨機(jī)數(shù)作為加密密匙的一部分, 增加了破解難度, 并避免了通訊數(shù)據(jù)被重復(fù)利用進(jìn)行欺詐的可能。
LEGIC非接觸IC卡中與存取控制有關(guān)的參數(shù)主要有:寫保護(hù)WRP, 該參數(shù)定義了一段不可寫的字節(jié)空間讀保護(hù)位RD, 該參數(shù)的設(shè)置防止未經(jīng)授權(quán)的讀寫器讀取卡中的信息;授權(quán)密碼, 該密碼用于與模塊中的授權(quán)密碼進(jìn)行核對以確認(rèn)模塊對卡的讀寫權(quán)限。
讀寫器對感應(yīng)卡的讀寫權(quán)限的核準(zhǔn)是由固化在SM 模塊的專用芯片(ASIC)中的軟件自動完成的, 不受應(yīng)用軟件的控制。一般來說, 模塊必須具有與感應(yīng)卡中授權(quán)密碼相匹配的授權(quán)密碼授權(quán), 才能對卡進(jìn)行讀寫, 如圖2所示所謂匹配是指密碼完全相等或SM 模塊中的授權(quán)密碼開頭的一段與卡中的密碼相同清除模塊的所有授權(quán)
圖2讀寫器對感應(yīng)卡讀寫認(rèn)證圖
SM模塊獲取授權(quán)密碼的過程稱為SM 模塊的授權(quán)。如上所述, 只有經(jīng)過授權(quán)的模塊才能對相應(yīng)的感應(yīng)卡進(jìn)行讀寫, 因此模塊的授權(quán)相當(dāng)于系統(tǒng)密匙的下載。授權(quán)密碼存放在SM 模塊的中EEPROM, 對應(yīng)用程序來說, 這些密碼是不可寫的, 但可以讀和刪除。授權(quán)密碼的寫入只能在SM 模塊的控制下通過讀取“ SM 授權(quán)卡”來完成, 如圖3所示。
授權(quán)的取消則可以通過3種方式來進(jìn)行①軟件方式, 即應(yīng)用程序可以通過指令刪除SM 模塊中的授權(quán)密碼; ②讀卡方式, 與SM 模塊的授權(quán)一樣, 可以用取消授權(quán)卡來與該卡授權(quán)密碼相匹配的授權(quán), 如圖4所示; ③硬件方式, SM 模塊有一個授權(quán)密碼清除端,當(dāng)SM 上電復(fù)位時, 如果該端接低電平, 則復(fù)位過程將清除模塊的所有授權(quán)。
圖3 SM 模塊的授權(quán)與取消授權(quán)
圖4 SM 取消授權(quán)示意圖
未進(jìn)行初始化的空白卡, 卡內(nèi)的授權(quán)密碼是空白的。任何SM 模塊都可以對卡進(jìn)行讀寫所以一定要對卡進(jìn)行初始化, 即定義卡的授權(quán)密碼、讀保護(hù)、寫保護(hù)等安全參數(shù)與其它IC 卡的初始化過程不同,LEGIC非接觸IC卡的初始化必須在專用授權(quán)模塊(MSM)的控制下進(jìn)行,在MSM模塊對空白卡進(jìn)行初始化之前,必須得到高級別授權(quán)卡的授權(quán), 并且初始化后的卡必須繼承該授權(quán)卡的授權(quán)密碼作為其授權(quán)密碼的一部分例如, 要生成授權(quán)密碼為“3824A034 ” 的新卡, 則必須得到授權(quán)密碼為“3824 ” 的授權(quán)卡的授權(quán)新生成的卡則成為其授權(quán)卡的“ 下級” , 如圖5所示
LEGIC非接觸IC 卡系統(tǒng)為用戶提供了一套完整的安全體系, 所有存取控制都由模塊中的固化程序完成, 應(yīng)用程序中無須保存系統(tǒng)的讀寫密碼, 既使破解應(yīng)用程序也不會破壞系統(tǒng)的安全性由于模塊的授權(quán)和卡的初始化均由授權(quán)卡來控制, 因此既使獲知系統(tǒng)的授權(quán)密碼, 而沒有相應(yīng)的授權(quán)卡, 也無法讀寫該系統(tǒng)的卡或制造偽卡。
圖5 IC卡初始化示意圖
由于LEGIC系統(tǒng)的安全性主要依賴于SM/MSM模塊, 并且所有授權(quán)均由卡控制所以授權(quán)卡和已授權(quán)模塊的保管就相當(dāng)重要為避免授權(quán)的流失, 可在應(yīng)用系統(tǒng)中采取適當(dāng)?shù)姆婪洞胧?。?shí)際應(yīng)用中, 可對IC卡中存放的關(guān)鍵信息進(jìn)行加密例如, 在電子錢包系統(tǒng)中對金額項(xiàng)采用鑒別算法進(jìn)行加密, 并將芯片號作為密匙的一部分以防止讀卡進(jìn)行非法復(fù)制。鑒別算法的一個例子是DAS(Decimal shift and add)算法, 用該算法對金額進(jìn)行鑒別碼運(yùn)算可描述為:
鑒別碼=DAS(金額, 密匙+芯片號)
通過對鑒別碼的鑒別, 讀寫器可識別數(shù)據(jù)的真?zhèn)?而未掌握算法及密匙的非法讀寫將不能產(chǎn)生正確的鑒別碼
2 LEGIC非接觸IC卡的指令流程
非接觸式IC卡接收到讀卡器的指令后, 經(jīng)過指令譯碼, 在有限狀態(tài)機(jī)的控制下, 進(jìn)行數(shù)據(jù)處理, 并返回相應(yīng)的處理結(jié)果非接觸IC卡與讀卡器之間一個完整的交易過程如圖6所示
其進(jìn)人讀卡器的天線感應(yīng)范圍經(jīng)過一段時間的延遲,非接觸IC卡上電復(fù)位, 進(jìn)人停頓狀態(tài), 在此狀態(tài)下可接收讀卡器發(fā)送的請求應(yīng)答指令當(dāng)卡接到讀卡器的請求應(yīng)答指令后, 返回卡的類型號, 隨即讀卡器發(fā)送防沖突指令, 系統(tǒng)進(jìn)人防沖突循環(huán)中, 防沖突循環(huán)結(jié)束后, 讀卡器發(fā)出選卡指令, 選中其中一張卡, 在此階段,非接觸IC卡處于準(zhǔn)備就緒狀態(tài)被選中的卡隨即進(jìn)人激活狀態(tài), 在激活狀態(tài)令非接觸IC卡接收到讀卡器發(fā)送的相互認(rèn)證指令, 檢查雙方的合法性, 如果認(rèn)證通過, 即可進(jìn)行下一步的讀、寫、加、減等交易操作上述操作完成后, 讀卡器發(fā)送停止指令, 非接觸IC卡從激活狀態(tài)返回到停頓狀態(tài), 一次交易結(jié)束在對卡內(nèi)數(shù)據(jù)進(jìn)行讀寫操作之前, 需要進(jìn)行從請求應(yīng)答到相互認(rèn)證的過程, 如果在這個過程期間出現(xiàn)錯誤, 也將使讀寫操作不能進(jìn)行實(shí)現(xiàn)上述過程的操作都是由卡中的有限狀態(tài)機(jī)控制的有限狀態(tài)機(jī)一方面將讀卡器的指令接收、識別, 另一方面對當(dāng)前的工作狀態(tài)進(jìn)行分析, 發(fā)現(xiàn)滿足指令執(zhí)行的條件, 就執(zhí)行讀卡器指定的操作如果發(fā)現(xiàn)指令不滿足執(zhí)行的條件, 有限狀態(tài)機(jī)將控制卡向讀卡器發(fā)出出錯信息, 并將工作狀態(tài)返回至停頓狀態(tài)如果讀卡器再要對該卡進(jìn)行操作, 只有從頭開始直到所有的步驟滿足條件并執(zhí)行為止。
單片機(jī)系統(tǒng)主程序框圖如圖7,在完成各項(xiàng)初始化后, 就進(jìn)人檢測卡、掃描鍵的循環(huán), 等待轉(zhuǎn)人卡處理或各功能鍵處理子程序中間若有顯示中斷請求, 就執(zhí)行顯示字段的移位刷新若有串行通信中斷請求, 就接收主機(jī)發(fā)來的掛失卡號或向主機(jī)發(fā)送消費(fèi)記錄數(shù)據(jù)。
圖7 非接觸卡指令流程圖
3 LEGIC非接觸IC卡的網(wǎng)絡(luò)組成方式及其應(yīng)用
基于LEGIC系統(tǒng), 開發(fā)校園一卡通系統(tǒng), 其組網(wǎng)方式如圖8所示
圖8 LEGIC系統(tǒng)的組網(wǎng)方式圖
在校園中應(yīng)用時, 卡管理中心服務(wù)器掛接在校園網(wǎng)上, 與系統(tǒng)的其它部分進(jìn)行交互, 是校園一卡通系統(tǒng)中校園部分的核心;學(xué)校通訊前置機(jī)主要用于一卡通系統(tǒng)校園網(wǎng)部分與銀行部分的信息交換;各系統(tǒng)通過RS485網(wǎng)絡(luò)群集經(jīng)校園網(wǎng)以TCP/IP協(xié)議與卡管理中心服務(wù)器進(jìn)行信息交互機(jī)房收費(fèi)系統(tǒng)通過機(jī)房收費(fèi)機(jī)經(jīng)校園網(wǎng)與卡管理中心服務(wù)器交互信息校商店、活動中心、浴室、娛樂中心等離散收費(fèi)點(diǎn), 通過RS485網(wǎng)絡(luò)直連到卡管理中心的網(wǎng)卡上;安裝于校園中的圈存機(jī), 連接到銀行和學(xué)??ü芾碇行幕蜇?cái)務(wù)中心, 學(xué)校校務(wù)管理及其它管理系統(tǒng)通過校園網(wǎng)絡(luò)直接與卡管理中心服務(wù)器相連。
各系統(tǒng)的POS機(jī)采用RS485連接, POS機(jī)為AT89C52單片機(jī)的異步通信口與SN75176之間采用光禍隔離, 電路原理圖如圖9所示。
為保證系統(tǒng)的安全性, 中心數(shù)據(jù)庫服務(wù)器裝有UNIX操作系統(tǒng)平臺, ORACLE大型數(shù)據(jù)庫系統(tǒng)內(nèi)置一卡通系統(tǒng)專用加密卡,ORACLE數(shù)據(jù)庫是存放統(tǒng)一的校園卡持卡人個人基本信息和電子錢包金額以及商戶帳戶資料的中心數(shù)據(jù)庫, 提供全校的各個子系統(tǒng)所需要的數(shù)據(jù)根據(jù)學(xué)校的規(guī)模、營業(yè)流水的大小以及管理模式可以使用較高檔次的服務(wù)器和數(shù)據(jù)存儲設(shè)備, 以保證數(shù)據(jù)的安全性與可靠性及系統(tǒng)的穩(wěn)定性中心服務(wù)器根據(jù)實(shí)際需要可以直接接人到校園網(wǎng)提供的虛擬專網(wǎng)中。圖10為消費(fèi)子系統(tǒng)界面
圖9, RS485通信口原理圖
圖10消費(fèi)子系統(tǒng)界面
結(jié)束語
本文論述了LEGIC非接觸IC卡系統(tǒng)的安全問題、密碼認(rèn)證、組網(wǎng)原則, 以及操作方式等本系統(tǒng)對于一卡通在高校的推廣具有一定價值本系統(tǒng)已在我校教務(wù)、消費(fèi)中應(yīng)用兩年, 使用證明效果良好。
(文/天津工業(yè)大學(xué)計(jì)算機(jī)技術(shù)與自動化學(xué)院:萬振凱)