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