網絡計算機中IC卡讀寫器子系統設計
文章出處:http://5052h112.com 作者:王非 羅海勇 人氣: 發表時間:2011年10月17日
隨著網絡的飛速發展和計算機技術的不斷進步,計算機應用模式正發生著巨大的變革。網絡計算機(NC)的出現標志著計算機體系結構的革新,代表著未來計算機系統的發展方向。由于網絡計算機可以采用開放源碼操作系統,為發展帶有自主知識產權的核心技術創造了有利條件。在開放源代碼的操作系統中,Linux是一種較好的選擇。它源代碼公開,可以根據要求自行剪裁并且穩定,對資源要求低,有大量應用軟件支持。按照網絡電腦的特定需求,可以開發出具有自主智能產權的CPU,從而提高網絡電腦的安全。網絡電腦走的是一種網絡服務器集中式管理的道路,具有成本低廉、管理費用低的優勢。
為此,國家863計算機軟硬件技術主題發展規劃提出了以下要求:組織優勢力量,研究網絡計算機系統的關鍵技術,研制網絡計算機系列產品,選擇若干典型應用領域的進行應用示范,以此推動國產微處理器芯片和系統軟件的發展,促進我國電子政務、網絡教育、金融、社區服務、企業管理等方面的信息化建設。
隨著計算機網絡的迅速發展,網絡計算機的安全問題顯得非常突出。尤其在某些特殊領域,如電子政務等,安全問題顯得極端重要。目前,在計算機安全方面,有各種不同的方法,但效果都不太好。本文提出的智能IC卡技術,在網絡計算機是一種全新的方法,能夠很好地實現網絡計算機的安全。智能IC卡(Smart IC)具有較高的安全性,以前主要用在金融、電信等領域,筆者把此技術推廣應用到網絡計算機,以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密鑰、多加密算法體系,對所有的敏感數據文件加密保護。如圖1所示。
IC卡子系統是整個網絡計算機系統網絡安全的核心,它保存了加密算法所需要的私有密鑰,供加密算法對網絡上傳輸的數據加密使用。
1 IC卡讀寫器硬件開發方案
IC卡作為一種信息技術可以廣泛應用于許多行業領域,如金融、電信等,不同領域均有各自不同的應用特點、應用環境和應用要求。IC卡在某一領域的應用,必須適應該領域的特點。國際上有關組織及部分針對各個領域的不同要求,制定了IC卡在某一領域應用所應參考或遵循的應用標準。不過所有智能IC卡都必須符合國際標準化組織的ISO/IEC 7816國際標準。讀寫器的硬件也必須遵循ISO/IEC 7816國際標準。
ISO/IEC 7816標準要求IC卡與IC卡讀寫器使用串行通信,時序要求非常嚴格。常用的MCS51系列單片機速度較慢,每個指令周期需要12個機器周期,較難達到該標準所要求的嚴格時序。Microchip公司的PIC系列單片機采用RISC結構,每個指令周期為4個時鐘周期,并且除轉移指令外,所有指令都可以在一個指令周期內完成,速度較快,能夠滿足該標準對時序的嚴格要求。所以采用一片PIC16C73單片機作為IC卡讀寫器的控制器。
讀寫器與IC卡的通信,采用半雙工的ISO 7916-3字符幀協議標準。3.57MHz的晶振為IC卡和讀寫器提供時鐘。在缺省工作方式下,IC卡和讀寫器的通信速率為9600bps。即時鐘頻率為3.57MHz,每372個時鐘輸入或輸出一個比特位。在未來需要較高通信速度時,可以在對程序作較小改動的前提下,提高晶振頻率,如采用2×3.57MHz的晶振。
IC卡讀寫器與NC之間的通信,可以采用USB接口、并口、串口、PS/2口等多種方案。采用USB接口可以實現即插即用和熱拔插等功能。但使用USB接口,電路和協議都很復雜,并且增加USB接口器件會較大地增加系統成本。并口有較高的通信速度,但通信線路較多,硬件比較復雜,可靠性不好,且IC卡讀寫器并不需要太高的通信速度,故使用并口也不是理想的方案。而PS/2口一般固定給鍵盤和鼠標等標準外設使用,使用PS/2口就會占用這些標準外設的接口,故也不在考慮范圍之內。使用串口通信雖然速度慢,但卻具有硬件成本低、軟件實現簡單、運行可靠等優點。而通信速度完全可以滿足IC卡讀寫器的要求。所以IC卡讀寫器采用了RS232串口與NC主機通信的方案。
整個系統使用5V電壓供電。IC卡讀寫器采用低功耗設計,系統電源從RS232接口的信號線上獲得。RS232接口的電壓為±12V,經過電源穩壓器件LP2950將12V電壓變為+5V,給IC卡讀寫器所有器件提供電源。
IC卡讀寫器硬件的原理框圖如圖2所示。
IC卡各引腳接到單片機I/O口上,由單片機對IC卡進行讀寫。由于PC(NC)機的RS232接口電平與單片機的邏輯電平不同,所以需要對串口信號進行電平轉換。圖2中使用了電平轉換器件。它把單片機的TTL邏輯電平轉化為RS232接口的±12V電平,實現單片機與RS232的透明傳輸。轉換后的信號直接接在RS232接口上。
2 IC卡讀寫器軟件開發方案
IC卡讀寫器驅動程序由讀寫器與IC卡通信的通信程序、讀寫器與NC或PC通信的通信程序以及NC與讀寫器通信的驅動程序三部分組成。其中,NC與IC卡讀寫器通信的程序符合PC/SC規范,它與PC/SC規范的中間件結合,向應用程序提供符合PC/SC規范的API函數。
2.1 讀寫器與IC卡通信的通信程序
該通信程序采用ISO 7816-3字節協議標準編制。使用T=0,即字符協議,主要實現與IC卡的通信。由于選用的時鐘為3.57MHz,在IC卡I/O口默認的9600bps通信速度下,每隔372個系統時鐘脈沖,I/O狀態可能變化一次。所以,為了準確讀取IC卡I/O狀態,在IC卡輸出的每一位脈沖中間,即I/O啟動186個時鐘周期后,讀取I/O狀態。為了排除可能的干擾,在186個時鐘周期的兩側再采樣兩點,共取樣三點。三個采樣點之間每兩個點間隔24個時鐘周期。如果三點取樣值都為1,則輸出為1;如果三點取樣值都為0,則輸出為0;如果三點取樣值中有兩點為1,一點為0,則輸出為1;如果三點取樣值中兩點為0,一點為1,則輸出為0。
2.2 讀寫器與NC的通信的通信程序
讀寫器與NC的通信程序采用異步串行口協議,雙方通信先握手取得同步,然后再進行串行口通信。讀寫器通過串口接收NC發來的命令,并將執行結果通過串口發回。讀寫器與NC的通信在不影響讀寫器與IC卡通信的前提下完成。
2.3 NC的驅動程序
NC通信程序駐留于NC,它與讀寫器的通信程序通信。這個程序符合PC/SC規范。規范規定的分層模塊結構見下圖。
圖中的ICC就是Integrated Circuit Card,即IC卡。IFD就是Interface Devices,即IC卡讀寫器。IC卡插入讀寫器后,通過IC卡讀寫器IFD與NC驅動程序的IFD Handler層通信。ICC Resource Manager層管理各種不同的IC卡讀寫器和IC卡資源。
每一種IC卡讀寫器通過各自的IFD Handler接口函數與ICC Resource Manager層通信,ICC Resource Manager層根據上層軟件的要求,將上層軟件發來的命令分別發到相應的IFD Handler,再通過它發給IC卡讀寫器和IC卡。而ICC-Aware Applications層對上層應用軟件提供一個通用的API接口,以滿足不同的應用程序對不同的IC卡和讀寫器的編程要求。Service Provider層介于ICC-Aware Applications層和ICC Resource Manager層之間,要吧提供文件的存取控制和驅動程序的加密通信功能。當然,在不使用加密通信功能時,也可以不用這一層。
NC的驅動程序根據規范要求,提供符合標準的IFD Handler層接口函數,其余各部分由符合規范的中間件提供。應用程序調用間件提供的API函數發送命令。中間件把應用程序發來的命令編譯成動態鏈接庫的IFD Handler接口函數發給IC卡讀寫器,最終發給IC卡。最后,IC卡將返回結果通過一系列相反的過程返回給應用程序。
3 Smart IC卡開發方案
IC卡芯片具有寫入數據和存儲數據的能力,IC卡存儲器的內容根據需要可以有條件地由外部讀取,以供內部信息處理的判定。根據卡中所嵌入的集成電路的不同可以分成三類:
(1)存儲器卡,卡中的集成電路為EEPROM(可以用電擦除的可編程只讀存儲器);
(2)邏輯加密卡,卡中的集成電路具有加密邏輯和EEPROM;
(3)CPU卡,卡中的集成電路包括中央處理器CPU、EEPROM、隨機存儲器RAM以及固化在只讀存儲器ROM中的片內操作系統COS(Chip Operating System)。
除此之外,IC卡根據讀寫方式不同,可分為接觸式IC卡和非接觸式IC卡兩種。由于網絡安全要求,IC卡在使用時必須一直插在讀寫器內。非接觸IC卡由于其讀寫器沒有專用卡座,盡管有壽命長等優點,但不適用于網絡安全應用。
同時,由于CPU卡計算能力強,可以使用自己的COS操作系統,甚至使用硬件完成加密算法。而IC存儲卡僅具有存儲功能,安全性不如CPU卡好,的怪SNCS(Smart Network Computer System)的IC卡子系統采用接觸式CPU卡。
網絡計算機安全系統的IC卡設計滿足標準化(國際標準)和智能化,既有安全性又有易維護性。它由硬件和軟件兩部分組成。
(1)硬件
采用CPU卡,它含有CPU及RAM、ROM等。具有優秀的安全性能,可能有效防止黑客對IC卡解密。
(2)軟件
·通信程序:IC卡軟件即COS(Chip Operating Systarm),它是智能卡芯片內的一個監控軟件,用于接收和處理外界發給智能卡的各種信息,管理卡內的存儲器,并給出相應的應答信息。它有IC卡與讀寫器的通信程序。該通信程序完成與讀寫設備之間的通信,必須滿足7816-3字符幀協議。該協議含有T=0字符傳送協議和T=1數據塊傳送協議。
·安全文件系統:COS文件系統與普通文件系統不同,它著重強調文件系統的安全性,除提供通常的字符流文件操作外,還提供記錄文件的讀寫操作等。對每種不同的文件操作進行不同的訪問權限保護。COS中的文件系統與上層應用軟件的用戶權限管理相結合,共同完成對IC卡文件的訪問。由于IC卡的文件存儲介質采用EEPROM,每次寫文件操作時,必須對要寫入的介質先進行擦除操作。
·安全機制:安全機制用于身份鑒別和IC卡與讀寫設備雙方的認證工作及各種數據的加密、數據完整性檢查等操作。每個用戶IC卡上都有用戶的一個私鑰,服務器把用公鑰加密后的數據經IC瞳用自己的私鑰解密后將正確的信息通過網絡送給服務器,由服務器根據解密的信息完成對用戶權限的鑒別。
·加解密算法:加解密算法,用于對傳入IC卡的數據進行加、解密,此外它還提供擴展接口,方便用戶增加新的加密算法。
·命令解譯:命令解譯是COS的上層軟件,它實現ISO7816-4的各種命令和CA命令。
根據串口竊電IC卡讀寫器設計技術思想,IC卡讀寫器采用低功耗元器件(PIC16C73B低功耗單片機和74LV125A等),同時采用分離元件取代MAX系列的RS232接口電路,實現了無需外接電源的串口IC卡讀寫器。經實驗測試,整個電路功耗低于10mA,完全可以由串口提供電源。
本項目實現的串口IC卡讀寫器完全符合ISO7816-1/2/3標準以及PC/SC規范;軟件實現采用分層結構,實現了T=0的字符傳輸協議。
經實驗測試,讀寫器穩定可靠地實現IC卡復位應答、讀IC卡讀寫器件狀態字、讀一個隨機數據、讀取IC卡序列號以及選擇一個文件等操作;在計算機與IC卡之間,可以實現數據的透明傳輸。此IC卡子系統既可以工作在Linux平臺上,也可以工作在Windows系列平臺上。