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