IC卡系統(tǒng)的安全技術(shù)及IC卡消費(fèi)系統(tǒng)應(yīng)用實(shí)例
文章出處:http://m.coolbang.cn 作者: 人氣: 發(fā)表時(shí)間:2012年03月11日
摘要:討論了IC 卡及其應(yīng)用系統(tǒng)的安全技術(shù),從底層硬件、操作系統(tǒng)到上層應(yīng)用軟件三個(gè)層次進(jìn)行了分析。通過一個(gè)自動(dòng)售貨機(jī)IC 卡消費(fèi)系統(tǒng)的安全性設(shè)計(jì)方案著重說明了上層應(yīng)用軟件的安全性設(shè)計(jì)。
關(guān)鍵詞:IC 卡;安全技術(shù);密鑰
IC 卡是把具有存儲(chǔ)、加密及數(shù)據(jù)處理能力的芯片封裝于塑料基片中,形成了具有智能性又便于攜帶的卡片,作為電子信息的載體,近年來在金融、通信、交通及其它日常生活領(lǐng)域中都得到了廣泛的應(yīng)用。
IC 卡中通常保存了大量重要的信息,因此在IC 卡的使用中數(shù)據(jù)的保密性、安全性就顯得尤為重要。從系統(tǒng)工程的角度來看, IC 卡系統(tǒng)不單純是IC 卡與讀卡器之間的數(shù)據(jù)交換,還包含后臺(tái)主機(jī)系統(tǒng)、發(fā)卡系統(tǒng)等多個(gè)環(huán)節(jié)。除了IC 卡自身的高保密安全性,整個(gè)系統(tǒng)的設(shè)計(jì)都要考慮到如何保證高保密性、高可靠性。本文從IC 卡卡片、操作系統(tǒng)、應(yīng)用系統(tǒng)幾個(gè)方面分別介紹了相關(guān)的安全技術(shù),并介紹一個(gè)自動(dòng)售貨機(jī)IC卡消費(fèi)系統(tǒng)的安全技術(shù)設(shè)計(jì)方案。
1 IC 卡及讀卡設(shè)備的安全性
IC卡卡片自身的硬件結(jié)構(gòu)提供了比磁條卡高出很多的安全可靠性,主要體現(xiàn)在芯片的技術(shù)和卡的制作工藝兩方面。IC卡的存儲(chǔ)芯片可分為ROM、OTP ROM、EPROM、EEPROM、邏輯加密存儲(chǔ)器等等,不同類型的存儲(chǔ)器在數(shù)據(jù)保存持久性、抗干擾能力、數(shù)據(jù)加密保護(hù)能力等方面都有所不同。在IC 卡的制造上也有許多安全保護(hù)的防偽方法,如:微線條技術(shù)、激光雕刻簽名、安全背景結(jié)構(gòu)和熒光安全圖片等等。
讀卡終端設(shè)備由于存在著受到信息被截取和復(fù)制、設(shè)備被仿造、終端設(shè)備誤操作等攻擊的可能性,因此在設(shè)計(jì)上需要保證較高的安全性。讀卡設(shè)備設(shè)計(jì)的關(guān)鍵是所選芯片的技術(shù),目前有加密芯片、專用集成芯片、算法芯片等,可以不同程度地加強(qiáng)數(shù)據(jù)傳輸?shù)目煽啃院筒豢善谱g性。
2 IC 卡操作系統(tǒng)的安全性
IC卡的操作系統(tǒng)是IC 卡卡片硬件與應(yīng)用軟件之間的中間層,提供了對(duì)硬件的訪問、文件管理、安全機(jī)制等功能,實(shí)現(xiàn)了軟件與具體硬件配置的隔離,從而使軟件變得可移植,增強(qiáng)了卡的通用性。
IC卡操作系統(tǒng)主要從文件管理、安全機(jī)制和指令集三個(gè)方面來保證安全性。
2. 1 文件管理
一個(gè)好的操作系統(tǒng)在文件管理上應(yīng)實(shí)現(xiàn)分層管理,對(duì)于公共數(shù)據(jù)、系統(tǒng)數(shù)據(jù)和專用數(shù)據(jù)要分別存儲(chǔ)和管理,對(duì)不同文件的訪問應(yīng)設(shè)置不同的訪問權(quán)限,以實(shí)現(xiàn)必要數(shù)據(jù)共享的同時(shí)保證專用數(shù)據(jù)和系統(tǒng)數(shù)據(jù)的保密性。
2. 2 安全機(jī)制
IC卡操作系統(tǒng)中的安全機(jī)制通常包含文件訪問權(quán)限、安全報(bào)文傳輸、防拔特性等。
1) 文件訪問權(quán)限:文件訪問權(quán)限的設(shè)置禁止了對(duì)文件的非法訪問。這種權(quán)限的設(shè)置不僅存在于同一張卡中的不同應(yīng)用上,也存在于同一個(gè)應(yīng)用中不同的文件上。
2) 安全報(bào)文傳輸:為了防止在IC 卡與讀卡設(shè)備的通訊過程中數(shù)據(jù)遭到惡意截獲和篡改,在一些關(guān)鍵數(shù)據(jù)的傳輸上要采用安全報(bào)文傳輸,主要采用加密和校驗(yàn)手段,以保證傳輸數(shù)據(jù)的完整性和保密性。加密算法是保證數(shù)據(jù)安全可靠性的核心技術(shù)。
3) 防拔特性:防拔功能是在IC 卡使用過程中遇到人為的拔卡破壞行為或掉電情況時(shí)能保存交易數(shù)據(jù)或恢復(fù)未完成的交易。具有防拔功能可以保護(hù)交易信息、減少用戶的損失,提高系統(tǒng)使用的可靠性。
2. 3 指令集
IC卡操作系統(tǒng)指令集一般包括管理指令、交易指令和個(gè)人化指令。設(shè)計(jì)指令首先要符合IC 卡設(shè)計(jì)標(biāo)準(zhǔn)(如國際標(biāo)準(zhǔn)化組織制定的關(guān)于IC 卡特性、應(yīng)用等的標(biāo)準(zhǔn)ISO7816、我國關(guān)于金融卡設(shè)計(jì)使用的標(biāo)準(zhǔn)《中國金融集成電路( IC) 卡規(guī)范》等) ,在此基礎(chǔ)上指令功能要清晰完善,并且指令越少越好。
3 應(yīng)用系統(tǒng)的安全性
IC 卡應(yīng)用系統(tǒng)是以IC 卡和讀卡設(shè)備為基礎(chǔ),包含主機(jī)、終端設(shè)備、發(fā)卡系統(tǒng)等多個(gè)部分的基于網(wǎng)絡(luò)的系統(tǒng)。應(yīng)用系統(tǒng)自身的安全特性直接影響著整個(gè)系統(tǒng)的性能,其安全技術(shù)主要存在于兩個(gè)方面,一是密鑰的管理,一是應(yīng)用系統(tǒng)網(wǎng)絡(luò)的安全性。
3. 1 密鑰的管理
在IC 卡系統(tǒng)中,密鑰機(jī)制是保證IC 卡上的數(shù)據(jù)和IC 卡應(yīng)用的保密性、可靠性的關(guān)鍵技術(shù)。通過密鑰才能夠在文件的訪問、數(shù)據(jù)的讀寫與傳輸?shù)确矫鎸?shí)現(xiàn)加密和權(quán)限控制,從而保證IC 卡在使用中的高可靠性。因此對(duì)于所有密鑰的管理要充分保證密鑰存儲(chǔ)、使用的安全可靠,避免密鑰被輕易竊取和越權(quán)使用。
3. 2 應(yīng)用系統(tǒng)網(wǎng)絡(luò)的安全性
IC 卡與終端設(shè)備、主機(jī)之間要不斷進(jìn)行數(shù)據(jù)傳輸,網(wǎng)絡(luò)是普遍采用的傳輸手段。網(wǎng)絡(luò)上的各個(gè)節(jié)點(diǎn),包括主機(jī)、發(fā)卡系統(tǒng)、終端設(shè)備等,以及節(jié)點(diǎn)間的互相通信都是可能受到攻擊的對(duì)象。所謂應(yīng)用系統(tǒng)網(wǎng)絡(luò)的安全性不僅僅指實(shí)際的網(wǎng)絡(luò)傳輸系統(tǒng)的安全可靠,也包括網(wǎng)絡(luò)上各個(gè)節(jié)點(diǎn)自身運(yùn)行的安全性。通常采取的措施包括:增強(qiáng)系統(tǒng)容錯(cuò)能力、對(duì)各種異常情況的報(bào)警和故障后恢復(fù)能力;設(shè)置足夠的系統(tǒng)冗余和備份資源;主機(jī)和發(fā)卡系統(tǒng)與外界網(wǎng)絡(luò)之間建立防火墻等等。
4 自動(dòng)售貨機(jī)IC 卡消費(fèi)系統(tǒng)
自動(dòng)售貨機(jī)IC 卡消費(fèi)系統(tǒng)是我們開發(fā)的一個(gè)IC 卡應(yīng)用實(shí)例,以IC 卡代替?zhèn)鹘y(tǒng)的硬幣和紙幣在自動(dòng)售貨機(jī)上進(jìn)行消費(fèi),所有符合中國人民銀行頒布的《中國金融集成電路( IC) 卡規(guī)范》的金融支付卡都可以在該系統(tǒng)上使用。因此該系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)架構(gòu)是銀行的金融卡發(fā)卡、使用、管理的整套系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖1 所示,以銀行主機(jī)和中央數(shù)據(jù)庫為基礎(chǔ),在自動(dòng)售貨機(jī)上實(shí)現(xiàn)電子消費(fèi),并在售貨機(jī)與主機(jī)之間實(shí)現(xiàn)所有交易數(shù)據(jù)、指令的傳輸。應(yīng)用程序存儲(chǔ)于自動(dòng)售貨機(jī)的內(nèi)部存儲(chǔ)器中,存儲(chǔ)器中還有一部分Flash Memory ,用于存儲(chǔ)所有需要保存的交易數(shù)據(jù)。
圖1 自動(dòng)售貨機(jī)IC 卡交易系統(tǒng)結(jié)構(gòu)
針對(duì)自動(dòng)售貨機(jī)消費(fèi)系統(tǒng)能夠提供方便快捷的消費(fèi)這一特點(diǎn),本系統(tǒng)中從系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)傳輸方法、文件管理、密鑰管理等方面設(shè)計(jì)并實(shí)現(xiàn)了消費(fèi)應(yīng)用的安全性設(shè)計(jì),保證了IC 卡消費(fèi)的方便、可靠。
4. 1 系統(tǒng)總體設(shè)計(jì)
針對(duì)自動(dòng)售貨機(jī)IC 卡消費(fèi)系統(tǒng)的特點(diǎn),本系統(tǒng)總體上采用脫機(jī)交易、脫機(jī)數(shù)據(jù)傳輸?shù)墓ぷ鞣绞?。自?dòng)售貨機(jī)通常應(yīng)用于商場(chǎng)、賓館、飯店等人流較多的地方,并且出售的均為小額商品,因此需要在硬件配置上方便簡(jiǎn)單,用戶在購買商品時(shí)得到快捷方便的服務(wù)。總體設(shè)計(jì)充分滿足了這些需求,也保障了系統(tǒng)的安全性。
4. 1. 1 電子消費(fèi):采用電子錢包脫機(jī)交易方式實(shí)現(xiàn)消費(fèi)功能。金融支付卡支持兩種消費(fèi)方式,一種是使用電子存折進(jìn)行聯(lián)機(jī)交易,交易數(shù)據(jù)直接通過網(wǎng)絡(luò)傳送到銀行主機(jī);另一種是使用電子錢包進(jìn)行脫機(jī)交易,定期將交易數(shù)據(jù)批量傳送到銀行主機(jī)。與聯(lián)機(jī)交易相比,脫機(jī)交易的交易過程不需要與主機(jī)進(jìn)行通訊,時(shí)間短,速度快,方便用戶的使用。同時(shí)由于沒有對(duì)網(wǎng)絡(luò)的需求,為自動(dòng)售貨機(jī)的放置提供了方便,也減少了因網(wǎng)絡(luò)傳輸易受到攻擊而帶來的不安全因素。
4. 1. 2 交易數(shù)據(jù)的上傳與主機(jī)指令回傳:使用了大容量管理卡以脫機(jī)方式在自動(dòng)售貨機(jī)與銀行主機(jī)之間進(jìn)行數(shù)據(jù)傳輸。由于采用了脫機(jī)交易方式,大量的交易數(shù)據(jù)都被保存在售貨機(jī)內(nèi),必須定時(shí)將這些數(shù)據(jù)上傳到銀行的主機(jī),確保交易執(zhí)行的完整性。脫機(jī)數(shù)據(jù)傳輸替代傳統(tǒng)的網(wǎng)絡(luò)傳輸,克服了網(wǎng)絡(luò)傳輸容易受到干擾、數(shù)據(jù)易被惡意截取或篡改等不足,提高了系統(tǒng)的安全性。
管理卡的文件結(jié)構(gòu)如圖2 所示。密鑰文件用于存儲(chǔ)IC卡身份認(rèn)證、數(shù)據(jù)傳輸、校驗(yàn)等所需要的密鑰。交易數(shù)據(jù)文件存儲(chǔ)從自動(dòng)售貨機(jī)上下載的所有交易數(shù)據(jù),這些數(shù)據(jù)定期下載并上傳至銀行主機(jī)。日志文件用于記錄數(shù)據(jù)下載及指令傳送的執(zhí)行情況。銀行主機(jī)在處理交易數(shù)據(jù)后若有清除標(biāo)識(shí)及掛失止付“黑名單”等指令數(shù)據(jù)可通過回傳指令文件存儲(chǔ)并傳送到自動(dòng)售貨機(jī)上。交易數(shù)據(jù)文件和回傳指令文件都采用記錄文件格式,每一次交易的數(shù)據(jù)和每一條指令都作為一條記錄進(jìn)行存儲(chǔ)。定期使用管理卡從自動(dòng)售貨機(jī)上下載存儲(chǔ)的所有交易數(shù)據(jù),將其轉(zhuǎn)儲(chǔ)到銀行主機(jī),再根據(jù)需要從主機(jī)獲得有關(guān)清除標(biāo)識(shí)、“黑名單”等指令,通過管理卡傳輸?shù)阶詣?dòng)售貨機(jī)上。
圖2 管理卡的文件結(jié)構(gòu)示意圖
4. 2 數(shù)據(jù)傳輸?shù)脑O(shè)計(jì)與實(shí)現(xiàn)
圖3 數(shù)據(jù)批量下載流程
IC卡應(yīng)用系統(tǒng)中最重要的部分就是數(shù)據(jù)的交互傳輸,在自動(dòng)售貨機(jī)IC 卡消費(fèi)系統(tǒng)中包括IC 卡(消費(fèi)卡和管理卡) 與讀卡終端之間、讀卡終端與自動(dòng)售貨機(jī)之間和管理卡與銀行主機(jī)間的數(shù)據(jù)傳輸。數(shù)據(jù)的安全可靠程度決定著整個(gè)系統(tǒng)的安全性能。為確保數(shù)據(jù)的保密性和安全性,數(shù)據(jù)傳輸分為兩個(gè)步驟:身份的互相認(rèn)證和數(shù)據(jù)加密傳送,實(shí)現(xiàn)流程如圖3。
ExternalAuthentication指令實(shí)現(xiàn)外部認(rèn)證,確認(rèn)讀卡設(shè)備的身份,保證只有合法的讀卡終端才能對(duì)其進(jìn)行操作。
InternalAuthentication 指令實(shí)現(xiàn)內(nèi)部認(rèn)證,確認(rèn)IC 卡的身份,只有符合使用要求和權(quán)限的卡才能在自動(dòng)售貨機(jī)上進(jìn)行消費(fèi)或下載交易數(shù)據(jù)。為實(shí)現(xiàn)雙重身份認(rèn)證對(duì)管理卡上文件設(shè)置了相應(yīng)的安全權(quán)限,必須在外部認(rèn)證和內(nèi)部認(rèn)證通過的情況下才能進(jìn)行其它操作。利用IC 卡操作系統(tǒng)提供的安全機(jī)制,為其所有文件設(shè)置訪問權(quán)限,當(dāng)認(rèn)證通過后將當(dāng)前安全狀態(tài)寄存器設(shè)置為符合文件訪問權(quán)限的值,才能夠?qū)ξ募M(jìn)行訪問。
具體實(shí)現(xiàn)舉例如下:
1) IC 卡初始上電復(fù)位后安全寄存器狀態(tài)為0 ;
2) 管理卡上訪問權(quán)限設(shè)置為5 ;
3) 外部認(rèn)證、內(nèi)部認(rèn)證順序執(zhí)行,都通過后將安全寄存器設(shè)置為5。
此時(shí)即可合法訪問文件。
雙重身份認(rèn)證的實(shí)現(xiàn)從消費(fèi)終端和IC 卡兩方面減小了受到惡意攻擊的可能性,大大提高了系統(tǒng)安全性。
身份認(rèn)證通過后進(jìn)行數(shù)據(jù)的傳輸。數(shù)據(jù)傳輸使用安全報(bào)文傳輸方式,先對(duì)數(shù)據(jù)進(jìn)行加密,再對(duì)加密后的數(shù)據(jù)計(jì)算校驗(yàn)數(shù)據(jù)MAC ,加密數(shù)據(jù)與MAC 一并傳輸。收到數(shù)據(jù)的一方對(duì)MAC 數(shù)據(jù)進(jìn)行校驗(yàn)檢查,校驗(yàn)錯(cuò)誤時(shí)發(fā)回錯(cuò)誤信息,數(shù)據(jù)傳輸失敗。數(shù)據(jù)加密采用三重DES 算法,MAC 計(jì)算采用單DES加密算法。DES 算法是典型的對(duì)稱密鑰加密算法,通過非線性函數(shù)反復(fù)16 圈位移、置換和代替,以及對(duì)密鑰的置換移位等做法,實(shí)現(xiàn)數(shù)據(jù)的擴(kuò)散與混亂,從而生成安全性很高的強(qiáng)密碼。三重DES 算法的使用更進(jìn)一步加強(qiáng)了數(shù)據(jù)的保密性。
4. 3 密鑰管理
所有的密鑰采用分類、分布存儲(chǔ)和管理的策略,將系統(tǒng)中的所有密鑰根據(jù)用途分為三類并分別存儲(chǔ):
1) 各個(gè)消費(fèi)卡使用的密鑰:每張消費(fèi)卡使用其中金融支付應(yīng)用的交易子密鑰作為消費(fèi)密鑰。保證一張卡上的所有金融消費(fèi)都使用同一套密鑰,避免多余密鑰造成混亂。
2) 各個(gè)管理卡使用的密鑰:管理卡在與自動(dòng)售貨機(jī)和銀行主機(jī)通訊時(shí)都要首先進(jìn)行身份認(rèn)證,數(shù)據(jù)的傳輸過程為保證安全性也都采用了加密方式,因此每張管理卡都有自身的私有認(rèn)證密鑰和傳輸密鑰。不同的管理卡私有密鑰獨(dú)立存儲(chǔ),保證了管理卡上的數(shù)據(jù)不易被竊取,提高其安全可靠性。
3) 用于所有卡身份認(rèn)證和數(shù)據(jù)傳輸?shù)墓裁荑€。這些密鑰屬于不同消費(fèi)卡或管理卡的共享密鑰,用于在對(duì)某一張消費(fèi)卡或管理卡進(jìn)行通信時(shí)派生對(duì)應(yīng)的身份認(rèn)證和傳輸子密鑰。將這些共享密鑰存儲(chǔ)在自動(dòng)售貨機(jī)上的PSAM卡中而不存在每一張卡上,節(jié)省了各個(gè)卡的存儲(chǔ)空間,同時(shí)與每張卡上的子密鑰分離也降低了密鑰被竊取的可能性,增強(qiáng)可靠性。密鑰的分類存儲(chǔ)與管理增強(qiáng)了對(duì)密鑰自身的保護(hù),有效抑制了通過竊取密鑰進(jìn)行惡意破壞的可能性,從而加強(qiáng)了這個(gè)系統(tǒng)的安全可靠性。
4. 4 批量數(shù)據(jù)傳輸?shù)耐暾栽O(shè)計(jì)
交易數(shù)據(jù)在售貨機(jī)內(nèi)以記錄的方式存儲(chǔ),每次交易形成一條記錄。下載時(shí)從售貨機(jī)中按存儲(chǔ)順序以記錄的方式逐條讀出交易數(shù)據(jù),再以同樣的記錄格式寫入管理卡上的交易數(shù)據(jù)文件。為保證交易數(shù)據(jù)的安全完整,每一條記錄的讀取過程被設(shè)計(jì)為一個(gè)原子操作,并在數(shù)據(jù)從售貨機(jī)傳輸?shù)焦芾砜ǖ倪^程中設(shè)計(jì)了對(duì)存儲(chǔ)器存儲(chǔ)容量進(jìn)行判斷的功能。每次讀取記錄前首先判斷管理卡的存儲(chǔ)空間是否夠用,如果不能繼續(xù)下載,則不再進(jìn)行下載,其余數(shù)據(jù)仍保留在在自動(dòng)售貨機(jī)內(nèi),留待下次下載。在每條記錄的下載過程中,如果出現(xiàn)斷電或其它意外則在售貨機(jī)上恢復(fù)此條記錄。管理卡在向主機(jī)上載數(shù)據(jù)時(shí)首先進(jìn)行數(shù)據(jù)完整性的核查,若有不完整數(shù)據(jù)則將其清除。通過這些措施有效防止了數(shù)據(jù)的丟失和損壞。
5 總結(jié)
IC卡系統(tǒng)的安全體系對(duì)于整個(gè)IC 卡系統(tǒng)的運(yùn)行具有關(guān)鍵性的作用。在硬件、操作系統(tǒng)、應(yīng)用系統(tǒng)都存在很多容易受到攻擊的環(huán)節(jié),因此在設(shè)計(jì)中要充分考慮各個(gè)部分,采取相應(yīng)的防范措施。本文介紹的自動(dòng)售貨機(jī)IC 卡交易系統(tǒng)在應(yīng)用系統(tǒng)端采用了脫機(jī)交易和交易數(shù)據(jù)脫機(jī)上傳,從總體設(shè)計(jì)、文件結(jié)構(gòu)、數(shù)據(jù)傳輸、密鑰管理等多個(gè)方面實(shí)現(xiàn)了很好的安全性設(shè)計(jì)方案,保證了消費(fèi)和數(shù)據(jù)管理的安全可靠性。
參考文獻(xiàn)
[1] 王卓人,鄧晉均,劉宗祥. IC 卡的技術(shù)與應(yīng)用[M] . 北京:電子工業(yè)出版社,1999.
[2] 中國金融標(biāo)準(zhǔn)化技術(shù)委員會(huì). 中國金融集成電路( IC) 卡規(guī)范[M] . 北京:中國金融出版社,1998.
作者簡(jiǎn)介:李瑞鋒(1975 - ) ,女,黑龍江人,碩士研究生,主要研究方向:智能卡應(yīng)用系統(tǒng)及其安全性;
熊璋(1956 - ) ,男,湖北人,教授,博士生導(dǎo)師,主要研究方向:多媒體技術(shù)、分布式信息處理.