一卡多用安全智能卡結(jié)構(gòu)研究與應(yīng)用
文章出處:http://56733.cn 作者:萬方數(shù)據(jù) 人氣: 發(fā)表時間:2011年09月26日
一、引 言
智能卡(Smart Card)是一種鑲嵌有單片機芯片的卡片。由于智能卡內(nèi)含CPU,硬件資源豐富,而且有芯片操作系統(tǒng)的支持,因而安全性高,它已成為一種重要的安全設(shè)備,特別是在電子商務(wù)、電子金融和電子政務(wù)迅速發(fā)展的今天,智能卡將作為身份憑證、電子錢包、電子存折和各種證書以及重要數(shù)據(jù)的載體,發(fā)揮越來越重要的作用。
智能卡正朝著安全、高速、方便的方向迅速發(fā)展。隨著一卡多用以及用戶下載程序的需求不斷增加,現(xiàn)有的智能卡及其芯片操作系統(tǒng)就暴露出一些安全缺陷。它們或者不提供用戶下載功能,即給所有用戶提供固定不變的操作系統(tǒng),或者允許用戶下載程序但只是試圖從軟件上實現(xiàn)對用戶數(shù)據(jù)及其程序的保護,例如對執(zhí)行下載用戶命令的用戶進行身份認(rèn)證,只有那些擁有某些秘密信息的用戶才能下載用戶命令。然而僅從軟件角度進行安全保護是不夠的,仍然存在安全隱患。一方面攻擊者可能通過某種渠道獲得這些秘密信息,另一方面不能杜絕具有合法下載權(quán)限的用戶進行惡意破壞。一旦用戶命令下載成功,則芯片操作系統(tǒng)就無法對這些下載的用戶命令進行監(jiān)控,因為下載的用戶命令和操作系統(tǒng)處于同一級別,用戶命令也用CPU的匯編指令來實現(xiàn),只要是合法指令,CPU就會執(zhí)行。因為指令是軟件的最底層,芯片操作系統(tǒng)也是建立在指令之上的。這樣為特定應(yīng)用下載的命令就可以對其他應(yīng)用的程序或數(shù)據(jù)進行訪間。如果一個應(yīng)用下載的命令中含有對另一應(yīng)用的數(shù)據(jù)進行篡改的指令,那么芯片操作系統(tǒng)是不能控制其指令的執(zhí)行的。
為克服上述缺陷,本文提出了一種新型的安全智能卡結(jié)構(gòu),它具有如下技術(shù)特點:
·支持一卡多用,適應(yīng)面寬,便于攜帶管理。
·支持用戶下載程序,使用靈活方便。
·不同應(yīng)用程序由物理隔離保護,確保數(shù)據(jù)安全。
·具有密碼協(xié)處理器,可大大提高密碼運算速度。
·具有 U SB接口,便于實現(xiàn)電子鑰匙功能和高速數(shù)據(jù)傳輸。
·內(nèi)部具有看門狗電路,系統(tǒng)可靠性高。
本文首先從軟硬件兩個方面論述一卡多用安全智能卡的結(jié)構(gòu)原理,以及實現(xiàn)對多個應(yīng)用區(qū)隔離的安全方案,即限制特定用戶命令的訪間范圍,真正達到對多個應(yīng)用區(qū)進行保護的目的,然后討論這種新型安全智能卡的一種應(yīng)用實例。
二、新型安全智能卡的硬件結(jié)構(gòu)
新型安全智能卡首先從硬件上為實現(xiàn)多應(yīng)用的隔離、確保用戶程序和數(shù)據(jù)的安全提供了支持,增加了硬件中斷、操作標(biāo)志,以及內(nèi)存地址比較寄存器、程序地址比較寄存器和數(shù)據(jù)地址比較寄存器。新型安全智能卡芯片由CPU、各種存儲器(RAM, ROM, EEP-ROM, Flash Memory),密碼協(xié)處理器、串行通信、地址隔離和中斷控制邏輯等部分組成,其硬件結(jié)構(gòu)如圖 1所示。
圖 1 新型安全智能卡的芯片結(jié)構(gòu)
新型安全智能卡中的CPU主要由時鐘邏輯、中斷邏輯、定時器邏輯、串行通信、并行I/O、片選邏輯、總線接口、指令邏輯、算術(shù)邏輯、寄存器文件等部分組成,CPU可采用 8位或 16位,最好使用RISC技術(shù)和流水線技術(shù)以提高速度,其硬件結(jié)構(gòu)如圖2所示。
圖 2 新型安全智能卡的CPU結(jié)構(gòu)
為了支持用戶下載程序、一卡多用,同時確保各用戶數(shù)據(jù)安全,必須對多個用戶區(qū)進行隔離保護。通過地址隔離,把不同的應(yīng)用限制在不同的區(qū)域,從而確保數(shù)據(jù)的安全。在新型安全智能卡的CPU中增加了操作標(biāo)志和一個硬件中斷。操作標(biāo)志用以區(qū)分當(dāng)前操作模式是系統(tǒng)模式還是用戶模式,新增中斷用以在某應(yīng)用的用戶命令訪間系統(tǒng)或其他應(yīng)用的地址空間時通知芯片操作系統(tǒng)以終止該用戶命令的執(zhí)行。進行存儲區(qū)之間隔離保護的方法之一是對相應(yīng)的存儲區(qū)域設(shè)立地址比較寄存器,分別有內(nèi)存地址上、下界地址寄存器,程序地址上、下界寄存器和數(shù)據(jù)地址上、下界寄存器。在用戶模式時,程序的訪問要受地址比較寄存器的限制,只有地址比較寄存器所限定的地址空間才可被訪問。當(dāng)處于某一區(qū)域的程序執(zhí)行時,其所訪間的存儲區(qū)地址都要與上、下界寄存器的值比較,如果不越界便可訪問,如果越界則不能訪問且產(chǎn)生硬件中斷,操作系統(tǒng)將終止程序的執(zhí)行,從而保證特定應(yīng)用下載的用戶命令只能訪問其自身的地址空間,而不能對系統(tǒng)或其他應(yīng)用的用戶命令或數(shù)據(jù)進行訪問,實現(xiàn)存儲區(qū)之間的隔離保護。而在系統(tǒng)模式時,程序的訪問不受任何限制,可以訪問整個地址空間。
上、下界寄存器的值是軟件可設(shè)置的,由芯片操作系統(tǒng)對其進行管理,靈活方便。而且每一類比較寄存器只需要一對上、下界寄存器就可實現(xiàn)多個應(yīng)用存儲區(qū)的隔離保護。
隨著網(wǎng)絡(luò)技術(shù)的普及與應(yīng)用,由于Internet所固有的開放性、無國界、自由性的特點,網(wǎng)絡(luò)安全尤其是網(wǎng)絡(luò)信息交互時出現(xiàn)的身份鑒別、電子簽名、數(shù)據(jù)加密等間題已經(jīng)成為人們關(guān)注的一個焦點。新型安全智能卡中設(shè)計了USB接口,以便于實現(xiàn)電子鑰匙(Electronic Key)功能和高速數(shù)據(jù)傳輸。
在新型安全智能卡中,ROM空間用于存儲COs和一些固定數(shù)據(jù)。RAM空間用于存放中斷向量、系統(tǒng)棧以及中間數(shù)據(jù)等,EEPROM/Flash Memory用于存放系統(tǒng)數(shù)據(jù)、用戶程序或用戶數(shù)據(jù)。
為了確保數(shù)據(jù)安全,智能卡中必須實現(xiàn)數(shù)字簽名。數(shù)字簽名可通過公開密鑰密碼RSA和ECC來實現(xiàn)。無論是RSA還是ECC,其運算都是極復(fù)雜的。完全依靠8位或16位CPU來軟件實現(xiàn)RSA和ECC,其速度將是很慢的。為了提高速度,必須采用硬件支持。因此,在智能卡中設(shè)計了密碼硬件協(xié)處理器,以適合智能卡的應(yīng)用。
串行通信邏輯支持各種協(xié)議的智能卡通信。CPU提供一個全雙工雙向通信控制器,其邏輯結(jié)構(gòu)如圖 3所示。
圖3 串行通信控制器結(jié)構(gòu)
由于CPU內(nèi)部結(jié)構(gòu)合理,主要寄存器都是軟件可編程的,因此使得通信程序的編寫將變得十分容易。
三、新型安全智能卡的芯片操作系統(tǒng)結(jié)構(gòu)
智能卡的操作系統(tǒng)(簡稱為COS)是智能卡資源的管理者和安全保密的基礎(chǔ)。它由傳輸管理、文件管理、安全管理、命令處理四個功能模塊組成,如圖4所示。
圖4 芯片操作系統(tǒng)邏輯結(jié)構(gòu)圖
傳愉管理模塊:按 ISO 7816-3標(biāo)準(zhǔn)實現(xiàn)智能卡與讀寫設(shè)備之間的通信、保證命令和數(shù)據(jù)的正確傳枯。根據(jù)用戶的要求可選擇宇符傳箱協(xié)議T=0 或塊傳輸協(xié)議T=1。
命令處理模塊:主要對卡接收的命令的可執(zhí)行性進行判斷,根據(jù)接收到的命令檢查各項參數(shù)是否正確等,在此基礎(chǔ)上執(zhí)行相應(yīng)的操作和數(shù)據(jù)處理。文件管理模塊:將用戶數(shù)據(jù)按照設(shè)計的文件結(jié)構(gòu)格式存儲在EEPROM或Flash Memory中,并根據(jù)安全訪問策略和機制,確保存儲數(shù)據(jù)的安全和文件訪問的快速便捷。
安全管理模塊:是智能卡操作系統(tǒng)的核心和基礎(chǔ),用來實現(xiàn)卡與讀寫設(shè)備之間的相互認(rèn)證、持卡人的身份認(rèn)證、文件訪間權(quán)限控制、安全報文傳翰、數(shù)據(jù)加解密、數(shù)字簽名等安全保密功能。對卡與讀寫設(shè)備之間的通信采取密碼保護,防止卡與終端之間的通信數(shù)據(jù)被非法竊取和篡改。
特別,為了支持一卡多用的安全使用,允許多個應(yīng)用在智能卡中下載其特殊用戶命令,實現(xiàn)多個應(yīng)用的隔離,使得每一應(yīng)用只能訪問其自身的數(shù)據(jù)或用戶命令,而不能訪問其他應(yīng)用的數(shù)據(jù)或命令,新型安全智能卡在增加硬件支持的同時,還為芯片操作系統(tǒng)實現(xiàn)多個應(yīng)用的隔離保護提供相應(yīng)支持。
·兩種操作模式:為區(qū)分當(dāng)前執(zhí)行的是系統(tǒng)程序還是用戶程序,新型安全智能卡將操作模式分為系統(tǒng)模式和用戶模式,由特殊的狀態(tài)標(biāo)志位來決定是用戶模式還是系統(tǒng)模式。
·新增指令:為實現(xiàn)系統(tǒng)模式和用戶模式間的相互轉(zhuǎn)換,在CPU 中增加若干新指令。同時將指令分為普遍指令和特殊指令。用戶命令只能使用普通指令,而系統(tǒng)程序可使用普通指令和特殊指令。
·模式切換:應(yīng)用通過操作系統(tǒng)執(zhí)行特殊的模式中斷指令來執(zhí)行用戶命令。應(yīng)用初始化時首先應(yīng)在系統(tǒng)模式下識別該用戶命令,然后通過特殊的模式中斷指令,將應(yīng)用程序的地址和必要的參數(shù)存于寄存器中,清除所有其他未使用的寄存器和工作內(nèi)存,將操作標(biāo)志和返回地址入棧,改變狀態(tài)標(biāo)志,執(zhí)行應(yīng)用程序,從而實現(xiàn)從系統(tǒng)模式到用戶模式的切換;當(dāng)從用戶命令返回時應(yīng)使用相應(yīng)的特殊返回指令,將返回地址和操作標(biāo)志出棧,返回至系統(tǒng)調(diào)用處,從而實現(xiàn)從用戶模式到系統(tǒng)模式的切換口為方便特殊的用戶命令的開發(fā),系統(tǒng)應(yīng)為用戶提供若干例程供用戶命令調(diào)用。用戶命令通過系統(tǒng)程序中斷來調(diào)用系統(tǒng)例程,將請求地址存于寄存器中,并將操作標(biāo)志和應(yīng)用程序返回地址入棧,改變操作標(biāo)志,從而由用戶模式切換到系統(tǒng)模式;當(dāng)從系統(tǒng)例程返回到用戶命令時使用相應(yīng)的特殊的返回指令,清除除返回結(jié)果外的所有不必要的寄存器和工作內(nèi)存,并從棧中取出操作標(biāo)志和返回地址以返回到應(yīng)用程序,從而由系統(tǒng)模式切換到用戶模式。在模式切換中斷指今或模式切換中斷返回指令執(zhí)行期間應(yīng)關(guān)閉硬件中斷,當(dāng)指令執(zhí)行完成后立即開放硬件中斷。
·異常中斷:若用戶程序試圖訪問地址比較寄存器范圍以外的地址空間,或試圖訪問地址比較寄存器,則引起硬件中斷,并且程序被異常終止。硬件中斷服務(wù)程序負(fù)責(zé)將出錯信息存于狀態(tài)字中并傳送給外部接口設(shè)備,同時復(fù)位CPU,清除所有的寄存器和工作內(nèi)存。
四、新型安全智能卡的應(yīng)用
新型安全智能卡采用了多個應(yīng)用區(qū)之間的物理隔離保護技術(shù),克服了現(xiàn)有智能卡只注意了對芯片操作系統(tǒng)區(qū)的保護,而不能對多個應(yīng)用區(qū)進行隔離保護,用戶為某一應(yīng)用而下載的程序可能危害另一應(yīng)用的數(shù)據(jù)安全的缺點。它具有支持用戶下載程序、一卡多用,能對多個用戶區(qū)進行隔離保護的安全特性,從而使其系統(tǒng)資源和安全性與普通智能卡相比有很大的提高,特別適合當(dāng)今電子商務(wù)、電子金融、電子政務(wù)、電子身份證等重要應(yīng)用領(lǐng)域。
新型安全智能卡可應(yīng)用于嵌入式密碼計算機中。嵌入式密碼計算機是我們?yōu)檫m應(yīng)信息安全的需求而專門設(shè)計的一種新型安全PC機,從主板硬件、BIOS、操作系統(tǒng)安全增強、虛擬專用網(wǎng)絡(luò)(VPN),密碼系統(tǒng)、密鑰管理等幾方面進行安全設(shè)計和管理,從而使其安全性達到很高的程度。在嵌入式密碼計算機中,新型安全智能卡為確保系統(tǒng)的信息安全發(fā)揮了重要作用,成為這一安全平臺的一個不可缺少的重要組成部分。
嵌入式密碼計算機采用新型安全智能卡作為用戶的身份憑證和權(quán)限憑證,同時還作為用戶的電子錢包、電子存折和密鑰證書,其系統(tǒng)結(jié)構(gòu)如圖5所示。
圖 5 嵌入式密碼計算機的系統(tǒng)結(jié)構(gòu)
新型安全智能卡與嵌入式密碼計算機的連接通過嵌入式安全模塊(Embedded Security Module)接入計算機系統(tǒng)。在嵌入式安全模塊中CPU通過智能卡控制芯片對智能卡進行讀寫操作。
新型安全智能卡在嵌人式密碼計算機系統(tǒng)中作用有:
·作為用戶的身份識別憑證。
·作為用戶的權(quán)限憑證。
·作為用戶的密鑰證書。
·作為用戶的電子錢包和電子存折。
·其他應(yīng)用。
由于智能卡的上述應(yīng)用對其安全性要求很高,現(xiàn)有普通智能卡很難勝任,所以我們采用新型安全智能卡。
由于嵌入式密碼計算機是一種安全計算機,為了確保系統(tǒng)安全,只有對合法用戶計算機才向他提供服務(wù),而且只提供與其權(quán)限相適應(yīng)的服務(wù)。它采用新型智能卡作為用戶的身份識別憑證和權(quán)限憑證。智能卡上記錄有用戶的身份特征和權(quán)限特征,經(jīng)過計算機識別后,由操作系統(tǒng)確定是否向他提供服務(wù)以及提供什么服務(wù),這在嵌入式密碼計算機的啟動過程中由智能卡所標(biāo)識的信息所確定。在嵌人式密碼計算機工作過程中,系統(tǒng)始終通過智能卡監(jiān)視用戶的身份與權(quán)限的真實性。如果用戶的身份與權(quán)限是真實的,則嵌入式密碼計算機向用戶提供各種服務(wù),如果發(fā)現(xiàn)用戶的身份與權(quán)限的不真實,則立刻封鎖計算機的所有操作。例如,一旦發(fā)現(xiàn)計算機中無合法智能卡或用戶的身份、權(quán)限不符時,則立刻封鎖計算機的所有操作。從而確保只有合法用戶才能使用計算機,并且只能得到與用戶權(quán)限相符的服務(wù)。
新型安全智能卡的另一重要應(yīng)用是作為電子鑰匙。隨著電子商務(wù)的迅速發(fā)展,客戶端迫切需要一種具有良好性能、操作簡單、便于使用的安全設(shè)備保護個體敏感數(shù)據(jù)和網(wǎng)上交互信息 新型智能卡作為電子鑰匙,可通過 USB接口與計算機終端相連,具有安全、實用、小巧、方便等特點。新型安全智能卡中集成了硬件密碼協(xié)處理器,能提供高強度的認(rèn)證能力和數(shù)據(jù)加密能力,可用于要求個體識別、身份認(rèn)證、數(shù)據(jù)加密的應(yīng)用環(huán)境中。同時由于采用硬件物理隔離技術(shù),以及芯片操作系統(tǒng)對存放的數(shù)據(jù)采用嚴(yán)格的訪問控制技術(shù),它也可作為個體敏感信息存儲和密鑰管理的載體。
五、結(jié)束語
本文介紹了一卡多用新型安全智能卡的特點和關(guān)鍵技術(shù),它從硬件和軟件兩個方面對系統(tǒng)和用戶安全提供保證,能方便地支待應(yīng)用下載其特定的用戶程序,并且確保用戶下載的程序不能危及系統(tǒng)或其他應(yīng)用的安全。新型安全智能卡可廣泛用于要求提供認(rèn)證和保密的應(yīng)用環(huán)境中。