多應用安全智能卡結構的研究
文章出處:http://5052h112.com 作者: 人氣: 發表時間:2012年03月18日
摘要:為克服現有的智能卡及其芯片操作系統所存在的安全缺陷,提出了一種支持一卡多用和用戶下載程序的新型安全智能卡結構,增加了硬件中斷、操作標志,以及內存地址比較寄存器、程序地址比較寄存器和數據地址比較寄存器,從硬件上為實現多應用的隔離、確保用戶程序和數據的安全提供了保證. 新型安全智能卡在CPU 中增加若干新指令,將操作模式分為系統模式和用戶模式,由特殊的狀態標志位來決定是用戶模式還是系統模式,以實現系統模式和用戶模式間的相互轉換. 指令區分為普遍指令和特殊指令,只有系統程序可以使用特殊指令,并增加硬件中斷以防止用戶程序訪問地址比較寄存器范圍以外的地址空間. 最后給出了新型安全智能卡的應用實例.
關鍵詞: 智能卡;芯片操作系統;一卡多用
一、引 言
智能卡(Smart Card)是一種鑲嵌有單片機芯片的卡片。由于智能卡內含CPU,硬件資源豐富,而且有芯片操作系統的支持,因而安全性高,它已成為一種重要的安全設備,特別是在電子商務、電子金融和電子政務迅速發展的今天,智能卡將作為身份憑證、電子錢包、電子存折和各種證書以及重要數據的載體,發揮越來越重要的作用。
智能卡正朝著安全、高速、方便的方向迅速發展。隨著一卡多用以及用戶下載程序的需求不斷增加,現有的智能卡及其芯片操作系統就暴露出一些安全缺陷。它們或者不提供用戶下載功能,即給所有用戶提供固定不變的操作系統,或者允許用戶下載程序但只是試圖從軟件上實現對用戶數據及其程序的保護,例如對執行下載用戶命令的用戶進行身份認證,只有那些擁有某些秘密信息的用戶才能下載用戶命令。然而僅從軟件角度進行安全保護是不夠的,仍然存在安全隱患。一方面攻擊者可能通過某種渠道獲得這些秘密信息,另一方面不能杜絕具有合法下載權限的用戶進行惡意破壞。一旦用戶命令下載成功,則芯片操作系統就無法對這些下載的用戶命令進行監控,因為下載的用戶命令和操作系統處于同一級別,用戶命令也用CPU的匯編指令來實現,只要是合法指令,CPU就會執行。因為指令是軟件的最底層,芯片操作系統也是建立在指令之上的。這樣為特定應用下載的命令就可以對其他應用的程序或數據進行訪間。如果一個應用下載的命令中含有對另一應用的數據進行篡改的指令,那么芯片操作系統是不能控制其指令的執行的。
為克服上述缺陷,本文提出了一種新型的安全智能卡結構,它具有如下技術特點:
·支持一卡多用,適應面寬,便于攜帶管理。
·支持用戶下載程序,使用靈活方便。
·不同應用程序由物理隔離保護,確保數據安全。
·具有密碼協處理器,可大大提高密碼運算速度。
·具有 U SB接口,便于實現電子鑰匙功能和高速數據傳輸。
·內部具有看門狗電路,系統可靠性高。
本文首先從軟硬件兩個方面論述一卡多用安全智能卡的結構原理,以及實現對多個應用區隔離的安全方案,即限制特定用戶命令的訪間范圍,真正達到對多個應用區進行保護的目的,然后討論這種新型安全智能卡的一種應用實例。
二、新型安全智能卡的硬件結構
新型安全智能卡首先從硬件上為實現多應用的隔離、確保用戶程序和數據的安全提供了支持,增加了硬件中斷、操作標志,以及內存地址比較寄存器、程序地址比較寄存器和數據地址比較寄存器。新型安全智能卡芯片由CPU、各種存儲器(RAM, ROM, EEP-ROM, Flash Memory),密碼協處理器、串行通信、地址隔離和中斷控制邏輯等部分組成,其硬件結構如圖 1所示。
圖 1 新型安全智能卡的芯片結構
新型安全智能卡中的CPU主要由時鐘邏輯、中斷邏輯、定時器邏輯、串行通信、并行I/O、片選邏輯、總線接口、指令邏輯、算術邏輯、寄存器文件等部分組成,CPU可采用 8位或 16位,最好使用RISC技術和流水線技術以提高速度,其硬件結構如圖2所示。
圖 2 新型安全智能卡的CPU結構
為了支持用戶下載程序、一卡多用,同時確保各用戶數據安全,必須對多個用戶區進行隔離保護。通過地址隔離,把不同的應用限制在不同的區域,從而確保數據的安全。在新型安全智能卡的CPU中增加了操作標志和一個硬件中斷。操作標志用以區分當前操作模式是系統模式還是用戶模式,新增中斷用以在某應用的用戶命令訪間系統或其他應用的地址空間時通知芯片操作系統以終止該用戶命令的執行。進行存儲區之間隔離保護的方法之一是對相應的存儲區域設立地址比較寄存器,分別有內存地址上、下界地址寄存器,程序地址上、下界寄存器和數據地址上、下界寄存器。在用戶模式時,程序的訪問要受地址比較寄存器的限制,只有地址比較寄存器所限定的地址空間才可被訪問。當處于某一區域的程序執行時,其所訪間的存儲區地址都要與上、下界寄存器的值比較,如果不越界便可訪問,如果越界則不能訪問且產生硬件中斷,操作系統將終止程序的執行,從而保證特定應用下載的用戶命令只能訪問其自身的地址空間,而不能對系統或其他應用的用戶命令或數據進行訪問,實現存儲區之間的隔離保護。而在系統模式時,程序的訪問不受任何限制,可以訪問整個地址空間。
上、下界寄存器的值是軟件可設置的,由芯片操作系統對其進行管理,靈活方便。而且每一類比較寄存器只需要一對上、下界寄存器就可實現多個應用存儲區的隔離保護。
隨著網絡技術的普及與應用,由于Internet所固有的開放性、無國界、自由性的特點,網絡安全尤其是網絡信息交互時出現的身份鑒別、電子簽名、數據加密等間題已經成為人們關注的一個焦點。新型安全智能卡中設計了USB接口,以便于實現電子鑰匙(Electronic Key)功能和高速數據傳輸。
在新型安全智能卡中,ROM空間用于存儲COs和一些固定數據。RAM空間用于存放中斷向量、系統棧以及中間數據等,EEPROM/Flash Memory用于存放系統數據、用戶程序或用戶數據。
為了確保數據安全,智能卡中必須實現數字簽名。數字簽名可通過公開密鑰密碼RSA和ECC來實現。無論是RSA還是ECC,其運算都是極復雜的。完全依靠8位或16位CPU來軟件實現RSA和ECC,其速度將是很慢的。為了提高速度,必須采用硬件支持。因此,在智能卡中設計了密碼硬件協處理器,以適合智能卡的應用。
串行通信邏輯支持各種協議的智能卡通信。CPU提供一個全雙工雙向通信控制器,其邏輯結構如圖 3所示。
圖3 串行通信控制器結構
由于CPU內部結構合理,主要寄存器都是軟件可編程的,因此使得通信程序的編寫將變得十分容易。
第1頁第2頁 |